カテゴリ: Rails 更新日: 2026/03/16

Railsのi18n入門:config/localesの基本と翻訳キーの書き方【保存版】

Railsのi18n入門:config/localesの基本と翻訳キーの書き方【保存版】
Railsのi18n入門:config/localesの基本と翻訳キーの書き方【保存版】

先生と生徒の会話形式で理解しよう

生徒

「Railsで日本語と英語を切り替えられるって聞いたんですが、本当に初心者でもできますか?」

先生

「Railsにはi18nという仕組みが最初から用意されていて、設定ファイルを書くだけで多言語対応ができます。」

生徒

「i18nって何ですか?難しそうな名前で不安です…」

先生

「大丈夫です。まずはconfig/localesというフォルダの役割から、ゆっくり見ていきましょう。」

1. Railsとi18nとは?日本語化の全体像

1. Railsとi18nとは?日本語化の全体像
1. Railsとi18nとは?日本語化の全体像

Railsのi18nとは、Internationalizationの略で、アプリを多言語対応しやすくする仕組みです。日本語では「国際化」と呼ばれますが、ここでは画面の文字を日本語や英語に切り替える仕組みと考えると分かりやすいです。Railsでは、このi18n機能が最初から組み込まれており、追加のライブラリを入れなくても使えます。

例えば、同じ画面でも日本の人には日本語、海外の人には英語で表示できるようになります。これを多言語対応ロケール対応と呼びます。ロケールとは「言語や地域の設定」のことです。

2. config/localesディレクトリの役割

2. config/localesディレクトリの役割
2. config/localesディレクトリの役割

Railsプロジェクトには、最初からconfig/localesというフォルダがあります。ここは、翻訳用のファイルを置く専用の場所です。翻訳ファイルは、基本的にYAML(ヤムル)形式で書きます。YAMLとは、設定を人間が読みやすい形で書けるファイル形式です。

例えるなら、config/localesは「翻訳辞書を入れておく本棚」、YAMLファイルは「言語ごとの辞書一冊」です。

3. 日本語ファイルja.ymlの基本構造

3. 日本語ファイルja.ymlの基本構造
3. 日本語ファイルja.ymlの基本構造

日本語用の翻訳ファイルは、一般的にja.ymlという名前で作ります。最初に書くのは、言語コードであるjaです。その下に、翻訳したい文章をキーと値で書いていきます。


ja:
  hello: "こんにちは"

この例では、helloという翻訳キーに対して「こんにちは」という日本語を設定しています。キーは自分で自由に決められますが、後から見て意味が分かる名前にするのがポイントです。

4. 翻訳キーとは?キーと文章の関係

4. 翻訳キーとは?キーと文章の関係
4. 翻訳キーとは?キーと文章の関係

翻訳キーとは、文章そのものではなく、文章を呼び出すための名前です。直接「こんにちは」と書かずに、helloというキーを使うことで、言語が変わっても同じキーで表示を切り替えられます。

これは、テレビのリモコンのボタンに似ています。ボタン自体は同じでも、設定次第で違う動きをします。Railsでは、このキーを使って表示する文章を切り替えます。

5. ビューで翻訳を表示する方法

5. ビューで翻訳を表示する方法
5. ビューで翻訳を表示する方法

Railsのビュー(画面表示)では、tメソッドを使って翻訳を呼び出します。tはtranslateの略です。


<p><%= t('hello') %></p>

このように書くと、ja.ymlに設定した「こんにちは」が画面に表示されます。ビューに直接日本語を書かないことで、後から英語対応するときも楽になります。

6. 階層構造で翻訳を整理する

6. 階層構造で翻訳を整理する
6. 階層構造で翻訳を整理する

翻訳が増えてくると、キーを整理したくなります。YAMLでは、階層構造を使ってまとめることができます。


ja:
  users:
    title: "ユーザー一覧"
    name: "名前"

この場合、ビューでは次のように呼び出します。


<h1><%= t('users.title') %></h1>

フォルダ分けされた引き出しのように考えると理解しやすいです。

7. デフォルトロケールを日本語にする

7. デフォルトロケールを日本語にする
7. デフォルトロケールを日本語にする

Railsでは、初期設定が英語になっています。日本語を標準にしたい場合は、設定ファイルでdefault_localeを変更します。


# config/application.rb
config.i18n.default_locale = :ja

これで、特別な指定をしなくても日本語が使われるようになります。

8. i18nを使うメリットと注意点

8. i18nを使うメリットと注意点
8. i18nを使うメリットと注意点

i18nを使う最大のメリットは、文章の管理が一か所にまとまることです。文章を変更したいときも、ビューを探し回る必要がありません。一方で、キー名が分かりにくいと、どの文章なのか迷ってしまいます。初心者のうちは、短くても意味の分かるキー名を意識しましょう。

関連記事:

関連記事なし

カテゴリの一覧へ
新着記事
New1
データベース
Redis入門!キャッシュの仕組みやメリットを初心者向けに徹底解説
New2
Ruby
RubyのEnumerable高速化ガイド!N+1問題や無駄なループを減らす最適化テクニック
New3
Ruby
Rubyの命名規則を完全ガイド!初心者でもわかるsnake_caseとCamelCaseの使い分け
New4
Rails
VS CodeをRails用に最適化!初心者でもできる拡張機能・Rubocop・フォーマッター・デバッグ設定
人気記事
No.1
Java&Spring記事人気No1
Rails
Railsメール確認(confirmable)の実装手順を完全ガイド!初心者でもわかる有効化リンクと期限設定
No.2
Java&Spring記事人気No2
Ruby
RubyのEnumerable完全解説!cycle・zipで繰り返しの達人になろう
No.3
Java&Spring記事人気No3
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.4
Java&Spring記事人気No4
Ruby
プロキシ環境でも安心!社内ネットワーク下でのRuby gemインストール完全ガイド【SSL対応も解説】
No.5
Java&Spring記事人気No5
Rails
asdfで複数言語を一元管理:Ruby/Node/psql をまとめてセットアップ
No.6
Java&Spring記事人気No6
Ruby
Rubyのany? all? none? one? を完全攻略!条件判定を劇的に短く書く方法
No.7
Java&Spring記事人気No7
Ruby
RubyでDBライブラリを導入する方法を完全ガイド!初心者でもできるmysql2・pgの環境構築
No.8
Java&Spring記事人気No8
Rails
Stimulus入門:コントローラ・ターゲット・アクション設計をやさしく理解する完全ガイド