Railsのi18n完全入門!lazy lookupの使い方と省略記法を初心者向けにやさしく解説
生徒
「Railsで日本語表示をしている記事を見たんですが、translateとかtって何ですか?」
先生
「Railsにはi18nという仕組みがあって、文字を日本語や英語に切り替えられるんです」
生徒
「t('.title')みたいな書き方を見たんですが、どういう意味なんですか?」
先生
「それがlazy lookupと呼ばれる便利な省略記法なんですよ。順番に見ていきましょう」
1. Railsのi18nとは?日本語化と多言語対応の基本
Railsのi18n(Internationalization)は、アプリケーションを日本語や英語など複数の言語に対応させるための仕組みです。i18nを使うと、画面に表示する文字を直接コードに書かず、別のファイルにまとめて管理できます。
これは、教科書の「答え」を別のノートにまとめておくようなものです。あとから日本語を英語に変えたい場合でも、そのノートを書き換えるだけで済みます。
Rails i18n、日本語化、多言語対応、ロケール、翻訳ファイルといったキーワードは、Rails開発ではとても重要です。
Railsの仕組みを根本から理解し、現場で通用する 「設計のセオリー」を身につけたいならこの一冊。 MVC、テスト、Docker対応など、実践的な内容が凝縮されています。
パーフェクト Ruby on RailsをAmazonで見る※ Amazon広告リンク
2. ロケールとYAMLファイルの考え方
ロケールとは「言語と地域の設定」のことです。日本語ならja、英語ならenが使われます。
Railsでは、翻訳文をconfig/locales/ja.ymlのようなYAMLファイルに書きます。YAMLは「設定を書くためのシンプルな文章形式」です。
ja:
hello: "こんにちは"
このように書いておくと、Railsの中からhelloという名前で日本語を呼び出せます。
3. tメソッドの基本的な使い方
Railsで翻訳文を表示するときは、tメソッド(正式にはI18n.t)を使います。これは「翻訳を取り出す命令」です。
I18n.t('hello')
ビューでは省略して次のようにも書けます。
t('hello')
これは「翻訳ノートからhelloという見出しを探して表示してね」という意味になります。
4. lazy lookupとは?省略記法の考え方
lazy lookup(レイジールックアップ)とは、翻訳キーを省略して書けるRailsの便利機能です。
例えば、users/index.html.erbというビューがあった場合、その中でt('.title')と書くと、Railsは自動的に次のキーを探します。
ja:
users:
index:
title: "ユーザー一覧"
「今いる場所(usersのindex画面)から探す」という考え方なので、lazy(なまけもの)という名前がついています。
5. ビューでのlazy lookupの具体例
ビューではlazy lookupが特によく使われます。画面ごとに翻訳の置き場所が決まるので、管理しやすくなります。
<h1><%= t('.title') %></h1>
<p><%= t('.description') %></p>
対応するYAMLファイルは次のようになります。
ja:
users:
index:
title: "ユーザー一覧"
description: "登録されているユーザーを表示します"
ファイル名と構造が対応しているため、初心者でも迷いにくいのが特徴です。
6. コントローラでのlazy lookupの使い方
lazy lookupはコントローラでも使えます。主にフラッシュメッセージ(通知文)で使われます。
class UsersController < ApplicationController
def create
flash[:notice] = t('.success')
end
end
この場合、Railsは次のキーを探します。
ja:
users:
create:
success: "ユーザーを登録しました"
「どのアクションで使うメッセージか」が一目でわかるのが大きなメリットです。
7. lazy lookupの命名規約とルール
lazy lookupを使うときは、命名規約を守ることがとても重要です。命名規約とは「名前の付け方のルール」のことです。
基本ルールは次の通りです。
- コントローラ名(複数形)
- アクション名
- 翻訳キー名
これは「住所 → 建物 → 部屋番号」のような構造で、迷子になりにくくなります。
8. lazy lookupを使うメリットと注意点
lazy lookupのメリットは、キーが短く書けて読みやすいこと、翻訳ファイルが整理されることです。
一方で、ファイル名やアクション名を変更すると翻訳が見つからなくなる点には注意が必要です。
Rails i18n、lazy lookup、省略記法、翻訳キー、命名規約を意識することで、保守しやすいRailsアプリになります。