Naar inhoud gaan
Ruby on Rails i18n

Ruby on Rails i18n: op conventies gebaseerd vertalingsbeheer

Ruby on Rails bevat een ingebouwde I18n-API die gebruikmaakt van YAML-locale-bestanden om vertalingen te beheren. Het framework hanteert het principe ‘conventie boven configuratie’, met ‘lazy lookup’ in weergaven, automatische regels voor het vormen van meervoudsvormen en ondersteuning voor interpolatie. Rails biedt standaard locale-bewuste helpers voor datums, getallen en valuta’s, en het fallback-systeem zorgt ervoor dat ontbrekende vertalingen op een elegante manier worden weergegeven.

i18n-functies in Ruby on Rails

YAML-lokalisatiebestanden in de map `config/locales` met een geneste sleutelstructuur
De API’s I18n.t() en I18n.l() voor vertalingen en op de locale afgestemde opmaak
Ingebouwde meervoudsvorming met 'one/other'-regels en aangepaste backends voor meervoudsvorming
Variabele interpolatie met de syntaxis %{variable} in vertaalstrings
Lazy lookup met t('.sleutel') in views voor automatische scope-omzetting
Fallback-taalketens voor soepele afhandeling van ontbrekende vertalingen
Vertaalde routes en URL-helpers met route_translator of soortgelijke gems
ActiveRecord-modelvertalingen voor meertalige inhoud op basis van een database
Locale-bewuste hulpfuncties voor datum-, tijd-, getal- en valutaopmaak

Rails i18n in de praktijk

Definieer vertalingen in YAML-localebestanden, gebruik t() in controllers en views met interpolatie, en render gelokaliseerde inhoud in ERB-templates.

# config/locales/en.yml
en:
  welcome: "Welcome to %{app_name}"
  items:
    one: "%{count} item"
    other: "%{count} items"

# app/controllers/home_controller.rb
class HomeController < ApplicationController
  def index
    @welcome = t('welcome', app_name: 'My App')
    @items = t('items', count: 5)
  end
end

# app/views/home/index.html.erb
<h1><%= @welcome %></h1>
<p><%= @items %></p>

Begin vandaag met Rails-lokalisatie

Beheer uw Rails YAML-vertalingen met door AI aangestuurde workflows, CLI-synchronisatie en CDN-levering binnen 50 ms.