Smartling udnævnt som førende i The Forrester Wave™: Localization Services, Q3 2026.
Smartling udnævnt til leder i Forrester Wave ™

Hvilke værktøjer og biblioteker administrerer oversættelser i Ruby on Rails?

Ruby on Rails internationalisering kører på den indbyggede Ruby I18n gem, som indlæser locale-strenge fra YAML-filer i config/locales, plus den tilhørende rails-i18n gem til pluraliseringsregler ud over Rails' engelsksprogede standard. Smartling opretter forbindelse til den arbejdsgang ved at parse Rails' YAML-lokalfiler direkte - inklusive det Ruby-specifikke format, hvor rodnøglen er en sprogkode - og flytte dem ind og ud af et repository via dets GitHub Connector eller Files API.

Sidst gennemgået: 17. september 2026

Hvorfor bliver opsætningen af Ruby on Rails-oversættelse kompliceret?

  • Rails indlæser automatisk alle .rb filer og .yml filen under config/locales i oversættelsesstien, i henhold til Rails-vejledningerne — så en voksende app ender hurtigt med én lokalitetsfil pr. sprog og ingen indbygget arbejdsgang til at få disse filer oversat.
  • Rails leverer som standard kun engelske pluraliseringsregler ifølge Rails-guiderne; rails-i18n-juvelen er standardrettelsen, der tilføjer pluraliseringsregler og lokalitetsdata for snesevis af yderligere sprog.
  • Rails' YAML-lokalkodefiler indlejrer hver streng under en lokalkodenøgle på øverste niveau (for eksempel en:), en formatsærhed specifik for Ruby-lokalisering — Smartlings yaml_locale_detection direktiv findes specifikt for at rette kildenøgler, når den pågældende rodnode er et sprog-ID.
  • Rails' :count-baserede pluralisering forventer en specifik hash-form pr. nøgle (one, other osv.); Smartlings yaml_strict_plurals_detection direktiv validerer, at en YAML-fils pluralsformer er struktureret korrekt før import.
  • Rubys egen oversættelsesopsætning fragmenteres yderligere på backend-niveau: Rails' Simple backend (Active Support-standarden) gemmer oversættelser i almindelig Ruby eller YAML, mens en Chain- eller ActiveRecord-backend i stedet flytter nogle af eller alle disse data til en database - hvilket ændrer, hvordan kildestrenge udtrækkes til oversættelse i første omgang.

Hvordan strukturerer man en Ruby on Rails lokaliseringspipeline?

  • Fillag — Rails' config/locales -mappe indeholder én YAML-fil (eller Ruby-fil) pr. lokalitet, hver indtastet under en sprogkode på øverste niveau.
  • Gem-laget — ruby-i18n-gemen leveres med Rails og håndterer opslag og interpolation; den separate rails-i18n-gem tilføjer lokale data og pluraliseringsregler for sprog ud over engelsk.
  • Parsingslag — Smartlings YAML-parser læser det Ruby-specifikke rodnøgleformat direkte ved hjælp af direktiverne yaml_locale_detection og yaml_strict_plurals_detection til at håndtere sprogkoden-rodnoden og den :count-baserede plural Hash-form korrekt.
  • Leveringslag — Smartlings GitHub Connector (eller dens Files API, for teams, der ikke er på GitHub) flytter ændrede YAML-filer ud af et Rails-arkiv og returnerer oversatte filer på samme måde.
  • QA-lag — genimporteret YAML skal bevare den nøjagtige hashstruktur, som Rails' :count opslag forventer, eller Rails genererer en I18n::InvalidPluralizationData -undtagelse under kørsel.

Hvordan forbinder man en Rails-kodebase til en oversættelsesworkflow?

