カテゴリ: Symfony 更新日: 2026/03/17

Symfonyで言語ファイルを作成・管理する方法を完全解説!初心者でもわかるtranslationsディレクトリ入門

Symfonyで言語ファイルを作成・管理する方法(translationsディレクトリ)
Symfonyで言語ファイルを作成・管理する方法(translationsディレクトリ)

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

生徒

「Webサイトを日本語と英語で切り替えたいんですが、どうすればいいですか?」

先生

「Symfonyでは、言語ごとの文章をまとめた“言語ファイル”を使って簡単に対応できますよ。」

生徒

「言語ファイルって、どこに作るんですか?」

先生

「translationsディレクトリという決まった場所があります。順番に見ていきましょう。」

1. Symfonyの国際化とローカリゼーションとは?

1. Symfonyの国際化とローカリゼーションとは?
1. Symfonyの国際化とローカリゼーションとは?

Symfonyの国際化とは、世界中の人が使えるようにアプリケーションを作る考え方です。ローカリゼーションは、その国や地域に合わせて表示を調整することを指します。たとえば、日本では日本語、海外では英語で同じ画面を表示する、といった仕組みです。Symfonyではこの仕組みを標準機能として提供しており、初心者でも安心して多言語対応に取り組めます。

2. translationsディレクトリの役割

2. translationsディレクトリの役割
2. translationsディレクトリの役割

Symfonyで言語ファイルを管理する中心となるのがtranslationsディレクトリです。これは「翻訳用の文章をまとめて置く専用のフォルダ」です。机の引き出しに国ごとの説明書を分けて入れておくイメージをすると分かりやすいでしょう。このディレクトリにファイルを置くだけで、Symfonyが自動的に読み込んでくれます。

3. 言語ファイルの基本的な命名ルール

3. 言語ファイルの基本的な命名ルール
3. 言語ファイルの基本的な命名ルール

言語ファイルにはルールがあります。基本形は「ファイル名.言語コード.形式」です。たとえば、日本語ならmessages.ja.yaml、英語ならmessages.en.yamlのようになります。言語コードとは、jaが日本語、enが英語を表す短い記号です。このルールを守ることで、Symfonyが自動的にどの言語かを判断します。

4. YAML形式で言語ファイルを作成してみよう

4. YAML形式で言語ファイルを作成してみよう
4. YAML形式で言語ファイルを作成してみよう

初心者におすすめなのがYAML形式です。見た目がシンプルで、文章と翻訳を分かりやすく書けます。以下は日本語の言語ファイル例です。


# translations/messages.ja.yaml
hello: こんにちは
welcome: ようこそSymfonyへ

左側が「キー」、右側が「表示したい文章」です。キーは目印のようなもので、コード側からこの名前を指定して使います。

5. 英語用の言語ファイルを追加する

5. 英語用の言語ファイルを追加する
5. 英語用の言語ファイルを追加する

同じキーを使って英語版を作成します。キーが同じなので、Symfonyは自動的に言語を切り替えてくれます。


# translations/messages.en.yaml
hello: Hello
welcome: Welcome to Symfony

このように、文章だけを差し替える仕組みなので、プログラムの中身を大きく変える必要はありません。

6. コントローラーで翻訳を使う方法

6. コントローラーで翻訳を使う方法
6. コントローラーで翻訳を使う方法

次に、PHPコードから翻訳文を呼び出します。Symfonyではtrans()という便利な機能を使います。


$message = $translator->trans('hello');
echo $message;

このコードは「hello」というキーに対応する文章を現在の言語設定に合わせて表示します。日本語設定なら「こんにちは」、英語設定なら「Hello」が表示されます。

7. Twigテンプレートで翻訳を表示する

7. Twigテンプレートで翻訳を表示する
7. Twigテンプレートで翻訳を表示する

画面表示にはTwigというテンプレートを使います。Twigでは、さらに簡単な書き方ができます。


{{ 'welcome'|trans }}

この1行だけで、言語に応じた文章が表示されます。HTMLを書く感覚で使えるので、初心者でも迷いにくいです。

8. 言語切り替えの考え方

8. 言語切り替えの考え方
8. 言語切り替えの考え方

言語の切り替えは「今どの言語を使うか」をSymfonyに伝えることで行われます。URLや設定によって言語を決めることが多く、Symfonyはその情報をもとに適切な言語ファイルを選びます。利用者はファイルを正しい場所に置くだけでよく、複雑な処理を意識する必要はありません。

9. translationsディレクトリ管理のコツ

9. translationsディレクトリ管理のコツ
9. translationsディレクトリ管理のコツ

文章が増えてきたら、ファイルを用途ごとに分けると管理しやすくなります。たとえば、ログイン画面用、エラーメッセージ用などです。引き出しを用途別に整理する感覚で分けると、後から見直すときも迷いません。Symfonyのtranslationsディレクトリは、この整理整頓を前提に作られています。

カテゴリの一覧へ
新着記事
New1
Symfony
Symfonyのルーティング構成の基本を完全解説!初心者向けにYAML・PHP・アノテーション方式をやさしく紹介
New2
Laravel
Laravelのルートグループの使い方!初心者でもわかるprefixやミドルウェアの設定方法
New3
PHP
PHPのswitch文の使い方!多くの条件分岐をスッキリ書く方法と注意点
New4
Symfony
Symfony学習に役立つおすすめドキュメント・教材・リソース一覧【初心者向け】
人気記事
No.1
Java&Spring記事人気No1
PHP
PHPで文字列を結合する方法!ドット演算子と代入演算子の使い方を徹底解説
No.2
Java&Spring記事人気No2
PHP
PHPのif文の使い方を完全ガイド!初心者でもわかる条件分岐の基本
No.3
Java&Spring記事人気No3
CodeIgniter
CodeIgniterルーティングを完全攻略!正規表現でURLを自由自在に操る方法
No.4
Java&Spring記事人気No4
Symfony
Symfonyで翻訳(i18n)機能を使う方法を解説!初心者にもわかる国際化対応の基本
No.5
Java&Spring記事人気No5
PHP
PHPのswitch文の使い方!多くの条件分岐をスッキリ書く方法と注意点
No.6
Java&Spring記事人気No6
Laravel
LaravelのAPIルーティングを設定する方法!初心者でもわかるapi.phpの使い方
No.7
Java&Spring記事人気No7
CodeIgniter
CodeIgniter(コードイグナイター)入門!どんな開発案件に向いている?利用シーン別解説
No.8
Java&Spring記事人気No8
Laravel
Laravelのview()関数の使い方を完全ガイド!初心者でもわかるBladeテンプレート表示と画面作成