Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kako Spatie obravnava prevode, ko se uporabljajo tako baze podatkov kot jezikovne datoteke


Kako Spatie obravnava prevode, ko se uporabljajo tako baze podatkov kot jezikovne datoteke


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