Laravel adalah cara ampuh yang memungkinkan pengembang membuat situs web multibahasa. Dengan menerapkan pelokalan web di Laravel , Anda dapat memberikan pengalaman pengguna yang dipersonalisasi bagi pengunjung dari latar belakang bahasa yang berbeda, yang pada akhirnya memperluas jangkauan dan meningkatkan keterlibatan pengguna.
Kami akan memandu Anda dalam menerapkan pelokalan di aplikasi Laravel Anda dan memperkenalkan Anda pada alat yang dapat menyederhanakan dan meningkatkan upaya pelokalan Anda!
Mengapa Anda harus melokalkan situs web Laravel ?
Berikut adalah beberapa alasan penting mengapa Anda harus melokalkan situs web Laravel Anda.
- Jangkau audiens global: Dengan melokalkan Laravel , Anda dapat memperluas jangkauan aplikasi Anda ke audiens internasional. Hal ini memungkinkan pengguna dari berbagai negara dan latar belakang bahasa untuk memahami dan berinteraksi dengan konten Anda.
- Meningkatkan pengalaman pengguna: Pelokalan memungkinkan pengguna berinteraksi dengan aplikasi dalam bahasa asli mereka, yang secara signifikan meningkatkan pengalaman pengguna. Hal ini dapat meningkatkan tingkat keterlibatan, mengurangi rasio pentalan, dan meningkatkan konversi.
- Keunggulan kompetitif: Dalam pasar global yang kompetitif, menawarkan aplikasi dalam berbagai bahasa dapat memberikan keunggulan signifikan dibandingkan pesaing. Ini menunjukkan komitmen Anda terhadap pasar internasional dan dapat membantu Anda memasuki pasar baru dengan lebih efektif.
- Meningkatkan SEO: Situs web yang terlokalisasi dengan baik cenderung memiliki peringkat lebih baik di mesin pencari untuk pencarian dalam bahasa tertentu. Ini dapat meningkatkan traffic blog Anda dan visibilitas online di berbagai pasar dengan terjemahan multibahasa.
Persyaratan untuk lokalisasi Laravel multibahasa
Ada beberapa persyaratan dan langkah yang perlu dipertimbangkan ketika mengimplementasikan lokalisasi multibahasa di Laravel .
- Untuk mendapatkan fitur pelokalan terbaru, pastikan Anda menggunakan Laravel versi terbaru (misal versi 10.x).
- Pemahaman dasar tentang PHP dan framework Laravel akan sangat membantu dalam proses implementasi.
- Siapkan lingkungan pengembangan lokal atau server yang mendukung Laravel , termasuk server web dan database.
- Tentukan bahasa yang akan didukung aplikasi Anda sejak awal.
Terjemahan Laravel sederhana
Setelah memahami persyaratan apa saja yang harus dipenuhi sebelum menerjemahkan aplikasi atau web Laravel , kami akan memberikan beberapa langkah untuk menerjemahkan Laravel secara sederhana.
Untuk melakukannya, buka file tampilan yang ingin Anda lokalkan, misalnya resources/views/welcome.blade.php. Kemudian ganti tag body dengan kode berikut.
Welcome to Linguise website!
Seperti yang Anda lihat, teks di atas saat ini ditulis langsung di dalam kode. Hal ini kurang efisien dan menyulitkan penerjemahan website ke berbagai bahasa (internasionalisasi).
Kami akan membuat teks di atas lebih fleksibel sehingga dapat dengan mudah diadaptasi ke berbagai bahasa. Laravel menyediakan fitur yang sangat membantu untuk ini; sistem lokalisasi. Langkah pertama, ganti teks yang ada dengan kode berikut.
{{ __('Welcome to Linguise website!') }}
Laravel akan menampilkan teks di atas secara default dan mencari terjemahannya jika pengguna memilih bahasa selain bahasa Inggris. Dalam hal ini, bahasa Inggris akan digunakan sebagai bahasa default aplikasi.
Menyiapkan lokal di web multibahasa Laravel
Tapi bagaimana Laravel menentukan bahasa saat ini atau mengetahui bahasa apa saja yang tersedia di aplikasi? Ia memeriksa pengaturan lokal di file config/app.php. Buka file ini dan cari dua kunci berikut.
/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/
'locale' => 'en',
/*
|--------------------------------------------------------------------------
| Application Fallback Locale
|--------------------------------------------------------------------------
|
| The fallback locale determines the locale to use when the current one
| is not available. You may change the value to correspond to any of
| the language folders that are provided through your application.
|
*/
'fallback_locale' => 'en',
Penjelasan di atas kuncinya harus jelas. Singkatnya, kunci lokal menyimpan lokal default untuk aplikasi Anda (jika tidak ada lokal lain yang ditentukan dalam kode). Fallback_locale diaktifkan jika lokal yang tidak ada diminta di aplikasi Anda.
Sekarang, mari tambahkan kunci baru ke file ini untuk memberikan daftar semua lokal yang didukung.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
Saat ini, kami telah mencoba web Laravel yang mendukung tiga bahasa, yaitu Inggris, Italia, dan Prancis.
Ikhtisar file terjemahan Laravel
Di Laravel , seperti di banyak kerangka kerja lainnya, terjemahan untuk berbagai bahasa disimpan dalam file terpisah. Dua metode digunakan untuk mengatur file terjemahan ini.
Metode lama menyimpan file dalam struktur berikut: resources/lang/{en,fr,it}/{myfile.php}. Metode yang lebih baru menggunakan file JSON, seperti resources/lang/{fr.json, it.json}. Artikel ini akan berfokus pada metode yang lebih baru, meskipun prinsipnya serupa dengan metode lama, selain perbedaan dalam cara penamaan dan akses kunci terjemahan.
Untuk bahasa dengan variasi regional, Anda harus memberi nama direktori atau file bahasa sesuai dengan standar ISO 15897. Misalnya, bahasa Inggris British akan diberi nama en_GB, bukan en-gb.
Informasi Umum
Di Laravel , seperti banyak kerangka kerja lainnya, terjemahan untuk berbagai bahasa disimpan dalam file terpisah. Ada dua metode utama untuk mengatur file terjemahan Laravel .
- Pendekatan lama melibatkan penyimpanan file di bawah jalur: resources/lang/{en,fr,it}/{myfile.php}.
- Pendekatan modern menggunakan file resources/lang/{fr.json, it.json}.
Artikel ini akan berkonsentrasi pada metode kedua, meskipun prinsipnya dapat diterapkan pada keduanya (dengan variasi dalam cara penamaan dan akses kunci terjemahan).
Untuk bahasa yang berbeda-beda di setiap wilayah, disarankan untuk memberi nama direktori/file bahasa sesuai dengan standar ISO 15897. Misalnya, bahasa Inggris British akan dinotasikan sebagai en_GB, bukan en-gb.
Membuat file terjemahan Laravel
Setelah mengkonfigurasi lokal untuk aplikasi kita, kita dapat melanjutkan untuk menerjemahkan pesan selamat datang default kita.
Mari kita mulai dengan membuat file pelokalan baru dalam format JSON di dalam direktori resources/lang. Pertama, kita akan membuat file resources/lang/it.json dan mengisinya dengan terjemahan yang sesuai.
{
"Welcome to Linguise website!": "Benvenuti nel sito web di Linguise!"
}
Selanjutnya, tambahkan file resources/lang/fr.json.
{
"Welcome to Linguise website!": "Bienvenue sur le site de Linguise"
}
Seperti yang dapat Anda amati, kami secara konsisten mereferensikan pesan default dari file selamat datang.blade.php ({{ __('Selamat datang di situs web Linguise !') }}). Tidak perlu membuat file en.json, karena Laravel secara otomatis mengenali bahwa pesan default dalam bahasa Inggris.
Mengatur pengalih bahasa di aplikasi multibahasa Laravel
Terlebih lagi, Laravel belum diatur untuk mengganti bahasa lokal, jadi untuk saat ini, kami akan menangani terjemahannya langsung di dalam rute. Ubah rute selamat datang default di dalam file rute/web.php seperti ini.
Route::get('/{locale?}', function ($locale = null) {
if (isset($locale) && in_array($locale, config('app.available_locales'))) {
app()->setLocale($locale);
}
return view('welcome');
});
Dalam hal ini, kami mengambil parameter GET lokal opsional dan mengatur lokal saat ini berdasarkan parameter tersebut (jika lokal yang diminta didukung).
Sekarang, Anda dapat mengunjungi situs web Anda dan menyertakan bahasa apa pun yang didukung sebagai segmen pertama di URL. Misalnya, menavigasi ke localhost/it atau localhost/fr akan menampilkan konten yang dilokalkan. Jika Anda tidak menentukan lokal atau memilih salah satu yang tidak didukung, Laravel akan menggunakan bahasa Inggris (en) secara default.
Middleware lokalisasi untuk Laravel
Menyertakan lokasi di setiap URL mungkin tidak ideal dan dapat mengganggu daya tarik visual situs. Untuk mengatasi hal ini, kami akan menyiapkan pengalih bahasa dan memanfaatkan sesi pengguna untuk menampilkan konten terjemahan. Anda dapat membuat middleware baru di file app/Http/Middleware/Localization.php, atau membuatnya dengan menjalankan perintah artisan make:middleware Localization.
Kemudian, tambahkan kode berikut di dalamnya.
Middleware ini akan mengarahkan Laravel untuk menggunakan lokasi yang dipilih oleh pengguna jika opsi ini ada dalam sesi tersebut.
Karena kita memerlukan operasi untuk dijalankan pada setiap permintaan, tambahkan operasi tersebut ke tumpukan middleware default di app/Http/Kernel.php untuk grup middleware web.
/**
* The application's route middleware groups.
*
* @var array>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\Localization::class, // <--- add this
],
Memodifikasi rute
Selanjutnya, tentukan rute untuk mengubah lokal di file rute/web.php. Kami menggunakan rute penutupan di sini, tetapi Anda dapat menempatkan kode yang sama di dalam pengontrol jika Anda mau.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Selain itu, hapus peralihan lokal yang sebelumnya ditambahkan ke rute selamat datang default. Rute root Anda sekarang akan terlihat seperti ini.
Route::get('/', function () {
return view('welcome');
});
Setelah ini selesai, pengguna hanya dapat mengganti bahasa aktif dengan mengunjungi localhost/bahasa/{locale}. Lokal yang dipilih akan disimpan dalam sesi tersebut, dan pengguna akan diarahkan kembali ke halaman sebelumnya (seperti yang ditangani oleh middleware Lokalisasi).
Untuk mengujinya, buka localhost/bahasa/itu (dengan asumsi cookie sesi aktif di browser Anda), dan Anda akan melihat konten yang diterjemahkan. Anda dapat menavigasi situs atau menyegarkan halaman, dan bahasa yang dipilih akan tetap berlaku.
Implementasi peralihan bahasa
Sekarang, kita perlu memberi pengguna opsi yang dapat diklik untuk mengubah pengalih bahasa web Laravel daripada mengharuskan mereka memasukkan kode lokal di URL secara manual. Untuk mencapai hal ini, buat pengalih bahasa sederhana. Tambahkan file baru di resources/views/partials/lingual_switcher.blade.php dan masukkan kode berikut.
@foreach($available_locales as $locale_name => $available_locale)
@if($available_locale === $current_locale)
{{ $locale_name }}
@else
{{ $locale_name }}
@endif
@endforeach
Untuk menyertakan pengalih bahasa yang baru dibuat dalam tampilan “selamat datang”, cukup tambahkan baris berikut ke file selamat datang.blade.php tempat Anda ingin pengalih tersebut muncul.
@include('partials/language_switcher')
{{ __('Welcome to our website!') }}
Buka file app/Providers/AppServiceProvider.php dan tambahkan kode berikut dalam metode boot() untuk membagikan lokal saat ini dengan semua tampilan saat pengalih bahasa digunakan
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
view()->composer('partials.language_switcher', function ($view) {
$view->with('current_locale', app()->getLocale());
$view->with('available_locales', config('app.available_locales'));
});
}
Fitur terjemahan lanjutan di Laravel PHP
Pada pembahasan kali ini selanjutnya kita akan membahas komponen lokalisasi lainnya yaitu tanggal, angka, dan mata uang. Berikut langkah-langkahnya.
Tanggal yang dilokalkan di Laravel
Menangani tanggal dan waktu sangat penting dalam proses lokalisasi. Laravel menggunakan Carbon untuk mengatur tanggal dan waktu. Inilah cara Anda menggunakan Carbon untuk menampilkan tanggal yang dilokalkan.
settings(
[
'locale' => app()->getLocale(),
]
);
// LL is macro placeholder for MMMM D, YYYY (you could write same as dddd, MMMM D, YYYY)
$dateMessage = $today->isoFormat('dddd, LL');
return view('welcome', [
'date_message' => $dateMessage
]);
});
Kode ini menetapkan lokal Karbon berdasarkan lokal aplikasi saat ini dan memformat tanggalnya sesuai dengan itu.
Untuk menampilkan tanggal yang dilokalkan dalam tampilan:
{{ __('Welcome to our website, :Name', ['name' => ‘Johb’]) }}
{{ trans_choice('{0} There :form :count apples|{1} There :form just :count apple|[2,19] There :form :count apples', 1, ['form' => 'is']) }}
{{ $date_message }}
Memformat angka dan mata uang
Setiap negara mempunyai cara berbeda untuk memformat angka. Misalnya.
- Perancis → 123 123,12
- Jerman → 123.123,12
- Jepang → 123.123
Untuk mengakomodasi variasi ini pada aplikasi Laravel Anda, Anda dapat menggunakan NumberFormatter.
Anda juga dapat mengeja angka dalam bahasa tertentu.
Berikut adalah mata uangnya. Untuk lokal Perancis (`fr`), mata uang akan ditampilkan dalam euro (€), sedangkan untuk lokal AS (`en_US`), akan ditampilkan dalam dolar AS ($).
Solusi alternatif lokalisasi Laravel dengan Linguise
Setelah memahami langkah-langkah lokalisasi Laravel seperti yang dijelaskan pada artikel, proses ini melibatkan banyak langkah yang mengharuskan pengguna untuk memahami kode program Laravel secara mendalam.
Hal ini tentu dapat menyulitkan pengguna pemula yang ingin melokalisasi aplikasinya. Oleh karena itu, diperlukan solusi yang lebih inovatif yang mampu melakukan penerjemahan dengan cepat, mendukung lokalisasi, dan hanya memerlukan beberapa langkah sederhana untuk diterapkan.
Salah satu solusi yang menjanjikan adalah Linguise . Linguise menawarkan pendekatan yang lebih mudah dan efisien untuk lokalisasi Laravel tanpa memerlukan pengetahuan coding yang mendalam. Fitur utama Linguise meliputi.
- Integrasi yang mudah dengan Laravel
- Sesuaikan pengalih bahasa tanpa pengkodean
- Terjemahan gambar
- Editor langsung untuk menyesuaikan terjemahan dengan konteks lokal
- Terjemahan dinamis untuk konten yang dihasilkan secara dinamis
- Optimasi SEO untuk versi multi-bahasa
Langkah-langkah install Linguise di website Laravel juga bisa dilakukan dengan mudah. Berikut penjelasan singkatnya.
- Buat akun Linguise (gunakan uji coba gratis 30 hari secara gratis)
- Daftarkan domain web Laravel Anda dan masukkan beberapa informasi. Anda akan mendapatkan kunci API.
- Upload dan sambungkan script terjemahan Linguise ke folder Laravel yang Anda dapatkan.
- Atur URL bahasa di file htaccess.
- Masukkan skrip pengalih bahasa di bagian atas HTML Anda.
- Sesuaikan pengalih bahasa sesuai kebutuhan
- Pengalih bahasa akan muncul di web Laravel , dan konten dapat diterjemahkan secara otomatis.
Bagaimana? Dengan Linguise , Anda hanya perlu mendaftar dan mengaktifkan, dan pengalih bahasa akan muncul. Setelah itu, Anda bebas melakukan pelokalan, misalnya melalui live editor, menerjemahkan media, gambar, dan sebagainya.
Kesimpulan
Lokalisasi Laravel adalah fitur canggih yang memungkinkan pengembang membuat situs web dan aplikasi multibahasa. Seperti yang telah kita lihat, proses lokalisasi Laravel bawaan melibatkan beberapa langkah dan memerlukan pemahaman yang baik tentang kerangka kerja. Ini bisa menjadi tantangan bagi pemula atau mereka yang mencari solusi lebih cepat.
Alat seperti Linguise memberikan alternatif inovatif bagi mereka yang mencari pendekatan yang lebih efisien. Solusi ini menawarkan kemampuan terjemahan yang cepat, integrasi yang mudah, dan fitur yang mudah digunakan seperti pengalih bahasa yang dapat disesuaikan dan terjemahan gambar. Sekarang, buat akun Linguise dan nikmati fitur kami untuk melokalkan Laravel !