Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hur hanterar Spatie översättningar när både databas- och språkfiler används


Hur hanterar Spatie översättningar när både databas- och språkfiler används


Spatie hanterar översättningar med både databas- och språkfiler främst genom sitt Laravel-translation-laddare-paket, som integreras sömlöst med Laravels infödda översättningssystem.

Hur det fungerar när du använder både databas- och språkfiler

- Paketet låter dig lagra översättningar i databasen med en dedikerad tabell (`Language_Lines '). Varje översättningspost representeras av en "LanguageLine" -modellinstans, som inkluderar:
- `Gruppen ': översättningsgruppen (t.ex." validering "eller" autor ").
- `nyckel ': översättningsnyckeln i gruppen.
- `Text`: En matris som innehar översättningar för olika platser (t.ex.` ['sv' => 'Detta är ett obligatoriskt fält', 'nl' => 'dit är en verplicht veld'] `).

- När du begär en översättning med Laravels vanliga översättningsfunktioner som `trans ()` eller `__ ()`, kontrollerar paketet först databasen för översättningen. Om den hittar en matchande post returnerar den databasversionen.

- Om översättningen inte finns i databasen faller den tillbaka till de traditionella språkfilerna som lagras i Laravels "resurser/lang" -katalog.

- Detta innebär att databasöversättningar åsidosätter språkfilöversättningarna om båda finns för samma nyckel och landskap.

- Paketet stöder båda gruppbaserade översättningar (t.ex. `Validation.Required ') och JSON-översättningar genom att använda ett speciellt gruppnamn`'*'' för JSON-översättningslinjer.

Ytterligare funktioner och beteende

- Paketet cachar grupper av översättningar för att optimera prestanda och minska databasfrågor på upprepade översättningsförfrågningar. Cache ogiltigförklaras när översättningar skapas, uppdateras eller raderas.

- Det är utdragbart: du kan lägga till anpassade översättningsleverantörer (t.ex. YAML, CSV) genom att implementera paketets gränssnitt för översättningslastare, så att översättningar kan laddas från andra källor utöver databas- och språkfilerna.

- Du kan fortsätta använda Laravels standardöversättningshjälpare och bladdirektiv (`@lang`,` trans () `,` __ () `) utan modifiering.

Sammanfattning

Spaties översättningslastare-paket sammanfogar effektivt databaslagrade översättningar med Laravels infödda filbaserade översättningar genom att prioritera databasposter. Detta tillåter dynamisk redigering av översättningar via ett databasstödat användargränssnitt medan du behåller fallback till statiska språkfiler. Integrationen är smidig, vilket kräver minimala ändringar i befintliga översättningssamtal och erbjuder caching och utdragbarhet för fall av avancerad användning [1] [3] [5] [6] [7].

Citeringar:
[1] https://github.com/spatie/laravel-translations-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-learavel-package-to-store-språklinjer-in-the-database
[8] https://laraveldaily.com/lesson/multi-language-laravel/spatie-laravel-translatable