web-dev-qa-db-fra.com

Traduire le plug-in tiers et enregistrer les fichiers de traduction dans un thème personnalisé

J'utilise Localisation de Codestyling et je souhaite traduire un plugin. Je souhaite que les fichiers de traduction soient sauvegardés dans le répertoire de traduction du thème que je suis en train de construire et non dans le répertoire des plugins.

Est-ce possible?

J'ai essayé load_plugin_textdomain et load_textdomain mais cela ne semble pas fonctionner.

// 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

Tout d'abord, je vous déconseille fortement de stocker les traductions pour un plug-in dans votre thème. Il n’ya aucune raison d’être présent et vous perdrez les traductions lorsque vous changerez/actualiserez le thème.

L'emplacement correct pour stocker les traductions est wp-content/languages/plugins/.

Ce code fait cela et cible le domaine '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 );

Bien entendu, une solution encore meilleure consisterait à envoyer le fichier de traduction au développeur, à inclure dans la prochaine version (le cas échéant).

3
Stephen Harris