WordPress的开发人员中,最活跃的要数国外的开发者和公司。很多优秀的主题、插件都来自国外的开发人员,有时候为了本土化,或者为了国际化,都需要了解翻译方法。
首先要说的是如何让你的主题支持汉化。
Wordpress使用以下几个函数
- __()
- _e()
- _x()
- _ex()
- _n()
__()和_e()
__()和_e()都是用来返回当前语言环境对应的字符串内容,不过也有所区别。
来看看代码:
echo __('Hello World');
_e('Hello World');//两行代码的结果是一样的
__()函数是返回字符串,没有打印。_e()是直接输出到html中。
_x()和_ex()
有的时候,翻译需要根据上下文来决定,__()和_e()就无用武之地了。_x()和_ex()就满足这样的情况。“POST”根据上下文的不同可以是“a post(名词)”,也可以是“to post(动词)”。此外_x()还额外有一个参数,用来作为根据显示不同内容。
_ex()和_x()的关系,就与_e()和__()的区别是一样的。前者直接打印输出到html,后者用于返回字符串供其它函数调用,不打印输出。
_n()
_n()用来对单复数进行翻译的,比如评论功能模块。
echo _n( 'One comment' , 'Some comments' , get_comments_number() );
_n()有3个参数,第一个是单数形式的字符串,第二个是复数形式的字符串,第三个是引用的数字。get_comments_number()
是获取评论的条数。
printf()和sprintf()
在编写评论功能模块的时候,会需要在翻译中显示评论数量,这个时候就需要用到printf()或者sprintf()了,关于这两者的区别是前者直接返回到html中输出。
下面来看看printf()的用法:
printf(_n('One comment','%1$s comments',get_comments_number()),get_comments_number());
了解用法之后,就需要使用poedit制作po文件。有需要的可以点击 使用poedit汉化wordpress主题
版权声明:本文为原创文章,版权归 neo 所有。
本文链接:https://idayer.com/wordpress-__-_e-_x-_ex-_n-usage/
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
0 条评论