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


34

このプラグインを翻訳したいです。

プラグインは既に他の言語に翻訳されており.pot、新しい言語を追加するためのファイルがあります(説明から理解した限り)。

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

define ('WPLANG', 'ru_RU');

回答:


43

編集者

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

フォーマット

  • .moMachine Objectの略語-WordPressが使用するファイルの
    コンパイル済みエクスポート.po
  • .poポータブルオブジェクトの略
    -翻訳文字列で編集可能なテキストファイルを
    -マスターに基づいて.pot使用して、ファイルPOTファイルからアップデートを PoEdit機能
    -一部の人々は、マスターファイルとしてこれを配布するが、それは翻訳のためにのみ使用してください
  • .potポータブルオブジェクトテンプレートの略語
    - ソースの PoEdit機能から更新を使用して、WordPress自体およびテーマとプラグインからすべての翻訳可能な文字列を取得するために使用される編集可能なテキストファイル

手順

  • .potファイルを複製し、名前を変更します plugin-basename-lang_COUNTRY.po
  • 参照プラグインの場合の例: - 語pt_BRは、ブラジルポルトガル語を意味するが、多くの言語は、国のバリエーションを持っていない... -あなたがあなた自身の言語で記入する必要がありますsubscribe-reloaded-pt_BR.po

  • WPLANGwp-config.phpファイルあなたの言語に設定する必要があり、例えば、pt_BR
  • .poファイルを保存するたびに、PoEditは自動的に.moファイルを生成します。これはWordPressが使用するファイルであり、基本的にアップロードする必要があるファイルのみです

観察

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

1
新しいmo / poファイルが有効になるまでどのくらい時間がかかりますか?
ニモ

8

このcodestyling-localizationプラグインを試すことができます:。これを使用して、プラグインとテーマを翻訳できます。


1
これは今まで見た中で最高の翻訳プラグインです。このプラグインはいつでもpoeditを所有できますが、最良の部分は無料で使いやすいことです。この回答は少なくとも投票する必要があります。
Gogol 14年

1
もはや存在しない。
クリスコックス

1
良い代替のようなこのルックス:wordpress.org/plugins/say-what
jetlej

@jetlej興味深い、私のpoファイルでは機能しないようです:/
Nemo

8

(ここに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」の2つのサンプルメッセージのみを追加しているので、同様の行で必要に応じて多くのメッセージを追加できます)。

# 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ファイルを自動的に生成しない場合は、[ファイル]-> [設定]-> [エディター「保存時に.moファイルを自動的にコンパイルする」というボックス)、

次に、これらの2つのファイルを「言語」フォルダーに入れます。

この後、wp-config.phpを開き、次のコードを見つけます。

define ('WPLANG, '');

に変更します

define ('WPLANG, 'de_DE');

それで全部です。WordPressが読み込まれると、プラグインの言語ファイルの前に-de_DEが付きます。

そのため、プラグインの.phpファイルでは、次の代わりに:

echo "Something string";

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

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



終わった。次に、プラグインをテストする必要があります。

psはリンクを使用しました:


私は自分のテーマでこれを試しました。header.phpにはがありecho __("thanks-for-visiting", 'transparent');ます。theme \ languages \ transparent-en_US.poには、がありmsgid "thanks-for-visiting" msgstr "Hello! Thank you for visiting. Take a look around and subscribe to the "ます。これにより、フロントエンドで「訪問ありがとうございます」が出力されます。
スティーブ14年

5

POEditを使用します。.po / .moファイルを作成するための無料のアプリケーションです。

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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.