カテゴリ: 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の翻訳機能を使うことで、後から多言語対応を追加しやすくなります。日本語サイトを英語対応にしたい場合でも、翻訳ファイルを追加するだけで対応できます。

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

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