Introducing the Virtual Keyboard API
    
    
    
    
     Inability to input text in native language has been a problem
      for many non-latin script based languages. This may happen for many reasons. Sometimes, users
      do not have the keyboard layout for their native language installed in the system they happen
      to be using (for example, a tourist using an internet cafe in a foreign country). Sometimes,
      such a keyboard layout is not well developed or not widely available. It is worse for web
      developers because there is no way they can ensure that their users have access to this very
      basic input technology. 
 
To address
      this issue, today, we added 
Virtual Keyboard
      API into the 
Google AJAX Language
      API. With this API, developers can help their users to input text, regardless if
      they have the native keyboard layout installed in their Operating Systems or not.
      

 
 Pic 1: Russian Virtual Keyboard
      layout 
  Another advantage is the ability
      to provide a better user experience for multilingual web sites. For example, on a Russian/Thai
      bilingual dictionary editing web site, users would type in Russian in the header, and then see
      a Thai description. With the Virtual keyboard API, developers can load a Russian virtual
      keyboard layout and bind with all the Russian text fields, and load a Thai virtual keyboard
      layout and bind them to Thai fields. The Virtual Keyboard API then will automatically swap to
      the corresponding keyboard layout depending upon the user action. 
      
  Sometimes users may not be familiar with the
      key assignment of their keyboard layout. Virtual keyboard also shows the key assignment inside
      the page to allow users to input text by either pressing key or by clicking mouse on the
      virtual onscreen layout. 
 
  With
      this initial release, we are launching 5 language layouts. These are: Arabic, Hindi, Polish,
      Russian, and Thai.
 By Manish Bhargava and Frank Tang, Google
      Internationalization Team