Rahvusvahelistumine, tuntud ka kui i18n, miks just see nimi? Kuna inglise keel on rahvusvahelistumine, on i ja n vahel 18 tähte, seega nimetatakse seda i18n-ks. Kui meie rakendus on rahvusvahelistatud, saab seda hõlpsasti vahetada erinevates keelekeskkondades, kõige tavalisem on üleminek hiina ja inglise keele vahel ning rahvusvahelistamise funktsioon on samuti üsna levinud.
Näiteks konkreetse päringu saatmisel määra päisesse võtme-väärtuse paar: "Accept-Language":"zh", mille kaudu saab server otsustada, millist regioonikeelt kasutada, leida vastava ressursifaili, vormindada selle ja tagastada kliendile.
Loo uus Spring Boot projekt, loo i18n fail ressursside kausta alla ja loo uus konfiguratsioonifail selle kausta alla vastavalt "Language Abbreviation Table" formaadile, nagu alloleval joonisel näidatud:
message.properties
message_en.omadused
Pea meeles lisada konfiguratsiooniparameetreid application.properties muutmiseks, et muuta konfiguratsioon tõhusaks:
Vedru määratlebMessageSourceliidesed rahvusvahelisse infole ligipääsuks.
getMessage(String code, Object[] args, String defaultMessage, Locale locale) getMessage(String code, Object[] args, Locale locale) getMessage(MessageSourceLahendatav lahendatav, Koha asukoht)
Loo uus kontroller ja proovi kutsuda teist ressursifaili, et tagastada prompt järgmise koodiga:
Projekt on juurutatud Windowsi serveris hiina keeles ning hiina kasutajatel pole probleeme hiina keele kasutamisega. Ingliskeelsele Linuxi versioonile juurutamisel küsivad hiina kasutajad ingliskeelset prompti (loe ingliskeelse ressursifaili konfiguratsiooni).
Põhjus on meie enda süüUut hiina .properties faili üldse ei ole, sel ajal loeb programm ressursifaili, mis vastab praegusele süsteemikeelele, ja kui seda enam lugeda ei saa, ei suuda ta tuvastatud omadusfaili konfiguratsiooni lugeda。 Kui me avaldame projekti Linuxi ingliskeelses süsteemis, siis kuigi programm ei suuda hiina konfiguratsiooni lugeda, loeb ta _en.properties konfiguratsioonifaili, mistõttu liides tagastab hiina keele prompti.
Lahendus, seadistusFallbackToSystemLocalevale, kood on järgmine:
(Lõpp)
|