Localization - Bahasa

rujukan : https://laravel.com/docs/11.x/localization#publishing-the-language-files

Setup localization

Untuk membolehkan aplikasi laravel menggunakan pelabagi bahasa, kita boleh memasang package localization menggunakan arahan php artisan di bawah:

php artisan lang:publish

Tetapan bahasa default disimpan di fail config/app.php. Walau bagaimanapun, anda boleh menukar tetapan ini di dalam fail .env menggunakan variable APP_LOCALE=ms untuk menjadikan bahasa melayu sebagai bahasa default. 

untuk menukar bahasa semasa pengguna membuat pilihan, gunakan 

App::setLocale($locale);

di bawah adalah contoh code pada routes/web.php

use Illuminate\Support\Facades\App; 
Route::get('/greeting/{locale}', function (string $locale) { 
if (! in_array($locale, ['en', 'es', 'fr'])) { 
abort(400); 
} 
App::setLocale($locale); 
// ... 
});


Membuat kamus bahasa

untuk contoh ini, kita akan menggunakan kaedah pertama, iaitu menggunkan fail terjemahan.

lihat ke direktori lang, anda akan melihat 1 folder bernama 'en'. folder ini adalah folder asal dari Laravel. di dalam folder ini, terdapat beberapa fail yang mengandungi teks. anda boleh mengasingkan nama fail mengikut penggunaan untuk memudahkan rujukan. sebagai contoh, buat fail 'registration.php' untuk meletakkan semua teks berkaitan page Pendaftaran.

letakkan teks anda dalam bentuk array seperti di bawah:

<?php
// lang/en/registration.php 

return [

    'welcome' => 'Welcome to our application!',
    'tajuk_daftar' => 'New Registration',

];

untuk membuat fail bahasa melayu, buat folder 'ms' di dalam folder 'lang', dan pastikan semua fail di dalam folder 'en' ada dalam folder 'ms'. dalam contoh ini, edit fail 'registration.php' dan tukar teks yang terlibat seperti di bawah:

<?php
// lang/ms/registration.php

return [

    'welcome' => 'Selamat datang ke aplikasi kami!',
    'tajuk_daftar' => 'Pendaftaran Baru'

];

untuk memaparkan teks tersebut di dalam page, gunakan arahan blade seperti di bawah:

{{ __('registration.welcome') }}

registration -> adalah nama fail dalam folder 'lang'

welcome -> adalah array key untuk teks yang hendak dipaparkan.

sekiranya teks anda mempunyai parameter, anda boleh menggunakan placeholder yang didahului dengan tanda ':'. sebagai contoh, :nama untuk teks yang memaparkan nama pengguna. berikut adalah contoh penggunaan.

'welcome' => 'Welcome, :name',

cara menggunakannya adalah seperti berikut:

echo __('registration.welcome', ['name' => 'dayle']);

sila ambil maklum, jika anda placholder anda menggunakan semua huruf besar, atau huruf pertama adalah huruf besar, laravel akan auto convert nilai yang anda hantar mengikut format tersebut. sebagai contoh(perhatikan placeholder dan comment): 

'welcome' => 'Welcome, :NAME', // Welcome, DAYLE
'goodbye' => 'Goodbye, :Name', // Goodbye, Dayle