国際化対応言語環境の利用ガイド

第 4 章 en_US.UTF-8 ロケールのサポートの概要

Unicode の概要

Unicode 規格は、コンピュータ処理用のテキスト表現に使用される汎用文字コード化規格です。Unicode 規格は、国際規格 ISO/IEC 10646-1:1999 と完全に互換性があり、ISO/IEC 10646 と同一の文字とエンコーディングポイントを含んでいます。この Unicode 規格によって、文字とその使い方に関する追加情報が提供されます。また、Unicode に準拠した実装は、ISO/IEC 10646 にも準拠します。

Unicode によって、多言語のプレーンテキストを矛盾なくコード化でき、国際的にテキストファイルの交換が困難であった問題に秩序をもたらします。多言語のテキストを取り扱うコンピュータユーザー、オフィスワーカー、言語学者、研究員、科学者などにとっては、Unicode 規格によって仕事が非常に単純化されることがわかります。また、数学記号やその他の技術文字を常に使用する数学者と技術者にとっても、Unicode 規格は価値があります。

Unicode の設計は ASCII の単純さと整合性に基づいていますが、ラテンアルファベットしかコード化できない ASCII の限界を超えています。Unicode 規格によって、世界の文字言語で使用されているすべての文字をコード化できます。Unicode 規格は、 65,000 文字以上のコードポイントを提供する 16 ビットのコード化を使用しています。文字コーディングを単純で効果的なものにしておくため、Unicode 規格は各文字に一意の 16 ビット値を割り当て、複雑なモードやエスケープコードを使いません。65,000 文字は、世界の主要な言語で使用されている数千の文字の多くをコード化するのに十分なものですが、Unicode 規格と ISO 10646 には、エスケープコードを使わずに 100 万文字以上をコード化できる UTF-16 と呼ばれる拡張機構が用意されています。これは、世界の歴史上のすべての筆記文字も含めて、既知のすべての文字をコード化できることになります。UTF-16 によって、ちょうど 16 x 65536 の追加コードポイントが可能となり、さらに文字を表すために 2 バイトの構成要素を使用します。しかし、これらの 16 x 65536 文字には、1 文字ごとに 2 個の 2 バイトの構成要素 (合計 4 バイト) が必要となります。UTF-16 の詳細については、Unicode Consortium から出ている「The Unicode Standard, Version 2.0」の section C.3 か、または「ISO/IEC 10646-1:1999, Information Technology-Universal Multiple-Octet Coded Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane」の Annex C を参照してください。

Unicode ロケール: en_US.UTF-8 サポートの概要

en_US.UTF-8 ロケールは、Solaris 8 製品では重要な Unicode ロケールです。このロケールは、UTF-8 をコードセットとして使用することで、マルチスクリプト処理能力をサポートし実現します。このロケールは、複数のスクリプトでテキストを入出力できます。これは、Solaris オペレーティング環境で最初にこの機能を持ったロケールでした。


注 -

UTF-8 は、1992 年の X/Open-Uniform Joint Internationalization Working Group (XoJIG) によって公式化され、1996 年に ISO と IEC によって ISO/IEC 10646-1:1993 の修正第 2 条として承認された Unicode/ISO/IEC 10646-1 のファイルシステム安全汎用文字セット変換形式です。この規格は、Unicode Consortium、ISO (国際標準化機構)、IEC (国際電気標準会議) によって、Unicode 2.0 および ISO/IEC 10646-1 として採用されました。


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

対応するグリフが en_US.UTF-8 ロケールに含まれていない文字をユーザーが表示させると、ロケールが、代わりに「No-glyph」というグリフを以下の例のように表示します。

Graphic

Solaris 8 環境より、このロケールはコアクラスタ以外のすべてのクラスタで使用できるようになりました。

まったく同じレベルの en_US.UTF-8 ロケールのサポートが、64 ビットと 32 ビットの Solaris システムの両方に用意されています。


注 -

Motif および Solaris CDE のデスクトップアプリケーションとライブラリは、en_US.UTF-8 ロケールをサポートしています。OpenWindows、XView、および OPENLOOK の DeskSet アプリケーションとライブラリでは en_US.UTF-8 ロケールをサポートしていません。


デスクトップ入力方式

Solaris CDE では、Xm ツールキットを使用する国際化アプリケーションで、各ロケールの文字の入力を行う機能を提供しています。XmText[Field] ウィジェットは各ロケールの入力メソッドのインタフェースとなります。幾つかの言語環境において、テキストを右から左、上から下などの方向に書くため、入力方式の国際化がされています。同一のアプリケーションにおいて、異なった入力方式に適用させる複数のフォントの使用が可能です。

プリエディット領域は確定前の文字列が表示されます。これは、次の 4 つのモードで行うことができます。

OffTheSpot モードでは、場所はメインウィンドウの下のステータス領域の右側です。OverTheSpot モードでは、プリエディット領域はカーソル位置です。Root モードではプリエディットおよびステータス領域はクライアントのウィンドウと分けられます。


注 -

