プログラミングの国際化

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

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

en_US.UTF-8 ロケールは、コードセットとして UTF-8 を使用することによって複数のスクリプト処理をサポートする、Solaris 7 製品の中で基本となる Unicode ロケールです。


注 -

UTF-8 はファイルシステムに依存しない Universal Character Set Transformation Format of Unicode の略称で、ISO/IEC 10646-1 です。1992 年に X/Open の XoJIG が定め、1996 年に ISO および IEC が ISO/IEC 10646-1:1993 に対する Amendment 2 として承認しました。


このロケールは、Unicode 2.1 と、ISO/IEC 10646-1:1993 および Amendment 1 から 5 で定義されている、すべての文字の処理をサポートしています。しかし、フォントリソースに制限があり、すべてのコードポイント値を使用するユーザーはほとんどいないため、en_US.UTF-8 ロケールでは、以下の文字セットの文字グリフのみ表示されます。

上記のように、Solaris 7 ではサポートする文字セットが大幅に増えたため、以下のスクリプトもサポートされるようになりました。

このロケールは主に開発者用なので、Solaris 7 製品の開発者システムサポートに含まれています。したがって、システムにこのロケールをインストールするには、Solaris 7 製品をインストールするときに開発者システムサポートを選択してください。

en_US.UTF-8 ロケールのサポートは、Solaris の 32 ビット版と 64 ビット版で完全に同じです。


注 -

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


システム環境

ロケールの環境変数

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

  3. さまざまなカテゴリの現在のロケール設定を調べるには、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』を参照してください。

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

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

32 ビット STREAMS モジュール 

説明 

/usr/kernel/strmod/eucu8

テール側 UTF-8 STREAMS モジュール

/usr/kernel/strmod/u8euc

ヘッド側 UTF-8 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 モジュール

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

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

64 ビット STREAMS モジュール 

説明 

/usr/kernel/strmod/sparcv9/eucu8

テール側 UTF-8 STREAMS モジュール

/usr/kernel/strmod/sparcv9/u8euc

ヘッド側 UTF-8 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 システムが 32 ビットと 64 ビットのどちらであるかを判断します。


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 eucu8modulename

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


system# modinfo | grep eucu8
89 ff798000  4b13  18   1  eucu8 (eucu8 module)
system#

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


system# modload /usr/kernel/strmod/eucu8modulename

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


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

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

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


system# modinfo | grep eucu8
89 ff798000  4b13  18   1  eucu8 (eucu8 module)
system# modunload -i 89

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

UTF-8 コードセットの入出力をサポートする dtterm(1) および任意の端末は、以下の STREAMS 構成である必要があります。


head <-> ttcompat <-> u8euc <->  ldterm <-> eucu8 <-> pseudo-TTY

この例では、u8euc および eucu8en_US.UTF-8 ロケールによりサポートされるモジュールです。1 つ前の節で説明した方法で、あらかじめ STREAMS モジュールをカーネルにロードしておきます。

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


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

strchg(1) を使用するには、ルートであるか、デバイスの所有者でなければなりません。STREAMS の現在の構成を確認するには、次のように strconf(1) を使用します。


system% strconf
ttcompat
u8euc
ldterm
eucu8
ptem
pts
system%

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


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

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

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


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

注 -

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


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


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

strchg(1) を使用する場合、ルートかデバイスの所有者であることを確認します。現在の構成を確認するには、次のように strconf(1) を使用します。


system% strconf
ttcompat
u8euc
ldterm
eucu8
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 cs8 -istrip 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 は行の先頭になければなりません。mystreams という名前のファイルを作成し、C シェルを起動するたびに作成するのではなく、.cshrc ファイルで mystreams を参照することもできます。

コード変換

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

iconv(1) および iconv(3) で使用可能な fromcode および tocode の名前を、表 4-3 に示します。

表 4-3 en_US.UTF-8 で使用可能なコード変換

変換前のコード 

変換後のコード 

説明 

646 

UTF-8 

ISO 646 (US-ASCII) から UTF-8 

UTF-8 

646 

UTF-8 から ISO 646 (US-ACII) 

UTF-8 

8859-1 

UTF-8 から ISO 8859-1 

UTF-8 

8859-2 

UTF-8 から ISO 8859-2 

UTF-8 

8859-3 

UTF-8 から ISO 8859-3 

UTF-8 

8859-4 

UTF-8 to ISO 8859-4 

UTF-8 

8859-5 

UTF-8 から ISO 8859-5 (Cyrillic) 

