WordPress的语言设定

本文属于WordPress主题翻译教学系列,文章列表: 设计国际化的主题: WordPress主题翻译教学 如何翻译WordPress主题 进阶WordPress主题翻译技巧 WordPress的语言设定 前三篇讲了翻译的方法,却忘了讲怎么用上这些翻译,这一篇算是之前的内容的补充,主要讲如何设定WordPress的语言跟主题的翻译文件该放在哪里。 1. 设定WordPress的语言 首先,其实WordPress本身提供多国语言版本,可以直接下载,包括繁体中文与简体中文。下载回来后,不用任何设定就可以使用。实际上,这些版本跟英文版只有两项区别,如果你本身用的是英文版,想要改为中文版,可以参考这两项进行修改。 第一项语言设定。在WordPress根目录里的wp-config.php底部有以下这一行: define (‘WPLANG’, ”); 这就是WordPress的语言设定,预设是英文,要改成中文,只要填入语言代号,如简体中文,请改为: define (‘WPLANG’, ‘zh_CN’); 我们之前讲的翻译文件的命名规则得出来的就是语言代号。同理,繁体中文只需将zh_CN改为zh_TW就可以了。储存并关闭就完成了语言的修改。接着,WordPress就会自动寻找相应的语言文件,到哪里寻找呢?这就是第二点要讲的内容。

进阶WordPress主题翻译技巧

本文属于WordPress主题翻译教学系列,文章列表: 设计国际化的主题: WordPress主题翻译教学 如何翻译WordPress主题 进阶WordPress主题翻译技巧 继昨天的如何翻译WordPress主题之后,我又参考了一些文章,觉得有必要再补充一些东西,整个WordPress主题翻译教学系列才算完整。今天要讲的主要是一些设计主题时要注意的地方,以使翻译可以更完美。 设立文字命名空间(Text Domain) 文字命名空间(Text Domain)是为了避免本主题的翻译文字和其他主题或WordPress本身的文字发生冲突而设立的,它的意思就像一个文件夹,将本主题的文字都放在里面,需要这个主题的文字时,WordPress就会直接来到这里找,这样就不怕跟其他主题的文字弄乱了。 设立文字命名空间的方法很简单,假设我们要加入zack_theme作为Text Domain,只要在functions.php的开头加入以下程式码: load_theme_textdomain(‘zack_theme’); 我在之前的文章里提过,要使用__()或_e()来标示需要翻译的文字,加入了Text Domain之后,有一点小变化: __($text, $domain):原本只需填入$text作为参数,现在要把Text Domain也加入作为第二参数。 _e($text, $domain):同上。 这样WordPress知道文字是需于哪个Domain的,就能快速地找到相应翻译。

如何翻译WordPress主题

上一篇,我们讨论了如何让你的WordPress主题可被翻译成其他语言,今天我讲一下,具体如何去翻译WordPress主题。 同样地,先介绍一些基本概念。需要翻译的文字会储存在.PO文件中,而翻译完成的版本会储存为.MO文件里。这两个文件的命名有一定的规则:语言代码_国家或地区代码。如果不是使用UTF-8编码,还要加上所用编码格式,请看以下例子: en_US – 美国英语 en_UK – 英国英语 fr_FR – 法文 zh_CN – 中文(简体) zh_TW – 繁体中文(台湾) ja_JP.EUC-JP.mo – 采用EUC-JP编码的日文 有些主题会提供.PO文件以供翻译,没有也没关系我们可以用poEdit生成。poEdit就是翻译.PO文件专用的软件,免费提供下载,支持Windows, Mac跟Linux平台,图形介面,使用起来十分方便。

设计国际化的主题: WordPress主题翻译教学

WordPress是以英文为主的网志系统,插件跟主题也是英文版为多,但随着WordPress在全球范围地流行,越来越多不同国家,说着不同语言的人加入WordPress的大家庭。会出现这一情况,其中一个原因就是WordPress本身具国际化概念的设计。WordPress本身有多国语言版本(包括简体及繁体中文),所有的插件及主题亦能轻易地被翻译成其他语言。插件及主题设计师在设计时亦应该考虑翻译的问题,本篇将讨论如何设计出适合翻译的插件或主题。 首先我们要了解WordPress所使用的翻译系统:GNU gettext。这应是目前最流行的翻译框架(Framework),尤其在开源软件的世界中,大多数支援国际化的程式都使用GNU gettext。这个系统能让程式员在编写程式时,标示出需要翻译的文字,这些文字能轻易地被提取出来,让翻译员进行翻译,翻译完成后,系统就能直接使用新语言代替程式中的文字。 要标示出需要翻译的文字,主要有以下三种方式: __($text) : 这句程式表示$text需要翻译,然后返回翻译结果 _e($text) : 这句程式表示$text需要翻译,然后输出翻译结果到网页,相当于:echo __($text) __ngettext($single, $plural, $number) : 当$number等于1时,使用$single的翻译,当$number大于1时,使用$plural的翻译 很明显,第三项是为了解决单复数的问题。 再来我们要想的是:哪些文字需要被翻译?答案是直接从主题或插件输出到网页的文字,而不是从数据库(如文章)或后台设定(如网志名称)取得的资料。详细的情况,你只要多试几次就会明白。