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

Comment définir le changement de langue dans yii2

藏色散人
藏色散人original
2020-07-20 10:15:392730parcourir

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',
                    ],
                ],
            ],
        ],
]

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;,
];

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();

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;]);  
}

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!

Déclaration:
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