Solaris 8 環境では、Unicode ロケール用の最新のマルチスクリプト入力方式の他に、簡体字/繁体字の中国語、日本語、韓国語用の現地製の入力方式があります。この節では、選択された入力方式、それらの使用方法、それらの切替方法について説明します。


スクリプトの選択と入力方式

en_US.UTF-8 ロケールは、複数スクリプトをサポートしています。en_US.UTF-8 ロケールには次の合計 12 個の入力方式が含まれています。

他の入力方式に切り替えるには、入力モードごとの入力方式切替 Compose キーシーケンスをタイプするか、またはアプリケーションのステータス領域でマウスの左ボタンを押して入力モード選択ウィンドウを開き、以下のように一覧表示された入力方式から選択します。

Graphic

英語/ヨーロッパ言語入力モード

英語/ヨーロッパ言語入力モードでは、英語のアルファベットだけではなく、ヨーロッパ言語で使用される発音符号の付いた文字や特殊文字も入力できます。

この入力モードはすべてのアプリケーションのデフォルトのモードです。入力モードは、GUI アプリケーションの左下隅に表示されます。

Graphic

Latin-1、Latin-2、Latin-4、Latin-5、Latin-9 の発音符号付きの文字や特殊文字を入力するには、次の例のように Compose シーケンスを入力する必要があります。

Compose キーがないキーボードの場合は、代わりに Control キーと Shift キーを押しながら T を押します。

ユーロの通貨記号 (Unicode の U+20AC) を入力するには、次のいずれかのシーケンスを使用します。

キーを同時に押すことに注意してください。AltGraph キーがないキーボードの場合は、代わりに Alt キーを使用します。

次の表に、Solaris オペレーティング環境 で Latin-1、Latin-2、Latin-4、Latin-5、Latin-9 の文字の入力によく使用される Compose シーケンスを示します。


注 -

以下のシーケンスでは、最初に Compose キーを押してから、離します。


次の表に、Latin-1 の Compose シーケンスを示します。

表 4-1 Latin-1 の一般的な Compose シーケンス

Compose キー 

説明 

スペース 

スペース 

スペース (space) 

逆感嘆符 (Inverted exclamation) 

セント記号 (Cents) 

ポンド記号 (Pounds) 

不特定通貨記号 (Currency symbol) 

円記号 (Yen) 

破断線 (Broken bar) 

ウムラウトまたはダイエレシス (Umlaut/diaeresis) 

著作権表示記号 (Copyright) 

著作権表示記号 (Copyright) 

女性序数標識 (Feminine ordinal) 

左引用符 (Left guillemet) 

否定 (Not sign) 

ソフトハイフン (Soft hyphen) 

登録商標記号 (Registered) 

長音記号 (Macron) 

度 (Degree) 

プラスマイナス (Plus-minus) 

上付きの 2 (Superscript 2) 

上付きの 3 (Superscript 3) 

プライム符号またはアキュートアクセント (Prime/acute) 

ミューまたはマイクロ (Mu/micro) 

段落記号 (Pilcro/paragraph) 

中点 (Middle dot) 

セディラ (Cedilla) 

上付きの 1 (Superscript 1) 

男性序数標識 (Masculine ordinal) 

右引用符 (Right guillemet) 

4 分の 1 (Quarter) 

2 分の 1 (Half) 

4 分の 3 (Three quarters) 

逆疑問符 (Inverted question) 

グレーブアクセント付き A (A grave) 

アキュートアクセント付き A (A acute) 

サーカムフレクトアクセント付き A (A circumflex) 

‾ 

チルド付き A (A tilde) 

A ウムラウト (A umlaut) 

オングストローム付き A (A angstrom) 

AE リゲチャ (AE ligature) 

セディラ付き C (C cedilla) 

グレーブアクセント付き E (E grave) 

アキュートアクセント付き E (E acute) 

サーカムフレクトアクセント付き E (E circumflex) 

E ウムラウト (E umlaut) 

グレーブアクセント付き I (I grave) 

アキュートアクセント付き I (I acute) 

サーカムフレクトアクセント付き I (I circumflex) 

I ウムラウト (I umlaut) 

‾ 

チルド付き N (N tilde) 

グレーブアクセント付き O (O grave) 

アキュートアクセント付き O (O acute) 

サーカムフレクトアクセント付き O (O circumflex) 

‾ 

チルド付き O (O tilde) 

O ウムラウト (O umlaut) 

乗算記号 (Multiply) 

斜線付き O (O slash)  

グレーブアクセント付き U (U grave) 

アキュートアクセント付き U (U acute) 

サーカムフレクトアクセント付き U (U circumflex) 

U ウムラウト (U umlaut) 

アキュートアクセント付き Y (Y acute) 

アイスランド語ソーン (Thorn) 

ドイツ語エスツェット (Eszett/digraph s) 

グレーブアクセント付き a (a grave) 

アキュートアクセント付き a (a acute) 

サーカムフレクトアクセント付き a (a circumflex) 

‾ 

チルド付き a (a tilde) 

a ウムラウト (a umlaut) 

オングストローム付き a (a angstrom) 

ae リゲチャ (ae ligature) 

セディラ付きの c (c cedilla) 

