简介
WordPress默认使用美式英语,但其内置功能可使用户将WordPress转换或“本地化”(参见安装本地语言的WordPress)成其它语言版本。WordPress本地化主要使用Gnu Gettext系统(参见翻译WordPress)。在Gettext系统中,某个查表函数会遍历WordPress中的PHP文件生成的文本信息,在文件中找到与默认英语单词或词组意思相对应的其它语种单词或词组。大多数WordPress元素中,Gettext都能够收到很好的效果;但有一小部分WordPress元素的本地化无法在Gettext系统中完成。本文解释了信息无法在Gettext中实现本地化的原因并介绍了相应的解决方法。
哪些WordPress元素不能使用Gettext进行本地化
WordPress中不能或不应该使用Gettext进行本地化/翻译的元素包括:
- WordPress主README文件——这是一个静态的HTML文件,而非PHP文件,因此不能被Gettext函数遍历。
- 一些错误信息会在WordPress加载周期的早期生成,其时间甚至早于Gettext的加载,因此不能用Gettext进行本地化
- WordPress中包括一些运行在用户浏览器上的JavaScript功能(JavaScript与PHP不同,PHP运行在web浏览器上),用户浏览器上没有可用的Gettext。
怎样国际化/翻译无法gettext的WordPress元素
要国际化或本地化那些无法使用gettext的WordPress元素,需要用一个修订版本文件取代英语版本的文件,修订版中的英文信息都被目标语言信息所代替。下文中列出了需要翻译的文件列表。
提示:发布自己翻译后的文件以供他人使用时,一定要注意WordPress的版本号信息!确定自己翻译的文件所对应的WordPress版本,或者也可以为不同版本的WordPress发布不同的翻译文件。可以在WordPress已发布版本存档中查找不同的WordPress版本,如果希望了解更多信息,可以使用 Trac浏览器 (WordPress SVN源代码资料库专用浏览器)。
需要翻译的文件
核心文件(至WP 2.5)
- readme.html —— 这是一个静态的HTML文件,而非PHP文件,因此不能被Gettext函数遍历。整个文件都需要被翻译。
- wp-blog-header.php ——“不存在的wp-config.php文件”错误信息需要进行翻译。
- wp-settings.php ——加载Gettext引擎前会出现一些die命令,因此这些命令也需要翻译。
- wp-config-sample.php ——见下文。
- wp-admin/install.php ——“不存在的wp-config.php文件”错误信息需要进行翻译。
- wp-admin/setup-config.php ——这是一个可自动生成wp-config.php文件的脚本,该脚本独立于WordPress之外,因此无法使用Gettext系统。整个文件都需要翻译。
- wp-admin/upgrade.php ——需要翻译文件顶端的警告信息。
- wp-includes/functions.php ——需要翻译文件最下方的数据库错误信息。
- wp-includes/wp-db.php ——需要翻译数据库错误信息,因为数据库加载发生于WordPress加载过程的早期。
核心文件(WP 2.6)
- readme.html ——这是一个静态的HTML文件,而非PHP文件,因此不能被Gettext函数遍历。整个文件都需要被翻译。
- wp-config-sample.php ——见下文。
- wp-admin/setup-config.php ——这是一个可自动生成wp-config.php文件的脚本,该脚本独立于WordPress之外,因此无法使用Gettext系统。整个文件都需要翻译。
wp-config-sample.php
翻译PHP注释中的说明(使非英语用户了解如何配置WordPress),将WPLANG变量设置为正确的语言类型。例如如果使用bg_BG语言,可将:
define ('WPLANG', '');
更改为:
define ('WPLANG', 'bg_BG');
将 'put your unique phrase here'翻译成目标语言。然后在wp-content/languages/<your-locale>.php中输入:
$wp_default_secret_key = '<the-translated-phrase>';
例如,保加利亚语版本将是:
dist/wp-config-sample.php:
[…]
define('AUTH_KEY', 'вашата супер-ултра-уникална фраза сложете тук');
define('SECURE_AUTH_KEY', 'вашата супер-ултра-уникална фраза сложете тук');
define('LOGGED_IN_KEY', 'вашата супер-ултра-уникална фраза сложете тук');
[…]
dist/wp-content/languages/bg_BG.php
<?php
$wp_default_secret_key = 'вашата супер-ултра-уникална фраза сложете тук';
?>
WordPress主题Default
Default完全以英语编写。Default主题的所有文件(wp-content/theme/default中的文件)都需要翻译。如果要使用其它主题,还需要本地化所用主题。
Default主题除了英文版,还有一个Gettext版,地址在WordPress-i18n SVN版本库主题文件夹中。
无需翻译的文件
- license.txt ——出于法律上的要求,该文件应予以保留。可以在存档中添加该文件的翻译版。
分类:中文手册