ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 国際化対応言語環境の利用ガイド Oracle Solaris 11.1 Information Library (日本語) |
アプリケーションプログラムの重要な概念は、プログラムのロケールの概念です。ロケールとは、あるネイティブ言語環境の明示的なモデルおよび定義のことです。ロケールの概念は、http://opengroup.org からアクセスできる POSIX 規格に明示的に定義されて含まれています。
ロケールは、国に依存する書式設定やその他の仕様が存在するいくつかのカテゴリから構成されます。プログラムのロケールは、そのコードセット、日付や時間の書式設定規則、通貨規則、10 進書式設定規則、および照合 (ソート) 順序を定義します。
ロケール名は、ベースとなる言語、使用する国 (地域)、およびコードセットから構成できます。たとえば、ドイツ語は、Deutsch の略語となる de ですが、スイスのドイツ語は de_CH になります (CH は Confederation Helvetica の略語)。この表記規則により、通貨単位の表記など、国ごとの特定の違いの表現が可能となります。Oracle Solaris 11 のデフォルトのロケールコードセットは、Unicode の ASCII 準拠 8 ビットエンコーディング形式である UTF-8 です。したがって、スイスのドイツ語の完全定義ロケール名は、de_CH.UTF-8 となります。
ある特定の言語に複数のロケールを関連付けることができるため、地域の違いの表現が可能となります。たとえば、英語を話す米国ユーザーが en_US.UTF-8 ロケール (米国向けの英語) を選択できる一方、英語を話す英国ユーザーは en_GB.UTF-8 (英国向けの英語) を選択できます。
一般に、ロケール名は LANG 環境変数で指定します。ロケールカテゴリは LANG に従属しますが、個別に設定することも可能であり、そうした場合にはそれらの設定が LANG をオーバーライドします。LC_ALL 環境変数を設定すると、その設定が、LANG やすべての個別のロケールカテゴリをオーバーライドします。
ロケールの命名規則は次のとおりです。
language[_territory][.codeset][@modifier]
ここで、2 文字の language コードは ISO 639 からのもの、2 文字の territory コードは ISO 3166 からのもの、codeset はこのロケールで使用されるコードセットの名前、modifier は、このロケールと修飾子なしのロケールとを区別するための特性の名前です。
すべての Oracle Solaris 製品のロケールは、US-ASCII コード値を持つポータブル文字セットの文字を保持します。
ポータブル文字セットの詳細については、『X/Open CAE Specification: System Interface Definitions, Issue 5" (ISBN 1-85912-186-1)』を参照してください。
単一のロケールが複数のロケール名を持つことがあります。たとえば、POSIX は C と同じロケールです。
C ロケールは POSIX ロケールとも呼ばれますが、これは、POSIX に準拠するすべてのシステムの POSIX システムデフォルトロケールです。Oracle Solaris オペレーティングシステム は POSIX システムです。C ロケールは『Single UNIX Specification, Version 3』で規定されています。http://www.unix.org/version3/online.html で登録すれば、この仕様を読んだりダウンロードしたりできます。
国際化されたプログラムが C ロケールで実行されるように指定する方法には、次の 2 つがあります。
すべてのロケール環境変数の設定を解除します。C ロケールでアプリケーションを実行します。
$ unset LC_ALL LANG LC_CTYPE LC_COLLATE LC_NUMERIC LC_TIME LC_MONETARY LC_MESSAGES
ロケールを明示的に C または POSIX に設定します。
$ export LC_ALL=C $ export LANG=C
一部のアプリケーションは、setlocale(3C) を実際に呼び出して現在のロケールを参照することなしに、LANG 環境変数をチェックします。この場合、シェルを明示的に C ロケールに設定するには、LC_ALL および LANG ロケール環境変数を指定します。ロケール環境変数間の優先順位の関係については、setlocale(3C) のマニュアルページを参照してください。
ターミナル環境で現在のロケール設定を確認するには、locale(1) コマンドを実行します。
$ locale LANG=C LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_ALL=
文字の分類および大文字/小文字の変換。
月の名前、曜日、一般的な完全表示や短縮表示など、日付や時間の書式を指定します。
ロケールの通貨記号、千の区切り文字、符号の位置、小数点以下の桁数など、通貨の書式を指定します。
小数区切り文字 (または基数文字)、千の区切り文字、およびグループ化を指定します。
ロケールの照合順序および正規表現の定義を指定します。
ロケールのローカライズメッセージの記述言語、および肯定と否定の応答 (yes と no の文字列と表現) を指定します。
言語レンダリングに関する情報を提供するレイアウトエンジンを指定します。言語レンダリング (またはテキストレンダリング) は、文字の形状や方向の属性に依存します。
次の表に、Oracle Solaris 11 のコアロケールの一覧を示します。
表 1-1 言語とコアロケール
|
コアロケールは、追加インストールが可能なロケールよりも、ローカライズメッセージのレベルでより広い範囲をカバーします。インストーラやパッケージマネージャーなどの Oracle Solaris OS コンポーネントはコアロケールでのみローカライズされていますが、GNOME や Firefox といったサードパーティーソフトウェアのローカライズメッセージは通常、より多くのロケールで使用可能となっています。
Oracle Solaris 環境のどのロケールでも、関連する言語やアプリケーションのローカライズメッセージが存在していれば、そのローカライズメッセージを表示できます。pkg のファセットプロパティーを変更すれば、使用可能なすべてのローカライズメッセージを含む追加ロケールを、インストールリポジトリからシステムに追加できます。詳細は、「追加ロケールのインストール」を参照してください。