围绕“要传达的信息” 翻译:
- 在程序员选择的语言中,
[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
来查找消息。作为程序员,您有权询问这个数字的来源。下一部分将回答这个问题。