Rumah rangka kerja php YII yii2怎么切换多语言包

yii2怎么切换多语言包

Feb 17, 2020 pm 12:02 PM
yii2 tukar bahasa

yii2怎么切换多语言包

yii2怎么切换多语言包

1、配置组件

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

2、创建messages目录

在web同级目录下创建messages目录,此目录存放语言配置文件

创建messages/zh-CN/app.php,zh-CN为语言标识( \Yii::$app->session['language'] = 'zh-CN' 即配置为zh-CN语言),app.php中存放语言配置数组(app.php的名字由配置组件时‘app’选项确定)

下面时app.php文件内容

<?php
return [
    //常用
    &#39;Action&#39; => &#39;操作&#39;,
    &#39;Search&#39; => &#39;搜索&#39;,
    &#39;Reset&#39; => &#39;重置&#39;,
];

3、实现语言切换

有两种方法:

a)需要给每个controller进行初始化(都写上init函数),在init函数中主要就是给Yii::$app->language 赋值。例如:Yii::$app->language = 'zh-CN'。

b)在web/index.php(入口文件)中,将创建应用的代码改为下面的代码

$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、编写控制器方法,实现语言切换

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

要想实现语言的切换,只要带'lang'参数调用此方法就可以了!

更多关于yii的使用技巧,建站教程,请关注网站建设教程。  

Atas ialah kandungan terperinci yii2怎么切换多语言包. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Bagaimana untuk melaksanakan carian dan penapisan di Yii? Bagaimana untuk melaksanakan carian dan penapisan di Yii? Sep 21, 2025 am 02:33 AM

Jawapan: Untuk melaksanakan carian dan penapisan di YII2, anda perlu membuat model carian dan menggunakan ActivedAtaprovider dan GridView. Pertama, buat kelas Productsearch untuk produk, tentukan peraturan dan melaksanakan kaedah carian, parameter proses melalui beban dan sahkan, dan tambahkan syarat dengan dan di mana -mana; instantiate model carian dalam pengawal dan lulus dalam parameter permintaan; membina borang carian dalam pandangan dengan ActiveForm, GridView memaparkan data dan menetapkan FilterModel; Menyokong fungsi lanjutan seperti julat tarikh dan pertanyaan persatuan untuk memastikan prestasi pengoptimuman indeks pangkalan data.

Bagaimana cara menulis ujian unit untuk aplikasi Yii? Bagaimana cara menulis ujian unit untuk aplikasi Yii? Sep 16, 2025 am 01:12 AM

Jawapan: Apabila menulis ujian unit untuk aplikasi YII, anda perlu mengkonfigurasi persekitaran ujian dan menggunakan phpunit untuk menguji model dan komponen. Pertama, pasang phpunit dan codeception melalui komposer, gunakan direktori ujian dan phpunit.xml.dist fail dalam templat rasmi, tetapkan yii_env ke 'ujian', dan buat bootstrap.php inisialisasi yii; Kemudian tulis kes ujian untuk model, seperti mengesahkan peraturan data dan tag atribut di Usertest, dan secara automatik melancarkan urus niaga pangkalan data menggunakan DBTestCase; Bagi kelas perkhidmatan seperti Paymentservice, kebergantungan diasingkan melalui mengejek untuk memastikan ujian itu bebas dan tidak mempunyai kesan sampingan;

Cara bekerja dengan ajax di yii Cara bekerja dengan ajax di yii Sep 16, 2025 am 03:28 AM

UseHtml :: a () withdata-methodforajaxlinks, memastikaniii.jsisincluded; 2.handleactiveformsubmissionsviajavascriptwithbeforesubmitan DreturnjsonResponsesFromTheController; 3.LoaddynamicContentusing $ .ajaxor $ .getToupDateContainersWithRenderPartial; 4.utilizePjax

Bagaimana untuk melaksanakan pemuatan malas dalam rekod aktif YII? Bagaimana untuk melaksanakan pemuatan malas dalam rekod aktif YII? Sep 15, 2025 am 12:04 AM

LazazyloyloydayiIiActiverecordAutomatiikyFetSrelatedDataWhenAccessed, notDuringIniTialModeLoLoad.definedViaHasOne () Orhasmany (), RelationstriggerAdataBasequerSaccess, asin $ order->

Bagaimana untuk membuat peraturan pengesahan tersuai di YII? Bagaimana untuk membuat peraturan pengesahan tersuai di YII? Sep 14, 2025 am 12:07 AM

Untuk membuat peraturan pengesahan tersuai, anda perlu menentukan kaedah pengesahan dalam model, seperti ValidateUserName, yang menerima nama dan parameter atribut; 2. Rujuk nama kaedah dalam kaedah peraturan; 3. Secara pilihan lulus parameter dan gunakannya melalui $ param dalam kaedah; 4. Panggil $ this-> adderror () apabila pengesahan gagal.

Bagaimana cara menggunakan lekapan untuk ujian di Yii? Bagaimana cara menggunakan lekapan untuk ujian di Yii? Sep 18, 2025 am 03:22 AM

FixtureyinyiiensureConsonsistentTestenvironmentsBypreloadingDefinedDataintainTabases.afixtureIsAclassextendingyii \ test \ ActiveFixture, linkedtoamodellikeuser, spesifyingTestDataviaphparraysInfilessAdests/fixtle/fixtle/fixtle/fixtle/fixtle.

Cara memformat tarikh dan nombor dalam yii Cara memformat tarikh dan nombor dalam yii Sep 14, 2025 am 04:10 AM

Yii menyediakan komponen formatter (yii \ i18n \ formatter) untuk memudahkan pemformatan tarikh dan nombor. 1. Ia boleh menggunakan asdate (), asdateTime (), dan astime () untuk pemformatan tarikh, dan menyokong format yang telah ditetapkan (seperti pendek, sederhana) dan format ICU atau php tersuai; 2. Pemformatan digital boleh dilaksanakan melalui asInteger (), asdecimal (), aspercent (), ascurrency () dan kaedah lain, penyokong mata wang, peratusan, pengiraan saintifik dan saiz fail; 3. DateFormat dan DA komponen formatter harus ditetapkan secara global dalam konfigurasi aplikasi.

Bagaimana cara menggunakan tingkah laku dalam model YII? Bagaimana cara menggunakan tingkah laku dalam model YII? Sep 23, 2025 am 02:38 AM

Tingkah laku digunakan untuk menambah fungsi tanpa mengubahsuai struktur model, seperti cap waktu, penjanaan slug, dan lain -lain. Tambahkan tingkah laku kepada model dengan mengatasi kaedah tingkah laku (), mengembalikan pelbagai konfigurasi tingkah laku. Sebagai contoh, timestampbehavior secara automatik boleh mengisi medan created_at dan dikemas kini. Tingkah laku tersuai perlu diwarisi dari tingkah laku Yii \ asas, yang boleh bertindak balas terhadap peristiwa model dan menambah kaedah atau atribut, seperti sluggableBehavior menjana slug berdasarkan tajuk sebelum menyimpan. Selepas tingkah laku diaktifkan, kaedah awamnya boleh diakses melalui model, seperti $ model-> sluggable-> GenerateSlug ()

See all articles