問題描述
我想翻譯 this 外掛。
該外掛已經被翻譯成其他語言,它具有新增新語言的.pot 檔案 (據我所知) 。
如何為我的新語言建立.po 和.mo 檔案,並使其可訪問以供外掛使用?我試圖在 wp-config.php 檔案中定義俄語,方法是插入下面的定義:
define ('WPLANG', 'ru_RU');
最佳解決方案
編輯
還有其他的,但這是最常用的:Poedit,一個 cross-platform gettext 目錄 (.po 檔案) 編輯器。
格式
-
.mo代表機器物件 – 編譯出來的 WordPress 使用的.po檔案 -
.po代表行動式物件 – 具有翻譯字串的可編輯文字檔案 – 基於主.pot檔案,使用從 POT 檔案更新 PoEdit 功能 – 一些人將其分發為主檔案,但應僅用於翻譯 -
.pot代表行動式物件模板 – 可編輯的文字檔案,用於從 WordPress 本身和主題和外掛中獲取所有可翻譯的字串,使用從源更新 PoEdit 功能
步驟
- 複製.pot 檔案並重新命名為
plugin-basename-lang_COUNTRY.po - 引用外掛案例的示例:
subscribe-reloaded-pt_BR.po– pt_BR 表示葡萄牙語巴西,但許多語言沒有國家/地區變化… – 您必須用自己的語言填寫 - 必須將
wp-config.php檔案中的WPLANG設定為您的語言,例如pt_BR - 每次儲存
.po檔案時,PoEdit 會自動生成一個.mo檔案,這是 WordPress 使用的檔案,基本上只需要上傳
Observations
- 如果你做一個完整的或一個體面的部分翻譯,提交到外掛的作者,所以他可以把它包括在儲存庫和你的 get credited 為它
- 不要忘記備份您的翻譯,因為如果您升級外掛,您的檔案將丟失
- @ user17078 外掛建議是相當不錯的,但我從來沒有用過
- 我離開了這個答案的寫作一段時間,@Pippin 在臨時回答,但正在出版… 🙂
次佳解決方案
你可以試試這個 codestyling-localization plugin: 。你可以使用這個翻譯你的外掛和主題。
第三種解決方案
(以下是 DEUTSCH 的翻譯例項,將您的使用者更改為所需的習慣。)
在每個外掛頭中,都有一個獨特的名稱。 (例如:
/*
Plugin Name: my-pluginname
.......
*/
然後在該外掛的資料夾中建立一個資料夾”languages”;
然後,進入你的外掛.php 檔案 (頂部的某處),插入初始化程式碼:
class load_language
{
public function __construct()
{
add_action('init', array($this, 'load_my_transl'));
}
public function load_my_transl()
{
load_plugin_textdomain('my-pluginname', FALSE, dirname(plugin_basename(__FILE__)).'/languages/');
}
}
$zzzz = new load_language;
然後開啟任何文字編輯器,然後插入這樣的程式碼 (注意,我們只新增兩個示例訊息,”hello” 和”bye”,所以你可以按照類似的方式新增你想要的訊息) 。
# English translations for PACKAGE package.
# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: my-pluginname 1.0n"
"Report-Msgid-Bugs-To: n"
"POT-Creation-Date: 2012-08-06 13:46-0400n"
"PO-Revision-Date: 2013-03-21 11:20+0400n"
"Last-Translator: Automatically generatedn"
"Language-Team: nonen"
"MIME-Version: 1.0n"
"Content-Type: text/plain; charset=utf-8n"
"X-Poedit-SourceCharset: iso-8859-1n"
"Content-Transfer-Encoding: 8bitn"
"Plural-Forms: nplurals=2; plural=(n != 1);n"
"X-Generator: Poedit 1.5.4n"
#: mypluginindex.php:87 (it is just a line of a note, to remind where our code appears)
msgid "mymessage1"
msgstr "Hello"
#: mypluginindex.php:88
msgid "mymessage2"
msgstr "Bye"
然後將該檔案儲存為”my-pluginname-en_US.po”(注意,.po 是檔案的副檔名,因此請檢查您的文字編輯器程式是否未儲存到”my-pluginname-en_US.po.TXT”) 。
然後下載 POEDIT 軟體,並開啟此檔案。然後編輯”translation” 欄位,然後儲存為”my-pluginname-de_DE” 將會生成兩個檔案 (如果 poEdit 不自動生成第二個.mo 檔案,只需轉到檔案 – > 首選項 – > 編輯器,然後選中 「自動」 編譯.mo 檔案儲存 「),
然後將這兩個檔案放入”languages” 資料夾。
之後,開啟 wp-config.php,找到這段程式碼:
define ('WPLANG, '');
並改為
define ('WPLANG, 'de_DE');
就這樣。當 WordPress 載入時,它會讀取您的外掛語言檔案,字首為-de_DE 。
所以,在外掛的.php 檔案中,而不是:
echo "Something string";
你應該使用:
echo __("mymessage1", 'my-pluginname');
成品。現在你應該測試你的外掛。
附:已使用的連結:
- codex.wordpress.org/I18n_for_WordPress_Developers
- codex.wordpress.org/Translating_WordPress
- codex.wordpress.org/Writing_a_Plugin
- codex.wordpress.org/Installing_WordPress_in_Your_Language
第四種方案
您將需要使用 POEdit 。這是一個用於建立.po / .mo 檔案的免費應用程式。
我在整個主題 here 上寫了一個漂亮的 in-depth 教程。您可以跳到步驟 3 – 建立文字域的翻譯檔案。
第五種方案
我也建議 ttp://poeditor.com/。它是一個 web-based 翻譯工具,非常適合.po,.mo,.pot 和其他型別的檔案。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。