この章では,Tru64 UNIX の国際化機能について説明します。 最初に国際化の概要 (8.1 節) を簡単に説明し,以降の節で次のトピックについて説明します。
サポート言語 (8.2 節)
localedef
ユーティリティによるロケールの作成 (8.3 節)
コードセット変換 (8.4 節)
Unicode ロケールと dense コード・ロケール (8.5 節)
Unicode 標準 V3.1 および ISO 10646 規格のサポート (8.6 節)
「国際化ソフトウェアの構成」オプション (8.7 節)
ユーロ通貨記号のサポート (8.8 節)
dxim 入力サーバ (8.9 節)
国際化 Curses ライブラリ (8.10 節)
その他の国際化機能 (8.11 節
"国際化" (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 の国際化機能については下記のドキュメントを参照してください。
『国際化ソフトウェア・プログラミング・ガイド』 (プログラマ向け情報)
『国際化機能ユーザーズ・ガイド』
Tru64 UNIX ワールドワイド言語サポートに関する Web ページ
ワールドワイド言語サポート (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: 言語とロケール
言語 | ロケール名 |
カタロニア語 |
|
中国語/簡体字 (PRC) |
|
中国語/繁体字 (香港) |
|
中国語/繁体字 (台湾) |
|
チェコ語 |
|
デンマーク語 |
|
オランダ語 |
|
ベルギー系オランダ語 |
|
アメリカ英語/ASCII | C
(POSIX)
[脚注 2] |
アメリカ英語 |
|
イギリス英語 |
|
ヨーロッパ | en_EU.UTF-8@euro
[脚注 4]
|
フィンランド語 |
|
フランス語 |
|
ベルギー系フランス語 |
|
カナダ系フランス語 |
|
スイス系フランス語 |
|
ドイツ語 |
|
スイス系ドイツ語 |
|
ギリシャ語 |
|
ヘブライ語 |
|
ハンガリー語 |
|
アイスランド語 |
|
イタリア語 |
|
日本語 |
|
韓国語 |
|
リトアニア語 |
|
ノルウェー語 |
|
ポーランド語 |
|
ポルトガル語 |
|
ロシア語 |
|
スロバキア語 |
|
スロベニア語 |
|
スペイン語 |
|
スウェーデン語 |
|
タイ語 |
|
トルコ語 |
|
言語あるいは文字セットは必要に応じて切替えることができ,同一システム上で同時に複数のプロセスで別々の言語あるいはコードセットを使用することも可能です。
ISO8859-9
など,特定のコード化文字セットについての詳細はリファレンス・ページを参照してください。
UCS-4
および
UTF-8
エンコーディングについては,
Unicode
(5)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-2
,UCS-4
,および
UTF-8
などの,異なる Unicode 間の変換もサポートします。
また,一般的に使用される PC コード・ページ形式を処理するコードセット・コンバータも提供されています。
コードセット変換機能は,プリント・サブシステムや
man
コマンドなどのユーティリティでも使用されています。
また,コードセット変換は,異なるコードセットを使用するシステム間でメールの交換を行うためにメール・ユーティリティにも実装されているとともに,テキスト入力,描画およびクライアント間通信のために,X Window System Toolkit にも実装されています。
コードセット変換の詳細については,
iconv_intro
(5)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-2
と
pl_PL.ISO8859-2@ucs4
があります。
一般に,dense コード・ロケールと Unicode ロケールには同じ charmap とロケール・ソースが使われます。
ただし,ロケール・ソースの
LC_COLLATE
セクションで定義されていない文字は,2 つのタイプのロケールでソート結果が異なる場合があります。
Latin-1 ロケール (ISO8859-1) では,Latin-1 の文字が Unicode の最初の 256 文字と同じであるため,dense コード・ロケールと Unicode ロケールは全く同じです。
オペレーティング・システムは,Unicode 標準で定義されている
UTF-8
,UTF-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 の「ソフトウェア」オプションから利用できるメニュー形式のユーティリティです。
各国語用のインストール済みのサブセットの表示および削除
アジア系言語用のターミナル・ドライバのサポート,タイ語のサポート,擬似ターミナル・ドライバ,UTX (UNIX Terminal Extension) デバイスの数などのサポート・オプションの設定と変更後のカーネルの再構築
インストール済みフォントの表示および削除
インストール済みキーボード・マップ・ファイルの表示
インストール済みロケールの表示,システムのデフォルト・ロケールの変更,dense コード・ロケールと Unicode ロケールの切り替え,ロケールの入力メソッドの選択
WLS サポートのためのユーザ・アカウント,root アカウント,およびシステム・アカウントの構成
Wnn の構成
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 つの機能部分に分かれています。
入力メソッド・クラスおよびメソッドのカスタマイズでは,以下のような操作を実行できます。
クライアント・アプリケーションのロケールに適した入力メソッド・クラスの選択。 中国語対応のアプリケーションに対しては,繁体字,簡体字,Phrase のクラスから 1 つあるいは複数をユーザが選択し起動します。
クラス内の 1 つあるいは複数の入力メソッドの選択および起動。
Phrase 入力メソッドを除き,dxim
が制御する繁体字および簡体字中国語クラスは,dxhanziim
および
dxhanyuim
として一連の同じ入力メソッドをサポートします。
Phrase 入力メソッドは
dxim
が制御する別のクラスで,オペレーティング・システムの Phrase ユーティリティが使うのものとは別のデータベースを使用します。
省略時の入力メソッド・クラスの設定
クラスに対する省略時の入力メソッドの設定
簡体字中国語 5-Shape および Intelligent ABC 入力メソッド・クラスのカスタマイズ
エラー・ベルのボリュームのカスタマイズおよび入力メソッド起動キーの設定
入力メソッド・ウィンドウのカスタマイズでは,以下のような操作を実行できます。
root 入力ウィンドウのフォント・サイズの変更
root 入力ウィンドウの前景色および背景色の設定
root 入力ウィンドウの行間隔の設定
dxim
入力サーバは,異なるロケールで動作する複数のクライアントをサポートできます。
クライアント・アプリケーションが
dxim
に接続すると,入力サーバがクライアントのロケールを確認し,そのまま使用できる場合は省略時の入力メソッドを使用します。
クライアントのロケールではサーバの省略時の入力メソッドを使用できない場合,
dxim
は使用可能な入力メソッドを探します。
この場合,最初に見つかった利用可能な入力メソッドが使用されます。
dxim
入力サーバについての詳細は,
dxim
(1X)dxim
のオンライン・ヘルプを参照してください。
8.10 国際化 Curses ライブラリ
オペレーティング・システムは,X/Open Curses, Issue 4 に準拠する国際化 Curses ライブラリを提供します。
このライブラリは,シングルバイトおよびマルチバイト文字を処理するための関数を提供します。
マルチバイト文字には,ワイド文字 (wchar_t
) あるいは 複合文字 (cchar_t
) のどちらかのフォーマットが含まれます。
複合文字フォーマットは,複数のワイド文字で構成されるシングル・ロジカル文字のために提供されます。
複合文字のいくつかのコンポーネントは,ノンスペーシング文字です。
すべての Curses
インタフェースの使用方法および機能については,
curses
(3)8.11 その他の国際化機能
Tru64 UNIX は,以下の国際化ユーティリティおよび機能をサポートします。
ベース
tty
端末ドライバ・サブシステム
このサブシステムは,日本語,中国語,韓国語,タイ語のデータ処理のための追加の BSD ライン・ディシプリンと STREAMS 端末ドライバ・モジュールを含みます。 たとえば,拡張端末サブシステムは,これらの言語に関して次のような機能をサポートします。
日本語かな漢字変換入力メソッド
cooked モードでの文字ベースのライン処理
入力行の履歴と編集 (BSD ライン・ディシプリンのみ)
ユーザ定義文字のソフトウェア・オンデマンド・ローディング
端末コードとアプリケーション・コードの変換
asort
ユーティリティ
sort
コマンドを拡張したこのコマンドは,日本語や中国語などの表意文字をさまざまな照合順序でソートします。
asort
ユーティリティについての詳細は,
asort
(1)
マルチリンガル Emacs エディタ(MULE)
Mule は,GNU Emacs を拡張してマルチリンガル対応したものです。
このエディタは,GNU Emacs の機能に加えて,さまざまな言語の文字を表示,入力,編集する機能を提供します。
詳細については
mule
(1)
日本語/中国語/韓国語のユーザ定義文字
cedit
および
cgen
ユーティリティにより,ビットマップ・フォントも含め,ユーザが文字フォントとその属性を作成および定義することができます。
X クライアントが,ユーザ定義文字のビットマップ・フォントを入手するために X サーバあるいはフォント・サーバを通して UDC データベースを使用できるように,フォント・レンダリング機能が提供されています。
ユーザ定義文字については,『国際化ソフトウェア・プログラミング・ガイド
』,
cedit
(1)cgen
(1)
種々の言語のプレーン・テキストおよび PostScript ファイルの印刷
Tru64 UNIX は,PostScript プリンタで高品質の印刷を行うためのアウトライン・フォントを提供しています。
ローカル言語対応のプリンタをサポートするためのプリント・フィルタに加え,汎用の国際化プリント・フィルタでさまざまなプリンタをサポートとしています。
この種のフィルタの 1 つとして,wwpsof
は,必要なフォントを持たない PostScript プリンタで,ローカル言語ファイルの印刷をサポートします。
国際化プリント機能の詳細については,
i18n_printing
(5)pcfof
(8)wwpsof
(8)
メールと 8-bit 文字のサポート
省略時の設定では,Tru64 UNIX は,mailx
,dtmail
,MH
および
comsat
で 8 ビット文字エンコーディングをサポートします。
これらのメール・ユーティリティについての詳細は,
mailx
(1)dtmail
(1)mh
(1)comsat
(8)
file
コマンドは,どのロケール設定でも UCS-2 および UCS-4 エンコーディングを認識するように拡張されています。
他のエンコーディング・フォーマットに関しては,現在のロケール設定に対して有効な場合はファイル・データ・エンコーディングを認識します。
このコマンドには
jfile
エイリアスも用意されています。
jfile
エイリアスは,DEC Kanji,日本語 EUC,シフト JIS,および 7-bit JIS エンコーディングを認識します。
グラフィカル・アプリケーションの国際化
Motif Version 1.2.3 の国際化機能は,ロケールのサポートのために,X11R6 および C ライブラリの多くの国際化機能を利用しています。
Motif Version 1.2.3は,非 ISO Latin-1 キーストロークの入力を可能にする入力メソッドをサポートし,大幅に改良された
XmText
ウィジェットを提供することで,マルチバイトおよびワイド文字フォーマット,on-the-spot 入力スタイルをサポートしています。
Motif は,国際化 X ライブラリ関数および C ライブラリ関数により,マルチバイト文字およびワイド文字エンコーディングをサポートします。
また,コンパウンド・ストリング関数は,ローカライズされた文字の作成を可能にする X11R6
XFontSet
コンポーネントを含みます。
ユーザ・インタフェース言語 (UIL) は,UIL コンパイラの新しいコンパイル時スイッチである -s によって,ロケール対応の UID ファイルの作成をサポートしています。
代替入力メソッドは,VendorShell
ウィジェットのリソースによって指定することができます。
親ウィジェットとして
Shell
クラス・ウィジェットを持つウィジェットはこのリソースを使用することができ,入力のための特定のメソッドに対してそれらを登録することができます。