本地化 - 语言回退(Language Fallbacks)

优质
小牛编辑
127浏览
2023-12-01

非特定(Neutral)语言回退

当在 en-US 中找不到翻译,它可以接受在 en 语言中寻找翻译,因为它们密切相关。

两个字母的 languageID(非特定语言)是国家的 4 个特定字母代码的隐式语言回退。

因此,eses-AR 语言回退,enen-USen-GB 的语言回退。

固定语言回退

空代码的固定语言是所有语言的最终隐式回退语言。

实现

语言回退功能应该通过 ILocalTextRegistry 提供者(如,LocalTextRegistry 类)实现。

提供者也支持显式设置语言回退。因此如果需要,你也可以设置 en-US 作为 en-UK 的语言回退。

这是检索本地化文本键翻译的步骤:

  • 如果当前语言有键的翻译,则返回该翻译。
  • 检查每个显式定义的语言回退翻译。
  • 如果 languageID 是 4 个国家特定字母代码,检查非特定语言的翻译。
  • 检查固定语言的翻译。
  • TryGet 返回键本身或 null

假设我们设置 en-US 作为 en-UK 的语言回退。

如果要在 en-UK 查找翻译,按如下排序检索:

  1. en-UK
  2. en-US
  3. en
  4. invariant