语言区域回退

Lookup API 会实现自动语言匹配和语言区域回退。这些机制可供调用 C++ 函数 intl::Lookup::New 的树内使用

语言区域回退是指按照确定性模式从更具体的资源“回退”到更通用的资源,以搜索经过本地化的内容、语言区域数据或其他资源的过程。

下面是一个简单的回退示例:如果系统没有可用的 en-US 专用消息,则针对语言区域 en-US 的消息的查询请求会回退到使用语言区域 en 的消息。

回退并不总是那么简单。举一个简单的例子,en-US 会回退到 en,但 en-IN 会回退到 en-GB后备 定义关系,而 Fuchsia 的本地化子系统 根据此信息选择正确的后备本地化版本。

Fuchsia 的本地化消息查找有两个级别的回退:

  1. 语言匹配。 用户最多可以指定 10 个首选语言区域,并按首选顺序排列。该类型是支持的 fuchsia.intl.Profile

    您可以将此设置交给 Lookup API,网址为 Lookup施工时间:

    auto lookup = intl::Lookup::New({"es", "en-US"});
    

    此示例显示,用户设置了在 语言区域为 es,回退到 en-US 信息通常在运行时来自 fuchsia.intl.Profile

  2. 回退。 即使用户未明确请求,查找库也会自动从更具体的语言区域回退到更不具体的语言区域。在前面的示例中:

    auto lookup = intl::Lookup::New({"es", "en-US"});
    

    此示例还定义了,如果 en-US 不可用,则语言区域应回退到 en。通过这种方法,我们可以为可能不需要全球覆盖范围的产品提供一组最常见的语言区域,同时仍涵盖最常见的语言区域。

通过结合使用这两种方法,您可以 使用自动规则来找出最适合 但也允许库调用方指定 要使用的首选语言区域的精细顺序。

未来工作

如需详细了解与回退相关的计划但尚未实现的功能,请参阅未来的工作部分。