ホームページ > PHPフレームワーク > Laravel > Laravel の国際化とローカリゼーション: さまざまな言語や地域のニーズに適応する

Laravel の国際化とローカリゼーション: さまざまな言語や地域のニーズに適応する

PHPz
リリース: 2023-08-27 12:52:50
オリジナル
1359 人が閲覧しました

Laravel の国際化とローカリゼーション: さまざまな言語や地域のニーズに適応する

Laravel の国際化とローカライゼーション: さまざまな言語と地域のニーズに適応する

はじめに:
現在のグローバリゼーションの時代では、ますますアプリケーションは、さまざまな言語や地域のニーズに適応できる必要があります。 Laravel は、人気のある PHP フレームワークとして、アプリケーションの国際化とローカリゼーションをサポートする豊富な機能を提供します。この記事では、Laravel で国際化とローカリゼーションを実装する方法を紹介し、関連するコード例を示します。

1. 国際化とローカライゼーションとは

国際化 (国際化) は、さまざまな言語や文化的習慣に適応するようにアプリケーションを設計することを指します; ローカライゼーション (ローカリゼーション) は、さまざまな地域や国に基づいており、アプリケーションは、ローカル ユーザーのニーズに合わせて適切に調整されます。

2. Laravel の言語ファイル

Laravel では、言語ファイルを使用して国際化とローカリゼーションを実現できます。言語ファイルは resources/lang ディレクトリに保存され、各言語には対応するディレクトリがあります。たとえば、en ディレクトリには英語の言語ファイルが保存され、zh-CN ディレクトリには中国語の言語ファイルが保存されます。

  1. 言語ファイルの作成

まず、言語ファイルを作成する必要があります。これは、次のコマンドを実行して生成できます:

php artisan make:lang zh-CN
ログイン後にコピー

This ## で実行されます。 #resources/lang ディレクトリに zh-CN ディレクトリが生成され、このディレクトリに messages.php ファイルが生成されます。

    言語ファイルを編集
Open

resources/lang/zh-CN/messages.php、いくつかの言語のキーと値のペアを定義できます。例:

return [
    'welcome' => '欢迎',
    'about' => '关于我们',
    // ...
];
ログイン後にコピー

アプリケーションの

trans() 関数を通じて、対応する言語値を取得できます。例:

echo trans('messages.welcome'); // 输出:欢迎
ログイン後にコピー

3. 言語を設定します。 application

    構成ファイルの設定

config/app.php ファイルを開くと、locale 構成項目が見つかります。 。その値を対応する言語コードに設定できます (例: 'locale' => 'zh-CN')。

    ミドルウェア設定
アプリケーションの言語を設定するミドルウェアを作成できます。まず、Artisan コマンドを使用してミドルウェアを作成できます:

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-&gt;getPreferredLanguage(['en', 'zh-CN']); // 设置应用的语言 app()-&gt;setLocale($locale); return $next($request); }</pre><div class="contentsignin">ログイン後にコピー</div></div> 次に、

app/Http/Kernel.php

ファイルを開き、生成されたミドルウェアをミドルウェア グループに追加します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>protected $middlewareGroups = [ // ... 'web' =&gt; [ // ... 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;'>&lt;h1&gt;{{ trans('messages.welcome') }}&lt;/h1&gt; &lt;p&gt;{{ trans('messages.about') }}&lt;/p&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>アプリケーションの言語が

zh-CN に設定されている場合

/ パスにアクセスしたユーザーには、「ようこそ」と「会社概要」のコンテンツが表示されます。 5. 動的置換パラメータ

場合によっては、ユーザー入力または他の動的変数に基づいてコンテンツを表示する必要があります。言語ファイルでは、

:

表記を使用してパラメータを指定できます。例: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return [ 'welcome' =&gt; '欢迎,: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);
});
ログイン後にコピー

次に、ビュー ファイルに言語選択リンクを追加します。次に例を示します。

<a href="{{ url('lang/en') }}">English</a>
<a href="{{ url('lang/zh-CN') }}">中文</a>
ログイン後にコピー
ユーザーが対応するリンクをクリックすると、アプリケーションは対応する言語のパスにリダイレクトされます。

結論:

Laravel が提供する国際化機能とローカライゼーション機能を使用することで、アプリケーションをさまざまな言語や地域のニーズに簡単に適応させることができます。この記事では、言語ファイルの使い方、アプリケーションの言語設定、パラメータの動的置換などの技術を紹介しますので、Laravelアプリケーションの国際化・ローカライゼーション実現の一助になれば幸いです。

上記は、Laravel での国際化とローカリゼーションの実装に関する関連コンテンツです。

以上がLaravel の国際化とローカリゼーション: さまざまな言語や地域のニーズに適応するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート