Text in non-Latin scripts

SimpleDraw displays most of the world's writing systems correctly. For some it does not, and this page says exactly which, exactly what goes wrong, and what you can do.

If your text is not displaying correctly

Nothing on your side fixes this

No font, keyboard, encoding or browser setting will change it. This is not a problem with your device or with how you typed the text. It is a limitation of the way SimpleDraw draws text onto the drawing canvas.

Please check the problem is one that we know about

Further down in this page, you'll find a list of all the scripts that we know have display issues. If the issue that you are seeing is not in this list, please let us know, and we will look into it.

Let us know that this is affecting you

Ongoing development of SimpleDraw is driven by the needs of our community of users. If we know that a problem with a particular script is affecting active users of the product, this helps us to prioritize further improvements on the range of scripts that we display correctly. You can contact us on our Discord server or email us at translation@simpledraw.app.

Scripts that display correctly

We believe that all scripts in this list should be rendered correctly by SimpleDraw.

  • Latin (including Vietnamese, Turkish, Polish and Romanian)
  • Cyrillic
  • Greek
  • Hebrew
  • Arabic
  • Chinese
  • Japanese
  • Korean
  • Thai
  • Lao
  • Tibetan
  • Armenian
  • Georgian
  • Ethiopic
  • Cherokee
  • Canadian Aboriginal Syllabics
  • Vai
  • Yi
  • Osage
  • Bamum
  • Bopomofo
  • Lisu
  • Ol Chiki
  • Tifinagh
  • Coptic
  • Kayah Li
  • Tai Le
  • Tai Tham
  • New Tai Lue
  • Tai Viet
  • Wancho
  • Nyiakeng Puachue Hmong
  • Miao
  • Thaana
  • N'Ko
  • Mandaic
  • Saurashtra
  • Limbu
  • Meetei Mayek
  • Batak
  • Buginese
  • Tagalog (Baybayin)
  • Syloti Nagri

Traditional Mongolian also displays correctly, but along a horizontal line. For vertical text, set the text angle to -90°. If the text has more than one line, you'll need to enter the lines in reverse order, so that the columns read left to right.

Scripts that do not display correctly

22 scripts are affected, and not all in the same way. Jump to yours:

Devanagari Tamil Kannada Bengali Telugu Malayalam Gujarati Gurmukhi Odia Sinhala Khmer Burmese Sundanese Cham Chakma Lepcha Newa Adlam Hanifi Rohingya Syriac Javanese Balinese

If your script is not on this list, but your text still does not look right, please let us know and we'll look into it.

Why this happens

Turning a sequence of characters into a line of readable text is not always as straightforward as drawing one shape per character. In many writing systems the shapes change depending on their neighbours, letters combine into new shapes, marks attach above and below, some marks are stored after a letter but drawn before it, and some scripts run right-to-left or top-to-bottom. The software that works all of this out is called a text shaping engine, and it is a large and specialised piece of engineering.

Your browser has a built-in text shaping engine, which is why this page displays correctly. SimpleDraw renders drawings using a technology called WebGL, which unfortunately means that it can't make use of your browser's built-in shaping engine. We use an open-source text shaping engine that is compatible with WebGL. It handles most scripts well, but it does fall short on some scripts, as documented on this page.

If SimpleDraw doesn't handle your script, we are really sorry about this limitation. It is not impossible to fix this, but it potentially requires a significant amount of additional work. If you let us know how this limitation is affecting you, this can help us to prioritize further work in this area.

Vowel signs and marks in the wrong place

In these scripts a vowel sign is stored after its consonant but has to be drawn before, above or around it, and consonants combine into stacked or joined shapes. SimpleDraw draws the characters in the order they are stored, so vowel signs land on the wrong side of a letter, split vowels come apart, stacked clusters spread out, and some marks disappear altogether. Words built only from letters and following vowel signs come out perfectly — which is why the problem often shows up in one label and not the next.

Devanagari

Used for: Hindi, Marathi, Nepali, Sanskrit, Konkani, Maithili, Bhojpuri

As it should look

हिन्दी

“Hindi”

As SimpleDraw draws it

हन्दी

The i-vowel sign is dropped entirely. In a second word the same sign is not moved in front of its consonant and lands after the cluster instead. Conjuncts themselves are formed correctly, so a word with no pre-base vowel is drawn perfectly.

Also affected

  • शिक्षा “education” — drawn as शक्षिा

These come out correctly

  • भारत “India”

SimpleDraw में देवनागरी में लिखा टेक्स्ट (in Hindi)

Tamil

Used for: Tamil

As it should look

மொழி

“language”

As SimpleDraw draws it

ம·ொழி

The two-part o-vowel is not composed around its consonant, and a stray dot is left behind. A word with no split vowel is drawn correctly.

Also affected

  • கொடி “flag” — drawn as க·ொடி

These come out correctly

  • தமிழ் “Tamil”

SimpleDraw-இல் தமிழ் எழுத்து (in Tamil)

Kannada

Used for: Kannada

As it should look

ಕನ್ನಡ

“Kannada”

As SimpleDraw draws it

