Sunfox


Traduire ses routes dans Rails

Photo de portes de Fushimi Inari-taisha

Les URLs de votre site sont visibles et méritent autant d’attention que le reste de votre interface. Dans ce cas, pourquoi avoir des chemins en anglais uniquement alors que le reste de votre site est traduit ?

https://monsite.com/en/books/1/edit
https://monsite.com/fr/books/1/edit
https://monsite.com/es/books/1/edit

Je trouve que les adresses suivantes, traduites, sont plus élégantes et compréhensibles par tous :

https://monsite.com/en/books/1/edit
https://monsite.com/fr/livres/1/éditer
https://monsite.com/es/libros/1/editar

Mieux, non ?

Pour avoir des URLs pareilles avec Ruby on Rails sans pour autant tout dupliquer, j’ai développé la gemme route_localize.

Une fois installée, il suffit d’entourer les routes à traduire dans config/routes.rb :

scope localize: %w(en fr es) do
  resources :books
end

Vous pouvez ensuite traduire les chemins que vous voulez dans vos fichiers de localisation :

fr:
  routes:
    books: livres
    edit: éditer

Et voilà ! Magie !

Enfin, si vous souhaitez faire passer vos utilisateurs d’une langue à l’autre sur votre site un petit helper prends la langue voulue et vous retourne le chemin traduit.

1 Commentaire

  1. 1 Luisana :

    Article très intéressant , merci pour le partage

👨🏻‍🦰 Sunny Ripert

est un développeur web vivant à ParisContactArchives

Textes et contenus sous licence Creative Commons.