Comment traduire des chaînes JavaScript dans Rails

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 !

LUBAIB CEEJEY
Développeur senior Ruby on Rails

Abonnez-vous pour les dernières mises à jour

Articles Similaires

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

fr_FRFrench