As SimpleDraw draws it

The conjunct is not stacked — the two consonants sit side by side instead of one beneath the other. In a second word the i-vowel sign is misplaced.

Also affected

  • ದಿನ “day” — drawn as As SimpleDraw draws it

SimpleDraw-ನಲ್ಲಿ ಕನ್ನಡ ಲಿಪಿ (in Kannada)

Bengali

Used for: Bengali, Assamese

As it should look

দেশ

“country”

As SimpleDraw draws it

As SimpleDraw draws it

The e-vowel sign belongs in front of its consonant and is drawn after it.

SimpleDraw-এ বাংলা লেখা (in Bengali)

Telugu

Used for: Telugu

As it should look

కోడి

“hen”

As SimpleDraw draws it

As SimpleDraw draws it

The two-part o-vowel is garbled and the glyphs overlap each other illegibly.

SimpleDraw-లో తెలుగు లిపి (in Telugu)

Malayalam

Used for: Malayalam

As it should look

കേരളം

“Kerala”

As SimpleDraw draws it

As SimpleDraw draws it

The e-vowel sign is drawn after its consonant instead of in front of it. Words without a pre-base vowel are drawn correctly.

Also affected

  • സ്നേഹം “love” — drawn as As SimpleDraw draws it

These come out correctly

  • മരം “tree”

SimpleDraw-ൽ മലയാളലിപി (in Malayalam)

Gujarati

Used for: Gujarati

As it should look

દિવસ

“day”

As SimpleDraw draws it

As SimpleDraw draws it

The i-vowel sign is drawn after its consonant instead of before it.

SimpleDraw-માં ગુજરાતી લખાણ (in Gujarati)

Gurmukhi

Used for: Punjabi

As it should look

ਪੰਜਾਬੀ

“Punjabi”

As SimpleDraw draws it

As SimpleDraw draws it

The tippi nasal mark is placed wrongly, and i-vowel signs are drawn after their consonant rather than before it.

SimpleDraw ਵਿੱਚ ਗੁਰਮੁਖੀ ਲਿਪੀ (in Punjabi)

Odia

Used for: Odia

As it should look

ଦେଶ

“country”

As SimpleDraw draws it

As SimpleDraw draws it

The e-vowel sign belongs in front of its consonant and is drawn after it.

SimpleDraw-ରେ ଓଡ଼ିଆ ଲିପି (in Odia)

Sinhala

Used for: Sinhala

As it should look

කොළඹ

“Colombo”

As SimpleDraw draws it

As SimpleDraw draws it

The two halves of the split o-vowel become detached from the consonant they belong to.

Sinhala is clearly drawn differently from the way the browser draws it, but we did not pin down the exact rule that fails. It is listed here because the safe direction, when we are unsure, is to tell you.

SimpleDraw තුළ සිංහල අකුරු (in Sinhala)

Khmer

Used for: Khmer

As it should look

ខ្មែរ

“Khmer”

As SimpleDraw draws it

As SimpleDraw draws it

The coeng subscript consonant is not stacked beneath its base letter, and vowels that belong in front of a consonant are drawn in the wrong order.

អក្សរខ្មែរនៅក្នុង SimpleDraw (in Khmer)

Burmese

Used for: Burmese, and also written for Shan, Mon and Karen

As it should look

မြန်မာ

“Myanmar”

As SimpleDraw draws it

As SimpleDraw draws it

The medial-ra cluster comes apart completely.

SimpleDraw တွင် မြန်မာစာ (in Burmese)

Sundanese

Used for: Sundanese

As it should look

ᮞᮦᮊᮧᮜᮂ

“sekolah”, school

As SimpleDraw draws it

As SimpleDraw draws it

The panéléng vowel sign, which belongs in front of its consonant, lands inside the word instead. A word with only following vowel signs is drawn correctly.

These come out correctly

  • ᮘᮞ ᮞᮥᮔ᮪ᮓ “Basa Sunda”, the Sundanese language

ᮒᮥᮜᮤᮞᮔ᮪ ᮃᮊ᮪ᮞᮛ ᮞᮥᮔ᮪ᮓ ᮓᮤᮔ SimpleDraw (in Sundanese)

Cham

Used for: Cham

As it should look

ꨚꨰꩌ

a test string using the ai vowel sign

As SimpleDraw draws it

As SimpleDraw draws it

The ai vowel sign, which belongs in front of its consonant, is drawn in the wrong position. A word with only following vowel signs is correct.

These come out correctly

  • ꨌꩌ “Cham”

Chakma

Used for: Chakma

As it should look

𑄦𑄬𑄘𑄬

a test string using the e vowel sign

As SimpleDraw draws it

As SimpleDraw draws it

Two separate faults. Virama stacks are not formed — the virama is drawn as a loose mark and the cluster spreads out — and the e-vowel sign, which belongs in front of its consonant, is moved to the end of the word.

SimpleDraw 𑄃𑄮𑄖𑄳 𑄌𑄋𑄳𑄟 𑄣𑄬𑄈 (in Chakma)

Lepcha

Used for: Lepcha

As it should look

ᰛᰩᰵ

