Laravel のローカライゼーションは、開発者が多言語ウェブサイトを作成できる強力な機能です。 ウェブローカライゼーション を Laravel プロジェクトに実装することで、異なる言語背景を持つ訪問者にパーソナライズされたユーザー体験を提供し、最終的にリーチを拡大し、ユーザーエンゲージメントを向上させることができます。
Laravel アプリケーションにローカライズを実装する方法を順を追って説明し、ローカライズ作業を簡素化・強化できるツールをご紹介します!
Laravel のウェブサイトをローカライズすべき理由は何ですか?

Laravel ウェブサイトをローカライズすべき重要な理由をいくつかご紹介します。.
- グローバルな視聴者にリーチ: Laravel のウェブサイトをローカライズすることで、アプリのリーチを国際的な視聴者に拡大できます。これにより、さまざまな国や言語背景を持つユーザーがあなたのコンテンツを理解し、操作できるようになります。
- ユーザーエクスペリエンスの向上: ローカライズにより、ユーザーは母国語でアプリを操作できるようになり、ユーザーエクスペリエンスが大幅に向上します。これにより、エンゲージメント率が向上し、直帰率が低下し、コンバージョンが増加する可能性があります。
- 競争優位性: 競争の激しいグローバル市場において、アプリを複数の言語で提供することは、競合他社に対して大きな優位性をもたらす可能性があります。これは国際市場への取り組みを示し、より効果的に新市場へ参入するのに役立ちます。
- SEOの向上: 適切にローカライズされたウェブサイトは、特定の言語での検索において検索エンジンでの順位が高くなる傾向があります。これにより、多言語翻訳によって ブログのトラフィック とさまざまな市場でのオンラインでの可視性を高めることができます。
多言語 Laravel ローカライゼーションの要件

Laravelで多言語ローカライゼーションを実装する際に考慮すべきいくつかの要件と手順があります。.
- 最新のローカライゼーション機能を利用するには、最新バージョンの Laravel (例:バージョン10.x)を使用していることを確認してください。.
- PHPと Laravel フレームワークの基本的な理解があると、実装プロセスに役立ちます。.
- Laravelをサポートするローカル開発環境またはサーバーを、Webサーバーとデータベースを含めてセットアップします。.
- アプリケーションが最初からサポートする言語を決定します。.
シンプルな Laravel 翻訳

Laravel アプリケーションやウェブを翻訳する前に満たすべき要件を理解した後、 Laravel を簡単に翻訳するためのいくつかの手順を提供します。.
これを行うには、ローカライズしたいビューファイル(例:resources/views/welcome.blade.php)を開きます。次に、bodyタグを以下のコードに置き換えます。.
Welcome to Linguise website!
ご覧のとおり、上記のテキストは現在コードに直接記述されています。これは効率が悪く、 ウェブサイトを異なる言語に翻訳する (国際化)ことが難しくなります。
上記のテキストをより柔軟にして、さまざまな言語に簡単に適応できるようにします。 Laravel はこのための非常に便利な機能を提供しています。それがローカリゼーションシステムです。最初のステップとして、既存のテキストを次のコードに置き換えます。.
{{ __('Welcome to Linguise website!') }}
Laravel はデフォルトで上記のテキストを表示し、ユーザーが英語以外の言語を選択した場合は翻訳を参照します。この場合、英語がアプリケーションのデフォルト言語として使用されます。.
Laravel 多言語ウェブでのロケールの設定

しかし、 Laravel はどのようにして現在の言語を判断し、アプリケーションで利用可能な言語を把握するのでしょうか?それは config/app.php ファイルのロケール設定を確認します。このファイルを開き、次の2つのキーを探してください。.
/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/
'locale' => 'en',
/*
|--------------------------------------------------------------------------
| Application Fallback Locale
|--------------------------------------------------------------------------
|
| The fallback locale determines the locale to use when the current one
| is not available. You may change the value to correspond to any of
| the language folders that are provided through your application.
|
*/
'fallback_locale' => 'en',
キーの上の説明は明確であるべきです。要約すると、localeキーはアプリケーションのデフォルトロケールを保持します(コードで他のロケールが指定されていない場合)。fallback_localeは、アプリケーションで存在しないロケールが要求された場合に有効になります。.
では、このファイルに新しいキーを追加して、サポートされているすべてのロケールのリストを提供しましょう。.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
現時点では、 Laravel Webで英語、イタリア語、フランス語の3言語をサポートすることを試みました。.
Laravel の翻訳ファイルの概要

