Thai script for English v2 ไท หริฏ ฟ็ร อิงฅิ้ช พ๒

Note: this is an updated version of the previous Thai script adaptation I did a few years ago. This new edition aims to more fully utilise all the available vowel diacritics and remaining Thai consonants that were left unused initially.

The Thai script was originally derived from an earlier version of the Khmer script to better fit the properties of the Thai language while retaining its ability to represent Sanskrit and Pali, in which Buddhist texts were written. Today, Thai script is well-supported on just about every modern computing device, so I wondered if I could use Thai script to write English efficiently. The end result repurposes ‘surplus’ Thai consonants to represent English consonant clusters and is reasonably compact in length while also being hard to read for those who do not understand this complex entanglement of consonants, consonant clusters and vowel diacritics. Hence, this would probably be the ideal script for keeping your secrets safe from prying eyes – that is, as long as the ‘prying eyes’ are not literate in Thai.

Adaptation process

In the Thai orthography, a single consonantal phoneme can be represented by up to 6 letters, all of which are assigned a particular class that is used to indicate a Thai tone. Many of these letters represent Indic consonants which do not exist in the Thai language (such as palatal, retroflex and breathy voiced consonants), as well as distinct Thai sounds which had since merged with other consonants. For example, the following Thai letters are all pronounced (albeit with different tones) /tʰ/: ฑ, ฒ, ฐ, ถ, ท and ธ. Likewise for /kʰ/: ข, ฃ, ค, ฅ, and ฆ. And for /pʰ/: ผ, พ, and ภ. There are a few more examples of such instances throughout the Thai script.

I utilised the extra letters to represent English sounds not present in Thai, with a particular focus on assigning the more simple letters to core English consonants. If the target sound doesn’t exist in Thai (e.g. /ð/), I’ll pinch one of the simpler letters from any large collection of letters with a similar pronunciation. For example, the letter for /θ/ (the ‘th’ sound in ‘teeth’), ท, was taken from the above group of /tʰ/ letters. (In this adaptation, ถ is used to represent the /t/ sound.) Likewise for /ð/ (the ‘th’ in ‘this’), which shall be ธ, also from the /tʰ/ letter group.

The vowels were more straightforward as the common ones could be easily mapped to their Thai equivalents. Some things to note:

  • I elected not to use แ for /æ/, since it takes up more space than using an existing tone mark.
  • The ‘maitaikhu’ diacritic อ็ is used to represent /ɔ/ (the ‘o’ in ‘pot’).
  • The vowel sign for Thai /uː/ อู is used to represent the very common English diphthong /oʊ/ (the ‘ough’ ‘in ‘dough’). This was based on the equivalent Khmer script vowel diacritic អូ, which is also pronounced as /ou/ for certain consonants.
    • Instead, English /uː/ shall be written as /ʊ/ อุ with the ‘mai ek’ tone marker อ่ like this: อุ่.
  • Thai script has 2 diacritics for /aj/: ไอ and ใอ. In this adaptation, ไอ is used for /aɪ/ while ใอ is used for /eɪ/.

Is there any inherent vowel?

Thai orthography gives each consonant letter an ‘inherent vowel’ that is pronounced if the letter has no diacritics, e.g. ม is pronounced /mo/. To remove the vowel, a special diacritic would be required.

In this adaptation, I got rid of the ‘inherent vowel’ thing altogether, as English has a more complex phonological structure than Thai and writing the vowel-removing diacritic would only add an extra layer of complexity.

(Ab)using the tone markers

Thai script has a set of 4 tone markers. But as you probably know by now, English has no phonemic tones. So what to do with them?

Easy. Use 2 of them to write common English vowels! The comma-like ‘mai ek’ อ่ diacritic, being the simplest of them all, shall represent the schwa /ə/ whereas the plus-like ‘mai chattawa’ อ๋ shall be /æ/.

But wait? There are 2 more of them: the ‘mai tho’ อ้ and ‘mai tri’ อ๊. We’ll deal with them shortly.

Using extra letters as consonant clusters

