ローカライゼーション/ガイド

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Localization/Guide and the translation is 84% complete.

Other languages:
čeština • ‎Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎русский • ‎中文(中国大陆)‎

標準時

現在位置に応じて、システム時間を維持するために、時間帯を設定する必要があります。OpenRCベースのシステムおよびsystemdベースのシステムのためにこれを行う方法手順は、システム時刻の記事で見つけることができます。

ロケールシステム

ロケールとは何ですか?

ロケールは、国や言語に特有の設定を決定するために使う情報の集合体で、大抵のプログラムがこれを利用します。ロケールとそのデータはシステムライブラリの一部であり、ほとんどのシステムにおいて /usr/share/i18n/locales/ にあります。ロケール名は一般に、ab_CDという形式で命名されます。ここでabは2 (または3) 文字の言語コード (ISO-639で規定) であり、CDは2文字の国コード (ISO-3166で規定) になります。多くの場合、@euroまたは@latinのような変形情報 (バリアント) がロケール名に追加されます。 例えば、de_DE@euronan_TW@latinです。ロケールと関連する記事をもっと読むには、Wikipedia (英語) を探してみてください。

ロケール関連の環境変数

ロケール設定の色々な側面を制御する環境変数を以下の表に示します。 これらのすべては、上記のab_CD形式で表記されたロケール名を1つだけ設定できます。

変数名 説明
LANG 一度に全てのロケール設定を定義します。同時に、以下のLC_*設定を使うと、個別のカスタマイズが可能です。
LC_COLLATE 文字列におけるアルファベットの順序を定義します。これは、例えば並び替えされたディレクトリ一覧の出力などに影響を与えます。
LC_CTYPE そのシステムでの文字取り扱い属性を定義します。これは、どの文字がアルファベットや数値などの一部とみなすか、などを決定します。該当する場合、使用される文字集合も決定します。
LC_MESSAGES プログラムで使用するローカライズ言語(/usr/share/locale/ から指定します)。メッセージベースの多言語対応手法 (Gnuプログラムの大部分。詳しい情報は次の章をご覧ください) を使ったアプリケーション用です。
LC_MONETARY 通貨単位と通貨型の数値の書式を定義します。
LC_NUMERIC 通貨ではない数値の書式を定義します。たとえば桁の区切りや小数点記号などのものに影響します。
LC_TIME 日付と時刻の書式を定義します。
LC_PAPER 既定の紙の大きさを定義します。
LC_ALL 他のすべての設定を上書きするための特殊な環境変数です。
注意
あるロケール (特にエストニアのもの) では異なる順序付けを使用しているにも関わらず、いくつかのプログラムは、アルファベットの伝統的な英語での順序付けを期待して書かれています。そのため、システム全体の設定を行う際、明確にLC_COLLATEへCを設定しておくことをお勧めします。
警告
LC_ALLを設定するのは、(LANGを除く)他の全ての LC_*変数の設定を上書きしてしまうので、特に避けるべきです。つまり、LC_ALLをリセットしない限りは他の手段による変更が有効にならないということです。大概は、起動時にLC_ALLを設定することは最良の選択ではないでしょう。

最も一般的なのは、ユーザがLANG変数のみをグローバルに設定することです。

特定のロケールの生成

ほとんどのユーザは、おそらくシステムで1つ、もしかしたら2つのロケールを使用するでしょう。追加のロケールをどのように指定するかについては、ファイル/etc/locale.genの中に説明があります。

CODE ロケールを/etc/locale.genに追加する
en_GB ISO-8859-1
en_GB.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15
注意
ユーロ通貨記号 (€) を非UTF-8ベースのロケールで使う場合、/usr/share/i18n/SUPPORTED/ の中の@euroが付いた値をロケールとして使用してください。

杉のステップは、locale-gen を実行することです。これは、/etc/locale.gen ファイルの中で指定された全てのロケールを生成し、ロケールアーカイブ (/usr/lib/locale/locale-archive) に書き込みます。

root #locale-gen
 * Generating 4 locales (this might take a while) with 1 jobs
 *  (1/4) Generating en_GB.ISO-8859-1 ...                       [ ok ]
 *  (2/4) Generating en_GB.UTF-8 ...                            [ ok ]
 *  (3/4) Generating de_DE.ISO-8859-1 ...                       [ ok ]
 *  (4/4) Generating de_DE.ISO-8859-15@euro ...                 [ ok ]
 * Generation complete

