wordpress插件外掛多語言開發撰寫方式

https://developer.wordpress.org/cli/commands/i18n/make-mo/
編寫wordpress plugin需要多個語言版本供用戶閱覽,可以利用wordpress內置的多語言機制編寫插件,從而使插件支持多語言(multi-language)的目的

1. 插件入口檔案設定:

/**
 * Plugin Name:     my plugin
 * Plugin URI:      PLUGIN SITE HERE
 * Description:     PLUGIN DESCRIPTION HERE
 * Author:          YOUR NAME HERE
 * Author URI:      YOUR SITE HERE
 * Text Domain:     my-plugin
 * Domain Path:     /languages
 * Version:         0.1.0
 *
 * @package         Myplugin
 */
主要是下面2行指定了多語言
* Text Domain:     my-plugin 文本域,與其他插件區別
* Domain Path:     /languages 域路徑,固定在這裏即可

各參數詳細說明可參考 https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/#top

順便說一下,上面的格式直接用wordpress cli生成插件腳手架的時候已經幫你寫好

$ wp scaffold plugin sample-plugin  --allow-root --skip-tests

腳手架命令安裝 https://developer.wordpress.org/cli/commands/
有這個命令,以後創建插件,啟用,禁用插件,主題等代碼都很方便

2.其他語言的.po檔(依照語言命名)

檔案名稱:my-plugin-[locale].po
若此檔要套用至繁體中文, 則檔案名稱命名為:my-plugin-zh_TW.po

my-plugin-zh_TW.po 的內容例子

msgid "apple"
msgstr "蘋果"

msgid "car"
msgstr "小車"
語言名稱 代碼
Chinese (China) zh_CN
Chinese (Hong Kong) zh_HK
Chinese (Taiwan) zh_TW

更多的在語言代碼 https://wpastra.com/docs/complete-list-wordpress-locale-codes/

3.將撰寫好的.po檔轉成.mo檔 (php只認.mo檔,所以po檔更改後要記得轉.mo檔才會套用變更)

cd /var/www/html/wp-content/plugins/my-plugin/languages
# 調用cli 命令,生成 mo 文件
sudo -u www-data wp i18n make-mo my-plugin-zh_TW.po

4.插件主文件代碼需要加個Action

/*
* Load plugin textdomain.
*/
function plugin_load_textdomain() {
  load_plugin_textdomain( 'my-plugin', false, basename( dirname( __FILE__ ) ) .'/languages/' );
//這邊等於我把翻譯檔路徑設在我外掛下的languages資料夾,wordpress框架會自動去抓翻譯檔
}
add_action( 'init', 'plugin_load_textdomain' );

5.代碼調用翻譯函數

_e('car', 'my-plugin');
printf(__('your car is %s.', 'my-plugin'),$carName);

更多詳細可參考這裏 https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/#top

Alex Lin

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。