Maison >cadre php >YII >Comment changer de package multilingue dans yii2

Comment changer de package multilingue dans yii2

angryTom
angryTomoriginal
2020-02-17 12:02:522534parcourir

Comment changer de package multilingue dans yii2

Comment changer de package multilingue dans yii2

1. Composants de configuration

'components' => [
        'i18n' => [
            'translations' => [
                '*' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    //'basePath' => '/messages',
                    'fileMap' => [
                        'app' => 'app.php',
                    ],
                ],
            ],
        ],
]

2. Créez le répertoire des messages

Créez le répertoire des messages dans le répertoire web au même niveau. Ce répertoire stocke le fichier de configuration de la langue

Créez des messages/zh-CN. /app.php, zh-CN Il s'agit de l'identifiant de langue (Yii::$app->session['langue'] = 'zh-CN', c'est-à-dire configuré comme langue zh-CN) et de la configuration de la langue. Le tableau est stocké dans app.php (le nom de app.php est déterminé par le composant de configuration lorsque l'option 'app' est déterminée)

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

Méthode :

a) Chaque contrôleur doit être initialisé (écrire la fonction init In). la fonction init, il s'agit principalement 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 pour implémenter le 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 changer de langue, appelez simplement cette méthode avec le paramètre 'lang' !

Pour plus de conseils sur l'utilisation de yii et des didacticiels de création de sites Web, veuillez prêter attention aux Tutoriels de création de sites Web.

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
Article précédent:yii2 code chinois tronquéArticle suivant:yii2 code chinois tronqué