WordPress : Comment créer une traduction spécifique à un thème de buddypress ?

Publié par Jean-Michel le

Initialement demandé sur les forums BuddyPress :

À des fins de distribution, j’aimerais inclure mes fichiers de langue buddypress personnalisés dans mon thème aux côtés de mes autres fichiers de langue. Peu importe ce que j’essaie, je ne peux afficher les fichiers de langue que si je les copie wp-content/languagescomme décrit dans le codex buddypress. Je pensais que ce qui suit fonctionnerait, mais ce n’est pas le cas:

function load_buddypress_language_files() {
    load_theme_textdomain('buddypress', get_template_directory() . '/lang');
}
add_action('plugins_loaded', 'load_buddypress_language_files');

C’est possible non ?

Lire également:  Wordpress : Comment utiliser une couleur parmi les options de thème ?

WP : 3.5.1 BP : 1.7.2

Solution n°1 trouvée

Tout d’abord, les actions ajoutées au plugins_loadedcrochet ne fonctionneront pas à partir du thème functions.phpou de tout fichier de thème car à ce stade, elles seront déjà déclenchées (trop tard à partir des fichiers de thème).

Ce que vous pouvez faire, c’est d’accrocher votre action after_setup_themeet de décharger d’ buddypressabord le domaine de texte, puis d’ajouter votre buddypressfichier de domaine de texte personnalisé. La raison en est que WordPress ne chargera aucun fichier de traduction pour les domaines de texte déjà ajoutés :

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);
    }   
}
Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *