ホームページ >PHPフレームワーク >YII >yii2 で多言語パッケージを切り替える方法

yii2 で多言語パッケージを切り替える方法

angryTom
angryTomオリジナル
2020-02-17 12:02:522539ブラウズ

yii2 で多言語パッケージを切り替える方法

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

#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[&#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」パラメータを指定してこのメ​​ソッドを呼び出すだけです。

Yii の使用に関するヒントとウェブサイト構築チュートリアルの詳細については、ウェブサイト構築チュートリアル を参照してください。

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

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