カテゴリ: Laravel 更新日: 2026/08/13

Laravelローカリゼーション入門!言語の取得と切り替え(App::getLocale / setLocale)を徹底解説

Laravelで現在の言語を取得・切り替える方法(App::getLocale / setLocale)
Laravelで現在の言語を取得・切り替える方法(App::getLocale / setLocale)

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

生徒

「Laravelで作ったサイトを、日本語だけじゃなくて英語でも表示したいんです。今の言語が何かを調べたり、別の言葉に変えたりする方法はありますか?」

先生

「それはローカリゼーションという機能ですね。Laravelには、今の言語設定を確認したり、自由に変更したりするための便利な道具が用意されていますよ。」

生徒

「難しそうに聞こえますが、初心者でも簡単に操作できるんでしょうか?」

先生

「はい。基本となる命令を覚えるだけで、サイトの言葉を自由自在に操れるようになります。まずは、基礎から一緒に学んでいきましょう!」

1. ローカリゼーションと多言語対応とは?

1. ローカリゼーションと多言語対応とは?
1. ローカリゼーションと多言語対応とは?

プログラミングの世界では、アプリケーションを複数の国の言葉に対応させることをローカリゼーションと呼びます。例えば、日本人がアクセスしたときには日本語を出し、アメリカ人がアクセスしたときには英語を出すといった仕組みのことです。

多言語対応とも言われ、世界中の人にサービスを使ってもらうためには欠かせない機能です。Laravel(ララベル)という便利な道具箱には、この言葉の切り替えをスムーズに行うための仕組みが最初から組み込まれています。

パソコンを触ったことがない方のために例えると、テレビの「音声切り替え」ボタンのようなものです。日本語放送から副音声の英語に切り替えるように、プログラムの中でも「今は日本語モード」「次は英語モード」と指示を出すことができます。このモードのことを、専門用語でロケールと呼びます。

2. 現在の言語設定を確認する App::getLocale の使い方

2. 現在の言語設定を確認する App::getLocale の使い方
2. 現在の言語設定を確認する App::getLocale の使い方

まずは、プログラムが「今、何語のモードになっているか」を確認する方法を学びましょう。これには App::getLocale() という命令を使います。

App(アップ)はLaravelの機能が集まった中心的な場所で、getLocale(ゲット・ロケール)は「今のロケール(言語設定)を手に入れる」という意味です。これを実行すると、例えば日本語なら「ja」、英語なら「en」といった短い文字が返ってきます。

現在の設定を知ることで、「今は日本語だから、日本の挨拶を表示しよう」といった判断をプログラムにさせることが可能になります。


// 現在の言語設定を取得して表示する簡単な例
$currentLanguage = App::getLocale();

echo '現在の設定は ' . $currentLanguage . ' です。';

実行結果の例は以下の通りです。


現在の設定は ja です。

3. 言語設定を自由に切り替える App::setLocale の基本

3. 言語設定を自由に切り替える App::setLocale の基本
3. 言語設定を自由に切り替える App::setLocale の基本

次に、言葉のモードを強制的に変える方法です。これには App::setLocale() という命令を使います。setLocale(セット・ロケール)は「ロケール(言語設定)をセットする(設定する)」という意味ですね。

使い方はとても簡単で、括弧の中に切り替えたい言葉の記号を入れるだけです。例えば、英語にしたいときは「en」を入れます。この命令を実行した瞬間から、プログラムは指定された言葉のモードとして動き出します。

料理で例えるなら、味付けを「和風」から「洋風」にガラッと変える指示を出すようなイメージです。この設定を変えることで、表示されるメッセージの内容を一度に切り替える準備が整います。


// 言語設定を英語(en)に変更する
App::setLocale('en');

// 設定が変わったか確認してみる
echo '設定を ' . App::getLocale() . ' に変更しました。';

実行結果の例は以下の通りです。


設定を en に変更しました。

4. 設定ファイル config/app.php について知ろう

4. 設定ファイル config/app.php について知ろう
4. 設定ファイル config/app.php について知ろう

Laravelでは、最初から決まっている「標準の言葉」があります。これは config というフォルダの中にある app.php という名前のファイルで管理されています。

このファイルの中には、locale という項目があり、そこが「ja」になっていれば日本語、「en」になっていれば英語が標準として使われます。これを変更することで、サイト全体のデフォルト言語を決めることができます。

