Internationalisering, även kallat i18n, varför detta namn? Eftersom internationalisering är engelska internationalisering finns det 18 bokstäver mellan i och n, så det kallas i18n. Om vår applikation är internationaliserad kan den enkelt bytas i olika språkmiljöer, den vanligaste är växlingen mellan kinesiska och engelska, och internationaliseringsfunktionen är också ganska vanlig.
Till exempel, när du skickar en specifik förfrågan, ställ in ett nyckel-värde-par i headern: "Accept-Language":"zh", genom motsvarande värde Accept-Language kan servern bestämma vilket regionspråk som ska användas, hitta motsvarande resursfil, formatera den och returnera den till klienten.
Skapa ett nytt Spring Boot-projekt, skapa en i18n-fil under resursmappen och skapa en ny konfigurationsfil under denna mapp enligt formatet "Language Abbreviation Table", som visas i figuren nedan:
meddelande.egenskaper
message_en.egenskaper
Kom ihåg att lägga till konfigurationsparametrar för att redigera application.properties för att göra vår konfiguration effektiv:
Spring definierarMessageSourcegränssnitt för att få tillgång till internationaliserad information.
getMessage(Strängkod, Objekt[] args, Sträng defaultMessage, Lokallokalisation) getMessage(Strängkod, Objekt[] args, Lokallokalort) getMessage(MessageSourceResolvable resolvable, Locale locale)
Skapa en ny kontroller och försök anropa en annan resursfil för att returnera en prompt med följande kod:
Projektet är distribuerat under en Windows-server på kinesiska, och det är inga problem med kinesiska användare som får tillgång till kinesiska. När man distribuerar till den engelska versionen av Linux kommer kinesiska användare att visa en engelsk prompt (läs konfigurationen av den engelska resursfilen).
Anledningen till detta är på grund av ossDet finns ingen ny kinesisk .properties-fil alls, vid denna tidpunkt kommer programmet att läsa resursfilen som matchar det aktuella systemspråket, och om den inte kan läsas igen kommer det inte kunna läsa någon identifierad egenskapsfilkonfiguration。 När vi publicerar projektet till Linux-engelska systemet, även om programmet inte kan läsa den kinesiska konfigurationen, kommer det att läsa konfigurationsfilen _en.properties, så gränssnittet returnerar den kinesiska prompten.
Lösning, miljöFallbackToSystemLocalefalsk, koden är följande:
(Slut)
|