この章では、ヘルプ・ボリュームを複数の言語で提供する場合に変更が必要なヘルプ・システムが使用するファイルを説明します。
外国のユーザ向けの製品の場合、オンライン・ヘルプをユーザの母国語で提供することが大切です。ヘルプ・システムは、オンライン・ヘルプの記述と表示を実質的にどの言語でもサポートします。
実行時のヘルプ・ファイルを作成するためにヘルプ・ボリュームを処理する場合、ファイルの記述にどの言語および文字セットを使用したかをヘルプタグ・ソフトウェアに必ず指示しなければなりません。言語および文字セットの情報は、ヘルプ・ボリュームを表示するのに適切なフォントを決定するためにも使用されます。
次節で説明するいくつかの要因は、オンライン・ヘルプをユーザの母国語で提供するのに役立ちます。
文字セットは、文字を認識するためのコンピュータの内部文字コードのマップ方法を決定します。ほとんどの言語は、1 つの文字セット全体を表すにはシングル・バイト文字で十分です。しかし、何千もの文字を使用する言語もあります。そのような言語は、1 つ 1 つの文字を一意に表すのに 2、3、4 バイトを必要とします。
ヘルプ・システムがサポートする文字セットを表 14-1 にリストします。しかし、すべてのプラットフォームに存在するわけではない文字セットもあります。
表 14-1 共通デスクトップ環境文字セット
言語 |
文字セット名 |
説明 |
---|---|---|
|
|
|
西ヨーロッパおよび南北アメリカ |
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 (JIS X-0201, JIS X-0208, JIS X-0212) |
|
HP-SJIS |
HP 日本語 シフト JIS |
|
HP-KANA8 |
HP 日本語 カタカナ 8 (JIS X-0201 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 |
タイ語 |
ヘルプタグ・ファイルを記述する際、どんなヘルプ・テキストにもマルチバイト文字を使用できます。しかし、ヘルプタグのマークアップ自体 (タグ名、エンティティ名、ID など) は、8 ビット文字で入力しなければなりません。
言語を選択する場合は、文字セットと言語および地域名の両方を選択します。言語および地域名は、指定された国または地域に対して、通貨や日付の書き方などの違いを適用するために使用されます。
ヘルプ・システムがサポートする言語および地域名を表 14-2 にリストします。言語を選択する前に、ご使用のプラットフォームでサポートされる言語および文字セットを識別するために、システムに付属のマニュアルを参照してください。
表 14-2 ヘルプ・システムの言語および地域名
言語 |
言語/地域 |
言語 |
地域 |
---|---|---|---|
標準 |
|
|
|
|
C |
C |
|
|
POSIX |
C |
|
西ヨーロッパ/南北アメリカ |
|
|
|
|
da_DK |
デンマーク語 |
デンマーク |
|
de_AT |
ドイツ語 |
オーストリア |
|
de_CH |
ドイツ語 |
スイス |
|
de_DE |
ドイツ語 |
ドイツ |
|
en_AU |
英語 |
オーストラリア |
|
en_CA |
英語 |
カナダ |
|
en_DK |
英語 |
デンマーク |
|
en_GB |
英語 |
イギリス |
|
en_IE |
英語 |
アイルランド |
|
en_MY |
英語 |
マレーシア |
|
en_NZ |
英語 |
ニュージーランド |
|
en_US |
英語 |
アメリカ |
|
es_AR |
スペイン語 |
アルゼンチン |
|
es_BO |
スペイン語 |
ボリビア |
|
es_CL |
スペイン語 |
チリ |
|
es_CO |
スペイン語 |
コロンビア |
|
es_CR |
スペイン語 |
コスタリカ |
|
es_EC |
スペイン語 |
エクアドル |
|
es_ES |
スペイン語 |
スペイン |
|
es_GT |
スペイン語 |
グアテマラ |
|
es_MX |
スペイン語 |
メキシコ |
|
es_PE |
スペイン語 |
ペルー |
|
es_UR |
スペイン語 |
ウルグアイ |
|
es_VE |
スペイン語 |
ベネズエラ |
|
et_EE |
エストニア語 |
エストニア |
|
fi_FI |
フィンランド語 |
フィンランド |
|
fo_FO |
フェロー語 |
フェロー諸島 |
|
fr_BE |
フランス語 |
ベルギー |
|
fr_CA |
フランス語 |
カナダ |
|
fr_CH |
フランス語 |
スイス |
|
fr_FR |
フランス語 |
フランス |
|
is_IS |
アイスランド語 |
アイスランド |
|
it_CH |
イタリア語 |
スイス |
|
it_IT |
イタリア語 |
イタリア |
|
kl_GL |
グリーンランド語 |
グリーンランド |
|
lt_LT |
リトアニア語 |
リトアニア |
|
lv_LV |
ラトビア語 |
ラトビア |
|
nl_BE |
オランダ語 |
ベルギー |
|
nl_NL |
オランダ語 |
オランダ |
|
no_NO |
ノルウェー語 |
ノルウェー |
|
pt_BR |
ポルトガル語 |
ブラジル |
|
pt_PT |
ポルトガル語 |
ポルトガル |
|
sv_FI |
スウェーデン語 |
フィンランド |
|
sv_SE |
スウェーデン語 |
スウェーデン |
中央ヨーロッパ |
|
|
|
|
cs_CS |
チェコ語 |
|
|
hr_HR |
クロアチア語 |
クロアチア |
|
hu_HU |
ハンガリー語 |
ハンガリー |
|
pl_PL |
ポーランド語 |
ポーランド |
|
ro_RO |
ルーマニア語 |
ルーマニア |
|
sh_YU |
セルボクロアチア語 |
ユーゴスラビア |
|
si_CS |
スロベニア語 |
|
|
si_SI |
スロベニア語 |
|
|
sk_SK |
スロバキア語 |
|
キリル文字 |
|
|
|
|
bg_BG |
ブルガリア語 |
ブルガリア |
|
mk_MK |
マケドニア語 |
|
|
ru_RU |
ロシア語 |
|
|
ru_SU |
ロシア語 |
|
|
sp_YU |
セルビア語 |
ユーゴスラビア |
アラビア語1 |
|
|
|
|
ar_SA |
アラビア語 |
|
|
ar_AA |
アラビア語 |
|
|
ar_DZ |
アラビア語 |
|
|
|
|
|
ヘブライ語 |
|
|
|
|
iw_IL |
ヘブライ語 |
イスラエル |
ギリシャ語 |
|
|
|
|
el_GR |
ギリシャ語 |
ギリシャ |
トルコ語 |
|
|
|
|
tr_TR |
トルコ語 |
トルコ |
アジア |
|
|
|
|
ja_JP |
日本語 |
日本 |
|
ko_KR |
韓国語 |
韓国 |
|
zh_CN |
中国語 |
中華人民共和国 |
|
zh_TW |
中国語 |
台湾 |
タイ語 |
|
|
|
|
th_TH |
タイ語 |
タイ |
世界中でアラビア語を話す地域に対する ISO 地域名は存在しません。ベンダは、共通デスクトップ環境で使用するために採用した独自の地域名を供給してきました。
ヘルプ・ボリュームのデフォルトの言語および文字セットは、エンティティとして helplang.ent ファイルに定義できます。完全なロケール名を指定するには、次の形式を使用して、言語および地域名と文字セット名を組み合わせてください。
language-and-territory-name.character-set-name
helplang.ent ファイルについては、「helplang.ent ファイル」を参照してください。
次のエンティティ宣言は、C 標準言語の完全なロケール名と ISO-8859-1 文字セットを指定します。
<!ENTITY LanguageElementDefaultLocale SDATA "C.ISO-8859-1">
上記の情報を、次のように 2 つのエンティティ宣言を使用して入力することもできます。
<!ENTITY LanguageElementDefaultLocale SDATA "C"> <!ENTITY LanguageElementDefaultCharset SDATA "ISO-8859-1">
同じ文字セットを使用してドイツ語を指定するには、次のように宣言を行います。
<!ENTITY LanguageElementDefaultLocale SDATA "de_DE.ISO-8859-1">
または、EUC-JP 文字セットを使用して日本語を指定するには、次のように宣言を行います。
<!ENTITY LanguageElementDefaultLocale SDATA "ja_JP.EUC-JP">
ロケールが helplang.ent ファイルに指定されていない場合は、LANG 環境変数から値が引き出されます。
実行時のヘルプ・ファイルを作成するためにヘルプ・ボリュームを処理する場合、ファイルの記述にどの言語および文字セットを使用したかをヘルプタグ・ソフトウェアに必ず指示しなければなりません。言語および文字セットの情報は、ヘルプ・トピックを表示するのに適切なフォントを決定するために使用されます。言語および文字セットを指定しない場合、ヘルプタグはデフォルト (英語および ISO-8859-1) を選択します。
言語および文字セットは helplang.ent ファイルに定義できます (詳細は、「helplang.ent ファイル」を参照してください)。また、文字セットは端末エミュレータで dthelptag を実行するときにオプションとしてコマンド行に指定できます。
ヘルプタグ・ファイルを記述する際、どんなヘルプ・テキストにもマルチバイト文字を使用できます。しかし、ヘルプタグ・マークアップ自体 (タグ名、エンティティ名、ID など) は、8 ビット文字で入力しなければなりません。
ヘルプ・ダイアログのメニュー、ボタン、ラベルもユーザの母国語で表示されるべきです。これを実現するために、ヘルプ・ダイアログはそれらの文字列を DtHelp.cat という名前のメッセージ・カタログから読み取ります。
メッセージ・カタログのソース・ファイル DtHelp.msg には、メニュー、ボタン、メッセージの文字列が指定されています。必要な言語が提供されていない場合は、サンプルのメッセージ・カタログ (/usr/dt/dthelp/nls/C/DtHelp.msg) を翻訳し、次に gencat コマンドで実行時のメッセージ・カタログ・ファイルを作成しなければなりません。手順については、「メッセージ・カタログを作成するには」を参照してください。
新規のメッセージ・カタログをインストールする正しいディレクトリを決定するには、システムに付属のマニュアルを参照してください。
ユーザの LANG 環境変数は、次の 2 つの理由により重要です。
LANG の値は正しいヘルプ・ボリュームの位置を見つけるのに使用されます。
ヘルプ・トピックが表示されるとき、正しいフォントおよび書式化の規則はユーザの LANG 変数に基づいて選択されます。これは、ヨーロッパやアメリカの言語よりも複雑な行の折り返し規則を持つアジアの言語において特に重要です。
ご使用のオペレーティング・システム用の NLS 関連のマニュアルまたはプログラマ用ツールキット
helplang.ent ファイルは、ヘルプ・ボリュームのデフォルトのロケールと文字セットを決定するために、ヘルプタグ・ソフトウェアが使用するテキスト・エンティティを定義します。ヘルプ・ボリュームの言語および文字セットの指定方法については、「ロケールおよび文字セット」を参照してください。
helplang.ent ファイルは、注、注意、警告などのデフォルト文字列のテキスト・エンティティも定義します。ヘルプタグ・ソフトウェアに組み込まれている英語の文字列を無効にしたい場合は、ファイルをコピーして文字列をローカライズしてください。ファイルはディレクトリ /usr/dt/dthelp/dthelptag にあります。
helplang.ent ファイルからの抜粋を次に示します。
<!ENTITY LanguageElementDefaultLocale SDATA "C.ISO-8859-1"> <!ENTITY NoteElementDefaultHeadingString SDATA "NOTE"> <!ENTITY CautionElementDefaultHeadingString SDATA "CAUTION"> <!ENTITY WarningElementDefaultHeadingString SDATA "WARNING"> <!ENTITY ChapterElementDefaultHeadingString SDATA "Chapter"> <!ENTITY FigureElementDefaultHeadingString SDATA "Figure"> <!ENTITY GlossaryElementDefaultHeadingString SDATA "Glossary"> . . .
日本語や中国語などのマルチバイト言語には、フォーマット・テーブルが必要です。フォーマット・テーブルは、行頭にできない文字と行末にできない文字のリストを提供します。ヘルプ・ファイルが処理されるときに、フォーマット・テーブルは行が確実に正しく折り返すようにします。「フォーマット・テーブルの作成」で、新規テーブルの作成方法と、ヘルプ開発者用キットで提供されるサンプル・テーブルの編集方法を説明しています。
ヘルプタグ・ソフトウェアの主な機能の 1 つは、マークアップされたファイルを、ヘルプ・システムが解釈できる実行時の形式に変換することです。テキストは、型ファミリ、サイズ、傾斜、線の太さなどの特定の属性を指定してフォーマットされています。フォント・スキーマは、別名のように、ヘルプ・システムがヘッダ、プロシージャ、リストなどのヘルプタグ要素にフォントを割り当てるために使う単なる名前です。フォント・スキーマにより、ヘルプ・システムが使用する一かたまりのテキスト属性を特定のフォントにマップできます。
標準の共通デスクトップ環境フォントを使用するアプリケーションは、追加のフォント・リソースを定義する必要はありません。それ以外のフォント・セットにアプリケーションが依存する場合は、そのアプリケーション用にフォント・スキーマを作成して追加しなければなりません。
DtStdInterfaceFontNames(5) のマニュアル・ページ
DtStdAppFontNames(5) のマニュアル・ページ
ヘルプタグ・マークアップ言語を使用してヘルプ・ボリュームを記述する場合は、テキストのフォントおよびサイズは指定しません。ヘルプタグ・ソフトウェアを起動すると、入力した要素が、テキスト属性を含む実行時のヘルプ・ファイルにフォーマットされます。
フォント・スキーマは、テキスト属性を実際のフォント指定にマップします。たとえば、ヘルプ・トピックがボールドの sans serif (サンセリフ) フォントを使用してフォーマットされている場合、フォント・スキーマは、どの共通デスクトップ環境標準フォントまたは X フォントが実際にテキスト表示に使用されているかを識別します。
フォント・スキーマを使用する主な目的は、フォント・サイズの選択肢を提供することです。ヘルプタグ・ソフトウェアはほとんどのトピックの本文を 10 ポイントにフォーマットします。しかし、実際に表示されるフォントは使用されているフォント・スキーマが決定するため、10 ポイントのテキストはすべて 14 ポイント・フォントを使用するよう指定されます。
各フォント・スキーマは、実際は X リソースのセットです。X リソースは、ヘルプを表示しているアプリケーションによって読み取られます。フォント・スキーマを変更したい場合は、フォント・リソースをアプリケーションのデフォルトのリソース・ファイルに設定できます。
フォント・スキーマ内の各リソースの一般的な形式は次のとおりです。
*pitch.size.slant.weight.style.lang.char-set: font specification
文字間の水平方向の間隔を指定します。このフィールドは、p (プロポーショナル) か m (モノスペース) のいずれかです。
希望するフォントの高さを指定します。ヘルプタグでフォーマットされたヘルプ・ファイルは、この値は 6、8、10、12、14 のいずれかです。
希望するフォントの傾斜を指定します。このフィールドは通常、垂直な文字なら roman、傾斜した文字なら italic のいずれかになります。
希望するフォントの線の太さを指定します。このフィールドは通常、medium か bold のいずれかです。
希望するフォントの一般的なスタイルを指定します。ヘルプタグでフォーマットされたヘルプ・ファイルのこの値は serif か sans_serif のいずれかです。
この言語を使用してコンパイルされたボリュームが、これらのフォントを使用するように指定します。通常、指定された char_set を使用するすべてのボリュームがこれらのフォントを使用するように、* (アスタリスク) をエントリに使用します。
ヘルプ・テキストの記述に使用する文字セットを指定します。この値は、ヘルプタグを実行したときに指定した文字セットと一致しなければなりません。デフォルトは 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 ディレクトリには次の 4 つのフォント・スキーマが格納されています。
ヘルプ・システムが使用するデフォルト・フォント
大きなフォントの例
マルチバイト・フォントの例
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 アプリケーションを起動し、[ヘルプ] を選択し、ヘルプ・トピックが新しいフォント・スキーマを使用して表示されるかを確認します。
日本語や中国語などのマルチバイト言語にはフォーマット・テーブルが必要です。フォーマット・テーブルには 3 つのメッセージ・セットが含まれています。1 番目のセットは行頭にできない文字から成ります。2 番目のセットは行末にできない文字をリストしています。3 番目のセットは、シングルバイト文字とマルチバイト文字の間に発生する改行文字の処理方法を示しています。
フォーマット・テーブルは ASCII ファイルで、ファイル名は必ず拡張子 .msg が付きます。図 14-1 は中国語 (簡体字) 用のフォーマット・テーブルからの抜粋です。
$ (ドル記号) と 1 つの空白で始まる行はすべてコメントです。
マルチバイト文字セット用のフォーマット・テーブルの例は /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 環境変数の値はプラットフォーム固有です。この変数がよくわからない場合は、環境を設定するための正しい値およびプロシージャをシステム管理者に確認してください。
オンライン・ヘルプを外国のユーザに提供する場合に確認すべき事項を次のチェックリストにまとめます。
ヘルプ・トピックは外国のユーザを想定して書かれているか
/usr/dt/dthelp/dthelptag/helplang.ent ファイルをコピーして、その中の文字列エンティティをローカライズしたかこのファイルのエンティティを使用して、ヘルプタグ・ソフトウェアに組み込まれているデフォルトの文字列を無効にできます。
ヘルプタグ・ソフトウェアは正しい文字セットと言語のオプションで実行されたか別の文字セットで記述する場合は、DtHelp.msg メッセージ・カタログ・ファイルを翻訳して、新しい文字セットをサポートするフォント・スキーマを提供しなければなりません。
ヘルプ・テキストにマルチバイト文字を使用していても、ヘルプタグ・マークアップ内ではすべてのタグ名、エンティティ名、ID が 8 ビットの文字セットで入力されているか
ユーザの LANG 環境変数が正しい言語に設定されているとき、ヘルプ・ファイルを適切に見つけて表示できるようにインストールしてあるか
ヘルプ・システムをアプリケーションに統合した場合、XtSetLanguageProc() 関数を使ってロケールを適切に設定したか
XtSetLanguageProc(3) のマニュアル・ページ
gencat(1) のマニュアル・ページ
ご使用のコンピュータオペレーティング・システム用の NLS 関連のマニュアルまたはプログラム用ツールキット