Localization - ArchWiki

# Localization

From ArchWiki
Jump to navigation Jump to search

This is the main article on localization (often also referred to as l10n). It is meant to offer guidance, as well as cross-link other relevant articles, to customize settings of an Arch Linux installation to work with any supported language.

The article makes use of subpages for instructions specific for languages:

- /Chinese
- /Indic
  - /Sinhalese
- /Japanese
- /Korean

Subpages without an English counterpart:

- ru:Localization/Russian
- sk:Localization/Slovak

## Fonts

For the list of available font packages in Arch Linux see the Fonts article.

## Locale

See Locale.

## Keyboard layouts

See Keyboard configuration in console and Keyboard configuration in Xorg.

## Input methods

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: Does the subsection structure still fit and is appropriate for the main article? Can you help with integrating the comments referred to in ArchWiki:Requests#Input_methods to improve the article? (Discuss in Talk:Localization#)

This article or section needs expansion.

Reason: What input methods are available for Wayland? IBus seems to support Wayland. (Discuss in Talk:Localization#)

From Fedora:I18N/InputMethods:

  An input method (IM) is a way to input a certain set of characters and symbols, usually because a keyboard does not directly support them.

Most input methods are part of an IM framework, which lets the user easily switch between multiple input methods. These input methods are either included with the framework or packaged separately. Programs implementing input methods are called IM engines. The input methods available for a language are listed in the respective language subpage.

The available IM frameworks are:

- Fcitx — Input method framework with extension support.

  https://fcitx-im.org/ || fcitx

- gcin — Input method server supporting various input methods.

  http://hyperrate.com/dir.php?eid=67 || gcin

- Hime — Universal input method platform.

  https://hime-ime.github.io/ || hime-gitAUR

- IBus — Intelligent Input Bus, a next generation input framework.

  https://github.com/ibus/ibus/wiki || ibus

- Nimf — A multilingual input method framework which inherits Dasom.

  https://gitlab.com/nimf-i18n/nimf || nimfAUR

- SCIM — The Smart Common Input Method platform.

  https://github.com/scim-im/scim || scim

- uim — Multilingual input method framework to provide simple, easily extensible and high code-quality input method development platform, and useful input method environment for users of desktop and embedded platforms.

  https://github.com/uim/uim || uim

Unmaintained:

- Dasom — Multilingual input method framework.

  https://dasom-im.github.io/ || dasom-gitAUR

See also Wikipedia:List of input methods for Unix platforms.

### Input method engines

Language | Back-end | Fcitx | IBus | SCIM | uim | gcin | Hime
--- | --- | --- | --- | --- | --- | --- | ---
Vietnamese | UniKey | fcitx-unikey | ibus-unikey | scim-unikey | - | - | -
Others | m17n-lib | fcitx-m17n | ibus-m17n | scim-m17nAUR | depends | ? | ?

### GTK IM-module

- SCIM with the socket FrontEnd module binds to the GTK Im-Module
- uim
- fcitx

#### Disabling GTK IM modules (without uninstalling)

First some background information on how GTK loads and selects IM modules:

- Specifying an IM module

1. `GTK_IM_MODULE` environment variable
   1. GTK_IM_MODULE="scim" gedit
2. `XSETTINGS` value of Gtk/IMModule

- File listing possible IM modules

1. `GTK_IM_MODULE_FILE` environment variable
2. RC files
3. `/etc/gtk-2.0/gtk.immodules`

If no IM module is specified (either via GTK_IM_MODULE or in XSETTINGS), then GTK will automatically choose a suitable immodule from an internal listing (GTK_IM_MODULE_FILE... etc). This chosen IM module will depend on the software installed, and will be picked in a completely arbitrary order.

For a listing of installed GTK immodules, see

- `/usr/lib/gtk-2.0/modules/`
- `/usr/lib/gtk-2.0/2.10.0/immodules/`

XSETTINGS provides a common API to configure common desktop settings. Similar database configuration systems such as gnome-config, GConf, liproplist and the kde configuration system already exist, however XSETTINGS unifies these systems. XSETTINGS daemons, such as gnome-settings-daemon from gnome, xfce-mcs-manager from xfce4, and other from openbox, etc, push desktop-environment-specific data to the XSETTINGS database. Technically, XSETTINGS is a simple storage medium intended to store only strings, integers and colors. When an XSETTINGS manager quits, the clients restore all settings to their default values.

The if GTK has debugging enabled, the loaded modules can be seen by

    $ application --gtk-debug modules

Otherwise, the modules can be seen by scanning the linked libraries in gdb after attaching to the process.

To prevent GTK from loading any IM modules

- set `GTK_IM_MODULE` to the empty string
- set `GTK_IM_MODULE` to "gtk-im-context-simple"

### QT immodule (> QT 4.0.0)

- SCIM with the socket FrontEnd module binds to the QT IM-Module
- uim
- fcitx

#### Disabling QT IM modules (without uninstalling)

QT will load the IM module specified in `QT_IM_MODULE`, and if unset attempt to fall back on XIM.

1. `QT_IM_MODULE` environment variable
2. XIM

To disable input method module loading in QT, export `QT_IM_MODULE="simple"`.

## See also

- Gentoo wiki
- Fedora wiki
- Free Standards Group OpenI18N
- XSETTINGS 0.5 Specification
- Running and Debugging GTK Applications

Category:

- Localization

Hidden categories:

- Pages or sections flagged with Template:Style
- Pages or sections flagged with Template:Expansion