Laravelでは、他の多くのフレームワークと同様に、異なる言語の翻訳は別々のファイルに保存されます。これらの翻訳ファイルを整理するには2つの方法が使用されます。.
古い方法では、ファイルは resources/lang/{en,fr,it}/{myfile.php} という構造で保存されます。新しい方法では、resources/lang/{fr.json, it.json} のような JSON ファイルを使用します。この記事では新しい方法に焦点を当てますが、翻訳キーの命名方法とアクセス方法の違いを除けば、原則は古い方法と同様です。.
地域変種のある言語の場合、ISO 15897 標準に従って言語ディレクトリまたはファイルに名前を付ける必要があります。たとえば、イギリス英語は en-gb ではなく en_GB と命名します。.
一般情報
Laravelでは、多くのフレームワークと同様に、異なる言語の翻訳は別々のファイルに保存されます。 Laravel の翻訳ファイルを整理する主な方法は 2 つあります。.
- 従来のアプローチでは、resources/lang/{en,fr,it}/{myfile.php} のパスにファイルを保存します。.
- 現代的なアプローチでは、resources/lang/{fr.json, it.json}ファイルを利用します。.
この記事では2番目の方法に焦点を当てますが、原則は両方に適用できます(翻訳キーの命名方法とアクセス方法に違いがあります)。.
地域によって異なる言語の場合、言語ディレクトリやファイルの命名にはISO 15897規格に従うことをお勧めします。例えば、イギリス英語はen-gbではなくen_GBと表記します。.
Laravel 翻訳ファイルの作成
アプリケーションのロケールを設定したので、デフォルトのウェルカムメッセージの翻訳に進むことができます。.
まず、resources/langディレクトリ内にJSON形式の新しいローカライズファイルを作成しましょう。最初に、resources/lang/it.jsonファイルを作成し、適切な翻訳を入力します。.
{
"Welcome to Linguise website!": "Benvenuti nel sito web di Linguise!"
}
次に、resources/lang/fr.jsonファイルを追加します。.
{
"Welcome to Linguise website!": "Bienvenue sur le site de Linguise"
}
ご覧のとおり、welcome.blade.phpファイルのデフォルトメッセージ({{ __(‘Welcome to Linguise website!’) }})を一貫して参照しています。 Laravel はデフォルトメッセージが英語であることを自動的に認識するため、en.jsonファイルを作成する必要はありません。.
Laravel 多言語アプリで言語スイッチャーを設定する

