Comment faites vous pour faire un site bilingue ? (Créer un compte)

  • WordPress :5.8
  • Statut : non résolu
14 sujets de 1 à 14 (sur un total de 14)
  • Auteur
    Messages
  • #2396520
    nicobzz
    Participant
    Initié WordPress
    49 contributions

    Bonjour,

    Ma configuration WP actuelle

    • PHP 7.4.3/mysql Ver 8.0.27-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu)) :
    • Thème utilisé : _s
    • Extensions en place : HelloDolly  / Askimet  / WP Statistics  /  Asgaros Forum
    • Nom de l’hébergeur : localhost
    • Adresse du site : indisponible!

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

    Il s’agit pas vraiment d’un problème mais d’une question plus générale: comment vous y prenez vous pour faire un site bilingue?

    Je suis sur le point de terminer un site bilingue, la manière dont j’ai fait n’est peut être pas la meilleure mais ça marche pas trop mal.

    Biensur j’ai utilisé les fameux html_esc__ et html_esc_e pour traduire le texte dans la bonne langue, mais étant donné que mon site est bilingue voici comment j’ai fait pour que lors du chargement de la page, je choisisse si le textdomain chargé est l’anglais ou le français:
    J’ai mis un drapeau, une meta data sur chaque article, page et custom_post video du site qui dit si il est en anglais ou en français, lors du chargement de la page, functions.php détecte si l’article la page ou la vidéo chargée sont en français ou anglais et charge alors le bon text domain, ci bien que le menu et tout le contour du site est bien en anglais ou en français ce qui correspond à la langue de l’article.
    Est ce une bonne manière de faire?

    Autre détail qui peut intéresser certain, pour créer les fichiers .po, je n’utilise pas poedit qui me casse les pieds mais la commande:

    xgettext --files-from=source_files_list.txt --from-code=UTF-8 -L PHP -o traduction.po -d mondomaine -p languages --keyword=__:1 --keyword=_e:1 --keyword=_x:1,2c --keyword=_n:1,2 --keyword=_nx:1,2,4c --keyword=_n_noop:1,2 --keyword=_nx_noop:1,2,3c --keyword=_ex:1,2c --keyword=esc_html_e:1 --keyword=esc_html__:1
    commande bash pour extraire les chaines à traduire

    qui extrait les chaines de caractères à traduire en anglais.

    J’ai eu beaucoup de mal à créer cette commande, donc je vous la donne, ça pourrait aider peut être.

    simplement il prend la liste des fichiers php situé dans le fichier texte: source_files_list.txt et les analyse pour extraire un traduction.po dans le dossier ./languages/ et avec comme domaine: mondomaine

    Dites moi si ce xgettext vous est utile?

    • Ce sujet a été modifié le il y a 2 années et 6 mois par nicobzz.
    • Ce sujet a été modifié le il y a 2 années et 6 mois par nicobzz.
    • Ce sujet a été modifié le il y a 2 années et 6 mois par nicobzz.
    #2396537
    Lumiere de Lune
    Participant
    Maître WordPress
    20531 contributions

    Hello

    personnellement je trouve que la commande pour extraire les chaines est beaucoup plus compliquée que PoEdit, et je ne l’utilise plus depuis longtemps, mais chacun ses goûts.

    Après tu as réinventé les plugins de sites multilingues 🙂 perso j’utilise WPML. Tu ne parles pas de la traduction des catégories, étiquettes, c’est important aussi. Bref ta méthode fonctionne sans doute sur un site très simple, sans widgets. Mais dès que tu rentres dans un système un peu plus complexe, il va falloir réellement réinventer beaucoup de choses.

    N’oublie pas non plus d’injecter dans la balise head les informations nécessaires (attribut href lang et le « x-default »)

    #2396551
    nicobzz
    Participant
    Initié WordPress
    49 contributions

    Oui effectivement la traduction des catégories et étiquette pose problème :).

    Merci pour la balise href lang et xdefault auquel je ne pensais pas du tout, j’imagine très important pour l’indexage dans les moteurs de recherches.

    Je regarde WPML pour comprendre comme ça marche.

    Merci

    #2396559
    nicobzz
    Participant
    Initié WordPress
    49 contributions

    Ben j’ai regardé WPML mais je veux pas acheter un plugin a 40€ avant de savoir ce qu’il fait, et puis j’ai un doute sur le fait qu’il fait bien ce que je désire.

    Pour moi les boutons de connections et tout les textes en dehors des menus, des articles, des pages et de vidéos doivent aussi être traduits, j’ai pas l’impression que WPML le fasse.

    Je voulais savoir si WPML fait cela ou non?

    Et si certains ont fait comme moi: bidouiller functions.php à la main, comment ont ils fait?

    Merci

    • Cette réponse a été modifiée le il y a 2 années et 6 mois par nicobzz.
    #2396566
    Lumiere de Lune
    Participant
    Maître WordPress
    20531 contributions

    WPML traduit absolument tout.
    Tu en as d’autres sur wordpress.org qui sont gratuits. Il y a longtemps je les avais testés, et à l’époque, WPML était mieux.

    • Cette réponse a été modifiée le il y a 2 années et 6 mois par Lumiere de Lune.
    #2396572
    pasglop
    Participant
    Maître WordPress
    701 contributions

    j’utilise polylang…

    #2396587
    nicobzz
    Participant
    Initié WordPress
    49 contributions

    Mais j’arrive pas à comprendre comment ça marche?

    Il traduit aussi le thème? il faut que le thème soit traduit pour que ça fonctionne sinon les bouton du thème ne seront que dans la langue principale, non?

    Sinon ils est obligé de fonctionner un peu comme moi j’ai fait, c’est à dire qu’il détecte la langue du post ou de la page et adapté la langue du thème à partir de cette information dans la base de données, non? à moins que les pages d’une certaines langues aient dans leur requete url une info qui dit de quelle langues elles sont?

    Je me demande comment ça marche, car je me demande si la manière dont j’ai fait est propre techniquement ou non.
    Si polylang ou WP ML marchent pareil c’est que ça doit être propre.

    J’aurai envie de continuer de ma manière pour mes prochaines missions si c’est propres (car je me dis que ça limite les plugin à installer), en tout cas, pour l’instant ça marche bien.

    #2396590
    Flobogo
    Modérateur
    Maître WordPress
    20331 contributions

    Bonjour,

    J’utilise aussi Polylang sur le site d’un ami. C’est depuis quelques années la meilleure extension gratuite de traduction de site, équivalente à WPML. Les catégories et étiquettes sont traduites, de même que les menus.

    Je ne sais pas comment fonctionne l’extension, mais à la question :

    à moins que les pages d’une certaines langues aient dans leur requete url une info qui dit de quelle langues elles sont?

    → la réponse est « oui »

    #2396594
    nicobzz
    Participant
    Initié WordPress
    49 contributions

    d’accord, merci flobogo, ça doit donc etre comme ça que ça marche pour choisir la langue de l’interface. il doit y avoir un /en/ dans l’url ou /fr/ pour indiquer la langue?

    #2396597
    Lumiere de Lune
    Participant
    Maître WordPress
    20531 contributions

    C’est plus compliqué que cela, tu peux le faire comme cela, ou avec un sous domaine ou même un domaine différent.

    Le thème est normalement traduit par ses fichiers .po et .mo

    Franchement, je te déconseille vraiment de continuer dans ta voie « je me passe de plugins ». Parce que en réalité, tu ne te passes pas de plugins, tu fais les tiens.

    Que tu dois faire évoluer, sécuriser, etc.

    L’intérêt de WordPress, c’est justement cette communauté et les plugins. Si tu veux t’en passer, autant faire ton propre CMS, à la base ce n’est pas si compliqué que ça 🙂

    Et si tu veux comprendre comment un plugin gratuit fonctionne, le plus simple c’est de l’installer, non ?

    #2396694
    nicobzz
    Participant
    Initié WordPress
    49 contributions

    Oui j’utilise aussi les fichiers .mo et .po pour traduire mon thème.

    Oui, je comprend ce que tu dis, je pourrais utiliser polylang par la suite.

    En fait j’ai une réticence à utiliser les plugins, car quand on demande comment faire un truc sur wordpress sur google, ça nous redirige vers plein de page qui font la pub pour des plugin qui empêchent toute configuration un peu inhabituelle, ce qui bloque par la suite le développement du site, c’est pour ça que je suis un peu reticent.

    Mais comme tout le monde me dit du bien du module polylang sur ce fil, c’est qu’il doit être vraiment bien et ne pose pas problème, donc je le regarderai et je l’utiliserai surement.

    Merci beaucoup

    #2396697
    mathieu42
    Participant
    Maître WordPress
    2013 contributions

    changez peut-être de moteur de recherche quand vous cherchez une extension (et pour le reste aussi 😉 lilo et qwant donnent des résultats intéressants) et regardez directement dans votre espace d’administration -> extensions -> ajouter.

    en comparant le nombre d’installations des extensions, cela peut vous donner un premier critère pour choisir les extensions les plus intéressantes.

    #2396698
    Lumiere de Lune
    Participant
    Maître WordPress
    20531 contributions

    La recherche de plugins, c’est pas sur Google, c’est sur wordpress.org qu’il faut la faire.

    Ensuite, une fois encore, rien ne t’empêches de tester, tu fais une copie en local de ton site et tu regardes.

    #2396861
    Flobogo
    Modérateur
    Maître WordPress
    20331 contributions

    il doit y avoir un /en/ dans l’url ou /fr/ pour indiquer la langue?

    Oui, avec Polylang, ça se fait tout seul. (mais il n’y a pas /fr/ dans l’URL de base, si le site est installé en français au départ). Par contre, Polylang va rajouter /en/ pour l’anglais, /it/ pour l’italien, ou /de/ pour l’allemand, etc … selon les langues supplémentaires que vous souhaitez ajouter.

14 sujets de 1 à 14 (sur un total de 14)
  • Vous devez être connecté pour répondre à ce sujet.