WordPress国际化的常见问题及解决办法——WordPress

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插件库中提供,以下是插件示例:

image

Yoast SEO 翻译

点击进去后,可以直接看到各个语言的翻译,如下图:

Yoast SEO 插件的语言翻译

如上图所示,最新版插件的简体中文翻译只完成了50%,还有1350个字符串的翻译尚未验证或翻译。

点击中文(china)进入后,即可导出语言包的.po文件(可编辑),如下图:

image

 

导出插件语言包(.po)

导出的语言包下载到本地后,您可以使用Loco Automatic Translate Addon PRO插件在WordPress中自动翻译,也可以使用Poedit软件在自己的电脑上进行翻译编辑。

注意,文件名需要改为“文本域-zh_CN.po”,编译后的文件应为“文本域-zh_CN.mo”。 如果文件名错误,语言包将不会生效。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容

社区求救信号帮助是一种美德