---
title: "Bundling the User Interface localizations for TinyMCE"
description: "Information on bundling User Interface localizations"
canonical_url: "https://www.tiny.cloud/docs/tinymce/latest/bundling-localization/"
md_url: "https://www.tiny.cloud/docs/tinymce/latest/bundling-localization/index.md"
version: "latest"
last_updated: "2025-12-10T03:38:03Z"
tokens: 1397
---
# Bundling the User Interface localizations for TinyMCE

## Overview

- [Using community localizations](#using-community-localizations)
- [Using premium self-hosted localizations](#using-premium-self-hosted-localizations)

## Using community localizations

### Using the community language packs

To change the user interface language using a community language pack:

1. Download the language pack from [the Tiny Community Language Packages download page](/get-tiny/language-packages/).
2. Unzip and import/require the language file.
3. Set the [`language`](../ui-localization/#language) option in your TinyMCE configuration to the language code, matching the filename on the language pack. For example: If the language pack has the filename `sv_SE.js`, then set `language: 'sv_SE',`
4. Confirm that the language has been set successfully by loading TinyMCE.

> **Note:** The language code set in the TinyMCE configuration must match the filename of the language file. If the language file is not found, TinyMCE will not load.
If a language you need is not available, you may wish to translate TinyMCE yourself. To contribute to translating TinyMCE, go to our [Crowdin translation page](https://crowdin.com/project/tinymce) and sign up. Then request to join an existing team, or create a new team if your language are not listed.

## Using premium self-hosted localizations

### File structure

This section shows the files required for each TinyMCE localization. The file paths shown are relative to the root TinyMCE package directory, where `tinymce.min.js` is stored. For example:

```
./
├── icons/
├── langs/
├── license.txt
├── models/
├── plugins/
├── readme.txt
├── skins/
├── themes/
├── tinymce.d.ts
├── tinymce.js
├── tinymce.min.js
└── version.txt
```
Premium language packs are available from ZIP downloads or the `tinymce-premium` NPM package. When using the NPM package, import language packs from `tinymce-premium/langs/` instead of `tinymce/langs/`.

The following table shows examples of the syntax used to bundle the following example localization file:

```
./langs/sv_SE.js
```
**Module Syntax:** ES6+ · **Source:** npm (community)

**Example:**

```js
import 'tinymce/langs/sv_SE';
```
**Module Syntax:** ES6+ · **Source:** npm (premium)

**Example:**

```js
import 'tinymce-premium/langs/sv_SE';
```
**Module Syntax:** `.zip` · **Example:** Common JS

**Source:**

```js
import '../tinymce/langs/sv_SE';
```
**Module Syntax:** npm (community) · **Example:** Common JS

**Source:**

```js
require('tinymce/langs/sv_SE');
```
**Module Syntax:** npm (premium) · **Example:** `.zip`

**Source:**

```js
require('tinymce-premium/langs/sv_SE');
```

> **Note:** For complete information on using premium language packs from the NPM package, including non-bundling approaches, see: [Providing premium language packs from `tinymce-premium`](../ui-localization/#premium-language-packs-npm).

### Supported Languages

> **Important:** From TinyMCE 8, language codes use RFC5646 format with hyphens (-) instead of underscores (_). For backward compatibility, both formats are supported in TinyMCE 8, but underscore format will show console warning.
> 
> Example: "TinyMCE language code "en_US" is deprecated, please use "en-US" instead.".

| Language | Code | Filename |
| --- | --- | --- |
| Arabic | ar | `./langs/ar.js` |
| Basque | eu | `./langs/eu.js` |
| Bulgarian (Bulgaria) | bg-BG | `./langs/bg-BG.js` |
| Catalan | ca | `./langs/ca.js` |
| Chinese (China) | zh-CN | `./langs/zh-CN.js` |
| Chinese (Taiwan) | zh-TW | `./langs/zh-TW.js` |
| Croatian | hr | `./langs/hr.js` |
| Czech | cs | `./langs/cs.js` |
| Danish | da | `./langs/da.js` |
| Dutch | nl | `./langs/nl.js` |
| Finnish | fi | `./langs/fi.js` |
| French (France) | fr-FR | `./langs/fr-FR.js` |
| German | de | `./langs/de.js` |
| Greek | el | `./langs/el.js` |
| Hebrew (Israel) | he-IL | `./langs/he-IL.js` |
| Hindi | hi | `./langs/hi.js` |
| Hungarian (Hungary) | hu-HU | `./langs/hu-HU.js` |
| Indonesian | id | `./langs/id.js` |
| Italian | it | `./langs/it.js` |
| Japanese | ja | `./langs/ja.js` |
| Kazakh | kk | `./langs/kk.js` |
| Korean (Korea) | ko-KR | `./langs/ko-KR.js` |
| Malay | ms | `./langs/ms.js` |
| Norwegian Bokmål (Norway) | nb-NO | `./langs/nb-NO.js` |
| Persian | fa | `./langs/fa.js` |
| Polish | pl | `./langs/pl.js` |
| Portuguese (Brazil) | pt-BR | `./langs/pt-BR.js` |
| Portuguese (Portugal) | pt-PT | `./langs/pt-PT.js` |
| Romanian | ro | `./langs/ro.js` |
| Russian | ru | `./langs/ru.js` |
| Slovak | sk | `./langs/sk.js` |
| Slovenian (Slovenia) | sl-SI | `./langs/sl-SI.js` |
| Spanish | es | `./langs/es.js` |
| Swedish (Sweden) | sv-SE | `./langs/sv-SE.js` |
| Thai (Thailand) | th-TH | `./langs/th-TH.js` |
| Turkish | tr | `./langs/tr.js` |
| Ukrainian | uk | `./langs/uk.js` |
| Vietnamese | vi | `./langs/vi.js` |
