Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon In che modo gli spatie gestiscono le traduzioni quando vengono utilizzati sia i file di database che


In che modo gli spatie gestiscono le traduzioni quando vengono utilizzati sia i file di database che


Spatie gestisce le traduzioni con i file di database e linguistici principalmente attraverso il suo pacchetto di caricatore di traslazione Laravel, che si integra perfettamente con il sistema di traduzione nativo di Laravel.

come funziona quando si utilizzano sia i file di database che

- Il pacchetto consente di archiviare le traduzioni nel database utilizzando una tabella dedicata (`lingua_lines`). Ogni voce di traduzione è rappresentata da un'istanza del modello `Lagingeline`, che include:
- `Group`: The Translation Group (ad es." Convalidtion "o" Auth ").
- `Key`: la chiave di traduzione all'interno del gruppo.
- `text`: un array che tiene traduzioni per luoghi diversi (ad esempio,` ['en' => 'Questo è un campo richiesto', 'nl' => 'dit è een Verplicht veld'] `).

- Quando si richiede una traduzione usando le solite funzioni di traduzione di Laravel come `trans ()` o `__ ()`, il pacchetto controlla prima il database per la traduzione. Se trova una voce corrispondente, restituisce la versione del database.

- Se la traduzione non si trova nel database, ricade nei file di lingua tradizionali memorizzati nella directory di `Resources/Lang` di Laravel.

- Ciò significa che le traduzioni del database sostituiscono le traduzioni dei file di lingua se esistono per la stessa chiave e locale.

- Il pacchetto supporta entrambe le traduzioni basate su gruppi (ad es. `Convalid.required`) e JSON Traduzioni usando un nome di gruppo speciale` '*' `per le linee di traduzione JSON.

funzionalità e comportamenti aggiuntivi

- Il pacchetto cache di gruppi di traduzioni per ottimizzare le prestazioni, riducendo le query del database su richieste di traduzione ripetute. La cache viene invalidata quando le traduzioni vengono create, aggiornate o eliminate.

- È estendibile: è possibile aggiungere provider di traduzione personalizzati (ad es. YAML, CSV) implementando l'interfaccia `Translationloader` del pacchetto, consentendo di caricare traduzioni da altre fonti oltre il database e i file di lingua.

- È possibile continuare a utilizzare gli aiutanti di traduzione predefiniti di Laravel e le direttive della lama (`@lang`,` trans () `,` __ () `) senza modifica.

Riepilogo

Il pacchetto del caricatore di traduzione di Spatie unisce efficacemente le traduzioni memorizzate dal database con le traduzioni basate su file native di Laravel dando la priorità alle voci di database. Ciò consente la modifica dinamica delle traduzioni tramite un'interfaccia utente sostenuta dal database, mantenendo il fallback in file di lingua statica. L'integrazione è fluida, che richiede modifiche minime alle chiamate di traduzione esistenti e offre la memorizzazione nella cache ed estensibilità per i casi d'uso avanzati [1] [3] [5] [6] [7].

Citazioni:
[1] https://github.com/spatie/laravel-translation-loader
[2] https://spatie.be/docs/laravel-translable/v6/introduction
[3] https://laravel-news.com/translation-loader-package
[4] https://github.com/spatie/laravel-translable
[5] https://www.laravelblog
[6] https://packagist.org/packages/spatie/laravel-translation-loader
[7] https://freek.dev/593-a-laravel-package-to-porganguage-lines-in-the-database
[8] https://laraveldaily.com/lesson/multi-laravel/spatie-laravel-translable