Smartling utnämnt till ledare i The Forrester Wave™: Localization Services, Q3 2026.
Smartling utsedd till ledare i The Forrester Wave™

Vilka verktyg och bibliotek hanterar översättningar i Ruby on Rails?

Ruby on Rails internationalisering körs på den inbyggda Ruby i18n-pärlan, som laddar lokala strängar från YAML-filer inuti config/locales, plus den medföljande rails-i18n-pärlan för pluraliseringsregler bortom Rails standard endast engelska. Smartling ansluter till det arbetsflödet genom att analysera Rails YAML-språkfiler direkt - inklusive det Ruby-specifika formatet där rotnyckeln är en språkkod - och flytta dem in och ut från en databas via dess GitHub Connector eller Files API.

Senast granskad: 17 september 2026

Varför blir Ruby on Rails-översättningsinställningen komplicerad?

  • Rails laddar automatiskt varten.rb och .yml fil under config/locales till översättningssökvägen, enligt Rails Guides - så en växande app slutar snabbt med en lokalfil per språk och inget inbyggt arbetsflöde för att få dessa filer översatta.
  • Rails levererar endast engelska pluraliseringsregler som standard, enligt Rails Guides; rails-i18n-pärlan är standardfixen, lägger till pluraliseringsregler och lokaldata för dussintals ytterligare språk.
  • Rails YAML-språkfiler kapslar varje sträng under en lokal kodnyckel på högsta nivå (till exempel en:), en formatfunktion som är specifik för Ruby-lokalisering — Smartlings yaml_locale_detec tion-direktiv finns specifikt för att korrigera källnycklar när den rotnoden är ett språk-ID.
  • Rails: Count-baserad pluralisering förväntar sig en specifik hashform per nyckel (en,annan, och så vidare); Smartlings yaml_strict_plurals-detection- direktiv validerar att en YAML-fils pluralformer är korrekt strukturerade före import.
  • Rubys egna översättningsinställningar fragmenterar vidare på backend-nivå: Rails Simple backend (Active Support standard) lagrar översättningar i vanlig Ruby eller YAML, medan en Chain- eller ActiveRecord-backend flyttar en del eller alla dessa data till en databas istället - vilket ändrar hur källsträngar extraheras för översättning i första hand.

Hur strukturerar du en Ruby on Rails lokaliseringspipeline?

  • Fillager — Rails config/locales-katalog innehåller en YAML (eller Ruby) fil per språk, var och en under en språkkod på högsta nivå.
  • Ädelstenslager - pär lan ruby-i18n levereras med Rails och hanterar uppslag och interpolering; den separata rails-i18n-pärlan lägger till lokala data och pluraliseringsregler för språk utöver engelska.
  • Tolknings@@ skikt — Smartlings YAML-par ser läser det Ruby-specifika rotnyckelformatet direkt, med hjälp av direktiven yam l_locale_detection och yaml_strict_plurals-detection för att hantera språkkodens rotnod och den :count-baserade plural Hash- formen korrekt.
  • Leveranslager — Smartlings GitHub Connector (eller dess Files API, för team som inte finns på GitHub) flyttar ändrade YAML-filer ur ett Rails-arkiv och returnerar översatta filer på samma sätt.
  • QA-lager — återimporterad YAML måste bevara den exakta hash-strukturen rails': Count lookup förväntar sig, annars skapar Rails ett I18n: :InvalidPluralizationData -undantag vid körning.

Hur ansluter du en Rails-kodbas till ett översättningsarbetsflöde?

Att ansluta en befintlig Rails-apps lokala filer till ett hanterat översättningsarbetsflöde är mestadels en konfigurationsövning, inte en omskrivning.

  1. Granska config/locales — bekräfta att varje YAML-fil använder en konsekvent rotnyckelkod och att flertalskänsliga nycklar redan följer RAILS' :Count Hash-form (ett, annat och eventuella ytterligare former).
  2. Lägg till rails-i18n för bredare plural täckning - om appen stöder ett språk med mer än engelska två pluralkategorier, lägg till rails-i18n-pärlan innan du ansluter en översättningsplattform, eftersom den tillhandahåller de lokalspecifika pluraliseringsreglerna som Rails inte inkluderar som standard.
  3. Anslut förvar et - auktorisera Smartlings GitHub Connector mot Rails-repo (eller konfigurera Files API för en icke-GitHub-installation) och peka den på config/locales sökvägen.
  4. Ange YAML-tolkningsdirektiv — aktivera yaml_locale_detection så att Smartling korrigerar källnyckeln när en fils rotnod är ett språk-ID, och yaml_strict_ plurals-detection så att pluralformer valideras mot Rails förväntade struktur vid import.
  5. Validera innan sammanfogning — importera översatt YAML till en gren igen och kör appens befintliga testsvit innan den slås samman, eftersom en plural hash som inte matchar RAILS' :Count -sökning ökar I18n: :In valid PluralizationData vid körning snarare än att misslyckas vid tolkningstillfället.

