正確な時間を保つためには、/etc/localtimeが正しいタイムゾーンデータを含んでいなければなりません。 /usr/share/zoneinfo/を見渡してあなたのタイムゾーンか近くにある大きな都市を選んでください。 /usr/share/zoneinfo/Etc/GMT*のタイムゾーンは、必要なタイムゾーンの名前を示していないので避けてください。 例えば、GMT-8は実際にはGMT+8を指します。
コード表示 1.1: タイムゾーンの設定 |
# cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime # date Sun Feb 16 08:26:44 CET 2003 |
注意: タイムゾーン表示(この場合ではCET)があなたの地域にとって正しい物かを確かめてください。 |
注意: ユーザーレベルの設定のために、/usr/share/zoneinfoに基づくTZを、シェルのrcファイル(bashでは.bash_profile)に設定することができます。 このケースではTZ="Europe/Berlin"となります。 |
ほとんどのGentoo Linuxのインストールでは、システムクロックがUTC(もしくはグリニッジ標準時のGMT)に設定されていて、正しいローカルタイムに設定しようとしています。 もし、何らかの理由で、UTC以外のシステムクロックに設定する必要があるときには、/etc/conf.d/clockにあるCLOCKの値をUTCからlocalへ変更してください。
コード表示 2.1: ローカル vs. GMTクロック |
推奨 CLOCK="UTC" もしくは CLOCK="local" |
ロケールとは1組の情報セットであり、大部分のプログラムが国と言語特定の設定を決定するのに使用します。 ロケールとそのデータはシステムライブラリの一部であり、たいていのシステムの/usr/share/localeにあります。 ロケール名は一般的にab_CDとなり、abは2文字(もしくは3文字)の(ISO-639で指定された)言語コード、CDは2文字の(ISO-3166で指定された)国コードをそれぞれ表しています。
ロケール設定は環境変数に保存されます。 それらは典型的に、/etc/env.d/02locale(システム全体の設定)と~/.bashrc(ユーザ特有の設定)ファイルで設定されます。 ロケール設定の異なった局面を制御する変数を、優先順位の高い順(例えば、それよりも下の設定を上書きします)に、以下のテーブルに示します。 全ての変数は、上で与えられた、ab_CDフォーマットのロケール名を持ちます。
| 変数名 | 説明 |
| LC_ALL | 全てのロケール設定を一度に定義します。これは他のどの設定をも上書きする、最も順位の高いロケールの設定です。 |
| LC_COLLATE | 文字列のアルファベットの順序を定義します。これは例えば、ソート済みのディレクトリ一覧を出力するときに影響します。 |
| LC_CTYPE | システム用の文字の取り扱いの特性を定義します。これは、どの文字がアルファベット、数値などの一部と考えられるかを決定します。また、これは適用できれば、使用する文字集合を決定します。 |
| LC_MESSAGES | 大部分のGnuプログラムで利用されているローカライズ機能について、どのように地域言語を特定するのか?どのようにプログラム自身が保持していない地域言語を取得するのか?どのように動作するのか?というより詳しい情報は次章を参照してください。 |
| LC_MONETARY | 通貨単位と通貨のフォーマットを定義します。 |
| LC_NUMERIC | 通貨ではない数値のフォーマットを定義します。千や小数点の区切りなどに影響します。 |
| LC_TIME | 日付と時間のフォーマットを定義します。 |
| LC_PAPER | 初期の用紙サイズを定義します。 |
| LANG | 全てのロケール設定を一度に定義します。 この設定は上で説明した個々のLC_*設定やLC_ALLで上書き可能です。 |
注意: ほとんどのプログラムがLC_ALLでのみ動作するにもかかわらず、LC_ALLが設定されているがLANGが設定されていない場合には不具合を起こす物もあります。 安全のため、両方を設定してください。 |
大半の典型的なユーザは、シェル起動ファイルにコマンドラインから手動で環境変数を設定することによって、LANG変数や、もしかするとLC_CTYPEをユーザレベルに設定するだけです。
コード表示 3.1: ~/.bashrcにユーザロケールを設定する |
export LANG="de_DE@euro" |
注意: ユーロ通貨記号(€)を使用したいのなら、ロケールに@euroを追加します。 |
全てのユーザとプログラム向けにシステムワイドなロケール設定も可能にします。
コード表示 3.2: /etc/env.d/02localeにデフォルトのシステムロケールを設定する |
LC_ALL="de_DE@euro" LANG="de_DE@euro" |
一般的な方法は、デフォルトのシステムロケールを設定せずに、ユーザごとのロケールのみを設定する使い方です。 この場合、システムロケールは、特別な値である"C"を規定値にします。 これは歴史的な理由で、英語ロケールにマッピングされます。
ローカライズを元にしたメッセージをサポートしているプログラムでそれを動作させるには、もしかするとUSEフラグでnls (母国語サポート)を設定してコンパイルする必要があるかもしれません。 nlsを使用する大半のプログラムは、ローカライズメッセージを取り出して使用するためにgettextライブラリも必要です。 もちろん、Portageは、必要なときには自動的にgettextライブラリをインストールします。
正しいロケールを設定したら、システムが変更を認識するために環境変数を更新するようにしてください。
コード表示 3.3: 環境変数の更新 |
(システムワイドの標準ロケールを設定する場合) # env-update && source /etc/profile (ユーザごとにロケールを設定する場合) $ source ~/.bashrc |
これが完了したら、Ctrl-Alt-Backspaceを押してXサーバを強制終了し、ログアウトして、ユーザとしてログインします。
では、変更が正しく行われているかを確認します。
コード表示 3.4: 変更の確認 |
$ env | grep -i LC_
|
LINGUASという追加のローカライズ変数もあります。 これはgettextベースのプログラムがインストールされる際のローカライズファイルに影響し、kde-base/kde-i18nやapp-office/openofficeといった特定のソフトウェアパッケージでローカライズの使用を決定します。 変数はスペースで区切られた言語コードを受け入れ、/etc/make.confで設定することが提案されています。
コード表示 3.5: LINGUASをmake.confで設定する |
# nano -w /etc/make.conf (LINGUAS変数を追加します。例えば、ドイツ語、フランス語、英語なら以下のようにします) LINGUAS="de fi en" |
デフォルトで利用できないロケールを利用したいなら、localedefを利用してあなたの位置を作成します。 以下に例を示します。
コード表示 3.6: localedefを利用してロケールを作成 |
# localedef -c -i en_US -f ISO-8859-15 en_US.ISO-8859-15
|
ロケールを作成した後は、LANG変数が合うようにexportします。
コード表示 3.7: LANG変数をexport |
# export LANG="en_US.ISO-8859-15"
|
変更後に環境を更新してください。
コード表示 3.8: 環境の更新 |
# env-update && source /etc/profile
|
これが完了したら、Ctrl-Alt-Backspaceを押してXサーバを強制終了し、ログアウトして、ユーザとしてログインします。
あなたは恐らくシステムで1つか2つのロケールしか利用しないでしょう。 /etc/locale.genで必要なロケールを指定できます。
コード表示 3.9: /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 |
次のステップではlocale-genを実行します。これにより、 /etc/locale.genファイルで指定された全てのロケールが生成されます。
注意: locale-genは、glibc-2.3.6-r4以降で利用可能です。 glibcがそれよりも古いバージョンの場合には、すぐにアップデートして下さい。 |
コンソールで使われるキーボードのレイアウトは、/etc/conf.d/keymapsのKEYMAP変数によって設定されています。 有効な値は/usr/share/keymaps/{arch}/で見つかります。 i386はより細分化されたレイアウトです(qwerty/、azerty/など)。 いくらかの言語には複数のオプションがありますので、どれが要求に一致しているのかいろいろ試してみてください。
コード表示 4.1: コンソールキーマップを設定 |
KEYMAP="de" KEYMAP="de-latin1" KEYMAP="de-latin1-nodeadkeys" |
Xサーバで使われるキーボードレイアウトは、/etc/X11/xorg.confのXkbLayoutオプションで設定されています。
コード表示 5.1: Xキーマップを設定 |
Section "InputDevice"
Identifier "Keyboard1"
...
Option "XkbLayout" "de"
# Option "XkbModel" "pc105" ## これは国際キーボード向けです
# Option "XkbVariant" "nodeadkeys" ## これはxtermの入力に使用されます
...
|
国際キーボードを使用しているのなら、XkbModelオプションをpc102かpc105に設定するべきです。 これは、キーボード特有の追加キーのマッピングを行えるようになります。
Deadkeysは、押したキーがすぐには表示されず、他の文字と組み合わせることによりテゥ、ティ、テ。、テなどの単一の文字となるようにするようものです。 XkbVariantをnodeadkeysに設定することにより、これらの特別な文字をXターミナルで入力できるようになります。
2つ以上のキーボードレイアウト(英語とロシア語など)を切替えて使用したいのなら、するべき事はxorg.confにレイアウトとショートカットコマンドの数行を追加するだけです。
コード表示 5.2: 2つのキーボードレイアウトを切替える |
Section "InputDevice"
Identifier "Keyboard1"
...
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
|
ここで、XkbOptionsを設定することでAlt-Shiftを押すことでキーボードレイアウトを切替えられるようになります。 また、grp_led:scrollオプションによって、Scroll Lockライトのオンオフの切替えも行えるようになります。 これにより、現在どのキーボードレイアウトを使用しているかを視覚的に認識できます。
KDEではkde-base/kde-i18nパッケージをインストールします。 kde-i18nは前に述べたLINGUAS変数を重視します。
コンソールでユーロ記号を使えるようにするには、/etc/conf.d/consolefontのCONSOLEFONTを/usr/share/consolefonts/にあるファイル(.psfu.gzを除く)に設定する必要があります。 lat9w-16がユーロ記号です。
コード表示 7.1: コンソールフォントを設定 |
CONSOLEFONT="lat9w-16" |
CONSOLEFONTがbootランレベルにあることを確認するべきです。
コード表示 7.2: 適切なランレベルにあることを確認 |
# rc-update show | grep -i consolefont
|
CONSOLEFONTに何のランレベルも表示されていなければ、適切なレベルに追加してください。
コード表示 7.3: consolefontをbootに追加 |
# rc-update add consolefont boot
|
Xで正しくユーロ記号を動作させるにはちょっと大変です。 まずは、/usr/X11R6/lib/X11/fonts/misc/fonts.aliasにあるfixedとvariable変数の最後を、iso8859-1からiso8859-15へと置き換えます。
コード表示 8.1: デフォルトXフォントを設定 |
fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15 variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15 |
いくらかのアプリケーションはそれ自身のフォントを使用しているので、それらにユーロ記号のフォントを別に使うよう指示しなければなりません。 これは、ユーザー特有のレベルでは.Xdefaults(/etc/skel/からコピーすることもできます)で、 もしくは(xtermのように)いくつかのアプリケーションの全体レベルでは/usr/X11R6/lib/X11/app-defaults/にあるリソースファイルを変更することで行えます。 これらのファイルでは、一般的に新しく追加するよりも既にある行を変更した方がよいでしょう。 例えば、xtermのフォントを変更するには以下のようにします。
コード表示 8.2: xtermのフォントを設定 |
(ホームディレクトリで) $ echo 'XTerm*font: fixed' >> .Xresources $ xrdb -merge .Xresources |
(X)Emacsでユーロ記号を使うには、.Xdefaultsに以下のように追加します。
コード表示 8.3: emacsのフォントを設定 |
Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-15 |
(単なるEmacsではなく)XEmacsでは、もう少しすることがあります。 /home/user/.xemacs/init.elに以下のように追加します。
コード表示 8.4: xemacsのフォントを設定 |
(define-key global-map '(EuroSign) '[€]) |
注意: []の中の記号はユーロ記号です。 |
現在のstableなapp-office/openofficeとapp-office/openoffice-binのebuildはGUI言語パックを選択するためにLINGUAS変数をサポートしています。 そのため、ローカライズされたOpenOffice.Orgを使うためには、ソースバージョンか、自己責任でunstableなバイナリバージョンのどちらかをインストールしなければなりません。 あなたの言語でのGUI翻訳、ハイフン接続、スペルチェック、そして他のローカライズの状態を確認するには、OpenOffice.Org localisationを参照してください。