config(コンフィグ)とは「設定」という意味で、パソコンやソフトがどう動くかを決める大切なルールブックのようなものです。初心者の方は、まずここを覗いて「自分のサイトは何語が基準になっているのかな?」と確認することから始めてみましょう。


// 設定ファイルの中身をイメージしたコード
// 'locale' => 'ja' となっていれば日本語がデフォルトです

$defaultLocale = config('app.locale');
echo 'デフォルトの言語は ' . $defaultLocale . ' です。';

実行結果の例は以下の通りです。


デフォルトの言語は ja です。

5. 条件分岐と言語切り替えを組み合わせる方法

5. 条件分岐と言語切り替えを組み合わせる方法
5. 条件分岐と言語切り替えを組み合わせる方法

実際のサイトでは、ボタンが押されたときや特定のページに来たときに言語を切り替えることが多いです。ここで、前述の取得と設定を組み合わせてみましょう。

例えば、「もし今の設定が日本語だったら、英語に切り替える。そうでなければ日本語にする」という、スイッチのような仕組みを作ることができます。これを条件分岐(じょうけんぶんき)といいます。

もし(if)という考え方を使うことで、ユーザーの希望に合わせて柔軟に言葉を選べるようになります。プログラミングの醍醐味は、このように状況に応じて自動で動きを変える仕組みを作れるところにあります。


// 現在の言語が日本語(ja)なら英語(en)に変える、トグル機能の例
if (App::getLocale() == 'ja') {
    App::setLocale('en');
    echo 'English mode enabled.';
} else {
    App::setLocale('ja');
    echo '日本語モードになりました。';
}

実行結果の例は以下の通りです。(現在の設定が「ja」だった場合)


English mode enabled.

6. 言語ファイルの準備と表示の仕組み

6. 言語ファイルの準備と表示の仕組み
6. 言語ファイルの準備と表示の仕組み

言語を切り替える準備ができたら、次は実際に表示する「翻訳データ」を用意する必要があります。Laravelでは lang という名前のフォルダに、それぞれの言葉ごとのファイルを作ります。

例えば、日本語用のファイルには「こんにちは」、英語用のファイルには「Hello」と書いておきます。プログラム側で __('messages.welcome') のように書くと、今の設定が日本語なら「こんにちは」を自動で選び出して表示してくれるのです。

これは、辞書を引く作業に似ています。言葉のキー(見出し語)を指定すれば、現在のロケール設定という「どの辞書を使うか」に従って、正しい意味を取り出してくれます。これを使いこなせば、同じプログラムのコードで何十カ国語にも対応したサイトが作れるようになります。


// 翻訳関数を使った表示の例
// 今のロケール設定に基づいて、適切な言葉が表示されます

echo __('Welcome to our website');

7. ミドルウェアを使った自動言語切り替えの概念

7. ミドルウェアを使った自動言語切り替えの概念
7. ミドルウェアを使った自動言語切り替えの概念

最後に、少し発展的なお話ですが、ページを開くたびに自動で言語をセットする方法についても触れておきます。これを実現するのがミドルウェアという仕組みです。

ミドルウェアは、玄関にいる警備員のようなものです。ユーザーがページに入ってくる前に「この人はどの言葉を使いたいと言っているかな?」と確認し、あらかじめ App::setLocale() を実行して準備を整えてくれます。

例えば、ブラウザの設定を見て自動で言語を選んだり、URLに /en/ と入っていたら英語にしたりすることができます。初心者の方は、「最初の一回だけ設定すれば、あとはミドルウェアという便利な裏方が勝手にやってくれる方法があるんだな」と覚えておくだけで十分です。

まとめ

まとめ
まとめ

今回の記事では、世界中で利用されているPHPフレームワークであるLaravel(ララベル)において、Webサイトを多言語化するための核心となるローカリゼーション(Localization)機能について詳しく解説してきました。

主要なポイントを振り返ると、まず現在の言語設定を確認するための App::getLocale() と、特定の言語に動的に切り替えるための App::setLocale() という2つの重要なメソッドがありましたね。これらをマスターするだけで、ユーザーのブラウザ設定や選択したボタンに応じて、サイトの表示言語を自由自在にコントロールできるようになります。

また、システム全体の標準言語を決定する config/app.php の設定や、実際の翻訳データを管理する lang ディレクトリの役割についても触れました。これらは、単に文字を置き換えるだけでなく、日付の形式や数値の表現など、その国や地域の文化に合わせた最適なユーザー体験(UX)を提供するために不可欠な要素です。

実践的なコードの総復習

