Smart Common Input Method

Last updated
Smart Common Input Method
Stable release
1.4.18 / July 31, 2017;6 years ago (2017-07-31)
Repository
Written in C
Type Input method
License GNU GPL, GNU LGPL
Website github.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.

Contents

Goals

The main goals of the SCIM project include:

Some of the input methods managed by SCIM SCIM.Input Method list.png
Some of the input methods managed by SCIM

Architecture

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]

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

Related Research Articles

In computer programming, standard streams are interconnected input and output communication channels between a computer program and its environment when it begins execution. The three input/output (I/O) connections are called standard input (stdin), standard output (stdout) and standard error (stderr). Originally I/O happened via a physically connected system console, but standard streams abstract this. When a command is executed via an interactive shell, the streams are typically connected to the text terminal on which the shell is running, but can be changed with redirection or a pipeline. More generally, a child process inherits the standard streams of its parent process.

<span class="mw-page-title-main">Pango</span> Library for text rendering

Pango is a text layout engine library which works with the HarfBuzz shaping engine for displaying multi-language text.

<span class="mw-page-title-main">Input method</span> Input of characters not natively available

An input method is an operating system component or program that enables users to generate characters not natively available on their input devices by using sequences of characters that are available to them. Using an input method is usually necessary for languages that have more graphemes than there are keys on the keyboard.

In computer programming, glob patterns specify sets of filenames with wildcard characters. For example, the Unix Bash shell command mv *.txttextfiles/ moves all files with names ending in .txt from the current directory to the directory textfiles. Here, * is a wildcard and *.txt is a glob pattern. The wildcard * stands for "any string of any length including empty, but excluding the path separator characters ".

The International Alphabet of Sanskrit Transliteration (IAST) is a transliteration scheme that allows the lossless romanisation of Indic scripts as employed by Sanskrit and related Indic languages. It is based on a scheme that emerged during the 19th century from suggestions by Charles Trevelyan, William Jones, Monier Monier-Williams and other scholars, and formalised by the Transliteration Committee of the Geneva Oriental Congress, in September 1894. IAST makes it possible for the reader to read the Indic text unambiguously, exactly as if it were in the original Indic script. It is this faithfulness to the original scripts that accounts for its continuing popularity amongst scholars.

In computing, gettext is an internationalization and localization system commonly used for writing multilingual programs on Unix-like computer operating systems. One of the main benefits of gettext is that it separates programming from translating. The most commonly used implementation of gettext is GNU gettext, released by the GNU Project in 1995. The runtime library is libintl. gettext provides an option to use different strings for any number of plural forms of nouns, but this feature has no support for grammatical gender. The main filename extensions used by this system are .POT, .PO and .MO.

<span class="mw-page-title-main">Comparison of command shells</span>

A command shell is a command-line interface to interact with and manipulate a computer's operating system.

Tise is a Tibetan input method utility for Windows XP, Windows Vista and Windows 7 created by Grigory Mokhin. The name of the program refers to the native name of Mount Kailash in Tibet.

OpenVanilla (OV) is a free, open-source text-entry and processing architecture, and includes a collection of popular input methods and text processing filters. It serves as a bridge between input methods and the operating system. It was originally designed to offer a better text-entry experience and alternative input methods not found in Apple's built-in set or suit better the needs for Windows "switchers." However, the developers have since worked on a Microsoft Windows port and a bridge between OV and SCIM on the X Window System. The macOS version is compatible with Mac OS X 10.3 (Panther) and Mac OS X 10.4 (Tiger). OV's input methods can also be used through SCIM on Linux or FreeBSD. An experimental Win32 Unicode version is also available.

uim is a multilingual input method framework. Applications can use it through so-called bridges.

Dynamic loading is a mechanism by which a computer program can, at run time, load a library into memory, retrieve the addresses of functions and variables contained in the library, execute those functions or access those variables, and unload the library from memory. It is one of the 3 mechanisms by which a computer program can use some other software; the other two are static linking and dynamic linking. Unlike static linking and dynamic linking, dynamic loading allows a computer program to start up in the absence of these libraries, to discover available libraries, and to potentially gain additional functionality.

<span class="mw-page-title-main">Vala (programming language)</span> Programming language

Vala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system.

GVfs is GNOME's userspace virtual filesystem designed to work with the I/O abstraction of GIO, a library available in GLib since version 2.15.1. It installs several modules that are automatically used by applications using the APIs of libgio. There is also FUSE support that allows applications not using GIO to access the GVfs filesystems.

The X Input Method was the original input method framework for the X Window System.

<span class="mw-page-title-main">GIO (software)</span>

GIO is a library, designed to present programmers with a modern and usable interface to a virtual file system. It allows applications to access local and remote files with a single consistent API, which was designed "to overcome the shortcomings of GnomeVFS" and be "so good that developers prefer it over raw POSIX calls."

<span class="mw-page-title-main">Intelligent Input Bus</span> Framework for multilingual input

The Intelligent Input Bus is an input method (IM) framework for multilingual input in Unix-like operating-systems. The name "Bus" comes from its bus-like architecture.

<span class="mw-page-title-main">Chewing (Input Method)</span>

The Chewing (酷音) input method is an intelligent Zhuyin input method. It is one of the most popular input methods among Traditional Chinese Unix users.

Bengali input methods refer to different systems developed to type the characters of the Bengali script for Bengali language and others, using a typewriter or a computer keyboard.

<span class="mw-page-title-main">API</span> Software interface between computer programs

An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build or use such a connection or interface is called an API specification. A computer system that meets this standard is said to implement or expose an API. The term API may refer either to the specification or to the implementation. Whereas a system's user interface dictates how its end-users interact with the system in question, its API dictates how to write code that takes advantage of that system's capabilities.

<span class="mw-page-title-main">Fcitx</span>

Fcitx stands for Flexible Context-aware Input Tool with eXtension support, is an input method framework with extension support for the X Window System that supports multiple input method engines including Pinyin transcription, table-based input methods, fcitx-chewing for Traditional Chinese, fcitx-keyboard for layout-based ones, fcitx-mozc for Japanese, and fcitx-hangul for Korean.

References

  1. A new stable version has been released, the main change is the incorporation of scim-bridge. / scim News / News / SCIM - SCIM
  2. IMmodules Archived 2007-08-04 at the Wayback Machine
  3. An overview of the available characters can be found at the M17n library website: "The m17n Library". Archived from the original on 2008-11-22. Retrieved 2009-01-19.