グレーブアクセント付き e (e grave) 

アキュートアクセント付き e (e acute) 

サーカムフレクトアクセント付き e (e circumflex) 

e ウムラウト (e umlaut) 

グレーブアクセント付き i (i grave) 

アキュートアクセント付き i (i acute) 

サーカムフレクトアクセント付き i (i circumflex) 

i ウムラウト (i umlaut) 

エズ (eth) 

キャピタルエズ (Capital eth) 

‾ 

チルド付き n (n tilde) 

グレーブアクセント付き o (o grave) 

アキュートアクセント付き o (o acute) 

サーカムフレクトアクセント付き o (o circumflex) 

‾ 

チルド付き o (o tilde) 

o ウムラウト (o umlaut) 

除算記号 (Divide) 

斜線付き o (o slash) 

グレーブアクセント付き u (u grave) 

アキュートアクセント付き u (u acute) 

サーカムフレクトアクセント付き u (u circumflex) 

u ウムラウト (u umlaut) 

アキュートアクセント付き y (y acute) 

アイスランド語ソーン (thorn) 

y ウムラウト (y umlaut) 

次の表に、Latin-2 と Latin-4 の一般的な Compose シーケンスを示します。

表 4-2 Latin-2 の一般的な Compose シーケンス

最初に押すキー 

2 番目に押すキー 

結果 

ogonek 叩 

' ' 

短音記号 端 

' ' 

caron  

' ' 

二重揚音アクセント 即 

ogonek の付いた A 

短音記号の付いた A 

揚音アクセントの付いた C 

caron の付いた C  

caron の付いた D 

ストロークの付いた D 

caron の付いた E 

ogonek の付いた E 

揚音アクセントの付いた L 

ストロークの付いた L 

caron の付いた L 

揚音アクセントの付いた N 

caron の付いた N 

二重揚音アクセントの付いた O 

揚音アクセントの付いた S 

caron の付いた S 

セディラ記号の付いた S 

揚音アクセントの付いた R 

caron の付いた R 

caron の付いた T 

セディラ記号の付いた T 

丸の付いた U 

二重揚音アクセントの付いた U 

揚音アクセントの付いた Z 

caron の付いた Z 

ドットの付いた Z 

kra 

長音記号の付いた A 

長音記号の付いた E 

ドットの付いた E 

セディラ記号の付いた G 

長音記号の付いた I 

‾ 

チルドの付いた I 

ogonek の付いた I  

セディラ記号の付いた K 

セディラ記号の付いた L 

セディラ記号の付いた N 

長音記号の付いた O 

セディラ記号の付いた R 

ストロークの付いた T 

‾ 

チルドの付いた U 

ogonek の付いた U 

長音記号の付いた U 

エング 

長音記号の付いた a 

長音記号の付いた e 

ドットの付いた e 

セディラ記号の付いた g 

長音記号の付いた i 

‾ 

チルドの付いた i 

ogonek の付いた i 

セディラ記号の付いた k 

セディラ記号の付いた l 

セディラ記号の付いた n 

長音記号の付いた o 

セディラ記号の付いた r 

ストロークの付いた t 

‾ 

チルドの付いた u 

ogonek の付いた u 

長音記号の付いた u 

エング

次の表に、Latin-5 の一般的な Compose シーケンスを示します。

表 4-3 Latin-5 の一般的な Compose シーケンス

最初に押すキー 

2 番目に押すキー 

結果 

短音記号の付いた G 

ドットの付いた I 

短音記号の付いた g 

ドットの付いた i

他の表で説明された Compose シーケンスは、この表には示されていません。

次の表は、Latin-9 の一般的な Compose シーケンスを示します。

表 4-4 Latin-9 の一般的な Compose シーケンス

最初に押すキー 

2 番目に押すキー 

結果 

oe の合字 

OEの合字 

ウムラウトの付いた Y 

キリル文字入力モード

キリル文字入力方式に切り替えるには、キーボードで <Compose> <c> <c> と押すか、またはアプリケーションのステータス領域でマウスの左ボタンを押してから入力モード選択ウィンドウで [Cyrillic] を選択します。

入力モードは、GUI アプリケーションの左下隅に表示されます。

Graphic

キリル文字入力方式に切り替えると、英語またはヨーロッパ言語のテキストを入力できなくなります。英語またはヨーロッパ言語の入力方式に戻すには、キーボードで <Control> + <Space> とタイプするか、またはマウスを使って入力モード選択ウィンドウで [English/European] 入力方式を選択します。ロシア語のキーボードの配置では、次の図のように表示されます。

図 4-1 キリル文字キーボード

Graphic

また、対応する入力モード切替キーシーケンスを入力することで、他の入力モードに切り替えることもできます。

ギリシャ文字入力モード

ギリシャ語入力モードに切り替えるには、キーボードで <Compose> <g> <g> と押すか、またはアプリケーションのステータス領域でマウスの左ボタンを押してから入力モード選択ウィンドウで [Greek] を選択します。

入力モードが、GUI アプリケーションの左下隅に表示されます。

Graphic

