Internacionalizácia, tiež nazývaná i18n, prečo práve tento názov? Keďže internacionalizácia angličtiny je internacionalizácia, medzi i a n je 18 písmen, preto sa nazýva i18n. Ak je naša aplikácia internacionalizovaná, dá sa ľahko prepínať v rôznych jazykových prostrediach, najčastejšie je prechod medzi čínštinou a angličtinou a funkcia internacionalizácie je tiež pomerne bežná.
Napríklad pri odosielaní konkrétnej požiadavky nastavte v hlavičke pár kľúč-hodnota: "Accept-Language":"zh", cez zodpovedajúcu hodnotu Accept-Language môže server rozhodnúť, ktorý regionálny jazyk použiť, nájsť príslušný súbor zdrojov, naformátovať ho a vrátiť klientovi.
Vytvorte nový Spring Boot projekt, vytvorte i18n súbor v priečinku resources a pod týmto priečinkom vytvorte nový konfiguračný súbor podľa formátu "Language Abbreviation Table", ako je znázornené na obrázku nižšie:
message.properties
message_en. Vlastnosti
Nezabudnite pridať konfiguračné parametre na úpravu application.properties, aby bola naša konfigurácia účinná:
Spring definujeMessageSourcerozhrania na prístup k internacionalizovaným informáciám.
getMessage(String code, Object[] args, String defaultMessage, Locale locale) getMessage(String code, Object[] args, Locale locale) getMessage(MessageSourceResolvable resolvable, Locale locale)
Vytvorte nový kontrolér a skúste zavolať iný resource súbor, aby ste vrátili výzvu s nasledujúcim kódom:
Projekt je nasadený na Windows serveri v čínštine a nie je problém s čínskymi používateľmi, ktorí pristupujú k čínštine. Pri nasadení na anglickú verziu Linuxu čínski používatelia vyvolajú anglickú výzvu (prečítajte si konfiguráciu anglického resource súboru).
Dôvodom je náš zásluhaNeexistuje žiadny nový čínsky súbor .properties, v tomto čase program prečíta súbor zdrojov, ktorý zodpovedá aktuálnemu systémovému jazyku, a ak ho nebude možné prečítať znova, nebude schopný prečítať žiadnu konfiguráciu identifikovaných vlastností。 Keď projekt publikujeme do systému Linux English, hoci program nevie čítať čínsku konfiguráciu, prečíta konfiguračný súbor _en.properties, takže rozhranie vráti čínsky prompt.
Riešenie, prostredieFallbackToSystemLocalenepravda, kód je nasledovný:
(Koniec)
|