Maison > cadre php > YII > le corps du texte

Comment changer de package multilingue dans yii2

angryTom
Libérer: 2020-02-17 12:02:52
original
2479 Les gens l'ont consulté

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

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

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

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

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!

É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