User:Alvinhochun/Localization/IME

From ReactOS Wiki
< User:Alvinhochun‎ | Localization
Revision as of 13:54, 7 May 2015 by Alvinhochun (talk | contribs) (IME Indicators: add CLSID and module name for Language Bar)
Jump to: navigation, search

See also: CORE-9080

IME stands for "Input Method Editor".

IME Systems

There are two systems for IME under Windows.

Input Method Manager (IMM)

IMM is a thing since Windows 95. Not sure about Windows 3.1, but who cares? :P For 95, 98, NT 4 and ME, it is only available in East Asian versions, but since 2000 it is available for all versions (but only when "East Asian language support" is installed via intl.cpl.)

Throughout 95 and XP (and probably 2003 too), a tool called "通用輸入法編輯工具" (uimetool.exe) (there are differences between versions, but I will mainly focus on the one on XP) is available for generating custom IMEs from text files containing input mappings.

These input methods are mainly DLL files renamed with file extension .ime.

Windows 8 may have already blocked IMM IMEs, or at least in Windows store apps mode.

TODO: More

Text Services Frammework (TSF)

TSF (also called "Cicero") is the newer service for text input since XP (a redistributable seems to be available for 2000.) It is more than IMEs since it also support voice recognition and ink recognition input. It is implemented via COM.

In XP input.cpl there are two options related to "advanced text services":

  • Extend support of advanced text services to all programs - Appears to enable system-wide TSF support instead of IMM. There appears to be a compatibility layer which allows IMM to be used via TSF. TODO: Vertify?
  • Turn off advanced text services - Seems to disable TSF completely, but for unknown reasons the language bar is also disabled (as stated in the description) and there isn't any icons on the system tray which indicates the current keyboard layout (which is available in 2000). Though if you switch the layouts using keyboard shortcuts (Alt + Shift and Ctrl + Shift), you can still use different keyboard layouts and IMEs.

Since Vista, TSF is enabled system-wide. IMM IMEs can still be used though (probably via a compatibility layer similar to above.)

A text service in TSF can be called TIP, which stands for Text Input Processor.

TODO: What is "Cicero Unaware Application Support (CUAS)"?

IME Indicators

Before XP, the current keyboard layout or IME is indicated by a system tray icon. IMEs can create their own windows for more indicators (e.g. the status window for old IMEs, "language bar" of New Phonetic.)

Starting from XP, TSF hosts (is this accurate?) a Language Bar on the task bar (shell extension msutb.dll, CLSID: 540D8A8B-1C3F-4E32-8132-530F6A502090) to show the current keyboard or IME, and there is no longer an icon on the system tray. IMM input methods can still create their own windows, while TSF TIPs will integrate their options onto the Language Bar. (It may be possible for some IMM input methods to integrate onto the Language Bar, but it is not simple at all.) The Language Bar can be floating, or otherwise docked onto the taskbar where it can align to the right of the window list, left of the system tray.

Starting from 8, the indicator seems to have gone back to the system tray, with one icon indicating the current layout / IME, and another indicating the IME status (if any). I don't have Windows 8 ATM so I cannot really see it myself.

Relationship with MS Office

Various versions of Office has new IME versions bundled with them. It also seems that installing Office may change some part of the system-wide IME functionality, but I am not sure about that.

Certain versions are available for download separately:

ctfmon.exe

This process should be closely related to IMEs since XP. Killing it should stop IMEs from working properly under XP. However, on my current Windows 7 it is strangely not running so I cannot really tell. (It could be related to the fact that I installed Office 2013 and Office 2010, so I may need to check a fresh Windows 7 install.)

See Also