web-dev-qa-db-ja.com

複数のテキストドメイン

私はたくさんのプラグインを持っています。明らかに、彼ら全員が国際化のための独自の独自のテキストドメインを持っています(国際化)。

私はすべてのプラグインに含まれているたくさんのファイルを持っています - 私はcommonと呼ばれるディレクトリにそれらをすべて投げます。これは私が私のすべてのプラグインに持ってほしいダッシュボードウィジェット、および更新用のスクリプトを追加します(それらはwordpress.orgプラグインレポジトリには存在しないので)。

ファイルを編集しなくても、自分の共通フォルダーをそれぞれのプラグインにドロップできるようにしたいのです。しかし、私は内部に含まれるテキスト文字列について心配しています。

同じプラグイン内で、2つの異なるドメインに対してload_plugin_textdomainを2回呼び出すことはできますか?国際化を念頭に置いてこの状況を処理するための最良の方法は何ですか?

それとも私の共通ファイルの各インスタンスを調べて、プラグインと一致するように手動でtextdomainを変更する必要がありますか?

1
Luke Carbis

各プラグインでload_plugin_textdomain()を複数回呼び出すことができますが、私はそうはしません。

共通のファイルを別のプラグイン、例えばluke-carbis-libraryに配置します。そのプラグインで、セットアップと追加ファイルのロードのための2つの単純な関数を作成します。

add_action( 'plugins_loaded', 'lcl_init' );

function lcl_init()
{
    $dir = plugin_dir_path( __FILE__ );
    $url = plugins_url( __FILE__ );

    // maybe load necessary files and translation

    do_action( 'lcl_init', $dir, $url );
}

function lcl_load( $file )
{
    require_once plugin_dir_path( __FILE__ ) . $file;
}

あなたの依存プラグインであなたのカスタムアクションにフック:

add_action( 'lcl_init', 'depending_plugin_init', 10, 2 );

これで、ベースプラグインの内部構造をいつでも変更できます。他のプラグインはあなたのフックから$dir$urlを使うだけです。

1
fuxia