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主题