YAOHAIXIAO.COM

HTML(5),CSS(3),JavaScript,DOM,Ajax,JSON,Front-end technologies & Yaohaixiao

热门标签:JavaScript Performance 前端开发 前端性能优化 原创

Rss

Home » WordPress » WordPress 主题如何设置多语言支持

WordPress 主题如何设置多语言支持

WordPress 主题支持多语言并不复杂,我们需要使用到 WordPress 的三个函数:__()_e()load_theme_textdomain()。具体的操作如下:

第一步:在 functions.php 页面中添加支持多语言的初始化代码

/** 
 * Languages Init
 */
function theme_languages_init(){
	load_theme_textdomain('bluenight', get_template_directory() . '/languages');
}
add_action ('init', 'theme_languages_init');

很简单的处理,主要是利用 load_theme_textdomain() 指定主题语言模块的名称(bluenight)和语言文件的目录(/wp-content/themes/BlueNight/languages).如例子中的所示,我们通常是在主题的目录下新建一个名为 languages 的文件夹来存放翻译语言的.po和.mo文件。其中.po文件为语言文件的源文件。

第二步:将主题中需要翻译的文字使用 __()_e() 输出

// 普通的输出使用 _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>';

如实例代码中说的,作为字符串直接输出的时候我们使用 _e() 函数,而作为一个 PHP 方法的参数时,则需要使用 __() 函数。这两个函数都接受同样的参数:第一个为需要翻译的文本,第二个则是翻译主题的之前定义的主题语言模块名称(bluenight)。操作不复杂,麻烦是你需要把主题中所有需要翻译的文本都使用这两个函数输出。

第三步:使用 PoEdit 制作翻译语言文件

我们首先要做的是下载一个 PoEdit(PoEdit 是一款免费的软件,而且最新版本支持中文哦!)。接下来我们就需要开始新建一个翻译项目(新建编目),如下图:

设置翻译属性

设置翻译属性

设置翻译属性,主要是要注意把源代码字符集和字符集都设置为 UTF-8 代码,其余的就自己根据需要填写好。

设置源路径

设置源路径

设置源路径,路基基本是固定的(因为我们都是在主题目录下的 languages 目录下存放语言文件),如图设置好就行。只是 PoEdit 设置路径的时候需要在路径下的空白处多点几下才会出来路径的输入框,反正我的这个不是那么灵敏。

设置源关键字

设置源关键字

设置源关键字,如图我们就知道了,就是设置 __()_e() 函数作为关键字,扫描提取要翻译的文本。

表单填写好设置信息表单,点击确定,则会提示里保存文件,我们都是选择保存到主题的 languages 目录下面,如图:

保存文件名为 zh_CN

保存文件名为 zh_CN

BlueNight 主题是支持中文和英文,所以我就将文件名保存为“zh_CN”,如果你想支持更多的语言也可以新建更多的翻译编目,然后保存为相应的目标文件名:

  • US English/en_US (default)
  • 简体中文/zh_CN (加勒比-海贼)
  • 繁體中文/zh_TW
  • Albanian/sq_AL
  • Arabic/ar
  • Basque/eu
  • Brazilian Portuguese/pt_BR
  • Bulgarian/bg_BG
  • Catalan/ca_ES
  • Croatian/hr_HR
  • Czech/cs_CZ
  • Danish/da_DK
  • Dutch/nl_NL
  • Finnish/fi
  • French/fr_FR
  • German/de_DE
  • Hindi/hi_IN
  • Hungarian/hu_HU
  • Icelandic/is_IS
  • Indonesian/id_ID
  • Israeli Hebrew/he_IL
  • Italian/it_IT
  • Japanese/ja
  • Lithuanian/lt_LT
  • Korean/ko_KR
  • Kurdish/ckb
  • Norwegian/nb_NO
  • Persian/fa_IR
  • Polish/pl_PL
  • Portuguese/pt_PT
  • Russian/ru_RU
  • Romanian/ro_RO
  • Spanish/es_ES
  • Swedish/sv_SE
  • Tamil/ta_TA
  • Thai/th
  • Turkish/tr_TR
  • Uighur China/ug_CN
  • Ukrainian/uk
  • Vietnamese/vi_VN

这些处理完后,接下来我们要做的就是把 PoEidt 扫描到的文本都添加相应的翻译问文本,如图:

填写翻译文本

填写翻译文本

OK!到这里就完成了所需要的一切工作了。而语言的切换则根据你在 wp-config.php 文件中定义的语言设置自动切换的:

/**
 * WordPress 语言设置,中文版本默认为中文。
 *
 * 本项设定能够让 WordPress 显示您需要的语言。
 * wp-content/languages 内应放置同名的 .mo 语言文件。
 * 要使用 WordPress 简体中文界面,只需填入 zh_CN。
 */
define('WPLANG', 'zh_CN');

声明:本文采用BY-NC-SA协议进行授权。转载请注明转自:WordPress 主题如何设置多语言支持

« »

5 条评论

  • 貌似有点复杂哈。

  • 如果我准备好了PO,MO文件,如何能让访客通过按钮来切换Theme的语言呢?

    • 语言的切换是需要修改config.php文件的,如果你做了选择框让用户选择,那么你需要使用php写config.php文件的语言设置

  • 最后希望喜欢 BlueNight 朋友能够提供更多语言的支持,^-^!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(Spamcheck Enabled)