添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

添加 properties 文件,命名如下:

messages.properties(默认的多语言文件, 中文语言)
messages_en_US.properties(英文语言文件)

多语言解析器拦截器配置

多语言 Cookie 名称设置为 locale 切换多语言 url 地址 url?locale=en_US 切换为英文 url?locale=zh_CN 切换为中文 ,注意 en_US 对应多语言 messages_en_US.properties 设置的值,如果找不到语言使用默认文件。

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.i18n.CookieLocaleResolver; import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; @Configuration public class LocaleMvcConfigurer implements WebMvcConfigurer { @Bean public LocaleResolver localeResolver() { CookieLocaleResolver cookieLocaleResolver = new CookieLocaleResolver(); // 多语言 cookie 名称设置 cookieLocaleResolver.setCookieName("locale"); return cookieLocaleResolver; @Override public void addInterceptors(InterceptorRegistry registry) { // i18n 多语言拦截处理器 registry.addInterceptor(new LocaleChangeInterceptor()).addPathPatterns("/**");

多语言测试

修改多语言测试文件 messages.properties 内容 hi=测试 messages_en_US.properties 内容 hi=test

@GetMapping("/i18n")
public String i18n() {
    try {
        Locale locale = LocaleContextHolder.getLocale();
        return messageSource.getMessage("hi", null, locale);
    } catch (NoSuchMessageException e) {
        // Do Nothing
    return "error";

默认语言访问 localhost:8080/i18n
返回 测试

默认语言访问 localhost:8080/i18n?locale=en_US 切换为英文
返回 test
访问 localhost:8080/i18n 返回 test

默认语言访问 localhost:8080/i18n?locale=zh_CN 切换为中文
返回 测试
访问 localhost:8080/i18n 返回 测试

全局多语言切换

访问 localhost:8080/language/us 全局多语言切换为英文

@Operation(summary = "多语言切换")
@GetMapping("/language/{lang}")
public Boolean language(@PathVariable("lang") String lang) {
    LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
    localeResolver.setLocale(request, response, "us".equals(lang) ? Locale.US : Locale.CHINA);
    return true;

语言代码表

语言代码语言名称
af南非语
af-ZA南非语
ar阿拉伯语
ar-AE阿拉伯语(阿联酋)
ar-BH阿拉伯语(巴林)
ar-DZ阿拉伯语(阿尔及利亚)
ar-EG阿拉伯语(埃及)
ar-IQ阿拉伯语(伊拉克)
ar-JO阿拉伯语(约旦)
ar-KW阿拉伯语(科威特)
ar-LB阿拉伯语(黎巴嫩)
ar-LY阿拉伯语(利比亚)
ar-MA阿拉伯语(摩洛哥)
ar-OM阿拉伯语(阿曼)
ar-QA阿拉伯语(卡塔尔)
ar-SA阿拉伯语(沙特阿拉伯)
ar-SY阿拉伯语(叙利亚)
ar-TN阿拉伯语(突尼斯)
ar-YE阿拉伯语(也门)
az阿塞拜疆语
az-AZ阿塞拜疆语(拉丁文)
az-AZ阿塞拜疆语(西里尔文)
be比利时语
be-BY比利时语
bg保加利亚语
bg-BG保加利亚语
bs-BA波斯尼亚语(拉丁文,波斯尼亚和黑塞哥维那)
ca加泰隆语
ca-ES加泰隆语
cs捷克语
cs-CZ捷克语
cy威尔士语
cy-GB威尔士语
da丹麦语
da-DK丹麦语
de德语
de-AT德语(奥地利)
de-CH德语(瑞士)
de-DE德语(德国)
de-LI德语(列支敦士登)
de-LU德语(卢森堡)
dv第维埃语
dv-MV第维埃语
el希腊语
el-GR希腊语
en英语
en-AU英语(澳大利亚)
en-BZ英语(伯利兹)
en-CA英语(加拿大)
en-CB英语(加勒比海)
en-GB英语(英国)
en-IE英语(爱尔兰)
en-JM英语(牙买加)
en-NZ英语(新西兰)
en-PH英语(菲律宾)
en-TT英语(特立尼达)
en-US英语(美国)
en-ZA英语(南非)
en-ZW英语(津巴布韦)
eo世界语
es西班牙语
es-AR西班牙语(阿根廷)
es-BO西班牙语(玻利维亚)
es-CL西班牙语(智利)
es-CO西班牙语(哥伦比亚)
es-CR西班牙语(哥斯达黎加)
es-DO西班牙语(多米尼加共和国)
es-EC西班牙语(厄瓜多尔)
es-ES西班牙语(传统)
es-ES西班牙语(国际)
es-GT西班牙语(危地马拉)
es-HN西班牙语(洪都拉斯)
es-MX西班牙语(墨西哥)
es-NI西班牙语(尼加拉瓜)
es-PA西班牙语(巴拿马)
es-PE西班牙语(秘鲁)
es-PR西班牙语(波多黎各(美))
es-PY西班牙语(巴拉圭)
es-SV西班牙语(萨尔瓦多)
es-UY西班牙语(乌拉圭)
es-VE西班牙语(委内瑞拉)
et爱沙尼亚语
et-EE爱沙尼亚语
eu巴士克语
eu-ES巴士克语
fa法斯语
fa-IR法斯语
fi芬兰语
fi-FI芬兰语
fo法罗语
fo-FO法罗语
fr法语
fr-BE法语(比利时)
fr-CA法语(加拿大)
fr-CH法语(瑞士)
fr-FR法语(法国)
fr-LU法语(卢森堡)
fr-MC法语(摩纳哥)
gl加里西亚语
gl-ES加里西亚语
gu古吉拉特语
gu-IN古吉拉特语
he希伯来语
he-IL希伯来语
hi印地语
hi-IN印地语
hr克罗地亚语
hr-BA克罗地亚语(波斯尼亚和黑塞哥维那)
hr-HR克罗地亚语
hu匈牙利语
hu-HU匈牙利语
hy亚美尼亚语
hy-AM亚美尼亚语
id印度尼西亚语
id-ID印度尼西亚语
is冰岛语
is-IS冰岛语
it意大利语
it-CH意大利语(瑞士)
it-IT意大利语(意大利)
ja日语
ja-JP日语
ka格鲁吉亚语
ka-GE格鲁吉亚语
kk哈萨克语
kk-KZ哈萨克语
kn卡纳拉语
kn-IN卡纳拉语
ko朝鲜语
ko-KR朝鲜语
kok孔卡尼语
kok-IN孔卡尼语
ky吉尔吉斯语
ky-KG吉尔吉斯语(西里尔文)
lt立陶宛语
lt-LT立陶宛语
lv拉脱维亚语
lv-LV拉脱维亚语
mi毛利语
mi-NZ毛利语
mk马其顿语
mk-MK马其顿语(FYROM)
mn蒙古语
mn-MN蒙古语(西里尔文)
mr马拉地语
mr-IN马拉地语
ms马来语
ms-BN马来语(文莱达鲁萨兰)
ms-MY马来语(马来西亚)
mt马耳他语
mt-MT马耳他语
nb挪威语(伯克梅尔)
nb-NO挪威语(伯克梅尔)(挪威)
nl-BE荷兰语(比利时)
nl-NL荷兰语(荷兰)
nn-NO挪威语(尼诺斯克)(挪威)
ns北梭托语
ns-ZA北梭托语
pa旁遮普语
pa-IN旁遮普语
pl波兰语
pl-PL波兰语
pt葡萄牙语
pt-BR葡萄牙语(巴西)
pt-PT葡萄牙语(葡萄牙)
qu克丘亚语
qu-BO克丘亚语(玻利维亚)
qu-EC克丘亚语(厄瓜多尔)
qu-PE克丘亚语(秘鲁)
ro罗马尼亚语
ro-RO罗马尼亚语
ru俄语
ru-RU俄语
sa梵文
sa-IN梵文
se北萨摩斯语
se-FI北萨摩斯语(芬兰)
se-FI斯科特萨摩斯语(芬兰)
se-FI伊那里萨摩斯语(芬兰)
se-NO北萨摩斯语(挪威)
se-NO律勒欧萨摩斯语(挪威)
se-NO南萨摩斯语(挪威)
se-SE北萨摩斯语(瑞典)
se-SE律勒欧萨摩斯语(瑞典)
se-SE南萨摩斯语(瑞典)
sk斯洛伐克语
sk-SK斯洛伐克语
sl斯洛文尼亚语
sl-SI斯洛文尼亚语
sq阿尔巴尼亚语
sq-AL阿尔巴尼亚语
sr-BA塞尔维亚语(拉丁文,波斯尼亚和黑塞哥维那)
sr-BA塞尔维亚语(西里尔文,波斯尼亚和黑塞哥维那)
sr-SP塞尔维亚(拉丁)
sr-SP塞尔维亚(西里尔文)
sv瑞典语
sv-FI瑞典语(芬兰)
sv-SE瑞典语
sw斯瓦希里语
sw-KE斯瓦希里语
syr叙利亚语
syr-SY叙利亚语
ta泰米尔语
ta-IN泰米尔语
te泰卢固语
te-IN泰卢固语
th泰语
th-TH泰语
tl塔加路语
tl-PH塔加路语(菲律宾)
tn茨瓦纳语
tn-ZA茨瓦纳语
tr土耳其语
tr-TR土耳其语
ts宗加语
tt鞑靼语
tt-RU鞑靼语
uk乌克兰语
uk-UA乌克兰语
ur乌都语
ur-PK乌都语
uz乌兹别克语
uz-UZ乌兹别克语(拉丁文)
uz-UZ乌兹别克语(西里尔文)
vi越南语
vi-VN越南语
xh班图语
xh-ZA班图语
zh中文
zh-CN中文(简体)
zh-HK中文(香港)
zh-MO中文(澳门)
zh-SG中文(新加坡)
zh-TW中文(繁体)
zu祖鲁语
zu-ZA祖鲁语
文章标签: SpringBoot
推荐指数:

真诚点赞 诚不我欺~ spring boot 国际化支持多语言 点赞 收藏 评论