Languages
DeliverabilityLanguages
One design, many languages. Translate the subject and the words, keep the layout.
A design can carry translations next to the original. A translation holds a subject, a preheader and the translated words of the blocks that need them. Rendering with a locale lays that over the original, so the layout, colors and images stay the same in every language.
In the editor
Open the Body panel, then Languages. Enter the language the email is written in, add a language code such asfr, ar or pt-BR, then fill in the subject and each block. Preview has a language picker once a translation exists. Right-to-left languages (Arabic, Hebrew, Persian, Urdu) flip the direction and mirror left and right alignment on their own.
In code
import { renderDesign, renderLocales, setTranslation } from "email-craft-sdk";
const next = setTranslation(design, "fr", {
subject_line: "Bienvenue",
blocks: { [headingId]: { text: "Bonjour" } }
});
const html = renderDesign(next, { fullDocument: true, locale: "fr" });
const all = renderLocales(next); // [{ locale, subject, html, direction, is_default }, ...]API and MCP
POST /v3/render and POST /v3/emails take a locale. When no subject is sent, an email goes out with the translated subject. The MCP tools are set_translation, list_locales and a locale argument on render_design.
Good to know
- A language that has no translation renders the original.
- Only fields a block already has can be translated, and translated text is cleaned like any other text.
- The zip export is not localized yet.
- A countdown's end date is written in the email's language (
body.lang), for example31 ديسمبر 2026، 23:59 UTCin Arabic, and keeps its order in a right-to-left email.
Supported languages
The editor and every export work in any language Unicode covers. The 90 languages below (248 language and region codes) were each written into a design, saved, reopened, exported to HTML and plain text, and imported back from an HTML email, in the React, Angular, Vue and plain JavaScript editors, with nothing lost or changed. An imported email keeps its language (lang) and, for Arabic, Hebrew and the other RTL languages, its right-to-left direction. Typing was tested on the canvas for every script, and input methods (IME) for Chinese, Japanese, Korean, Malayalam, Hindi, Tamil, Bengali, Telugu, Vietnamese, Thai and Arabic.
- Set Text direction to right to left in the Body panel for Arabic, Hebrew, Persian, Urdu and the other RTL languages: columns flip, and text without its own alignment starts on the right, in the editor and in the email.
- No-break spaces (French
12 €, Czech1 234 567) stay no-break in the plain text version. - How a script looks in the inbox depends on the reader's fonts. Pick a font with a generic fallback; a web font with none (such as
Lato) getssans-seriforserifadded in the export.
| Language | Codes tested | Script | Direction | Also tested |
|---|---|---|---|---|
| Afrikaans | af-za | Latin | LTR | |
| Albanian | sq-al | Latin | LTR | |
| Amharic | am | Ethiopic | LTR | typed |
| Arabic | ar, ar-dz, ar-bh, 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-ae, ar-ye | Arabic | RTL | typed, IME (Arabic keyboard) |
| Armenian | hy-am | Armenian | LTR | typed |
| Assamese | as | Bengali | LTR | |
| Azerbaijani | az, cy-az-az, lt-az-az | Latin, Cyrillic | LTR | |
| Basque | eu-es | Latin | LTR | |
| Belarusian | be-by | Cyrillic | LTR | |
| Bengali | bn | Bengali | LTR | typed, IME (Transliteration) |
| Bosnian | bs | Latin | LTR | typed |
| Bulgarian | bg-bg | Cyrillic | LTR | |
| Burmese | my-mm | Myanmar | LTR | typed |
| Catalan | ca-es | Latin | LTR | |
| Central Kurdish | ckb | Arabic | RTL | |
| Chinese | zh, zh-au, zh-ca, zh-cn, zh-fr, zh-hk, zh-it, zh-mo, zh-my, zh-mm, zh-sg, zh-za, zh-tw, zh-chs, zh-cht, zh-us | Han (Simplified, Traditional) | LTR | typed, IME (Pinyin, Zhuyin) |
| Croatian | hr-hr | Latin | LTR | typed |
| Czech | cs, cs-cz | Latin | LTR | |
| Danish | da-dk | Latin | LTR | |
| Dhivehi | div-mv | Thaana | RTL | |
| Dutch | nl, nl-be, nl-nl | Latin | LTR | |
| English | en, en-au, en-at, en-be, en-bz, en-br, en-bg, en-ca, en-cb, en-cl, en-cn, en-co, en-cz, en-dk, en-do, en-ee, en-fi, en-fr, en-de, en-gr, en-hk, en-hu, en-in, en-id, en-ie, en-it, en-jm, en-jp, en-kr, en-lv, en-lt, en-lu, en-my, en-mx, en-nz, en-no, en-pa, en-pe, en-ph, en-pl, en-pt, en-pr, en-ro, en-ru, en-sg, en-sk, en-si, en-za, en-es, en-se, en-ch, en-th, en-nl, en-tt, en-tn, en-tr, en-gb, en-us, en-uy, en-uz, en-ve, en-vn, en-zw | Latin | LTR | |
| Estonian | et-ee | Latin | LTR | |
| Faroese | fo-fo | Latin | LTR | |
| Filipino | fil-ph | Latin | LTR | |
| Finnish | fi, fi-fi | Latin | LTR | |
| French | fr, fr-be, fr-ca, fr-fr, fr-lu, fr-mc, fr-ch, fr-tn, fr-us | Latin | LTR | |
| Galician | gl-es | Latin | LTR | |
| Georgian | ka-ge | Georgian | LTR | typed |
| German | de, de-at, de-de, de-li, de-lu, de-ch | Latin | LTR | |
| Greek | el-gr | Greek | LTR | typed |
| Gujarati | gu-in | Gujarati | LTR | typed |
| Hebrew | he-il | Hebrew | RTL | typed |
| Hindi | hi-in | Devanagari | LTR | typed, IME (Transliteration) |
| Hungarian | hu-hu | Latin | LTR | |
| Icelandic | is-is | Latin | LTR | |
| Indonesian | id-id | Latin | LTR | |
| Italian | it, it-it, it-ch | Latin | LTR | |
| Japanese | ja, ja-jp | Japanese (Kanji, Kana) | LTR | typed, IME (Romaji, full-width) |
| Kannada | kn-in | Kannada | LTR | typed |
| Kazakh | kk-kz | Cyrillic | LTR | |
| Khmer | km-kh | Khmer | LTR | typed |
| Konkani | kok-in | Devanagari | LTR | |
| Korean | ko, ko-kr | Hangul | LTR | typed, IME (Hangul jamo) |
| Kyrgyz | ky-kz | Cyrillic | LTR | |
| Lao | lo | Lao | LTR | typed |
| Latvian | lv-lv | Latin | LTR | |
| Lithuanian | lt-lt | Latin | LTR | |
| Luxembourgish | lb-lu | Latin | LTR | |
| Macedonian | mk-mk | Cyrillic | LTR | |
| Malay | ms, ms-bn, ms-my, ms-sg | Latin | LTR | |
| Malayalam | ml | Malayalam | LTR | typed, IME (Transliteration) |
| Maltese | mt | Latin | LTR | |
| Marathi | mr-in | Devanagari | LTR | |
| Mongolian | mn-mn | Cyrillic | LTR | |
| Nepali | ne | Devanagari | LTR | |
| Norwegian | no, no-no | Latin | LTR | |
| Norwegian | nb-no | Latin | LTR | |
| Norwegian | nn-no | Latin | LTR | |
| Odia | or | Odia | LTR | |
| Pashto | ps | Arabic | RTL | |
| Persian | fa-ir | Arabic | RTL | typed |
| Polish | pl-pl | Latin | LTR | |
| Portuguese | pt, pt-br, pt-pt | Latin | LTR | |
| Punjabi | pa-in | Gurmukhi | LTR | typed |
| Romanian | ro-ro | Latin | LTR | |
| Russian | ru, ru-ee, ru-kz, ru-lv, ru-lt, ru-ru, ru-ua | Cyrillic | LTR | typed |
| Sanskrit | sa-in | Devanagari | LTR | |
| Scottish Gaelic | gd | Latin | LTR | |
| Serbian | cy-sr-sp, lt-sr-sp, sr-me | Latin, Cyrillic | LTR | typed |
| Sinhala | si | Sinhala | LTR | |
| Slovak | sk-sk | Latin | LTR | |
| Slovenian | sl-si | Latin | LTR | |
| Spanish | es, es-ar, es-bo, es-cl, es-co, es-cr, es-do, es-ec, es-sv, es-gt, es-hn, es-419, es-mx, es-ni, es-pa, es-py, es-pe, es-pr, es-es, es-us, es-uy, es-ve | Latin | LTR | |
| Swahili | sw-ke | Latin | LTR | |
| Swedish | sv, sv-fi, sv-se | Latin | LTR | |
| Syriac | syr-sy | Syriac | RTL | |
| Tagalog | tl | Latin | LTR | |
| Tamil | ta-in | Tamil | LTR | typed, IME (Transliteration) |
| Tatar | tt-ru | Cyrillic | LTR | |
| Telugu | te-in | Telugu | LTR | typed, IME (Transliteration) |
| Thai | th-no, th-sw, th-th | Thai | LTR | typed, IME (Thai keyboard) |
| Turkish | tr-tr | Latin | LTR | |
| Ukrainian | uk-ua | Cyrillic | LTR | |
| Urdu | ur-pk | Arabic | RTL | typed |
| Uzbek | uz, cy-uz-uz, lt-uz-uz | Latin, Cyrillic | LTR | |
| Vietnamese | vi-us, vi-vn | Latin | LTR | typed, IME (Telex) |
| Xhosa | xh | Latin | LTR | |
| Yiddish | yi | Hebrew | RTL | |
| Zulu | zu | Latin | LTR |
Try it in the demo
The live demo has a Language menu with the same 90 languages. It shows the sample email, the library templates and all 48 starter templates in the chosen language, right to left for Arabic, Hebrew, Persian, Urdu and the other RTL languages. Type into any block to check the script on the canvas.
Frequently asked questions#
- Which languages does MailKaro support?
- Any language Unicode covers. 248 language and region codes, including Arabic, Hindi, Chinese, Malayalam, Bengali and Amharic, were saved, reopened, exported and imported in the React, Angular, Vue and plain JavaScript editors with nothing lost.
- Does MailKaro support right-to-left languages?
- Yes. Set Text direction to right to left in the Body panel: columns flip, text without its own alignment starts on the right, and the export gets dir="rtl". An imported RTL email keeps its direction and language.
- Can one design hold several languages?
- Yes. A design carries translations of its subject, preheader and blocks, and rendering with a locale lays the translation over the original, so the layout stays the same.
- Can I type Chinese, Japanese or Hindi with an input method?
- Yes. Input methods (IME) were tested on the canvas and in the side panel for Chinese, Japanese, Korean, Hindi, Tamil, Telugu, Bengali, Malayalam, Thai, Vietnamese and Arabic.