locale -a を実行して、選択したロケールが使用可能かを確認してください。

user $locale -a
C
POSIX
de_DE
de_DE.iso88591
de_DE.iso885915@euro
de_DE@euro
deutsch
en_GB
en_GB.iso88591
en_GB.utf8
german

/usr/lib/locale/locale-archive ファイルは、localedef を使って表示できます。

user $localedef --list-archive

その未加工の内容は、strings コマンドを使って表示可能です。

user $strings /usr/lib/locale/locale-archive | less

ロケール設定

OpenRC

OpenRCを使用する際、ロケール設定は環境変数に格納されます。一般的には、/etc/env.d/02locale (システム全体の設定用) と ~/.bashrc (ユーザ固有の設定用) ファイルで設定します。詳細は記事UTF-8に記載されています。システム全体の設定 (/etc/env.d/02locale) は eselect locale を通じて管理できます。例えば、LANG変数をCという値に設定するには:

root #eselect locale list
Available targets for the LANG variable:
  [1]   C 
  [2]   POSIX
  [3]   en_US
  [4]   en_US.iso885915
  [5]   en_US.utf8
  [ ]   (free form)
root #eselect locale set 1

もちろん、手動でファイルを編集することで、ロケール変数を様々に変化させることも可能です。

FILE /etc/env.d/02locale/etc/env.d/02locale でシステムのデフォルトのロケールを設定
LANG="de_DE.UTF-8"
LC_COLLATE="C"

特に、より伝統的なUNIX環境ではかなり一般的なのですが、グローバル設定 を不変のまま (すなわち C ロケール) にしておくことも可能です。それでもユーザは、自分のシェルのRCファイルで自分の優先ロケールを指定することが可能です:

FILE ~/.bashrcユーザ用ロケールの設定
export LANG="de_DE.UTF-8"
export LC_COLLATE="C"

システムを構成する別の方法は、既定はCロケールにしたまま、同時にUTF-8での文字表示を有効にすることです。このオプションは、/etc/env.d/02locale で下記のような設定を使用することで実現できます:

CODE UTF-8を指定しながらの伝統的なCロケールの使用
LC_CTYPE=de_DE.UTF-8

上記のスニペットを使うと、ユーザは選択した言語を全面的に使用しなくとも、ローカライズされたファイル名を適切に見ることができるようになります。

一旦、正しいロケールを設定したら、変更をシステムに認識させるため、環境変数を更新してください。

システム全体の既定ロケールならば:

root #env-update && source /etc/profile

ユーザ固有のロケールならば:

user $source ~/.bashrc

その後、Ctrl+Alt+Backspaceを押してXサーバを殺し 、ログアウトしてからユーザとしてログインしてください。

では、変更内容が反映されていることを確認してください:

user $locale

systemd

systemdの場合、ロケールの設定には localectl コマンドを使います。利用可能なロケール一覧を確認するには:

root #localectl list-locales

次に、目的のロケールを設定します:

root #localectl set-locale LANG=de_DE.utf8

最後に結果がうまくいっているかを確認してください:

root #localectl | grep "System Locale"
   System Locale: LANG=de_DE.utf8

コンソール用のキーボードレイアウト

OpenRC

コンソールが使用するキーボードのレイアウトは、/etc/conf.d/keymapsの中のkeymap変数によって設定されています。有効な値は/usr/share/keymaps/YOUR_ARCH/に記載されています。i386は、更にレイアウトごとに細分化されています (例えばqwerty/azerty/)。さまざまなオプションの、どれがニーズに対して最高に適合しているかの決定を試みるため、いくつかの言語には複数のオプションがあります。

FILE /etc/conf.d/keymapsコンソール用キーマップの設定
keymap="de"
#keymap="de-latin1"
#keymap="de-latin1-nodeadkeys"

systemd

systemdでは、コンソールで使用されるキーマップレイアウトは localectl コマンドを使って設定できます。最初に、利用可能なキーマップレイアウトを確認します:

root #localectl list-keymaps

次に、要求されたコンソールキーマップレイアウトを設定します:

root #localectl set-keymap it

最後に適切にコンソールキーマップレイアウトが設定されているかを確認します:

root #localectl | grep "VC Keymap"
       VC Keymap: it

Xサーバ用のキーボードレイアウト

OpenRC

Xサーバが使用するキーボードレイアウトは、/etc/X11/xorg.conf.d/30-keyboard.confの中の XkbLayout オプションで指定されています。詳細は、Xorgガイドキーボードレイアウトの切り替えの記事を参照してください。

systemd

systemdでは、X11サーバで使用されるキーマップレイアウトは localectl コマンドを使って設定できます。最初に、利用可能なX11キーマップレイアウトを確認します:

root #localectl list-x11-keymap-layouts

次に、要求されたX11キーマップレイアウトを設定します:

root #localectl set-x11-keymap it

最後に適切にX11キーマップレイアウトが設定されているかを確認します:

root #localectl | grep "X11 Layout"
      X11 Layout: it

NLS

For message based localization to work in programs that support it and have the nls (Native Language Support) USE flag, compile the programs with this flag set. Message strings are installed in /usr/share/locale/<locale>/LC_MESSAGES/<package>.mo files. Most of the programs using NLS also need the gettext library to extract and use localized messages. Of course, Portage will automatically install it when needed.

After enabling the nls USE flag some packages might need to be re-emerged:

root #emerge --ask --changed-use --deep --with-bdeps=y @world

LINGUAS

There is also an additional USE_EXPAND flag called LINGUAS [1], which affects the localization files that get installed in gettext-based programs. The variable takes in space-separated list of language codes, and a suggested place to set it is /etc/portage/make.conf:

root #nano -w /etc/portage/make.conf
## (LINGUAS 変数を追加する。例えばドイツ語とフィンランド語と英語:)
LINGUAS="de fi en"

With LINGUAS="", most ebuilds would install only the packages' default language but none of the LC_MESSAGES files.

A list of installed programs making use of the LINGUAS USE_EXPAND flag and their supported languages can be shown as follows:

user $eix -I -U linguas

利用可能なLINGUASの値のリストは /usr/portage/profiles/desc/linguas.desc にあります:

user $grep -i french /usr/portage/profiles/desc/linguas.desc
fr - French locale
fr_CA - French locale for Canada
fr_FR - French locale for France

After setting the LINGUAS USE_EXPAND flag it may be necessary to re-emerge some packages:

root #emerge --ask --changed-use --deep --with-bdeps=y @world
Note
LINGUAS as a USE_EXPAND'ed variable is being replaced by the L10N variable (see below). This avoids a conceptual clash with the standard gettext behaviour. After a transition time for packages to be converted, LINGUAS will become a regular environment variable.

L10N

Another USE_EXPAND variable called L10N decides which extra localization support will be installed. This is commonly used for downloads of additional language packs by packages. Similar to LINGUAS, the variable takes a space separated list of language tags, and it can be set in /etc/portage/make.conf:

root #nano -w /etc/portage/make.conf
## (Add in the L10N variable. For instance, for German and Brazilian Portuguese:)
L10N="de pt-BR"

To set it per-package, edit /etc/portage/package.use and prefix the requested language packs with "l10n_", as shown in the next example:

FILE /etc/portage/package.use
app-text/aspell l10n_de l10n_pt_BR

Note that while the common two letter language codes (like de or fr) are identical in LINGUAS and L10N, more complex entries have a different syntax because L10N uses IETF language tags (aka BCP 47). For example, pt_BR and sr@latin in LINGUAS become pt-BR and sr-Latn in L10N, respectively.

A list of L10N values that can be used is provided as /usr/portage/profiles/desc/l10n.desc:

user $grep -i portuguese /usr/portage/profiles/desc/l10n.desc
pt - Portuguese
pt-BR - Portuguese (Brazil)
pt-PT - Portuguese (Portugal)

After setting the L10N USE_EXPAND variable it may be necessary to re-emerge some packages:

root #emerge --ask --changed-use --deep --with-bdeps=y @world

参考

外部の情報

参照

  1. LINGUAS in Gentoo Development Guide

This article is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Alexander Holler, Steven Lucy, Benny Chuang, Lars Weiler, Tobias Scherbaum, Flammie Pirinen, nightmorph, klondike
They are listed here as the Wiki history does not allow for any external attribution. If you edit the Wiki article, please do not add yourself here; your contributions are recorded on the history page.