wordpress i18n多语言支持实现
文档http://codex.wordpress.org/I18n_for_WordPress_Developers
WP使用gettext(GNU来源项目)来实现i18n,带式实际使用是WP的函数__()和_e(), __是返回对应字符串,_e则是加载对应字符串并echo到返回流中。
首先WP的多语言是个全局配置,wp-config.php中的配置项WPLANG指定是哪个语言。
然后在程序中加载mo
load_theme_textdomain (theme对应函数)
或是plugin中使用load_plugin_textdomain( $domain, $path_from_abspath, $path_from_plugins_folder )
来加载文件夹中对应语言的mo文件。
然后在你的php代码中使用__或_e来使用这些多语言。
wordpress多语言要使用xgettext生成pot文件然后转为po文件再转为mo文件,这位台湾同胞写的比较详细:
http://blog.longwin.com.tw/2010/08/windows-gettext-2010/
Windows 的 GetText 工具安裝
- 於 GetText for Windows 下載 Binaries 版, 安裝即可. (假設安裝於 C:\gettext)
GetText 所需相關 Library 安裝
- 上述套件下載後, 於 Windows XP 會缺下述兩個 Library:
- libexpat.dll
- libiconv2.dll
- 可自行去尋找, 或者 直接下載 我抓好的版本 : gettext-dll.tgz
- 將這兩個檔案放到 C:\gettext\bin\ 即可.
GetText 工具使用
- C:\gettext\bin\xgettext.exe --from-code=UTF-8 -d hello hello.php
- C:\gettext\bin\msgmerge.exe -o hello.po locale/zh_TW/LC_MESSAGES/hello.po hello.po
- C:\gettext\bin\msgfmt.exe -o locale/zh_TW/LC_MESSAGES/hello.mo hello.po
这里我来讲一下怎么使用:
新建File/New Catalog,出现对话框,红色框式必填的且要保证正确,
source path就是php代码文件夹
由于使用php所以需要添加关键字_e和__
这样点击ok一路ok下去,就发现所有需要翻译的都加进来了。还可以编辑,它自动生成po,mo文件。
很方便是吧。