Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon W jaki sposób spatie obsługuje tłumaczenia, gdy używane są zarówno pliki bazy danych, jak i


W jaki sposób spatie obsługuje tłumaczenia, gdy używane są zarówno pliki bazy danych, jak i


Spatie obsługuje tłumaczenia zarówno z plikami bazy danych, jak i językowymi przede wszystkim za pomocą pakietu Laravel-Translation-Loader, który bezproblemowo integruje się z natywnym systemem tłumaczeń Laravela.

Jak to działa podczas korzystania zarówno z plików bazy danych, jak i

- Pakiet umożliwia przechowywanie tłumaczeń w bazie danych za pomocą dedykowanej tabeli (`Language_Lines`). Każdy wpis tłumaczenia jest reprezentowany przez instancję modelu „Languageeline`, która obejmuje:
- „grupa”: grupa tłumaczeń (np. „Walidacja” lub „auth”).
- `Key`: Klucz tłumaczenia w grupie.
- `Text ': Translacje trzymające tablicę dla różnych lokalizacji (np.` [' en '=>' To jest pole wymagane '', 'nl' => 'DIT is een verplicht veld'] `).

- Gdy poprosisz o tłumaczenie za pomocą zwykłych funkcji tłumaczenia Laravel, takich jak `` trans () `lub` __ () `, pakiet najpierw sprawdza bazę danych dla tłumaczenia. Jeśli znajdzie pasujący wpis, zwraca wersję bazy danych.

- Jeśli tłumaczenie nie zostanie znalezione w bazie danych, powraca do tradycyjnych plików językowych przechowywanych w katalogu Laravel `Sobory/Lang`.

- Oznacza to, że tłumaczenia bazy danych zastępują tłumaczenia plików języka, jeśli oba istnieją dla tego samego klucza i lokalizacji.

- Pakiet obsługuje zarówno tłumaczenia grupowe (np. „Validation.required`), jak i tłumaczenia JSON za pomocą specjalnej nazwy grupy`*'' dla linii tłumaczeń JSON.

Dodatkowe funkcje i zachowanie

- Pakiet buforuje grupy tłumaczeń w celu zoptymalizowania wydajności, zmniejszając zapytania bazy danych na powtarzane żądania tłumaczeniowe. Pamięć podręczna jest unieważniona po utworzeniu, aktualizowaniu lub usunięciu tłumaczeń.

- Można go rozszerzyć: możesz dodać niestandardowe dostawców tłumaczeń (np. YAML, CSV), wdrażając interfejs Pakiet `Translationloader`, umożliwiając załadowanie tłumaczeń z innych źródeł poza bazą danych i plikami językowymi.

- Możesz nadal używać domyślnych pomocy tłumaczeniowych Laravel i dyrektyw ostrzy (`@lang`,` trans () `,` __ () `) bez modyfikacji.

Streszczenie

Pakiet modułu ładującego tłumaczenie Spatie skutecznie łączy tłumaczenia przechowywane przez bazę danych z natywnymi tłumaczeniami opartymi na plikach Laravel, priorytetem wpisów bazy danych. Umożliwia to dynamiczną edycję tłumaczeń za pośrednictwem interfejsu użytkownika wspieranego przez bazę danych przy jednoczesnym zachowaniu awarii do statycznych plików języka. Integracja jest płynna, co wymaga minimalnych zmian w istniejących wywołań tłumaczeń, i oferuje buforowanie i rozszerzenie zaawansowanych przypadków użycia [1] [3] [5] [6] [7].

Cytaty:
[1] https://github.com/spatie/Laravel-translation-loader
[2] https://spatie.be/docs/Laravel-translatable/v6/introdukcja
[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-ranslation-loader
[6] https://packagist.org/packages/spatie/laravel-translation-loader
[7] https://freek.dev/593-a-laravel-package-to-store-language-ines-in-the-database
[8] https://Laraveldaily.com/lesson/Multi-Language-LaraVel/spatie-laravel-translatable