[Lookup]
服務的具體介面 程式設計師選擇的語言?以及- 如何將翻譯內容納入我的程式,讓使用者可以使用?
我們會依序回答這些問題。
Lookup 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
來查詢訊息。身為程式設計師,您有權詢問這個數字的來源。下一節將說明這個問題。