さらに、 Laravel はまだローカル言語を上書きするように設定されていないため、今のところルート内で直接翻訳を処理します。routes/web.phpファイル内のデフォルトのwelcomeルートを次のように変更してください。.
Route::get('/{locale?}', function ($locale = null) {
if (isset($locale) && in_array($locale, config('app.available_locales'))) {
app()->setLocale($locale);
}
return view('welcome');
});
この場合、オプションのロケールGETパラメータを取得し、それに基づいて現在のロケールを設定しています(要求されたロケールがサポートされている場合)。.
これで、ウェブサイトにアクセスし、URLの最初のセグメントとしてサポートされている言語のいずれかを含めることができます。たとえば、localhost/it や localhost/fr に移動すると、ローカライズされたコンテンツが表示されます。ロケールを指定しない場合、またはサポートされていないロケールを選択した場合、 Laravel はデフォルトで英語(en)になります。.
Laravel のローカリゼーションミドルウェア
すべてのURLにロケールを含めることは理想的ではなく、サイトの視覚的な魅力を損なう可能性があります。これに対処するために、言語スイッチャーを設定し、ユーザーセッションを利用して翻訳されたコンテンツを表示します。app/Http/Middleware/Localization.phpファイルに新しいミドルウェアを作成するか、artisan make:middleware Localizationコマンドを実行して生成できます。.
次に、内部に以下のコードを追加します。.
このミドルウェアは、セッションにこのオプションが存在する場合、ユーザーが選択したロケーションを Laravel に使用するよう指示します。.
この操作をすべてのリクエストで実行する必要があるため、app/Http/Kernel.phpのwebミドルウェアグループのデフォルトミドルウェアスタックに追加します。.
/**
* The application's route middleware groups.
*
* @var array>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\Localization::class, // <--- add this
],
ルートの変更
次に、routes/web.phpファイルでロケールを変更するためのルートを定義します。ここではクロージャルートを使用していますが、同じコードをコントローラ内に配置することもできます。.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
さらに、デフォルトのウェルカムルートに以前追加されたロケール切り替えを削除します。ルートルートは次のようになります。.
Route::get('/', function () {
return view('welcome');
});
これが完了すると、ユーザーは localhost/language/{locale} にアクセスすることによってのみ、アクティブな言語を切り替えることができます。選択されたロケールはセッションに保存され、ユーザーは以前のページにリダイレクトされます(Localization ミドルウェアによって処理されます)。.
テストするには、localhost/language/it にアクセスしてください(ブラウザでセッション Cookie が有効になっていると仮定します)。翻訳されたコンテンツが表示されるはずです。サイト内を移動したりページを更新しても、選択した言語は有効なままです。.
言語切り替えの実装
次に、ユーザーがURLにロケールコードを手動で入力する必要なく、 言語切り替え Laravel ウェブ を変更できるクリック可能なオプションを提供する必要があります。これを実現するには、シンプルな言語切り替えを作成します。resources/views/partials/language_switcher.blade.php に新しいファイルを追加し、以下のコードを挿入してください。
@foreach($available_locales as $locale_name => $available_locale)
@if($available_locale === $current_locale)
{{ $locale_name }}
@else
{{ $locale_name }}
@endif
@endforeach
新しく作成した言語切り替え機能を「welcome」ビューに含めるには、切り替え機能を表示したい場所の welcome.blade.php ファイルに次の行を追加するだけです。.
@include('partials/language_switcher')
{{ __('Welcome to our website!') }}
app/Providers/AppServiceProvider.php ファイルを開き、boot() メソッドに次のコードを追加して、言語スイッチャーが使用されたときに現在のロケールをすべてのビューと共有します
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
view()->composer('partials.language_switcher', function ($view) {
$view->with('current_locale', app()->getLocale());
$view->with('available_locales', config('app.available_locales'));
});
}
Laravel PHP の高度な翻訳機能

このディスカッションでは、次に日付、数値、通貨といった他のローカライゼーションコンポーネントを扱います。手順は以下のとおりです。.
Laravelでのローカライズされた日付
日付と時刻の処理はローカリゼーションプロセスにおいて重要です。 Laravel はCarbonを使用して日付と時刻を管理します。ここでは、Carbonを使用してローカライズされた日付を表示する方法を紹介します。.
settings(
[
'locale' => app()->getLocale(),
]
);
// LL is macro placeholder for MMMM D, YYYY (you could write same as dddd, MMMM D, YYYY)
$dateMessage = $today->isoFormat('dddd, LL');
return view('welcome', [
'date_message' => $dateMessage
]);
});
このコードは、アプリケーションの現在のロケールに基づいてCarbonのロケールを設定し、それに応じて日付をフォーマットします。.
ビューにローカライズされた日付を表示するには:
{{ __('Welcome to our website, :Name', ['name' => ‘Johb’]) }}
{{ trans_choice('{0} There :form :count apples|{1} There :form just :count apple|[2,19] There :form :count apples', 1, ['form' => 'is']) }}
{{ $date_message }}
数値と通貨のフォーマット
国によって数字のフォーマット方法はさまざまです。例えば。.
- フランス → 123 123,12
- ドイツ → 123.123,12
- 日本 → 123,123
Laravel アプリケーションでこれらのバリエーションに対応するには、NumberFormatterを使用できます。.
特定の言語で数値を綴ることもできます。.
通貨は以下のとおりです。フランス語ロケール(`fr`)ではユーロ(€)で表示され、米国ロケール(`en_US`)では米ドル($)で表示されます。.
Linguiseによる Laravel ローカライズの代替ソリューション

記事で説明されている Laravel ローカリゼーションの手順を理解した後、このプロセスにはユーザーが Laravel プログラムコードを深く理解する必要がある多くのステップが含まれます。.
これは確かに、アプリケーションをローカライズしたい初心者ユーザーにとって困難を伴います。したがって、高速翻訳が可能で、ローカライズをサポートし、実装にわずか数ステップしか必要としない、より革新的なソリューションが必要です。.
有望なソリューションの1つは Linguiseです。 Linguise は、深いコーディング知識を必要とせずに、 Laravel ローカライズへのより簡単で効率的なアプローチを提供します。 Linguise の主な機能は次のとおりです。.
- Laravelとの簡単な統合
- コーディングなしで言語スイッチャーをカスタマイズ
- 画像翻訳
- ローカルコンテキストに合わせて翻訳をカスタマイズするライブエディター
- 動的に生成されたコンテンツの動的翻訳
- 多言語版のSEO最適化
を Linguise ウェブサイトにインストールする手順 Laravel も簡単に行えます。以下に簡単な説明を記載します。
- Linguise アカウントを作成する(30日間の無料トライアルを無料で利用)
- Laravel ウェブドメインを登録し、いくつかの情報を入力します。APIキーを取得できます。.
- 取得した Laravel フォルダに Linguise 翻訳スクリプトをアップロードして接続します。.
- htaccessファイルで言語URLを設定します。.
- HTMLのheadに言語切り替えスクリプトを挿入します。.
- 必要に応じて言語スイッチャーをカスタマイズする
- 言語切り替え機能は Laravel のウェブサイトに表示され、コンテンツは自動的に翻訳できます。.
どうやって? Linguiseなら、登録して有効化するだけで、言語切り替えが表示されます。その後は、例えばライブエディターを通じてローカライズしたり、メディアや画像を翻訳したりと自由に操作できます。.
結論
Laravel のローカライゼーションは、開発者が多言語のウェブサイトやアプリケーションを作成できる強力な機能です。これまで見てきたように、組み込みの Laravel ローカライゼーションプロセスには複数のステップが含まれ、フレームワークへの深い理解が必要です。初心者や、より迅速な解決策を求める人にとっては難しい場合があります。.
Linguiseのようなツールは、 Linguise より効率的なアプローチを求める方々に革新的な代替手段を提供します。これらのソリューションは、迅速な翻訳機能、簡単な統合、カスタマイズ可能な言語スイッチャーや画像翻訳などのユーザーフレンドリーな機能を提供します。今すぐ、 Linguise アカウントを作成 して、 Laravelのローカライズ機能をお楽しみください!



