日本語DECwindows Motifでは,X11R5の国際化機能を使用して日本語のアプリケーションが作成できます。XmbDrawString() 等を用いた日本語の表示や,XmbLookupString() 等を使用した日本語の入力が可能です。
X libraryは以下の日本語ロケールをサポートします。
日本語DECwindows MotifはDEC日本語入力サーバ(DECW$JIM)を提供します。DECW$JIM を使用する場合のim modifierは"DEC"です。im modifierを省略した場合も"DEC" として動作します。
例
define XMODIFIER "@im=DEC"
DEC日本語入力サーバ(DECW$JIM)は以下の入力スタイルをサポートします。
XIMPreeditCallbacks,XIMStatusNothing | (OnTheSpot) | |
XIMPreeditPosition,XIMStatusNothing | (OverTheSpot) | |
XIMPreeditNothing,XIMStatusNothing | (Root) |
また,DEC入力サーバ・ライブラリを使用して,独自の入力サーバを作成する事ができます。 そのような入力サーバでは,サーバで指定した名前をim modifier にセットします。DEC入力サーバ・ライブラリについては第6章を参照してください。
X11R5においては,XtSetLanguageProc()を使用してXlibとツールキットの言語の整合性をとる事ができます。 これによってDECwindowsのセッション・ マネージャで設定した言語でアプリケーションを動作させる事が可能です。
日本語DECwindows Motif V1.2で提供されるXlibは、国際化機能としてDEC が独自に作成した国際化ライブラリと、MITから配付されている国際化ライブラリの1 つであるXimpを、アプリケーション起動時に切り換えて使用することができます。
このライブラリは,MITから配付されている国際化ライブラリ(Ximp,Xsi) でサポートされるより広い範囲の言語/コードセットをサポートすることを目的として,DEC が作成したライブラリです。ロケール・データベース,XIM プロトコルはDEC独自のものを使用しています。
このライブラリは,MIT X11R5で配付されているXimpを,DECのロケールをサポートするように拡張したライブラリです。XIM プロトコルはXimp V3.5 とV4.0をサポートします。
Xlibの国際化ライブラリをユーザのアプリケーション起動時に切り換えるためには, 論理名DECW$XVENDORLAYERに使用したい国際化ライブラリを指定します。Ximp 国際化ライブラリを使用する場合は
$ DEFINE DECW$XVENDORLAYER DECW$XIMPLIBSHR
と指定したプロセスからアプリケーションを起動します。この指定が無い場合, または,指定がまちがっている場合は、DECの国際化ライブラリを使用します。
SYS$COMMON:[DECW$DEFAULTS.SYSTEM.NLS.XIMP]以下のものをロケール・データベースは使用しますが, ユーザが独自の変更を加えたものなどを指定することもできます。 ロケール・データベースを変更したい場合は,まずシステムのデータベース・ ファイルを,自分のディレクトリなどにコピーしてきて, そこで編集作業をしてください。ユーザ独自のロケール・データベースを使用する場合は, 論理名DECW$XIMPLOCALEDIRにユーザのロケール・ データベースのディレクトリを指定します。
$ DEFINE DECW$XIMPLOCALEDIR DISK$USERS:[SATO.XIMP]
などとしてください。必ず[]を使用してディレクトリ指定をすることに注意してください。 またここで指定したディレクトリ以下はSYS$COMMON:[DECW$DEFAULTS.SYSTEM.NLS.XIMP] 以下と同じディレクトリ構造にしてください。 具体的には,この下にLOCALE.ALIASにあるロケール名のサブディレクトリがあって, その下にシステムのものと同じ名前のファイルがあるということです。DECW$XIMPLOCALEDIR で指定されたディレクトリに使用するデータベース・ ファイルが見つからない場合は,Ximpはシステムのデータベース・ ファイルを使用して動作します。
setlocale等の国際化関数を用いてウィンドウ・プログラムを開発する場合, 以下の点に注意してください。
日本語OpenVMS 6.0 VAXは,setlocale等の国際化関数を含んだDECC$SHR ライブラリを提供しています。このシステムでは, DECwindowsのXlibもDECC$SHRの国際化関数を用います。ただし, 日本語OpenVMSにはDECCプログラミング環境は含まれていませんので, setlocale等を使ってプログラミングする場合はDECCをインストールする必要があります。
以下の手順でプログラムを開発してください。
DECC$SHRの国際化関数の提供されていないシステムでは,Xlib内に以下の国際化関数およびマクロが用意されています。
これらを利用するには以下の手順が必要です。
<stdlib.h>もインクルードする場合は<stdlib.h>より前に<X11 /Xlocale.h>をインクルードしてください。Motifアプリケーションは自動的にインクルードします。
/DEFINE=(X_LOCALE,X_WCHAR,_WCHAR_T_,XLIB_XPG4_FUNCS)