Langue différente pour Frontend vs Backend

9

J'utilise un package WordPress anglais et c'est très bien.

Maintenant, je voudrais traduire certains éléments du blog (comme "posté sur", "commentaires") etc., mais laissez l'interface du tableau de bord intacte en anglais.

Existe-t-il un mécanisme pour traduire uniquement les éléments du site?

serhio
la source

Réponses:

19

Vous pouvez effectuer les opérations suivantes:

  1. Obtenez le pack de langue (par exemple de_DE.mo) sur wordpress.org . Si le module linguistique n'est pas disponible en téléchargement autonome, vous pouvez également utiliser le .mofichier qui est fourni dans le fichier ZIP WordPress pour votre langue. Situé sous wp-content/languages.
  2. Déplacez le .mofichier vers wp-content/languages/votre installation WordPress par défaut (en anglais).
  3. Modifiez la WPLANGconstante dans wp-config.phpla nouvelle locale (par exemple de_DE)
  4. Dans votre functions.phpajouter le filtre suivant:

functions.php

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

    return $locale;
}
rofflox
la source
maintenant, que voulez-vous dire par "installer votre pack de langue"? dois-je désinstaller le wordpress et installer le nouveau wordpress, mais dire français? Je ne veux pas désinstaller mon wordpress anglais.
serhio
1
Non, vous n'avez rien à réinstaller. Téléchargez simplement WP dans la langue de votre choix et copiez le fichier de langue de wp-content/languages/votre installation WP originale en anglais et modifiez-la wp-config.phpcomme décrit ci-dessus. Ou téléchargez simplement le fr_FR.mofichier depuis ce site .
rofflox
Je n'avais pas le wp-content/languages/dossier, je devrais donc le créer. Après avoir effectué cette manipulation, j'ai l'inverse de ce que je voudrais. J'ai maintenant le panneau d'administration en roumain, mais la page (même connectée ou non) - en anglais. Je devrais peut-être traduire le thème ...
serhio
Bien sûr, vous devez traduire le thème. Mais le backend doit être en anglais et non en roumain si vous définissez is_admin()le filtre ci-dessus.
rofflox
1
voir aussi ma réponse ci-dessous pour WordPress v> = 4.7, qui permet aux utilisateurs de voir le backend dans leur propre langue
Serge
6

Vous pouvez utiliser des plugins pour cela: http://wordpress.org/extend/plugins/kau-boys-backend-localization/ ou http://wordpress.org/extend/plugins/wp-native-dashboard/

zodiac1978
la source
1
Bienvenue sur notre site. Veuillez ajouter une explication: qu'est-ce que ces plugins, quelles sont les différences?
fuxia
1
Je pense qu'il en est exactement de même. (J'utilise juste le premier ...) Vous pouvez installer différents fichiers de langue et avec les plugins vous pouvez changer la langue du backend indépendamment. Les deux plugins fournissent des commutateurs Dashboard pour la langue, une zone de sélection de la langue de connexion et un module complémentaire à la page de profil pour la langue spécifique à l'utilisateur.
zodiac1978
6

Depuis WordPress version 4.7 , différents utilisateurs de Backend peuvent définir leur propre langue d'administration préférée à l'aide du sélecteur de langue WordPress natif . De cette façon, ils voient l'interface WordPress dans leur langue et peuvent plus facilement gérer le contenu. Langue différente pour les utilisateurs Backend dans Wordpress indépendamment de la langue Frontend

Serge
la source
Le code définit que pour tous les utilisateurs dans le monde, cela ne fonctionne que sur un compte individuel.
Motaz M. El Shazly
4

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 que vous souhaitez.

Motaz M. El Shazly
la source
4

Dans WordPress 5.x, il est très simple d'obtenir une langue différente pour les frondes et le back end

Pour modifier la langue du site, accédez à Paramètres -> Général -> Langue du site et sélectionnez la langue du site.

entrez la description de l'image ici

Pour les utilisateurs du panneau d'administration -> votre profil et sélectionnez la langue que vous souhaitez avoir sur le panneau d'administration

entrez la description de l'image ici

Ainsi, toutes les solutions ci-dessus sont devenues absolues, chaque utilisateur peut définir sa propre langue pour l'interface WordPress

EckyBrazzz
la source
Cela devrait être la réponse choisie pour 2019+. Aucun plugin requis et la solution est si simple. Je vous remercie!
stason
Cela le change pour chaque utilisateur individuellement, le code le changera automatiquement pour tous les utilisateurs.
Motaz M. El Shazly
2

Une réponse mise à jour pour Wordpress 4+

La réponse de @ rofflox est toujours correcte, mais il y a eu quelques changements dans Wordpress qui peuvent avoir un effet lors de l'utilisation de sa fonction «en l'état» depuis WP 4.0.

La constante wp-config WPLANGa été déconseillée au profit de la définition de la langue du site via une liste déroulante Settings->General. Cela signifie que, après avoir changé la langue de votre site à Svenka (par exemple), l'administrateur de votre site va apparaître en anglais ... mais ce menu déroulant Langue du site en Settings->Generalsera pré-sélectionné comme l' anglais (États-Unis) . Cela signifie que, si vous apportez des modifications à vos paramètres généraux ultérieurement et oubliez de choisir Svenka comme langue de votre site à nouveau, l'ensemble du site reviendra à l'anglais.

Je recommanderais de créer des fonctions dans votre functions.phpfichier comme ceci:

//    Set the locale; original function from @rofflox

function vnmFunctionality_setLocale($locale) {
    if (is_admin()) {
        return 'en_US';
    }

    return $locale;
}

add_filter('locale', 'vnmFunctionality_setLocale');

// Enqueue a script to force-set the Language dropdown on the General Options page, just in case we forget about it later.

function vnmFunctionality_countryReminderScript($hook) {
    if ($hook != 'options-general.php') {
        return;
    }

    wp_enqueue_script('lang-reminder-script', get_template_directory() . '/js/site-language.js', array('jquery'), '1.0.0', true);

    wp_localize_script('lang-reminder-script', 'langObject', array(
        'lang'  => get_option('WPLANG'),
    ));
}

add_action('admin_enqueue_scripts', 'vnmFunctionality_countryReminderScript');

Et puis un fichier Javascript appelé site-language.js(enregistré dans un /js/dossier de votre thème) comme ceci:

jQuery(document).ready(function($) {
    $('select#WPLANG').val(langObject.lang).change();
});

Cela devrait présélectionner automatiquement la langue d'affichage actuelle du site dans la liste déroulante de la page Options, afin que vous n'ayez pas à vous souvenir de le faire manuellement à chaque fois.

indextwo
la source
-1

Ce dont vous avez besoin est de traduire votre thème. Si votre thème a un fichier .pot, il est facile à traduire. Suivez simplement les étapes à

http://www.appthemes.com/blog/how-to-translate-a-wordpress-theme/

Sinon, vous devrez modifier les fichiers de thème et changer les mots à chaque instance.

user8388
la source
mon thème (vingt dix) a le dossier "wp-content / themes / vingtten / languages" et il n'y a qu'un fichier .pot à l'intérieur ...
serhio