WordPress 用户遍布世界各地。 作为全球市场占有率最高的CMS系统,国际化自然是每个开发者必须考虑的关键功能。 从WordPress 3.7开始,其核心程序、插件和主题均支持“语言包”。 多语言支持是通过不同的“语言包”来实现的。
目录索引
什么是国际化?
国际化是开发插件和主题的过程,以便可以轻松地将其翻译成其他语言。 国际化通常缩写为 i18n(因为字母 i 和 n 之间有 18 个字母)。
WordPress如何实现国际化?
WordPress 在世界各地使用,在英语不是主要语言的国家/地区。 WordPress插件中的字符串需要以特殊的方式进行编码,以便可以在不修改源代码的情况下轻松翻译成其他语言。
在插件和主题中,开发者应该在程序代码中添加一个具有唯一名称的“文本字段”,一般有类似以下的代码:
插件特定文本字段:
Text Domain: plugin-slug
Domain Path: /languages
load_plugin_textdomain( 'plugin-slug', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
特定于主题的文本字段:
Text Domain: theme-slug
load_theme_textdomain( 'theme-slug', get_template_directory() . '/languages' );
这样,WordPress就会根据用户在网站后台设置的语言,检查指定目录下是否有对应的“语言包”。 例如,Yoast SEO插件,在wp-seo-main.php文件中,有以下代码(大约第304行):
load_muplugin_textdomain( 'wordpress-seo', dirname( WPSEO_BASENAME ) . '/languages/' );
这行代码将其文本字段定义为:“wordpress-seo”,调用语言包的默认路径为:“wp-content/languages/plugins”,语言包的文件名:wordpress-seo-language。 mo(例如简体中文语言包名称为:wordpress-seo-zh_CN.mo,德文为wordpress-seo-de_DE.mo)。
如果用户在 WordPress 后台(WordPress Dashboard > 设置 > 常规 > 网站语言)将网站语言设置为中文,WordPress 会读取“wp-content/linguals/plugins/wordpress-seo-zh_CN.mo”文件并设置 All使用wordpress-seo文本字段的字符串根据语言包对应的语言字符串显示。
关于 WordPress 国际化的常见问题
某些插件的语言包在 wp-content/linguals/plugins 中不起作用?
答:除了建议开发者使用默认路径外,WordPress还允许开发者自定义语言包的路径。 具体来说,分析load_plugin_textdomain中指定的路径。 除了默认路径之外,开发者经常会使用:“插件安装目录/语言”或“插件安装目录/lang”。 如果你无法判断,可以从开发者提供的帮助文档中得到提示。
如果我在插件或主题中找不到定义语言包路径的代码怎么办?
如果 WordPress 没有找到特定配置的语言文件,它将尝试在默认路径中查找它。
非活动插件会加载语言包吗?
是的,即使未启用插件,也会读取此“文本字段”标头并用于加载语言包文件。
语言包的扩展名必须是.mo吗?
WordPress可读的语言包必须是编译后的.mo文件,未编译文件的扩展名为.po。 .mo 文件不可编辑,而 .po 文件可由译者编辑。
插件或主题中的 *.pot 文件是什么?
pot是翻译模板文件,即指定文本字段中的所有字符串都在插件或主题中使用。 通过该文件,可以创建不同语言对应的*.po翻译文件。 翻译完成后可以编译成*.mo文件。 WordPress 调用。
如何创建和编辑 WordPress 插件和主题的语言包
创建或编辑语言包需要获取相应的pot文件或可编辑的po文件,一般在WordPress.org插件库中提供,以下是插件示例:
Yoast SEO 翻译
点击进去后,可以直接看到各个语言的翻译,如下图:
Yoast SEO 插件的语言翻译
如上图所示,最新版插件的简体中文翻译只完成了50%,还有1350个字符串的翻译尚未验证或翻译。
点击中文(china)进入后,即可导出语言包的.po文件(可编辑),如下图:
导出插件语言包(.po)
导出的语言包下载到本地后,您可以使用Loco Automatic Translate Addon PRO插件在WordPress中自动翻译,也可以使用Poedit软件在自己的电脑上进行翻译编辑。
注意,文件名需要改为“文本域-zh_CN.po”,编译后的文件应为“文本域-zh_CN.mo”。 如果文件名错误,语言包将不会生效。
暂无评论内容