After filling out all English consonants, there were still a bunch of unused letters. And a lot of them too! I decided to repurpose them to represent common consonant clusters in English that contain some aspect of the original Thai sound value where possible.


  • ข /kʰ/ H -> /kt/ (as in act)
  • ฃ /kʰ/ H -> /kw/ (as in quite)
  • ฅ /kʰ/ L -> /kl/ (as in clean)
  • ฆ /kʰ/ L -> /kɹ/ (as in crown)
  • ซ /s/ L -> /ks/ (as in box)
  • ญ /j/ L -> /ŋk/ (as in bank, based on its original Indic sound value of /ɲ/)
  • ฏ /t/ M -> /pt/ (as in adapt)
  • ฐ /tʰ/ H -> /tɹ/ (as in tree)
  • ณ /n/ L -> /nt/ (as in ant)
  • ต /t/ M -> /st/ (as in stay)
  • ฝ /f/ H -> /ft/ (as in after)
  • ภ /pʰ/ L -> /pɹ/ (as in pro)
  • ฬ /l/ L -> /pl/ (as in play, by analogy with ฟ /f/ L)
  • ษ /s/ H -> /sp/ (as in spa, by analogy with บ /b/ M)

Some of them do not contain the original Thai sound values but were chosen by analogy with similar-looking letters:

  • ฎ /d/ M -> /mp/ (as in lamp. By analogy with ภ /pʰ/ L -> /pɹ/)
  • ฒ /tʰ/ L -> /sl/ (as in slice. By analogy with ต /t/ M -> /st/, which is close in sound to /sl/)
  • ฑ /tʰ/ L -> /θɹ/ (as in through, by analogy with ท /tʰ/ L -> /θ/)
  • ผ /pʰ/ H -> /fɹ/ (as in fry, by analogy with พ /pʰ/ L -> /v/)
  • ห /h/ H -> /sk/ (as in scare. Looks slightly like a K in some typefaces)

With this done, every single Thai consonantal letter now has a unique pronunciation. Awesome!

Expanding the extra letters for voiced consonant clusters with ‘mai tho’

One thing to note is that all of the aforementioned consonant cluster letters contain unvoiced consonants only: /p/, /t/, /k/, /s/ etc. But what about those voiced consonant clusters like /bl/, /dɹ/ and /gz/?

And that’s where the 2 other Thai tonal markers come into play.

The ‘mai tho’ อ้ shall be placed on top of the following consonant cluster letters to indicate that the consonant sound is to be voiced:

  • ข /kt/ -> ข้ /gd/ (as in Magda)
  • ฃ /kw/ -> ฃ้ /gw/ (as in language)
  • ฅ /kl/ -> ฅ้ /gl/ (as in glad)
  • ฆ /kɹ/ -> ฆ้ /gɹ/ (as in green)
  • ซ /ks/ -> ซ้ /gz/ (as in example)
  • ญ /ŋk/ -> ญ้ /ŋg/ (as in angle)
  • ฏ /pt/ -> ฏ้ /bd/ (as in Abdul)
  • ฐ /tɹ/ -> ฐ้ /dɹ/ (as in drive)
  • ณ /nt/ -> ณ้ /nd/ (as in and)
  • ภ /pɹ/ -> ภ้ /bɹ/ (as in brave)
  • ฬ /pl/ -> ฬ้ /bl/ (as in blow)
  • ฎ /mp/ -> ฎ้ /mb/ (as in samba)
  • ฑ /θɹ/ -> ฑ้ /ðɹ/
  • ผ /fɹ/ -> ผ้ /vɹ/ (as in every)

For the following letters, the ‘mai tho’ indicates a closely related consonant cluster instead of voicing:

  • ต /st/ -> ต้ /sn/ (as in snail)
  • ฝ /ft/ -> ฝ้ /fl/ (as in flow)
  • ษ /sp/ -> ษ้ /sm/ (as in small)

Note that the ‘mai tho’ is written on top of the letter in addition to any vowel diacritic already on top if present. Hence, /kɹɪ/ would be ฆิ while /gɹɪ/ would be ฆิ้ with the ‘mai tho’ above the /ɪ/ vowel diacritic.

Using ‘mai tho’ with /ə/ or /æ/?

But what if we wanted to apply the ‘mai tho’ when the vowel is either /ə/ or /æ/, both of which are written with Thai tone markers? The problem is that many Thai fonts do not support stacking of tone markers on top of each other!

