Hyperf フレームワークを使用して国際サポートを行う方法
グローバリゼーションの急速な発展に伴い、多くのアプリケーションは、さまざまなニーズを満たすために多言語サポート機能を備えている必要があります。国と地域のユーザーのニーズ。 Hyperf フレームワークは、軽量で高性能のフレームワークとして、国際的なサポート機能を提供し、開発者が多言語アプリケーションを迅速に開発できるように支援します。
この記事では、Hyperf フレームワークで国際化関数を使用する方法を紹介し、対応するコード例を示します。
1. 多言語サポートの構成
まず、Hyperf 構成ファイル config/autoload/i18n.php
で関連する構成を実行する必要があります。 php bin/hyperf.php Vendor:publish hyperf/i18n
コマンドを使用して、デフォルトの構成ファイルを config/autoload
ディレクトリにコピーできます。次に、i18n.php
ファイルで次の設定を行います。
return [ // 默认的语言环境 'locale' => 'zh_CN', // 语言文件的存放位置 'fallback_locale' => 'en', // 支持的语言列表 'locale_list' => [ 'zh_CN', 'en', ], // 自动检测浏览器的语言设置 'detect_locale' => true, // 语言文件的扩展名 'ext' => '.php', ];
上記の設定では、locale
がデフォルトのロケールで、fallback_locale
はデフォルトのロケールです。現在のロケール 要求されたロケールが存在しない場合の代替ロケール。 locale_list
プロジェクトでサポートされる言語のリストを指定します。 detect_locale
ブラウザの言語設定を自動的に検出するには、true
に設定します。 ext
は言語ファイルの拡張子を指定します。デフォルトは .php
です。
2. 言語ファイルの書き込み
resources/lang
ディレクトリに対応する言語フォルダーを作成し、そのフォルダー内にさまざまなロケールの言語ファイルを作成します。たとえば、中国語と英語の言語ファイルをそれぞれ保存するために、zh_CN
と en
という 2 つのフォルダーを作成します。
各言語ファイルには、翻訳内容に対応するキー値を定義できます。たとえば、次の内容を含む messages.php
ファイルを zh_CN
フォルダーの下に作成します。
の下に <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return [
'welcome' => '欢迎使用Hyperf框架',
];</pre><div class="contentsignin">ログイン後にコピー</div></div>
Createフォルダーmessages.php
ファイルの内容は次のとおりです:
return [ 'welcome' => 'Welcome to Hyperf framework', ];
3. 言語パッケージを使用します
コントローラーまたはサービス クラスで、HyperfUtilsApplicationContext::getContainer を渡すことができます。 ()-> ;get('translator')
を使用してトランスレーター (translator) インスタンスを取得し、トランスレーターの trans
メソッドを通じて対応するロケールの翻訳コンテンツを取得します。
<?php namespace AppController; use HyperfHttpServerAnnotationController; use HyperfHttpServerAnnotationRequestMapping; use HyperfHttpServerContractRequestInterface; use HyperfUtilsApplicationContext; /** * @Controller() */ class IndexController { /** * @RequestMapping("/") */ public function index(RequestInterface $request) { $translator = ApplicationContext::getContainer()->get('translator'); // 获取当前语言环境 $locale = $translator->getLocale(); // 获取语言包中的翻译内容 $welcome = $translator->trans('welcome'); return [ 'locale' => $locale, 'welcome' => $welcome, ]; } }
上記のコードでは、$translator->getLocale()
を使用して現在のロケールを取得します。次に、$translator->trans('welcome')
を通じて、対応する翻訳コンテンツを取得します。
4. ロケール環境の切り替え
実際のアプリケーションでは、ユーザーの選択やその他の条件に応じてロケール環境の切り替えが必要になる場合があります。 Hyperf フレームワークは、コンテキストを実装するための HyperfUtilsContext
クラスを提供し、Context::getContainer()->set('locale', $locale)
を通じてロケールを設定できます。
<?php use HyperfUtilsContext; // 切换到中文环境 Context::getContainer()->set('locale', 'zh_CN');
上記のコードでは、set('locale', $locale)
を通じてロケールを中国語に設定します。
概要:
上記の手順により、Hyperf フレームワークに国際化サポート機能を正常に実装できます。まず、構成ファイルで関連する構成を作成し、次に言語ファイルを作成し、コード内でトランスレータを使用して翻訳されたコンテンツを取得する必要があります。コンテキストを使用して、ニーズに応じてロケールを切り替えることができます。
Hyperf フレームワークの国際的なサポートを通じて、開発者は多言語アプリケーションを簡単に実装し、世界中のユーザーにより良いユーザー エクスペリエンスを提供できます。
上記は、国際化サポートに Hyperf フレームワークを使用するための詳細な手順とサンプル コードです。お役に立てれば幸いです!
以上が国際化サポートのために Hyperf フレームワークを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。