语言回退(Language Fallbacks)
非特定(Neutral)语言回退
当在 en-US
中找不到翻译,它可以接受在 en 语言中寻找翻译,因为它们密切相关。
两个字母的 languageID(非特定语言)是国家的 4 个特定字母代码的隐式语言回退。
因此,es
是 es-AR
语言回退,en
是 en-US
和 en-GB
的语言回退。
固定语言回退
空代码的固定语言是所有语言的最终隐式回退语言。
实现
语言回退功能应该通过 ILocalTextRegistry 提供者(如,LocalTextRegistry 类)实现。
提供者也支持显式设置语言回退。因此如果需要,你也可以设置 en-US
作为 en-UK
的语言回退。
这是检索本地化文本键翻译的步骤:
- 如果当前语言有键的翻译,则返回该翻译。
- 检查每个显式定义的语言回退翻译。
- 如果 languageID 是 4 个国家特定字母代码,检查非特定语言的翻译。
- 检查固定语言的翻译。
- TryGet 返回键本身或 null
假设我们设置 en-US
作为 en-UK
的语言回退。
如果要在 en-UK
查找翻译,按如下排序检索:
- en-UK
- en-US
- en
- invariant