__()、_e()、_x()、_ex()、_n()和_nx()的用法与区别

wordpress函数 2014年09月23日 , , , , , , ,

WordPress为了满足主题和插件的国际化与本地化的需求,提供了很多方便的函数。作为wordpress主题或者插件的开发人员,建议大家要掌握主题或者插件国际化和本地化的相关函数。

常用国际化和本地化函数

这些函数使得当主题不同的语言且包含该语言的翻译文件时,可以自动的输出相应的语言。说白了就是wordpress根据设定语言不同加载同的语言文件进行输出。

如果将字符串直接输出就不会有这样的效果。

__()和_e()

__()和_e()返回当前语言对应的字符串。定义如下,

// __()
function __( $text, $domain = 'default' ) {
	return translate( $text, $domain );
}

// _e()
function _e( $text, $domain = 'default' ) {
	echo translate( $text, $domain );
}

区别在于__()返回字符串值;_e()返回字符到浏览器。其他两组函数中带e的函数返回到浏览器。

如下两个函数效果相同:

echo __('comments');
_e('commnets');

_x()和_ex()

有时使用相同的表达不同的含义,具体的含义需要根据上下文情况来确定。为了让主题或插件国际化的时区别对待需要使用额外的参数加以区别,需要使用上面两个函数。

如,comment做名词表示评论;做动词表示评论。显然不是同一个含义。

_ex('comment', 'a comment');
_ex('comment', 'to comment');

生成.pot文件时,其对应两条翻译:comment[a comment]和comment[to comment]。

_n()和_en()

用来处理一些语言中单数与复数不同的问题。一般会使用条件语句或者条件表达式来处理,如,

each get_comments_number().'comment'.get_comments_number()<=1 ? '' : 's'; 

虽然已经很简洁了,但也不是一下就能看懂。

echo get_comments_number()._n('', 's', get_commnets_number());

这样就不用为某些语言的单复数问题烦恼了。

如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
日志标题:《__()、_e()、_x()、_ex()、_n()和_nx()的用法与区别》
日志链接:http://furzoom.com/wordpress-__-_e-_x-_ex-_n-_nx-usage/
博客名称:枫竹梦

发表评论

插入图片

NOTICE1:请申请gravatar头像,没有头像的评论可能不会被回复!

回到顶部