Localisation: je veux le backend: anglais et frontend dans une langue définie


9

J'aimerais avoir le backend de Wordpress en anglais et utiliser un environnement local différent pour le frontend

jusqu'à présent, je pense que je pourrais le faire en définissant dans wpconfig les paramètres régionaux que je veux utiliser dans le frontend, puis en ajoutant functions.php quelque chose comme ceci:

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

est-ce la meilleure pratique pour réaliser ce que je veux ou dois-je le faire différemment?

Réponses:



1

Il existe un plugin qui peut être ce dont vous avez besoin.

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


eh bien merci, je vais jeter un œil au code, mais peut-être ne l'utiliserez pas car il n'est pas mis à jour depuis 2008 et prend en charge jusqu'à WP 2.6 uniquement - si je l'aime et que j'ai la capacité, j'essaierai peut-être de parler au développeur et le mettre à jour
unfulvio

oh juste vérifié, il fait à peu près la même chose que la fonction que j'ai écrite ci-dessus, dans un autre style
unfulvio

Ouais, c'est vieux, mais semble le seul autour. Si le code est la façon dont vous l'avez fait, alors je suppose que la réponse est que vous êtes sur la bonne voie et que je l'aurais fait. Je ne peux pas penser à une meilleure façon.
Andy James

1

Jusqu'à présent, je pense que la réponse de Fulvio est la meilleure. J'utilise ce filtre même sur une configuration multisite, avec une seule ligne:

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

Fondamentalement, parfois, et dans ce cas, j'utilise multisite pour les sites multilingues au lieu des plugins. De plus, j'ai un seul thème pour chaque langue (généralement des thèmes enfants de la langue principale). Donc, chaque site du réseau a sa propre langue, mais du côté administrateur, j'ai besoin de toutes les interfaces en italien.

Donc ce que je fais c'est:

  1. Je n'utilise pas la constante WPLANG générale dans wp-config.php
  2. Je mets l'italien sur tous les sites du réseau
  3. Dans le fichier functions.php de chaque thème, j'utilise le filtre ci-dessus pour contrôler la langue / l'environnement local.

REMARQUE: ce filtre ne changera pas la langue d'administration, il n'est donc pas nécessaire de vérifier si is_admin ()


0

Si quelqu'un cherche toujours cela, voici ce que vous devez faire depuis la version 4.7

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

Cela force le tableau de bord à se charger en anglais, puis vous pouvez accéder aux paramètres, définir la langue souhaitée.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.