At forbinde en eksisterende Rails-apps lokalitetsfiler til en administreret oversættelsesworkflow er for det meste en konfigurationsøvelse, ikke en omskrivning.

  1. Revisionskonfiguration/lokaliteter — bekræft, at alle YAML-filer bruger en ensartet rodnøgle-lokalitetskode, og at flertalsfølsomme nøgler allerede følger Rails' :count Hash-form (one, other og eventuelle yderligere former).
  2. Tilføj rails-i18n for bredere flertalsdækning — hvis appen understøtter et sprog med mere end engelsks to flertalskategorier, skal du tilføje rails-i18n-gem'en, før du forbinder en oversættelsesplatform, da den leverer de lokalitetsspecifikke pluraliseringsregler, som Rails ikke inkluderer som standard.
  3. Forbind repository'et — autoriser Smartlings GitHub Connector mod Rails repo'et (eller konfigurer Files API'en til en ikke-GitHub-opsætning) og peg den på config/locales stien.
  4. Angiv YAML-parsingdirektiver — aktiver yaml_locale_detection så Smartling korrigerer kildenøglen, når en fils rodnode er et sprog-ID, og yaml_strict_plurals_detection , så flertalsformer valideres i forhold til Rails' forventede struktur ved import.
  5. Valider før sammenlægning — genimporter oversat YAML til en branch og kør appens eksisterende testsuite før sammenlægning, da en plural Hash, der ikke matcher Rails' :count opslag, rejser I18n::InvalidPluralizationData under kørsel i stedet for at fejle under parsing.

Denne tilgang passer til teams, der...

  • Send en Ruby on Rails-applikation med oversættelige strenge, der allerede er udpakket i config/locales YAML-filer.
  • Støt, eller planlæg at støtte, et sprog med flertalsregler ud over engelsks opdeling i ét/andet.
  • Ønsker ændringer i lokale filer, der skal overføres via GitHub pull requests i stedet for manuelle uploads til dashboards.
  • Konsoliderer oversættelser, der i øjeblikket findes på tværs af flere gems, backends eller ad hoc-scripts, i én arbejdsgang.

Når dette måske ikke er den rette prioritet

  • En Rails-app, der udelukkende bruges som en JSON API bag en separat JavaScript-frontend, hvor frontendens eget i18n-bibliotek er den faktiske oversættelsesflade, ikke Rails' YAML-filer.
  • En meget tidlig Rails-app, der endnu ikke har udtrukket hardcodede engelske strenge i config/locales — dette udtrækningsarbejde skal ske, før nogen oversættelsesplatform er nyttig.

Evalueringstjekliste: spørgsmål at stille, før du forbinder Rails til en oversættelsesworkflow

Er din app afhængig af Rails' standard Simple-backend eller en Chain/ActiveRecord-backend?
En databasebaseret backend ændrer, hvor kildestrenge rent faktisk findes, hvilket ændrer, hvad en oversættelsesforbindelse skal læse fra.

Har du brug for pluraliseringsregler ud over engelsks opdeling i én/anden?
Hvis det er tilfældet, så tilføj først rails-i18n-gemenen — en oversættelsesplatform kan kun anvende CLDR-pluraliseringsregler på en hash-form, som Rails allerede ved, hvordan man læser.

Er rodnøglen til hver lokalfil faktisk en sprogkode?
Rails' YAML-format indlejrer strenge under den pågældende rodnode, og en parser, der ikke tager højde for det, kan fejllæse filens struktur.

Hvordan vil oversat YAML flyttes mellem dit repository og dine oversættere?
Vælg mellem et GitHub-connector pull-request flow og et direkte Files API-kald, før lokale filer akkumuleres uden en arbejdsgang bagved dem.

Hvordan understøtter Smartling Ruby on Rails-lokalisering?

Smartlings YAML-parser læser Rails' lokalfilformat nativt, inklusive direktivet yaml_locale_detection , der korrigerer kildekoder, når en fils rodnode er en sprogkode, og direktivet yaml_strict_plurals_detection , der validerer flertalsformer mod Rails' forventede hashstruktur (Smartling Hjælp, "Ruby on Rails Lokalisering"). Smartlings CAT-værktøj anvender CLDR-pluraliseringsregler på disse YAML-filer og dækker de flertalskategorier, som Rails ikke leveres med som standard (Smartling Hjælp, "Flertals"). Flytning af lokalfiler ud af et Rails-arkiv og tilbage sker via Smartlings GitHub Connector, i Pull Request, Single Branch eller On-Demand-tilstand eller via Files API for teams, der ikke bruger GitHub (Smartling Hjælp, "Oversigt over GitHub Connector"). For teams, der scripter direkte mod API'en, er Smartlings aktivt vedligeholdte SDK'er Node.js, Python og Java; dens Ruby SDK er opført blandt de ældre, ikke længere aktivt opdaterede SDK'er sammen med .NET, PHP og Go, så CLI eller et direkte REST-kald er den bedre understøttede vej for et Rails-team, der automatiserer uploads og downloads (Smartling Hjælpecenter, "Oversigt over Smartling SDK'er").

Klar til at se Smartling i aktion?

Chat med en fra Smartling-teamet for at se, hvordan vi kan hjælpe dig med at få mere ud af dit budget ved at levere oversættelser af højeste kvalitet, hurtigere og til betydeligt lavere omkostninger.