„Spatie“ tvarko vertimus tiek su duomenų baze, tiek kalbų failais, pirmiausia per jos „Laravel-Transliation-Loader“ paketą, kuris sklandžiai integruoja su „Laravel“ vietine vertimo sistema.
Kaip tai veikia naudojant tiek duomenų bazę, tiek kalbų failus
- Paketas leidžia saugoti vertimus duomenų bazėje naudojant specialią lentelę (`theal_lines`). Kiekvienas vertimo įrašas vaizduoja „kalbų linijos“ modelio pavyzdys, į kurį įeina:
- „Grupė“: vertimo grupė (pvz., „Patvirtinimas“ arba „Auth“).
- `Key`: vertimo raktas grupėje.
- „Tekstas“: Masyvo laikymo vertimai skirtingoms vietovėms (pvz., `['en' => 'Tai yra būtinas laukas', 'nl' => 'dit yra een verplicht Veld']` `).
- Kai prašote vertimo naudodami įprastas „Laravel“ vertimo funkcijas, tokias kaip „trans ()` arba `__ ()“, paketas pirmiausia patikrina vertimo duomenų bazę. Jei jis randa atitinkamą įrašą, jis grąžina duomenų bazės versiją.
- Jei vertimo nerasta duomenų bazėje, jis grįžta prie tradicinių kalbų failų, saugomų „Laravel“ išteklių/Lang` kataloge.
- Tai reiškia, kad duomenų bazių vertimai nepaiso kalbos failų vertimų, jei abu egzistuoja tam pačiam raktui ir lokalei.
- Pakuotė palaiko tiek grupinius vertimus (pvz., „Patvirtinimą.rientuota“), tiek JSON vertimus, naudojant specialų grupės pavadinimą „*“ JSON vertimo eilutėms.
papildomos funkcijos ir elgesys
- Pakuotė talpina vertimų grupes, kad optimizuotų našumą, sumažindamos duomenų bazių užklausas pakartotinėse vertimo užklausose. Talpykla negalioja, kai sukuriami, atnaujinami ar ištrinami vertimai.
- Tai išplečiama: galite pridėti pasirinktinių vertimo teikėjų (pvz., YAML, CSV), įdiegdami paketo „Vertimavimo apkrovos“ sąsają, leisdami vertimus įkelti iš kitų šaltinių, esančių už duomenų bazės ir kalbos failų.
- Galite toliau naudoti „Laravel“ numatytųjų vertimo pagalbininkų ir „Blade“ direktyvas (`@Lang`,` trans () `,` __ () `) be modifikavimo.
Santrauka
„Spatie“ vertimo krautuvo paketas efektyviai sujungia duomenų bazės saugomus vertimus su „Laravel“ vietiniais failais pagrįstais vertimais, teikiant pirmenybę duomenų bazės įrašams. Tai leidžia dinamiškai redaguoti vertimų per duomenų bazės pagrįstą vartotojo sąsają, išlaikant atsarginius ir statinių kalbos failus. Integracija yra sklandi, todėl reikia minimalių esamų vertimo skambučių pakeitimų ir siūlo talpyklos kaupimą ir išplėtimą pažangių naudojimo atvejams [1] [3] [5] [6] [7].
Citatos:
[1] https://github.com/spatie/laravel-transliation-loader
[2] https://patie.be/docs/laravel-translatable/v6/introduction
[3] https://laravel-news.com/transliation-loader-package
[4] https://github.com/spatie/laravel-translatable
[5] https://www.laravelsblogs.com/courses/multi-language-laravel/spatie-laravel-transliation-loader
[6] https://packagist.org/packages/spatie/laravel-transliation-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