如何创建特定主题的BuddyPress翻译?

时间:2013-06-04 作者:Justin S

Originally asked on the BuddyPress forums:

出于分发目的,我想在我的主题中包括我的自定义buddypress语言文件以及其他语言文件。无论我尝试什么,如果我将语言文件复制到wp-content/languages 如中所述buddypress codex. 我原以为以下方法可行,但实际上不行:

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

1 个回复
最合适的回答,由SO网友:Ahmad M 整理而成

首先,将操作添加到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);
    }   
}

结束