Dengan trend globalisasi, semakin banyak tapak web dan aplikasi perlu menyokong berbilang bahasa. Dalam pembangunan laman web tradisional, biasanya perlu membina halaman secara manual dalam pelbagai bahasa, yang bukan sahaja memakan masa dan intensif buruh, tetapi juga terdedah kepada ralat. Dengan perkembangan teknologi pembangunan moden, ia telah menjadi trend untuk menggunakan rangka kerja dan alatan untuk memudahkan sokongan berbilang bahasa.
Dalam pembangunan Laravel, Penyetempatan Laravel ialah cara popular untuk mencapai sokongan berbilang bahasa. Artikel ini akan memperkenalkan cara menggunakan Penyetempatan Laravel untuk melaksanakan sokongan berbilang bahasa dalam aplikasi Laravel.
Mula-mula, anda perlu memasang komponen penyetempatan laravel. Anda boleh menggunakan komposer untuk memasang:
composer require "laravelcollective/html":"^5.8.0" php artisan vendor:publish --tag=laravel-errors --force
Kemudian, anda perlu mencipta fail baharu locale.php di bawah app/config untuk mengkonfigurasi pilihan bahasa yang disokong:
return [ 'locales' => ['en' => 'English', 'zh' => '中文'], 'default_locale' => 'en' ];
Di sini, tatasusunan locales mengandungi semua Pilihan bahasa yang disokong dengan kunci setiap elemen ialah kod bahasa dan nilainya ialah nama bahasa. default_locale menentukan pilihan bahasa lalai.
Seterusnya, anda perlu mencipta fail sumber bahasa yang sepadan untuk setiap bahasa yang disokong. Fail sumber bahasa biasanya mengandungi tatasusunan yang mengandungi semua rentetan setempat yang digunakan dalam tempat itu. Fail ini boleh dibuat dengan cepat menggunakan perintah artisan, seperti yang ditunjukkan di bawah:
php artisan make:lang en php artisan make:lang zh
Ini akan mencipta dua direktori lang, satu untuk bahasa Inggeris dan satu untuk bahasa Cina.
Edit fail sumber bahasa untuk setiap tempat, menambah rentetan setempat khusus untuk tempat itu pada tatasusunan. Contohnya, dalam fail en.php dan zh.php, anda boleh menambah yang berikut:
// en.php return [ "welcome" => "Welcome to our site", "about" => "About Us", "contact" => "Contact Us" ]; // zh.php return [ "welcome" => "欢迎访问我们的网站", "about" => "关于我们", "contact" => "联系我们" ];
Apabila paparan perlu disertakan local Apabila menukar rentetan, anda boleh menggunakan fungsi trans yang disediakan dalam Penyetempatan Laravel. Fungsi trans menerima kunci rentetan setempat dan mengembalikan rentetan setempat yang sepadan. Contohnya, dalam templat bilah, anda boleh menggunakan fungsi trans seperti ini:
<h1>{{ trans('messages.welcome') }}</h1>
Di sini, fungsi trans akan mengembalikan rentetan setempat yang sepadan berdasarkan tempat semasa.
Akhir sekali, anda juga boleh menyediakan fungsi menukar pilihan bahasa dalam aplikasi. Anda boleh mencipta kotak lungsur dalam paparan untuk menogol pilihan bahasa dan menggunakan JavaScript untuk menyerahkan borang supaya pilihan bahasa yang dipilih disimpan ke Sesi Laravel.
<form id="locale-form" method="POST" action="{{ url('locale') }}"> {{ csrf_field() }} <select name="locale" onchange="document.querySelector('#locale-form').submit();"> @foreach (Config::get('locale.locales') as $key => $value) <option value="{{ $key }}" {{ ($key === App::getLocale()) ? ' selected' : '' }}>{{ $value }}</option> @endforeach </select> </form>
Tambahkan kod berikut pada laluan anda untuk mengendalikan permintaan daripada borang pilihan bahasa:
Route::post('locale', function(Request $request) { App::setLocale($request->locale); return redirect()->back(); });
Ini akan mengemas kini pilihan bahasa dalam sesi semasa dan mengubah hala ke halaman sebelumnya.
Kesimpulan
Menggunakan Penyetempatan Laravel bertujuan untuk memudahkan sokongan berbilang bahasa untuk menyetempatkan semua elemen halaman dalam aplikasi Laravel dengan mudah. Langkah-langkah yang dibentangkan dalam artikel ini boleh digunakan sebagai titik permulaan untuk melaksanakan sokongan berbilang bahasa dalam aplikasi Laravel anda. Dalam proses sebenar, pelarasan dan penyesuaian yang sesuai juga boleh dibuat mengikut keperluan aplikasi.
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk menggunakan Penyetempatan Laravel untuk mencapai sokongan berbilang bahasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!