プログラミングの国際化

第 2 章 Solaris (英語版) の内容

Solaris (英語版) の概要

Solaris 7 には部分ロケールが含まれており、英語のインタフェースから各国語で入力、表示、印刷などを行うことができます。また、同じく英語インタフェースを使用する en_US.UTF-8 ロケールが含まれており、文字の符号化規格である Unicode UTF-8 がサポートされています。

共通の基盤となる Solaris 7 (英語版) には、ユーロの完全ロケールと、en_US.UTF-8 ロケールなど、ヨーロッパの多くの部分ロケールが含まれています。

File System Safe Universal Transformation Format (FSS-UTF)、または UTF-8 は、Unicode の複数バイト表現として、X/Open により定義されたエンコーディングです。UTF-8 は UNICODE のバリエーションで、Solaris のすべてのシングルバイトロケールの入出力をサポートしています。

部分ロケールは、コアセットおよび拡張セットの 2 つのグループに分けることができます。コアセットは SUNWploc (オペレーティングシステムロケール) と SUNWplow (ウィンドウシステムロケール) にパッケージされています。これらのパッケージはエンドユーザークラスタの一部なので、自動的にインストールされます。ロケールの拡張セットは SUNWploc1 (オペレーティングシステムロケール) と SUNWplow1 (ウィンドウシステムロケール) にパッケージされています。SUNWpldte には東ヨーロッパロケールの Solaris CDE サポートが含まれます。

SUNWploc1SUNWplow1 は全体ディストリビューションでのみ使用できます。開発者システムサポートでこれらのロケールを使用するには、SUNWplocl と SUNWplowl をシステムに追加する必要があります。

ロケールのコアセット

ロケールのコアセットは自動的にインストールされます。表 2-1 にコアセットを示します。

表 2-1 SUNWplocSUNWplow に含まれるロケールのコアセット

ロケール 

言語 

国 

エンコーディング 

de

ドイツ語 

ドイツ 

ISO-8859-1 

en_AU

英語 

オーストラリア 

ISO-8859-1 

en_CA

英語 

カナダ 

ISO-8859-1 

en_UK から en_GB に変更

英語 

イギリス 

ISO-8859-1 

en_US

英語 

米国 

ISO-8859-1 

en_US.UTF-8

英語 

米国 

UTF-8 

es

スペイン語 

スペイン 

ISO-8859-1 

es_AR

スペイン語 

アルゼンチン 

ISO-8859-1 

es_BO

スペイン語 

ボリビア 

ISO-8859-1 

es_CL

スペイン語 

チリ 

ISO-8859-1 

es_CO

スペイン語 

コロンビア 

ISO-8859-1 

es_CR

スペイン語 

コスタリカ 

ISO-8859-1 

es_EC  

スペイン語 

エクアドル 

ISO-8859-1 

es_GT

スペイン語 

グアテマラ 

ISO-8859-1 

es_MX

スペイン語 

メキシコ 

ISO-8859-1 

es_NI

スペイン語 

ニカラグア 

ISO-8859-1 

es_PA

スペイン語 

パナマ 

ISO-8859-1 

es_PE

スペイン語 

ペルー 

ISO-8859-1 

es_PY

スペイン語 

パラグアイ 

ISO-8859-1 

es_SV

スペイン語 

エルサルバドル 

ISO-8859-1 

es_UY

スペイン語 

ウルグアイ 

ISO-8859-1 

es_VE

スペイン語 

ベネズエラ 

ISO-8859-1 

fr

フランス語 

フランス 

ISO-8859-1 

it

イタリア語 

イタリア 

ISO-8859-1 

sv

スウェーデン語 

スウェーデン 

ISO-8859-1 

新しいロケール

Solaris では、ほとんどの西ヨーロッパ言語のロケールがすでにサポート済みです。本リリースでは東ヨーロッパ言語、タイ語、中近東言語へのサポートの拡張に重点が置かれています。Solaris 7 動作環境で新しく追加されたユーザロケール、および変更されたユーザロケールを表 2-2 に示します。

