yii2 で多言語パッケージを切り替える方法
1. 構成コンポーネント
'components' => [ 'i18n' => [ 'translations' => [ '*' => [ 'class' => 'yii\i18n\PhpMessageSource', //'basePath' => '/messages', 'fileMap' => [ 'app' => 'app.php', ], ], ], ], ]
2. メッセージ ディレクトリの作成
Web と同じ階層のディレクトリに、言語設定ファイルを格納するメッセージ ディレクトリを作成します
Createmessages/zh -CN/app.php, zh-CN 言語識別子です (\Yii::$app->session[' language'] = 'zh-CN'、つまり zh-CN 言語として設定されます)。言語設定配列は app.php に保存されます (app.php の名前はコンポーネントの 'app' オプションによって設定されます)
以下は app.php ファイルの内容です
<?php return [ //常用 'Action' => '操作', 'Search' => '搜索', 'Reset' => '重置', ];
#3. 言語切り替えを実装するには
#2 つの方法があります:
a) 各コントローラーを初期化する必要があります (init 関数を作成します)。 . init関数では主にYii::$app-> languageに値を代入することになります。例: Yii::$app->言語 = 'zh-CN'。
b) web/index.php (エントリ ファイル) で、アプリケーションを作成するコードを次のコードに変更します
$application = new yii\web\Application($config); $application->language = isset(\Yii::$app->session['language']) ? \Yii::$app->session['language'] : 'en'; $application->run();
4. 言語切り替えを実装するコントローラー メソッドを記述します
public function actionLanguage(){ $language= \Yii::$app->request->get('lang'); if(isset($language)){ \Yii::$app->session['language']=$language; } //切换完语言哪来的返回到哪里 $this->goBack(\Yii::$app->request->headers['Referer']); }
言語を切り替えるには、「lang」パラメータを指定してこのメソッドを呼び出すだけです。
Yii の使用に関するヒントとウェブサイト構築チュートリアルの詳細については、ウェブサイト構築チュートリアル を参照してください。
以上がyii2 で多言語パッケージを切り替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。