コンテンツへスキップ
Ruby on Rails i18n

Ruby on Rails i18n: 規約ベースの翻訳管理

Ruby on Rails には、YAML 形式のロケールファイルを使用して翻訳を管理する組み込みの I18n API が含まれています。このフレームワークは「設定よりも規約(Convention over Configuration)」の原則に従っており、ビューでの遅延検索、自動複数形変換ルール、および補間機能のサポートを備えています。Rails は、日付、数値、通貨に対してロケール対応のヘルパーを標準で提供しており、そのフォールバックシステムにより、翻訳が欠落している場合でも適切に処理されます。

Ruby on Rails i18n の機能

config/locales にあるネストされたキー構成を持つ YAML ロケールファイル
翻訳およびロケールに応じた書式設定のための I18n.t() および I18n.l() API
「one/other」ルールとカスタム複数形バックエンドによる組み込みの複数形変換機能
翻訳文字列における「% {variable}」構文を用いた変数補間
ビューで t('.key') を使用したレイジールックアップによる自動スコープ解決
欠落している翻訳を適切に処理するためのフォールバックロケールチェーン
route_translator や類似のGem を使用したルートの変換とURLヘルパー
データベースを利用した多言語コンテンツのためのActiveRecordモデルの翻訳
ロケールに応じた日付、時刻、数値、通貨の書式設定ヘルパー

実践的なRailsのi18n

YAML ロケールファイルに翻訳を定義し、コントローラーやビューで補間付きの t() を使用して、ERB テンプレートでローカライズされたコンテンツをレンダリングします。

# 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>

今日から Rails のローカライゼーションを始めましょう

AIを活用したワークフロー、CLIによる同期、50ミリ秒未満のCDN配信機能で、RailsのYAML翻訳を管理しましょう。