Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Bagaimana spatie menangani terjemahan saat file database dan bahasa digunakan


Bagaimana spatie menangani terjemahan saat file database dan bahasa digunakan


Spatie menangani terjemahan dengan file database dan bahasa terutama melalui paket Laravel-Translation-Loader-nya, yang mengintegrasikan mulus dengan sistem terjemahan asli Laravel.

Cara kerjanya saat menggunakan file database dan bahasa

- Paket memungkinkan Anda untuk menyimpan terjemahan dalam database menggunakan tabel khusus (`language_lines`). Setiap entri terjemahan diwakili oleh contoh model `languageline`, yang meliputi:
- `Group`: Grup Terjemahan (mis.," Validasi "atau" auth ").
- `Key`: Kunci terjemahan dalam grup.
- `text`: Suatu terjemahan yang memegang array untuk daerah yang berbeda (mis.,` ['en' => 'Ini adalah bidang yang diperlukan', 'nl' => 'DIT adalah een verplicht veld'] `).

- Ketika Anda meminta terjemahan menggunakan fungsi terjemahan Laravel yang biasa seperti `trans ()` atau `__ ()`, paket pertama -tama memeriksa database untuk terjemahan. Jika menemukan entri yang cocok, ia mengembalikan versi database.

- Jika terjemahan tidak ditemukan dalam database, itu jatuh kembali ke file bahasa tradisional yang disimpan di direktori Laravel's `Sumber/Lang`.

- Ini berarti terjemahan basis data mengganti terjemahan file bahasa jika keduanya ada untuk kunci dan lokal yang sama.

- Paket mendukung kedua terjemahan berbasis grup (mis., `Validasi.Required`) dan terjemahan JSON dengan menggunakan nama grup khusus` '*' `untuk baris terjemahan JSON.

Fitur dan perilaku tambahan

- Paket cache grup terjemahan untuk mengoptimalkan kinerja, mengurangi kueri database pada permintaan terjemahan berulang. Cache tidak valid saat terjemahan dibuat, diperbarui, atau dihapus.

- Dapat diperpanjang: Anda dapat menambahkan penyedia terjemahan khusus (mis., YAML, CSV) dengan mengimplementasikan antarmuka paket `translationLoader, yang memungkinkan terjemahan dimuat dari sumber lain di luar database dan file bahasa.

- Anda dapat terus menggunakan pembantu terjemahan default Laravel dan arahan blade (`@lang`,` trans () `,` __ () `) tanpa modifikasi.

Ringkasan

Paket Loader Terjemahan Spatie secara efektif menggabungkan terjemahan yang disimpan database dengan terjemahan berbasis file asli Laravel dengan memprioritaskan entri basis data. Ini memungkinkan pengeditan terjemahan yang dinamis melalui UI yang didukung database sambil mempertahankan fallback ke file bahasa statis. Integrasi lancar, membutuhkan perubahan minimal pada panggilan terjemahan yang ada, dan menawarkan caching dan ekstensibilitas untuk kasus penggunaan lanjutan [1] [3] [5] [6] [7].

Kutipan:
[1] https://github.com/spatie/laravel-translation-loader
[2] https://spatie.be/docs/laravel-translatable/v6/introduction
[3] https://laravel-news.com/translation-loader-package
[4] https://github.com/spatie/laravel-translatable
[5] https://www.laravelblogs.com/courses/multi-language-laravel/spatie-laravel-translation-loader
[6] https://packagist.org/packages/spatie/laravel-translation-loader
[7] https://freek.dev/593-a-laravel-package-to-store-language-lines-in-the-database
[8] https://laraveldaily.com/lesson/multi-language-laravel/spatie-laravel-translatable