倡萌之前分享了 讓W(xué)ordPress主題支持語(yǔ)言本地化 的方法,今天繼續(xù)簡(jiǎn)單說一下 讓W(xué)ordPress插件支持語(yǔ)言本地化。
讓插件支持語(yǔ)言包
在插件的主文件中添加下面的代碼:
function myplugin_init() {
load_plugin_textdomain( 'wpdaxue', false , dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action('plugins_loaded', 'myplugin_init');
上面的代碼使用了 load_plugin_textdomain() 函數(shù),第一個(gè)參數(shù)“wpdaxue”是自定義的 $domain,用在 __()、_e()、_x、_ex 和 _n 函數(shù)中作為末位參數(shù),它是用來檢索被翻譯字符串的唯一標(biāo)識(shí)符;第二個(gè)參數(shù)“dirname( plugin_basename( __FILE__ ) ) . ‘/languages/’”指明 當(dāng)前插件目錄下的 languages 目錄為語(yǔ)言包所在目錄。
規(guī)范編譯要翻譯的內(nèi)容
使用 __()、_e()、_x、_ex 和 _n 函數(shù)規(guī)范需要翻譯的內(nèi)容,需要注意的是,它們的末位參數(shù)需要為上面我們?cè)?load_plugin_textdomain() 自定義的 $domain 參數(shù):wpdaxue。寫法示例如下:
<?php
echo __( 'This is a plugin.','wpdaxue' );
?>
本節(jié)內(nèi)容,請(qǐng)參考 WordPress主題本地化 。
使用 POEdit 制作語(yǔ)言包
關(guān)于 POEdit 制作語(yǔ)言包的方法,請(qǐng)參考 WordPress主題本地化 的相關(guān)部分。在這里需要特別注意的是語(yǔ)言包的命名方式。和WordPress主題語(yǔ)言包不同,插件語(yǔ)言包的一般命名包含兩大部分:插件主文件名+語(yǔ)言及國(guó)別簡(jiǎn)碼。
例如 Google XML Sitemaps 的插件主文件為 sitemap.php ,那么它的語(yǔ)言包名字應(yīng)為 sitemap-zh_CN.po 和 sitemap-zh_CN.mo :

讓W(xué)ordPress識(shí)別語(yǔ)言包
其實(shí)就是根據(jù)WordPress根目錄下的 wp-config.php 文件的 WPLANG 來調(diào)用對(duì)應(yīng)的語(yǔ)言包的:
define('WPLANG', 'zh_CN');
如上,填入的是zh_CN,那么WordPress后臺(tái)、主題和插件的語(yǔ)言都將為 簡(jiǎn)體中文(如果存在簡(jiǎn)體中文語(yǔ)言包的話)。





哥,你的代碼有錯(cuò)誤,害我調(diào)插件調(diào)試半天 ??
function myplugin_init() {
load_plugin_textdomain( 'wpdaxue', dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
應(yīng)改為
function myplugin_init() {
load_plugin_textdomain( 'wpdaxue',false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
你填的這個(gè)目錄應(yīng)該是相對(duì)于插件目錄的,應(yīng)是第三個(gè)參數(shù)
多謝告知,已更正