web-dev-qa-db-ja.com

私のプラグイン翻訳を準備します。Poeditが動かない

私は今のところうまくいっているプラ​​グインを構築しています。ローカライズの準備を始めたいと思います。何が問題になっているのかはわかりませんが、Poeditでロードしようとすると、バグが発生します。

それで、複数のチュートリアルが私に示すように、段階的にこのステップをしましょう。

だからmyplugin.phpでは、私は自分の言語ファイルがどこにあるのかをWPに伝えるために以下をロードします(実際にフォルダを作成した後)。

function ap_action_init()
{
// Localization
  load_plugin_textdomain( 'myplugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); 
}

add_action('init', 'ap_action_init');

それから私は私のファイル(それはadminフォルダにある)の翻訳を必要とするすべての文字列を調整します。

<h2><?php _e('MyPlugin Settings', 'myplugin'); ?></h2>
<?php _e('Element Width', 'myplugin'); ?>
<?php _e('This defines the default width of your Elements', 'myplugin'); ?>

これまでのところ非常に良いと思います。しかし、それから私はPoeditを開きます。

私のプラグインのlanguagesフォルダにmyplugin-nl_NL.poを保存するようpoeditに指示します。

ベースパスを../にする

そして、私は自分のパスを./adminadminのどちらかにするように指示します(/admin、または他のものを指定した場合、フォルダが存在しないというエラーが表示されます。

私はpoeditにキーワード__()_e()を探すように伝えます。

そしてOKを押します!毎回(私が試しているように思われるものは何でも)それは私が普通の.poをインポートするときそれが私に多くを示すところで、私に翻訳するための少しのストリングも示しません。

そう。誰もがここでどこが悪いのか見ていますか?

P.S:たぶん重要なお知らせです。手動で自分の.poファイルを作成しようとすると、POeditに文字列が表示されます。しかし、私がこれを私のウェブサイトに載せてWordPressの言語を変更しても、何も変わりません。だから私の推測は私が自分のWPファイルに何か問題があるのです。

誰もが助けることができると思います:)

1

OK。私は問題を見つけました。いくつかのチュートリアルは私のpoeditに__()_e()を入れるように私に言った。これは、答えがかなりばかげていることがわかりました。単純にこれらの検索値を持つ文字列が存在しないからです。これらの括弧の間には常に何かがあります。

そのため、解決策は非常に単純です(そして非常に愚かです)。検索値を___eに入れます

2

コードから翻訳文字列を生成するのにpoeditを使用する代わりに、WordPressの国際化ツールを使用してPOTファイルを生成してください。

これには、a)poeditで特別なことをする必要がなく、b)ヘッダーや標準以外の翻訳文字列の呼び出しなど、翻訳に必要なすべてのものを取得するという利点があります(すべてが__および_eではありません)。

これを実行するのは比較的簡単です。

最初に踏み出す

SVNクライアントを入手して、これをしてください。

svn checkout http://develop.svn.wordpress.org/trunk/ develop

これでWordPressのトランクディレクトリのコピーが手に入りますし、それに開発者が必要とする特別なツールもあります。あなたはこれらのツールすべてを必要としないかもしれませんが、あなたが必要とするものがあります。

(注:もしあなたがgitユーザーなら、代わりにgit://develop.git.wordpress.org/のクローンを作ることができます。)

第2ステップ

そのディレクトリに行き、次にtoolsディレクトリに行き、そして国際化ディレクトリに行きます。ここにmakepot.phpというファイルがあります。これはあなたが必要としているものです。

使い方はとても簡単です。コマンドプロンプトを取得し、これを入力します。

php makepot.php wp-plugin /path/to/your/plugin/folder plugin-slug.pot

"wp-plugin"フラグはプラグインを調べるようにコードに指示しています。ここでwp-themeを使ってテーマ用のPOTファイルを生成することもできます。

あなたのプラグインのフォルダへのパスをそのプラグインの適切なローカルコピーで置き換え、そしてあなた自身のプラグインのスラグをポットファイル名のために使ってください。 PHPコードはあなたのプラグインのディレクトリをスキャンし、あなたのためにPOTファイルを構築します。

POTファイルは「POテンプレート」であり、poeditはこれをうまくうまく処理できます。あなたの作者やプラグインの情報をその中に入れるために(どんなテキストエディタでも)そのヘッダを編集したいかもしれません。

これがなぜ良いのか:

結果を自分で比較してください。プラグインのヘッダもPOTファイルに含まれています。 _x_ex_n_noopのような特別な翻訳方法を使用した場合は、それらもファイル内にあります。

Makepot.phpコードはスタンドアロンではないことに注意してください、それはWordPressのソースコードが利用可能であることを必要とします。そのため、toolsディレクトリだけでなく、チェックアウト全体が必要です。これはWordPressの翻訳コードを使っていくつかの作業を行います。

2
Otto