wordpress 外掛適應多語言開發撰寫方式
IPFS
使用時機:
網頁有多個語言版本供用戶閱覽,或是外掛開發目的是讓多國使用者使用,可提升外掛跨國通用程度。
外掛主檔設定
外掛主檔設定:
/*
* Plugin Name:
* Description: * Author: nekoto
* Plugin URI:
* Version:
* Text Domain: $文本域名
* Domain Path: /languages
*/
1.建立.pot檔(開發主語言翻譯)
檔案名稱:$文本域名.pot
#. 翻譯文本1
msgid "翻譯索引1"
msgstr "翻譯後文字1"
#. 翻譯文本2
msgid "翻譯索引2"
msgstr "翻譯後文字2"
#. 翻譯文本3
msgid "翻譯索引3"
msgstr "翻譯後文字3"
#. 翻譯文本4
msgid "翻譯索引4"
msgstr "翻譯後文字4"
2.建立.po檔(依照語言命名)
檔案名稱:$文本域名.po
若此檔要套用至繁體中文
則檔案名稱命名為:$文本域名-zh_TW.po
(.mo檔命名同理)
3.將撰寫好的.po檔轉成.mo檔 (php只認.mo檔,所以po檔更改後要記得轉.mo檔才會套用變更)
到 https://po2mo.net/ 上傳撰寫好的.po檔後下載轉好的.mo檔
下載後改名
檔案名稱:$文本域名.mo
4.外掛內載入:在外掛主檔內寫入
[php]/*
* Load plugin textdomain.
*/
function plugin_load_textdomain() {
load_plugin_textdomain( '$文本域名', false, basename( dirname( __FILE__ ) ) .'/languages/' );
//這邊等於我把翻譯檔路徑設在我外掛下的languages資料夾,wordpress框架會自動去抓翻譯檔
}
add_action( 'init', 'plugin_load_textdomain' );[/php]
5.在呼叫文字時使用
例如我語言設定檔內有個
#. 翻譯範例
msgid “apple”
msgstr “蘋果”
在頁面要呼叫的時候:
原本不用語言管理時:echo “蘋果”;
使用語言管理寫法後: _e( ‘apple’ , ‘$文本域名’ );
兩個寫法在頁面上都會顯示 蘋果
若要翻譯的文檔中含有變數 則使用printf搭配使用:
printf(
__( ‘你的蘋果是 %s.’, ‘$文本域名’ ),$apple
);
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!