Laravel の国際化とローカライゼーション: さまざまな言語と地域のニーズに適応する
はじめに:
現在のグローバリゼーションの時代では、ますますアプリケーションは、さまざまな言語や地域のニーズに適応できる必要があります。 Laravel は、人気のある PHP フレームワークとして、アプリケーションの国際化とローカリゼーションをサポートする豊富な機能を提供します。この記事では、Laravel で国際化とローカリゼーションを実装する方法を紹介し、関連するコード例を示します。
1. 国際化とローカライゼーションとは
国際化 (国際化) は、さまざまな言語や文化的習慣に適応するようにアプリケーションを設計することを指します; ローカライゼーション (ローカリゼーション) は、さまざまな地域や国に基づいており、アプリケーションは、ローカル ユーザーのニーズに合わせて適切に調整されます。
2. Laravel の言語ファイル
Laravel では、言語ファイルを使用して国際化とローカリゼーションを実現できます。言語ファイルは resources/lang
ディレクトリに保存され、各言語には対応するディレクトリがあります。たとえば、en
ディレクトリには英語の言語ファイルが保存され、zh-CN
ディレクトリには中国語の言語ファイルが保存されます。
まず、言語ファイルを作成する必要があります。これは、次のコマンドを実行して生成できます:
php artisan make:lang zh-CN
This ## で実行されます。 #resources/lang ディレクトリに
zh-CN ディレクトリが生成され、このディレクトリに
messages.php ファイルが生成されます。
resources/lang/zh-CN/messages.php、いくつかの言語のキーと値のペアを定義できます。例:
return [ 'welcome' => '欢迎', 'about' => '关于我们', // ... ];
trans() 関数を通じて、対応する言語値を取得できます。例:
echo trans('messages.welcome'); // 输出:欢迎
config/app.php ファイルを開くと、
locale 構成項目が見つかります。 。その値を対応する言語コードに設定できます (例:
'locale' => 'zh-CN')。
php artisan make:middleware SetLocale
SetLocale ミドルウェアの
handle メソッドを開き、次のコードを追加します。 ##<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>public function handle($request, Closure $next)
{
// 获取用户的首选语言
$locale = $request->getPreferredLanguage(['en', 'zh-CN']);
// 设置应用的语言
app()->setLocale($locale);
return $next($request);
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
次に、
ファイルを開き、生成されたミドルウェアをミドルウェア グループに追加します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>protected $middlewareGroups = [
// ...
'web' => [
// ...
AppHttpMiddlewareSetLocale::class,
],
// ...
];</pre><div class="contentsignin">ログイン後にコピー</div></div>
これで、ユーザーがアプリケーションにアクセスするたびに、 , ミドルウェアは、ユーザーの優先言語に基づいてアプリの言語を設定します。
4. 言語ファイルに従ってコンテンツを表示する
ビュー ファイルで、
trans() 関数を使用して、言語ファイルに従ってコンテンツを表示できます。 。たとえば、resources/views/welcome.blade.php
ファイルに次のコードを追加できます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:html;toolbar:false;'><h1>{{ trans('messages.welcome') }}</h1>
<p>{{ trans('messages.about') }}</p></pre><div class="contentsignin">ログイン後にコピー</div></div>
アプリケーションの言語が
、/
パスにアクセスしたユーザーには、「ようこそ」と「会社概要」のコンテンツが表示されます。 5. 動的置換パラメータ
場合によっては、ユーザー入力または他の動的変数に基づいてコンテンツを表示する必要があります。言語ファイルでは、
: 表記を使用してパラメータを指定できます。例: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return [
'welcome' => '欢迎,:name',
];</pre><div class="contentsignin">ログイン後にコピー</div></div>
次に、ビューまたはコントローラー パラメーターの値を置き換える 2 番目のパラメーター。例:
echo trans('messages.welcome', ['name' => '王小明']); // 输出:欢迎,王小明
動的パラメーターを使用すると、より柔軟な言語出力を実現できます。 6. 言語選択機能
ユーザーがアプリケーションの言語を自由に切り替えられるように、アプリケーションに言語選択機能を提供する必要がある場合があります。 Laravel では、
URL::to()メソッドを使用して、言語パラメーターを含む URL を生成できます。
まず、routes/web.php
ファイルでルートを定義できます:
Route::get('/lang/{locale}', function ($locale) { // 设置应用的语言 App::setLocale($locale); // 生成包含语言参数的URL $url = URL::to('/'); // 重定向到指定语言的路径 return redirect($url); });
次に、ビュー ファイルに言語選択リンクを追加します。次に例を示します。 結論: Laravel が提供する国際化機能とローカライゼーション機能を使用することで、アプリケーションをさまざまな言語や地域のニーズに簡単に適応させることができます。この記事では、言語ファイルの使い方、アプリケーションの言語設定、パラメータの動的置換などの技術を紹介しますので、Laravelアプリケーションの国際化・ローカライゼーション実現の一助になれば幸いです。 上記は、Laravel での国際化とローカリゼーションの実装に関する関連コンテンツです。 以上がLaravel の国際化とローカリゼーション: さまざまな言語や地域のニーズに適応するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。<a href="{{ url('lang/en') }}">English</a>
<a href="{{ url('lang/zh-CN') }}">中文</a>