Hence, when using ‘mai tho’ with /ə/, the ‘mai tri’ tone marker อ๊ shall be used instead – /gɹə/ is written as ฆ๊. This contrasts nicely with /kɹə/ = ฆ่. The same principle applies for the /uː/ vowel sign in this adaptation, which uses ‘mai ek’: /kruː/ = ฆุ่ and /gruː/ = ฆุ๊.

As for using ‘mai tho’ with /æ/, this is represented with the vowel sign for /a/~/ʌ/ อั with the ‘mai chattawa’ tone marker above: /gɹæ/ is written as ฆั๋. This also contrasts nicely with /kɹæ/ = ฆ๋.

And without further ado, let’s get to the…



/p/ (port)/b/ (born)/f/ (free)/v/ (van)/m/ ((moon))
/t/ (test)/d/ (done)/θ/ (thank)/ð/ (the)/n/ (new)
/k/ (call)/g/ (get)../ŋ/ (sing)
/s/ (soon)/z/ (zoo)/ʃ/ (share)/ʒ/ (closure).
/tʃ/ (change)/dʒ/ (just)...
/w/ (way)/ɹ/ (run)/l/ (laugh)/j/ (yell)/h/ (house)
(ø) (no consonant)....

Consonant clusters

/pt/ (adapt)/pɹ/ (pro)/pl/ (play)/ft/ (after)/fɹ/ (fry)
/mp/ (lamp)....
/tɹ/ (tree)/θɹ/ (through)/nt/ (ant)..
/kt/ (act)/ks/ (box)/kw/ (quite)/kɹ/ (crown)/kl/ (clean)
/ŋk/ (bank)....
/sp/ (spa)/st/ (stay)/sk/ (scare)/sl/ (slice).

‘Mai tho’ voiced versions

/bd/ ฏ้ (Abdul)/bɹ/ ภ้ (brave)/bl/ ฬ้ (blow)/fl/ ฝ้ (flow)/vr/ ผ้ (every)
/mb/ ฎ้ (samba)....
/dɹ/ ฐ้ (drive)/ðɹ/ ฑ้/nd/ ณ้ (and)..
/gd/ ข้ (Magda)/gz/ ซ้ (example)/gw/ ฃ้ (language)/gɹ/ ฆ้ (green)/gl/ ฅ้ (glad)
/ŋg/ ญ้ (angle)....
/sm/ ษ้ (small)/sn/ ต้ (snail)..

The 4 forms of ข

The 4 following letters have very similar shapes and could be hard to distinguish:

  1. ข = /kt/
  2. ช = /ʃ/
  3. ฃ = /kw/
  4. ซ = /ks/

Example pangram thingo: The perfect show was quite excellent. (ธ่ ป่รเฟ ชู ว่ส ไถ เอซ่ล่ณ๚)


The null consonant อ is used as a placeholder if no consonant precedes the vowel. For all other cases, just replace อ with the desired consonant, e.g. /kɪ/ = กิ.

/a/~/ʌ/ อั, อ (sun)/æ/ อ๋ (can)
/ɛ/~/e/ เอ (head)/ə/~/ɜ/ อ่ (sure)
/ɪ/ อิ (bid)/i/ อี (bead)
/ɔ/ อ็ (pot)/ɔː/ โอ (bought)
/ʊ/ อุ (pull)/uː/ อุ่ (pool)


/aɪ/ ไอ (high)/aʊ/ เอา (now)
/ɔɪ/ อ็ย (toy)/oʊ/ อู (dough)
/eɪ/ ใอ (day)/ɪə/ อิะ (ear)
/ʊə/ อุะ (tour)/ju/ อึ, ยุ (use)

Note that /a/~/ʌ/ and /ju/ come in 2 different forms. The 2nd form is only to be used when it begins a syllable, and the 1st form is used in all other cases.

Phoneme1st form2nd form
/a/~/ʌ//da/ = ดั/a/ = อ
/ju//dju/ = ดึ/ju/ = ยุ


/aɪə/ ไอะ (flyer)/aʊə/ เอาะ (tower)
/jʊə/ อึะ (cure).


0 1 2 3 4
5 6 7 8 9

Syllable structure

Consonant clusters not defined above are written linearly, like a typical alphabet. If a consonant letter has no diacritic, it has no vowel pronunciation and is either a final consonant or part of a consonant cluster.

