---
order: 4
title: Internationalization
---

The default language of `ng-zorro-antd` is Chinese as of yet.
If you want to use other languages, you can follow the instructions below.
You can also set the language with `ng add ng-zorro-antd` when creating project.

## Providers

`ng-zorro-antd` provides several configuration tokens for global configuration of international copy and date, `NZ_I18N` for international copy, and `NZ_DATE_CONFIG` for date-related features. In addition, we use Angular's language pack for date formatting by default (need to introduce the corresponding Angular language pack).

In addition, we also provide an optional `NZ_DATE_LOCALE` for date-fns mode to format local dates (depending on the [`date-fns`] (https://date-fns.org/docs/I18n) library, See `How to use date-fns for date formatting`) below.

```typescript

/** config angular i18n **/
import { registerLocaleData } from '@angular/common';
import en from '@angular/common/locales/en';
registerLocaleData(en);

/** config ng-zorro-antd i18n **/
import { NZ_I18N, en_US } from 'ng-zorro-antd/i18n';

@NgModule({
  ...
  providers   : [
    { provide: NZ_I18N, useValue: en_US }
  ]
})
export class AppModule { }

```

### NZ_DATE_CONFIG (Date global configuration)

The default configuration is as follows:
```js
{
  /** Specify which day is the beginning of the week (null for default, 0 for Sunday, 1 for Monday, and so on) */
  firstDayOfWeek: null
}
```

## Service

`ng-zorro-antd` provides the service of  `NzI18nService` to dynamic change the locale text.

```typescript
import { en_US, NzI18nService } from 'ng-zorro-antd/i18n';
...
constructor(private i18n: NzI18nService) {
}

switchLanguage() {
  this.i18n.setLocale(en_US);
}

```

Note: `en_US` is the package name, follow below.

Supported languages:

| Language              | Package Name |
| --------------------- | -------- |
| Arabic                | ar_EG    |
| Armenian              | hy_AM    |
| Bulgarian             | bg_BG    |
| Catalan               | ca_ES    |
| Czech                 | cs_CZ    |
| Denmark               | da_DK    |
| German                | de_DE    |
| Greek                 | el_GR    |
| English (Global)      | en_GB    |
| English               | en_US    |
| Spanish               | es_ES    |
| Estonian              | et_EE    |
| Persian               | fa_IR    |
| Finnish               | fi_FI    |
| French (Belgium)      | fr_BE    |
| French (France)       | fr_FR    |
| Hebrew                | he_IL    |
| Croatian              | hr_HR    |
| Hindi                 | hi_IN    |
| Hungarian             | hu_HU    |
| Indonesian            | id_ID    |
| Italian               | it_IT    |
| Icelandic             | is_IS    |
| Japanese              | ja_JP    |
| Georgian              | ka_GE    |
| Kannada               | kn_IN    |
| Korean                | ko_KR    |
| Kurdish               | ku_IQ    |
| Latvian               | lv_LV    |
| Malay                 | ms_MY    |
| Mongolian             | mn_MN    |
| Norwegian             | nb_NO    |
| Nepal                 | ne_NP    |
| Dutch (Belgium)       | nl_BE    |
| Dutch                 | nl_NL    |
| Polish                | pl_PL    |
| Portuguese (Brazil)   | pt_BR    |
| Portuguese            | pt_PT    |
| Slovak                | sk_SK    |
| Serbian               | sr_RS    |
| Slovenian             | sl_SI    |
| Swedish               | sv_SE    |
| Tamil                 | ta_IN    |
| Thai                  | th_TH    |
| Turkish               | tr_TR    |
| Romanian              | ro_RO    |
| Russian               | ru_RU    |
| Ukrainian             | uk_UA    |
| Vietnamese            | vi_VN    |
| Chinese (Simplified)  | zh_CN    |
| Chinese (Traditional) | zh_TW    |

## How to format a date using date-fns

For date formatting, we use Angular's DatePipe ([syntax reference](https://angular.io/api/common/DatePipe) to implement (depending on Angular's locale language pack), but due to Angular's own DatePipe is not implemented according to the ISO standard algorithm ([issue #25380](https://github.com/angular/angular/issues/25380)), the week number may not match expectations (related issues: [#2406]( https://github.com/NG-ZORRO/ng-zorro-antd/issues/2406), [#2819](https://github.com/NG-ZORRO/ng-zorro-antd/issues/2819) ).

So we have a new `date-fns` method ([syntax reference](https://date-fns.org/docs/format#description)) for standard date formatting, you can switch to it by the following way (after switching, it will affect the date formatting of all date related components such as Calendar/DatePicker):

```typescript
import { NzI18nService } from 'ng-zorro-antd/i18n';
import { enUS, ja } from 'date-fns/locale';

@NgModule({
  ...
  providers: [
    // Set the value of NZ_DATE_LOCALE in the application root module to activate date-fns mode
    { provide: NZ_DATE_LOCALE, useValue: enUS }
  ]
})
export class AppModule {
  constructor(private i18n: NzI18nService) { }

  ...

  switchLanguage() {
    this.i18n.setDateLocale(ja); // Switch language to Japanese at runtime
  }
}
```

After the switch is successful, you can also choose to remove the dependency on the Angular Locales package (remove the code below) to reduce the package size:
```ts
// The following code can be removed as needed
import { registerLocaleData } from '@angular/common';
import en from '@angular/common/locales/en';
registerLocaleData(en);
```

## Language supported by date-fns

[https://date-fns.org/docs/I18n#supported-languages](https://date-fns.org/docs/I18n#supported-languages)

