June 21, 2008

Setting up a Thai keyboard in Windows

Once again I've been inspired by the good folks over at babelhut.com. There's a very nice post by Peter on setting up your Windows Vista computer to type in Spanish. With apologies to Peter for inevitable similarities, here is my post for Thai. I figure those searching Google for help will likely specify the language they're looking to set up, so I believe a separate post for Thai is justified.

One of the nice things about a modern computer system is that you don't need any special software to type in Thai. This applies to Mac, Windows XP, and Windows Vista. I can't tell you about Linux--anyone in the know care to chime in with a comment? Your computer comes with the functionality to type Thai, or nearly any language, buit-in. You just need to change a couple of settings to allow you to switch between languages on your keyboard.

Just head to the Control Panel, accessible from the right-hand side of the Start Menu. After you've clicked the link, a window will pop up. There are two possible views for the Control Panel. It will either look like this (Classic View):

Or like this (Default View):


Now on the Control Panel you're looking for the icon labeled Regional and Language Options. If you're in Default View, though, you'll have to open the category Clock, Language, and Region first, and then you'll be able to get to Regional and Language Options. When you've double-clicked that, you should see this new window:


Actually, when you first open it, it will be on the Formats tab. Notice the tabs at the top of the window. Click the one for Keyboards and Languages, and then you'll be here. Now jump right in and click Change Keyboards. This will open the Text Services and Input Languages window:

Right now, assuming English is the only language you currently type in, you'll see the keyboard for just the one language there. But we want to add another one. When we're done, the list of installed languages is going to look like this instead:


In the Text Services and Input Languages window, click Add, and you'll the Add Input Language window will appear:


By far the most common Thai keyboard layout is Kedmanee. Every internet cafe you'll ever go to will have this layout.
If you've learned to type in Thai, you probably learned the Kedmanee keyboard. Pattachote was designed in the 1960s to be more efficient, but it never caught on (there's a great article about its history and merits). Kind of like with English, where the QWERTY keyboard was designed in the 1860s supposedly to make you type slower, but we nearly all still use it 150 years later.

So unless you're obsessed with efficiency, I recommend Kedmanee. If you want to check out the difference between the layouts, try the Preview option. Here's Kedmanee (
เกษมณี):

And Pattachote (
ปัตตะโชติ):


Once you've checked the box for the keyboard layout(s) you want, click OK and you'll be back in the Text Services and Input Languages window. Click over to the Advanced Key Settings tab to configure how you want to switch between input languages.


The default on the systems I've owned is Left Alt+Shift, but in my experience most computers in Thailand are set up to use the grave accent key (`) instead. It's just below the escape key. So if you prefer that, click the Change Key Sequence... button to get this window:


