Rails I18n et le passage élégant de messages vers JavaScript
Le processus d'"internationalisation" consiste généralement à extraire de votre application toutes les chaînes de caractères et autres éléments spécifiques à la région (tels que les formats de date ou de devise). Le processus de "localisation" consiste à fournir des traductions et des formats localisés pour ces éléments.
Comment fonctionne I18n dans Ruby on Rails
"Les limites de ma langue sont les limites de mon monde." -Ludwig Wittgenstein. Avec plus de 6 909 langues distinctes dans le monde et la plupart d'entre elles présentant de nombreuses différences (par exemple dans les règles de pluralisation), il est difficile de fournir des outils spécifiques pour l'internalisation. Cependant, pour les barrières illimitées de langues, l'API Rails I18n se concentre sur :
- la prise en charge de l'anglais et des langues similaires dès le départ
- facilitant la personnalisation et l'extension à d'autres langues
Dans le cadre de cette solution, toutes les chaînes statiques de la base de données Cadre Rails - par exemple les messages de validation de l'Active Record, les formats d'heure et de date - a été internationalisée, de sorte que localisation d'une application Rails signifie "outrepasser" ces valeurs par défaut.
1.1 L'architecture générale de la bibliothèque
Ainsi, la gemme Ruby I18n est divisée en deux parties :
- L'API publique du framework i18n - un module Ruby avec des méthodes publiques qui définissent le fonctionnement de la bibliothèque.
- Un backend par défaut (qui est intentionnellement nommé Simple ) qui implémente ces méthodes
En tant qu'utilisateur, vous ne devez accéder qu'aux méthodes publiques du module I18n, mais il est utile de connaître les capacités du backend.
Voici la manière la plus simple de mettre en œuvre l'internationalisation en JavaScript ;
a) Utiliser le script
<script type=”text/javascript”>
window.I18n =
</script>
b) Vous pouvez ajouter le code ci-dessous dans JS fichier ;
I18n["en-US"]["alpha"]["welcome"] ;
c) Obtenez l'aide du aide à l'application en ajoutant la méthode ci-dessous ;
def current_translations
@translations ||= I18n.backend.send(:translations)
@translations[I18n.locale].with_indifferent_access
fin
d) Le backend doit être initialisé s'il ne l'a pas déjà été.
I18n.backend.send(:init_translations) unless I18n.backend.initialized ?
# maintenant vous pouvez en toute sécurité mettre les traductions dans un fichier json
e) Invoquez la procédure ci-dessous dans votre application.html.erb ;
<script type=”text/javascript”>
window.I18n =
</script>
f) Pour éviter d'avoir à connaître la locale actuelle en JavaScript.
I18n["alpha"]["welcome"] ; Ou I18n.alpha.welcome ;
g) Diverses bibliothèques et plugins pour l'internationalisation et la localisation :
i18next - https://github.com/i18next/i18next
I18n gem - https://github.com/svenfuchs/i18n
requirejs-i18n - https://requirejs.org/docs/api.html#i18n
À RailsCarma nous utilisons les outils et les techniques les plus récents pour créer des applications uniques. Consultez Notre portfolio pour comprendre comment nous contribuons à changer la forme de l'industrie du logiciel.Pour en savoir plus sur le développement Ruby on Rails, contactez-nous dès maintenant !