Keyboard Support

Contact and Search Homepage

Header bottom


On this page

< Previous article   Next article >

HOWTO: Add metadata to your keyboard layout to enable optimum automatic language settings

NOTE: This archived documentation has not been updated recently and may contain information that is no longer relevant


Microsoft Windows and Microsoft Office require quite a number configuration changes in order to work correctly with many of the world's scripts. This document details the information a keyboard developer can include in their keyboard layout so that Keyman Desktop will automatically configure the Windows and Office language settings optimally.


The examples below refer to Arabic, but this is purely for the purposes of example – replace this with your language as desired.

Windows Language

A keyboard layout must be associated with a Windows language in order for some complex script rendering to be enabled - specifically right-to-left support, and, in some applications, correct rendering of South Asian and South East Asian scripts.

To associate a Windows language with a Keyman keyboard at install time (with Keyman Desktop 7.1 and later versions), include the following lines:

store(&amp;WINDOWSLANGUAGES) 'x0401'
store(&amp;LANGUAGE) 'x0401'

The example above uses the code x401, which is Arabic (Saudi Arabia). Full detail on the valid values for these lines is available in the Keyman Developer reference documentation.

This will cause a number of things to happen when the keyboard is installed:

  • Keyman will install a language + keyboard pair and link it to the Keyman keyboard
  • Keyman will install MS Office language settings for Arabic (also essential for Arabic to work correctly!)
  • Keyman will install the Windows RTL and Complex Script files (requires Windows CD) on XP and 2000 (later versions of Windows already have these files)
  • Keyman will install the Keyman Uniscribe Manager if it detects that the system Uniscribe version is too old to properly support Arabic. This provides Win7 level rendering support in XP and 2000.

You can have two keyboards for Arabic (Saudi Arabia) installed – one will be the Keyman keyboard which uses a US keyboard backend, and the other will presumably be the standard Windows Arabic keyboard. Keyman will manage the install of the Windows US keyboard which it links to the Keyman keyboard.

It is also helpful to include the ISO639-3/Ethnologue code (Keyman supported Ethnologue before it was the source for ISO639-3) for the keyboard as this will allow for automatic language tagging when compiled to KeymanWeb (as well as being used by the Tavultesoft website if you upload the keyboard):

store(&amp;ETHNOLOGUECODE) 'arb'

If you use Keyman Developer 7.1, you can configure these settings through the Keyboard Wizard UI, Languages tab. You do need 7.1 in order to use the WINDOWSLANGUAGES system store.

Applies to:

  • Keyman Developer Professional 7.0