国际化
国际化是指组件库内置的适应国际上主要地区语言的默认配置,包括文本翻译和日期格式,以及一些组件的默认配置,如日期组件中配置一周的第一天是星期几、月份是否在年份前面等等。
Ant Design Blazor
的国际化由内置的 LocaleProvider
静态类来提供,可对不同 UI 线程设置该线程的区域语言包,语言包内嵌在程序集中。
另外,我们还提供了站点级别的本地化组件,请参考本地化。
默认语言
组件默认会在程序调用 Services.AddAntDesign()
时自动从环境中获取区域语言作为默认语言。因此,不同的运行环境就有不同的设置:
- Blazor WebAssembly: 会从访问者的浏览器语言设置中获取默认语言。注意并不是从系统操作系统或服务端获取。
- Blazor 服务端静态/交互渲染: 会根据运行该服务的操作系统环境中的语言来作为默认语言,而不是根据用户的请求来设置。
- Blazor WebApp Auto 模式:则在静态阶段从服务器系统获取,在WebAssembly阶段从浏览器获取,因此需要注意保持语言一致,避免切换的问题。
- Blazor Hybrid 会从客户端中获取默认语言。
如果需要手动设置默认语言,可以在初始化时进行配置,也可以在运行中随时修改,请参考下面的方案。
全局配置
在应用运行的入口处设置
service.AddAntDesign();
// 设置默认语言
LocaleProvider.DefaultLanguage = "en-US";
运行时修改
@code {
private void ChangeLocale()
{
LocaleProvider.SetLocale("en-US");
StateHasChanged();
}
}
语言包设置
当设置的语言没有内置的语言包时,我们会按照 父区域性 => 默认语言 => "en-US" 的顺序选择后备语言。(有关父区域性的概念解释,参见全球化和本地化术语,推荐阅读该页面的英语版本)
可以通过 LocaleProvider.DefaultLanguage = "languageName"
设置默认语言。
您也可以通过 LocaleProvider.SetLocale
方法添加语言包。
// 设置默认语言
LocaleProvider.DefaultLanguage = "en-US";
// 创建一个 `Locale` 对象
var zhHK = new Locale { ... };
// 设置额外的语言
LocaleProvider.SetLocale("zh-HK", zhHK);
内置语言
语言 | 文件名 |
---|---|
阿拉伯语 | ar_EG |
阿塞拜疆语 | az_AZ |
保加利亚语 | bg_BG |
孟加拉语(孟加拉国) | bn_BD |
白俄罗斯语 | by_BY |
加泰罗尼亚语 | ca_ES |
捷克语 | cs_CZ |
丹麦语 | da_DK |
德语 | de_DE |
希腊语 | el_GR |
英语 | en_GB |
英语(美式) | en_US |
西班牙语 | es_ES |
爱沙尼亚语 | et_EE |
波斯语 | fa_IR |
芬兰语 | fi_FI |
法语(比利时) | fr_BE |
法语(加拿大) | fr_CA |
法语(法国) | fr_FR |
爱尔兰语 | ga_IE |
加利西亚语(西班牙) | gl_ES |
希伯来语 | he_IL |
印地语 | hi_IN |
克罗地亚语 | hr_HR |
匈牙利语 | hu_HU |
亚美尼亚 | hy_AM |
印度尼西亚语 | id_ID |
意大利语 | it_IT |
冰岛语 | is_IS |
日语 | ja_JP |
格鲁吉亚语 | ka_GE |
高棉语 | km_KH |
北库尔德语 | kmr_IQ |
卡纳达语 | kn_IN |
哈萨克语 | kk_KZ |
韩语/朝鲜语 | ko_KR |
立陶宛语 | lt_LT |
拉脱维亚语 | lv_LV |
马其顿语 | mk_MK |
马拉雅拉姆语 | ml_IN |
蒙古语 | mn_MN |
马来语 (马来西亚) | ms_MY |
挪威语 | nb_NO |
尼泊尔语 | ne_NP |
荷兰语(比利时) | nl_BE |
荷兰语 | nl_NL |
波兰语 | pl_PL |
葡萄牙语(巴西) | pt_BR |
葡萄牙语 | pt_PT |
罗马尼亚语 | ro_RO |
俄罗斯语 | ru_RU |
僧伽罗语 | si_LK |
斯洛伐克语 | sk_SK |
塞尔维亚语 | sr_RS |
斯洛文尼亚语 | sl_SI |
瑞典语 | sv_SE |
泰米尔语 | ta_IN |
泰语 | th_TH |
土耳其语 | tr_TR |
土库曼 | tk_TK |
乌尔都语 (巴基斯坦) | ur_PK |
乌克兰语 | uk_UA |
乌兹别克语 | uz_UZ |
越南语 | vi_VN |
简体中文 | zh_CN |
繁体中文(中国香港) | zh_HK |
繁体中文(中国台湾) | zh_TW |
当然,我们并不精通所有的语言,如果你发现翻译有误,请提交 PR 帮助我们改进。