I18n : PUS - Prefix Urls Solution - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : I18n : PUS - Prefix Urls Solution (/showthread.php?tid=3617) |
I18n : PUS - Prefix Urls Solution - Thib4s - 09-11-2010 Bonjour à tous les développeurs sous rails, Cela faisait quelques jours que je cherchais le moyen le plus agréable pour internationaliser mon projet, faute de documentation cohérente et précises et en fouillant et bidouillant (beaucoup (a) ), j'ai créer un petit truc qui pourrait vous servir. Je vous présente donc un petit bout de code qui permet de traduire votre site en instaurant un préfixe de langue de telle manière que : L'avantage de la technique que j'utilise est que si on essaie de lancer une langue inconnue (ici le japonais(jp) pour exemple), le script agit comme cela : En gros pas de problème pour gérer vos lien vu que le script se charge de directement changer vos urls si elles ne sont pas valide : get "contact", :to => "public/pages#contact", :as => "pub_pages_contact" redirect_to pub_pages_contact_path => http://votsite.com/contact => http://votsite.com/fr/contact pour changer de langue, rien de plus facile soit vous redirigez le client vers : http://votsite.com/en/votre-page et la locale devient "en". ou bien vous lancer dans un controller def change_locale session[:locale] = "en" end Voila voila (désolé mais le formatage ne marche pas chez moi :S)
RE: I18n : PUS - Prefix Urls Solution - Plume - 09-11-2010 [HS: Il est sympa ton site http://erandar.com/ ] En ce qui me concerne, les locales sont automatiquement gérées. J'ai des templates qui contiennent dans le nom de fichier la locale correspondante :
J'utilise les templates pour les pages où il y a plus que quelques mots à traduire. Sinon, il y a des fichiers YAML dans /config/locales. Tu peux lire le commentaire du fichier en.yml pour savoir comment ça marche. Sinon, il y a la doc de Rails Je ne suis pas sûr d'avoir un intérêt à faire apparaître les locales dans l'url. RE: I18n : PUS - Prefix Urls Solution - Thib4s - 09-11-2010 Ha oui mais je travaille aussi avec les yaml pour ce qui est traduction de petits mots et les fichiers de langue tels que contact.en.html.haml, etc... ;P C'est juste que si tu regarde tous les grands sites utilisent la méthode du préfix (adobe est un très bon exemple). Tout cela permet une plus grande ergonomie et un meilleur référencement mais surtout une meilleur compréhension des url par l'utilisateur RE: I18n : PUS - Prefix Urls Solution - Plume - 09-11-2010 J'y verrais une utilité si l'url était traduite. Par exemple : Là, OK, l'url serait plus compréhensible. Sans ça, j'suis pas sûr de trouver cohérent à la lecture de l'url quelque chose comme : Si elle n'est impactée que par l'ajout de la locale, j'n'y vois pas d'intérêt, personnellement. You see? RE: I18n : PUS - Prefix Urls Solution - Anthor - 09-11-2010 (09-11-2010, 10:50 AM)_who a écrit : Je ne suis pas sûr d'avoir un intérêt à faire apparaître les locales dans l'url. Et comment tu changes de locale sans la passer ? RE: I18n : PUS - Prefix Urls Solution - Roworll - 09-11-2010 (09-11-2010, 03:05 PM)_who a écrit : J'y verrais une utilité si l'url était traduite. Blizzard par exemple, ça n'a pas l'air de les gêner : http://eu.blizzard.com/en-gb/company/index.html http://eu.blizzard.com/fr-fr/company/index.html http://eu.blizzard.com/de-de/company/index.html Visiblement, ils n'ont pas vu l'intérêt à traduire l'URL. RE: I18n : PUS - Prefix Urls Solution - Plume - 09-11-2010 @Roworll : Je n'ai pas dit que ma façon de voir était bonne, elle est juste mienne et il est clair que mon avis vaut ce qu'il vaut. Guère plus. Ainsi que je n'ai pas dit que j'cautionnais la façon de faire des autres. Blizzard est une très bonne compagnie mais c'est pas pour ça que leur parole est évangile. Maintenant, je ne sais pas trop si tu me dis ça pour me faire comprendre quelque chose comme le fait que je devrais revoir ma façon d'apprécier les choses ou si tu relèves ce fait juste pour l'anecdote ? @Anthor : Avec la gem I18n (native depuis Rails 2.2), la locale est détectée suivant les informations du client, selon l'IP, selon les informations du profil de l'utilisateur, ou via un cookie. 'fin après, c'moi qui voit. Après, il est effectivement possible de déclarer une locale via des paramètres dans l'URL, juste que je ne le fais pas autant que ne pas faire se peut RE: I18n : PUS - Prefix Urls Solution - Roworll - 09-11-2010 Houla, je disais juste ça pour l'anecdote hein. Le choix qu'ils ont fait est sans doute l'un des moins casse tête et quand on fait le tour de quelques autres sites, c'est soit ça, soit la variable de session. Faut pas se mettre sur la défensive à ce point ça parce que j'ai cité une sorte de contre exemple. La prochaine fois, je rajouterai plein de smiley qui rigolent, ça passera peut être mieux. [Edit] RE: I18n : PUS - Prefix Urls Solution - Thib4s - 09-11-2010 Ha mais pour la changer snas la passer suffit de placer dans un controller un session[:locale] = "en" par exemple et sa marche nikel Sinon je n'ai pas dit non plus que ma manière était la meilleure mais elle permet le meilleur référencement RE: I18n : PUS - Prefix Urls Solution - Plume - 09-11-2010 T'inquiètes Roro, j'suis pas sur la défensive. J'donnais juste une réponse dans les deux cas. Une réponse double à anticipation intégrée @Thibas : J'en reviens donc à ce que je disais, quitte à avoir des url anglophones, autant ne pas faire apparaitre la locale dedans. J'trouve ça moins cohérent sinon. |