8    国際化機能

この章では,Tru64 UNIX の国際化機能について説明します。 最初に国際化の概要 (8.1 節) を簡単に説明し,以降の節で次のトピックについて説明します。

8.1    国際化機能の概要

"国際化" (Internationalization) という用語は,The Open Group によって次のように定義されています。

"異なる言語,地域的な異なる習慣,異なる文字コードセットのそれぞれの要求に適合するための機能を,コンピュータ・プログラム内部に準備しておくこと。"

つまり,国際化プログラムは,ソース・コードの変更をせずに,サポートしているすべてのロケールで実行することができます。 ロケールとは,中国,フランスなどの特定の地理的あるいは言語的領域における文化的な慣習に正確に対応するソフトウェア環境のことを示し,その領域で使用されている言語がサポートされます。 たとえば,中国語のロケールを設定した場合,コマンド,システム・メッセージおよびキー入力はすべて中国語文字で行われ,中国語に合った方法で表示されます。

Tru64 UNIX は,既存のアプリケーションをユーザの母国語で操作できるだけでなく,国際化アプリケーションの開発を支援するために WPI (Worldwide Portability Interfaces) に準拠するアプリケーション・インタフェースを完全にサポートする国際化オペレーティング・システムです。 OSF からリリースされたコードは HP によって拡張されています。

Tru64 UNIX の国際化サポートは,The Open Group のシステム・インタフェースおよびヘッダ (XSH Issue 5),curses (XCURSES Issue 4.2),およびコマンドとユーティリティ (XCU Issue 5) の CAE 仕様に準拠しています。 これらの仕様は,POSIX および ISO C 標準の現在のバージョンと整合性が取れています。 この準拠により,コマンド,ユーティリティ,ライブラリが国際化されており,対応するメッセージ・カタログがベース・システムで提供されています。

Tru64 UNIX は,中国語文字入力標準 GB18030-2000 に準拠しています

さらに,オペレーティング・システムは X 入力メソッド(XIM) および X 出力メソッド(XOM) をサポートしており,ローカル言語文字の入力,テキスト描画,計測単位設定およびクライアント間通信が可能になっています。 これらの機能は,X11R6.3 に従って実装されており,X11R6.4 で規定されるいくつかの問題の修正が含まれています。

Tru64 UNIXは,アジア言語用に 32 ビット wchar_t データ・タイプをサポートしています。 このサポートにより ISO 10646 標準で定義されているものを含め,さまざまなコードセットの使用が可能になります。

Tru64 UNIX の国際化機能については下記のドキュメントを参照してください。

8.2    サポート言語

ワールドワイド言語サポート (WLS) サブセットに含まれているほとんどのロケールは,オプションでインストールされます。 いくつかについては,表 8-1で示すとおり,必須ベース・オペレーティング・システムの一部となっています。

ロケール名が UTF-8 で終るロケールは,ファイル・コードと内部処理コードに ISO 10646 および Unicode 標準で定義されている文字エンコーディング (wchar_t エンコーディング) を使用します。 その他の UTF-8 でない Unicode ロケールは,ファイル・コードには従来の UNIX およびメーカー独自のコードセットを,内部処理コードには UTF-32 を使用します。 これらの Unicode ロケールの一部には,ロケール名に @ucs4 の文字列が含まれています。ただし,それらは @ucs4 が付かないロケールと同じものです。

universal.UTF-8 ロケールもサポートされます (エンド・ユーザ向けというよりアプロケーション用に)。 このロケールは UCS (universal character set) で一連の文字をサポートします。 コーディング・フォーマットについての詳細は unicode(5) を参照してください。

UTF-8 および Latin-9 (ISO 8859-15) ロケールはユーロ通貨記号をサポートします。

サポートする言語およびロケールの最新情報は l10n_intro(5) リファレンス・ページを参照してください。

表 8-1 に示すのは,オペレーティング・システムでサポートする言語およびその対応ロケールです。

表 8-1:  言語とロケール

言語 ロケール名
カタロニア語

ca_ES.ISO8859-1
[脚注 2]
 
ca_ES.ISO8859-15
ca_ES.UTF-8

中国語/簡体字 (PRC)

zh_CN.UTF-8
zh_CN.dechanzi
zh_CN.dechanzi@ucs4
zh_CN.dechanzi@pinyin
zh_CN.dechanzi@pinyin@ucs4
zh_CN.dechanzi@radical
zh_CN.dechanzi@radical@ucs4
zh_CN.dechanzi@stroke
zh_CN.dechanzi@stroke@ucs4
zh_CN.GBK
zh_CN.GB18030

中国語/繁体字 (香港)

