React Native国际化指南

编辑器的本机版本引用两种类型的字符串:
1.web和本机平台中使用的字符串。
2.仅在本机平台中使用的字符串。

关于第一种类型,这些字符串按照中描述的web版本的相同过程进行翻译本指南但对于后者,需要提供您自己的翻译。

提取仅在本机平台中使用的字符串

为了识别这些字符串,可以使用脚本提取使用的字符串位于packages/react-native-editor/bin/extract-used-strings.js包生成一个JSON对象,该对象包含引用的所有字符串,包括使用它们的平台以及引用它的文件。在这里,您可以看到格式:

{“古腾堡”:{“<string>”:{“string”:字符串值。“stringPlural”:具有复数形式的字符串值。[可选]“注释”:为翻译人员提供注释。[默认值为空字符串]“reference”:包含引用字符串的源文件路径的数组。“platforms”:包含使用字符串的平台的数组,值为“android”|“ios”|“web”。},...},“其他域lugin”:{...},...}

该命令还支持传递额外的插件,以防生成包含其他插件的编辑器的React Native包。

需要注意的是,JSON对象包含所有使用过的字符串,因此为了识别仅在本机平台中使用的字符串,需要提供自己的脚本/进程来提取它们。通过检查字符串并筛选出包含“web”平台的字符串,可以很容易地做到这一点。

NPM命令

提取使用的字符串:

npm运行本机i18n:extract-used-strings--“$PWD/used-strangs.json”

注:我们需要传递绝对路径,否则它会使用包/反应编辑器作为相对路径的根路径。

提取使用过的字符串,包括额外的插件:

npm运行本机i18n:extract-used-strings--“$PWD/used-strengs.json”“domain-plugin-1”<plugin-1_SOURCE_PATH>“domain-plugin-2”<PLUDIN-2_SOURCE_PATH>。。。

提供自己的翻译(仅用于本机平台中使用的字符串)

一旦您在本机平台中获得了使用的字符串列表,就必须翻译这些字符串,但是,这个过程超出了本机版本的范围,因此您必须提供自己的翻译。

将翻译数据注入编辑器的过程是通过翻译初始化期间传递给编辑器的初始属性:
Android参考
iOS参考

通过上述方法将提供的翻译集成到移动客户端的机制翻译这里不描述initialprop,因为它特定于移动客户端,可以通过不同的方式实现。然而,重要的是,它们是由提到的初始属性提供的,因为编辑器负责将它们与编辑器中已经包含的翻译合并。

注:请记住,那些与编辑器中已包含的字符串匹配的字符串将被覆盖。

获取翻译(用于web和本机平台中使用的字符串)

翻译文件基本上是一个JSON对象,它包含键值项,每个字符串都有相应的翻译translate.wordpress.org它保存了WordPress的翻译和一系列不同的插件,如Gutenberg。

这些文件可以缓存在文件夹下并进行优化。此外,还会生成一个索引文件,作为导入和获取插件翻译的入口点。

获取的翻译包含所有可翻译的插件字符串,包括编辑器本机版本中未使用的字符串。然而,可以通过过滤掉在使用的字符串JSON文件中未引用的字符串来减小文件大小。

默认情况下,在安装依赖项时,可能会为Gutenberg下载未优化的翻译,并位于i18n-缓存文件夹(如果缓存不存在)。

这些翻译文件中包含的字符串在编辑器初始化时导入(参考)并将与翻译初始道具。

NPM命令

获取未优化的翻译:

npm运行本机i18n:fetch-translations--“gutenberg”<OUTPUT_PATH>

注:我们需要传递绝对路径,否则它会使用包/反应编辑器作为相对路径的根路径。

获取优化的翻译:

npm运行本机i18n:fetch-translations--“gutenberg”<OUTPUT_PATH><USED_STRINGS_FILE>