UTF-8 

8859-6 

UTF-8 から ISO 8859-6 (Arabic) 

UTF-8 

8859-7 

UTF-8 から ISO 8859-7 (Greek) 

UTF-8 

8859-8 

UTF-8 から ISO 8859-8 (Hebrew) 

UTF-8 

8859-9 

UTF-8 から ISO 8859-9 

UTF-8 

8859-10 

UTF-8 から ISO 8859-10 

UTF-8  

8859-11 

UTF-8 から TIS 620.2533 (Thai) 

UTF-8 

8859-15 

UTF-8 から ISO 8859-15 

8859-1 

UTF-8 

ISO 8859-1 から UTF-8 

8859-2 

UTF-8 

ISO 8859-2 から UTF-8 

8859-3 

UTF-8 

ISO 8859-3 から UTF-8 

8859-4 

UTF-8 

ISO 8859-4 から UTF-8 

8859-5 

UTF-8 

ISO 8859-5 (Cyrillic) から UTF-8 

8859-6 

UTF-8 

ISO 8859-6 (Arabic) から UTF-8 

8859-7 

UTF-8 

ISO 8859-7 (Greek) から UTF-8 

8859-8 

UTF-8 

ISO 8859-8 (Hebrew) から UTF-8 

8859-9 

UTF-8 

ISO 8859-9 から UTF-8 

8859-10 

UTF-8 

ISO 8859-10 から UTF-8 

8859-11 

UTF-8 

TIS 620.2533 から UTF-8 

8859-15 

UTF-8 

ISO 8859-15 から UTF-8 

UTF-8 

KOI8-R 

UTF-8 から KOI8-R (Cyrillic) 

KOI8-R 

UTF-8 

KOI8-R (Cyrillic) から UTF-8 

UTF-8 

UCS-2 

UTF-8 から UCS-2 

UCS-2 

UTF-8 

UCS-2 から UTF-8 

UTF-8 

UCS-4 

UTF-8 から UCS-4 

UCS-4 

UTF-8 

UCS-4 から UTF-8 

UTF-8 

UTF-7 

UTF-8 から UTF-7 

UTF-7 

UTF-8 

UTF-7 から UTF-8 

UTF-8 

UTF-16 

UTF-8 から UTF-16 

UTF-16 

UTF-8 

UTF-16 から UTF-8 

UTF-8 

eucJP 

UTF-8 から日本語 EUC (JIS X0201-1976、JIS X0208-1983、JIS X0212-1990) 

UTF-8 

PCK 

UTF-8 から日本語 PCK (SJIS) 

UTF-8 

ISO-2022-JP 

UTF-8 から ISO-2022-JP 

eucJP 

UTF-8 

日本語 EUC から UTF-8 

PCK 

UTF-8 

日本語 PCK (SJIS) から UTF-8 

ISO-2022-JP 

UTF-8 

ISO-2022-JP から UTF-8 

UTF-8 

ko_KR-euc 

UTF-8 から韓国語 EUC (KS C 5636 および KS C 5601-1987) 

UTF-8 

ko_KR-johap 

UTF-8 から韓国語 Johap (KS C 5601-1987) 

UTF-8 

ko_KR-johap92 

UTF-8 から韓国語 Johap (KS C 5601-1992) 

UTF-8 

ko_KR-iso2022-7 

UTF-8 から ISO-2022-KR 

ko_KR-euc 

UTF-8 

韓国語 EUC から UTF-8 

ko_KR-johap 

UTF-8 

韓国語 Johap (KS C 5601-1987) から UTF-8 

ko_KR-johap92 

UTF-8 

韓国語 Johap (KS C 5601-1992) から UTF-8 

ko_KR-iso2022-7 

UTF-8 

ISO-2022-KR から UTF-8 

ko_KR-cp933 

UTF-8 

IBM MBCS CP933 から UTF-8 

UTF-8 

gb2312 

UTF-8 中国語 (簡体字) EUC (GB 1988-1980 および GB2312-1980) 

UTF-8 

iso2022 

UTF-8 中国語 (簡体字) MIME 文字セット (ISO-2022-cn) 

UTF-8 

GBK 

UTF-8 から中国語 (簡体字) MIME 文字セット (ISO-2022-cn) 

gb2312 

UTF-8 

中国語/PRC EUC (GB 2312-1980) から UTF-8 

iso2022 

UTF-8 

ISO-2022-CN から UTF-8 

GBK 

UTF-8 

