Spatie obravnava prevode z bazo podatkov in jezikovnimi datotekami predvsem s svojim paketom Laravel-Translation-Loader, ki se brezhibno integrira z Laravel-jevim domačim prevajalskim sistemom.
Kako deluje pri uporabi datotek baze podatkov in jezikov
- Paket vam omogoča shranjevanje prevodov v bazo podatkov s pomočjo namenske tabele (`jezikovni_lines`). Vsak vnos prevoda je predstavljen z modelom "jezikovnega", ki vključuje:
- `Group`: prevajalska skupina (npr. Validacija" ali "auth").
- `Key`: Prevajalni ključ v skupini.
- `text`: matrika, ki vsebuje prevode za različne kraje (npr.` ['en' => 'To je potrebno polje', 'nl' => 'dit je een verplicht veld'] `).
- Ko zahtevate prevod z običajnimi prevodnimi funkcijami Laravela, kot je `trans ()` ali `__ ()`, paket najprej preveri bazo podatkov za prevod. Če najde ustrezen vnos, vrne različico baze podatkov.
- Če prevoda ne najdemo v bazi podatkov, se vrne v tradicionalne jezikovne datoteke, shranjene v imeniku Resources/Lang`.
- To pomeni, da prevodi baze podatkov preglasijo prevode jezikovnih datotek, če obstajata za isti ključ in lokal.
- Paket podpira prevode, ki temeljijo na skupini (npr. "Validaration.required`) in JSON prevodov z uporabo posebnega imena skupine"**"za JSON prevajalske vrstice.
Dodatne funkcije in vedenje
- Paketni predpomni skupine prevodov za optimizacijo zmogljivosti, zmanjšanje poizvedb baze podatkov na večkratnih zahtevah za prevajanje. Cache je razveljavljen, ko se prevodi ustvarijo, posodabljajo ali izbrišejo.
- To je razširljivo: dodajate lahko ponudnike prevajalcev po meri (npr. YAML, CSV) z implementacijo vmesnika paketa `prevajalca, ki omogoča, da se prevodi naložijo iz drugih virov, ki presegajo datoteke baze in jezikovne datoteke.
- Brez spreminjanja lahko nadaljujete z uporabo privzetih prevodov in direktiv o rezilih (@@Lang`, `trans ()`, `__ ()`).
Povzetek
Paket Spatiejevega prevoda nalaganje učinkovito združuje prevode, ki jih hrani baza podatkov z Laravelovimi prevodi na osnovi datotek z prednostnimi vnosi baze podatkov. To omogoča dinamično urejanje prevodov prek uporabniškega vmesnika, ki ga podpira baza podatkov, hkrati pa ohrani povratne datoteke v statični jezik. Integracija je gladka, zahteva minimalne spremembe obstoječih prevajalskih klicev in ponuja predpomnjenje in razširljivost za primere napredne uporabe [1] [3] [5] [6] [7].
Navedbe:
[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.lavelblogs.com/courses/multi-language-lavel/spatie-lavelavel-translation-loader
[6] https://packagist.org/packages/spatie/laravel-translation-loader
[7] https://freek.dev/593-a-lavel-package-to-store-language-lines-in-the-Database
[8] https://laraveldaily.com/lesson/multi-language-lavel/spatie-lavel-translatable