GetText / Rails

May 6, 2018 | Author: Anonymous | Category: Documents
Report this link


Description

1. GetTextI18N : internationalisation 2. $ finger abelar_shttp://www.linkedin.com/in/sylvainabelard•• EPITA MTI 2008 Utilise Rails depuis sept.2006 (rails 1.0.?)•• Ingénieur R&D à Faveod Nous développons et vendons la technologie Faveod Designer • Vous permet de construire des applications complexes plus vite à partir des spécifications • Les applications sont plus rapides, sécurisées, et de meilleure qualité 3. Vue d’ensemble GNU GetText: GetText’s Never Useless•• Pourquoi ? Parce que vous voudrez utiliser plusieurs langues un jour • GetText est un standard UNIX bien connu et maîtrisé•• Comment ? Quelques horreurs de traducteurs • Montre-moi du code !•• Avec quoi ? Quelques outils autour de GetText • Alternatives 4. Rails I18NPourquoi sortir du standard Rails ?•• Simple Il y a toujours une valeur par défaut • Pas de clés complexes à retenir • Jamais de « no translation found » • Jamais de traductions approximatives 5. Linguistique C’est dur.• Un mot, une traduction ?•• Nombre, genre et cas grammatical Le nombre a l’air simple : car/cars, mais child/children et person/people • De nombreuses langues (surtout slaves) différencient singulier, duel et pluriel, parfois plus. • Le genre est souvent masculin, féminin et neutre (et rarement intuitif) • D’autres langues différencient animé et inanimé, homme, animal et chose, etc.•• Conjugaison: personne, temps, mode, voix... aspect ? ... je crois qu’on ne va même pas essayer... 6. Que choisir ?Michael Grosser - FastGetText !• github.com/grosser/fast_gettext•• Améliorations 3.5x plus vite et 560x moins de consommation mémoire • thread safety • simple, et namespace propre•• Backends fichiers .mo et .po • .yml • DB • ... codez le vôtre 7. Setup How to GetText part 1•• PO/MO filesCe sont des fichiers qui stockent clé et valeur •Beaucoup d’outils disponibles, y compris un mode emacs•• Choisir la localeÀ chaque utilisation, choisir la locale (en Rails, par requête le plus souvent)• Setup GetText.locale = "fr" init_gettext "my_app" I18n.supported_locales = ["en", "fr", "de", "ar", "ru"] # mieux : faites-le lui deviner en listant les fichiers I18n.default_locale = "fr" # en par défaut 8. UsageHow to GetText part II•• La fonction « underscore » _("string")•• Variables, à la printf _("string with %s") % "arg" • _("string with %s and %s") % ["arg1", "arg2"]•• Variables nommées _("Could not find this %{obj}") % {:obj => _("stuff")}• Et maintenant, les cas difficiles 9. AstucesHow to GetText part III•• Singulier / pluriel n_("File not found!", "%{n} files not found!", n) % {:n => n} • Et pour les pluriels irréguliers ? "Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;n" • FastGettext.pluralisation_rule = lambda{|count|count > 5 ? 1 : (count > 2 ? 0 : 2)}•• Contexte s_("File|Open") # ouvrir • s_("Sports|Open") # open • s_("Even|More|Contexts|Open") # traduit uniquement ‘open‘ • p_("even more bindinds", "for contexts", "open") # open 10. Fichiers POLes outils sont très bons pour ça.•• Mise à jour du PO rake updatepo • Note les obsolètes, ajoute les nouvelles et propose une traduction (« fuzzy »)• Modification du fichier # translator comments #. extracted comments #: reference #, flag msgid "One file removed" msgid_plural "%d files removed" msgstr[0] "%d slika uklonjenih" msgstr[1] "%d slika uklonjenih" msgstr[2] "%d slika uklonjenih"•• Mise à jour des traductions effectuées rake makemo 11. Questions? On embauche, mais c’est le slide suivant. http://ruby-i18n.org/wikihttp://www.gnu.org/software/gettext/manual/gettext.html


Comments

Copyright © 2024 UPDOCS Inc.