Spatie apstrādā tulkojumus gan ar datu bāzes, gan valodas failiem galvenokārt caur savu laravel-tulkošanas-iekrāvēja paketi, kas nemanāmi integrējas ar Laravelas vietējo tulkošanas sistēmu.
Kā tas darbojas, izmantojot gan datu bāzes, gan valodas failus
- Komplekts ļauj saglabāt tulkojumus datu bāzē, izmantojot speciālu tabulu (`language_lines`). Katru tulkošanas ierakstu attēlo “Languageline” modeļa instance, kas ietver:
- `Grupa`: tulkošanas grupa (piemēram," validācija "vai" Auth ").
- `Key`: tulkošanas atslēga grupā.
- `teksts`: masīvs, kurā ir tulkojumi dažādiem lokiem (piemēram,` ['en' => 'Šis ir nepieciešamais lauks', 'nl' => 'dit ir een verplicht veld'] `).
- Kad jūs pieprasāt tulkojumu, izmantojot Laravelas parastās tulkošanas funkcijas, piemēram, `trans ()` vai `__ ()`, pakete vispirms pārbauda tulkošanas datu bāzi. Ja tas atrod atbilstošu ierakstu, tas atgriež datu bāzes versiju.
- Ja tulkojums nav atrodams datu bāzē, tas atgriežas tradicionālajos valodas failos, kas glabājas Laravel `Resursi/Lang` direktorijā.
- Tas nozīmē, ka datu bāzes tulkojumi ignorē valodas failu tulkojumus, ja abi pastāv vienai un tai pašai atslēgai un lokalizācijai.
- Pakete atbalsta gan grupu balstītus tulkojumus (piemēram, “validation.required`), gan JSON tulkojumus, izmantojot īpašu grupas nosaukumu` '*`JSON tulkošanas līnijām.
Papildu funkcijas un uzvedība
- Paketes kešatmiņas tulkošanas grupas, lai optimizētu veiktspēju, samazinot datu bāzes vaicājumus atkārtotos tulkošanas pieprasījumos. Kešatmiņa tiek nederīga, kad tulkojumi tiek izveidoti, atjaunināti vai izdzēsti.
- Tas ir pagarināms: jūs varat pievienot pielāgotus tulkošanas pakalpojumu sniedzējus (piemēram, YAML, CSV), ieviešot paketes “tulkošanas ielādēšanu” interfeisu, ļaujot tulkojumus ielādēt no citiem avotiem ārpus datu bāzes un valodas failiem.
- Jūs varat turpināt izmantot Laravel noklusējuma tulkošanas palīgus un asmeņu direktīvas (`@lang`,` trans () `,` __ () `) bez modifikācijas.
kopsavilkums
Spatie tulkošanas iekrāvēja pakete efektīvi apvieno datu bāzes saglabātos tulkojumus ar Laravel vietējiem failiem balstītajiem tulkojumiem, prioritizējot datu bāzes ierakstus. Tas ļauj dinamiski rediģēt tulkojumus, izmantojot datu bāzi atbalstītu lietotāja saskarni, vienlaikus saglabājot kritienu uz statisko valodu failiem. Integrācija ir vienmērīga, un tai ir nepieciešamas minimālas izmaiņas esošajos tulkošanas zvanos un piedāvā kešatmiņas saglabāšanu un paplašināšanu progresīvu lietošanas gadījumiem [1] [3] [5] [6] [7].
Atsauces:
[1] https://github.com/spatie/laravel-translation-Loader
[2] https://spatie.be/docs/laravel-translatable/v6/introduction
[3] https://laravel-news.com/translation-loader-backage
[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