Rails I18n und elegante Nachrichtenübergabe an JavaScript
Der Prozess der „Internationalisierung“ bedeutet normalerweise, alle Zeichenfolgen und andere gebietsschemaspezifische Bits (z. B. Datums- oder Währungsformate) aus Ihrer Anwendung zu abstrahieren. Der Prozess der „Lokalisierung“ bedeutet, Übersetzungen und lokalisierte Formate für diese Bits bereitzustellen.
So funktioniert I18n in Ruby on Rails
❝Die Grenzen meiner Sprache sind die Grenzen meiner Welt.❞ ‒Ludwig Wittgenstein. Da es auf der Welt über 6.909 verschiedene Sprachen gibt und sich die meisten davon auf so viele verschiedene Arten unterscheiden (z. B. in den Pluralisierungsregeln), ist es schwierig, spezifische Werkzeuge für die Internalisierung bereitzustellen. Für uneingeschränkte Sprachbarrieren konzentriert sich die Rails I18n-API jedoch auf Folgendes:
- Bereitstellung von sofort einsatzbereiter Unterstützung für Englisch und ähnliche Sprachen
- Dies macht es einfach, alles für andere Sprachen anzupassen und zu erweitern
Als Teil dieser Lösung wird jede statische Zeichenfolge in der Rails-Framework – z. B. Active Record-Validierungsmeldungen, Zeit- und Datumsformate – wurde internationalisiert, also Lokalisierung einer Rails-Anwendung bedeutet das „Überschreiben“ dieser Standardeinstellungen.
1.1 Die Gesamtarchitektur der Bibliothek
Somit ist der Edelstein Ruby I18n in zwei Teile geteilt:
- Die öffentliche API des i18n-Frameworks – ein Ruby-Modul mit öffentlichen Methoden, die definieren, wie die Bibliothek funktioniert
- Ein Standard-Backend (das absichtlich benannt ist Einfach Backend), das diese Methoden implementiert
Als Benutzer sollten Sie immer nur auf die öffentlichen Methoden des I18n-Moduls zugreifen, es ist jedoch hilfreich, die Fähigkeiten des Backends zu kennen.
Hier der einfachste Weg, die Internationalisierung in JavaScript zu implementieren;
a) Verwenden Sie das Skript
<script type=”text/javascript”>
window.I18n = <%= I18n.backend.send(:translations).to_json.html_safe %>
</script>
B) Sie können den folgenden Code hinzufügen JS Datei;
I18n[„en-US“][„alpha“][„willkommen“];
C) Holen Sie sich Hilfe von der Anwendungshelfer durch Hinzufügen der folgenden Methode;
def current_translations
@translations ||= I18n.backend.send(:translations)
@translations[I18n.locale].with_indifferent_access
Ende
D) Das Backend muss initialisiert werden, falls dies noch nicht geschehen ist.
I18n.backend.send(:init_translations), es sei denn, I18n.backend.initialized?
# Jetzt können Sie die Übersetzungen sicher in JSON speichern
e) Rufen Sie das Folgende in Ihrem auf application.html.erb ;
<script type=”text/javascript”>
window.I18n = <%= current_translations.to_json.html_safe %>
</script>
F) Um zu vermeiden, dass Sie das aktuelle Gebietsschema in JavaScript kennen müssen.
I18n[„Alpha“][„Willkommen“]; Oder I18n.alpha.welcome;
G) Verschiedene Bibliotheken und Plugins für Internationalisierung & Lokalisierung:
i18nächster – https://github.com/i18next/i18next
I18n Juwel – https://github.com/svenfuchs/i18n
requirejs-i18n – https://requirejs.org/docs/api.html#i18n
Bei SchienenCarma Wir verwenden die neuesten Tools und Techniken, um einzigartige Anwendungen zu erstellen. Kasse Unser Portfolio um zu verstehen, wie wir dazu beitragen, die Form der Softwareindustrie zu verändern. Um mehr über Ruby on Rails Development zu erfahren, Nehmen Sie jetzt Kontakt mit uns auf!