开发WordPress多语言网站,本站推荐过两个插件,其中一个就是Polylang,越用越觉得这个插件好用。今天要给大家介绍的是 Polylang 的字符串翻译功能。
在开发WordPress主题的时候,我们避免不了在模版中使用一些固定字符串,对单语言网站来说,简单粗暴的写死这些字符串一般没什么问题 。开发多语言网站的时候,这么干就不行了,因为这些固定的字符串也需要翻译。有两种办法可以实现这些固定字符串的翻译。一种是使用 Gettext 方法,另外一种就是使用 Polylang 的字符串翻译功能。
注册需要翻译的字符串
使用Polylang 字符串翻译之前,我们需要先注册需要翻译的字符串,注册方法很简单,直接使用 pll_register_string 函数,传入两个参数就可以搞定。注册后,这些需要翻译的字符串就出现在了后台的「语言->字符串翻译」页面中,我们在这些页面中编辑对应语言的翻译就可以了。
$strings = [
'Hot Videos',
'Read More',
'Read All',
];
foreach ($strings as $s) {
pll_register_string(sanitize_key($s), $s);
}
在模版中显示字符串
在模版原来使用固定字符串的地方,使用 pll__() 函数输出来代替固定字符串即可按语言显示翻译后的字符串。
<?= pll__('Read More'); ?>
注意:在前端调用的字符串必须和注册的字符串完全一致,才能输出字符串翻译,空格、标点、大小写不一致都会导致翻译无法正确输出。
相对于 Gettext 方法,Polylang 的字符串翻译功能更简单,更适合不擅长代码的网站管理员使用。首先,Polylang直接在WordPress后台就能进行翻译,不需要额外的软件、也不会产生额外的文件。然后新增字符串的时候,直接在后台刷新即可。在 Polylang 中新增语言后,字符串翻译中也会即时出现该语言。
性能方面,Polylang 肯定没有 Gettext 方法优秀,不过对于浏览量不大的网站,或者开启了页面缓存的情况下,两种方法的区别并不明显。
7 thoughts on “使用 Polylang 字符串翻译功能翻译模版中的字符串”
了解一下,虽然我还是单独建站。
下次可以试一下,你会发现后期维护起来省事多了。
但是这种翻译插件还是没办法实现两个不同的站举办不同的促销活动啊。
想想办法应该也是可以实现的,比如判断以下当前网站目前显示的是什么语言,然后根据语言显示不同的促销内容。
这种如何实现出来的,我有点实现不出来呀,可以帮一下忙吗
这个方法不错
你实现他写的操作了吗