Auteur Sujet: Site multilingue avec Apache  (Lu 12821 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Site multilingue avec Apache
« le: 28 août 2015 à 19:31:34 »
HTML: comment utiliser la préférence de langue définit dans le navigateur ?

Je cherche à  faire un petit site (codée à la main) en Anglais et en Français, le choix de la langue étant automatique en fonction de la langue paramétré dans le navigateur.

Cette information de langue est en effet transmise par le navigateur a chaque requête (GET) :


GET /ip.php HTTP/1.1
Host: ipv4.lafibre.info
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://ip.lafibre.info/
Cookie: __utma=88475782.200909892.1399014093.1425329123.1425366120.853; __utmz=88475782.1424364955.820.29.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)
Connection: keep-alive

Le paramétrage des langues avec Firefox :


Le paramétrage des langues avec Chrome :


Le choix de la langue dans un GET :



Pour informations, ce que je souhaite faire, c'est mettre le site https://iPerf.fr en Français et en Anglais de façon automatique.

seb

  • Pau Broadband Country (64)
  • Abonné SFR fibre FttH
  • *
  • Messages: 515
  • FTTH 1 Gbps sur Pau (64)
HTML: comment mettre un site automatiquement dans la bonne langue ?
« Réponse #1 le: 28 août 2015 à 20:53:10 »
Tu peux gérer ça avec l'option MultiViews d'Apache.

Typiquement, tu ajoutes ça dans ta définition DocumentRoot:
Options +MultiViews
AddLanguage fr fr
AddLanguage en en
LanguagePriority fr en
Ensuite, il faut suffixer le fichier HTML correspondant à la version française du document HTML avec l'extension '.fr' (ex.: index.html.fr), et celui associé à la version anglaise par '.en'.
Ça peut être un peu lourdingue à gérer, mais ça fonctionne nickel avec des pages plutôt statiques.

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
HTML: comment mettre un site automatiquement dans la bonne langue ?
« Réponse #2 le: 28 août 2015 à 21:21:28 »
Merci !

C"est exactement ce qu'il me faut.

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
HTML: comment mettre un site automatiquement dans la bonne langue ?
« Réponse #3 le: 29 août 2015 à 15:16:03 »
Zut, cela fonctionne bien en .html, mais j'ai des fichiers .php (ce qui permet de faire un "include" pour l'en-tête et le menu qui est commun a toutes les pages)

Multivues ne fonctionne pas en php ?

jack

  • Professionnel des télécoms
  • *
  • Messages: 1 674
  • La Madeleine (59)
HTML: comment mettre un site automatiquement dans la bonne langue ?
« Réponse #4 le: 29 août 2015 à 15:29:52 »
Multiviews, c'est basé sur le type MIME, ce que demande le client
Or, le client demande du text/html, pas du application/x-httpd-php

Ceci dit, comme ta page php génère le HTML, tu devrais probablement utiliser gettext à la place de multiviews

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
HTML: comment mettre un site automatiquement dans la bonne langue ?
« Réponse #5 le: 29 août 2015 à 22:18:22 »
Merci Jack, cela semble mieux convenir à mon besoin, même si il est possible de passer en html, le php ne me servant que pour dupliquer du contenu identique entre les pages.

buddy

  • Expert
  • Abonné Free fibre
  • *
  • Messages: 15 098
  • Alpes Maritimes (06)
Site multilingue avec Apache
« Réponse #6 le: 19 janvier 2016 à 08:09:23 »
Huguesdelamure a tout à fait raison : j'ai mis en place ce site (https://iperf.fr) quand ils ont arrêter de proposer des binaire pour Windows. Je ne participe pas au développement, mais je propose une version utilisable pour Windows et une liste de serveurs publics. Demain il y aura probablement un test de débit basé sur iPerf3 pour grand public qui se lance via une clé USB (permet de tester de manière fiable son FTTH 1 Gb/s, même avec un petit CPU et en étant sur que les couches TCP/IP de Windows ne brident pas le débit)

J'ai mis l'extension .fr car je voulais donner des explications en français et laisser iperf.com ou iperf.net si les développeurs souhaitaient prendre un nom de domaine pour distribuer les binaires.

devant l’afflux de visiteurs étrangers qui cherchaient une version compilé d'iPerf pour Windows, j'ai passé le site en Anglais. On se retrouverr avec un site .fr uniquement en anglais, c'est pas terrible...

Le but est de le mettre dans les deux langues (via détection automatique de la langue du navigateur) mais ce projet n'a pas avancé. (c'est un site codé à la main)
Sinon pourquoi ne pas faire 2 sites ?
Comme iperf.fr et en.iperf.fr ou iperf.info ?

Optrolight

  • Client Orange Fibre
  • Modérateur
  • *
  • Messages: 4 673
  • Grenoble (38) @Optrolight
    • Optroastro
Site multilingue avec Apache
« Réponse #7 le: 19 janvier 2016 à 08:14:02 »
2 fois plus de boulot.  Quand tu dois changer sur l'un tu le fait aussi sur l'autre. Avec la détection de langue tu ne le fait qu'une fois.

Darklight

  • Abonné Free adsl
  • *
  • Messages: 648
  • Free non-dégroupé (77)
Site multilingue avec Apache
« Réponse #8 le: 20 janvier 2016 à 00:48:10 »
Pas forcèment, tu fais une redirection CNAME vers iperf.fr, comme Apache peut gérer des noms de domaines différents, il peut ainsi servir un dossier WWW différent, par exemple afficher les fichiers de la version anglophone ou francophone si c'est depuis en.iperf.fr ou iperf.fr

corrector

  • Invité
Site multilingue avec Apache
« Réponse #9 le: 20 janvier 2016 à 00:54:41 »
Quel intérêt par rapport à mettre la langue dans l'URL sur un seul site?

Darklight

  • Abonné Free adsl
  • *
  • Messages: 648
  • Free non-dégroupé (77)
Site multilingue avec Apache
« Réponse #10 le: 21 janvier 2016 à 19:46:06 »
Tout dépend comment Vivien à construit le site, si il faut faire du rewriting avec un paramètre dans le code PHP (pour le SEO, Google est incapable de distinguer un paramètre d'URL pour une langue), ou alors un "vrai" dossier /fr/ et /en/ auxquels il suffirait de mettre un simple fichier php avec une variable et include() qui affiche dynamiquement la page réelle du site...  il y a différentes méthodes par l'URL mais ça reste plus aisé de mettre un sous domaine différent.

J'ai fait quelque chose de similaire il y a pas longtemps, j'étais même tombé dans mes recherches sur une astuce de bricolo consistant à réutiliser la page du ErrorDocument 404 dans le but de rediriger les gens avec PHP, et ajouter un header 200 pour faire croire au navigateur que c'est bien une réponse normale... on trouve de tout.

Ce qui suit est très pratique pour renvoyer les gens venant du domaine principal :
https://www.dyeager.org/2008/10/getting-browser-default-language-php.html

Il faut envoyer un code 302 pour une redirection temporaire dans ce cadre, éviter la 301 qui est permanente d'après les RFC, tous les sites faisant une redirection selon la langue, par URL utilisent une 302. Mais pour passer du HTTP -> HTTPS, une redirection 301 est pratique

corrector

  • Invité
Site multilingue avec Apache
« Réponse #11 le: 21 janvier 2016 à 19:53:45 »
Pourquoi gogol aurait du mal avec un paramètre?