Spatie hallinnoi käännöksiä Laravel -sovelluksissa integroimalla Laravelin lokalisointijärjestelmään ja tarjoamalla joustavia tapoja tallentaa ja hakea käännöksiä sovelluksen nykyisen paikan perusteella.
Kuinka Spatie käsittelee käännöksiä, kun sovelluspaikka muuttuu
1. Käännösten tallennus ja haku
-Spatie tarjoaa paketin nimeltä Laravel-Translation-Loader, joka mahdollistaa käännösten tallentamisen tietokantaan vain kielitiedostojen sijasta. Tämä paketti korvaa Laravelin oletuksena käännöspalveluntarjoajan Spatie -palveluntarjoajalla, mikä mahdollistaa käännökset dynaamisesti tietokannasta [1].
- Käännökset tallennetaan taulukkoon (yleensä `kieli_lines`), jossa kukin merkintä sisältää ryhmän (kuten" validointi "), avain (kuten" vaaditaan ") ja JSON -objektin, jolla on käännökset useille alueille (esim.` 'En' => 'Tämä on vaadittu kenttä', 'nl' => '.
- Kun soitat Laravelin s `__ ()` -toiminnolla käännösavaimella, Spatie -kuormain hakee sovelluksen nykyisen sijaintipaikan käännöksen. Esimerkiksi, jos App Locale on `'nl'`,` __ (' validointi.Required ') `palauttaa hollantilaisen käännöksen tietokannasta [1].
2. Paikan kytkentä
- Sovelluspaikka voidaan muuttaa suorituksen aikana käyttämällä Laravel's S `app ()-> setLoCale ('locale_code')` -menetelmää.
- Kun sijainti on vaihdettu, kaikki myöhemmät käännöksen noutavat `__ ()` tai muut käännöstoiminnot palauttavat tekstin automaattisesti äskettäin asetetussa paikassa.
- Jos tietokannan nykyisestä sijainnista puuttuu käännös, Laravelin varaosakeskusmekanismi voi palauttaa käännöksen oletusalueella, ellei nimenomaisesti poistettu [1] [8].
3. Mallitason käännökset JSON Storage : lla
- Toinen Spatie-paketti, Laravel-Translateble, on suunniteltu kaunopuheisiin malleihin, jotta määritteet tekevät käännettävistä.
- Käännökset tallennetaan JSON: ksi yhdessä tietokantasarakkeessa käännettäväksi määritteelle ilman, että tarvitset ylimääräisiä taulukoita [3].
- Kun sovelluspaikka muuttuu, mallin käännettävän määritteen käyttäminen palauttaa nykyisen paikan arvon automaattisesti. Esimerkiksi `$ NewsItem-> Name` palauttaa käännöksen sovelluksen nykyiselle sijaintipaikalle [4].
- Voit nimenomaisesti hankkia tai asettaa käännöksiä tietyille alueille käyttämällä menetelmiä, kuten `getTranslation (attribute, locale)` ja `setTranslation (attribute, locale, arvo)` [4].
4. Backback ja puuttuvat käännökset
- Spatie -käännettävä paketti tukee varapaikkoja, joten jos nykyiselle alueelle puuttuu käännös, se voi palauttaa käännöksen toisesta sijainnista (yleensä oletus) [8].
- Tätä käyttäytymistä voidaan hallita siirtämällä Boolen -lippu "getranslation" -sovellukseen poistamaan varaosasto käytöstä ja tyhjän merkkijonon hankkimiseksi, jos käännös puuttuu [8].
Yhteenveto
Kun sovelluspaikka muuttuu, Spatien käännöspaketit palvelevat automaattisesti asianmukaista käännöstä joko tietokannan varastoituista kielirivistä tai JSON-varastoituista mallimäärityksistä hyödyntäen Laravelin paikallisasetusta. Tämä saumaton integraatio varmistaa, että käännöksen hakutoiminnot palauttavat oikean lokalisoidun merkkijonon nykyisen sovellusalueen perusteella, ja varaamekanismit ovat saatavilla, jos käännös puuttuu.
Tämä lähestymistapa mahdollistaa dynaamisen paikallisen vaihtamisen suorituksen aikana ja tukee käännösten tallentamista joustavilla tavoilla joko tietokantataulukoissa tai JSON -sarakkeissa käytetystä paketista riippuen.
Viitteet: [1] [3] [4] [8]
Viittaukset:
[1] https://github.com/spatie/laravel-ranslation-loader
.
[3] https://github.com/spatie/laravel-translateble
.
[5] https://filampphp.com/plugins/filament-spatie translateble
[6] https://github.com/filampphp/filament/discussions/6913
.
.