表 2-2 ユーザロケール (新規および更新分)

地域 

ロケール名 

ISO コードセット 

注記 

アルバニア 

sq_AL

8859-2 

ボスニア 

nr

8859-2 

ブルガリア 

bg_BG

8859-5 

クロアチア 

hr_HR

8859-2 

フィンランド  

su から fi に変更

8859-15 

ISO 規格に適合するための変更 

フランス 

fr

UTF-8 

 

ドイツ 

de

UTF-8 

マケドニア 

mk_MK

8859-5 

 

イスラエル 

he

8859-8 

 

イタリア 

it

UTF-8 

 

ノルウェー (ニーノシク) 

no_NY

8859-1 

 

中華人民共和国 

zh.GBK

GBK 

GBK は GB2312 のスーパーセット 

ルーマニア 

ro_RO

8859-2 

 

ロシア 

ru

KOI-8 

デフォルトのコードセットを KOI-8 から ISO に変更 

サウジアラビア 

ar

8859-6 

セルビア 

sr_SP

8859-5 

 

スロバキア 

sk_SK

8859-2 

 

スロベニア 

sl_SI

8859-2 

 

スペイン 

es

UTF-8 

 

スウェーデン 

sv

UTF-8 

 

タイ 

th_TH

TIS 620-2533 

タイ文字コードセットは ISO 8859-11 に登録済み 

イギリス 

en_UK から en_GB に変更

8859-15 

ISO 規格に適合するために変更 

米国 

en_US

UTF-8 

 

Solaris 7 ではユーロ通貨単位がサポートされました。これに伴い表 2-3 に含まれる 6 つのユーザロケールが新たに追加されました。後方互換性を確保するため、現地通貨単位も今まで通り利用可能になっています。

表 2-3 ユーロ通貨単位のサポートに必要な新しいユーザロケール

地域 

ロケール名 

ISO コードセット 

オーストリア 

de_AT

8859-15 

ベルギー (フランス語) 

fr_BE

8859-15 

ベルギー (オランダ語) 

nl_BE

8859-15 

デンマーク 

da

8859-15 

イギリス 

en_EU

8859-15 

フィンランド 

su から fi に変更

8859-15 

フランス 

fr

8859-15 

ドイツ 

de

8859-15 

アイルランド 

en_IE

8859-15 

イタリア 

it

8859-15 

オランダ 

nl

8859-15 

ポルトガル 

pt

8859-15 

スペイン 

es

8859-15 

スウェーデン 

sv

8859-15 

イギリス 

en_GB

8859-15 

ヨーロッパ 

en_EU

8859-15 

ロケールの拡張セット

ロケールの拡張セットは自動的にはインストールされません。表 2-4 のロケールを使用するには、これらのロケールを手動でインストールする必要があります。

表 2-4 SUNWploc1SUNWplow1 に含まれるロケールの拡張セット

ロケール 

言語  

国 

エンコーディング 

cz 

チェコ語 

チェコスロバキア 

ISO-8859-2 

da 

デンマーク語 

デンマーク 

ISO-8859-15 

de_AT 

ドイツ語 

オーストリア 

ISO-8859-15 

de_CH 

ドイツ語 

スイス 

ISO-8859-1 

el 

ギリシャ語  

ギリシャ 

ISO-8859-7 

en_IE 

英語 

アイルランド 

ISO-8859-1 

en_NZ 

英語 

ニュージーランド 

ISO-8859-1 

et  

エストニア語 

エストニア 

ISO-8859-15 

fr_BE  

フランス語 

ベルギー 

ISO-8859-1 

fr_CA  

フランス語 

カナダ 

ISO-8859-1 

fr_CH 

フランス語 

スイス 

ISO-8859-1 

hu  

ハンガリー語 

ハンガリー 

ISO-8859-2 

lt  

リトアニア語 

リトアニア 

ISO-8859-13 

lv  

