問題描述
我想翻譯 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。