# 母国語のサポート

この章では、ヘルプ・ボリュームを複数の言語で提供する場合に変更が必要なヘルプ・システムが使用するファイルを説明します。

HRDC.Lang.mkr.3
HRDC.Lang.mkr.5
HRDC.Lang.mkr.8
HRDC.Lang.mkr.9
HRDC.Lang.mkr.11
HRDC.Lang.mkr.14
HRDC.Lang.mkr.17
HRDC.Lang.mkr.18

## 国際化対応のオンライン・ヘルプ

外国のユーザ向けの製品の場合、オンライン・ヘルプをユーザの母国語で提供することが大切です。ヘルプ・システムは、オンライン・ヘルプの記述と表示を実質的にどの言語でもサポートします。

実行時のヘルプ・ファイルを作成するためのヘルプ・ボリュームを処理する場合、ファイルの記述にどの言語および文字セットを使用したかを DocBook ソフトウェアに必ず指示しなければなりません。言語および文字セットの情報は、ヘルプ・ボリュームを表示するために適切なフォントを決定するためにも使用されます。

## 国際化の要因

次節で説明するいくつかの要因は、オンライン・ヘルプをユーザの母国語で提供するのに役立ちます。

### 文字セット

文字セットは、文字を認識するためのコンピュータの内部文字コードのマップ方法を決定します。ほとんどの言語は、ひとつの文字セット全体を表すにはシングル・バイト文字で十分です。しかし、何千もの文字を使用する言語もあります。そのような言語は、ひとつひとつの文字を一意に表すのに２、３、４バイトを必要とします。

ヘルプ・システムがサポートする文字セットを HRDC.Lang.mkr.6 に掲げます。しかし、すべてのプラットフォームに存在するわけではない文字セットもあります。

### 共通デスクトップ環境文字セット

言語 | 文字セット名 | 説明
西ヨーロッパおよび南北アメリカ | ISO-8859-1 | ISO ラテン 1
HP-ROMAN8 | HP ローマン
IBM-850 | PC マルチリンガル
中央ヨーロッパ | ISO-8859-2 | ISO ラテン 2
キリル文字 | ISO-8859-5 | ISO ラテン/キリル文字
アラビア語 | ISO-8859-6 | ISO ラテン/アラビア語
| HP-ARABIC8 | HP アラビア語 8
| IBM-1046 | PC アラビア語
ヘブライ語 | ISO-8859-8 | ISO ラテン/ヘブライ語
| HP-HEBREW8 | HP ヘブライ 8
| IBM-856 | PC ヘブライ語
ギリシャ語 | ISO-8859-7 | ISO ラテン/ギリシャ語
| HP GREEK8 | HP ギリシャ語 8
トルコ語 | ISO-8859-9 | ISO ラテン 5
| HP-TURKISH8 | HP トルコ語 8
日本語 | EUC-JP | 日本語 EUC (JISX0201, JISX0208, JISX0212)
| HP-SJIS | HP 日本語シフトJIS
| HP-KANA8 | HP 日本語カタカナ8 (JISX0201 1976)
| IBM-932 | PC 日本語シフトJIS
韓国語 | EUC-KR | 韓国 EUC
中国語 | EUC-CN | 簡体字中国語 EUC (中国) (GB2312)
| EUC-TW | 繁体字中国語 EUC (台湾) (CNS 11643.*)
| HP-BIG5 | HP 繁体字中国語 Big5
| HP-CCDC | HP 繁体字中国語 CCDC
| HP-15CN | HP 繁体字中国語 EUC
タイ語 | TIS-620 | タイ語

DocBook ファイルを記述するとき、どんなヘルプ・テキストにもマルチバイト文字を使用できます。しかし、DocBook のマークアップ自体（タグ名、エンティティ名、IDなど）は、８ビット文字で入力しなければなりません。

### DocBook ソフトウェア

実行時のヘルプ・ファイルを作成するためにヘルプ・ボリュームを処理する場合、DocBook ソフトウェアに、ファイルを作成するときに使用する言語と文字セットを伝えなければなりません。言語と文字セットの情報は、ヘルプ・トピックを表示するための適切なフォントを決定するために使用されます。言語と文字セットが指定されない場合、DocBook は、デフォルト ISO-8859-1 を仮定します。

言語と文字セットは `LANG` 環境変数、あるいは Part の Lang 属性を使用して指定することができます。

DocBook ファイルを記述するとき、どんなヘルプ・テキストにもマルチバイト文字を使用できます。しかし、DocBook のマークアップ自体（タグ名、エンティティ名、IDなど）は、８ビット文字で入力しなければなりません。

### DtHelp

ヘルプ・ダイアログのメニュー、ボタン、ラベルもユーザの母国語で表示されるべきです。これを実現するために、ヘルプ・ダイアログは、それらの文字列を `DtHelp.cat` という名前のメッセージ・カタログから読み取ります。メッセージ・カタログのソース・ファイル `DtHelp.msg` には、メニュー、ボタン、メッセージの文字列が指定されています。必要な言語が提供されていない場合は、サンプルのメッセージ・カタログ (`/usr/dt/dthelp/nls/C/DtHelp.msg`) を翻訳してから、`gencat` コマンドで実行時のメッセージ・カタログ・ファイルを作成しなければなりません。手順については、HRDC.Lang.mkr.16 を参照してください。

新規のメッセージ・カタログをインストールする正しいディレクトリを決定するには、システムに付属のマニュアルを参照してください。

### LANG 環境変数

ユーザの `LANG` 環境変数は、次の２つの理由により重要です。

- `LANG` の値は、正しいヘルプ・ボリュームをの位置を見つけるために使用されます。

- ヘルプ・トピックが表示されるとき、正しいフォントおよび書式化の規則は、ユーザの `LANG` 環境変数に基づいて選択されます。これは、ヨーロッパやアメリカの言語よりも複雑な行の折り返し規則を持つアジアの言語において特に重要です。

#### 関連項目

- 共通デスクトップ環境 国際化対応プログラマーズ・ガイド

- ご使用のコンピュータのオペレーティング・システム用の NLS 関連のマニュアルまたはプログラマ用ツールキット

### フォーマット・テーブル

日本語や中国語などのマルチバイト言語には、フォーマット・テーブルが必要です。フォーマット・テーブルは、行頭にできない文字と行末にできない文字のリストを提供します。ヘルプ・ファイルが処理されるときに、フォーマット・テーブルは行が確実に折り返されるようにします。HRDC.Lang.mkr.14 は、新規テーブルの作成方法、またヘルプ開発者用キットで提供されるサンプル・テーブルの編集方法を説明しています。

### フォント・スキーマ

DocBook ソフトウェアのおもな機能のひとつは、マークアップされたファイルを、ヘルプ・システムが解釈できる実行時の形式に変換することです。テキストは、型ファミリ、サイズ、傾斜、線の太さなどの特定の属性を指定してフォーマットされています。フォント・スキーマは、別名のように、ヘルプ・システムが、ヘッダ、プロシージャ、リストなどの DocBook 要素にフォントを割り当てるために使う単なる名前です。フォント・スキーマにより、ヘルプ・システムが使用するひとかたまりのテキスト属性を特定のフォントにマップすることができます。

標準の共通デスクトップ環境フォントを使用するアプリケーションは、追加のフォント・リソースを定義する必要はありません。それ以外のフォント・セットにアプリケーションが依存する場合は、そのアプリケーション用にフォント・スキーマを作成して追加しなければなりません。

#### 関連項目

- `DtStdInterfaceFontNames(5)` のマニュアル・ページ

- `DtStdAppFontNames (5)` のマニュアル・ページ

## フォント・スキーマの理解

DocBook マークアップ言語を使用してヘルプ・ボリュームを記述する場合は、テキストのフォントおよぴサイズは指定しません。DocBook ソフトウェアを起動すると、入力した要素が、テキスト属性を含む実行時のヘルプ・ファイルにフォーマットされます。

フォント・スキーマ は、テキスト属性を実際のフォント指定にマップします。たとえば、ヘルプ・トピックがボールドの sans serif (サンセリフ) フォントを使用してフォーマットされている場合、フォント・スキーマは、どの共通 デスクトップ環境標準フォントまたはＸフォントが実際にテキスト表示に使用されているかを識別します。

フォント・スキーマを使用するおもな目的のひとつは、フォント・サイズの選択肢を提供することです。DocBook ソフトウェアは、ほとんどのトピックの本文を10ポイントにフォーマットします。しかし、実際に表示されるフォントは使用されているフォント・スキーマが決定するため、10ポイントのテキストは、すべて14ポイント・フォントを使用するように指定されます。

### フォント・リソース

各フォント・スキーマは、実際はＸリソースのセットです。Ｘリソースは、ヘルプを表示しているアプリケーションによって読み取られます。フォント・スキーマを変更したい場合は、フォント・リソースをアプリケーションのデフォルトのリソース・ファイルに設定できます。

フォント・スキーマ内の各リソースの一般的な形式は次のとおりです。

*pitch.size.slant. weight.style. lang.char-set: font specification

各フィールドの意味を次に示します。

pitch | 文字間の水平方向の間隔を指定します。このフィールドは、`p` (プロポーショナル) または `m` (等幅) のいずれかです。
size | 希望するフォントの高さを指定します。DocBook でフォーマットされたヘルプ・ファイルでは、この値は、6、8、10、12、または 14 のいずれかです。
slant | ・希望するフォントの傾斜を指定します。このフィールドは、通常、垂直な文字なら `roman`、傾斜した文字なら `italic` のいずれかになります。
weight | 希望するフォントの線の太さを指定します。このフィールドは、通常、`medium` または `bold` のいずれかです。
style | 希望するフォントの一般的なスタイルを指定します。DocBook でフォーマットされたヘルプ・ファイルでは、この値は serif または sans_serif のいずれかです。
lang | この言語を使用してコンパイルされたボリュームが、これらのフォントを使用するように指定します。通常、指定された char_set を使用するすべてのボリュームが、これらのフォントを使用するように、* (アスタリスク) をエントリに使用します。
char-set | ヘルプ・テキストの記述に使用する文字セットを使用します。この値は、DocBook を実行したときに指定した文字セットと一致しなければなりません。デフォルトは ISO-8859-1 です。一部の特殊文字は、`symbol` 文字セットを使用して表示されます。

* (アスタリスク) を使用すると、特定の属性のすべての値をもつフォントを指定できます。たとえば、記号セット（特殊文字と特殊記号）は、サイズと文字セットのみに基づいて一意のフォントを識別します。

フォント・リソースは、フォント・スキーマ内で次のように表示されます。

    *.6.*.*.*.*.DT-SYMBOL-1:  -adobe-symbol-medium-r-normal-*-*-60-*-*-
    p-*-adobe-fontspecific
    *.8.*.*.*.*.DT-SYMBOL-1:  -adobe-symbol-medium-r-normal-*-*-80-*-*-
    p-*-adobe-fontspecific
    *.10.*.*.*.*.DT-SYMBOL-1: -adobe-symbol-medium-r-normal-*-*-100-*-
    *-p-*-adobe-fontspecific
    *.12.*.*.*.*.DT-SYMBOL-1: -adobe-symbol-medium-r-normal-*-*-120-*-
    *-p-*-adobe-fontspecific
    *.14.*.*.*.*.DT-SYMBOL-1: -adobe-symbol-medium-r-normal-*-*-140-*-
    *-p-*-adobe-fontspecific

char-set フィールドは、* (アスタリスク) を使用できない唯一のフィールドです。

日本語や韓国語などのマルチバイト言語を表示するには、フォント・セットを使用してフォント・リソースを指定しなければなりません。フォント・セットは実際にはフォントのグループです。フォント・セットのリソース・エントリは、複数のフォント名が、, (コンマ) で区切られ、指定が : (コロン) で終了する点を除き、単一のフォントと同様です。次の例は、日本語フォント・セット用の完全に指定したフォント・リソースです。

    bridge-gothic-medium-r-normal--18-180-75-75-c-80-jisx0201.1976-0,
    bridge-gothic-medium-r-normal--18-180-75-75-c-160-jisx0208.1983-0,
    bridge-gothic-medium-r-normal--18-180-75-75-c-160-jisx0212.1990-0:

マルチバイト言語のフォントを指定するには、最小限の XLFD フォント指定を提供し、システムがフォント・セットを生成するために文字セットの順を指定できるようにすることも可能です。

    *.12.roman.medium.*.ja_JP.EUC-JP: -*-*-*-*-*-*-*-120-*-*-*-*-*-*:

フォント・セットを指定するときには、必ず指定を : (コロン) で終了してください。これにより、ヘルプ・システムは情報を表示するためのフォント・セットを読み込みます。フォント・セットは、マルチバイト言語の表示に使用されます。シングルバイト情報をもつボリュームについては、標準フォント指定を使用してください。

#### フォント・スキーマの例

`/usr/dt/dthelp/fontschemes` ディレクトリには、４つのフォント・スキーマが格納されています。

`fontDef.fns` | ヘルプ・システムが使用するデフォルト・フォント
`fontLarge.fns` | 大きなフォントの例
`fontMulti.fns` | マルチバイト・フォントの例
`fontX11.fns` | X11 フォントの例

### フォント・スキーマを選択するには

オンライン・ヘルプを表示するアプリケーション用のデフォルトのリソース・ファイルを編集します。現在のフォント・リソースがある場合は、新規スキーマに置換します。

自分だけのためにこの変更を行う場合は、アプリケーションのリソース・ファイルを自分のホーム・ディレクトリにコピーしてから編集を行ってください。

#### 例