ラトビア語 

ラトビア 

ISO-8859-13 

nl  

オランダ語 

オランダ 

ISO-8859-1 

nl_BE  

オランダ語 

ベルギー 

ISO-8859-1 

no  

ノルウェー語 

ノルウェー 

ISO-8859-1 

pl  

ポーランド語 

ポーランド 

ISO-8859-2 

pt  

ポルトガル語 

ポルトガル 

ISO-8859-1 

pt_BR  

ポルトガル語 

ブラジル 

ISO-8859-1 

ru  

ロシア語 

ロシア 

ISO-8859-5 

su  

フィンランド語 

フィンランド 

ISO-8859-1 

tr  

トルコ語 

トルコ 

ISO-8859-9 

Unicode ロケール: en_US.UTF-8

en_US.UTF-8 ロケールは複数スクリプトロケールで、シングルバイト言語および複数バイト言語を含む複数のロケールを使ってスクリプトを入出力できます。en_US.UTF-8 ロケールは開発者ロケールに含まれ、Solaris 環境でこのような機能を持つ最初のロケールです。

このロケールは、X/Open-Uniform Joint Internationalization Working Group (XoJIG) により開発された UTF-8 (8 ビット用 Universal Character Set Transformation Format) のエンコーディングを使用します。この規格は、Unicode Consortium、ISO (国際標準化機構)、IEC (国際電気標準会議) によって、Unicode 2.0 および ISO/IEC 10646-1 として採用されました。

en_US.UTF-8 は、Unicode 2.0 および ISO/IEC 10646-1 で定義されている、各コードポイント値の計算をサポートしています。Solaris 7 では、言語スクリプトのサポートは全ヨーロッパロケールに限られます。全ヨーロッパロケールのほか、言語スクリプトのサポートには韓国語、中国語繁体字、中国語簡体字、日本語などを含むアジア言語のスクリプトが含まれます。 入力方式は次の言語スクリプトでのみサポートされます。フォント資源の節約のため、Solaris 7 ソフトウェアには次のコードセットの文字グリフのみ含まれています。

Solaris (英語版) 製品の新しいユーザーロケール

Solaris 7 (英語版) 製品でサポートされるロケールを表 2-5 に示します。

表 2-5 Solaris 7 製品に含まれる新しいユーザーロケール

国 

ロケール名 

ISO コードセット 

オーストリア 

de_AT (ドイツ語部分ロケール)

8859-1 

エストニア 

et

8859-1 

チェコ 

cz

8859-2 

ハンガリー 

hu

8859-2 

ポーランド 

pl

8859-2 

ラトビア 

lv

8859-4 

リトアニア 

lt

8859-13 

ロシア 

ru

8859-5 

ギリシャ 

el.sun_eu_greek

8859-7 (変更) 

トルコ 

tr

8859-9 

これらのロケールは、SUNWploc1 (オペレーティングシステムサポート用)、SUNWplow1 (OpenWindows サポート用)、および SUNWpldte (ロケールサポート用) パッケージによりサポートされます。これらのパッケージは全体ディストリビューションに含まれます。これらのロケールのフォントは SUNiXxf の形式で含まれます。

SUNWi1rf には、ISO 8859-1 コードセットのロケールの必須フォントが、SUNWi1of にはオプションフォントが含まれます。これらのパッケージは異なるクラスタに含まれるので、全体ディストリビューションをインストールするか、適切なパッケージを選択して追加してください。パッケージをインストールすると、ユーザーは dtlogin により Solaris CDE または OpenWindows にログインし、そのロケールに関連付けられた文字を使用できます。

ロケールの複数キーの Compose キー手順

Solaris 7 環境では、「Compose キー手順」を使用して、次のコードセットの文字を入力する際に使用される発音符号を生成できます。

以下のキーと Compose キーを使用することにより発音符号付き文字を生成できます。

Solaris 7 (英語版) 製品でのキーボードサポート

