Smart Common Input Method

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Smart Common Input Method
Stable release
1.4.18 / July 31, 2017; 8 years ago (2017-07-31)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inC
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    TypeInput method
    LicenseGNU GPL, GNU LGPL
    Websitegithub.com/scim-im/scim

    The Smart Common Input Method (SCIM) is a platform for inputting more than thirty languages on computers, including Chinese-Japanese-Korean style character languages (CJK), and many European languages. It is used for POSIX-style operating systems including Linux and BSD. Its purposes are to provide a simple and powerful common interface for users from any country, and to provide a clear architecture for programming, so as to reduce time required to develop individual input methods.

    Goals

    [edit | edit source]

    The main goals of the SCIM project include:

    • To act as a unified frontend for current available input method libraries. Bindings to uim and m17n [1] library are available (as of August 2007).
    • To act as a language engine of IIIMF (an input method framework).
    • To support as many input method protocols/interfaces as existing and in common use.
    • To support multiple operating systems. (Currently, only POSIX-style operating systems are available.)
    File:SCIM.Input Method list.png
    Some of the input methods managed by SCIM

    Architecture

    [edit | edit source]

    SCIM was originally written in the C++ language but has moved to pure C since 1.4.14.[1] It abstracts the input method interface to several classes and attempts to simplify the classes and make them more independent from each other. With the simpler and more independent interfaces, developers can write their own input methods in fewer lines of code.

    SCIM is a modularized IM platform, and as such, components can be implemented as dynamically loadable modules, thus can be loaded during runtime at will. For example, input methods written for SCIM could be IMEngine modules, and users can use such IMEngine modules combined with different interface modules (FrontEnd) in different environments without rewrite or recompile of the IMEngine modules, reducing the compile time or development time of the project.

    SCIM is a high-level library, similar to XIM or IIIMF; however, SCIM claims to be simpler than either of those IM platforms. SCIM also claims that it can be used alongside XIM or IIIMF. SCIM can also be used to extend the input method interface of existing application toolkits, such as GTK+, Qt and Clutter via IMmodules.[2]

    [edit | edit source]

    SKIM is a separate project aimed at integrating SCIM more tightly into the K Desktop Environment, by providing a GUI panel (named scim-panel-kde as an alternative to scim-panel-gtk), a KConfig config module and setup dialogs for itself and the SCIM module libscim. It also has its own plugin system which supports on-demand loadable actions.

    t-latn-pre and t-latn-post are two input methods that provide an easy way for composing accented characters, either by preceding regular characters with diacritic marks (in the case of t-latn-pre), or by adding the marks subsequently (in the case of t-latn-post). Their main advantage is the large number of composed characters from different languages that can be entered this way, rendering it unnecessary to install, for example, separate keyboard layouts.[3] These input methods are available for SCIM through the M17n library.

    See also

    [edit | edit source]

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

    References

    [edit | edit source]
    1. ^ A new stable version has been released, the main change is the incorporation of scim-bridge. / scim News / News / SCIM - SCIM
    2. ^ IMmodules
    3. ^ An overview of the available characters can be found at the M17n library website: Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]