国际化

什么是国际化?

国际化是以一种可以轻松翻译为其他语言的方式开发应用程序的过程。国际化通常缩写为国际18n(因为字母i和n之间有18个字母)。

为什么国际化很重要?

WordPress在世界各地被使用,被讲多种语言的人使用。WordPress中的字符串需要以特殊的方式进行编码,以便可以轻松地翻译成其他语言。作为开发人员,您可能无法为所有用户提供本地化;然而,翻译器可以成功地本地化代码,而无需修改源代码本身。

使代码可翻译称为国际化,而翻译代码并将字符串调整到特定位置的行为称为本地化。阅读更多关于WordPress中的本地化.

基本知识

为了使字符串可翻译,您必须在调用WordPress i18n函数.

例如,PHP函数_e()回显可翻译字符串:

_e(“编辑帖子”);

你会在WordPress核心文件中找到类似的代码。然而,如果您正在国际化一个主题或插件,那么还有一种说法认为所有i18n函数都采用文本域。

文本域设置插件或主题翻译所属的域。这确保插件、主题和WordPress核心中的字符串之间没有冲突。

对于文本域,对输出字符串的i18n函数的最基本调用如下:

_e(“编辑电影”,“my-plugin”);

为i18n设置插件和主题

插件和主题的i18n设置稍有不同,因此在各自的手册中详细介绍了这些信息:

国际化JavaScript

由于WordPress 5.0,可以使用PHP中使用的一组i18n函数国际化JavaScript文件。

为了能够在JavaScript代码中使用i18n函数,您必须声明wp-i18n型在注册或排队时作为脚本的依赖项。例如:

wp_register_script(注册脚本)(“我的脚本”,plugins_url('js/my-script.js',文件),数组(“wp-i18n”),'0.0.1');

现在您已经向脚本添加了依赖项,您可以在其中使用i18n函数,但是您仍然需要告诉WordPress来加载翻译。

你可以打电话wp_set_script_translations()。此函数接受三个参数:已注册/已排队的脚本句柄、文本域,以及包含翻译文件的目录的路径(可选)。只有当插件或主题不在WordPress.org上时,才需要后者,WordPress会自动提供这些翻译文件。

wp_set_script_translations('myscript','my-plugin');
为了获得更好的性能,请始终确保将脚本排队并仅在实际使用时加载它们的翻译。

在JavaScript代码中,使用i18n函数的方式与使用PHP代码的方式大致相同:

const{__,x,n,sprintf}=wp.i18n;//简单字符串__(“Hello World”,“my-plugin”);//带上下文的字符串_x(“My Gutenberg块名”、“块名”和“My-plugin”);

您可以在JS代码中使用的可用i18n是(有关更多详细信息,请参阅国际化函数):

注意,wp-i18n包还包括把格式数据写成串功能。这对于国际化包含变量的字符串非常有用。

现在请参阅国际化指南,了解如何使用所有这些函数以及编写字符串的最佳实践。

如果你没有在WordPress.org上托管你的插件或主题,你需要自己创建翻译文件。检查这个帖子来学习如何做到这一点。

WP 5.0之前的国际化JavaScript

国际化JavaScript文件的另一种方法是使用wp_localize_script()功能。

使用此函数,您可以注册可翻译字符串,并在JavaScript中使用它们。

请参阅wp_localize_script()参考学习如何使用它。

国际化指南

现在您已经准备好国际化应用程序,请通读国际化指南并了解每个i18n函数的用途、如何使用它们以及编写字符串时的最佳实践。