ギリシャ語入力モードに切り替えると、英語またはヨーロッパ言語のテキストを入力できなくなります。英語またはヨーロッパ言語の入力方式に戻すには、キーボードから <Control> + <Space> とタイプするか、またはマウスを使って入力モード選択ウィンドウで [English/European] 入力方式を選択します。ギリシャ語のキーボードの配置では、次の図のように表示されます。

図 4-2 ギリシャ語キーボード (ヨーロッパキーボード)

Graphic

図 4-3 ギリシャ語キーボード (UNIX キーボード)

Graphic

アラビア語入力モード

アラビア語入力方式に切り替えるには、キーボードで <Compose> <a> <r> とタイプします。入力方式が、GUI アプリケーションの左下隅に表示されます。アラビア語入力方式に切り替えると、英語またはヨーロッパ言語の文字を入力するには、<Control> と <Space> を同時にタイプして、英語またはヨーロッパ言語入力方式に戻る必要があります。

また、キーボードから対応する入力方式切替キーシーケンスをタイプするか、またはマウスを使って入力モード選択ウィンドウで入力方式を選択することによって、他の入力方式に切り替えることもできます。

Graphic
図 4-4 アラビア語キーボード

Graphic

ヘブライ語入力モード

ヘブライ語入力方式に切り替えるには、キーボードで <Compose> <h> <h> とタイプします。入力方式が、GUI アプリケーションの左下隅に表示されます。また、アプリケーションのステータス領域でマウスの左ボタンを押して、入力モード選択ウィンドウの [Hebrew] を選択することによって、ヘブライ語入力方式に切り替えることもできます。

ヘブライ語入力方式に切り替えると、英語またはヨーロッパ言語の文字を入力するには、英語またはヨーロッパ言語入力方式に戻る必要があります。入力方式を切り替えるには、キーボードから次の入力方式の入力方式切替キーシーケンスをタイプするか、またはマウスを使って入力モード選択ウィンドウで入力方式を選択します。ヘブライ語のキーボード配置を以下の図に示します。

Graphic
図 4-5 ヘブライ語キーボード

Graphic

タイ語入力モード

タイ語入力モードに切り替えるには、<Compose> <t> <t> を押します。入力モードが、GUI アプリケーションの左下隅に表示されます。

Graphic

タイ語入力方式に切り替えると、英語またはヨーロッパ言語の文字を入力するには、英語またはヨーロッパ言語入力方式に戻る必要があります。入力方式を切り替えるには、キーボードから次の入力方式の対応する入力方式切替キーシーケンスをタイプするか、またはマウスを使って入力モード選択ウィンドウで入力方式を選択します。タイ語のキーボード配置を以下の図に示します。

図 4-6 タイ語キーボード

Graphic

Unicode 16 進数および 8 進数コード入力モード

Unicode 16 進法コード入力方式の入力モードに切り替えるには、現在の入力モードから <Compose> <u> <h> とタイプします。また、マウスを使って入力モード選択ウィンドウで [Unicode Hex] を選択することもできます。

8 進法システムにする場合は、現在の入力モードから <Compose> <u> <o> とタイプするか、または入力モード選択ウィンドウで [Unicode Octal] を選択することによって、Unicode 8 進法コード入力方式の入力モードに切り替えることもできます。

この入力モードを使用するには、文字の 16 進数コード値または、8 進数コード値を知っている必要があります。コード値と文字の対応については、『The Unicode Standard, Version 3.0』を参照してください。Unicode 16 進数コード入力モードを使用して、文字を入力するには、4 桁の 16 進数を入力します。たとえば、逆転した疑問符ならば 00a1、ギリシャ文字の小文字のベータならば 03b2、韓国語の KA ならば ac00、カタカナのアならば 30a2、共通の Han 文字ならば 4e58 などです。16 進数に使用する A、B、C、D、E、F は、大文字でも小文字でもかまいません。16 進法の代わりに 8 進法にする場合、0 から 7 までの 8 進法の数字を入力できます。間違えて入力した 16 進数は、<Delete> キーか <Backspace> キーで削除できます。

Graphic

Graphic

表検索入力モード

表検索入力モードに切り替えるには、<Compose> <l> <l> を押します。入力モードは、GUI アプリケーションの左下隅に表示されます。

Graphic

入力モードをオンにすると、複数の文字グループを表示する検索グループウィンドウが現れます。これらのグループから 1 つ選択すると、そのグループの文字を入力できます。グループを選択すると、そのグループに属する使用可能な Unicode 文字の複数の候補を表示した第 2 の検索ウィンドウが現れます。ポインタを移動してマウスの左ボタンを押すことで、それらの候補の中から任意のものを選択できます。また、各候補を表す左側の文字をクリックして、候補を選択することもできます。

また、<Control> キーと <n> キーを同時に入力すると、次候補のセットが表示されます。同様に、前候補のセットを見るには、<Control> キーと <p> キーを同時に入力します。<n> は「next (次)」を、<p> は「previous (前)」を意味しています。

現在の入力モードを使い終えたら、対応する入力モード切替キーシーケンスをタイプすることで、別の入力モードに切り替えることができます。

日本語入力モード

