問題描述

我想翻譯 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');

 成品。現在你應該測試你的插件。

附:已使用的鏈接:

第四種方案

您將需要使用 POEdit 。這是一個用於創建.po / .mo 文件的免費應用程序。

我在整個主題 here 上寫了一個漂亮的 in-depth 教程。您可以跳到步驟 3 – 創建文本域的翻譯文件。

第五種方案

我也建議 ttp://poeditor.com/。它是一個 web-based 翻譯工具,非常適合.po,.mo,.pot 和其他類型的文件。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。