ここで、学んだ内容を一つのプログラムとして組み合わせてみましょう。以下のサンプルコードは、現在のロケールを取得し、もし日本語なら英語へ、英語なら日本語へ切り替えるという、実務でもよく使われる「言語切り替えロジック」の基本形です。


// 1. 現在のロケールを確認(初期状態は ja と想定)
$firstLocale = App::getLocale();

// 2. 言語を判定して切り替える条件分岐の作成
if ($firstLocale === 'ja') {
    // 日本語なら英語(en)にセットする
    App::setLocale('en');
} else {
    // それ以外なら日本語(ja)にセットする
    App::setLocale('ja');
}

// 3. 切り替え後のロケールを再取得して結果を表示
$afterLocale = App::getLocale();

echo '変更前の言語は「' . $firstLocale . '」でしたが、現在は「' . $afterLocale . '」に切り替わりました。';

このコードをブラウザで実行した際の出力イメージは以下のようになります。


変更前の言語は「ja」でしたが、現在は「en」に切り替わりました。

SEOとユーザビリティを高めるポイント

多言語サイトを構築する際、SEO(検索エンジン最適化)の観点からもローカリゼーションは非常に重要です。検索エンジンは、ユーザーの地域や言語に最適なコンテンツを優先的に表示しようとします。

Laravelの機能を活用して、URLごとに言語を識別できるようにしたり(例:example.com/ja/ や example.com/en/)、HTMLの lang 属性を動的に変更したりすることで、クローラーに対して「このページは何語で書かれているか」を正しく伝えることができます。これが結果として、世界中の検索結果で上位に表示されることにつながるのです。

最初は難しく感じるかもしれませんが、まずは App::getLocaleApp::setLocale を使って、小さな文字の切り替えから試してみてください。一歩ずつ進むことで、より高度なミドルウェアの実装や、複雑な翻訳ファイルの管理も自然と身についていくはずです。

先生と生徒の振り返り会話

生徒

「先生、まとめまで読んでみて、ローカリゼーションの流れがかなり具体的にイメージできました! App::setLocale を使えば、プログラムの途中でいつでも言葉を変えられるんですね。」

先生

「その通りです。状況に応じて柔軟に言語を切り替えられるのがLaravelの強みですね。特に、今の設定を確認する getLocale とセットで使うことで、ユーザーに合わせた親切なサイト作りが可能になりますよ。」

生徒

「サンプルコードの条件分岐を使えば、サイトに『言語切り替えボタン』を作ることもできそうです。でも、もし翻訳ファイルが見つからなかった場合はどうなるんですか?」

先生

「鋭いですね。その場合は config/app.php にある fallback_locale という設定が使われます。もし翻訳がなくても、予備の言語(例えば英語など)で表示してくれる仕組みがあるんですよ。失敗を恐れずに設定を触ってみてください。」

生徒

「なるほど、予備の設定まで用意されているなんて安心です。まずは設定ファイルの確認から始めて、自分のローカル環境で英語表示に切り替わるか試してみます!」

先生

「素晴らしい意気込みですね。実際にコードを書いて動かしてみることが、プログラミング習得の最短ルートです。多言語対応ができるようになれば、あなたのサービスを世界中に届ける準備が整いますよ。頑張りましょう!」

カテゴリの一覧へ
新着記事
New1
PHP
PHPで日本語の曜日を表示する方法を解説!配列を使った曜日変換の定番コード
New2
Symfony
Symfonyでバリデーションエラーを表示する方法!初心者でもわかるテンプレート活用術
New3
Laravel
Laravelのマイグレーションエラーの原因と解決方法を完全ガイド
New4
Laravel
Laravelのrefreshとfreshの違いを初心者でもわかる解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravel通知機能の決定版!特定のユーザーにのみ通知を送る認可制御を初心者向けに徹底解説
No.3
Java&Spring記事人気No3
Laravel
Laravelのルーティングの基本構文と書き方をやさしく解説!初心者でも理解できるWebルートの仕組み
No.4
Java&Spring記事人気No4
Laravel
Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説
No.5
Java&Spring記事人気No5
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.6
Java&Spring記事人気No6
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.7
Java&Spring記事人気No7
Laravel
Laravelのエラー画面をカスタマイズする方法!errors/xxx.blade.phpの使い方を初心者向けに解説
No.8
Java&Spring記事人気No8
CodeIgniter
CodeIgniterコントローラでログを出力する方法完全ガイド!初心者でもわかるエラー記録とデバッグ