J'ai ajouté ce code à mon fichier functions.php
add_filter('locale', 'wpse27056_setLocale');
function wpse27056_setLocale($locale) {
if ( is_admin() ) {
return 'en_US';
}
return $locale;
}
donc l'interface est disponible en ro_RO
et wp-admin
est disponible en en_US
Eh bien ... cela a presque fonctionné à l’exception du plugin SEO WordPress de Yoast qui est traduit en roumain.
Que puis-je faire avec ce plugin pour être affiché en anglais?
Ce plugin charge sa langue au moment où son fichier principal est inclus:
load_plugin_textdomain( 'wordpress-seo', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
Ainsi, lorsque votre filtre locale
est utilisé, la langue est déjà présente. : /
Déplacez votre petit plugin dans le répertoire mu-plugins
. Vous pouvez le créer s'il n'existe pas dans wp-content
. Cela devrait charger votre plugin plus tôt que Yoast.
Leçon: Ne chargez jamais vos fichiers de langue avant le wp_loaded
.
Il existe même une meilleure solution: un filtre appelé plugin_locale
. Il filtre l'argument de la locale avant de l'utiliser dans load_plugin_textdomain
.
add_filter( 'plugin_locale', 'mytheme_plugin_locale' );
function mytheme_plugin_locale() {
return 'en_US';
}