L'essentiel de Ruby on Rails

Traduire son application avec I18n

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
S'ouvrir à l'international est indispensable. Voyez comment traduire les éléments de votre application avec la méthode d'internationalisation I18n.
04:45

Transcription

De nos jours, avoir une application traduite dans plusieurs langues est devenu extrêmement important, surtout lorsque nous faisons du e-commerce et livrons dans différents pays dans le monde. Ruby on Rails embarque depuis très longtemps, depuis la release 2.2, la gemme i18n. Cette gemme, extrêmement bien fichue, vous permettra de traduire l’ensemble des chaînes de caractères qui sont affichées sur l’ensemble de votre site. Cette gemme pourra également modifier l’affichage des heures et des dates sur votre site en fonction du pays de résidence de votre utilisateur. Nous allons voir comment elle fonctionne avec quelques exemples concrets. Le guide en ligne, sur lequel j’étais à l’instant, présente notamment quelques configurations qu’il est possible de faire, au niveau de i18n. Nous pouvons, par exemple, lister l’ensemble des langues qui sont disponibles sur notre site. Chacune des langues doit être inscrite sous cette forme, à savoir, la clef de la langue. Ces clefs, juste pour information, viennent des listes de codes ISO 639-1. Cela paraît un peu barbare et archaïque comme nom, mais vous avez, ici, ’ensemble des codes des langues correspondant aux différentes langues que vous pourriez utiliser, notamment au sein de Ruby on Rails. Nous pouvons, au sein du fichier de configuration, également, définir la langue par défaut de notre application. Ici, le français, fr. Maintenant, nous aimerions traduire le titre Sujets de discussion. Pour cela, nous pouvons utiliser la méthode i18n.translate puis lui fournir un paramètre. Nous lui fournissons ce que l’on appelle une clef de traduction. Nous allons mettre ici topics.title. Supprimons ce qui suit. Si nous rafraîchissons la page, nous voyons un beau translation missing: fr.topics.title. Enfin, beau, non, ce n’est pas très beau, mais nous allons remédier à cela. Nous pouvons rajouter, ici, une traduction par défaut. Si nous rafraîchissons, nous obtenons maintenant bien Discussions. Mais, pour le moment, cela ne change pas beaucoup de ce que nous avions au départ. Voyons comment mettre des traductions. Tout se passe dans le dossier, ici, config/locales. Vous pouvez voir qu’il contient déjà certains fichiers pour les traductions en anglais, notamment pour simple_form, devise ou, ici, un simple hello world. Créez un nouveau fichier, nommé fr.yml. Chacun de ces fichiers locales aura pour habitude de commencer par la langue avec un deux-points. L’extension yml correspond à YAML. YAML est l’acronyme de Yet Another Markup Language. Wikipédia possède un article vous en apprenant un peu plus au sujet de YAML, si cela vous intéresse. Nous, ce qui nous intéresse, est le format à l’intérieur de ces fichiers. C’est basé sur l’indentation. Pour chaque clef de traduction, nous mettons un deux-points, revenons à la ligne et pouvons mettre d’autres clefs ou alors des traductions. Ici, par exemple, si nous voulions traduire topics.title, on ajouterait, ici, topics, puis title et, ici, Discussions. Pour que ce nouveau fichier de traduction soit pris en compte, il est possible que vous ayez à relancer votre serveur Rails. Avec cette traduction, j’ai bien, ici, le mot Discussions qui apparaît et oui, j’ai fait retirer la traduction par défaut. Maintenant, comment faire pour changer la langue de notre site. Il existe pour cela différentes méthodes et le guide en ligne sur i18n vous les fournit toutes. La méthode la plus simple est celle-ci. Il s’agit de passer le paramètre de la langue au sein de l’URL. J’ai donc rajouté ce code, un before_action :set_locale au sein de mon fichier application_controller et la méthode ici set_locale qui va définir la langue grâce à la méthode locale de i18n. J’ai ensuite rajouté une traduction, au niveau de l’onglet, et si j’accède désormais à la page avec le paramètre locale=en, j’ai bien ici ma traduction. Avant de terminer, j’aimerais vous dire que ceci est un petit peu long à écrire. Comme nous aimons bien être concis, sachez qu’il est possible d’écrire uniquement ceci, avec une méthode nommée t comme translate. Si vous rafraîchissez votre site, vous verrez que cela fonctionne toujours. i18n embarque de nombreuses méthodes vous permettant de faciliter la traduction de votre site. En revanche, une des rares choses qu’il ne parvient pas vraiment à traduire, sont les données stockées dans votre base de données par vos utilisateurs. Pour remédier à cela, il existe des gemmes, comme json_translate ou globalize. Grâce à cette vidéo, vous avez tous les outils en main pour rendre votre application internationale.

L'essentiel de Ruby on Rails

Concevez des applications web évolutives et intemporelles avec Ruby on Rails. Installez l’environnement, réalisez un projet de stack overflow, enrichissez-le, etc.

6h08 (85 vidéos)
Aucun commentaire n´est disponible actuellement

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !