Wordpress 语言包设置和翻译
多语言翻译设置
- 主题的
functions.php
添加多语言的初始代码1 2 3 4
function theme_languages_init(){ load_theme_textdomain('bluenight', get_template_directory() . '/languages'); } add_action ('init', 'theme_languages_init');
插件为:
1 2 3 4 5 6 | add_action('plugins_loaded','MingPressAdmin::mingspress_textdomain'); class MingPressAdmin { static function mingspress_textdomain() { $result = load_plugin_textdomain( 'mingspress', false, dirname( plugin_basename( __FILE__ ) ) ); } } |
将对应的语言包放在主题下,bluenight是主题名,也相当于翻译的命名空间
2. 在主题中使用
_e
和__
标记需要多语言翻译的内容,如:1 2 3 4 | // 普通的输出使用 _e() 函数 <div class="post"><p><?php _e('Sorry, no posts matched your criteria.', 'bluenight'); ?></p></div> // 在函数中走参数或返回值输出使用 __() 函数 echo the_tags('<h2>'.__('Related ','bluenight'), ' , ' , __(' Posts','bluenight').'</h2>').'<ul>'; |
- PoEdit 设置
下载地址:http://poedit.net/
安装后新建一个工程,
翻译的语言这里选择:简体中文/zh_CN
确认后再点击保存会提供保存的名称和位置,我们放在主题的language下,命名为zh_CN.po
如果可供其他人翻译的模板,则翻译语言一则选择英语,保存为主题名.pot
那么其他人翻译时可以用PoEdit
中导入此模板进行翻译,wordpress
官方主题就是这样的
保存后点击从源代码提取,填写翻译的属性,再保存一次
源路径填写为文件上一级目录:
源关键字:
__
_e
_n:1,2
_x:1,2c
_ex:1,2c
_n是单复数,如评论
<?php
echo _n( 'There is a comment' , 'There are comments' , get_comments_number() );
?>
_x和_ex是按上下文语义翻译,如:
名词:一篇文章
<?php _ex("Post","a post","mings");?>
动词:发布
<?php _ex("Post","To post","mings");?>
点击从源文件更新,此时PoEdit
搜索到的翻译字符串为
确认后会自动导入翻译文本
修改wp-config.php
的语言常量
define('WPLANG', 'zh_CN');
参考文章:
http://www.wpdaxue.com/localize-wordpress-themes.html
http://www.wpdaxue.com/difference-between-__-_e-_x-_ex-and-_n.html
WordPress主题插件汉化教程 - 露兜博客
令插件支持语言包
function myplugin_init() {
load_plugin_textdomain( 'wpdaxue', false , dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action('plugins_loaded', 'myplugin_init');
此时語言包命名方式为 wpdaxue-zh_CN.po
,放在插件的languages
目录下