E.g. /strɪŋs/ = ตริงส

Sample texts

Universal Declaration of Human Rights

ยุนิพ่รส่ล เดฅ่ใรช่น อ็ฟ ฮึม่น ไรถส

อ็ล ฮึม่น บีงส อร บ็รน ผี อ๋ณ้ อิกุะล อิน ดิคนิถิ อ๋ณ้ ไรถส๚ ใธ อร เอเณ้าด วิท รีศ่น อ๋ณ้ ก็นช่นส อ๋ณ้ ชุด อ๋ข ถ็ว่รดส วัน อ่นัธ่ร อิน อ่ ษิริถ อ็ฟ ภั้ธ่รฮุด๚

(อรถิก่ล ๑ อ็ฟ ธิ ยุนิพ่รส่ล เดฅ่ใรช่น อ็ฟ ฮึม่น ไรถส)

Excerpt from a short story I wrote a while ago

For comparison, you can view the original one here.

ไอ ฮ๋ด อ่ ตใรนจ ฐี้ม ธ๋ถ ไนถ๚

อิน ธ๋ถ ฐี้มฯ ไอ เฟาณ้ ไมเสลฟ อ่ใวก่นิงฯ ไลอิง อ็น ส็ฝ ฆี้น ฆั้สฯ อิน อ่ ฟ๋ณ่สิ ๘-บิถ ว่รลด ส่เราณ๊ด ไบ ก็ฎึถ่รส๚ ธ่ ลุมิน่นส อ็ฟ ฬิ้ญิง มูเดมส อ๋ณ้ ว็รมฯ ฉิะรฟุล ฉิฏึน มึศิก ฟิลด ธิ เอร๚ อ็ลธู เอผิ้ทิง ลุกด ฬ็้กิ อ๋ณ้ หเวรฯ อิถ โภ้ถ มิ บ๋ก ถุ ธูศ ใดส๚ อ็ฟ อ็ล ธ่ ก็ฎึถ่รส ไอ โสฯ ๑ อ็ฟ เธม ว่ส ใฬอิง ไม ใฟผ๊ถ ส็ง! ไอ จัฎ อ๋ณ้ ลีป อิน จ็ย อูพ่ร ธ่ ไสถ๚ ไอ เธน โส ไม เฮาสฯ อ๋ณ้ ไอ เสด “ไฮ” ถุ ไม เบต ใมถสฯ ฮุ ว่ร ใวถิง เอาถไสด๚ วิ โวกด ถุเคธ่รฯ ฮ๋พิง อ่ ฉิะริ ฉ๋ถ อ่เบาถ ธ่ ก็ฎึถ่ร ใคม ไอ ว่ส ว่รกิง อ็น อ่รลิะร๚

“สู วัถส ธ๋ถ กุล ใคม ค็นั บิ อ่เบาถฯ ใอ?” วัน อ็ฟ เธม อหด๚
“อิฟ ยุ ล่พด มัริอูฯ ยุล ล่พ ธิส!” ไอ เสด๚
“โอส่ม!!! ก๋ณ ใวถ ถุ สิ อิถ!” อินไสด มิ ธ่ ไฟอ่ร ถุ กีป มิ คูอิง บิใกม ตร็ญ๊ร๚

วิ โวกด อิณุ อ่ พิพิด สันเสถ๚ ไอ เรมินิสด ธ่ เมม่ริส อ็ฟ ปัต สัม่รสฯ ใฬอิง เรฐู พิดิอู ใคมส อิน ธ่ กุล ใชดฯ อิพ่น ธู ธ่ สัน เอาถไสด ปีกด อ๋ถ ๔๒ ดิฆี้ส อ๋ณ้ เมลถ่ด เอผิ้ทิง เอลส๚

Thai JWERTY Keyboard Layout

To type Thai script efficiently, I created a QWERTY-like keyboard layout that contains all the letters required, which was loosely based on the Khmer QWERTY-based keyboard.

The letters highlighted in green above are all accessed by pressing the Right Alt key on the keyboard.

Download links

Want to try Thai JWERTY on your computer? Download the Windows, Linux and Android (Multiling O) keyboard layouts here:

You can find more information on how to install keyboard layouts here.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.