Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hogyan kezeli a Spatie a fordításokat, amikor az App Locale megváltozik


Hogyan kezeli a Spatie a fordításokat, amikor az App Locale megváltozik


A Spatie a Laravel alkalmazásokban a fordításokat azáltal, hogy integrálódik a Laravel lokalizációs rendszerével, és rugalmas módszereket biztosít a fordítások tárolására és visszakeresésére az alkalmazás jelenlegi helyszíne alapján.

Hogyan kezeli a Spatie a fordításokat, amikor az App Locale megváltozik

1. Fordítási tárolás és visszakeresés

. Ez a csomag felváltja a Laravel alapértelmezett fordítási szolgáltatóját a Spatie's szolgáltatóval, lehetővé téve a fordítások számára, hogy dinamikusan legyenek az adatbázisból [1].
.
- Amikor a Laravel S `__ ()` funkciót egy fordítási kulcs segítségével hívja, a Spatie's Loader az alkalmazásban az aktuális lokál fordításának fordítását kapja. Például, ha az App Locale `'nl'`,` __ (' validation.required ') `visszaadja a holland fordítást az adatbázisból [1].

2. Locale váltás

- Az App Locale futásidejűleg megváltoztatható a Laravel `app ()-> setLocale ('locale_code')` módszerrel.
- Miután a lokál megváltozott, az összes későbbi fordítási visszakeresés `__ ()` segítségével vagy más fordítási funkciókon keresztül automatikusan visszaküldi a szöveget az újonnan beállított lokálban.
- Ha hiányzik az adatbázisban az aktuális lokál fordítás, akkor a Laravel visszafogási locale mechanizmusa visszaküldheti a fordítást az alapértelmezett lokálból, kivéve, ha kifejezetten le van tiltva [1] [8].

3. Modellszintű fordítások JSON-tárolással

- Egy másik Spatie csomagot, a Laravel-Translatable-t úgy tervezték, hogy ékesszóló modellek legyen az attribútumok átfordíthatóvá tétele érdekében.
- A fordításokat JSON -ként tárolják egyetlen adatbázis -oszlopban lefordítható attribútumonként, anélkül, hogy extra táblákra lenne szükségük [3].
- Amikor az App Locale megváltozik, a modellhez fordított attribútum elérése automatikusan visszaadja az aktuális lokál értékét. Például a `$ NewsIM-> név" visszaadja az alkalmazás jelenlegi lokáljának fordítását [4].
.

4. A visszaesés és a hiányzó fordítások

.
- Ezt a viselkedést úgy lehet szabályozni, hogy egy logikai zászlót átadnak a „getTranslation” -re, hogy letilthassák a tartalékot, és egy üres karakterláncot kapjanak, ha a fordítás hiányzik [8].

Összegzés

Amikor az App Locale megváltozik, a Spatie fordítási csomagjai automatikusan kiszolgálják a megfelelő fordítást akár az adatbázis-tárolt nyelvvonalakból, akár a JSON-Stored modell attribútumokból, kihasználva a Laravel lokál beállítását. Ez a zökkenőmentes integráció biztosítja, hogy a transzlációs visszakeresési funkciók az aktuális App locale alapján adják vissza a helyes lokalizált karakterláncot, a tartalék mechanizmusokkal rendelkezésre állnak, ha egy fordítás hiányzik.

Ez a megközelítés lehetővé teszi a dinamikus locale váltást futás közben, és támogatja a fordítások rugalmas tárolását, akár adatbázis táblázatokban, akár JSON oszlopokban, az alkalmazott csomagtól függően.

Hivatkozások: [1] [3] [4] [8]

Idézetek:
[1] https://github.com/spatie/laravel-translationloader
[2] https://spatie.be/docs/laravel-translatable/v6/introduction
[3] https://github.com/spatie/laravel-translatable
[4] https://spatie.be/docs/laravel-translatable/v6/basic-usage/getting-and-settings-transzlációk
[5] https://filamentphp.com/plugins/filament-cipatie-translatable
[6] https://github.com/filamentphp/filament/discussions/6913
[7] https://laraveldaily.com/lesson/multi-Language-laravel/spatie-laravel-transzlációs-loader
[8] https://stackoverflow.com/questions/65252615/spatie-laravel-translatable-shows-the-default-locale-when-t-to-trieve-th