Lokalisierung: Ich möchte das Backend: Englisch und Frontend in definierter Sprache

9

Ich möchte das Backend von Wordpress auf Englisch haben und ein anderes Gebietsschema für das Frontend verwenden

Bisher habe ich herausgefunden, dass ich es vielleicht tun könnte, indem ich in der wpconfig das Gebietsschema einstelle, das ich im Frontend verwenden möchte, und dann in functions.php so etwas hinzufüge:

add_filter('locale', 'mytheme_backendlocale');
function mytheme_backendlocale($locale) {
    if ( is_admin() ) {
        return 'en_US';
    }
    return $locale;
}

Ist dies die beste Methode, um das zu erreichen, was ich will, oder sollte ich es anders machen?

unfulvio
quelle

Antworten:

1

Es gibt ein Plugin, das genau das ist, was Sie brauchen.

http://wordpress.org/extend/plugins/fe-be-localization/

Andy James
quelle
Nun, danke, ich werde einen Blick auf den Code werfen, ihn aber möglicherweise nicht verwenden, da er seit 2008 nicht aktualisiert wurde und nur bis zu WP 2.6 unterstützt - wenn es mir gefällt und ich die Möglichkeit habe, werde ich vielleicht versuchen, mit dem Entwickler zu sprechen und aktualisieren Sie es
unfulvio
oh nur überprüft, es funktioniert so ziemlich genauso wie die Funktion, die ich oben geschrieben habe, in einem anderen Stil
unfulvio
Ja, es ist alt, aber es scheint der einzige zu sein. Wenn der Code so ist, wie Sie es gemacht haben, dann ist die Antwort wohl, dass Sie auf dem richtigen Weg sind und wie ich es gemacht hätte. Ich kann mir keinen besseren Weg vorstellen.
Andy James
1

Bis jetzt denke ich, dass Fulvios Antwort die beste ist. Ich verwende diesen Filter sogar bei einem Multisite-Setup mit nur einer Zeile:

add_filter('locale', 'set_admin_locale');
function set_admin_locale($locale) {
  return 'en_US';
}

Grundsätzlich verwende ich manchmal und in diesem Fall Multisite für mehrsprachige Websites anstelle von Plugins. Außerdem habe ich 1 einzelnes Thema für jede Sprache (normalerweise untergeordnete Themen der Hauptsprache). Jeder Standort des Netzwerks hat also seine eigene Sprache, aber auf der Administratorseite benötige ich alle Schnittstellen auf Italienisch.

Also was ich mache ist:

  1. Ich verwende nicht die allgemeine WPLANG-Konstante in wp-config.php
  2. Ich habe an jedem Ort des Netzwerks Italienisch eingestellt
  3. In den functions.php jedes Themas verwende ich den obigen Filter, um die Sprache / das Gebietsschema des Frontends zu steuern.

HINWEIS: Dieser Filter ändert die Administrationssprache nicht, sodass nicht überprüft werden muss, ob is_admin ()

Luca Reghellin
quelle
0

Wenn jemand noch danach sucht, sollten Sie Folgendes seit Version 4.7 tun

function wp_noshor_redefine_locale($locale) {
    if( is_admin() ):
        switch_to_locale('en_US');
    endif;
}
add_filter('init','wp_noshor_redefine_locale');

Dadurch wird das Dashboard gezwungen, auf Englisch geladen zu werden. Anschließend können Sie zu den Einstellungen gehen und die gewünschte Sprache festlegen.

Motaz M. El Shazly
quelle