Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak zpracovávají Spatie překlady, když se používají jak databázové, tak jazykové soubory


Jak zpracovávají Spatie překlady, když se používají jak databázové, tak jazykové soubory


Spatie zpracovává překlady s databázovými i jazykovými soubory primárně prostřednictvím svého balíčku Laravel-Translation-Loader, který se bez problémů integruje s nativním překladačním systémem Laravel.

Jak to funguje při používání souborů databáze i jazyků

- Balíček umožňuje ukládat překlady do databáze pomocí vyhrazené tabulky (`Language_lines`). Každá položka překladu je reprezentována modelovou instancí „jazyk jazyka“, která zahrnuje:
- `Group`: Skupina překladu (např." Validace "nebo" Auth ").
- `Key`: Klíč překladu ve skupině.
- `Text`: Pole drží překlady pro různá lokalita (např.` ['en' => 'Toto je požadované pole', 'nl' => 'dit je een Verplicht Veld] `).

- Když požádáte o překlad pomocí obvyklých funkcí překladu LaRavel jako `trans ()` nebo `__ ()`, balíček nejprve zkontroluje databázi pro překlad. Pokud najde odpovídající položku, vrátí verzi databáze.

- Pokud překlad není v databázi nalezen, spadne zpět do tradičních jazykových souborů uložených v adresáři zdroje Laravel s `.

- To znamená, že překlady databáze přepíše překlady jazykových souborů, pokud existují oba pro stejný klíč a národní prostředí.

- Balíček podporuje překlady založené na skupinách (např. „Validation.Required“) a JSON překlady pomocí speciálního názvu skupiny `'*'` pro překlady JSON.

Další funkce a chování

- Balíčky ukládá skupiny překladů k optimalizaci výkonu a snížení dotazů na databáze při opakovaných požadavcích na překlad. Při vytváření, aktualizovaných nebo odstranění překladů je mezipaměť zneplatněna.

- Je to rozšiřitelné: můžete přidat vlastní poskytovatele překladu (např. YAML, CSV) implementací rozhraní balíčku S `TranslationLoader`, což umožňuje načtení překladů z jiných zdrojů za databázi a jazykové soubory.

- Můžete i nadále používat výchozí překlady LaRavel a direktivy Blade (`@lang`,` trans () `, __ ()`) bez úpravy.

Shrnutí

Balíček Spatie's Translation Loader Efektivně sloučí překlady uložené databáze s nativními překlady založenými na souborech Laravel prioritou položek databáze. To umožňuje dynamické úpravy překladů prostřednictvím databáze podporované uživatelské rozhraní při zachování zálohování do souborů statického jazyka. Integrace je hladká a vyžaduje minimální změny stávajících překladových volání a nabízí ukládání do mezipaměti a rozšiřitelnost pro pokročilé případy použití [1] [3] [5] [6] [7].

Citace:
[1] https://github.com/spatie/laravel-cranslation-loader
[2] https://spatie.be/docs/laravel-cranslatable/v6/introduction
[3] https://laravel-news.com/translation-loader-package
[4] https://github.com/spatie/laravel-nranslatable
[5] https://www.laravelblogs.com/courses/multi-language-laravel/spatie-laravel-translation-loader
[6] https://packagist.org/packages/spatie/laravel-cranslation-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-cranslatable