开发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 方法优秀,不过对于浏览量不大的网站,或者开启了页面缓存的情况下,两种方法的区别并不明显。