以下のロケールには、SPARC (X サーバー) および X86 (X サーバーおよびコンソール) 用のキーボードサポートが含まれています。X サーバーとは Solaris CDE および OpenWindows、コンソールはコマンド行です。

SPARC でのキーボードの変更

Solaris 製品でのキー配列は、キーボードの底面のディップスイッチでのみ変更できます。キー配列はディップスイッチにより決定されます。キー配列と対応するディップスイッチの設定のリストは、/usr/openwin/share/etc/keytables/keytable.map にあります。

表 2-6 にタイプ 4 キーボードの設定 (1 = スイッチ上、0 = スイッチ下) を示します。

表 2-6 タイプ 4 キーボードのキー配列

16 進のディップスイッチ 

キーボード 

2 進の設定 

51 

Hungary5.kt 

110011 

52 

Poland5.kt 

110100 

53 

Czech5.k 

110101 

54 

Russia5.kt 

110110 

55 

Latvia5.k 

110111 

56 

Turkey5.kt 

111000 

57 

Greece5.kt 

111001 

58 

Lithuania5.kt 

111011 

英語のキー配列をチェコ語に変更するには、ディップスイッチの設定を上記のファイルで定義されている設定に変更し (このファイルでは 16 進で設定を定義しているので、表 2-6 のように 2 進に変換する必要があります)、リブートします。

ロシア語およびギリシャ語のキーボードでは、SPARC の Compose キー (x86 の場合は Ctrl+Shift+F1) を使用してオンとオフを切り替えることができます。

x86 でのキーボードの変更

x86 では、キーボードはインストール時の kdmconfig により選択されます。インストール後にこれを変更するには、kdmconfig を使用します。

  1. Solaris CDE または OpenWindows を終了してコマンド行に戻ります。

  2. kdmconfig -u (kdmconfig unconfigure) と入力します。

  3. kdmconfig と入力してプログラムを実行します。

  4. 指示に従って、新しいキー配列に変更します。

Solaris 7 には、バンドルされた SPARC または x86 用のキーボード切り替えユーティリティは (xmodmappcmapkeys などの標準 UNIX ツールの他には) ありません。

x86 用のコードセット

Solaris では x86 用のデフォルトのコードセットは ISO-8859-1 です。IBM DOS 437 コードセットがテキストモードでのオプションとして提供されています。たとえば、、次のように入力して IBM DOS 437 コードセットをダウンロードしたとします。


loadfont -c 437
pcmapkeys -f /usr/share/lib/keyboards/437/en_US

この場合、米国の日付、時間、通貨、数、単位、照合のうち標準でないものは使用できません。また、英語以外のメッセージやテキスト表現、複数バイト文字も使用できなくなります。したがって、Microsft Windows を使用しない場合は、デフォルトのCロケールでのみ IBM DOS 437 コードセットを使用して下さい。

Solaris (英語版) インストールでのロケール

Solaris 7 (英語版) 製品のインストールウィンドウでは、複数の英語ロケールが表示されます。8 ビット文字を使用するには、表 2-7 に示す en_XX オプションのいずれかをインストールします。インストールで使用されるロケールは、システムのデフォルトのロケールになります。

表 2-7 インストール時に提供されるロケール

ロケール名  

Language/Territory 

コードセット 

C

アメリカ英語 

7 ビット 

en_AU

オーストラリア英語 

8 ビット 

en_CA

カナダ英語 

8 ビット 

en_UK

イギリス英語 

8 ビット 

en_US

アメリカ英語 

8 ビット 

Jumpstart の使用

新しい 8 ビットのロケールについて Jumpstart を有効にするには、Jumpstart のプロ設定ファイルに localexx (xx は、en_US などの適切な 8 ビットのロケールに置き換えます) を追加します。詳細な手順については、『Automating Solaris Installation』(SunSoft Press) の第 4 章を参照してください。現在 Jumpstart を使用している場合は、インストール時に言語に関するプロンプトが出ないようにするためにデフォルトのロケールを設定する必要があります。