Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuidas haldab Spatie tõlkeid, kui rakenduse lokaat muutub


Kuidas haldab Spatie tõlkeid, kui rakenduse lokaat muutub


Spatie haldab tõlkeid Laraveli rakendustes, integreerides Laraveli lokaliseerimissüsteemi ja pakkudes paindlikke viise tõlgete hoidmiseks ja hankimiseks rakenduse praegusel lokaadil.

Kuidas spatie tõlgendab tõlkeid, kui rakenduse lokaat muutub

1. Tõlkesalvestus ja otsimine

-Spatie pakub paketti nimega Laravel-Translation-Loader, mis võimaldab tõlkeid andmebaasi salvestada, mitte ainult keelefailide asemel. See pakett asendab Laraveli vaikeseadete teenuse pakkuja Spatie pakkujaga, võimaldades tõlkeid andmebaasist dünaamiliselt tuua [1].
- Tõlked salvestatakse tabelis (tavaliselt `keel_lines"), kus iga kirje sisaldab rühma (nagu "valideerimine"), võti (nagu "nõutav") ja JSON -objekti, mis hoiab tõlkeid mitmele lokandile (nt "" En "=>" See on nõutav väli "," nl '=> "dit on een velplicht') [1].
- Kui helistate Laraveli funktsioonile tõlkevõtmega, tõmbab Spatie laadur rakenduse praeguse lokaadi tõlke. Näiteks kui rakenduse lokaad on "" nl' "," __ ('valideerimine.Requird') `Tagastab andmebaasist hollandi tõlke [1].

2. Locale'i lülitamine

- Rakenduse lokaali saab käitusajal muuta, kasutades Laraveli rakendust ()-> setlocale ('locale_code') `meetodit.
- Kui lokaator on muudetud, tagastavad kõik hilisemad tõlked välja `__ ()` või muud tõlkefunktsioonid teksti automaatselt äsja komplekti lokaadis.
- Kui andmebaasis praeguse lokaadi jaoks puudub tõlge, võib Laraveli varu lokaalimehhanism tõlke vaikimisi lokaadilt tagastada, välja arvatud juhul, kui see on selgesõnaliselt keelatud [1] [8].

3. Mudelitaseme tõlked JSON-salvestusruumiga

- Veel üks spatiepakett, Laravel-Translatatable, on mõeldud kõnekatele mudelitele, et muuta atribuudid tõlgitavaks.
- Tõlked salvestatakse JSON -na ühes andmebaasi veerus Atribuudi kohta, ilma et oleks vaja täiendavaid tabeleid [3].
- Kui rakenduse lokaali muutub, tagastab mudeli tõlke atribuudile juurdepääs praeguse lokaadi väärtuse automaatselt. Näiteks tagastab $ $ NewsItem-> nimi "rakenduses praeguse lokaadi tõlke [4].
- Saate selgesõnaliselt hankida või seada tõlkeid konkreetsete paikade jaoks, kasutades selliseid meetodeid nagu `getTranslation (atribuut, locale)` ja `setTranslation (atribuut, lokale, väärtus)` [4].

4. Varu- ja puuduvad tõlked

- Spatie tõlkepakett toetab tagasivoolukohti, nii et kui praeguse lokaadi jaoks puudub tõlge, võib see tõlke teisest lokaadist (tavaliselt vaikimisi) tagastada [8].
- Sellist käitumist saab kontrollida, edastades Boole'i ​​lipu, et tagada tagasilöök ja saada tühi string, kui tõlke puudub [8].

kokkuvõte

Kui rakenduse lokaalne muutub, pakuvad Spatie tõlkepaketid automaatselt sobivat tõlget kas andmebaaside salvestatud keeleliinidest või JSON-salvestatud mudeli atribuutidest, võimendades Laraveli lokaadi sätteid. See sujuv integratsioon tagab, et tõlke otsimise funktsioonid tagastavad praeguse rakenduse lokaadi põhjal õige lokaliseeritud stringi, kui tõlke puudumisel on saadaval varumehhanismid.

See lähenemisviis võimaldab dünaamilist lokaadi vahetamist käitusajal ja toetab tõlgete salvestamist paindlikul viisil kas andmebaasi tabelites või JSON -i veergudes, sõltuvalt kasutatud paketist.

Viited: [1] [3] [4] [8]

Tsitaadid:
[1] https://github.com/spatie/laravel-translation-loader
]
[3] https://github.com/spatie/laravel-translatable
]
[5] https://filamentphp.com/plugins/filament-patie-ranslatable
[6] https://github.com/filamentphp/filament/dicusions/6913
]
]