Monday, June 22, 2009

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.

We plan to roll out support for more keyboard layouts in the future. You can find more details by reading through the class reference and trying the Code Playground samples. Feedback is always welcome in our support forum and IRC channel.

11 comments:

  1. Thanks for releasing this. Can this be optimized for a mobile device?
    Looking forward to other important non-Latin languages like Telugu, Japanese, Korean, Sinhalese, Bengali etc. in the future releases.

    ReplyDelete
  2. Might want to fix the IRC link -- Mibbit is blocked by freenode. webchat.freenode.net is an alternative.

    ReplyDelete
  3. You won't believe how happy I am. It's out at last.

    ReplyDelete
  4. Mobile device... See, you have to figure out if you want it on your browser or as a part of a mobile app. The code is JavaScript. I did play with it on a browser that is at the level of IE4. Pretty pathetic.

    ReplyDelete
  5. Google has alredy done a remarkabke service to non-roman scripts and non-english languages. This bew contribution is just one more...

    ReplyDelete
  6. मेरे ख्याल से हिन्दी के लिए जिस आभासी कीबोर्ड की संकल्पना गूगल ने की है, वह नौसिखियों के लिए ठीक भी हो लेकिन जो पहले से टाइप करते आ रहे हैं, उनके लिए मुश्किल है।

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. This comment has been removed by a blog administrator.

    ReplyDelete
  9. "...मेरे ख्याल से हिन्दी के लिए जिस आभासी कीबोर्ड की संकल्पना गूगल ने की है, वह नौसिखियों के लिए ठीक भी हो लेकिन जो पहले से टाइप करते आ रहे हैं, उनके लिए मुश्किल है।...

    शैलेश जी, ऐसा नहीं है. ये तो डिफ़ॉल्ट खाका है. इसका एपीआई जारी किया गया है इसका अर्थ है कि आप इसके खाके में तमाम तरह के परिवर्तन कर सकते हैं और अपनी मन मर्जी का लेआउट तैयार कर सकते हैं - फोनेटिक से लेकर रेमिंगटन तक. इस लिहाज से ये बहुत ही बढ़िया कदम है.

    ReplyDelete
  10. मैंने फिर से जांच परख की तो पाया कि एपीआई में कीबोर्ड लेआउट को संपादित करने का विकल्प नहीं है. शैलेश जी का कहना सही है. कीबोर्ड लेआउट को बदलने का विकल्प होना चाहिए. हिन्दी के लिए इनस्क्रिप्ट के अलावा फोनेटिक, रेमिंगटन, चाणक्य, शुषा तो बहुत ही जरूही हैं. इन कीबोर्ड के प्रयोक्ता अच्छे खासे हैं.

    ReplyDelete
  11. how can i integrate it with my Asp.net application

    ReplyDelete