カテゴリ: 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
Laravel
Laravelのコンポーネントとスロットの使い方(再利用性UP)
New2
Symfony
Symfonyで最初のページを表示してみよう!初心者でもできるHello World入門
New3
Symfony
Symfonyで言語ファイルを作成・管理する方法を完全解説!初心者でもわかるtranslationsディレクトリ入門
New4
Symfony
Symfonyプロジェクトのディレクトリ構造を完全ガイド!初心者でもわかる仕組みをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.2
Java&Spring記事人気No2
Laravel
Laravelでモデルを作成する方法をやさしく解説!php artisan make:model入門
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Symfony
Symfonyプロジェクトのディレクトリ構造を完全ガイド!初心者でもわかる仕組みをやさしく解説
No.5
Java&Spring記事人気No5
Laravel
Laravelの認証ミドルウェアauthとguestを徹底解説!初心者でもわかるルート制御ガイド
No.6
Java&Spring記事人気No6
Laravel
Laravelのリソースコントローラの使い方!CRUDを簡単に実装しよう
No.7
Java&Spring記事人気No7
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
Laravel
Laravelでコントローラを作成する方法(artisanコマンド)