yii2 言語を切り替えるメソッドを設定します。最初にコンポーネントを構成します。次に、同じレベルの Web ディレクトリにメッセージ ディレクトリを作成し、言語構成ファイルを保存します。次に、各コントローラを初期化し、最後にコントローラ メソッドを作成します。言語を切り替えるだけで実装できます。
Yii2.0 は多言語切り替えを実現します#推奨事項: "
yii チュートリアル'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->言語に値を割り当てます。例: 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();
public function actionLanguage(){ $language= \Yii::$app->request->get('lang'); if(isset($language)){ \Yii::$app->session['language']=$language; } //切换完语言哪来的返回到哪里 $this->goBack(\Yii::$app->request->headers['Referer']); }
以上がyii2で言語切り替えを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。