WordPress本地化、翻译

发布于:
分类: Script Tagged

WordPress本地化,要用到的软件,PoEdit,它是一款.po(Portable Object)文件编辑器,,PoEdit常用来汉化各种程序,它内置于wxWidgets工具中,可以在所有它支持的平台上运行,如Unix下的GTK+以及Windows。PoEdit提供更方便的办法编辑目录,而不用通过启动VI文本编辑器,手动编辑。PoEdit是跨平台的开源软件,支持多国语言。

可悲的是:我今天访问他的官网(http://poedit.net/)好像被伟大的GD墙掉了。。

使用 poedit 翻译主题,必须有一个条件,即主题有语言包,可以在主题中看到:languages目录(比如:/public_html/wp-content/themes/twentyfourteen/languages/),然而有些邪教主题会放在lang目录,不过无所谓了,就一个名字而已,load_theme_textdomain 时指定他的目录。

如果要让主题支持语言包,那么你需要在你主题的 functions.php 文件添加下面的代码:

add_action('after_setup_theme', 'my_theme_setup');
function my_theme_setup(){
    load_theme_textdomain('solon', get_template_directory() . '/languages');
}

该代码是通过 load_theme_textdomain() 函数来定义主题的语言路径,其中包含了两个参数,第一个“solon”是 textdomain ,引用的地方一定要和这个textdomain 一致,不然不会生效,“get_template_directory() . ‘/languages’ ”为语言文件存放路径。

想尽一切办法越过长城下载到 POEdit,安装好以后,就是中文界面。

编辑语言文件最好和web目录一致的目录结构,这样有很多好处,比如POEdit可以根据编目的源关键字找到所有翻译的引用点,等等。

简便点的,直接 文件 ->   新建 -> 翻译语言(比如zh_CN),

语言包的命名,它是使用 Gettext 代码来命名的,中文的 语言代码为 zh ,国别代码为 CN,所以最终保存的简体中文语言包为 zh_CN.po,POEdit 会自动生成一个名为 zh_CN.mo 的文件。

菜单 -> 编目 -> 属性

设置 “语言”,就是输出语言的简码,比如简体中文为 zh_CN 。然后字符集一般选择 UTF-8,复数形式一般填 nplurals=2; plural=(n!=1); 整不懂的傍边就有帮助你自己多看看,很简单的。

“源路径”选项卡,由于前面我们创建的语言包路径为当前主题的 languages 目录,所以这里我们添加相对路径 ../ 即可(就会在相对目录中关联查找翻译,以方便你编写语言文件)。

“源关键字”选项卡,这个关键字就是要识别WordPress的几个翻译函数.依次添加:

__
_e
_n:1,2
_x:1,2c
_ex:1,2c

所有事情做的差不多不了,点击菜单栏的 “更新”按钮,如果你前面的步骤没有出错的话,就会自动搜索主题文件中需要翻译的条目。

译完以后,会生成mo文件,和po文件不同,它们区别在于:po文件是给人看的,也是可以直接通过 POEdit 编辑的,姑且把它理解为源文件吧,mo 文件则是给服务器识别的,是用来显示翻译内容所必需的,就是编辑后的机器文件。所以语言目录中,必须有mo文件(可以没有po文件)。否则服务器就没办法加载翻译!

在翻译窗口,直接右键点击源文本,可以看到引用文件,而且可以直接导航打开,这个对于我来说相当有用啊,因为我是修改主题,需要修改textdomain,翻译一处我就可以看到哪里需要把textdomain修改一致,可方便了0_o

翻译完成,上传过后就生效了,呵呵 ,当然你要在后台设置成你翻译的语言。(我学习开始就WP4.1版本,以前版本不知道是不是这样,有说是在wp-config.php 中定义WPLANG)

留下评论

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