日本語入力モードに切り替えるには、キーボードで <Compose> <j> <a> とタイプするか、またはマウスを使って入力モード選択ウィンドウで [Japanese] を選択します。入力方式が、アプリケーションの左下隅に表示されます。以下の図に ATOK12 の日本語入力方式モードを示します。

Graphic

日本製の日本語入力システムを使用するには、システムに 1 つ以上の日本語ロケールをインストールする必要があります。日本語ロケールをインストールすると、ATOK12、Wnn6、ATOK8、または cs00 のような日本製の日本語入力システムの中から 1 つを使うことができます。ただし、ja_JP.UTF-8 ロケール以外の UTF-8 ロケールで使用できる入力システムは、ATOK12 か cs00 だけです。

日本語入力システムの使用方法の詳細については、『ATOK12 ユーザーズガイド』、『ATOK8 ユーザーズガイド』、『Wnn6 ユーザーズガイド』、『cs00 ユーザーズガイド』を参照してください。

韓国語入力モード

韓国語入力モードに切り替えるには、キーボードで <Compose> <k> <o> とタイプするか、またはマウスを使って入力モード選択ウィンドウで [Kolean] を選択します。入力方式が、アプリケーションの左下隅に表示されます。以下の図に、表音ハングル入力方式を示します。他にも多くの韓国語入力方式が利用可能です。

Graphic

韓国製の韓国語入力システムを使うには、システムに Ko.UTF-8 ロケールをインストールする必要があります。韓国語入力システムの使い方の詳細については、『Korean Solaris User's Guide』を参照してください。

簡体字中国語入力モード

簡体字中国語入力モードに切り替えるには、キーボードで <Compose> <s> <c> とタイプするか、またはマウスを使って入力モード選択ウィンドウで [S-Chinese] を選択します。入力方式が、アプリケーションの左下隅に表示されます。以下の図に、New Pin Yin 入力方式を示します。他にも多くの簡体字中国語入力方式が利用可能です。

Graphic

簡体字中国語入力システムを使うには、システムに zh.UTF-8 ロケールをインストールする必要があります。簡体字中国語入力システムの使い方の詳細については、『Simplified Chinese Solaris User's Guide』を参照してください。

繁体字中国語入力モード

繁体字中国語入力モードに切り替えるには、キーボードで <Compose> <t> <c> とタイプするか、またはマウスを使って入力モード選択ウィンドウで [T-Chinese] を選択します。入力方式が、アプリケーションの左下隅に表示されます。以下の図に、TsangChieh 入力方式を示します。他にも多くの繁体字中国語入力方式が利用可能です。

Graphic

繁体字中国語入力システムを使うには、システムに zh_TW.UTF-8 ロケールをインストールする必要があります。繁体字中国語入力システムの使い方の詳細については、『Traditional Chinese Solaris User's Guide』を参照してください。

入力モード切り替えキーシーケンスのまとめ

ユーザーは入力モードを自由に切り替えられます。次の表に、各入力モードの切り替えシーケンスを示します。

表 4-5 入力モードの切り替えキーシーケンス
 入力モード キーシーケンス
 英語/ヨーロッパ言語 <Control> + スペースバー
 キリル文字 <Compose> <c> <c>
 ギリシャ文字 <Compose> <g> <g>
 アラビア語 <Compose> <a> <r>
 ユダヤ語 <Compose> <h> <h>
 タイ語 <Compose> <t> <t>
 Unicode 16 進数コード入力モード <Compose> <u> <h>
 表検索入力モード <Compose> <l> <l>
 Unicode 8 進数コード入力モード <Compose> <u> <o>
 日本語 <Compose> <j> <a>
 韓国語 <Compose> <k> <o>
 簡体字中国語 <Compose> <s> <c>
 繁体字中国語 <Compose> <t> <c>

システム環境

ロケールの環境変数

en_US.UTF-8 ロケール環境を使用するには、まずロケールを選択します。システムに en_US.UTF-8 がインストールされていることを確認してください (コアクラスタ以外のクラスタでデフォルトでインストールされます)。

en_US.UTF-8 ロケール環境の使用方法
  1. TTY 環境で、まず環境変数 LANGen_US.UTF-8 に設定してこのロケールを選択します。C シェルの例を以下に示します。


    system% setenv LANG en_US.UTF-8
    

    他のカテゴリが設定されていない (または、en_US.UTF-8 に設定されている) ことを確認します。これは、ロケールを設定する際、環境変数 LANG の優先順位が、 LC_ALLLC_COLLATELC_CTYPELC_MESSAGESLC_NUMERICLC_MONETARYLC_TIME などの他の環境変数に比べて低いからです。環境変数の階層についての詳細は、setlocale(3C) のマニュアルページを参照してください。

    さまざまなカテゴリの現在のロケール設定を調べるには、locale(1) ユーティリティを使用します。


system% locale 
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_ALL=

また、CDE ログイン画面の「オプション」->「言語」メニューで en_US.UTF-8 を選択することにより、en_US.UTF-8 環境を起動することもできます。

TTY 環境の設定

現在使用している dtterm(1) のような端末と端末エミュレータに応じて、あるコードセット固有の STREAMS モジュールをストリームにプッシュしなければならない場合があります。

STREAMS モジュールの詳細および一般的なストリームについては、『STREAM Programming Guide』を参照してください。

次の表に、端末環境で en_US.UTF-8 ロケールによりサポートされる STREAMS モジュールを示します。

表 4-6 en_US.UTF-8 によりサポートされる 32 ビット STREAMS モジュール

32 ビット STREAMS モジュール 

説明 

/usr/kernel/strmod/u8lat1

UTF-8 と ISO 8859-1 (西ヨーロッパ) のコード変換 STREAMS モジュール

/usr/kernel/strmod/u8lat2

UTF-8 と ISO 8859-2 (東ヨーロッパ) のコード変換 STREAMS モジュール

/usr/kernel/strmod/u8koi8

UTF-8 と KOI8-R (Cyrillic) のコード変換 STREAMS モジュール

次の表に、en_US.UTF-8 ロケールによりサポートされる 64 ビット STREAMS モジュールを示します。

表 4-7 en_US.UTF-8 によりサポートされる 64 ビット STREAMS モジュール

64 ビット STREAMS モジュール 

説明 

/usr/kernel/strmod/sparcv9/u8lat1

UTF-8 と ISO 8859-1 (西ヨーロッパ) のコード変換 STREAMS モジュール

/usr/kernel/strmod/sparcv9/u8lat2

UTF-8 と ISO 8859-2 (東ヨーロッパ) のコード変換 STREAMS モジュール

/usr/kernel/strmod/sparcv9/u8koi8

UTF-8 と KOI8-R (Cyrillic) のコード変換 STREAMS モジュール

STREAMS モジュールのカーネルへのロード

STREAMS モジュールをカーネルにロードするには、まずルートになります。


system% su
Password:
 system#

次のように isainfo(1) ユーティリティを使用して、Solaris システムが 64 ビットと 32 ビットのどちらであるかを判断します。


system# isainfo -v
	64-bit sparcv9 applications
	32-bit sparc applications
	 system#

この情報が返された場合は、実行されているのは 64 ビットの Solaris システムです。実行されているのは 32 ビットの Solaris システムである場合は、次のように表示されます。


system# isainfo -v
	32-bit sparc applications
	 system#

modinfo(1M) を使用して、システムにすでに STREAMS モジュールがロードされていないかを確認します。


system# modinfo | grep u8lat1  modulename
system#

u8lat1 などの STREAMS モジュールがすでにインストールされている場合は、出力は次のようになります。


system# modinfo | grep u8lat1
89 ff798000  4b13  18   1  u8lat1 (UTF-8 <--> ISO 8859-1 module)
system#

モジュールがすでにインストールされている場合は、ロードする必要はありません。ただし、モジュールがロードされていない場合は、次のように modload(1M) を使用します。


system# modload /usr/kernel/strmod/u8lat1 modulename

32 ビットの u8lat1 STREAMS モジュールがカーネルにロードされ、ストリームにプッシュすることができます。64 ビットの Solaris 製品を実行している場合は、次のように modload(1M) を使用します。


system# modload /usr/kernel/strmod/sparcv9/u8lat1

STREAMS モジュールがカーネルにロードされ、ストリームにプッシュすることができます。

モジュールをカーネルからアンロードするには、次のように modunload(1M) を使用します。この例では、u8lat1 モジュールがアンロードされます。


system# modinfo | grep u8lat1
89 ff798000  4b13  18   1  u8lat1 (UTF-8 <--> ISO 8859-1 module)
system# modunload -i 89

UTF-8 文字の入出力が可能な dtterm および端末

Solaris オペレーティング環境の旧リリースとは異なり、UTF-8 コードセットの入出力をサポートする dtterm(1) とその他の端末では、ストリームにその他の追加 STREAMS モジュールを置く必要はありません。ldterm(7M) モジュールは、現在ではコードセットに依存せず、Unicode/UTF-8 もサポートしています。

Unicode ロケールに関する適切な端末環境の設定については、stty(1) ユーティリティを以下のように使用してください。


system% stty defeucw

注 -

/usr/ucb/stty は国際化されていないので、代わりに /bin/stty を使ってください。


Latin-1、Latin-2、および KOI8-R の端末サポート

Latin-1 (ISO 8859-1)、Latin-2 (ISO 8859-2)、または KOI8-R だけをサポートする端末の場合、STREAMS は次のように構成されている必要があります。


head <-> ttcompat <->  ldterm <->  u8lat1 <-> TTY

注 -

これは Latin-1 をサポートする端末用の構成です。Latin-2 端末の場合は、STREAMS モジュール u8lat1u8lat2 に置き換えます。KOI8-R 端末の場合は、このモジュールを u8koi8 に置き換えます。


STREAMS モジュールがすでにカーネルにロードされていることを確認してください。

上記の STREAMS の構成を設定するには、次のように strchg(1) を使用します。


system% cat > tmp/mystreams
ttcompat
ldterm
u8lat1
ptem
^D
system% strchg -f /tmp/mystreams

strchg(1) を使用する場合、スーパーユーザーかデバイスの所有者としてログインしていることを確認します。現在の構成を確認するには、次のように strconf(1) を使用します。


system% strconf
ttcompat
ldterm
u8lat1
ptem
pts
system%

元の構成に戻すには、次のように STREAMS の構成を設定します。


system% cat > /tmp/orgstreams
ttcompat
ldterm
ptem
^D
system% strchg -f  /tmp/orgstreams

端末オプションの設定

TTY 上での UTF-8 テキスト編集動作を設定するには、まず、次のように stty(1) を使用して端末オプションを設定してください。


system% /bin/stty  defeucw

注 -

/usr/ucb/stty はまだ国際化されていないので、代わりに /bin/stty を使用します。


次のように、stty(1) に -a オプションを指定して、現在の設定を照会することもできます。


system% /bin/stty -a

‾/.cshrc への設定の保存

必要な STREAMS モジュールがカーネルにロードされたら、以下の行を .cshrc ファイル (C シェルの場合) に保存すると便利です。


setenv LANG en_US.UTF-8
if ($?USER != 0 && $?prompt != 0) then
				 cat >! /tmp/mystreams$$ << _EOF
				 ttcompat
				 u8euc
				 ldtterm
				 eucu8
				 ptem
_EOF
				 /bin/strchg -f /tmp/mystream$$
				 /bin/rm -f /tmp/mystream$$
				 /bin/stty cs8 -istrip defeucw
endif

.cshrc ファイルに上記の行があると、毎回すべてのコマンドを入力する必要はありません。2 つめの _EOF は行の先頭になければなりません。C シェルを起動するたびに mystreams という名前のファイルを作成するのではなく、.cshrc ファイルで mystreams を参照することもできます。

コード変換

en_US.UTF-8 ロケールは、iconv(1) および iconv(3) により、いくつかの国の主なコードセット間のコード変換をサポートしています。


注 -

Solaris 8 環境では、ユーティリティ geniconvtbl によって、ユーザー定義のコード変換が行えます。geniconvtbl ユーティリティを使って作成したユーザー定義コード変換は、iconv(1) と iconv(3) の両方で使用できます。このユーティリティの詳細については、geniconvtbl(1) と geniconvtbl(4) のマニュアルページを参照してください。


iconv(1) と iconv_open(3) に適用できる利用可能な fromcodetocode の名前は、以下の表に表示されています。iconv コード変換の詳細については、iconv(1) および iconv_open(3)、iconv(3)、iconv_close(3) のマニュアルページを参照してください。利用可能なコード変換に関する情報については、iconv_en_US.UTF-8(5) を参照してください。

また、付録 A 「iconv コード変換」 も参照してください。


注 -

UCS-2、UCS-4、UTF-16 は、Unicode 3.0 と ISO/IEC10646-1:1999 の規格で定義されたバイト順序マーク (BOM) を認識するすべての固定幅 Unicode/ISO/IEC 10646 表示書式です。UCS-2BE、UCS-4BE、UTF-16BE のような他の書式は、BOM 文字を認識せず、Big Endian バイト順序を仮定する、すべての固定幅 Unicode/ISO/IEC 10646 表示書式です。一方、UCS-2LE、UCS-4LE、UTF-16LE のような表示書式は、Little Endian バイト順序を仮定します。また、これらの表示書式も、BOM 文字を認識しません。



注 -

ISO 8859-* と KOI8-* の関連スクリプトおよび言語については、http://czyborra.com/charsets/iso8859.html を参照してください。


印刷

Solaris 8 環境で拡張された新しい mp(1) 印刷フィルタは、UTF-8 で作成されたプレーンテキストファイルを含むさまざまな入力ファイル形式を印刷できます。この mp(1) は、Solaris システムで利用できる、TrueType と Type1 の拡大縮小可能なフォントと、X11 のビットマップフォントを使用します。

このユーティリティからの出力は、標準的な PostScript であり、任意の PostScript プリンタへ送ることができます。


注 -

Solaris 環境の次のメジャーリリースでは、xutops(1) は、提供されない予定です。


このユーティリティを使うには、以下のように入力します。


system% mp filename | lp

また、このユーティリティは stdin ストリーム (標準入力) を受け付けるので、フィルタとしても使うことができます。


system% cat filename | mp | lp 

このユーティリティを、ラインプリンタの印刷フィルタとして使用することもできます。たとえば、以下のコマンドシーケンスは、印刷サービス LP に対して、プリンタ lp1mp 形式のファイルのみ受け付けるように指示しています。このコマンド行は、プリンタ lp1 をポート /dev/ttya にインストールします。詳細については、lpadmin(1M) のマニュアルページを参照してください。


system# lpadmin -p lp1 -v /dev/ttya -I MP
system# accept lp1
system# enable lp1

lpfilter(1M) を使用して、次のようにこのユーティリティをフィルタとして追加できます。


system# lpfilter -f filtername -F pathname 

このコマンドは、pathname で指定した名前のフィルタ記述ファイルにより、コンバータ (この場合は、xutops) が使用可能であることを LP に伝えます。pathname は次のように指定できます。