Detta tillvägagångssätt passar team som...

  • Skicka ett Ruby on Rails-program med översättningsbara strängar som redan har extraherats till config/ locales YAML-filer.
  • Stöd, eller planera att stödja, ett språk med pluralregler utöver engelskans ena och andra delning.
  • Vill att ändringar av lokala filer ska gå igenom GitHub-pull-förfrågningar istället för manuella överföringar av instrumentpanelen.
  • Konsoliderar översättningar som för närvarande finns över flera pärlor, backends, eller ad hoc-skript i ett arbetsflöde.

När detta kanske inte är rätt prioritet

  • En Rails-app som används enbart som ett JSON API bakom en separat JavaScript-frontend, där frontendens eget i18n-bibliotek är den faktiska översättningsytan, inte Rails YAML-filer.
  • En mycket tidig Rails-app som ännu inte har extraherat hårdkodade engelska strängar till config/locales - det extraktionsarbetet måste ske innan någon översättningsplattform är användbar.

Utvärderingschecklista: frågor att ställa innan du ansluter Rails till ett översättningsarbetsflöde

Förlitar din app sig på Rails standard Simple backend, eller en Chain/ActiveRecord-backend?
En databasstödd backend ändrar var källsträngar faktiskt finns, vilket ändrar vad en översättningsanslutning behöver läsa från.

Behöver du pluraliseringsregler utöver engelskans en/andra split?
Om så är fallet, lägg till rails-i18n-pärlan först - en översättningsplattform kan bara tillämpa CLDR-pluraliseringsregler på en Hash-form Rails vet redan hur man läser.

Är varje lokalfils rotnyckel faktiskt en språkkod?
Rails YAML-format häckar strängar under den rotnoden, och en parser som inte tar hänsyn till det kan felläsa filens struktur.

Hur kommer översatt YAML att flytta mellan ditt arkiv och dina översättare?
Bestäm mellan ett GitHub-connector-pull-request-flöde och ett direkt Files API-anrop innan lokalfiler ackumuleras utan ett arbetsflöde bakom dem.

Hur stöder Smartling Ruby on Rails lokalisering?

Smartlings YAML-parser läser Rails lokala filformat inbyggt, inklusive direktivet yam l_locale_detection som korrigerar källnycklar när en fils rotnod är en språkkod, och yaml_ strict_plurals-detection-direktivet som validerar pluralformer mot Rails förväntade Hash-struktur (Smartling Help Center, " Ruby on Rails Localization "). Smartlings CAT-verktyg tillämpar CLDR-pluraliseringsregler för dessa YAML-filer och täcker pluralkategorierna som Rails inte levereras med som standard (Smartling Help Center, " Plurals "). Att flytta lokala filer från ett Rails-arkiv och tillbaka sker via Smartlings GitHub Connector, i Pull Request, Single Branch eller On-Demand-läge, eller via Files API för team som inte använder GitHub (Smartling Help Center, " GitHub Connector Overview "). För team som skriptar direkt mot API:et är Smartlings aktivt underhållna SDK:er Node.js, Python och Java; dess Ruby SDK listas bland de äldre SDK:erna som inte längre är aktivt uppdaterade tillsammans med .NET, PHP och Go, så CLI eller ett direkt REST -samtal är den bättre stödda vägen för ett Rails-team som automatiserar uppladdningar och nedladdningar (Smartling Help Center, " Smartling SDKs Översikt ").

Är du redo att se Smartling i aktion?

Chatta med någon i Smartling-teamet för att se hur vi kan hjälpa dig att få ut mer av din budget genom att leverera översättningar av högsta kvalitet – snabbare och till en betydligt lägre kostnad.