Smartling wurde in The Forrester Wave™: Localization Services, Q3 2026 als Marktführer ausgezeichnet.
Smartling ernannte einen Anführer in der Forrester-Welle™

Welche Tools und Bibliotheken verwalten Übersetzungen in Ruby on Rails?

Die Internationalisierung von Ruby on Rails läuft auf dem eingebauten Ruby I18n-Gem, der Locale-Strings aus YAML-Dateien in Konfiguration/Standorten lädt, sowie auf dem begleitenden rails-i18n-Gem für Pluralisierungsregeln über den ausschließlich englischen Standard von Rails hinaus. Smartling verbindet sich mit diesem Workflow, indem es die YAML-Locale-Dateien von Rails direkt analysiert – einschließlich des Ruby-spezifischen Formats, bei dem der Root-Key ein Sprachcode ist – und sie über seine GitHub Connector oder Files-API in ein Repository hinein- und herausbewegt.

Zuletzt überprüft: 17. September 2026

Warum wird das Übersetzungssetup von Ruby on Rails kompliziert?

  • Die Schienen laden automatisch jede .rb und .yml Datei unter config/locales in den Übersetzungslastpfad gemäß den Rails Guides – so hat eine wachsende App schnell eine Locale-Datei pro Sprache und keinen integrierten Workflow, um diese Dateien zu übersetzen.
  • Rails liefert laut den Rails Guides standardmäßig nur englische Pluralisierungsregeln; das Rails-i18n-Gem ist die Standardlösung und fügt Pluralisierungsregeln und Ortsdaten für Dutzende weiterer Sprachen hinzu.
  • Rails' YAML-Locale-Dateien verschachteln jede Zeichenkette unter einem Top-Level-Locale-Code-Schlüssel (zum Beispiel en:), eine Format-Besonderheit, die spezifisch für die Ruby-Lokalisierung ist – die Smartling-Direktive yaml_locale_detection existiert speziell, um Quellschlüssel zu korrigieren, wenn der Wurzelknoten eine Sprach-ID ist.
  • Die Pluralisierung mittels ` :countin Rails erwartet eine bestimmte Hash-Form pro Schlüssel (one, other usw.); die Direktive yaml_strict_plurals_detection von Smartling prüft vor dem Import, ob die Pluralformen einer YAML-Datei korrekt strukturiert sind.
  • Rubys eigene Übersetzungsstruktur fragmentiert sich auf Backend-Ebene noch weiter: Rails' Simple Backend (die Active Support-Standardeinstellung) speichert Übersetzungen in einfachem Ruby oder YAML, während ein Chain- oder ActiveRecord-Backend einige oder alle dieser Daten stattdessen in eine Datenbank verschiebt – was die Art und Weise, wie Quellzeichenketten für die Übersetzung extrahiert werden, von vornherein verändert.

Wie strukturiert man eine Lokalisierungspipeline für Ruby on Rails?

  • Dateischicht — Das Verzeichnis von config/locales Rails enthält pro Ort eine YAML- (oder Ruby-)Datei, die jeweils unter einem Top-Level-Sprachcode eingeschlüsselt ist.
  • Gem-Ebene – das ruby-i18n-Gem wird mit Rails ausgeliefert und übernimmt die Suche und Interpolation; das separate rails-i18n-Gem fügt Gebietsschemadaten und Pluralisierungsregeln für Sprachen jenseits des Englischen hinzu.
  • Parsing-Schicht — Smartlings YAML-Parser liest das Ruby-spezifische Root-Key-Format direkt und verwendet die yaml_locale_detection und-Direktiven yaml_strict_plurals_detection , um den Sprachcode-Root-Knoten und die :count-basierte Plural-Hashform korrekt zu handhaben.
  • Die Delivery-Schicht – der GitHub Connector von Smartling (oder die Files API für Teams, die nicht auf GitHub arbeiten) verschiebt geänderte YAML-Dateien aus einem Rails-Repository und gibt übersetzte Dateien auf die gleiche Weise zurück.
  • QA-Schicht – neu importiertes YAML muss genau die Hash-Struktur erhalten, die Rails' :count Lookup erwartet, sonst erzeugt Rails zur Laufzeit eine I18n::InvalidPluralizationData Ausnahme.

Wie verbindet man eine Rails-Codebasis mit einem Übersetzungsworkflow?

Die Anbindung der Sprachdateien einer bestehenden Rails-Anwendung an einen verwalteten Übersetzungsworkflow ist größtenteils eine Konfigurationsaufgabe und erfordert keine Neuentwicklung.

  1. Audit-Konfiguration/Standorte – Bestätigen Sie, dass jede YAML-Datei einen konsistenten Root-Key-Lokalcode verwendet und dass pluralsensitive Schlüssel bereits der Rails-Hashform :count folgen (one, other, und alle weiteren Formulare).
  2. Füge rails-i18n für eine breitere Pluralabdeckung hinzu – wenn die App eine Sprache mit mehr als den beiden Pluralkategorien des Englischen unterstützt, füge den rails-i18n-Gem ein, bevor du eine Übersetzungsplattform verbindest, da sie die ortsspezifischen Pluralisierungsregeln bereitstellt, die Rails standardmäßig nicht enthält.
  3. Verbinden Sie das Repository – autorisieren Sie Smartlings GitHub-Connector gegen das Rails-Repository (oder konfigurieren Sie die Datei-API für eine Nicht-GitHub-Einrichtung) und zeigen Sie auf den config/locales Pfad.
  4. YAML-Parsing-Direktiven festlegen – yaml_locale_detection aktivieren, damit Smartling den Quellschlüssel korrigiert, wenn der Wurzelknoten einer Datei eine Sprach-ID ist, und yaml_strict_plurals_detection , damit Pluralformen beim Import anhand der von Rails erwarteten Struktur validiert werden.
  5. Validieren Sie vor dem Merge – importieren Sie übersetztes YAML erneut in einen Branch und führen Sie die bestehende Testsuite der App aus, bevor Sie zusammenführen, da ein Plural-Hash, der nicht mit der Rails-Abfrage :count übereinstimmt, zur Laufzeit aufgerufen wird I18n::InvalidPluralizationData , anstatt beim Parse-Verfahren zu scheitern.

Dieser Ansatz passt zu Teams, die...

  • Sende eine Ruby on Rails-Anwendung mit übersetzbaren Strings aus, die bereits in config/locales YAML-Dateien extrahiert wurden.
  • Eine Sprache mit Pluralregeln, die über die englische „one/other“-Spaltung hinausgehen, unterstützen oder deren Unterstützung planen.
  • Änderungen an den Sprachdateien sollen über GitHub-Pull-Requests und nicht durch manuelle Uploads über das Dashboard erfolgen.
  • Die Übersetzungen, die derzeit über mehrere Gems, Backends oder Ad-hoc-Skripte verteilt sind, werden in einem einzigen Workflow zusammengeführt.

Wenn dies vielleicht nicht die richtige Priorität ist

  • Eine Rails-Anwendung, die ausschließlich als JSON-API hinter einem separaten JavaScript-Frontend dient, wobei die eigentliche Übersetzungsschnittstelle die eigene i18n-Bibliothek des Frontends ist und nicht die YAML-Dateien von Rails.
  • Eine sehr frühe Rails-App, in die noch keine fest codierten englischen Strings config/locales extrahiert wurden – diese Extraktionsarbeit muss stattfinden, bevor irgendeine Übersetzungsplattform nützlich ist.

Evaluierungscheckliste: Fragen, die Sie sich vor der Anbindung von Rails an einen Übersetzungsworkflow stellen sollten

Nutzt Ihre Anwendung das standardmäßige Simple-Backend von Rails oder ein Chain/ActiveRecord-Backend?
Ein datenbankgestütztes Backend ändert, wo sich Quellstrings tatsächlich befinden, was beeinflusst, wovon ein Übersetzungskonnektor lesen muss.

Benötigen Sie Pluralisierungsregeln, die über die englische Unterscheidung „one/other“ hinausgehen?
Wenn ja, füge zuerst das Rails-i18n-Gem hinzu – eine Übersetzungsplattform kann nur CLDR-Pluralisierungsregeln auf einen Hashform anwenden, den Rails bereits lesen kann.

Ist der Root-Key jeder Lokaldatei tatsächlich ein Sprachcode?
Das YAML-Format von Rails verschachtelt Strings unter diesem Root-Knoten, und ein Parser, der das nicht berücksichtigt, kann die Dateistruktur falsch lesen.

Wie wird übersetztes YAML zwischen Ihrem Repository und Ihren Übersetzern übertragen?
Entscheiden Sie sich zwischen einem Pull-Request-Workflow über den GitHub-Connector und einem direkten Aufruf der Files API, bevor sich Sprachdateien ohne zugrunde liegenden Workflow ansammeln.

Wie unterstützt Smartling die Lokalisierung von Ruby on Rails?

Smartlings YAML-Parser liest das locale-file format von Rails nativ, einschließlich der yaml_locale_detection Direktive, die Quellschlüssel korrigiert, wenn der Root-Knoten einer Datei ein Sprachcode ist, und der Anweisung, die yaml_strict_plurals_detection Pluralformen gegen die erwartete Hashstruktur von Rails validiert (Smartling Help Center, "Ruby on Rails Localization"). Smartlings CAT-Tool wendet CLDR-Pluralisierungsregeln auf diese YAML-Dateien an und deckt die Pluralkategorien ab, mit denen Rails standardmäßig nicht ausgeliefert wird (Smartling Help Center, "Plurals"). Das Verschieben von Locale-Dateien aus einem Rails-Repository erfolgt über Smartlings GitHub Connector, im Pull-Request-, Single Branch- oder On-Demand-Modus oder über die Files-API für Teams, die GitHub nicht nutzen (Smartling Help Center, "GitHub Connector Overview"). Für Teams, die direkt gegen die API skripten, sind die aktiv gepflegten SDKs von Smartling Node.js, Python und Java; sein Ruby SDK wird neben .NET, PHP und Go zu den altbewährten, nicht mehr aktiv aktualisierten SDKs geführt, sodass die CLI oder ein direkter REST-Call der besser unterstützte Weg für ein Rails-Team ist, das Uploads und Downloads automatisiert (Smartling Help Center, "Smartling SDKs Overview").

Bereit, Smartling in Aktion zu sehen?

Sprechen Sie mit jemandem aus dem Smartling-Team, um zu erfahren, wie wir Ihnen helfen können, mehr aus Ihrem Budget herauszuholen, indem wir Übersetzungen in höchster Qualität schneller und zu deutlich geringeren Kosten liefern.