web-dev-qa-db-ja.com

サードパーティのプラグインを翻訳し、カスタムテーマで翻訳ファイルを保存する

私は Codestyling Localizationを使用しています そしてプラグインを翻訳したいのですが、翻訳ファイルは私が構築しているテーマのtranslationディレクトリに保存したいのですが、pluginsディレクトリには保存しません。

これは可能ですか?

load_plugin_textdomainload_textdomainを試してみましたが、うまくいかないようです。

// Add localization
load_theme_textdomain( 'my_theme', $translation_directory );

$domain = 'other_plugin';
$locale = apply_filters('plugin_locale', get_locale(), $domain);
load_textdomain( $domain, WP_LANG_DIR.'/'.$domain.'/languages/'.$domain.'-'.$locale.'.mo');
load_plugin_textdomain( $domain, FALSE, $translation_directory );
4
Patrik

まず第一に、私はあなたのテーマにプラグイン用の翻訳を保存することを強くお勧めします。それがそこにある理由はありません、そしてあなたがテーマを変更/更新するときに翻訳を失うでしょう。

翻訳を保存するための正しい場所はwp-content/languages/plugins/です。

このコードはそれを行い、ドメイン 'other_plugin'をターゲットにします。

function wpse159536_override_mofile_path( $mofile, $domain ){
    if( 'other_plugin' == $domain ){
         $mofile = WP_LANG_DIR . '/plugins/' . basename( $mofile );
    }
    return $mofile;
}
add_filter( 'load_textdomain_mofile', 'wpse159536_override_mofile_path', 10, 2 );

もちろん、もっと良い解決策は、次のリリースに含めるために翻訳ファイルを開発者に送ることです(これが適切な場合)。

3
Stephen Harris