Click the radio button for Grave Accent (`) on the left hand side under Switch Input Language. You don't need to mess with Switch Keyboard Layout, unless you have more than one keyboard layout installed for a single language (like if you chose to install both Kedmanee and Pattachote). Now the ` key will toggle between the two languages. If you use more than two input languages, you can also set up a shortcut to switch directly to a given language, but if you're only using two or three, it's just as easy to just toggle between them.

Now that you've set up more than one input language, you'll see the Language Bar next to the system tray on your taskbar. (If you don't see it, right click the taskbar, select the Toolbars menu, and click Language bar.) When you're typing in English, the language bar will display EN:


In addition to using the Alt+Shift or ` keyboard shortcut, you can switch between languages by clicking on the language bar and manually selecting the input language you want:

When you're in Thai keyboard mode, the EN is replaced with TH:


And that's pretty much all there is to it. The process is similar for other languages, and nearly identical in Windows XP (I just happen to be running Vista at home).

Oh, and if you need help learning to type Thai, try Thai Typing Tutor. It's free. It's what I used. Nowadays, I touch type on my laptop's regular English keyboard (no stickers). I recommend learning, because once you do you can type Thai on any keyboard, even if the stickers fall off and the symbols wear away.

24 comments:

  1. I would guess most modern linux's can be configured to type Thai fairly easily. I don't have a link handy that walks you through it. Though, on Ubuntu It's not dissimilar to what you described for windows.

    starting in the System menu: System->Preferences->Keyboard Preferences will give you an interface for configuring the keyboard.

    The 'Layouts' tab allows you to add layouts such as Thai. The 'Layout Options' button on that tab will bring up a dialog in which to configure layout switching behaviour.

    ReplyDelete
  2. There are as many different Linuxes as there are penguins on Antarctica, so here's the universal, manual, way:

    Find the following section in /etc/X11/xorg.conf, and modify it to look something like this:

    Section "InputDevice"
            # Leave these as-is:
            Identifier      "Keyboard0"
            Driver          "kbd"
            Option          "XkbRules"      "xorg"
            Option          "XkbModel"      "pc104"

            # Add or modify these as required:
            Option          "XkbLayout"     "us,th"
            Option          "XkbVariant"    ",pat"
            Option          "XkbOptions"    "grp:menu_toggle,grp_led:scroll"
    EndSection

    This will do the following:
    ⁃ Toggle between Thai/US layout when pressing the "Menu" key found on Windows (pc104) keyboards.
    ⁃ Turn on the "Scroll Lock" led when you're in Thai mode.

    Note that this sets Pattachote. If you want Kedmanee, omit the "XkbVariant" line.

    See /usr/share/X11/xkb/rules/base.lst for more possibilities. Also see /usr/share/X11/xkb/README.config

    ReplyDelete
  3. Most people like switching input languages via the accent grave key. This option is not available on many computers because "control panel - regional and language options - advanced - language for non-unicode programs" is set to English (in windows XP). If you change this option to Thai you'll be able to choose the accent grave key to switch input languages as described by Rikker. Changing this option to Thai also solves the problem some people have with programs that use Thai font and that are not displaying their Thai characters correctly. An example of such a program is the G. Domnern Thai-English dictionary on the CD that is included in de hard cover version of the dictionary.

    ReplyDelete
  4. kris, thanks for that tip. I'd noticed that on some computers you couldn't select the grave accent, but I never knew why. Excellent.

    ReplyDelete
  5. Thanks this really helped. I was not sure about how to switch between the languages. This machine is an XP one. It doesn't have the option to use the grave. Also, what is the difference between non-shift lock and the other option?

    ReplyDelete
  6. Sorry I didn't see the last post about the grave key. My bad.

    ReplyDelete
  7. Hey I am Thai and this is really my first time seeing Pattachote keyboard style.

    Anyone know how it came about?

    ReplyDelete
  8. The difference between 'plain' Kedmanee and non-shift lock Kedmanee is that the lock state only affects the caps lock LED in the latter, while in the former it also interchanges the shift and non-shift characters on each key. I suppose the shift-lockable version would be useful if you wanted to enter a lot of numeric data in the Thai script, as the Thai digits are the shift characters on their keys.

    ReplyDelete
  9. I have followed the steps advised by you in careful detail, however, I'm still not able to have access to type in Thai. I'm very keen to learn the Thai language and hope you will be able to assist.

    ReplyDelete
  10. if I actually want to type the grave accent symbol (`) what do i do?

    ReplyDelete
  11. what are the keyboard shortcuts to 1 minimize window only, and maximizing a window?

    ReplyDelete
  12. Thank you for the most benefit methods. Now I can use Both of Thai and English language. Your post is very useful ;thank you once again.

    ReplyDelete
  13. Greetings!
    I am wondering if anyone has any input regarding typing Thai in the open source program OpenOffice.org 3.3? I have successfully changed my input language on my computer (I have Windows 7 Starter), and I can type in Thai perfectly fine on internet sites, but I cannot for the life of me figure out how to get the Thai font to type in OpenOffice (it just shows up as a row of boxes). I have enabled the "enable for complex text layout (CTL)" to the "Thai" setting (in OpenOffice), but it still has not made a difference. I would REALLY appreciate any input or any direction you can point me to in order to resolve this issue as I am leaving soon to do research in Thailand. Thanks!!!

    ReplyDelete
  14. ขอบคุณคุณมาก <--- It works finally :D

    ReplyDelete
  15. I follow by step but my laptop still can not use Thai , i can switch to Thai but cann bot type thai :(

    ReplyDelete
  16. Thanks a lot for the explanations; better get used to the keyboard and shortcuts they are using in Thailand right at the beginning... very appreciated!

    ReplyDelete
  17. i want to type English numbers in thai language plz help me out

    ReplyDelete
  18. my it not working it not even show on bar taskbar

    ReplyDelete
  19. Thanks!! Now I can type thai :D

    ReplyDelete
  20. it's very useful thank you so much...

    ReplyDelete
  21. I thought your article was great. So I set up the dual language bar. No problems. Just sent an email in Thai to a Thai national and their response was - "I don't understand". Although in looking at the Thai characters in the script a few were definitely dodgy - as though they had trouble picking up the way we English writers write. Interesting. I will try it again and keep it to a few sentences.

    ReplyDelete
  22. Thank you so much. Work like a magic!!! :)

    ReplyDelete