この章では,Motif を使用して日本語アプリケーションの開発を行うユーザを対象に,Motif の日本語機能について説明します。
C.1 X Window System
C.1.1 X Locale
Tru64 UNIX では,X11R6.3 の国際化機能を使用して日本語のアプリケーションが作成できます。XmbDrawString() 等を用いた日本語の表示や,XmbLookupString() 等を使用した日本語の入力が可能です。
X library は以下の日本語ロケールをサポートします。
ja_JP
ja_JP.eucJP
ja_JP.deckanji
ja_JP.sdeckanji
ja_JP.SJIS
ja_JP.UTF-8
Tru64 UNIX は DEC 日本語入力サーバ (dxjim) を提供します。dxjim を使用する場合の im modifier は "DEC" です。im modifier を省略した場合も dxjim が使用できます。
例
setenv XMODIFIER @im=DEC
サポートするプロトコルは,R6 XIM と DECXim です。 DECXim は Tru64 UNIX の以前のバージョンや,OpenVMS,ULTRIX 上のクライアントのために使用されます。プロトコルの選択は自動的に行なわれるので,ユーザが意識する必要はありません。
DEC 日本語入力サーバ (dxjim) は以下の入力スタイルをサポートします。
XIMPreeditPosition,XIMStatusNothing | (OverTheSpot) |
XIMPreeditCallbacks,XIMStatusNothing | (OnTheSpot) |
XIMPreeditNothing,XIMStatusNothing | (Root) |
また,DEC 入力サーバ・ライブラリを使用して,独自の入力サーバを作成することができます。そのような入力サーバでは,サーバで指定した名前を im modifier にセットします。DEC 入力サーバ・ライブラリについては『DEC 入力サーバ・ライブラリ』のドキュメントを参照してください。
C.1.3 X Toolkit Intrinsics
X11R6.3 においては,XtSetLanguageProc() を使用して Xlib とツールキットの言語の整合性をとることができます。これによってセッションと同じ言語でアプリケーションを動作させることが可能です。
C.1.4 Xlib
Tru64 UNIX は,X11R6.3 の Xlib を提供します。Input Method プロトコルとしては,R6 XIM と Ximp プロトコルをサポートします。入力サーバとの接続時には, R6 XIM,Ximp の順で入力サーバをサーチしますので,従来のような環境変数 XVENDORLAYER による国際化ライブラリの指定は不要です。
C.2 Motif ツールキット(Xm) および HP による Motif ツールキットの拡張 (DXm)
C.2.1 日本語の表示
Tru64 UNIX では,OSF/Motif 1.2.5 の国際化機能を使用して,Xm および DXm のウィジェットで日本語の表示,入力ができます。
言語設定が日本語の場合,XmFileSelectionBox,DXmColorMix 等のウィジェット内の省略時のラベルは自動的に日本語になります。また,ウィジェットの省略時のフォント・リストは,以下のフォントからなる日本語用のフォント・セットを持ちます。
-JDECW-Kmenu-Medium-R-Normal--*-120-*-*-P-*-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--*-120-*-*-M-*-JISX0201.1976-0 -JDECW-Gothic-Medium-R-Normal--*-120-*-*-M-*-JISX0208.1983-1
日本語を扱うアプリケーションの開発には,OSF/Motif 1.2.5 のXmFontListEntryLoad(),XmFontListAppendEntry() 等で作成される,フォント・セットを用いたフォント・リストや,XmStringCreateLocalized() 等で作成される,XmFONTLIST_DEFAULT_TAG を用いたコンパウンド・ストリングが使用できます。
なお,以前のバージョンとソース互換性を保つため,DXmCvtFCtoCS() 等の関数も動作します。これらについては,以前のバージョンの『日本語 Motif 日本語機能説明書』を参照してください。
C.2.2 日本語の入力
OSF/Motif 1.2.5 の XmIm の機能を使用して日本語の入力ができます。ウィジェットでは DXmCSText に加えて XmText でも日本語が入力できます。ただし,DEC 日本語入力サーバ (dxjim) または他の入力サーバが動作していることが必要です。XmText ウィジェットは OnTheSpot スタイルをサポートするように拡張されています。
VendorShell の XmNinputMethod に "DEC" を指定すると DEC 入力サーバが使用されます。何も指定しない場合も同様に動作します。
VendorShell の XmNpreeditType リソースは,以下の値を取ることが出来ます。
XmNpreeditType:
type
[,
type
...]
type
には OnTheSpot,OverTheSpot,OffTheSpot,Root のいずれかの文字列を指定します。XmNpreeditType の省略時の値は "OverTheSpot,OffTheSpot,Root" です。
C.2.3 ロケールの設定
OSF/Motif 1.2.5 では,フォントセットを用いた日本語の表示や,入力サーバを用いた日本語入力の機能は,X11R6.3 の国際化機能を利用しています。そのため,それらの機能を実行するプログラムでは,ロケールが正しく設定されている必要があります。
たとえば,以下の1行を XtAppInitialize() の前に加えることによって,セッションの言語と同じ値でロケールを設定することができます。
XtSetLanguageProc(NULL,NULL,NULL);
OSF/Motif 1.1.3 をもとにした以前のバージョンのウィンドウ環境では,リソース・ファイル内にコンパウンド・ストリング・リソースの値として書かれた日本語文字列は,各キャラクタセットごとのタグを持ったコンパウンド・ストリングに変換されていました。
本バージョンでは OSF/Motif 1.2.5 に従い,XmFONTLIST_DEFAULT_TAG を持ったコンパウンド・ストリングに変換されます。また,XmCommand,XmSelectionBox,XmFileSelectionBox の callback でアプリケーションに渡されるコンパウンド・ストリングも本バージョンからは,XmFONTLIST_DEFAULT_TAG を持ったものになります。
これらのコンパウンド・ストリングが以前のバージョンのタイプである必要がある場合には環境変数 ADECW_MOTIF11 をセットしてください。
setenv ADECW_MOTIF11
キーボードからDXmCSText に文字列を入力して,その文字列をDXmCSTextGetString() 関数等で取り出した場合,文字列はコンパウンド・ストリング内で,キャラクタ・セットごとのセグメントに分割されています。OSF/Motif 1.1.3 をもとにした DECwindows Motif では,そのようなコンパウンド・ストリングで日本語を扱ってきました。
OSF/Motif 1.2.5 をもとにした現在の Tru64 UNIX ウィンドウ環境では,そのようなコンパウンド・ストリングに加えて,複数のキャラクタ・セットを含んだコード・セットの文字列を XmFONT_LIST_DEFAULT_TAG のセグメントで取り扱うことができます。キーボードから入力したCSText の文字列が XmFONT_LIST_DEFAULT_TAG を用いたコンパウンド・ストリングで取り出されるようにするには,環境変数 ADECW_MOTIF12 をセットしてください。
setenv ADECW_MOTIF12
本バージョンでは,DXmCSText の DXmNinputMethod リソースは作用しません。入力サーバの切り換え等の制御には,VendorShell の XmNinputMethod リソースを使用してください。
C.3 クライアント間の通信
日本語ウィンドウのタイトルおよびアイコン名を表示するには,WMShell の XmNtitle, XmNiconName リソースにコンパウンド・テキストで日本語文字列を与え,XmNtitleEncoding, XmNiconNameEncoding リソースに "COMPOUND_TEXT" のアトムをセットします。XmBulletinBoard ウィジェット (およびそのサブクラス) と DXmHelp ウィジェットでは,それぞれ,XmNdialogTile と XmNtitleLable リソースにコンパウンド・ストリングで日本語文字列を与えることができます。
クリップ・ボードを使用した通信では,コンパウンド・テキストで日本語文字列を通信します。
C.4 日本語フォント
Tru64 UNIX は、以下の XLFD の日本語フォントを提供します。
C.4.1 75 dpiフォント
-JDECW-Gothic-Medium-R-Normal--8-80-75-75-M-40-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--10-100-75-75-M-50-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--12-120-75-75-M-60-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--14-140-75-75-M-70-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--18-180-75-75-M-90-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--24-240-75-75-M-120-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--8-80-75-75-M-80-JISX0208.1983-1 -JDECW-Gothic-Medium-R-Normal--10-100-75-75-M-100-JISX0208.1983-1 -JDECW-Gothic-Medium-R-Normal--12-120-75-75-M-120-JISX0208.1983-1 -JDECW-Gothic-Medium-R-Normal--14-140-75-75-M-140-JISX0208.1983-1 -JDECW-Gothic-Medium-R-Normal--18-180-75-75-M-180-JISX0208.1983-1 -JDECW-Gothic-Medium-R-Normal--24-240-75-75-M-240-JISX0208.1983-1 -JDECW-Gothic-Medium-R-Normal--8-80-75-75-M-40-JISX0201.1976-0 -JDECW-Gothic-Medium-R-Normal--10-100-75-75-M-50-JISX0201.1976-0 -JDECW-Gothic-Medium-R-Normal--12-120-75-75-M-60-JISX0201.1976-0 -JDECW-Gothic-Medium-R-Normal--14-140-75-75-M-70-JISX0201.1976-0 -JDECW-Gothic-Medium-R-Normal--18-180-75-75-M-90-JISX0201.1976-0 -JDECW-Gothic-Medium-R-Normal--24-240-75-75-M-120-JISX0201.1976-0 -JDECW-Kmenu-Medium-R-Normal--12-120-75-75-P-70-ISO8859-1 -JDECW-Kmenu-Medium-R-Normal--12-120-75-75-P-70-JISX0201.1976-0 -JDECW-Mincho-Medium-R-Normal--8-80-75-75-M-40-ISO8859-1 -JDECW-Mincho-Medium-R-Normal--10-100-75-75-M-50-ISO8859-1 -JDECW-Mincho-Medium-R-Normal--12-120-75-75-M-60-ISO8859-1 -JDECW-Mincho-Medium-R-Normal--14-140-75-75-M-70-ISO8859-1 -JDECW-Mincho-Medium-R-Normal--18-180-75-75-M-90-ISO8859-1 -JDECW-Mincho-Medium-R-Normal--24-240-75-75-M-120-ISO8859-1 -JDECW-Mincho-Medium-R-Normal--8-80-75-75-M-80-JISX0208.1983-1 -JDECW-Mincho-Medium-R-Normal--10-100-75-75-M-100-JISX0208.1983-1 -JDECW-Mincho-Medium-R-Normal--12-120-75-75-M-120-JISX0208.1983-1 -JDECW-Mincho-Medium-R-Normal--14-140-75-75-M-140-JISX0208.1983-1 -JDECW-Mincho-Medium-R-Normal--18-180-75-75-M-180-JISX0208.1983-1 -JDECW-Mincho-Medium-R-Normal--24-240-75-75-M-240-JISX0208.1983-1 -JDECW-Mincho-Medium-R-Normal--8-80-75-75-M-40-JISX0201.1976-0 -JDECW-Mincho-Medium-R-Normal--10-100-75-75-M-50-JISX0201.1976-0 -JDECW-Mincho-Medium-R-Normal--12-120-75-75-M-60-JISX0201.1976-0 -JDECW-Mincho-Medium-R-Normal--14-140-75-75-M-70-JISX0201.1976-0 -JDECW-Mincho-Medium-R-Normal--18-180-75-75-M-90-JISX0201.1976-0 -JDECW-Mincho-Medium-R-Normal--24-240-75-75-M-120-JISX0201.1976-0 -JDECW-Screen-Medium-R-Normal--14-140-75-75-M-70-DEC-DECsuppl -JDECW-Screen-Medium-R-Normal--18-180-75-75-M-80-DEC-DECsuppl -JDECW-Screen-Medium-R-Normal--24-240-75-75-M-120-DEC-DECsuppl -JDECW-Screen-Medium-R-Normal--14-140-75-75-M-70-DEC-DECtech -JDECW-Screen-Medium-R-Normal--18-180-75-75-M-80-DEC-DECtech -JDECW-Screen-Medium-R-Normal--24-240-75-75-M-120-DEC-DECtech -JDECW-Screen-Medium-R-Normal--14-140-75-75-M-70-ISO8859-1 -JDECW-Screen-Medium-R-Normal--18-180-75-75-M-80-ISO8859-1 -JDECW-Screen-Medium-R-Normal--24-240-75-75-M-120-ISO8859-1 -JDECW-Screen-Medium-R-Normal--10-100-75-75-M-100-JISX0208-Kanji00 -JDECW-Screen-Medium-R-Normal--14-140-75-75-M-140-JISX0208-Kanji00 -JDECW-Screen-Medium-R-Normal--16-160-75-75-M-160-JISX0208-Kanji00 -JDECW-Screen-Medium-R-Normal--18-180-75-75-M-160-JISX0208-Kanji00 -JDECW-Screen-Medium-R-Normal--24-240-75-75-M-240-JISX0208-Kanji00 -JDECW-Screen-Medium-R-Normal--10-100-75-75-M-100-JISX0208-Kanji11 -JDECW-Screen-Medium-R-Normal--14-140-75-75-M-140-JISX0208-Kanji11 -JDECW-Screen-Medium-R-Normal--18-180-75-75-M-160-JISX0208-Kanji11 -JDECW-Screen-Medium-R-Normal--24-240-75-75-M-240-JISX0208-Kanji11 -JDECW-Screen-Medium-R-Normal--10-100-75-75-M-50-JISX0201-RomanKana -JDECW-Screen-Medium-R-Normal--14-140-75-75-M-70-JISX0201-RomanKana -JDECW-Screen-Medium-R-Normal--16-160-75-75-M-80-JISX0201-RomanKana -JDECW-Screen-Medium-R-Normal--18-180-75-75-M-80-JISX0201-RomanKana -JDECW-Screen-Medium-R-Normal--24-240-75-75-M-120-JISX0201-RomanKana
-JDECW-Gothic-Medium-R-Normal--11-80-100-100-M-55-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--14-100-100-100-M-70-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--17-120-100-100-M-85-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--20-140-100-100-M-100-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--25-180-100-100-M-125-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--34-240-100-100-M-170-ISO8859-1 -JDECW-Gothic-Medium-R-Normal--11-80-100-100-M-110-JISX0208.1983-1 -JDECW-Gothic-Medium-R-Normal--14-100-100-100-M-140-JISX0208.1983-1 -JDECW-Gothic-Medium-R-Normal--17-120-100-100-M-170-JISX0208.1983-1 -JDECW-Gothic-Medium-R-Normal--20-140-100-100-M-200-JISX0208.1983-1 -JDECW-Gothic-Medium-R-Normal--25-180-100-100-M-250-JISX0208.1983-1 -JDECW-Gothic-Medium-R-Normal--34-240-100-100-M-340-JISX0208.1983-1 -JDECW-Gothic-Medium-R-Normal--11-80-100-100-M-55-JISX0201.1976-0 -JDECW-Gothic-Medium-R-Normal--14-100-100-100-M-70-JISX0201.1976-0 -JDECW-Gothic-Medium-R-Normal--17-120-100-100-M-85-JISX0201.1976-0 -JDECW-Gothic-Medium-R-Normal--20-140-100-100-M-100-JISX0201.1976-0 -JDECW-Gothic-Medium-R-Normal--25-180-100-100-M-125-JISX0201.1976-0 -JDECW-Gothic-Medium-R-Normal--34-240-100-100-M-170-JISX0201.1976-0 -JDECW-Kmenu-Medium-R-Normal--17-120-100-100-P-85-ISO8859-1 -JDECW-Kmenu-Medium-R-Normal--12-120-100-100-P-85-JISX0201.1976-0 -JDECW-Mincho-Medium-R-Normal--11-80-100-100-M-55-ISO8859-1 -JDECW-Mincho-Medium-R-Normal--14-100-100-100-M-70-ISO8859-1 -JDECW-Mincho-Medium-R-Normal--17-120-100-100-M-85-ISO8859-1 -JDECW-Mincho-Medium-R-Normal--20-140-100-100-M-100-ISO8859-1 -JDECW-Mincho-Medium-R-Normal--25-180-100-100-M-125-ISO8859-1 -JDECW-Mincho-Medium-R-Normal--34-240-100-100-M-170-ISO8859-1 -JDECW-Mincho-Medium-R-Normal--11-80-100-100-M-110-JISX0208.1983-1 -JDECW-Mincho-Medium-R-Normal--14-100-100-100-M-140-JISX0208.1983-1 -JDECW-Mincho-Medium-R-Normal--17-120-100-100-M-170-JISX0208.1983-1 -JDECW-Mincho-Medium-R-Normal--20-140-100-100-M-200-JISX0208.1983-1 -JDECW-Mincho-Medium-R-Normal--25-180-100-100-M-250-JISX0208.1983-1 -JDECW-Mincho-Medium-R-Normal--34-240-100-100-M-340-JISX0208.1983-1 -JDECW-Mincho-Medium-R-Normal--11-80-100-100-M-55-JISX0201.1976-0 -JDECW-Mincho-Medium-R-Normal--14-100-100-100-M-70-JISX0201.1976-0 -JDECW-Mincho-Medium-R-Normal--17-120-100-100-M-85-JISX0201.1976-0 -JDECW-Mincho-Medium-R-Normal--20-140-100-100-M-100-JISX0201.1976-0 -JDECW-Mincho-Medium-R-Normal--25-180-100-100-M-125-JISX0201.1976-0 -JDECW-Mincho-Medium-R-Normal--34-240-100-100-M-170-JISX0201.1976-0
フォント・コンバータとは,フォント・エディタによって作成したユーザ定義文字フォント・ファイルを
PCF 形式のフォント・ファイルに変換するものです。これにより,ユーザ定義文字をワークステーションのディスプレイ上に表示することができるようになります。
C.5.1 フォント・ファイル変換の方法
フォント・ファイル変換には,fontconverter を使用します。fontconverter は,次のようにコマンド行から起動します。
% fontconverter [-オプション] -font フォント名 [-preload] プリロード・ファイル名
fontconverter に指定できる省略可能なオプションには次のものがあります。
-merge | このオプションを指定すると,ユーザ定義文字を指定フォントのすべての文字とマージします。このオプションを指定しない場合,指定されたフォントの省略時の文字だけをマージします。 |
-w width | ユーザ定義文字の幅を指定します。 |
-h height | ユーザ定義文字の高さを指定します。 |
-udc udc_name | -merge を指定しなかった場合のフォントの registry を指定します。出力されるファイル名は,{udc_name}_{width}_{height}.pcf と {udc_name}_{width}_{height}.bdf です。 |
-font フォント名 | マージ先のフォントのフォント名を指定します。 |
-preload プリロード・ファイル名 | ユーザ定義文字フォント・ファイル名を指定します。プリロード・ファイル名は省略できませんが,-preload は省略することができます。 |
次の例では,プリロード・ファイル test.pre の中のユーザ定義文字を PCF/BDF ファイルに変換します。出力されるファイル名は,TEST_24_24.bdf と TEST_24_24.pcf です。
% fontconverter -w 24 -h 24 -udc TEST -font *mincho*24*jisx0208.1983 test.pre
次の例では,プリロード・ファイル test.pre の中のユーザ定義文字を "*mincho*24*jisx0208.1983" の中の文字とマージします。出力されるファイル名は,JISX0208.1983_24_24.pcf です。
% fontconverter -merge -font *mincho*24*jisx0208.1983 test.pre