Voici mon truc:
J'utilise un plugin qui a des capacités multilingues. Le fait est que la traduction dans mon pays est très mauvaise et que cela rend plus complexe que mon travail plus simple. :RÉ. Donc, y a-t-il un moyen de forcer un plugin à ne pas utiliser le multilingue et à être montré, au moins, en anglais?
Quel est le plugin? Utilise-t-il des traductions personnalisées dans les fichiers mo/po? Existe-t-il une interface d'administration permettant de définir les paramètres régionaux du plug-in?
Il existe un filtre générique que vous pourriez éventuellement ajouter au code du plugin pour définir le langage qui pourrait ressembler au suivant (évidemment, définissez le langage de votre choix:
add_filter('locale', 'wpse_get_locale');
// returns the locale based on user preference
function wpse_get_locale($locale) {
// get_current_user_id uses wp_get_current_user which may not be available the first time(s) get_locale is called
if (function_exists('wp_get_current_user'))
$loc = get_user_meta(get_current_user_id(), 'user_lang', 'true');
return isset($loc) && $loc ? $loc : $locale;
}
Cependant, je me demande s'il ne serait pas plus facile d'améliorer la traduction du plugin en éditant les fichiers mo/po ou ce qu'ils utilisent pour la traduction de chaîne.
// to force use English, this filter value must return true.
add_filter('override_load_textdomain', 'myPlugin_OverrideLoadTextDomain', 10, 3);
add_filter('plugin_locale', 'myPlugin_forceUseLanguageForCertainPlugin', 10, 2);
function myPlugin_OverrideLoadTextDomain($override, $domain, $mofile)
{
if ($domain === 'woocommerce') // change text domain from woocommerce to what you want.
{
$override = true;
}
return $override;
}
function myPlugin_forceUseLanguageForCertainPlugin($locale, $domain)
{
if ($domain === 'woocommerce') // change text domain from woocommerce to what you want.
{
$locale = 'en_US';// change your locale here to whatever you want.
}
return $locale;
}
Il fallait 2 crochets de filtre pour fonctionner.