Laravel 開発: Laravel ローカリゼーションを使用して多言語サポートを実現するにはどうすればよいですか?

王林
リリース: 2023-06-13 10:27:04
オリジナル
1657 人が閲覧しました

グローバル化の傾向に伴い、複数の言語をサポートする必要がある Web サイトやアプリケーションがますます増えています。従来の Web サイト開発では、通常、複数の言語でページを手動で構築する必要がありますが、これには時間と労力がかかるだけでなく、エラーも発生しやすくなります。最新の開発テクノロジーの発展に伴い、フレームワークやツールを使用して多言語サポートを簡素化する傾向が見られます。

Laravel 開発では、Laravel ローカリゼーションは多言語サポートを実現する一般的な方法です。この記事では、Laravel Localization を使用して Laravel アプリケーションに多言語サポートを実装する方法を紹介します。

  1. インストールと構成

まず、laravel のローカリゼーション コンポーネントをインストールする必要があります。 Composer を使用してインストールできます:

composer require "laravelcollective/html":"^5.8.0"
php artisan vendor:publish --tag=laravel-errors --force
ログイン後にコピー

次に、app/config の下に新しいファイル locale.php を作成して、サポートされる言語オプションを構成する必要があります:

return [
    'locales' => ['en' => 'English', 'zh' => '中文'],
    'default_locale' => 'en'
];
ログイン後にコピー

ここで、locales 配列にはすべてのものが含まれます。サポートされている言語オプション。各要素のキーは言語のコード、値は言語の名前です。 default_locale はデフォルトの言語オプションを指定します。

  1. 多言語リソースの作成

次に、サポートされている言語ごとに、対応する言語リソース ファイルを作成する必要があります。言語リソース ファイルには、通常、そのロケールで使用されるすべてのローカライズされた文字列を含む配列が含まれています。これらのファイルは、以下に示すように、artisan コマンドを使用してすぐに作成できます。

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

これにより、英語用と中国語用の 2 つの lang ディレクトリが作成されます。

  1. 多言語リソースの編集

各ロケールの言語リソース ファイルを編集し、そのロケールに固有のローカライズされた文字列を配列に追加します。たとえば、en.php および zh.php ファイルに次の内容を追加できます。

// en.php
return [
    "welcome" => "Welcome to our site",
    "about" => "About Us",
    "contact" => "Contact Us"
];

// zh.php
return [
    "welcome" => "欢迎访问我们的网站",
    "about" => "关于我们",
    "contact" => "联系我们"
];
ログイン後にコピー
  1. ビューでローカライズされた文字列を使用する

ビューに含める必要がある場合local 文字列を変換する場合、Laravel Localization で提供される trans 関数を使用できます。 trans 関数はローカライズされた文字列キーを受け入れ、対応するローカライズされた文字列を返します。たとえば、ブレード テンプレートでは、trans 関数を次のように使用できます。

<h1>{{ trans('messages.welcome') }}</h1>
ログイン後にコピー

ここで、trans 関数は、現在のロケールに基づいて、対応するローカライズされた文字列を返します。

  1. 言語オプションの切り替え

最後に、アプリケーションで言語オプションを切り替える機能を提供することもできます。ビューにドロップダウンボックスを作成して言語オプションを切り替え、JavaScript を使用してフォームを送信すると、選択した言語オプションが Laravel セッションに保存されます。

<form id="locale-form" method="POST" action="{{ url('locale') }}">
    {{ csrf_field() }}
    <select name="locale" onchange="document.querySelector('#locale-form').submit();">
        @foreach (Config::get('locale.locales') as $key => $value)
            <option value="{{ $key }}" {{ ($key === App::getLocale()) ? ' selected' : '' }}>{{ $value }}</option>
        @endforeach
    </select>
</form>
ログイン後にコピー

次のコードをルートに追加して、言語オプション フォームからのリクエストを処理します。

Route::post('locale', function(Request $request) {
    App::setLocale($request->locale);
    return redirect()->back();
});
ログイン後にコピー

これにより、現在のセッションの言語オプションが更新され、前のページにリダイレクトされます。

結論

Laravel ローカリゼーションの使用は、多言語サポートを簡素化し、Laravel アプリケーションのすべてのページ要素を簡単にローカライズすることを目的としています。この記事で紹介する手順は、Laravel アプリケーションに多言語サポートを実装するための開始点として使用できます。実際のプロセスでは、アプリケーションのニーズに応じて適切な調整やカスタマイズを行うこともできます。

以上がLaravel 開発: Laravel ローカリゼーションを使用して多言語サポートを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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