中国語 (簡体字) GBK から UTF-8 

UTF-8 

zh_TW-euc 

UTF-8 から中国語 (繁体字) EUC (CNS 11643-1992) 

UTF-8 

zh_TW-big5 

UTF-8 から中国語 (繁体字) Big5 

UTF-8 

zh_TW-iso2022-7 

UTF-8 から 中国語 (繁体字) MIME 文字セット (ISO-2022-TW) 

UTF-8 

zh_TW-cp937 

UTF-8 から IBM MBCS CP937 

zh_TW-euc 

UTF-8 

中国語 (繁体字) EUC から UTF-8 

zh_TW-big5 

UTF-8 

中国語 (繁体字) Big5 から UTF-8 

zh_TW-iso2022-7 

UTF-8 

中国語 (繁体字) MIME 文字セット (ISO-2022-TW) から UTF-8 

zh_TW-cp937 

UTF-8 

IBM MBCS CP937 から UTF-8 

iconv によるコード変換についての詳細は、iconv(1)iconv_open(3)iconv(3)、および iconv_close(3) のマニュアルページを参照してください。使用可能なコード変換についての詳細は、iconv_en_US.UTF-8(5) を参照してください。

文字選択および入力モード

en_US.UTF-8 ロケールは複数の文字をサポートしています。en_US.UTF-8 ロケールには、次の 8 つの入力モードがあります。

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

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

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

Graphic

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

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

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

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

次の表に、Sparc で Latin-1、Latin-2、Latin-4、Latin-5、Latin-9 の文字の入力によく使用される Compose 手順を示します。


注 -

以下の手順では、最初に Compose キーを押してから、離します。


表 4-4 に、Latin-1 の Compose 手順を示します。

表 4-4 Sparc での Latin-1 の一般的な Compose 手順

Compose キー 

説明 

スペース 

スペース 

スペース (space) 

逆感嘆符 (Inverted exclamation) 

セント記号 (Cents) 

ポンド記号 (Pounds) 

不特定通貨記号 (Currency symbol) 

円記号 (Yen) 

破断線 (Broken bar) 

節記号 (Section) 

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

著作権表示記号 (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) 

棒つき D (Eth) 

‾ 

チルド付き 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) 

‾ 

チルド付き 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) 


注 -

表 4-3 に示されている手順は 表 4-4 には含まれていません。


表 4-5 に、Latin-2 の一般的な Compose 手順を示します。

表 4-5 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 


注 -

表 4-3 または 表 4-4 に示されている手順は 表 4-5 には含まれていません。


表 4-6 は、Latin-4 の一般的な Compose 手順を示します。

表 4-6 Latin-4 の一般的な Compose 手順

最初に押すキー 

2 番目に押すキー 

結果 

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 

エング


注 -

表 4-3表 4-4、または 表 4-5 に示されている手順は表 4-6 には含まれていません。


表 4-7 に、Latin-5 の一般的な Compose 手順を示します。

表 4-7 Latin-5 の一般的な Compose 手順

最初に押すキー 

2 番目に押すキー 

結果 

短音記号の付いた G 

ドットの付いた I 

短音記号の付いた g 

ドットの付いた i

他の表で説明された Compose 手順は、この表には示されていません。

表 4-8 は、Latin-9 の一般的な Compose 手順を示します。

表 4-8 Latin-9 の一般的な Compose 手順

最初に押すキー 

2 番目に押すキー 

結果 

oe の合字 

OEの合字 

ウムラウトの付いた Y 

キリル文字入力モード

英語入力モードからキリル文字入力モードに切り替えるには、Compose c c を押します。現在、ギリシャ文字入力モードである場合は、まず英語モードに戻ってから、キリル文字入力モードに切り替えます。

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

Graphic

キリル文字入力モードに切り替えると、英語の文字は入力できなくなります。英語入力モードに戻るには、<Control_Space> キーを押します。ロシア語のキー配列を図 4-1 に示します。

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

Graphic

ギリシャ文字入力モード

英語入力モードからギリシャ文字入力モードに切り替えるには、Compose g g を押します。現在、キリル文字入力モードである場合は、まず英語モードに戻ってから、ギリシャ文字入力モードに切り替えます。

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

Graphic

ギリシャ文字入力モードに切り替えると、英語の文字は入力できなくなります。英語入力モードに戻るには、<Control_Space> キーを押します。ギリシャ語のキー配列を図 4-2 および 4-3 に示します。

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

Graphic

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

Graphic

アラビア語入力モード

