Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hoe gaat spatie om met vertalingen wanneer zowel database- als taalbestanden worden gebruikt


Hoe gaat spatie om met vertalingen wanneer zowel database- als taalbestanden worden gebruikt


Spatie behandelt vertalingen met zowel database- als taalbestanden voornamelijk via zijn laravel-translatie-loaderpakket, dat naadloos integreert met het native vertaalsysteem van Laravel.

hoe het werkt bij het gebruik van zowel database- als taalbestanden

- Met het pakket kunt u vertalingen in de database opslaan met behulp van een speciale tabel (`talen_lines`). Elke vertaalinvoer wordt weergegeven door een modelinstantie `Languageline', die omvat:
- `Group`: de vertaalgroep (bijv." Validatie "of" auth ").
- `key`: de vertaaltoets binnen de groep.
- `Text`: een array -houdvertalingen voor verschillende locaties (bijv.` ['en' => 'Dit is een vereist veld', 'nl' => 'dit is een verplicht veld'] `).

- Wanneer u een vertaling aanvraagt ​​met behulp van de gebruikelijke vertaalfuncties van Laravel, zoals `trans ()` of `__ ()`, controleert het pakket eerst de database voor de vertaling. Als het een bijpassende invoer vindt, retourneert deze de databaseversie.

- Als de vertaling niet in de database wordt gevonden, valt deze terug op de traditionele taalbestanden die zijn opgeslagen in de `bronnen/lang' -directory van Laravel.

- Dit betekent dat database -vertalingen taalbestand vertalingen overschrijven als beide bestaan ​​voor dezelfde sleutel en locale.

- Het pakket ondersteunt zowel op groep gebaseerde vertalingen (bijv. `Validation.Required`) en JSON-vertalingen met behulp van een speciale groepsnaam` '*' '`voor JSON-vertaallijnen.

extra functies en gedrag

- De pakket cache groepen vertalingen om de prestaties te optimaliseren, waardoor database -query's bij herhaalde vertaalverzoeken worden verminderd. Cache wordt ongeldig wanneer vertalingen worden gemaakt, bijgewerkt of verwijderd.

- Het is uitbreidbaar: u kunt aangepaste vertaalproviders (bijv. YAML, CSV) toevoegen door de interface van het pakket 'vertaalloader' te implementeren, waardoor vertalingen kunnen worden geladen uit andere bronnen buiten de database- en taalbestanden.

- U kunt de standaard vertaalhulpverleners en mesrichtlijnen van Laravel blijven gebruiken (`@lang`,` trans () `,` __ () `) zonder wijziging.

Samenvatting

Het vertaalpakket van Spatie combineert effectief database-opgeslagen vertalingen met Laravel's native bestandsgebaseerde vertalingen door prioriteit te geven aan database-ingangen. Dit maakt dynamische bewerking van vertalingen mogelijk via een database-gesteunde gebruikersinterface met behoud van fallback naar statische taalbestanden. De integratie is soepel en vereist minimale wijzigingen in bestaande vertaaloproepen en biedt caching en uitbreidbaarheid voor geavanceerde use cases [1] [3] [5] [6] [7].

Citaten:
[1] https://github.com/spatie/laravel-translation-Loader
[2] https://spatie.be/docs/laravel-translatable/v6/introduction
[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-store-language-lines-in-the-database
[8] https://laraveldaily.com/lesson/multi-language-laravel/spatie-laravel-translatable