zh_HK.big5
zh_HK.dechanyu
zh_HK.dechanyu@ucs4
zh_HK.dechanzi
zh_HK.dechanzi@ucs4
zh_HK.eucTW
zh_HK.eucTW@ucs4

中国語/繁体字 (台湾)

zh_TW.big5
 
zh_TW.big5@chuyin
zh_TW.big5@radical
zh_TW.big5@stroke
zh_TW.dechanyu
zh_TW.dechanyu@ucs4
zh_TW.dechanyu@chuyin
zh_TW.dechanyu@chuyin@ucs4
zh_TW.dechanyu@radical
zh_TW.dechanyu@radical@ucs4
zh_TW.dechanyu@stroke
zh_TW.dechanyu@stroke@ucs4
zh_TW.eucTW
zh_TW.eucTW@ucs4
zh_TW.eucTW@chuyin
zh_TW.eucTW@chuyin@ucs4
zh_TW.eucTW@radical
zh_TW.eucTW@radical@ucs4
zh_TW.eucTW@stroke
zh_TW.eucTW@stroke@ucs4

チェコ語

cs_CZ.ISO8859-2
cs_CZ.ISO8859-2@ucs4

デンマーク語

da_DK.ISO8859-1
[脚注 2]
 
da_DK.ISO8859-15
da_DK.UTF-8

オランダ語

nl_NL.ISO8859-1
[脚注 2]
 
nl_NL.ISO8859-15
nl_NL.UTF-8

ベルギー系オランダ語

nl_BE.ISO8859-1
[脚注 2]
 
nl_BE.ISO8859-15
nl_BE.UTF-8

アメリカ英語/ASCII C (POSIX) [脚注 2]
アメリカ英語

en_US.ISO8859-1
[脚注 2]
 
en_US.ISO8859-15
en_US.cp850.
en_US.UTF-8,
en_US.UTF-8@euro
[脚注 3]
 

イギリス英語

en_GB.ISO8859-1
[脚注 2]
 
en_GB.ISO8859-15
en_GB.UTF-8

ヨーロッパ en_EU.UTF-8@euro [脚注 4]
フィンランド語

fi_FI.ISO8859-1
[脚注 2]
 
fi_FI.ISO8859-15
fi_FI.UTF-8

フランス語

fr_FR.ISO8859-1
[脚注 2]
 
fr_FR.ISO8859-15
fr_FR.UTF-8

ベルギー系フランス語

fr_BE.ISO8859-1
[脚注 2]
 
fr_BE.ISO8859-15
fr_BE.UTF-8

カナダ系フランス語

fr_CA.ISO8859-1
[脚注 2]
 
fr_CA.ISO8859-15
fr_CA.UTF-8

スイス系フランス語

fr_CH.ISO8859-1
[脚注 2]
 
fr_CH.ISO8859-15
fr_CH.UTF-8

ドイツ語

de_DE.ISO8859-1
[脚注 2]
 
de_DE.ISO8859-15
de_DE.UTF-8

スイス系ドイツ語

de_CH.ISO8859-1
[脚注 2]
 
de_CH.ISO8859-15
de_CH.UTF-8

ギリシャ語

el_GR.ISO8859-7
el_GR.ISO8859-7@ucs4
el_GR.UTF-8

ヘブライ語

he_IL.ISO8859-8
he_IL.ISO8859-8@ucs4
 

ハンガリー語

hu_HU.ISO8859-2
hu_HU.ISO8859-2@ucs4

アイスランド語

is_IS.ISO8859-1
[脚注 2]
 
is_IS.ISO8859-15

イタリア語

it_IT.ISO8859-1
[脚注 2]
 
it_IT.ISO8859-15
it_IT.UTF-8

日本語

ja_JP.eucJP
ja_JP.SJIS
ja_JP.SJIS@ucs4
ja_JP.deckanji
ja_JP.deckanji@ucs4
ja_JP.sdeckanji
ja_JP.UTF-8
 

韓国語

ko_KR.deckorean
ko_KR.deckorean@ucs4
ko_KR.eucKR
ko_KR.KSC5601
ko_KR.UTF-8

リトアニア語

lt_LT.ISO8859-4
lt_LT.ISO8859-4@ucs4

ノルウェー語

no_NO.ISO8859-1
[脚注 2]
 
no_NO.ISO8859-15
no_NO.UTF-8

ポーランド語

pl_PL.ISO8859-2
pl_PL.ISO8859-2@ucs4

ポルトガル語

pt_PT.ISO8859-1
[脚注 2]
 
pt_PT.ISO8859-15
pt_PT.UTF-8

ロシア語

ru_RU.ISO8859-5
ru_RU.ISO8859-5@ucs4

スロバキア語

sk_SK.ISO8859-2
sk_SK.ISO8859-2@ucs4

スロベニア語

