Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk melaksanakan laman web berbilang bahasa dalam ThinkPHP6?

Bagaimana untuk melaksanakan laman web berbilang bahasa dalam ThinkPHP6?

PHPz
PHPzasal
2023-06-12 09:01:281393semak imbas

ThinkPHP6 ialah rangka kerja pembangunan PHP yang sangat baik, yang menyediakan pengurusan kod dan kebolehskalaan yang sangat baik. Dalam perkembangan sebenar, dengan trend globalisasi, semakin banyak laman web perlu menyediakan sokongan berbilang bahasa. Jadi bagaimana untuk melaksanakan laman web berbilang bahasa dalam ThinkPHP6? Artikel ini akan menerangkannya dari empat aspek berikut.

1. Tentukan pembolehubah berbilang bahasa dalam fail konfigurasi

Dalam ThinkPHP6, sangat disyorkan untuk mentakrifkan pembolehubah berbilang bahasa melalui fail konfigurasi. Mula-mula kita perlu mencipta fail config dalam direktori lang.php, dan kemudian menentukan tatasusunan berbilang bahasa di dalamnya, contohnya:

<?php
return [
    'welcome' => '欢迎',
    'hello' => '你好',
    'bye' => '再见',
    ...
];

Kemudian gunakan fungsi pembantu lang dalam pengawal untuk mendapatkan berbilang bahasa ini pembolehubah , sebagai contoh:

echo lang('welcome');

Dengan cara ini, apabila tapak web anda perlu menyokong bahasa yang berbeza, anda hanya perlu mengubah suai nilai pembolehubah berbilang bahasa yang sepadan dalam fail lang.php.

2. Gunakan perisian tengah untuk menetapkan Sesi mengikut bahasa

Untuk dapat menukar bahasa yang berbeza, kami perlu menyediakan Sesi bahasa dalam tapak web. Sesi bahasa ini boleh dikenali secara automatik berdasarkan parameter yang diluluskan daripada tetapan meja depan atau penyemak imbas.

Dalam ThinkPHP6, kami boleh melaksanakan fungsi ini melalui perisian tengah. Cipta fail app/middleware middleware dalam direktori Language.php Kodnya adalah seperti berikut:

<?php
namespace appmiddleware;

use thinkacadeSession;
use thinkRequest;

class Language
{
    public function handle(Request $request, Closure $next)
    {
        $lang = $request->param('lang');
        if(!in_array($lang, ['zh-cn', 'en-us'])){
            $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
        }
        Session::set('lang', $lang);
        return $next($request);
    }
}

Antaranya, ia dinilai sama ada parameter bahasa yang diluluskan adalah sah, jika tidak, parameter bahasa dalam penyemak imbas tetapan digunakan.

Perkenalkan perisian tengah ini dalam app/middleware.php dan gunakannya dalam pengawal yang perlu menyokong berbilang bahasa, contohnya:

<?php
namespace appcontroller;

use thinkacadeSession;

class Index
{
    public function index()
    {
        $lang = Session::get('lang');
        return lang('welcome');
    }
}

3. Gunakan penghalaan berbilang bahasa

untuk Untuk beberapa keperluan yang perlu menyokong penghalaan berbilang bahasa, ThinkPHP6 menyediakan kaedah yang sangat mudah. Sebagai contoh, kita boleh mentakrifkan dua laluan berikut:

Route::get(':lang/index', 'index/index');
Route::get(':lang/about', 'index/about');

Dengan cara ini, apabila kita mengakses https://example.com/zh-cn/index dan https://example.com/zh-cn/about, kita akan memasuki pengawal yang sepadan, dan bahagian hadapan tidak perlu melepasi bahasa parameter secara berasingan.

4. Gunakan teg templat untuk mengeluarkan kandungan berbilang bahasa

Akhir sekali, kita perlu mengeluarkan pembolehubah berbilang bahasa di latar depan. Pada masa ini, kita boleh menggunakan fungsi "template tag" yang disediakan oleh ThinkPHP6, sebagai contoh:

{: lang('welcome') }

Sudah tentu, lebih disyorkan untuk menggunakan kaedah berikut:

{lang name="welcome"}

Dengan cara ini, pembolehubah berbilang bahasa yang sepadan boleh menjadi output, anda juga boleh menambah beberapa nilai dan parameter lalai.

Ringkasan

Di atas ialah cara melaksanakan laman web berbilang bahasa dalam ThinkPHP6. Dengan mentakrifkan pembolehubah berbilang bahasa, menggunakan perisian tengah untuk menyediakan Sesi, dan menggunakan penghalaan berbilang bahasa dan teg templat untuk mengeluarkan kandungan berbilang bahasa, kami boleh membina tapak web berbilang bahasa yang lengkap dengan mudah. Sudah tentu, beberapa butiran perlu dipertimbangkan dalam pembangunan sebenar, tetapi kaedah di atas menyediakan asas yang sangat baik untuk pembangunan berbilang bahasa dalam ThinkPHP6.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan laman web berbilang bahasa dalam ThinkPHP6?. 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