web-dev-qa-db-ja.com

.po .moファイルを使ってプラグインを翻訳する

this / pluginを翻訳したい。

このプラグインはすでに他の言語に翻訳されていて、新しい言語を追加するための.potファイルを持っています(説明から理解できる範囲で)。

新しい言語用に.poおよび.moファイルを作成し、プラグインで使用するためにそれらをアクセス可能にするにはどうすればよいですか?以下の定義を挿入して、私のwp-config.phpファイルにロシア語を定義しようとしました。

define ('WPLANG', 'ru_RU');
33
s976

編集者

他にもありますが、これが最もよく使用されます: Poedit 、クロスプラットフォームgettextカタログ(.poファイル)エディター。

フォーマット

  • .moはMachine Objectの略です
    -WordPressが使用する.poファイルのエクスポートのコンパイル
  • .poはPortable Objectの略です
    -翻訳文字列を含む編集可能なテキストファイル
    -マスター.potファイルに基づいて、POTファイルから更新 PoEdit関数を使用
    -一部の人々はこれをマスターファイルとして配布していますが、翻訳にのみ使用する必要があります
  • .potは、Portable Object Templateの略です
    -ソースから更新 PoEdit関数を使用して、WordPress自体およびテーマとプラグインからすべての翻訳可能な文字列を取得するために使用される編集可能なテキストファイル

手順

  • .potファイルを複製し、名前をplugin-basename-lang_COUNTRY.poに変更します
  • 参照されているプラ​​グインの場合の例:subscribe-reloaded-pt_BR.po
    -pt_BRはポルトガル語ブラジルを意味しますが、多くの言語には国のバリエーションはありません...
    -自分の言語で記入する必要があります
  • WPLANGwp-config.phpファイルでは、pt_BRなどの言語に設定する必要があります
  • .poファイルを保存するたびに、PoEditは自動的に.moファイルを生成します。これはWordPressが使用するファイルであり、基本的にアップロードする必要があるファイルのみです

観察

  • 完全またはまともな部分翻訳を行う場合は、プラグインの作成者に提出して、リポジトリに含めることができるようにします クレジットを取得
  • プラグインをアップグレードするとファイルが失われるため、翻訳のバックアップを作成することを忘れないでください
  • @ user17078プラグインの提案は非常に素晴らしいですが、私はあまり使いませんでした
42
brasofilo

あなたはこれを試すことができます codestyling-localization plugin: 。これを使ってプラグインやテーマを翻訳することができます。

8
Aristeides

(これが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;

それから任意のテキストエディタを開いて、このコードのように挿入してください(注意、私たちは2つのサンプルメッセージ、 "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.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 13:46-0400\n"
"PO-Revision-Date: 2013-03-21 11:20+0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"


#: 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"として保存すると2つのファイルが生成されます(poEditが2番目の.moファイルを自動的に生成しない場合は、File - > Preferences - > Editorをクリックしてチェックします)。 「保存時に.moファイルを自動的にコンパイルする」というボックス

それからそれら二つのファイルを "languages"フォルダに入れてください。

その後、wp-config.phpを開いて以下のコードを見つけてください。

define ('WPLANG, '');

そしてに変わる

define ('WPLANG, 'de_DE');

それで全部です。 WordPressがロードされると、プラグインの言語ファイルがプレフィックス-de_DEで読み込まれます。

つまり、プラグインの.phpファイルでは、次のようになります。

echo "Something string";

あなたが使用する必要があります:

echo __("mymessage1", 'my-pluginname');



終了しました。今すぐあなたのプラグインをテストする必要があります。

pS使用リンク:

8
T.Todua

POEdit を使いたくなるでしょう。それは.po/.moファイルを作成するための無料のアプリケーションです。

私はトピック全体についてかなり詳細なチュートリアルを書きました ここ 。ステップ3 - テキストドメイン用の翻訳ファイルの作成に進むことができます。

5
Pippin

H ttp://poeditor.com/ もお勧めします。これは、.po、.mo、.pot、およびその他の種類のファイルに最適なWeb​​ベースの翻訳ツールです。

5
Taji M.