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插件库中获得,下面以插件为例:
从上图所示,该插件最新版的简体中文翻译仅完成了50%,尚有1350个字符串尚未验证其翻译或未翻译。
点击chinese(china)进入后,可以导出该语言包的.po文件(可编辑),如下图:
导出的语言包下载到本地后,可使用Loco Automatic Translate Addon PRO插件在WordPress中自动翻译,或使用Poedit软件在自己电脑上进行翻译编辑。
注意文件名需要改为”文本域-zh_CN.po”,编译后的文件应该为”文本域-zh_CN.mo”,如果文件名错误语言包是不会生效的。
2023-12-14
,某些文章具有时效性,若有错误或已失效,请在下方留言或添加QQ群联系悦杰云社区。 所有的 IPA安装包都需要 证书 才能安装至手机,推荐购买个人P12证书:立即购买
所有的 IPA安装包都需要 证书 才能安装至手机,推荐购买个人P12证书立即订制
安装全能签/轻松签后添加软件源直接在全能签/轻松签安装应用
暂无评论内容