国际化

715次阅读
没有评论

共计 2804 个字符,预计需要花费 8 分钟才能阅读完成。

国际化插件使用指南

国际化插件提供了用于管理项目本地化的工具。这包括促进翻译、复数化、用户区域设置的日期格式等。

脚本

此对象没有脚本接口,因为在使用 JavaScript 或 TypeScript 编码时,可以使用浏览器内置的 Intl 对象。

地区

区域设置(指定区域、语言或方言)使用标准化的 BCP 47 语言标记(也称为语言标记)。例如,指美式英语,指英式英语,指巴西葡萄牙语,等等。en-USen-GBpt-BR

翻译文件

该插件可以通过事件表加载翻译信息,但最常见的用例是将给定语言的所有字符串放在一个单独的文件中,并使用“从 JSON 加载”操作加载该文件。此类文件的基本示例如下:

{
"locale": "en-GB",
"strings": {
"foo": "example localized string",
"bar": {
"baz": "more localized text"
}
}
}
语言文件是一个 JSON 文件,具有两个不同的键。

密钥是必需的,所有本地化的文本都应嵌套在其中。它可以包含任何有效的 JSON – 如何组织它完全由用户决定。尝试在没有此密钥的情况下加载文件将导致错误。"strings"

该键是可选的,在加载时用于指示文件对应的语言。如果密钥不存在,则文件的内容将与国际化插件当前设置为的区域设置相关联。如果键包含无法解析为有效区域设置的值,则在加载时将引发错误。"locale"

加载国际化文件

要加载国际化文件,请执行以下操作:

使用 AJAX 插件请求文件。
在 AJAX On Complete 触发器中,使用国际化插件的“从 JSON 加载”操作加载 AJAX 数据。

按照这些步骤,可以为每个需要它的区域设置加载本地化文件。

加载文件时,如上例所示,文件需要具有“locale”键,以便插件可以知道数据属于哪个区域设置,而无需任何进一步的事件块。
查找本地化字符串
一旦插件获得了所需语言环境的数据,下一步就是查找字符串以在需要的地方使用它们。为此,请执行以下操作:

使用“设置区域设置”操作
使用具有适当路径的 Lookup 表达式

如果加载了本文档开头的示例本地化文件,则查找将生成字符串“示例本地化字符串”。
嵌套、推送和弹出
如果有几个字符串需要本地化,那么将它们全部放在本地化文件中“strings”键的根目录下就很容易了。随着需要本地化的文本量增加,将相关字符串组合在一起以保持本地化文件整洁会很有用。

若要查找嵌套字符串,可以执行以下两项操作:

绝对路径
在 Lookup 表达式的参数中包含要查找的字符串的绝对路径。点可用于导航到嵌套的 JSON 键。

此选项很简单,在孤立的情况下可能很方便。

相对路径
推送要查找的字符串位于本地化文件中的上下文,然后在使用 Lookup 表达式时使用相对路径。相对路径以点开头,并附加到当前上下文。

如果在同一上下文中有许多字符串,则使用相对路径来避免重复可能很有用。

使用相对路径时,请始终记住为每个 Push 上下文操作提供相应的 Pop 上下文操作。

前面的示例假定已加载文档开头的示例本地化文件。
请注意,绝对路径从不具有前面的“.”,而相对路径始终具有前面的“.”替换
通过使用替换,可以在运行时生成动态结果,例如以下示例:

{
"locale": "en-GB",
"strings": {
"test": "Hello {0} {1}"
}
}
该字符串有两个占位符,如果在使用 Lookup 表达式时提供了其他值,则可以在运行时替换这些占位符。可以有任意数量的占位符,大括号之间的数字是指传递给 Lookup 的参数的顺序。

示例 1

该示例的输出是字符串“Hello Good Morning”。

如果占位符多于参数,如下面的示例所示,则没有匹配参数的占位符在最终结果中保持不变

示例 2

该示例的输出是字符串“Hello Good {1}”。

复数规则
下面是使用英式英语复数规则设置的本地化文件的简单示例。

{
"locale": "en-GB",
"strings": {
"plural-example": {
"one": "{0} Pig",
"other": "{0} Pigs"
}
}
}
为了查找复数形式,使用 LookupPlural 表达式,传入一个附加值,该值用于决定将使用哪种复数形式。

示例 1

该示例将生成字符串“1 Pig”。

示例 2

该示例将生成字符串“2 Pigs”。

复数字符串中的占位符 {0} 始终由表达式的第二个参数替换。占位符是可选的 – 如果从本地化字符串中删除它,仍将选择正确的复数形式。LookupPlural 也可以有任意数量的额外占位符进行替换,就像 Lookup 一样。
英语以外的其他语言的复数化
在复数方面,英语是一种相对简单的语言,因为只有两个复数类别:“一”和“其他”分别指单个单位和多个(或零)。

在这方面,其他语言可能更复杂。要了解类别的数量以及每个类别的名称,请使用以下表达式打印出值,并查看本地化文件所需的键。

PluralCategoryCount 将返回当前区域设置的类别总数。

PluralCategoryAt(index)将返回具有提供的从零开始的索引的复数类别的名称。

在使用表达式之前,请确保将“设置区域设置”操作与所需的区域设置一起使用。例如,语言环境“ar-EG”(埃及阿拉伯语)有六个不同的复数类别:“few”、“many”、“one”、“two”、“zero”和“other”。因此,使用复数规则的这种语言的本地化文件应该为每个类别提供翻译。

国际化条件
与当前区域设置比较
根据插件当前配置的区域设置测试传入的区域设置值。
国际化行动
设置区域设置
设置插件将使用的区域设置。
设置上下文
设置要从中获取字符串的上下文。绝对上下文将覆盖任何现有上下文,并将相对上下文附加到现有上下文上。
推送上下文
推送上下文以从中获取字符串。这有助于避免在同一上下文中查找多个字符串时出现重复。
流行语境
从堆栈中删除现有上下文。
添加字符串
将本地化字符串动态添加到当前区域设置的本地化数据中提供的上下文中。
从 JSON 加载
使用当前语言环境或在 JSON 中传递的语言环境中定义的语言环境的本地化数据加载插件。
国际化表达式
现场
返回插件当前使用的区域设置字符串。
默认区域设置
返回当前系统的默认区域设置。这可用于选择默认语言。
查找(上下文 [,…])
根据当前区域设置和传入的上下文查找本地化字符串。支持用于替换的参数的变量列表。
LookupPlural(上下文、计数 [、…])
根据当前区域设置、在上下文中传递的上下文和数字查找本地化字符串的复数形式,以决定要返回的复数形式。支持用于替换的参数的变量列表。
当前上下文
返回插件的当前上下文。
SelectPlural(数字)
返回基于当前区域设置和传入编号的复数形式的名称。
PluralCategoryCount
返回当前区域设置的复数类别的总数。
PluralCategoryAt(index)
返回基于当前区域设置和提供的从零开始的索引的复数类别名称。
SaveToJSON
返回插件内部状态

正文完
 0
评论(没有评论)