Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hvordan håndterer spatie -oversættelser, når både database- og sprogfiler bruges


Hvordan håndterer spatie -oversættelser, når både database- og sprogfiler bruges


Spatie håndterer oversættelser med både database- og sprogfiler primært gennem sin laravel-translation-loader-pakke, som integreres problemfrit med Laravels oprindelige oversættelsessystem.

Hvordan det fungerer, når du bruger både database- og sprogfiler

- Pakken giver dig mulighed for at gemme oversættelser i databasen ved hjælp af en dedikeret tabel (`Language_Lines`). Hver oversættelsespost er repræsenteret af en 'Languageline' modelinstans, der inkluderer:
- `gruppe`: Oversættelsesgruppen (f.eks." Validering "eller" Author ").
- `nøgle`: Oversættelsestasten i gruppen.
- `tekst ': En matrix, der holder oversættelser til forskellige lokaliteter (f.eks.' ['en' => 'dette er et krævet felt', 'nl' => 'dit er en verplicht Veld']`).

- Når du anmoder om en oversættelse ved hjælp af Laravels sædvanlige oversættelsesfunktioner som `trans ()` eller `__ ()`, kontrollerer pakken først databasen for oversættelsen. Hvis den finder en matchende post, returnerer den databaseversionen.

- Hvis oversættelsen ikke findes i databasen, falder den tilbage til de traditionelle sprogfiler, der er gemt i Laravels 'ressourcer/lang` -bibliotek.

- Dette betyder, at databaseoversættelser tilsidesætter sprogfiloversættelser, hvis begge findes for den samme nøgle og lokalitet.

- Pakken understøtter både gruppebaserede oversættelser (f.eks. `Validation.Required ') og JSON-oversættelser ved hjælp af et specielt gruppenavn`'*'til JSON-oversættelseslinjer.

Yderligere funktioner og opførsel

- Pakke cacher grupper af oversættelser for at optimere ydelsen, hvilket reducerer databaseforespørgsler ved gentagne oversættelsesanmodninger. Cache er ugyldigt, når oversættelser oprettes, opdateres eller slettes.

- Det kan udvides: Du kan tilføje brugerdefinerede oversættelsesudbydere (f.eks. YAML, CSV) ved at implementere pakken 'translationLoader` -interface, hvilket gør det muligt at indlæse oversættelser fra andre kilder ud over databasen og sprogfilerne.

- Du kan fortsætte med at bruge Laravels standardoversættelseshjælpere og bladdirektiver (`@lang`,` trans () `,` __ () `) uden ændring.

Resume

Spaties oversættelseslæsserpakke fusionerer effektivt database-gemte oversættelser med Laravels oprindelige filbaserede oversættelser ved at prioritere databaseposter. Dette tillader dynamisk redigering af oversættelser via en database-støttet brugergrænseflade, mens den bevarer tilbagefald til statiske sprogfiler. Integrationen er glat, hvilket kræver minimale ændringer i eksisterende oversættelsesopkald og tilbyder cache og udvidelighed til sager om avanceret brug [1] [3] [5] [6] [7].

Citater:
[1] https://github.com/spatie/laravel-translation-loader
[2] https://spatie.be/docs/laravel-translatable/v6/introduktion
[3] https://laravel-news.com/translation-loader-package
[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-butik-sprog-line-in-the-database
[8] https://laraveldaily.com/lesson/multi-language-laravel/spatie-laravel-translatable