地域化の設定は、言語コード、 国コード、エンコーディングという三つの要素を基本とします。 ロケール名はこれらから以下のように構成されます。
言語コード_国コード.エンコーディング
言語コード および
国コード は、
国と言語を特定するために用いられます。
表16.1「言語および国コード」 では、
言語コード_国コード
の例を示します
利用可能なすべてのロケールを調べるには、 以下のように実行してください。
%locale -a | more
現在のロケールの設定を調べるには、 以下のコマンドを実行してください。
%locale
言語固有の、C 言語の char で表現できる ISO8859-1, ISO8859-15, KOI8-R, CP437 といったシングルバイトの文字セットについては、 multibyte(3) を参照してください。 現在有効な文字セットのリストは、IANA Registry で確認できます。
いくつかの言語 (例えば中国語や日本語) は、 ASCII 文字では表すことができないので、 ワイド文字や多バイト文字を用いた拡張された言語のエンコードが必要となります。 ワイド/多バイトのエンコーディングの例は、EUC および Big5 です。 古いアプリケーションの中には、 これらのエンコードを誤ってコントロール文字として認識するものがありますが、 最近のアプリケーションは、大抵これらの文字を認識します。 実装方法にも依りますが、アプリケーションのコンパイル時もしくは configure 時に、ワイド/多バイト文字のサポートを指定する必要があるかも知れません。
FreeBSD では、Xorg 互換のロケール符号を用いています。
以下では、FreeBSD システムにおいてロケールを設定する方法について説明します。 次の節では、i18n に対応するアプリケーションの見つけ方およびコンパイル方法について説明します。
ロケールの設定は、ユーザの
~/.login_conf、
またはユーザのシェルの初期設定ファイルである
~/.profile,
~/.bashrc または ~/.cshrc
で行います。
以下の二つの環境変数を設定する必要があります。
これらの変数は、ユーザのシェルの設定ファイルに加え、 アプリケーション固有の設定ファイル、 および Xorg の設定ファイルにおいても指定される必要があります。
必要な変数を割り当てるには、二つの方法があります。 ログインクラス において割り当てる方法 (推奨される方法です)、および 初期化ファイル で指定する方法です。 次の 2 つの節では、この両方の方法について説明します。
最初に説明する方法は、 すべてのシェルにおいて必要なロケール名と MIME 文字セットを環境変数に割り当てます。 これは推奨される方法です。 この割り当て方法としては、各ユーザが行う方法と、 スーパーユーザがすべてのユーザに対して設定する 2 つの方法があります。
以下の簡単な例では、
各ユーザのホームディレクトリの
.login_conf
で、両方の変数に Latin-1 エンコーディングを設定します。
me:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:
これは、BIG-5
エンコーディングされた繁体字中国語用の環境変数を設定するユーザの
~/.login_conf の一例です。
中国語、日本語、
韓国語用のロケール変数を正しく認識しないソフトウェアに対応するため、
より多くの変数に対する設定が行われています。
#Users who do not wish to use monetary units or time formats #of Taiwan can manually change each variable me:\ :lang=zh_TW.Big5:\ :setenv=LC_ALL=zh_TW.Big5,LC_COLLATE=zh_TW.Big5,LC_CTYPE=zh_TW.Big5,LC_MESSAGES=zh_TW.Big5,LC_MONETARY=zh_TW.Big5,LC_NUMERIC=zh_TW.Big5,LC_TIME=zh_TW.Big5:\ :charset=big5:\ :xmodifiers="@im=gcin": #Set gcin as the XIM Input Server
もう一つの方法では、
スーパーユーザがシステム上のすべてのユーザに対する地域化を設定します。
/etc/login.conf
の以下の変数により、ロケールおよび MIME
文字セットを設定します。
language_name|Account Type Description:\ :charset=MIME_charset:\ :lang=locale_name:\ :tc=default:
よって、先ほどの例における Latin-1 に対する設定は、 以下のようになります。
german|German Users Accounts:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:\ :tc=default:
詳細に関しては
login.conf(5) を参照してください。
なお、russian
クラスはあらかじめ定義されています。
/etc/login.conf を編集したら、
忘れずに以下のコマンドを実行してケイパビリティデータベースをアップデートしてください。
#cap_mkdb /etc/login.conf
エンドユーザは、変更を反映させるために、各自の
~/.login_conf に対して
cap_mkdb
コマンドを実行する必要があります。
/etc/login.conf
を手動により編集する方法に加え、
新たに作成するユーザのロケールを設定するためのユーティリティがあります。
vipw
を使って新しいユーザを追加する際には、使用する言語を
language に指定してください。
user:password:1111:11:language:0:0:User Name:/home/user:/bin/shadduser
を使って新しいユーザを追加する場合に、
すべてのユーザに対するデフォルトの言語は事前に設定でき、
個々のユーザに対する言語を指定できます。
新しく追加するすべてのユーザが同じ言語を使う場合には、
/etc/adduser.conf で
defaultclass=
と設定してください。language
新しいユーザを作成するときに、この設定を変更するには、 以下のプロンプトにおいて希望するロケールを指定してください。
Enter login class: default []: もしくは、adduser
を実行する際にロケールを指定してください。
#adduser -classlanguage
pw
を使って新しいユーザを追加する場合には、
以下のようにしてロケールを指定してください。
#pw useradduser_name-Llanguage
すでに存在するユーザのログインクラスを変更するには、
chpass を使用してください。
引数として変更するユーザ名を与えて、
スーパーユーザの権限で実行してください。
#chpassuser_name
この 2 番目の方法は、
使用するシェルごとに手動での設定が必要なため、推奨されません。
シェル毎に設定ファイルが存在し、その構文はシェルに依存します。
たとえば、sh
シェルに対するドイツ語の設定では、
そのユーザのシェルを設定するためだけに、
~/.profile に以下の行を追加ます。
これらの行を /etc/profile または、
/usr/share/skel/dot.profile に追加すると、
すべてのユーザのシェルを設定することが可能です。
LANG=de_DE.ISO8859-1; exportLANGMM_CHARSET=ISO-8859-1; exportMM_CHARSET
しかしながら、csh シェルでは、
設定ファイルの名前や構文は異なります。
~/.csh.login,
/etc/csh.login または
/usr/share/skel/dot.login
では同じ設定です。
setenvLANGde_DE.ISO8859-1 setenvMM_CHARSETISO-8859-1
さらに面倒なことに、
Xorg を設定するための
~/.xinitrc における構文は、
使用しているシェルに依存します。
以下の例において、最初は sh
シェルに対するもので、2 番目が
csh シェルに対するものです。
LANG=de_DE.ISO8859-1; exportLANG
setenv LANG de_DE.ISO8859-1コンソールで利用可能な地域化されたフォントがあります。
利用できるフォントの一覧を調べるには、
ls /usr/share/syscons/fonts
と入力してください。
コンソールのフォントを設定するには、
.fnt という拡張子を除いた
フォント名 を、
/etc/rc.conf に設定してください。
font8x16=フォント名font8x14=フォント名font8x8=フォント名
以下を /etc/rc.conf に追加することで、
キーマップおよびスクリーンマップを指定できます。
scrnmap=スクリーンマップ名keymap=キーマップ名keychange="ファンクションキー番号の並び"
利用可能なスクリーンマップの一覧を調べるには、
ls /usr/share/syscons/scrnmaps
と入力してください。
/etc/rc.conf で
スクリーンマップ名 を指定する時は、
.csm という拡張子を除いてください。
スクリーンフォントが bit 8
列を使っている時に文字を疑似グラフィクス領域から外に移動するように、
VGA アダプタがフォント文字マトリクスで
bit 8 を bit 9 に拡張することに対処するため、
フォントに適切にマップされたスクリーンマップが必要となります。
利用可能なキーマップの一覧を調べるには、
ls /usr/share/syscons/keymaps
と入力してください。
/etc/rc.conf で
キーマップ名 を指定する時には、
.kbd という拡張子を除いてください。
再起動せずにキーマップを試すには、
kbdmap(1) を使ってください。
ファンクションキーの並びはキーマップで定義されていないので、
端末タイプに合わせたファンクションキーを設定するために
keychange のエントリが必要となります。
次に /etc/ttys
の中のすべての仮想端末のエントリに対して、
正しいコンソール端末タイプを設定してください。表16.2「文字セットに対する定義済みの端末タイプ」 は、
利用可能な端末タイプの一覧です。
| 文字セット | 端末タイプ |
|---|---|
| ISO8859-1 もしくは ISO8859-15 | cons25l1 |
| ISO8859-2 | cons25l2 |
| ISO8859-7 | cons25l7 |
| KOI8-R | cons25r |
| KOI8-U | cons25u |
| CP437 (VGA のデフォルト) | cons25 |
| US-ASCII | cons25w |
ワイド/多バイト文字の言語については、
その言語に対するコンソールを FreeBSD Ports Collection
からインストールしてください。
利用可能な ports は、表16.3「Ports Collection で利用可能なコンソール」 にまとめてあります。
インストール後、各 port の pkg-message
または、マニュアルページを参照して、
設定や使用方法を調べてください。
| 言語 | port の位置 |
|---|---|
| 繁体字中国語 (BIG-5) | chinese/big5con |
| 中国語/日本語/韓国語 | chinese/cce |
| 中国語/日本語/韓国語 | chinese/zhcon |
| 日本語 | chinese/kon2 |
| 日本語 | japanese/kon2-14dot |
| 日本語 | japanese/kon2-16dot |
/etc/rc.conf において
moused を有効にしている場合には、
追加の設定が必要となるでしょう。
デフォルトでは、syscons(4)
ドライバのマウスカーソルはキャラクタセット中の
0xd0-0xd3
の範囲を占めています。そのため、
利用している言語がこの範囲のキャラクタセットを使っている場合、
次の行を /etc/rc.conf に追加して
カーソルの占める範囲を移動してください。
mousechar_start=3
Xorg のインストールおよび設定方法は、
5章X Window System で説明されています。
Xorg
を地域化するための追加のフォントおよび入力方法は、
FreeBSD Ports Collection から利用できます。
フォント、メニューなどのアプリケーション固有の国際化
(i18n) の設定は、
~/.Xresources において指定でき、
グラフィカルアプリケーションのメニューが選んだ言語で表示されます。
X Input Method (XIM) プロトコルは、Xorg で非英字文字を入力するための標準規格です。 FreeBSD Ports Collection から利用可能なインプットメソッドについては、 表16.4「利用可能なインプットメソッド」 にまとめられています。 追加の Fcitx および Uim アプリケーションも利用できます。
本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。