Maison > cadre php > YII > Comment définir le changement de langue dans yii2

Comment définir le changement de langue dans yii2

藏色散人
Libérer: 2020-07-20 10:15:39
original
2769 Les gens l'ont consulté

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.

Comment définir le changement de langue dans yii2


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',
                    ],
                ],
            ],
        ],
]
Copier après la connexion

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

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

4 Écrivez la méthode du contrôleur, Implémentation du changement de langue

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;]);  
}
Copier après la connexion
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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal