表 2-3 は、ラベルとして使用されるローカライズできるリソースをリストしています。多くは XmString 型です。その他の型は color か char* です。これらのリソースの詳しい説明は、『Motif 1.2 Reference Manual』を参照してください。どんな場合でも、アプリケーションはこれらのリソースをハードコードしてはいけません。リソース値がアプリケーションによって指定されなければならない場合は、app-defaults ファイルで指定してください。それにより、そのリソースがローカライズできることが保証されます。
ここにはウィジェット・クラス・リソースのみを示し、それらのウィジェットのサブクラスは示していません。たとえば、XmDrawnButton ウィジェット・クラスは、ローカライズされた新しいリソースを使えるようにしませんが、このウィジェットは XmLabelWidget ウィジェット・クラスのサブクラスです。したがって、そのアクセラレータ・リソース、acceleratorText リソースその他が同様にローカライズされ、アプリケーションによるハードコードはできません。
表 2-3 ローカライズできるリソース
ウィジェット・クラス |
リソース名 |
---|---|
Core |
*background: 1 |
XmCommand |
*command: |
XmCommand |
*promptString: |
XmFileSelectionBox |
*dirListLabelString: |
XmFileSelectionBox |
*fileListLabelString: |
XmFileSelectionBox |
*filterLabelString: |
XmFileSelectionBox |
*noMatchString: |
XmLabel[Gadget] |
*accelerator: |
XmLabel[Gadget] |
*acceleratorText: |
XmLabel[Gadget] |
*labelString: |
XmLabel[Gadget] |
*mnemonic: |
XmList |
*stringDirection: |
XmManager |
*stringDirection: |
XmMessageBox |
*cancelLabelString: |
XmMessageBox |
*helpLabelString: |
XmMessageBox |
*messageString: |
XmMessageBox |
*okLabelString: |
XmPrimitive |
*foreground: 1 |
XmRowColumn |
*labelString: |
XmRowColumn |
*menuAccelerator: |
XmRowColumn |
*mnemonic: |
XmRowColumn(SimpleMenu*) |
*buttonAccelerators: |
XmRowColumn |
*mnemonic: |
XmRowColumn |
*mnemonic: |
XmRowColumn |
*mnemonic: |
XmRowColumn |
*mnemonic: |
XmSelectionBox |
*applyLabelString: |
XmSelectionBox |
*cancelLabelString: |
XmSelectionBox |
*helpLabelString: |
XmSelectionBox |
*listLabelString: |
XmSelectionBox |
*okLabelString: |
XmSelectionBox |
*selectionLabelString: |
XmSelectionBox |
*textAccelerators: |
カラー名はポータブル文字セットに限定するという X プロトコルの制限により、フォアグラウンド・カラーおよびバックグラウンド・カラーはローカライズされません。ローカライズされたカラー名の提供方法は、アプリケーションにゆだねられ、ポータブル文字セットでエンコードされた名前にマップするためにローカライズされたデータベースを提供するべきです。
XmRowColumn ウィジェットには、別のローカライズ可能な文字列リソースがあります。それらのリソースは XmRowColumn のマニュアル・ページの、「シンプル・メニュー作成リソース・セット」の見出しの所にリストされています。このタイトルが示すように、これらのリソースは XmCreateSimpleMenu() 関数で作成された RowColumn ウィジェットにしか影響を与えません。影響を受けるリソースは次のとおりです。
*buttonAccelerator、*buttonAcceleratorText、*buttonMnemonics、 *optionLabel、*optionMnemonic
これらのリソースはほとんど使用されず、またシンプル・メニューの作成時のみ RowColumn に適用されるので、表 2-3 には入っていません。