Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ako sa Spatie spracováva preklady, keď sa používajú databázy aj jazykové súbory


Ako sa Spatie spracováva preklady, keď sa používajú databázy aj jazykové súbory


Spatie spracováva preklady s databázovými a jazykovými súbormi predovšetkým prostredníctvom balíka Laravel-Translation-Loader, ktorý sa bez problémov integruje do natívneho prekladacieho systému Laravel.

Ako to funguje pri používaní databázových aj jazykových súborov

- Balík vám umožňuje ukladať preklady do databázy pomocou vyhradenej tabuľky (`Language_lines`). Každá položka prekladu predstavuje inštanciu modelu „Languageline“, ktorá obsahuje:
- `Group`: Skupina prekladu (napr.„ Validácia “alebo„ auth “).
- `Key`: Kľúč prekladu v skupine.
- `Text`: preklady držania poľa pre rôzne lokality (napr. ['en' => 'Toto je požadované pole', 'nl' => 'dit je een verplicht veld']`).

- Keď požiadate o preklad pomocou obvyklých prekladových funkcií Laravel, ako je `trans ()` alebo `__ ()`, balík najskôr skontroluje databázu prekladu. Ak nájde zodpovedajúci záznam, vráti verziu databázy.

- Ak sa preklad nenájde v databáze, spadá späť do tradičných jazykových súborov uložených v adresári Laravel's Resources/Lang`.

- To znamená, že preklady databázy potlačujú preklady jazykových súborov, ak existujú pre rovnaký kľúč a miestne nastavenie.

- Balíček podporuje preklady založené na skupinách (napr. „Validation.Required`) a JSON preklady pomocou špeciálneho názvu skupiny`*'`pre riadky prekladu JSON.

Ďalšie funkcie a správanie

- Balíček ukladá skupiny prekladov na optimalizáciu výkonu, čím sa znižuje databázové dotazy v opakovaných požiadavkách na preklad. Vyrovnávacia pamäť je zneplatnená, keď sú preklady vytvorené, aktualizované alebo odstránené.

- Je to rozšíriteľné: môžete pridať vlastných poskytovateľov prekladu (napr. YAML, CSV) implementáciou rozhrania balíka prekladača, čo umožňuje načítať preklady z iných zdrojov za databázovými a jazykovými súbormi.

- Môžete pokračovať v používaní Laravelových predvolených pomocníkov prekladov a smerníc Blade (`@lang`,` trans () `,` __ () `) bez úpravy.

Zhrnutie

Balík prekladača Spatie's Translation Looker efektívne spája preklady uložené databázou s prekladmi natívnych súborov Laravel tým, že uprednostňujú prioritné položky databázy. To umožňuje dynamickú úpravu prekladov prostredníctvom používateľského rozhrania podporovaného databázou a zároveň ponechať záložné kusy do statických jazykových súborov. Integrácia je plynulá, vyžaduje minimálne zmeny existujúcich prekladových hovorov a ponúka ukladanie do vyrovnávacej pamäte a rozšíriteľnosť pre prípady pokročilého použitia [1] [5] [6] [7].

Citácie:
[1] https://github.com/spatie/laravel-translation-loader
[2] https://spatie.be/docs/laravel-translatable/v6/introdukcia
[3] https://laravel-news.com/translation-loader-package
[4] https://github.com/spatie/laravel-translatable
[5] https://www.laravelblogs.com/courses/multi-manguage-laravel/spatie-laravel-translation-loader
[6] https://packagist.org/packages/spatie/laravel-translation-loader
[7] https://freek.dev/593a-laravel-package-to-store-wanguage-Lines-in-the-database
[8] https://laravaldaily.com/lesson/multi-manguage-laravel/spatie-laravel-translatable