Yii2 définit la méthode pour changer de langue : configurez d'abord les composants ; puis créez un répertoire de messages dans le même répertoire que le Web, qui stocke le fichier de configuration de langue ; puis initialisez chaque contrôleur ; implémenter Changez simplement la langue.
Yii2.0 réalise la commutation multilingue
Recommandation : "tutoriel yii"
1. Configurer les composants
'components' => [ 'i18n' => [ 'translations' => [ '*' => [ 'class' => 'yii\i18n\PhpMessageSource', //'basePath' => '/messages', 'fileMap' => [ 'app' => 'app.php', ], ], ], ], ]
2 Créer un répertoire de messages
Créer des messages dans le même répertoire de niveau. du Répertoire web, ce répertoire stocke le fichier de configuration de la langue
Create messages/zh-CN/app.php, zh-CN est l'identifiant de la langue ( Yii::$app->session['langue' ] = 'zh-CN' (c'est-à-dire configuré en langage zh-CN), le tableau de configuration de langue est stocké dans app.php (le nom de app.php est déterminé par l'option 'app' lors de la configuration du composant)
Ce qui suit est le contenu du fichier app.php
<?php return [ //常用 'Action' => '操作', 'Search' => '搜索', 'Reset' => '重置', ];
3 Il existe deux façons d'implémenter le changement de langue
:
a :
doit initialiser chaque contrôleur (écrire la fonction init). Dans la fonction init, la tâche principale est d'attribuer une valeur à Yii::$app->langue. Par exemple : Yii::$app->langue = 'zh-CN'. b :Dans web/index.php (fichier d'entrée), modifiez le code pour créer l'application par le code suivant$application = new yii\web\Application($config); $application->language = isset(\Yii::$app->session['language']) ? \Yii::$app->session['language'] : 'en'; $application->run();4 Écrivez la méthode du contrôleur, Implémentation du changement de langue
public function actionLanguage(){ $language= \Yii::$app->request->get('lang'); if(isset($language)){ \Yii::$app->session['language']=$language; } //切换完语言哪来的返回到哪里 $this->goBack(\Yii::$app->request->headers['Referer']); }Pour implémenter le changement de langue, appelez simplement cette méthode avec le paramètre 'lang' !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!