Как создать тематический перевод buddypress? [закрыто]


Первоначально заданный на BuddyPress форумы:

В целях распространения я хотел бы включить мои настроенные языковые файлы buddypress в мою тему вместе с другими языковыми файлами. Независимо от того, что я пытаюсь, я могу отобразить языковые файлы только в том случае, если скопирую их в wp-content/languages, как описано в кодексе buddypress. Я думал, что сработает следующее, но это не так:

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

Author: Justin S, 2013-06-04

1 answers

Во-первых, действия, добавленные в 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);
    }   
}
 1
Author: Ahmad M, 2013-06-07 08:18:15