“Róng”, the Lepcha name for the language

As SimpleDraw draws it

As SimpleDraw draws it

Vowel signs and final marks are placed on the wrong side of the letter they belong to.

Both Lepcha words we tested came out differently from the browser's version, but we did not work out the exact rule that fails.

Newa

Used for: Nepal Bhasa (Newari)

As it should look

𑐣𑐾𑐥𑐵𑐮

“Nepal”

As SimpleDraw draws it

As SimpleDraw draws it

The e-vowel sign is not moved in front of its consonant, and virama stacks are not formed.

SimpleDraw 𑐫 𑐣𑐾𑐥𑐵𑐮 𑐮𑐶𑐥𑐶 (in Nepal Bhasa (Newari))

The word reads backwards

These scripts are written right to left, and SimpleDraw lays them out left to right, so the whole word is reversed. The letter shapes themselves are correct. Both scripts are encoded in a part of Unicode that the renderer's direction pass does not recognise as right-to-left; other right-to-left scripts, including Arabic, Hebrew, Thaana, N'Ko, Syriac and Mandaic, are laid out in the correct direction.

Adlam

Used for: Fula (Pular, Pulaar, Fulfulde)

As it should look

𞤀𞤣𞤤𞤢𞤥

“Adlam”

As SimpleDraw draws it

As SimpleDraw draws it

The whole word is drawn left to right, so it reads backwards. The letters themselves are shaped correctly — it is only the order that is wrong.

𞤦𞤭𞤲𞤲𞤣𞤭 𞤢𞤣𞤤𞤢𞤥 𞤫 SimpleDraw (in Fulfulde (Adlam))

Hanifi Rohingya

Used for: Rohingya

As it should look

𐴌𐴟𐴇𐴝𐴚𐴒𐴙𐴝

“Rohingya”

As SimpleDraw draws it

As SimpleDraw draws it

The whole word is drawn left to right, so it reads backwards.

SimpleDraw 𐴀𐴡𐴃 𐴌𐴟𐴇𐴝𐴚𐴒𐴙𐴝 𐴓𐴠𐴈𐴝 (in Rohingya)

Letters that should join are broken apart

In a cursive script, neighbouring letters connect into a continuous run. SimpleDraw does not always make the connection, so a word breaks into disconnected pieces.

Syriac

Used for: Syriac, Assyrian Neo-Aramaic, Turoyo

As it should look

ܣܘܪܝܝܐ

“Suryaya”, Syriac

As SimpleDraw draws it

As SimpleDraw draws it

Letters that should join into one connected run break into disconnected pieces. Three of the four words we tested broke; one joined correctly. The text does at least run in the correct direction.

Also affected

  • ܐܠܗܐ “God” — drawn as As SimpleDraw draws it
  • ܒܝܬܐ “house” — drawn as As SimpleDraw draws it

These come out correctly

  • ܠܫܢܐ “language”

The break is unmistakable, but we did not establish which joining forms fail, so we can describe the symptom and not the rule.

ܟܬܝܒܬܐ ܣܘܪܝܝܬܐ ܒܓܘ SimpleDraw (in Syriac)

Letters given the wrong width

For these two scripts SimpleDraw computes wildly wrong widths for individual letters — many times too wide. Words are stretched across thousands of pixels, so most of the text can end up outside the visible area.

Javanese

Used for: Javanese

As it should look

ꦱꦼꦏꦺꦴꦭꦃ

“sekolah”, school

As SimpleDraw draws it

As SimpleDraw draws it

Letters are given widths several times too large, and the error depends on which letters sit next to each other. A word was laid out about 1,700 pixels wide where roughly 400 was expected, so what appears on screen is a couple of letters separated by an enormous gap, with the rest of the word off the edge.

ꦠꦸꦭꦶꦱꦤ꧀ ꦔꦔ꧀ꦒꦺꦴ ꦲꦏ꧀ꦱꦫ ꦗꦮ ꦲꦶꦔ꧀ SimpleDraw (in Javanese)

Balinese

Used for: Balinese

As it should look

ᬲᭂᬓᭀᬮᬄ

“sekolah”, school

As SimpleDraw draws it

As SimpleDraw draws it

The same fault as Javanese, and worse. At a size where a Latin letter is about 64 pixels wide, single Balinese letters were laid out 1,133 and 2,764 pixels wide.

ᬢᬸᬮᬶᬲᬦ᭄ ᬳᬓ᭄ᬲᬭ ᬩᬮᬶ ᬭᬶᬗ᭄ SimpleDraw (in Balinese)

A note on the words above

Some of the words on this page were chosen to demonstrate a particular feature of a script rather than to be everyday vocabulary, and a few are not words at all. We are not experts in all of these languages, if a description of your script is wrong, or if you have any suggestions, please contact us at translation@simpledraw.app.

Talk to us about it

If you want to push us to do better on this, the most useful thing you can do is tell us what "better" would need to look like for your work.

If your drawing used to look different

SimpleDraw changed the font it draws text with, so text in existing drawings may be slightly wider than it was. See our post about the change, and if it causes you any problems, please let us know.