it-swarm.com.de

Plugin auf Englisch übersetzen

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?

3
DiTTiD

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.

1
lorenzov
// 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.

1
vee