Skip to content

Obsługa wielu języków ​

Laravel Translatable ​

Translacje modeli w Core obsłużone są przez pakiet astrotomic/laravel-translatable.

Ustawienia pakietu można dostosować w pliku config/translatable.php.

Localization Middleware ​

Język aplikacji ustawiany jest w middleware Modules\Core\Http\Middleware\Localization na podstawie przesłanego w żądaniu parametru lang.

TIP

Domyślny język aplikacji zdefiniowany jest w pliku konfiguracyjnym config/app.php pod indeksem locale.

TranslationFallback Middleware ​

Podczas definiowania routingu można skorzystać z middleware Modules\Core\Http\Middleware\TranslationFallback\TranslationFallback, który pozwala wczytać treści w innym języku jeśli porządane tłumaczenie nie istnieje.

php
use Modules\Core\Http\Middleware\TranslationFallback;

$router->get('/')
    ->name('api.blog.articles.index')
    ->uses([ArticleController::class, 'index'])
    ->middleware(['can:blog.articles.index', TranslationFallback::class]);

Konfiguracja modelu ​

Uwaga

Model musi implementować trait Astrotomic\Translatable\Translatable

Definiowanie pól tłumaczalnych ​

Definiowanie tłumaczalnych pól odbywa się definiując w modelu własność protected $translatedAttributes, która zawiera listę tłumaczalnych pól.

php
protected $translatedAttributes = ['title', 'description'];

Made by Moonbite