WordPress 插件\主题 本地化
一旦你的插件编程工作已结束,另一个值得考虑的方面就是怎样将你的插件国际化(当然,这是建立在你想把你的作品发布给公众的前提上)。“国际化”就是一个建设你的软件使之能被本地化的过程;而“本地化”就是将你软件显示文本翻译成各种语言的过程。WordPress 已被来自全世界各个地方的爱好者使用,所以它以将国际化和本地化功能融入其结构,包括插件程序的本地化功能。想了解更多的 GNU gettext 本地化的背景知识,请参照翻译 WordPress。
极力推荐你将你的插件进行国际化,这样来自五湖四海的用户名都可以本地化它。而且这整个过程也是十分直接明了:
- 先给你的插件选一个翻译用的“文本域”名称。这一般同你的插件文件名称相同,当然不包括.php后缀名,而且必须是具有唯一性,至少保证不要同使用者已安装的其他插件同名。
- 不管任何时候你的插件要使用文字来显示给网页读者(也即“信息文”),都尽量将它们嵌入在如下两个 WordPress gettext 函数程序段的任一之中。记住,不同于 WordPress 核心代码,在你插件里的国际化函数里你应该使用第二个参数来传递你自选的文本域。而在 WordPress 核心代码,这个参数默认为空。
__() 用来将 message 作为一个参数传递给另外一个函数。 _e() 用来直接把 message 写到页面上。
- __($message, $domain) : 用本地化的语言为 $domain 翻译 $message 。输出的字符串可以继续被其他函数调用。
- _e($message, $domain) :用本地化的语言为 $domain 翻译 $message ,然后显示到用户的屏幕。如果你的文字将直接显示给读者,就可以使用该函数。
- 为你的插件创建一个 POT 文件 (这个一个列有所有文字条的翻译条目文件),随你的插件一起发布。插件用户将需要生成一个翻译本地化好的 MO 文件,然后把它放在你插件的同一文件夹里。并且这个 mo 文件的取名也有讲究,应该是象 domain-ll_CC.mo,这里 ll_CC 就是本地国家和语言代码(如 zh_CN)。参照 翻译 WordPress 上更多关于 POT 文件、MO 文件及本地化的信息。
- 在你插件里加入一个 load_plugin_textdomain 子程序用以调用你的插件翻译。这个子程序一定需要在你 gettext 函数的前面,但最好是越晚越好(因为一些多语言插件在调用时会改变一些地域设置)。一个可行的方法就是在你所有插件的子程序前面增加一个初始子程序。例如,假设你的文本域叫 "fabfunc",则:












































