Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hvordan håndterer Spatie oversettelser når både database- og språkfiler brukes


Hvordan håndterer Spatie oversettelser når både database- og språkfiler brukes


Spatie håndterer oversettelser med både database- og språkfiler først og fremst gjennom sin Laravel-translation-laster-pakke, som integreres sømløst med Laravys innfødte oversettelsessystem.

hvordan det fungerer når du bruker både database- og språkfiler

- Pakken lar deg lagre oversettelser i databasen ved hjelp av en dedikert tabell (`språk_lines`). Hver oversettelsesoppføring er representert av en `languageline` -modellforekomst, som inkluderer:
- `Gruppe`: Oversettelsesgruppen (f.eks." Validering "eller" autorisasjon ").
- `Key`: Oversettelsesnøkkelen i gruppen.
- `Text`: En matrise som holder oversettelser for forskjellige lokaliteter (f.eks. '[' en '=>' dette er et nødvendig felt ',' nl '=>' dit er een Verplicht Veld ']`).

- Når du ber om en oversettelse ved å bruke Laravs vanlige oversettelsesfunksjoner som `trans ()` eller `__ ()`, sjekker pakken først databasen for oversettelsen. Hvis den finner en matchende oppføring, returnerer den databaseversjonen.

- Hvis oversettelsen ikke finnes i databasen, faller den tilbake til de tradisjonelle språkfilene som er lagret i Laravels 'Resources/Lang` -katalogen.

- Dette betyr at databaseoversettelser overstyrer språkfiloversettelser hvis begge eksisterer for samme nøkkel og sted.

- Pakken støtter både gruppebaserte oversettelser (f.eks. `Validation.Required`) og JSON-oversettelser ved å bruke et spesielt gruppenavn` '*' 'for JSON-oversettelseslinjer.

Tilleggsfunksjoner og atferd

- Pakken Caches -grupper av oversettelser for å optimalisere ytelsen, redusere databasespørsmål på gjentatte oversettelsesforespørsler. Cache blir ugyldig når oversettelser opprettes, oppdateres eller slettes.

- Det kan utvides: Du kan legge til tilpassede oversettelsesleverandører (f.eks. YAML, CSV) ved å implementere pakks `TranslationLoader` -grensesnitt, slik at oversettelser kan lastes fra andre kilder utover databasen og språkfilene.

- Du kan fortsette å bruke Laravys standard oversettelseshjelpere og bladdirektiver (`@lang`,` trans () `,` __ () `) uten modifisering.

Sammendrag

Spaties Translation Loader-pakke fusjonerer effektivt database-lagrede oversettelser med Laravys innfødte filbaserte oversettelser ved å prioritere databaseoppføringer. Dette tillater dynamisk redigering av oversettelser via en databasestøttet brukergrensesnitt mens du beholder tilbakeslag til statiske språkfiler. Integrasjonen er jevn, og krever minimale endringer i eksisterende oversettelsesanrop, og tilbyr hurtigbufring og utvidbarhet for avanserte brukssaker [1] [3] [5] [6] [7].

Sitasjoner:
[1] https://github.com/spatie/laravel-translation-loader
[2] https://spatie.be/docs/laravel-translatable/v6/introduksjon
[3] https://laravel-news.com/translation-loader-package
[4] https://github.com/spatie/laravel-translatable
[5] https://www.laravelblogs.com/courses/multi-anguage-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-anguage-laravel/spatie-laravel-translatable