Input types: simple 
Output types: MP
Command: /usr/bin/mp

このフィルタは、/usr/bin/mp を使用して、デフォルトのファイル入力を PostScript 出力に変換します。

UTF-8 テキストファイルを印刷するには、次のコマンドを使用します。


system% lp -T MP UTF-8-file

mp(1) の詳細については、mp(1) のマニュアルページを参照してください。

DtMail

サポートするスクリプトが増えたために、en_US.UTF-8 ロケールで実行される Solaris 8 DtMail は以下に示す各種の MIME 文字セットをサポートします。

これによって、世界中のどの地域のどの MIME 文字セットで符号化された電子メールでも、ほとんどの場合は 1 つの DtMail のインスタンスだけで表示できます。到着した電子メールは、指定されている MIME 文字セットと Content-Transfer-Encoding を DtMail が判断して複合化します。

しかし送信の場合は、en_US.UTF-8 ロケールでデフォルトに指定されている MIME 文字セットを使用するのでなければ、受信者のメールユーザーエージェント (メールクライアント) が理解できる MIME 文字セットを指定する必要があります。送信する電子メールの文字セットを切り替えるには、「New Message」ウィンドウで <CONTROL> + <y> を押すか、「Format」メニューボタンをクリックしてから、「Change Char Set」ボタンをクリックします。使用可能な次の文字セットが、「Send」ボタンの上の左下隅に表示されます。

電子メールのヘッダーか本体に、その MIME 文字セットで表せない文字が含まれていると、システムはすべての文字を表せる UTF-8 に自動的に切り替わります。

メッセージに 7 ビット US-ASCII 文字しか使用されていない電子メールは、デフォルトの MIME 文字セットは US-ASCII です。このような電子メールは、すべてのメールユーザーエージェントで文字や情報の欠落なしに解釈できます。

複数のスクリプトの文字が含まれている電子メールの、デフォルトの MIME 文字セットは UTF-8 です。この場合、UTF-8 の 8 ビット文字はすべて Quoted-Printable エンコーディングによって符号化されます。MIME、登録されている MIME 文字セット、および Quoted-Printable エンコーディングについての詳細は、RFC 2045、2046、2047、2048、2049、2279、2152、2237、1922、1557、1555、1489 を参照してください。

Graphic

プログラミング環境

正しく国際化されたアプリケーションは自動的に en_US.UTF-8 ロケールが有効になりますが、アプリケーションのリソースファイルで、適切な FontSet/XmFontList を定義することが必要です。

国際化されたアプリケーションについての詳細は、『Creating Worldwide Software: Solaris International Developer's Guide』の第 2 版を参照してください。

X アプリケーションで使用されるフォントセット

Solaris 8 環境の en_US.UTF-8 ロケールでは、以下の文字セットのフォントをサポートしています。

Solaris 8 環境は CDE デスクトップ環境をサポートしているので、各文字セットにはフォントのセットが保証されています。

以下のリストは、Solaris 8 製品でサポートされている Latin-1 のフォントです。

フォント別名については、『共通デスクトップ環境 プログラマーズ・ガイド (国際化対応編)』を参照してください。

en_US.UTF-8 ロケールでは、utf も共通のフォント別名としてサポートされています。アプリケーションのフォントセットは、次の例に示されているように、上記の各文字セットを含むフォントの集合である必要があります。


fs = XCreateFontSet(display,
"-dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-1,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-2,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-4,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-5,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-6,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-7,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-8,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-9,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-15,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-big5-1,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-jisx0208.1983-0,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-jisx0201.1976-0,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-ksc5601.1992-3,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-gb2312.1980-0,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-tis620.2533-0,
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-unicode-fontspecific",
  &missing_ptr, &missing_count, &def_string);
	

あるいは、次のように簡単に記述することもできます。


fs = XCreateFontSet(display,
				"-dt-interface system-medium-r-normal-*s*utf*",
				 &missing_ptr, &missing_count, &def_string);

CDE/Motif アプリケーションとしての XmFontList 定義

FontSet の定義に関しては、ロケールがサポートする文字セットのフォントはすべて、アプリケーションの XmFontList リソース定義にも含める必要があります。


例 4-1 en_US.UTF-8 ロケールの XmNFontList 定義


*fontList:¥
 -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-1;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-2;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-4;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-5;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-6;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-7;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-8;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-9;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-iso8859-15;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-big5-1;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-jisx0208.1983-0;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-jisx0201.1976-0;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-ksc5601.1992-3;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-gb2312.1980-0;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-tis620.2533-0;¥
  -dt-interface system-medium-r-normal-s*utf*-*-*-*-*-*-*-unicode-fontspecific:

あるいは、次のように簡単に記述することもできます。


*XmPushButton.fontList:¥
			-dt-interface system-medium-r-normal-*s*utf*:

XmFontList と XmNFontList についての詳細は、XmFontList(3X) のマニュアルページ、『OSF/Motif Programmer's Guide』、および『OSF/Motif Programmers's Reference Manual』の各 Motif ウィジェットのリソースセクションを参照してください。