web-dev-qa-db-ja.com

プラグインの地域対応

私はちょうどwpのための私の最初のプラグインを構築しました、そしてそれが素晴らしい「コード詩」でなくても;)それはそれがそうするべきであるように動作します。 GalleryView 3.0 jqueryプラグイン( http://spaceforaname.com/galleryview )を使用して、デフォルトのwpギャラリーを変換するプラグインです。

私ができない唯一のことはローカライズです。このプラグインをローカライズするということは、管理者インターフェースを翻訳することを意味します。そこでは、誰かがjqueryプラグインオプションを設定して、生成されるギャラリーのアスペクトを変更することができます。

私はウェブ上にある何百万ものチュートリアルをたどり、フォーラムでこの問題に関する多くの記事を読んで、そしてコーデックスのガイドラインに従うようにしました...しかしまだ運が悪い。

これは私がやったことです:

  1. すべてのテキスト行はgettext関数内にあります(__および_e
  2. Poeditを使って、プラグインディレクトリをスキャンする.po.moファイルを作成し(everythigはうまくいった)、それからそのファイルに翻訳を追加しました。
  3. 私は.poファイルをNAME-OF-THE-PLUGIN-it_IT.poのように命名しました(.moファイルは同じ名前で生成されました)
  4. 私は翻訳ファイルをプラグインフォルダ/languagesの中に置きました(フォルダの名前はプラグインと翻訳ファイルの名前と同じです)
  5. それから私はメインプラグインファイルの中にload_plugin_textdomain関数を追加しようとしました。それを機能させる方法がないので私は試しました。

私が確信が持てない唯一の事は私が作成したプラグインがクラス+コンストラクタ関数の下にないという事実です...私はまだコーディングがあまり得意ではないという理由だけで。

このようにinitのload_plugin_textdomainadd_actionの内側に配置しました。

add_action('init', 'gw_load_translation_file');

function gw_load_translation_file() {
    // relative path to WP_PLUGIN_DIR where the translation files will sit:
    $plugin_path = dirname(plugin_basename( __FILE__ ) .'/languages' );
    load_plugin_textdomain( 'gallery-view-for-wordpress', false, $plugin_path );
}

上記の行はロジックの中にはありません、それらはメインのプラグインファイルの中だけにあります。

これは私がgettext関数を使った例です。

<h3><?php _e('Panel Options', 'gallery-view-for-wordpress') ?></h3>

私は理解できませんでしたか?

2
bluantinoo

$plugin_path = dirname( plugin_basename( __FILE__ ) ) . '/languages/';

4
zeo