`DtStopWatch` という名前の個人用アプリケーションの大きいサイズのフォントを（ヘルプ・ダイアログで）使用するには、次の手順を実行ます。

ホーム・ディレクトリへ移動します。

    cd

次に、アプリケーションのデフォルトのリソース・ファイル `DtStopWatch` をコピーし、書き込み可能にします。

    cp /usr/dt/app-defaults/C/DtStopWatch.
    chmod u+w DtStopWatch

最大のスキーマ (`fontLarge.fns`) を追加するように `DtStopWatch` ファイルを編集します。ファイルの終端に行き、次のファイルの内容を挿入します。

`/usr/dt/dthelp/fontschemes/fontLarge.fns`

新しい `DtStopWatch` ファイルを保存します。

`DtStopWatch` アプリケーションを起動し、[ヘルプ]を選択し、ヘルプ・トピックが新しいフォント・スキーマを使用して表示されるか確認します。

## フォーマット・テーブルの作成

日本語や中国語などのマルチバイト言語には、フォーマット・テーブルが必要です。このテーブルには、３つのメッセージ・セットが含まれています。１番目のセットは行頭にできない文字から成ります。２番目のセットは行末にできない文字をリストしています。３番目のセットは、シングルバイト文字とマルチバイト文字の間に発生する改行文字の処理方法を示しています。

フォーマット・テーブルは、ASCII ファイルで、ファイル名は必ず拡張子 `.msg` が付きます。HRDC.Lang.mkr.15 は、中国語（簡体字）用のフォーマット・テーブルからの抜粋です。

### フォーマット・テーブルの例

$ (ドル記号) とひとつの空白で始まる行はすべてコメントです。

### フォーマット・テーブルの例

マルチバイト文字セット用のフォーマット・テーブルの例は、`/usr/dt/dthelp/nls/zh_CN.dt-eucCN` ディレクトリにあり、名前は `fmt_tbl.msg` です。

テーブルの例は、文字を追加したり削除したりして変更できます。フォーマット・テーブルを編集するには、ヘルプ情報用に選択した言語の文法を構成できるエディタを使用してください。マルチバイト言語でヘルプ情報を作成したい場合は、フォーマット・テーブルを作成する必要があります。

### メッセージ・カタログを作成するには

`DtHelp.msg` ファイルを翻訳したり、新しいフォーマット・テーブルを作成したり、テーブルの例 (`fmt_tbl.msg`) を変更した場合は、ヘルプ・システムが使用するメッセージ・カタログを必ず更新してください。

カタログ・ファイルを生成するには、次のコマンド構文を使用します。

`gencat` file`.cat` file`.msg`

標準デスクトップ・アプリケーションのメッセージ・カタログは `/usr/dt/lib/nls/msg/`lang ディレクトリにあります。メッセージ・カタログをインストールするには、ご使用のオペレーティング・システムのマニュアアルを、ガイドラインとして参照してください。

#### 関連項目

- `gencat`(1) のマニュアル・ページ

## ローカライズされたヘルプ・ボリュームの表示

現在のシステムとは異なるロケールのために作成されたヘルプ・ボリュームを表示するには、そのヘルプ・ボリュームに合うように `LANG` 環境変数を設定しなければなりません。`LANG` 環境変数の値は、プラットフォーム固有です。この変数がよくわからない場合は、環境を設定するための正しい値およびプロシージャをシステム管理者に確認してください。

## オンライン・ヘルプの国際化対応の確認事項

オンライン・ヘルプを外国のユーザに提供する場合に確認すべき事項を以下のチェックリストにまとめます。

- ヘルプ・トピックは外国のユーザを想定して書かれているか？

- DocBook ソフトウェアは、正しい `LANG` の設定を使用して実行したか？別の文字セットで作成した場合、`DtHelp.msg` メッセージ・カタログを翻訳し、新しい文字セットをサポートするフォント・スキーマを提供しなければなりません。

- ヘルプ・テキストにマルチバイト文字を使用していても、DocBook マークアップ内では、すべてのタグ名、エンティティ名、ID が８ビットの文字セットで入力されているか？

- ユーザの `LANG` 環境変数が正しい言語に設定されているとき、ヘルプ・ファイルを適切に見つけて表示できるようにインストールしてあるか？

- ヘルプ・システムをアプリケーションに統合した場合、`XtSetLanguageProc()` 関数を使用して、ロケールを適切に設定したか？

### 関連項目

- HRDC.Inst.mkr.11

- `XtSetLanguageProc`(3) のマニュアル・ページ

- `gencat`(1) のマニュアル・ページ

- ご使用のコンピュータのオペレーティング・システム用の NLS 関連のマニュアルまたはプログラマ用ツールキット