web-dev-qa-db-fra.com

Localisation: je veux le backend: anglais et frontend dans un langage défini

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

jusqu'ici, j'ai compris que je pourrais peut-être le faire en définissant dans la commande wpconfig les paramètres régionaux que je souhaite utiliser dans l'interface, puis en ajoutant dans 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 atteindre ce que je veux ou devrais-je le faire différemment?

9
unfulvio

Installez le plugin WP Native Dashboard . Ensuite, vous pouvez définir une langue pour le serveur principal dans votre wp-config.php et chaque utilisateur peut en choisir une autre pour le serveur principal.
Voir Changer la langue du modèle de commentaires pour plus de détails et une capture d'écran.

2
fuxia

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

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

1
Andy James

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';
}

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

Donc ce que je fais c'est:

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

REMARQUE: ce filtre ne changera pas la langue de l'administrateur. Il n'est donc pas nécessaire de vérifier si is_admin ()

1
Luca Reghellin

Si quelqu'un cherche toujours cela, voici ce que vous devriez 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. Vous pouvez ensuite accéder aux paramètres, définir la langue souhaitée.

0