---
order: 2
title: 国际化
---

国际化是指组件库内置的适应国际上主要地区语言的默认配置，包括文本翻译和日期格式，以及一些组件的默认配置，如日期组件中配置一周的第一天是星期几、月份是否在年份前面等等。

`Ant Design Blazor` 的国际化由内置的 `LocaleProvider` 静态类来提供，可对不同 UI 线程设置该线程的区域语言包，语言包内嵌在程序集中。

另外，我们还提供了站点级别的本地化组件，请参考[本地化](docs/localization)。

## 默认语言

组件默认会在程序调用 `Services.AddAntDesign()` 时自动从环境中获取区域语言作为默认语言。因此，不同的运行环境就有不同的设置：

- Blazor WebAssembly： 会从访问者的浏览器语言设置中获取默认语言。注意并不是从系统操作系统或服务端获取。
- Blazor 服务端静态/交互渲染： 会根据运行该服务的操作系统环境中的语言来作为默认语言，而不是根据用户的请求来设置。
- Blazor WebApp Auto 模式：则在静态阶段从服务器系统获取，在WebAssembly阶段从浏览器获取，因此需要注意保持语言一致，避免切换的问题。
- Blazor Hybrid 会从客户端中获取默认语言。

如果需要手动设置默认语言，可以在初始化时进行配置，也可以在运行中随时修改，请参考下面的方案。


## 全局配置

在应用运行的入口处设置

```csharp

service.AddAntDesign();

// 设置默认语言
LocaleProvider.DefaultLanguage = "en-US";
```

## 运行时修改

```csharp

@code {

    private void ChangeLocale()
    {
        LocaleProvider.SetLocale("en-US");
        StateHasChanged();
    }
}
```

## 语言包设置

当设置的语言没有内置的语言包时，我们会按照 父区域性 => 默认语言 => "en-US" 的顺序选择后备语言。(有关父区域性的概念解释，参见[全球化和本地化术语](https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/localization?view=aspnetcore-5.0#globalization-and-localization-terms)，推荐阅读该页面的英语版本)

可以通过 `LocaleProvider.DefaultLanguage = "languageName"` 设置默认语言。

您也可以通过 `LocaleProvider.SetLocale` 方法添加语言包。

```csharp
// 设置默认语言
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 帮助我们改进。