HildonInputMethods

Differences between revisions 7 and 8
Revision 7 as of 2007-11-23 06:10:11
Size: 2543
Editor: 14
Comment:
Revision 8 as of 2007-11-23 06:49:04
Size: 5967
Editor: 14
Comment:
Deletions are marked like this. Additions are marked like this.
Line 34: Line 34:
Investigate how to input other characters sets using hildon-input-method. == Notes ==
Line 36: Line 36:
Make a choice as to whether or not to move over to it. === Overview ===
Line 38: Line 38:
== Outstanding Issues == Input transformation:
Line 40: Line 40:
Should discuss the status quo, and what to do if h-i-m isn't suitable.  * Taking one form of input (such as voice, key presses, mouse gestures) and
 * Sending a different form of input (scroll events, characters entry) to the application
Line 42: Line 43:
=== Description ===

Two main ways to get transformed text into an application:

 * Sending through standard X event ([http://en.wikipedia.org/wiki/Smart_Common_Input_Method SCIM/XIM])
 * Poking directly into GTK+ widget value (which is what Hildon Input Method behaves)

Advantages:

 * Via X works everywhere, regardless of widget/toolkit
 * Poking into the widgets allows extra meta data for that field (numbers only, upper/lower-case only)
 
=== Status Quo ===

Currently, for Ubuntu mobile we are using `matchbox-keyboard` which supports SCIM, but does not yet support hildon-input-method.

Matchbox keyboard also has problems, it can get confused when trying to tap keys quickly, and sometimes has a habit of repeating keys.

=== Possibilities ===

`hildon-input-method` would be more powerful as it would allow to pass hints to the virtual keyboard about the type of input the user is expected to enter (digits, numbers, strings, passwords etc.).

Various input methods for CJVK, unknown to what extent they plug into `hildon-input-methods` -- but they probably don't as `hildon-input-methods` was just released:
 * `nabi` - Korean input method. Chinese, Japanese too? => integrates into XIM and GTK IM
 * `scim` - multiple language support (CJK + indic and various european languages) => integrates into XIM and GTK IM

No integration between CJK and on-screen keyboard
 * underlying keyboard layout is us-english in any CJK IM
 * visible layout needs to change according to the input method the user chooses
  * Example: Bopomofo: '1' -> 'ㄅ', '2' -> 'ㄉ', etc. but the keystrokes sent to scim are still 1, 2, etc.

 * Mandarin Chinese
  * China:
   * Phonetic: [http://en.wikipedia.org/wiki/Pinyin Pinyin] -> scim-pinyin package (when [one of the] pronounciations is known)
   * Component based: Wubi (5 strokes), Changjie -> scim-tables (simple keystroke to character tables)
  * Taiwan:
   * Phonetic: Bopomofo (Zhuyin) -> scim-chewing (uses libchewing library and dictionary)
   * Component: Changjie, Array -> scim-tables
 * Japanese
  * Romaji to Hiragana/Kanji/Katagana -> scim-anthy (uses the Anthy library and dictionary)
 * Korean
  * Hangul and optionally Hangul to Hanjia (Han characters) conversion -> scim-hangul, nabi
 * Indic languages
  * Phonetic: type latin characters (output is translated into indic scripts) -> scim-tables
   * Example: (Tamil) va nna kkam -> வணக்கம்
  * native character layout (just like any european layout, but with the indic script directly on the keys) -> scim-tables
   * Example: (Tamil) bCkdkcd -> வணக்கம்

== Implementation TODO / Notes ==

 * Packaging for `hildon-input-methods`
 * Finding / writing a new on-screen keyboard(s):
   * Collecting some screenshots of existing layouts or of imaginative new designs could help if we got to implement it
   * Could be based on `hildon-input-methods` example plugin (which is a virtual keyboard example)
   * Should support SCIM
   * Would be nice to display the key you're typing on a larger area as to allow seeing it when the thumb is over the virtual key
   * Should try targetting a virtual keyboard in the form of the quarter of a circle[0] if we want to allow typing with the thumbs
   * One of "quarter-circle shaped" keyboard OR "rectangular shaped" keyboard might be enough if all keys are easily usable on the virtual keyboard

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

Investigate the use of Hildon Input Method and its associated bits and pieces for use in Ubuntu Mobile. This specification will also discuss the mechanism Ubuntu Mobile will use to input non-English characters, along with how Ubuntu Mobile will facilitate the input of characters using an onscreen keyboard.

Rationale

Nokia have recently released Hildon Input Method as open source, used for the input of text and handwriting recognition on the N800 platform - we should investigate the framework and see if it is suitable for Ubuntu Mobile.

In more general terms, it needs to be decided how Ubuntu Mobile will accept input for non-English characters. This specification does not deal with displaying the characters, making sure the environment is set up correctly, and that the correct fonts are installed, that is covered in the mobile-internationalization specification.

Use Cases

Takashi is a native Japanese speaker who owns a device that runs Ubuntu Mobile - he would like to compose e-mails to friends and family in Japanese, using Japanese characters.

Gilbert is learning Spanish, and would like a simple way to input accented characters without changing his keyboard mapping to Spanish.

Design

The current implementation of Ubuntu Mobile uses matchbox-keyboard as the current onscreen keyboard, and moblin-keyboard-manager to facilitate display and non display of the keyboard. Hildon Input Method provides an example plugin of a onscreen keyboard. This should be tested and evaluated to see if it is a suitable replacement.

Implementation

Register projects in Launchpad for Hildon Input Method and have vcs-imports start to mirror their SVN repository.

Package up hildon-input-method and related packages, and start evaluating it, how it works, how to run it, and does it act better than the current solution.

Notes

Overview

Input transformation:

  • Taking one form of input (such as voice, key presses, mouse gestures) and
  • Sending a different form of input (scroll events, characters entry) to the application

Description

Two main ways to get transformed text into an application:

Advantages:

  • Via X works everywhere, regardless of widget/toolkit
  • Poking into the widgets allows extra meta data for that field (numbers only, upper/lower-case only)

Status Quo

Currently, for Ubuntu mobile we are using matchbox-keyboard which supports SCIM, but does not yet support hildon-input-method.

Matchbox keyboard also has problems, it can get confused when trying to tap keys quickly, and sometimes has a habit of repeating keys.

Possibilities

hildon-input-method would be more powerful as it would allow to pass hints to the virtual keyboard about the type of input the user is expected to enter (digits, numbers, strings, passwords etc.).

Various input methods for CJVK, unknown to what extent they plug into hildon-input-methods -- but they probably don't as hildon-input-methods was just released:

  • nabi - Korean input method. Chinese, Japanese too? => integrates into XIM and GTK IM

  • scim - multiple language support (CJK + indic and various european languages) => integrates into XIM and GTK IM

No integration between CJK and on-screen keyboard

  • underlying keyboard layout is us-english in any CJK IM
  • visible layout needs to change according to the input method the user chooses
    • Example: Bopomofo: '1' -> 'ㄅ', '2' -> 'ㄉ', etc. but the keystrokes sent to scim are still 1, 2, etc.

  • Mandarin Chinese
    • China:
      • Phonetic: [http://en.wikipedia.org/wiki/Pinyin Pinyin] -> scim-pinyin package (when [one of the] pronounciations is known)

      • Component based: Wubi (5 strokes), Changjie -> scim-tables (simple keystroke to character tables)

    • Taiwan:
      • Phonetic: Bopomofo (Zhuyin) -> scim-chewing (uses libchewing library and dictionary)

      • Component: Changjie, Array -> scim-tables

  • Japanese
    • Romaji to Hiragana/Kanji/Katagana -> scim-anthy (uses the Anthy library and dictionary)

  • Korean
    • Hangul and optionally Hangul to Hanjia (Han characters) conversion -> scim-hangul, nabi

  • Indic languages
    • Phonetic: type latin characters (output is translated into indic scripts) -> scim-tables

      • Example: (Tamil) va nna kkam -> வணக்கம்

    • native character layout (just like any european layout, but with the indic script directly on the keys) -> scim-tables

      • Example: (Tamil) bCkdkcd -> வணக்கம்

Implementation TODO / Notes

  • Packaging for hildon-input-methods

  • Finding / writing a new on-screen keyboard(s):
    • Collecting some screenshots of existing layouts or of imaginative new designs could help if we got to implement it
    • Could be based on hildon-input-methods example plugin (which is a virtual keyboard example)

    • Should support SCIM
    • Would be nice to display the key you're typing on a larger area as to allow seeing it when the thumb is over the virtual key
    • Should try targetting a virtual keyboard in the form of the quarter of a circle[0] if we want to allow typing with the thumbs
    • One of "quarter-circle shaped" keyboard OR "rectangular shaped" keyboard might be enough if all keys are easily usable on the virtual keyboard


CategorySpec

MobileAndEmbedded/HildonInputMethods (last edited 2008-08-06 16:29:55 by localhost)