sl_SI.ISO8859-2
sl_SI.ISO8859-2@ucs4

スペイン語

es_ES.ISO8859-1
[脚注 2]
 
es_ES.ISO8859-15
es_ES.UTF-8

スウェーデン語

sv_SE.ISO8859-1
[脚注 2]
 
sv_SE.ISO8859-15
sv_SE.UTF-8

タイ語

th_TH.TACTIS

トルコ語

tr_TR.ISO8859-9
tr_TR.ISO8859-9@ucs4

言語あるいは文字セットは必要に応じて切替えることができ,同一システム上で同時に複数のプロセスで別々の言語あるいはコードセットを使用することも可能です。

ISO8859-9 など,特定のコード化文字セットについての詳細はリファレンス・ページを参照してください。 UCS-4 および UTF-8 エンコーディングについては, Unicode(5) を参照してください。 PC コード・ページについては, code_page(5) を参照してください。

8.3    ロケールの作成

localedef ユーティリティによってプログラマは,独自のロケールを作成し,ソース・コードをコンパイルし,新しいロケールの固有名を生成できます。

ロケール作成の詳しい説明は,『国際化ソフトウェア・プログラミング・ガイド』を参照してください。

8.4    コードセット変換

オペレーティング・システムには,iconv ユーティリティおよび iconv_open()iconv()iconv_close() 関数が提供されています。 これらの機能を使用することによりテキストを別のコードセットに変換することができ,これにより,プログラマが国際化アプリケーションを作成するのを支援します。 オペレーティング・システムには,これらのインタフェースで使用できる多数のコードセット・コンバータが用意されています。

新しい en_US.UTF-8 X ロケール・データベースには, オペレーティング・システムで使用する各種のフォントを含むフォント定義が入っています。 このため,en_US.UTF-8 ロケール下で実行されているアプリケーションは,ワールドワイド言語サポート (WLS) でインストールされたすべてのフォントの文字を表示できます。 アジア言語系ロケール下で実行されているアプリケーションは,ISO8859-2-4-5-7-8-9,および TACTIS 以外の,WLS でインストールされたすべてのフォントを表示できます。

同じ言語の異なるコードセット間の変換に加えて,これらのコンバータは,UCS-2UCS-4,および UTF-8 などの,異なる Unicode 間の変換もサポートします。 また,一般的に使用される PC コード・ページ形式を処理するコードセット・コンバータも提供されています。

コードセット変換機能は,プリント・サブシステムや man コマンドなどのユーティリティでも使用されています。 また,コードセット変換は,異なるコードセットを使用するシステム間でメールの交換を行うためにメール・ユーティリティにも実装されているとともに,テキスト入力,描画およびクライアント間通信のために,X Window System Toolkit にも実装されています。 コードセット変換の詳細については, iconv_intro(5) リファレンス・ページを参照してください。 Unicode および PC コード・ページ用のコンバータの詳細については, Unicode(5) および code_page(5) リファレンス・ページをそれぞれ参照してください。

8.5    Unicode および dense コード・ロケール

システム上にワールドワイド言語サポートをインストールすると,2 種類のロケール (Unicode ロケールと dense コード・ロケール) でローカリゼーションがサポートされます。

Unicode ロケールは,Unicode 標準と ISO/IEC 10646 標準に適合しており,ワイド文字のコード化に UTF-32 を使用します。 UTF-32 のワイド文字エンコーディングでは,wchar_t の値は,ロケールに関係なく同じ文字を表します。 Unicode 標準は広く普及しているため,どのプラットフォームでも実装は一貫しています。

dense コード・ロケールでは,テーブル・サイズを最小にするため,ワイド文字のコード化に dense コードが使用されます (つまり,コードポイントは,空のポジションなしで連続して割り当てられます)。

文字の内部表現および外部表現の両方に ISO 10646 (Unicode) を使用する UTF-8 ロケールに加え,dense コード・ロケールおよび Unicode ロケールは,機能的には同じ多くのロケールを提供します。

dense コード・ロケールのロケール名は,UTF-8 以外の文字列で終わります (たとえば ISO8859-1,eucJP,GB18030 など)。 非 UTF-8 の Unicode ロケールのロケール名は,@ucs4 の文字列で終わります。 dense コード・ロケールと Unicode ロケールのペアの例としては,pl_PL.ISO8859-2pl_PL.ISO8859-2@ucs4 があります。

一般に,dense コード・ロケールと Unicode ロケールには同じ charmap とロケール・ソースが使われます。 ただし,ロケール・ソースの LC_COLLATE セクションで定義されていない文字は,2 つのタイプのロケールでソート結果が異なる場合があります。

