一文讲明白WordPress插件与主题的翻译

图片[1]-一文讲明白WordPress插件与主题的翻译-悦杰云官网

WordPress的使用者遍布全球各个国家,它作为全世界市场占有率最高的CMS系统国际化自然是每一个开发者必须考虑的重点功能。从WordPress 3.7 开始,其核心程序、插件与主题均支持“语言包”。通过不同的“语言包”从而实现多语言支持。

什么是国际化?

国际化是开发插件与主题的过程,因此它可以很容易地翻译成其他语言。Internationalization 通常缩写为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: 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-语言.mo(例简体中文的语言包名称为:wordpress-seo-zh_CN.mo、德语则是wordpress-seo-de_DE.mo)。

如果用户在WordPress后台将网站语言设置成中文(WordPress仪表板>设置>常规>站点语言),WordPress则会读取“wp-content/languages/plugins/wordpress-seo-zh_CN.mo”文件,并将使用wordpress-seo文本域的所有字符串按语言包的对应的语言字符串显示。

有关于WordPress国际化的常见问题

有些插件的语言包放在wp-content/languages/plugins中不起作用?

答:WordPress除了建议开发者使用默认的路径之外,也允许开发者自定义语言包路径。具体得分析load_plugin_textdomain中指定的路径,除默认路径之外,通常开发者会经常采用的是:“插件安装目录/languages”或“插件安装目录/lang”。如无法判断,可从开发者提供的帮助文档中获得提示。

在插件或主题中找不到定义语言包路径的代码怎么办?

WordPress如果未找到特定配置的语言文件,则将在默认的路径中尝试查找它。

未启用的插件会加载语言包吗?

会,即使插件未激活启用,也会读取此“文本域”标头并用于加载语言包文件。

语言包的扩展名一定是.mo吗?

WordPress可读取的语言包一定是编译后的.mo文件,未编译的文件扩展名为.po。.mo的文件不可编辑,而.po的文件可供翻译人员编辑。

在插件或主题中的*.pot的是什么文件?

pot是一个翻译模板文件,也就是在插件或主题中使用指定文本域的所有字符串,通过该文件可以创建对应不同语言的*.po翻译文件,翻译完成后编译成*.mo文件才可供WordPress调用。

如何创建、编辑WordPress插件与主题的语言包

要创建或编辑语言包,需要获得相应的pot文件或可编辑的po文件,一般情况可在WordPress.org插件库中获得,下面以插件为例:

图片[2]-一文讲明白WordPress插件与主题的翻译-悦杰云官网
图片[3]-一文讲明白WordPress插件与主题的翻译-悦杰云官网

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

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

图片[4]-一文讲明白WordPress插件与主题的翻译-悦杰云官网

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

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

------本页内容已结束,喜欢请分享,更多精彩文章,请关注公众号【悦杰云】------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
点赞3 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容