Dengan proses globalisasi, semakin banyak laman web dan aplikasi perlu menyokong berbilang bahasa untuk menarik pengguna dan pelanggan multinasional. ThinkPHP6 menyediakan fungsi pengantarabangsaan yang berkuasa, membolehkan pembangun melaksanakan sokongan berbilang bahasa dengan mudah. Artikel ini akan memperkenalkan langkah dan teknik untuk menggunakan Pengantarabangsaan dalam ThinkPHP6.
Dalam ThinkPHP6, pek bahasa adalah untuk mengklasifikasikan semua teks yang perlu diterjemahkan dalam aplikasi dan menyimpannya ke fail tertentu, menjadikan kami Apl boleh menukar versi bahasa dengan mudah. Dalam fail app.php dalam direktori konfigurasi, terdapat pilihan 'lang_switch_on', kami menetapkannya kepada benar untuk mendayakan ciri pek bahasa.
'lang_switch_on' => benar,
Seterusnya, kita perlu mencipta fail lang.php dalam direktori konfigurasi untuk mengkonfigurasi pek bahasa kita. Kandungan sampel adalah seperti berikut:
kembali [
'zh-cn' => [ 'name' => '姓名', 'age' => '年龄', 'email' => '邮箱' ], 'en-us' => [ 'name' => 'Name', 'age' => 'Age', 'email' => 'Email' ]
];
Dalam kod di atas, kami menetapkan dua versi bahasa dalam tatasusunan pek bahasa: Chinese Simplified (' zh- cn') dan Inggeris ('en-us'), setiap versi bahasa mempunyai teks terjemahannya sendiri seperti nama ('nama'), umur ('umur') dan alamat e-mel ('e-mel').
Setelah pek bahasa dikonfigurasikan, kami boleh menggunakan fungsi Lang helper untuk merujuk teks terjemahan dalam aplikasi. Fungsi pembantu Lang menyediakan tiga parameter: nama kunci pakej bahasa, pembolehubah penggantian dan versi bahasa. Kod sampel adalah seperti berikut:
//Dapatkan versi bahasa semasa
$lang = Lang::getLangSet();
//Gunakan fungsi pembantu Lang untuk mendapatkan terjemahan text
echo Lang: :get('name', [], $lang);
Dalam kod di atas, kami mula-mula menggunakan fungsi Lang::getLangSet() untuk mendapatkan versi bahasa semasa, dan kemudian panggil fungsi Lang::get() untuk mendapatkan teks nama yang diterjemahkan dalam versi bahasa yang sepadan. Oleh kerana kita tidak mempunyai pembolehubah penggantian, parameter kedua ialah tatasusunan kosong.
Jika kita mahu menggunakan fungsi pembantu Lang dalam fail paparan, kita boleh menggunakan sintaks berikut:
{{$lang = Lang::getLangSet()}}
{ {$name = Lang::get('name', [], $lang)}}
{{$age = Lang::get('umur', [], $lang)}}
{ {$email = Lang::get('email', [], $lang)}}
Selain menggunakan Lang fungsi pembantu untuk rujukan Untuk menterjemah teks, kita juga boleh mencapai sokongan berbilang bahasa melalui penghalaan. Untuk melaksanakan penghalaan berbilang bahasa, kita mesti mengkonfigurasi peraturan penghalaan yang sepadan.
Gunakan kumpulan laluan (Route::group) dengan '/lang/:lang' sebagai awalan, dengan ':lang' mewakili versi bahasa. Kod sampel adalah seperti berikut:
Route::group(':lang', function () {
//这里写你的路由规则
})->ext('html')->pattern( 'lang' , '^[a-z]{2}-(?:[A-Z]{2})?$');
Dalam kod di atas, kami menggunakan ':lang' sebagai awalan dan kemudian tentukan ungkapan biasa untuk dipadankan dengan versi bahasa. Akhir sekali, tetapkan pilihan 'ext' untuk membenarkan laluan menyokong penghuraian akhiran automatik dan tetapkan pilihan 'corak' untuk mengehadkan format versi bahasa.
Apabila pengguna mengakses '/', kami boleh mengubah hala mereka ke versi bahasa lalai laluan, seperti '/zh-cn/home'. Kami juga boleh menetapkan parameter dalam peraturan penghalaan untuk sokongan berbilang bahasa yang lebih baik. Kod sampel adalah seperti berikut:
Route::get(':lang/home', 'home/index');
Dalam kod di atas, kami menetapkan ':lang/ peraturan penghalaan home', memetakannya ke pengawal dan tindakan 'home/index'. Dengan cara ini, apabila pengguna mengakses 'zh-cn/home' dan 'en-us/home', mereka akan dihalakan secara automatik ke operasi pengawal yang sepadan.
Kesimpulan
Menggunakan Pengantarabangsaan dalam ThinkPHP6, sokongan berbilang bahasa boleh dicapai dengan mudah. Dengan mengkonfigurasi pek bahasa, menggunakan fungsi pembantu Lang dan melaksanakan penghalaan berbilang bahasa, kami boleh mencipta aplikasi yang benar-benar global yang menarik lebih ramai pengguna dari negara dan wilayah yang berbeza.
Atas ialah kandungan terperinci Menggunakan Pengantarabangsaan dalam ThinkPHP6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!