ホームページ >PHPフレームワーク >YII >yii2で言語切り替えを設定する方法

yii2で言語切り替えを設定する方法

藏色散人
藏色散人オリジナル
2020-07-20 10:15:392779ブラウズ

yii2 言語を切り替えるメソッドを設定します。最初にコンポーネントを構成します。次に、同じレベルの Web ディレクトリにメッセージ ディレクトリを作成し、言語構成ファイルを保存します。次に、各コントローラを初期化し、最後にコントローラ メソッドを作成します。言語を切り替えるだけで実装できます。

yii2で言語切り替えを設定する方法


Yii2.0 は多言語切り替えを実現します#推奨事項: "

yii チュートリアル

"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 [
    //常用
    &#39;Action&#39; => &#39;操作&#39;,
    &#39;Search&#39; => &#39;搜索&#39;,
    &#39;Reset&#39; => &#39;重置&#39;,
];

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[&#39;language&#39;]) ? \Yii::$app->session[&#39;language&#39;] : &#39;en&#39;;
$application->run();

4 に変更し、コントローラー メソッドを記述します。言語切り替えの実装

public function actionLanguage(){       
    $language=  \Yii::$app->request->get(&#39;lang&#39;);  
    if(isset($language)){  
        \Yii::$app->session[&#39;language&#39;]=$language;  
    }  
    //切换完语言哪来的返回到哪里
    $this->goBack(\Yii::$app->request->headers[&#39;Referer&#39;]);  
}

言語切り替えを実現するには、「lang」パラメーターを指定してこのメ​​ソッドを呼び出すだけです。

以上がyii2で言語切り替えを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。