ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Oracle Solaris 11.1 国際化対応言語環境の利用ガイド Oracle Solaris 11.1 Information Library (日本語) |
数値を書式設定したり、日付や時間を記述したり、単語や語句を区切ったり、書かれたり話されたりした資料を引用したりする際に使用される表記規則は通常、文化ごとに異なります。ロケールは、次の処理、ファイル、書式、および表現をさまざまな地域で処理する方法を決定します。
テキストデータのエンコードや処理
リソースファイルの言語識別やエンコード
テキスト文字列のレンダリングやレイアウト
クライアント間でのテキストの交換
選択された文字のコードセットやテキスト処理の要件に合う入力方式の選択
文化的に固有のフォントやアイコンファイル
ユーザーインタフェース定義 (UID) ファイル
日付や時間の書式
数値の書式
通貨の書式
照合順序
正規表現の処理
情報メッセージや診断メッセージおよび対話式応答の書式
Oracle Solaris 環境は、言語や文化に依存する情報をアプリケーションから分離し、その情報をアプリケーションの外側に保存します。この方法を使えば、アプリケーションの変換、書き換え、または再コンパイルをマーケットごとに行う必要がなくなります。新しいマーケットに参入するのに必要なのは、外部情報をローカルの言語や慣例にローカライズすることだけです。
以降のセクションでは、ロケールカテゴリごとに存在する言語間の違いや、その他の言語間の違いについて説明します。
次の表に、さまざまなロケールでの 11:59 P.M の出力方法をいくつか示します。現在のロケールでの時間の書式を表示するには、次のコマンドを発行します。
$ date +%X
表 1-2 時間の国際書式
|
時間は 12 時間形式、24 時間形式のどちらでも表せます。時間と分の区切り文字は、コロン ( : )、ピリオド ( . )、ダッシュ ( - ) のいずれかになります。
タイムゾーンの分割は、国と国との間や国内で発生します。タイムゾーンは、協定世界時 UTC (またはグリニッジ標準時 GMT) から何時間進んでいるか、あるいは何時間遅れているかによって記述できますが、その数値は常に整数になるとは限りません。たとえば、ニューファンドランド島が含まれるタイムゾーンと隣接するタイムゾーンとの時差は、0.5 時間です。
夏時間 (DST) の開始と終了の日付は、国ごとに異なる可能性があります。多くの国では DST をまったく実施しません。さらに、1 つのタイムゾーン内で夏時間が異なる場合があります。たとえば米国では、実施の決定権は州にあります。
次の表に、世界中で使用されている日付の書式をいくつか示します。1 つの国のなかでも違いが存在する場合があります。現在のロケールでの日付の書式を表示するには、次のコマンドを発行します。
$ date +%x
表 1-3 日付の国際書式
|
ロケールによって指定される数値書式にはさまざまなものが存在しています。たとえば、英国と米国では、ピリオドを使って小数位を示します。ほかの多くの国では、代わりにコンマを使用します。小数区切り文字は基数文字とも呼ばれます。同様に、英国と米国ではコンマを使って千のグループを区切りますが、ほかの多くの国では代わりにピリオドを使用しますし、一部の国では千のグループを細い空白 (Unicode 文字 U+2009) で区切ります。
ロケール固有の書式を含むデータファイルを異なるロケールのシステムに転送した場合、その内容の解釈ミスが頻繁に発生します。たとえば、フランス語の書式の数値を含むファイルは、英国に固有のプログラムでは役に立ちません。
次の表に、一般的に使用される数値書式をいくつか示します。現在のロケールでの数値区切り文字の情報を取得するには、次のコマンドを発行します。
$ locale -ck LC_NUMERIC
表 1-4 数値の国際表記規則
|
注 - リスト内の数値を区切る方法を指定するロケール表記規則は、特に存在していません。
通貨の通貨単位、表示順序、およびローカル記号や国際記号は、世界中で大きく異なります。現在のロケールの通貨書式を取得するには、次のコマンドを発行します。
$ locale -ck LC_MONETARY
次の表に、いくつかの国の通貨書式を示します。
表 1-5 通貨の国際表記規則
|
ユーロ通貨はすべての UTF-8 ロケールでサポートされています。また、ISO8859-15 コードセットに基づくレガシーロケールも使用可能となっており、ユーロを自国通貨として採用したなかった国向けに、(da_DK.ISO8859-15@euro のように) @euro バリアント付きで存在しています。