So übersetzen Sie JavaScript-Strings in Rails

Rails I18n und elegante Nachrichtenübergabe an JavaScript

The process of “internationalization” usually means to abstract all strings and other locale specific bits (such as date or currency formats) out of your application. The process of “localization” means to provide translations and localized formats for these bits.

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 – e.g. Active Record validation messages, time and date formats – has been internationalized, so Lokalisierung of a Rails application means “over-riding” these defaults.

 1.1 Die Gesamtarchitektur der Bibliothek

Somit ist der Edelstein Ruby I18n in zwei Teile geteilt:

  • The public API of the i18n framework – a Ruby module with public methods that define how the library works
  • 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”][“welcome”];

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) The backend needs to be initialized if it hasn’t been already.

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”][“welcome”]; Or I18n.alpha.welcome;

G) Verschiedene Bibliotheken und Plugins für Internationalisierung & Lokalisierung:

i18next – https://github.com/i18next/i18next

I18n gem – 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!

LUBAIB CEEJEY
Senior Ruby on Rails-Entwickler

Abonnieren Sie die neuesten Updates

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

German
English
English
Japanese
German
French
Spanish

WhatsApp uns

Beenden Sie die mobile Version