Hier ist mein Ding:
Ich verwende ein Plugin mit Mehrsprachigkeit. Der Punkt ist, dass die Sprachübersetzung in meiner Landessprache sehr schlecht ist und meine Arbeit komplexer als einfach ist. : D. Gibt es eine Möglichkeit, ein Plugin dazu zu zwingen, nicht mehrsprachig zu sein und zumindest auf Englisch gezeigt zu werden?
Was ist das Plugin? Verwendet es benutzerdefinierte Übersetzungen in MO/PO-Dateien? Gibt es eine Administrationsoberfläche, über die Sie das Gebietsschema des Plugins festlegen können?
Es gibt einen generischen Filter, den Sie möglicherweise zum Plug-in-Code hinzufügen können, um die Sprache festzulegen, die etwa wie folgt aussieht (natürlich stellen Sie die Sprache so ein, wie Sie es möchten:
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;
}
Ich frage mich jedoch, ob es nicht einfacher sein könnte, die Übersetzung des Plugins zu verbessern, indem Sie die Mo/Po-Dateien bearbeiten oder was auch immer sie für die String-Übersetzung verwenden.
// 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;
}
Zum Arbeiten waren 2 Filterhaken erforderlich.