Latin-1 ロケール (ISO8859-1) では,Latin-1 の文字が Unicode の最初の 256 文字と同じであるため,dense コード・ロケールと Unicode ロケールは全く同じです。 オペレーティング・システムは,Unicode 標準で定義されている UTF-8UTF-16,および UTF-32の UTF (UCS transformation format) もサポートします。 詳細は Unicode(5)を参照してください。

Unicode と dense コード・ロケールの切り替えは,root ユーザとして i18nconfig を実行してシステム全体のデフォルト設定を変更するか,あるいはシンボリック・リンク /usr/i18n/lib/nls/dloc./ucsloc から ./loc へ手動で変更することにより可能です。

8.6    Unicode サポート

Tru64 UNIX は,UCS-4 および UTF-8 ベース・ロケールで Unicode 標準 Version 3.1 および ISO 10646 標準をサポートします。 UCS-4 (UTF-32),UCS-2 (UTF-16),および UTF-8 フォーマット間のコードセット変換機能が,すべてのサポート・コードセットに対して提供されます。 Unicode といくつかのシングルバイト PC コード・ページ間の変換サポート,および,それらの PC コード・ページから ISO Latin コードセットへの変換機能が提供されます。 Unicode ロケールについての詳細は Unicode(5) を参照してください。

8.7    国際化ソフトウェア構成ユーティリティ

「国際化ソフトウェアの構成」ユーティリティを使うと,システム管理者は,各国語サポート・サブセット,アジア言語のターミナル・ドライバ,インストール済みフォント・ファイル,ローカル言語設定と入力メソッド,ユーザ・アカウント,および日本語入力メソッド (Wnn) を管理できます。 これらの WLS オプションを設定することで,国際化アプリケーションの作成や使用に必要なオペレーティング・システム環境の設定を行うことができます。 「国際化ソフトウェアの構成」ユーティリティを使用して,システム管理者やユーザはキーボード・マッピングを表示することもできます。

「国際化ソフトウェアの構成」ユーティリティは,SysMan Menu の「ソフトウェア」オプションから利用できるメニュー形式のユーティリティです。

8.8    ユーロ文字のサポート

Tru64 UNIX はユーロ通貨記号をサポートします。 UTF-8 あるいは Latin-9 (ISO 8859-15) コードセットをサポートするロケールでユーロ文字をサポートする一方,ロケール名の最後に @euro が付くロケールではローカル通貨記号がユーロ文字になるように定義しています。

en_EU.UTF-8@euro ロケールは,ユーロ記号をサポートする英語ロケールです。ユーロ文字のプリンタ・サポートは汎用 PostScript プリント・フィルタ wwpsof で提供されます。

ユーロ文字のキーボード入力は,キーマップで定義されているキー・シーケンスおよび Compose キーの使用によってサポートされます。 詳細は euro(5) および wwpsof(8) リファレンス・ページを参照してください。

8.9    dxim 入力サーバ

マルチリンガル入力サーバ dxim は,韓国語および中国語 (繁体字および簡体字) の入力メソッドの使用および管理のための手段を提供します。

dxim 入力サーバのメニューは,入力メソッド・クラスおよびメソッドのカスタマイズ,および,入力メソッド・ウィンドウのカスタマイズの 2 つの機能部分に分かれています。

dxim 入力サーバは,異なるロケールで動作する複数のクライアントをサポートできます。 クライアント・アプリケーションが dxim に接続すると,入力サーバがクライアントのロケールを確認し,そのまま使用できる場合は省略時の入力メソッドを使用します。 クライアントのロケールではサーバの省略時の入力メソッドを使用できない場合, dxim は使用可能な入力メソッドを探します。 この場合,最初に見つかった利用可能な入力メソッドが使用されます。

dxim 入力サーバについての詳細は, dxim(1X) リファレンス・ページおよび dxim のオンライン・ヘルプを参照してください。

8.10    国際化 Curses ライブラリ

オペレーティング・システムは,X/Open Curses, Issue 4 に準拠する国際化 Curses ライブラリを提供します。 このライブラリは,シングルバイトおよびマルチバイト文字を処理するための関数を提供します。 マルチバイト文字には,ワイド文字 (wchar_t) あるいは 複合文字 (cchar_t) のどちらかのフォーマットが含まれます。 複合文字フォーマットは,複数のワイド文字で構成されるシングル・ロジカル文字のために提供されます。 複合文字のいくつかのコンポーネントは,ノンスペーシング文字です。

すべての Curses インタフェースの使用方法および機能については, curses(3)を参照してください。 国際化 Cursesルーチンによって提供される機能の向上と,以前の Curses ルーチンとの関係については,『国際化ソフトウェア・プログラミング・ガイド』 を参照してください。

8.11    その他の国際化機能

Tru64 UNIX は,以下の国際化ユーティリティおよび機能をサポートします。