Rumah  >  Artikel  >  rangka kerja php  >  Menggunakan ThinkPHP6 untuk mencapai kefungsian berbilang bahasa

Menggunakan ThinkPHP6 untuk mencapai kefungsian berbilang bahasa

WBOY
WBOYasal
2023-06-21 14:39:293615semak imbas

Dengan pembangunan berterusan Internet, semakin banyak laman web dan aplikasi perlu menyokong fungsi berbilang bahasa untuk memberi perkhidmatan yang lebih baik kepada pengguna global. Dalam pembangunan web, ThinkPHP ialah rangka kerja PHP yang sangat baik Ia mempunyai sokongan berbilang bahasa terbina dalam, membolehkan pembangun melaksanakan aplikasi berbilang bahasa dengan mudah. Artikel ini akan memperkenalkan cara menggunakan rangka kerja ThinkPHP6 untuk mencapai kefungsian berbilang bahasa.

1. Konfigurasi berbilang bahasa

Dalam ThinkPHP6, untuk melaksanakan fungsi berbilang bahasa, anda perlu mencipta fail lang.php baharu dalam direktori konfigurasi aplikasi untuk mengkonfigurasi berbilang bahasa sokongan. Pek berbilang bahasa boleh dikonfigurasikan dalam fail ini, dan bahasa lalai dan pembolehubah bahasa boleh ditetapkan, seperti yang ditunjukkan di bawah:

<?php

return [
    'default_lang'  => 'zh-cn', // 默认语言
    'lang_detect_var'   => 'lang', // 语言检测变量
    'lang_list' => ['zh-cn', 'en-us'], // 支持的语言列表

    'LANG_SWITCH_ON' => true, // 开启语言包功能

    'phrase'    => ['hello' => '你好', 'world' => '世界'], // 语言变量
];

Dalam konfigurasi bahasa di atas, kami menetapkan bahasa lalai kepada bahasa Cina (zh-cn) , disokong Senarai bahasa ialah bahasa Cina dan Inggeris, fungsi pek bahasa didayakan dan dua pembolehubah bahasa hello dan world ditetapkan. Antaranya, lang_detect_var digunakan untuk mengesan parameter GET bahasa lalai, iaitu menambah ?lang=en pada URL untuk menukar bahasa.

2. Fail pek bahasa

Fail pek bahasa ialah fail PHP yang menyimpan pembolehubah bahasa ia dicipta dalam direktori pek bahasa yang sepadan dengan setiap bahasa. Sebagai contoh, cipta fail lang.php dalam direktori lang/zh-cn untuk menyimpan pembolehubah bahasa Cina:

<?php

return [
    'hello' => '你好',
    'world' => '世界',
    'welcome'   => '欢迎',
];

Begitu juga, buat fail lang.php dalam direktori lang/en-us untuk menyimpan bahasa Inggeris pembolehubah:

<?php

return [
    'hello' => 'Hello',
    'world' => 'World',
    'welcome'   => 'Welcome',
];

Dalam contoh di atas, kami menyimpan tiga pembolehubah bahasa, iaitu hello, world dan welcome.

3. Panggilan pakej bahasa

Dalam aplikasi, kita boleh menggunakan kaedah untuk mendapatkan pembolehubah bahasa dalam pakej bahasa semasa. Apabila menggunakan kaedah , anda boleh menetapkan parameter kedua untuk menentukan pek bahasa yang akan dipanggil. Contohnya:

echo __('hello'); // 输出当前语言包中的 hello 变量
echo __('hello', 'en-us'); // 输出英文语言包中的 hello 变量

Jika pembolehubah bahasa tidak wujud, kaedah __ akan mengembalikan nama pembolehubah. Jika nilai pembolehubah bahasa tidak ditetapkan dalam pakej bahasa semasa, rangka kerja secara automatik akan menanyakan nilai yang sepadan dalam pakej bahasa lalai Jika tiada nilai untuk pembolehubah dalam pakej bahasa lalai, nama pembolehubah akan dikembalikan.

4. Penukaran pek bahasa

Dalam aplikasi, kita boleh menukar fungsi berbilang bahasa dengan menetapkan pembolehubah bahasa. Sebagai contoh, dalam pengawal, kita boleh menggunakan kaedah setLang untuk menetapkan pembolehubah bahasa, seperti yang ditunjukkan di bawah:

rreee

Dalam kod di atas, kita mula-mula mendapatkan parameter lang dan tentukan sama ada nilainya dalam yang disokong senarai bahasa , jika ada, menetapkan pembolehubah bahasa dan mengubah hala ke halaman utama. Jika ia tidak wujud, mesej ralat dipaparkan.

5. Ringkasan

Artikel ini memperkenalkan cara menggunakan rangka kerja ThinkPHP6 untuk melaksanakan fungsi berbilang bahasa. Dengan langkah-langkah seperti konfigurasi berbilang bahasa, fail pek bahasa dan panggilan pek bahasa, kini kami boleh menambah sokongan berbilang bahasa dengan mudah pada aplikasi kami. Saya harap artikel ini dapat membantu pembangun yang perlu melaksanakan fungsi berbilang bahasa.

Atas ialah kandungan terperinci Menggunakan ThinkPHP6 untuk mencapai kefungsian berbilang bahasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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