Lookup API

根據訊息相關討論引起的兩大問題 翻譯

  1. [Lookup] 服務的具體介面 程式設計師選擇的語言?此外,
  2. 翻譯人員如何在我的程式中 使用嗎?

屆時我們會逐一回答。

查詢 API

Lookup API 程式庫可用來取得翻譯字串。簡化版檢視畫面 C++ 中的 Lookup API 程式碼,如下所示:

class Lookup {
public:
  enum class Status {
    // No error.
    OK = 0,
    // The resource was unavailable as requested.
    UNAVAILABLE = 1,
  };
  static fpromise::result<std::unique_ptr<Lookup>, Lookup::Status>
    New(const std::vector<std::string>& locale_ids);
  fpromise::result<std::string_view, Lookup::Status> String(uint64_t message_id);
};

目前 Lookup API 僅適用於 C++ API。沒有概念 的問題再進一步支援其他語言。

實際的 API 會顯示在檔案中 lookup.h,基本上是 與上述相同,但包含說明文件、建構 和測試負擔在本文撰寫期間,只能使用高階 C++ API 可供使用。我們日後會陸續新增其他語言的高階 API,例如 低階 C API 是 可做為寫入 FFI 的基礎 繫結至此 或其他語言的功能有一種特殊情況 rust 不需要 FFI 繫結,因為 低階實作作業屬於 Rust,可直接對話;但 尚未建立實際的 rust API

Lookup API 的基本用法如下所示:

std::vector<std::string> locale_ids = {"nl-NL"};
auto result = Lookup::New(locale_ids);
if (result.is_error()) {
  return;
}
auto lookup = result.value();
auto lookup_result = lookup.string(42);
if (lookup_result.is_error()) {
  // handle error
  return;
}
std::string_view message = lookup_result.value();
// Use `message`.

這個範例來自 lookup.h 說明文件。瞭解 API 後 範例相當簡單明瞭,儲存一個項目:呼叫 lookup.string(...)使用魔法 (42) 查詢 一則訊息身為程式設計人員,您可以詢問這個數字的用途 下一節將說明這個問題。