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

Symfonyで翻訳文字列を表示する方法を完全解説!trans・transChoiceの使い方を初心者向けにやさしく説明

Symfonyで翻訳文字列を表示する方法(trans・transChoiceの使い方)
Symfonyで翻訳文字列を表示する方法(trans・transChoiceの使い方)

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

生徒

「Symfonyで、日本語と英語を切り替えて表示できるって聞いたんですが、本当ですか?」

先生

「できますよ。Symfonyには翻訳機能が用意されていて、決まった書き方をするだけで言語を切り替えられます」

生徒

「プログラミング未経験でも使えますか?」

先生

「大丈夫です。今日はtransとtransChoiceという基本だけを、例え話を交えながら説明します」

1. Symfonyの翻訳機能とは?

1. Symfonyの翻訳機能とは?
1. Symfonyの翻訳機能とは?

Symfonyの翻訳機能とは、画面に表示する文字を言語ごとに切り替える仕組みです。例えば、日本語では「こんにちは」、英語では「Hello」と表示するといったことが簡単にできます。これを国際化ローカリゼーションと呼びます。

難しそうに聞こえますが、実際は「文字の置き換え」をしているだけです。箱にラベルを貼り替えるイメージで考えると分かりやすいでしょう。

2. 翻訳キーと翻訳文字列の考え方

2. 翻訳キーと翻訳文字列の考え方
2. 翻訳キーと翻訳文字列の考え方

Symfonyでは、直接「こんにちは」と書くのではなく、翻訳キーという合言葉のようなものを使います。例えば「app.greeting」というキーを使い、日本語では「こんにちは」、英語では「Hello」と設定します。

この方法により、プログラムの中身を変えなくても、表示言語だけを自由に切り替えられるようになります。これがSymfony翻訳の基本的な考え方です。

3. transメソッドで翻訳文字列を表示する

3. transメソッドで翻訳文字列を表示する
3. transメソッドで翻訳文字列を表示する

transは、Symfonyで最もよく使われる翻訳メソッドです。翻訳キーを指定すると、現在の言語に合った文字を表示してくれます。


use Symfony\Contracts\Translation\TranslatorInterface;

public function index(TranslatorInterface $translator)
{
    echo $translator->trans('app.greeting');
}

このコードでは「app.greeting」という翻訳キーを指定しています。日本語設定なら「こんにちは」、英語設定なら「Hello」が表示されます。


こんにちは

4. Twigテンプレートでtransを使う方法

4. Twigテンプレートでtransを使う方法
4. Twigテンプレートでtransを使う方法

Symfonyでは、画面表示にTwigというテンプレートを使います。Twigでも簡単に翻訳文字列を表示できます。


<p>{{ 'app.greeting'|trans }}</p>

パイプ記号の後にtransを書くことで、「この文字は翻訳してください」という意味になります。HTMLを書いている感覚で使えるので、初心者でも安心です。

5. 変数を含めた翻訳の書き方

5. 変数を含めた翻訳の書き方
5. 変数を含めた翻訳の書き方

翻訳文字列の中に名前や数字を入れたい場合もあります。そんなときはプレースホルダーを使います。


echo $translator->trans('app.welcome', [
    '%name%' => '太郎'
]);

翻訳ファイル側では「%name%さん、ようこそ」と書いておくことで、名前部分だけを差し替えられます。


太郎さん、ようこそ

6. transChoiceで数によって文章を変える

6. transChoiceで数によって文章を変える
6. transChoiceで数によって文章を変える

transChoiceは、数によって表示内容を変えたいときに使います。例えば「1件の通知」「5件の通知」のような場合です。


echo $translator->transChoice(
    'app.notification',
    3
);

翻訳ファイルでは「1件|%count%件」のように書いておきます。数に応じて自動で切り替わるため、とても便利です。

7. transChoiceを使うときの注意点

7. transChoiceを使うときの注意点
7. transChoiceを使うときの注意点

最近のSymfonyではtransChoiceは非推奨となり、transに統合されています。ただし、古いプロジェクトでは今も使われているため、意味を知っておくことは大切です。

「数で文章が変わる翻訳」と覚えておくだけで十分です。今後はtrans一本で対応できるようになっています。

8. 翻訳機能を使うメリット

8. 翻訳機能を使うメリット
8. 翻訳機能を使うメリット

Symfonyの翻訳機能を使うことで、後から多言語対応を追加しやすくなります。日本語サイトを英語対応にしたい場合でも、翻訳ファイルを追加するだけで対応できます。

最初は難しく感じるかもしれませんが、「キーを使って文字を表示する」という考え方に慣れると、とてもシンプルです。

カテゴリの一覧へ
新着記事
New2
Symfony
Symfonyのコントローラで404・403エラーを制御する方法を初心者向けに解説!
New3
Symfony
Symfonyで独自イベント(カスタムイベント)を作成する方法をやさしく解説
New4
Laravel
Laravel Sailとは?初心者でもわかるDocker環境構築と使い方の基本
人気記事
No.2
Java&Spring記事人気No2
Laravel
LaravelでReactコンポーネントを組み込む方法完全ガイド!JSX対応でフロントエンド連携を学ぼう
No.3
Java&Spring記事人気No3
CodeIgniter
CodeIgniterのCSRF対策を完全解説!フォーム処理のセキュリティ手順
No.4
Java&Spring記事人気No4
Laravel
Laravelのリレーションを使った検索条件の書き方(whereHas)
No.5
Java&Spring記事人気No5
Symfony
Symfonyでバリデーションをコントローラに組み込む方法を徹底解説!初心者にもやさしい入力チェックの基本
No.6
Java&Spring記事人気No6
Laravel
LaravelのRESTfulコントローラ設計のベストプラクティスを初心者向けにわかりやすく解説
No.7
Java&Spring記事人気No7
Laravel
Laravelのold()関数でフォーム再表示時に値を保持する方法
No.8
Java&Spring記事人気No8
Symfony
Symfonyのインストール方法!CLIとComposerの導入手順まとめ