Site bilingue, besoin de conseil (Créer un compte)

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 26)
  • Auteur
    Messages
  • #542258
    kimaya
    Participant
    Padawan WordPress
    77 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 4.0 :
    – Version de PHP/MySQL : :
    – Thème utilisé : circles :
    – Extensions en place : Multisite Language Switcher :
    – Nom de l’hebergeur : gandi :
    – Adresse du site :

    Problème(s) rencontré(s) :

    Bonjour

    J’aurai besoin de conseil concernant un de mes sites.
    Il s’agit d’un site que j’avais prévu bilingue dès le départ mais j’ai commencé par la version française.

    J’ai fait mon installation wordpress en multisite et créé 2 sites.
    Le premier en français que j’ai mis à la racine de mon domaine (www.mondomaine.com)et le second en anglais dans un sous répertoire (www.mondomaine.com/en)
    Maintenant que je souhaite activer la version anglaise j’aurai aimé mettre un index.php qui fasse la redirection automatique en fonction de la langue du navigateur mais je ne sais pas comment faire.
    Je me rends compte que j’ai fait une erreur en ne mettant pas le site français dans un sous répertoire dès le départ 😳
    Dois-je déplacer la version française dans un sous-répertoire au risque de perdre mon référencement et faire face à des plantages ?
    Ou bien existe-t-il un moyen de faire la redirection avec ma configuration actuelle ?

    Merci d’avance pour vos conseils
    Karine

    #973344
    ljvd
    Participant
    Chevalier WordPress
    109 contributions

    WPML ou Polylang seraient probablement mieux intégrés pour gérer les redirections …
    Permet à l’utilisateur de faire un choix personnel surchargeant l’option du navigateur,
    permet de basculer de langue sur un article, etc …
    WPML fait ce que tu demandes, avec un seul site.

    Sinon tu as la solution de gérer la redirection avec htaccess
    http://wordpress.tv/2009/12/07/rediriger-vos-visiteurs-en-fonction-des-preferences-de-langues-du-navigateur/
    Mais tu as deux sites à gérer … J’ai donné, et abandonné il y a bien longtemps.

    Cordialement,
    Laurent

    #973345
    kimaya
    Participant
    Padawan WordPress
    77 contributions

    Merci pour le conseil, je ne m’étais pas penchée sur WPML, c’est vrai que ça a l’air vraiment bien.
    A voir si on investit ou pas car le site est petit est seulement en 2 langues…
    Sinon merci aussi pour la solution htaccess

    #973346
    kimaya
    Participant
    Padawan WordPress
    77 contributions

    Ah mais je vois que Polylang est gratuit 🙂

    #973347
    BriKou
    Participant
    Initié WordPress
    23 contributions

    Salut,
    En effet, Polylang est gratuit et fait presque aussi bien que WPML, il y a aussi Qtranslate (tu risques de tomber dessus en faisant des recherches), mais attention il n’est plus maintenu…en fin de vie quoi.
    J’ajouterais également que si tu utilises des plugins qui ne sont pas traduits dans les 2 langues de ton site, tu devras en traduire le contenu (traductions stockées dans des fichier de langue .mo) grâce à un plugin tel que Codestyling Localization.
    Bonne journée.

    #973348
    kimaya
    Participant
    Padawan WordPress
    77 contributions

    J’ai testé Polylang et j’étais plutôt contente au départ car ça répondait à mes attentes mais j’ai été stoppée dans ma lancée quand je suis arrivée à la partir Portfolio. A priori ça ne gère pas les items du portfolio.
    Vous confirmez ?

    #973349
    BriKou
    Participant
    Initié WordPress
    23 contributions

    Les items « portfolio » n’existant pas « nativement » dans WordPress, il s’agit sans doute d’un Custom Post Type (CPT).
    Polylang gère très bien les CPT, mais il faut les initialiser pour autoriser leur traduction.

    Il est donc nécessaire d’ajouter hook pour déclarer tes CTP au plugin de traduction :

    add_filter(‘pll_get_post_types’, ‘my_pll_get_post_types’);
    function my_pll_get_post_types($types) {
    return array_merge($types, array(‘my-cpt’ => ‘my-cpt’));
    }

    Source

    Bonne journée.

    #973350
    kimaya
    Participant
    Padawan WordPress
    77 contributions

    Merci beaucoup, je me penche la-dessus et vous dis si je m’en sors…

    #973351
    BriKou
    Participant
    Initié WordPress
    23 contributions
    BriKou wrote:
    Les items « portfolio » n’existant pas « nativement » dans WordPress, il s’agit sans doute d’un Custom Post Type (CPT).
    Polylang gère très bien les CPT, mais il faut les initialiser pour autoriser leur traduction.

    Il est donc nécessaire d’ajouter un hook pour déclarer tes CTP au plugin de traduction (dans le fichier functions.php par ex) :

    add_filter(‘pll_get_post_types’, ‘my_pll_get_post_types’);
    function my_pll_get_post_types($types) {
    return array_merge($types, array(‘my-cpt’ => ‘my-cpt’));
    }

    Source

    Bonne journée.

    [EDIT] à 11h50 le 26/09/2014

    #973352
    kimaya
    Participant
    Padawan WordPress
    77 contributions

    Alors j’ai essayé de mettre le code tel quel dans le function.php et du coup j’ai une page blanche à la place de mon site.

    En l’écrivant comme suit, je récupère ma home mais la page d’extension de mon réseau plante :(

    function my_pll_get_post_types($types) {
    return array_merge($types, array(‘my-cpt’ => ‘my-cpt’));
    }
    add_filter(‘pll_get_post_types’, ‘my_pll_get_post_types’);

    #973353
    BriKou
    Participant
    Initié WordPress
    23 contributions

    Alors reprenons les choses dans l’ordre.
    Le type de contenu « Portfolio » de ton site a un identifiant unique sous forme de « slug » (c’est à dire, un nom unique en minuscule, sans accents ni espace). C’est par cet identifiant que tu dois remplacer dans la fonction ci-dessus les identifiant ‘my-cpt’ => ‘my-cpt’. Ca donnera donc quelque chose comme ça :

    array(‘portfolio’ => ‘portfolio’)

    Pour être sûr de renseigner le bon identifiant, je te propose de te rendre dans la page (en admin) qui liste tout tes portfolios. Tu verra dans l’url (vers la fin) un paramètre de type post_type=???????, c’est cet identifiant qui correspond à l’identifiant unique de ton type de contenu portfolio (à remplacer donc dans l’exemple ci-dessus).
    Si tu as une page blanche, c’est peut-être que tu as déjà une fonction qui s’appelle ‘kimaya_pll_get_post_types’ (ce qui est étonnant), je te conseil donc de la renomer par exemple par ‘my_pll_get_post_types’.
    En résumé, ça nous donnera quelque chose qui ressemblera à ceci.

    function kimaya_pll_get_post_types($types) {
    return array_merge($types, array(‘portfolio’ => ‘portfolio’));
    }
    add_filter(‘pll_get_post_types’, ‘kimaya_pll_get_post_types’);

    Si l’erreur persiste, va dans le fichier wp-config à la racine de ton site et met wp_debug sur TRUE pour voir les message d’erreur s’afficher, si tu ne les comprends pas, colle les nous ici et on pourra t’aider.

    En espérant t’avoir aidé.
    A+

    #973354
    kimaya
    Participant
    Padawan WordPress
    77 contributions

    J’ai toujours la page blanche à l’accueil quel que soit l’ordre dans lequel j’écris le code…

    J’obtiens en mode debug tout un tas de ligne du genre :

    Warning: include_once(file:///C|/KIMAYA/Site2014/Theme circles/Circles-child/option-tree/ot-loader.php): failed to open stream: No such file or directory in /srv/data/web/vhosts/www.mondomaine.com/htdocs/wp-content/themes/Circles-child/functions.php on line29

    Warning: include_once(): Failed opening ‘file:///C|/KIMAYA/Site2014/Theme circles/Circles-child/option-tree/ot-loader.php’ for inclusion (include_path=’.:/usr/share/php:/srv/data/web/includes’) in /srv/data/web/vhosts/www.mondomaine.com/htdocs/wp-content/themes/Circles-child/functions.php on line 29

    Warning: include_once(file:///C|/KIMAYA/Site2014/Theme circles/Circles-child/inc/theme-options.php): failed to open stream: No such file or directory in /srv/data/web/vhosts/www.mondomaine.com/htdocs/wp-content/themes/Circles-child/functions.php on line 34

    Warning: include_once(): Failed opening ‘file:///C|/KIMAYA/Site2014/Theme circles/Circles-child/inc/theme-options.php’ for inclusion (include_path=’.:/usr/share/php:/srv/data/web/includes’) in /srv/data/web/vhosts/www.mondomaine.com/htdocs/wp-content/themes/Circles-child/functions.php on line 34

    Pourquoi est-ce qu’il recherche des fichiers sur mon disque dur ???

    #973355
    kimaya
    Participant
    Padawan WordPress
    77 contributions

    Merci beaucoup du coup de main Brikou, je dois m’absenter et je ne sais pas si je pourrais revenir sur le sujet avant lundi…
    Bon weekend

    #973356
    BriKou
    Participant
    Initié WordPress
    23 contributions

    Ton problème de page blanche ne semble pas venir de la fonction liée à la traduction, mais à l’absence de certains fichiers PHP. Vérifie qu’ils sont bien là où ils devraient être.
    Sinon il faudrait que tu nous montres quelles sont les fonctions PHP qui contiennent les lignes incriminées.
    Et j’imagine que tu travail en local avec un logiciel LAMP tel que XAMP ou WAMP, voilà pourquoi le chemin des fichiers part du disque dur.
    Bon Wd

    #973357
    PhiLyon
    Modérateur
    Maître WordPress
    28248 contributions

    Bonjour.

    Le thème enfant ne doit pas être dans le thème parent mais à côté (à moins que ce ne soit une fonctionnalité du thème).

    Cordialement

15 sujets de 1 à 15 (sur un total de 26)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.