アラビア語入力モードに切り替えるには、<Compose> + <g> + <g> を押します。入力モードは、GUI アプリケーションの左下隅に表示されます。アラビア語入力モードに切り替えた後で英語/ヨーロッパ言語の文字を入力するには、<Control> キーとスペースバーを同時に押して英語/ヨーロッパ言語入力モードに切り替えます。

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

Graphic

ヘブライ語入力モード

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

アラビア語入力モードに切り替えた後で英語/ヨーロッパ言語の文字を入力するには、<Control> キーとスペースバーを同時に押して英語/ヨーロッパ言語入力モードに切り替えます。他の入力モードに切り替えるには、そのモードの切り替えキー手順に従います。ヘブライ語のキーボードのレイアウトを次の図に示します。

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

Graphic

タイ語入力モード

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

Graphic

アラビア語入力モードに切り替えた後で英語/ヨーロッパ言語の文字を入力するには、<Control> キーとスペースバーを同時に押して英語/ヨーロッパ言語入力モードに切り替えます。他の入力モードに切り替えるには、そのモードの切り替えキー手順に従います。タイ語のキーボードのレイアウトを次の図に示します。

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

Graphic

Unicode 16 進数コード入力モード

Unicode 16 進数コード入力モードに切り替えるには、<Compose> <u> <h> を押します。入力モードは、GUI アプリケーションの左下隅に表示されます。

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

表参照入力モード

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

この入力モードに切り替えると、参照ウィンドウが現れて、複数の Unicode 文字が候補として表示されます。ポインタとマウスの左ボタンで、候補の中から 1 つを選択します。各候補の左側にある文字を入力しても選択できます。

現在の入力モードでの入力が終わって、他の入力モードに切り替えるには、その入力モードに対応したキー手順を押します。

入力モード切り替えキー手順のまとめ

Solaris 7 以降の環境では、ユーザーは入力モードを自由に切り替えられます。次の表に、各入力モードの切り替え手順を示します。

表 4-9 入力モードの切り替えキー手順
 入力モード キー手順
 英語/ヨーロッパ言語 <Control> + スペースバー
 キリル語 <Compose> <c> <c>
 ギリシャ語 <Compose> <g> <g>
 アラビア語 <Compose> <a> <r>
 ユダヤ語 <Compose> <h> <h>
 タイ語 <Compose> <t> <t>
 Unicode 16 進数コード入力モード <Compose> <u> <h>
 表参照入力モード <Compose> <l> <l>

印刷

en_US.UTF-8 ロケールは、印刷ユーティリティ xutops(1) を提供します。このユーティリティにより、UTF-8 で記述されたプレーンテキストファイルを、システムで使用可能な X11 フォントを使用して印刷できます。このユーティリティからの出力は標準 PostScript であり、任意の PostScript プリンタに送信して出力できます。

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


system% xutops filename | lp

このユーティリティは stdin ストリームを受け付けるので、フィルタとして使用することもできます。


system% lpr filename | xutops | lp

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


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

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


system# lpfilter -f filtername -F pathname

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


Input types: simple
Output types: XUTOPS
Command: /usr/openwin/bin/xutops

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

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


system% lp -T XUTOPS UTF-8-file

DtMail

サポートするスクリプトが増えたために、en_US.UTF-8 ロケールで実行される Solaris 7 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 を参照してください。

プログラミング環境

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

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

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

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

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

以下のリストは、Solaris 7 製品でサポートされている 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-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-*-*-*-*-*-*-*-gb2312.1980-0,
 -dt-interface system-medium-r-normal-s*utf-*-*-*-*-*-*-*-jisx0201.1976-0,
 -dt-interface system-medium-r-normal-s*utf-*-*-*-*-*-*-*-jisx0208.1983-0,
 -dt-interface system-medium-r-normal-s*utf-*-*-*-*-*-*-*-kcs5601.1992-3,
 -dt-interface system-medium-r-normal-s*utf-*-*-*-*-*-*-*-tis620.2533-0",
    &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*-*-*-*-*-*-*-*-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-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-*-*-*-*-*-*-*-gb2312.1980-0;¥
-dt-interface system-medium-r-normal-s*utf-*-*-*-*-*-*-*-jisx0201.1976-0;¥
-dt-interface system-medium-r-normal-s*utf-*-*-*-*-*-*-*-jisx0208.1983-0;¥
-dt-interface system-medium-r-normal-s*utf-*-*-*-*-*-*-*-tis620.2533-0: 

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