nekoto

WordPress客製化外掛,JAVA全端工程師

wordpress 外掛適應多語言開發撰寫方式

使用時機:
網頁有多個語言版本供用戶閱覽,或是外掛開發目的是讓多國使用者使用,可提升外掛跨國通用程度。

外掛主檔設定

外掛主檔設定:

/*

 * 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.外掛內載入:在外掛主檔內寫入

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

5.在呼叫文字時使用

例如我語言設定檔內有個

#. 翻譯範例

msgid “apple”

msgstr “蘋果”

在頁面要呼叫的時候:

原本不用語言管理時:echo “蘋果”; 

使用語言管理寫法後: _e( ‘apple’ , ‘$文本域名’ );

兩個寫法在頁面上都會顯示 蘋果

若要翻譯的文檔中含有變數 則使用printf搭配使用:

printf(

__( ‘你的蘋果是 %s.’, ‘$文本域名’ ),$apple

);

原文連結展躍 WordPress 網頁設計

CC BY-NC-ND 2.0

Like my work?
Don't forget to support or like, so I know you are with me..

Want to read more ?

Login with one click and join the most diverse creator community.