配布目的のために、私は私のカスタマイズされたbuddypress言語ファイルを私の他の言語ファイルと一緒に私のテーマに含めたいと思います。何を試しても、 buddypress codex で説明されているように、言語ファイルをwp-content/languages
にコピーして表示することしかできません。私は以下がうまくいくと思いました、しかしそれはしません:
function load_buddypress_language_files() {
load_theme_textdomain('buddypress', get_template_directory() . '/lang');
}
add_action('plugins_loaded', 'load_buddypress_language_files');
これは可能ですね。
WP:3.5.1 BP:1.7.2
まず、plugins_loaded
フックに追加されたアクションは、テーマfunctions.php
または他のテーマファイルからは動作しません。その時点では既に起動されているからです(テーマファイルからは遅すぎます)。
あなたができることは、あなたのアクションをafter_setup_theme
にフックし、そして最初にbuddypress
テキストドメインをアンロードし、そしてあなたのカスタムbuddypress
テキストドメインファイルを追加することです。その理由は、WordPressがすでに追加されているテキストドメインの翻訳ファイルをロードしないためです。
add_action('after_setup_theme', 'replace_bp_mofile');
function replace_bp_mofile() {
$mo_file = get_stylesheet_directory() . '/languages/' . sprintf( 'buddypress-%s.mo', get_locale() );
if (file_exists( $mo_file )) {
unload_textdomain('buddypress');
load_textdomain('buddypress', $mo_file);
}
}