この付録では、CDE 上でのタイ語とヘブライ語ロケールによるテキストの表示、操作、および印刷について説明します。
Solaris オペレーティング環境には、タイ言語環境 Thai Language Environment (TLE) が含まれます。TLE には、タイ語の入力、表示、印刷が可能なタイ語環境が用意されています。また、TLE には、タイ語のアプリケーションとコマンドを作成するためのプラットフォームと、Solaris および CDE の操作と保守に対応した他の機能もあります。
TLE の機能は次のとおりです。
コードセットの規格
タイ語を表示するためにタイ工業規格 (TIS 620-2533) をサポートしています。ディレクトリ名とファイル名にもタイ語の文字を使用できます。
タイ語の入力
今回のリリースには、各ウィンドウの現在の入力モードを示す入力モードインジケータがあります。国際化された X11R6 ライブラリの動的呼び出し可能なモジュールを使って、ASCII 入力をタイ文字に変換することもできます。通常の Sun Type 4 または Type 5 キーボードによるテキスト入力も可能です。
タイ語の出力
CDE におけるテキストの描画操作ルーチンはすべて、タイ語のテキストを表示するために拡張されています。出力メソッドのアルゴリズムは、タイ政府が管理する WTT 2.0 タイ語テキスト表示規格に準拠します。今回のリリースには、タイ語のビットマップと TrueType フォントも含まれています。
タイ語の印刷
15 ドットマトリックスプリンタに対応しています。サポートされるプリンタについては、『Thai Language Supplement for Solaris 2.6: Release Overview』の付録 C を参照してください。
共通デスクトップ環境生産性ツール (Common Desktop Environment Productivity Tools)
どの CDE アプリケーション ウィンドウでもタイ語の表示と入力が可能です。ウィンドウアプリケーション間でテキストをカット&ペーストすることもできます。今回のリリースは、Xlib レベルでのタイ語の入力と、CDE を含むツールキットレベルでのタイ語の出力をサポートします。また、タイ語のラベルとメッセージを表示するローカライズされた CDE デスクトップツールのほか、テキストやファイル名でのタイ語の使用をサポートします。
Complex Text Layout (CTL)
この追加機能によって、論理テキスト表現と物理テキスト表現の間の複雑な変換が必要な書き込み方式を Motif API がサポートできます。また、文字の整形機能と、静的および動的テキストウィジェットの変換機能もあります。さらに、動的テキストウィジェットの左右両方向に対するテキスト配置とタブ機構もサポートします。
TLE の CDE ライブラリには、WTT 2.0 規格に準拠したタイ語のテキスト操作 (挿入、削除、選択、カット、コピー、ペースト、ドラッグ&ドロップ) が含まれています。このライブラリを使ってプログラムを開発する方法については、『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』を参照してください。
この節では、タイの文字を操作する機構について説明します。
同じファイルにタイ語と英語を混在させなければならないことがあります。英語とタイ語の入力切り替えには、[Ctrl] キーとスペースキーを同時に押します。各ツールの下部にあるメッセージ・ウィンドウに現在の入力言語が表示されます。
この節では、タイ語の処理方法を次の項目に分けて説明します。
テキストの挿入と削除
テキストの折り返し
カーソルの移動
テキストの選択
テキストのコピーまたはペーストとドラッグ&ドロップ
タイ語の文字の挿入と削除を行うと、文字クラスの構成に応じて、テキストの表示が変更されます。
図 D–1 は、SARA_II (AV3 母音) と YOYAK (子音) の間に MAIHUNAKAT (AV2 母音) を挿入する手順を示します。
MAIHUNAKAT は SARA_II と合成できないので、独立したセルに表示されます。
次の例は、 SARA_II (AV3 母音) を削除する手順を示します。
MAIHUNAKAT は NONU (子音クラス CONS) と合成できるので、直前のセルに表示されます。
タイ語には区切り文字 (スペース) がありません。そのため、スペースを送る文字と送らない文字を組み合わせると、文字の適切な折り返しが難しくなります。
Solaris の TLE は、表示セルで文字を折り返し、行の折り返しでスペースを送らない文字を補います。たとえば、スペースを送る文字を行末で入力すると、カーソルは次の行に進みます。スペースを送らない文字を行末で入力すると、カーソルは次の行に進みません。スペースを送らない文字は行末の表示セルに表示され、カーソルの位置はそのままです。
表示セルを選択すると、スペースを送る文字かどうかにかかわらず、選択したセルの文字がすべて選択されます。
タイ語における複数の表示レベルにより、dtpad (テキスト・エディタ) ウィンドウでのカーソルの動作が不規則に見えることがあります。多くのセルには複数のタイ文字が入っていますが、カーソルは表示セルの間を移動するだけです。そのため、同一セルの文字間ではカーソルが移動しません。
端末エミュレータでのカーソルの動作は、(dtpad など) のテキストウィジェットを使ってタイ語 CDE ツールのいずれかでテキストを編集する場合と少し異なります。端末エミュレータでカーソルを動かしたとき、表示セルに文字が 1 つだけ入っていると、表示セルのカーソルが強調表示されます。ある文字がいくつかの表示セルを共有していると、表示セルの全体が強調表示されます。
このリリースに含まれる 4 種類のタイ語フォントを使って、タイ語と英語を組み合わせて表示できます。表 D–1 と 表 D–2 にタイ語フォントを示します。
このリリースに含まれる 4 種類のタイ語フォントを使って、タイ語と英語を組み合わせて表示できます。表 D–1 にフォントを示します。
表 D–1 Solaris の TLE フォント (スケーラブル)
書体 |
スタイル |
フォント名 |
---|---|---|
Angsana |
標準 |
-monotype-angsa-medium-r-normal--*-*-*-*-m-*-tis620.2533-0 |
太字 |
-monotype-angsab-bold-r-normal--*-*-*-*-m-*-tis620.2533-0 |
|
斜体 |
-monotype-angsai-medium-i-normal--*-*-*-*-m-*-tis620.2533-0 |
|
太字斜体 |
-monotype-angsaz-bold-i-normal--*-*-*-*-m-*-tis620.2533-0 |
|
Browalia |
標準 |
-monotype-browa-medium-r-normal--*-*-*-*-m-*-tis620.2533-0 |
太字 |
-monotype-browab-bold-r-normal--*-*-*-*-m-*-tis620.2533-0 |
|
斜体 |
-monotype-browai-medium-i-normal--*-*-*-*-m-*-tis620.2533-0 |
|
太字斜体 |
-monotype-browaz-bold-i-normal--*-*-*-*-m-*-tis620.2533-0 |
|
Cordia |
標準 |
-monotype-cordia-medium-r-normal--*-*-*-*-m-*-tis620.2533-0 |
太字 |
-monotype-cordiab-bold-r-normal--*-*-*-*-m-*-tis620.2533-0 |
|
斜体 |
-monotype-cordiai-medium-i-normal--*-*-*-*-m-*-tis620.2533-0 |
|
太字斜体 |
-monotype-cordiaz-bold-i-normal--*-*-*-*-m-*-tis620.2533-0 |
|
表 D–2 Solaris の TLE フォント (固定幅)
書体 |
スタイル |
フォント名 |
---|---|---|
標準ゴシック |
12 pt |
-logic-gothic-medium-r-normal--12-120-75-75-c-80-tis620.2533-0 |
14 pt |
-logic-gothic-medium-r-normal--14-140-75-75-c-90-tis620.2533-0 |
|
16 pt |
-logic-gothic-medium-r-normal--16-160-75-75-c-80-tis620.2533-0 |
|
20 pt |
-logic-gothic-medium-r-normal--20-200-75-75-c-100-tis620.2533-0 |
|
24 pt |
-logic-gothic-medium-r-normal--24-240-75-75-c-100-tis620.2533-0 |
|
太字ゴシック |
12 pt |
-logic-gothic-bold-r-normal--12-120-75-75-c-100-tis620.2533-0 |
14 pt |
-logic-gothic-bold-r-normal--14-140-75-75-c-110-tis620.2533-0 |
|
16 pt |
-logic-gothic-bold-r-normal--16-160-75-75-c-80-tis620.2533-0 |
|
20pt |
-logic-gothic-bold-r-normal--20-200-75-75-c-120-tis620.2533-0 |
|
24 pt |
-logic-gothic-bold-r-normal--24-240-75-75-c-120-tis620.2533-0 |
|
太字イタリック |
16 pt |
-logic-gothic-medium-i-normal--16-160-75-75-c-80-tis620.2533-0 |
この節では、CDE とドットマトリックスプリンタからタイ語のテキストを印刷する方法を説明します。サポートされるドットマトリックスプリンタについては、『Thai Language Supplement for Solaris 2.6: Release Overview』の付録 C を参照してください。
Angsana UPC フォントがプリンタにインストールされている場合、どの CDE ツールからでも印刷できます (フォントは Solaris の TLE に含まれていません) 。
この節では、『Thai Language Supplement for Solaris 2.6: Release Overview 』の付録 C「Printer Brand, Model, and Code IDs」に掲載されている WTT 2.0 規格に登録されたプリンタを使うと想定しています。
お使いのシステムで WTT 2.0 規格に登録されたプリンタを設定する場合は、『Solaris のシステム管理 (上級編)』を参照してください。
プリンタを設定したら、次の手順でタイ語の印刷を有効にします。
cd /usr/lp/interfaces と入力します。
設定したプリンタに対応するファイルを編集します。
次の行の lp.cat を lp.filter に変更します。
if [! -x "${LPCAT:=${LOCALPATH}/lp.cat}"]
lp.cat にプリンタジョブを渡す lp.filter というシェルスクリプトを /usr/lib/lp/bin に作成します。
lp.filter プログラムの構文は次のとおりです。thai_filter_command の構文については、『Thai Language Supplement for Solaris 2.6: Release Overview』の付録 D の thaifilter(1) のマニュアルページを参照してください。
thai_filter_command | lp.cat
この節では、タイ語の印刷に必要な thaifilter(1) 印刷ユーティリティとプリンタ変換テーブルの使用方法を説明します。
thaifilter(1) プログラムは、タイ語のテキストを次の 3 段階に変換するフィルタです。
すべての ASCII 文字を含む基本レベルの文字
上位レベルの文字
下位レベルの文字
このシステムは、「3-Level Classification」と呼ばれています。3-Level Classification に変換されたファイルの主な用途は次の 2 つです。
正しい表示レベルでタイ語の文字を印刷することをプリンタに指示する。
通常はタイ語テキストを複数レベル (通常) で表示できない端末にタイ語のテキストファイルを表示する。
一部の新型プリンタでは、3-Level Classification ソフトウェアが既にインストールされています。そのため、thaifilter(1) プログラムには、3-Level Classification をオフに切り替える -x オプションがあります。
thaifilter(1) のマニュアルページは、TLE 2.6 ソフトウェアで提供されています。『Thai Language Supplement for Solaris 2.6: Release Overview』を参照してください。
WTT 2.0 規格には、タイ語の印刷について次の条件と規約があります。
プリンタ ID
プリンタ ID は、プリンタの機種、製造元、文字コードを指定するための、TAPIC が定義した 6 文字のコードです。プリンタのメーカは、自社製プリンタに明記するプリンタコードを保有しています。プリンタ ID の構文は BBMMCC で、BB は製造元の略称を示す 2 つの文字、MM は機種の略称を示す 2 つの文字、CC はプリンタで使用される変換コードを示す 2 桁の数字です。プリンタの製造元と機種の略称は、『Thai Language Supplement for Solaris 2.6: Release Overview』の付録 C「Printer Brand, Model, and Code IDs」を参照してください。プリンタ変換コードについては、次の節を参照してください。
たとえば、表 D–3 の 1 行目は、Data Products IZR650 プリンタの製造元と機種の略称が DA および ZI であることを示します。このプリンタがコード変換テーブルの 10 番を使用すると、プリンタ ID の完全な形式は DAZI10 になります。
変換コードとプリンタコード変換テーブル
プリンタ ID を指定するときに、表 D–3 の右側に記載されたコードを使用します。Solaris の TLE は、TAC11x11.COD 規格に対して印刷するためのコードテーブルが指定された TIS 988-2533 に準拠します。ただし、このテーブルを使用しないプリンタもあるので、TIS 規格では既存の他のプリンタコードを TAC11x11.COD に変換するための変換ルックアップテーブルを 17 個指定しています。TAC とは、Thai API Consortium の略称です。Thai Internationalization Committee が定義した API には、接頭辞「TAC.」が付きます。
各種プリンタに付属するコードを TAC11x11.COD 規格に変換するため、前述した 17 個のコード変換テーブルが Solaris の TLE に用意されています。 表 D–3 に記載されたテーブルは、/usr/lib/lp/files ディレクトリにあります。
表 D–3 コード変換テーブル
コード変換テーブル |
プリンタ ID で使用するコード |
---|---|
TAC11x10.COD |
10 |
TAC11x12.COD |
12 |
TAC11x13.COD |
13 |
TAC11x14.COD |
14 |
TAC11x15.COD |
15 |
TAC11x16.COD |
16 |
TAC11x17.COD |
17 |
TAC11x18.COD |
18 |
TAC11x19.COD |
19 |
TAC11x20.COD |
20 |
TAC11x21.COD |
21 |
TAC11x22.COD |
22 |
TAC11x40.COD |
40 |
TAC11x41.COD |
41 |
TAC11x42.COD |
42 |
TAC11x43.COD |
43 |
TAC11xAA.COD |
AA |
どのプリンタコード変換テーブルも使用しないプリンタの場合は、次の節を参照して独自の変換テーブルを作成してください。
プリンタ変換テーブルを使用して、印刷命令を WTT 2.0 のデフォルト印刷形式である TIS 988-2553 形式に変換します。WTT 2.0 規格に列挙されたコード変換テーブルは、Solaris の TLE に含まれています。
TIS 988-2553 形式を使用しないプリンタで、どのコード変換テーブルも使用できない場合は、独自の変換テーブルを作成する必要があります。この節では、プリンタコード変換テーブルを新規作成する方法を説明します。
変換テーブルの形式
コード変換ファイルの例は次のとおりです。
-- -- -- -- TN -- ! TAC11x10.COD 16 AUG 1991 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA 3F 3F 3F 3F DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB 3F 3F 3F FF ! End of TAC11x10.COD
CC LG UM EX TN SP ! comment
このフィールドに何も文字を書かないときは空白にするのではなく、ダッシュを 2 つ記入する必要があります。1 行目のフィールドについては、表 D–4 で説明します。
表 D–4 コード変換テーブル
フィールド |
説明 |
---|---|
CC |
TIS 988-2553 の結合コード。SaraI、MaiEk など |
LG |
ライングラフィック |
UM |
SaraAm と Nikhahit の結合コード |
EX |
Ascender 拡張子 |
TN |
タイの数字 |
SP |
TIS 988-2553 で定義されていない特殊コード |
! comments |
任意のコメント。WTT 2.0 規格では、このフィールドにファイル名と日付が入ります。コメントの前には「!」が必要です。 |
変換ファイルの中間には、16 コード x 16 行の合計 256 コードがあります。これらのコードは TIS 988-2553 の代替コードです。TIS 988-2553 コードは次のとおりです。
-- -- -- -- TN -- ! TAC11x11.COD 16 AUG 1991 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF ! End of TAC11x10.COD Note: There is no conversion in this table
変換テーブルの最終行は、! から始まる別のコメントです。WTT 2.0 変換テーブルは、次の行で終わります。
! END OF filename
Solaris オペレーティング環境には、ヘブライ語言語環境 Hebrew Language Environment が含まれます。この節では、Hebrew Language Environment の主要な機能について説明します。
同じファイルにヘブライ語と英語を混在させなければならないことがあります。ヘブライ語と英語の入力モードを切り替えるには、[Ctrl] キーと [t] キーを同時に押します。各ツールの下部にあるメッセージウィンドウに現在の入力言語が表示されます。
この節では、論理編集モードでカーソルを操作する方法を説明します。
入力したテキストの行頭にカーソルの残像が表示されることがあります。この残像は機能に影響しないので、データの入力を続けてください。
ヘブライ語と英語のテキストの境界にテキストを挿入する場合、その位置は明確に表示されません。曖昧な表示を解消するため、分割カーソルで 2 つの位置を反映しています。表示形式は ab|DC| となり、| は各カーソルを示します。
[Home] キーまたは [End] キーを押すと、分割カーソルが正しく表示されないことがあります。
フィルタのセットを使用すると、ヘブライ語を印刷できます。プリンタが接続されるサーバとクライアントの両方に、ヘブライ語のロケールパッケージ SUNWheu をインストールする必要があります。
次のフィルタリストがヘブライ語ロケールパッケージに含まれています。
この heb2ps フィルタは、任意のテキストを PostScript に変換し、フォントとヘブライ語フォントをプリンタに送信します。
入力タイプ: heb2ps
出力タイプ: postscript
プリンタタイプ: すべて
プリンタ: すべて
フィルタタイプ: 低速
コマンド: /usr/openwin/bin/mp
オプション: INPUT * = -A4
オプション: INPUT * = -L he
hebl2r フィルタで印刷すると、入力テキストの並べ替えは行われません。テキストは 80 カラムの用紙サイズに合わせてフォーマットされます。この形式は、ヘブライ語が少し含まれた英語文書の印刷に役立ちます。
入力タイプ: hebl2r
出力タイプ: heb2ps
プリンタタイプ: すべて
プリンタ: すべて
フィルタタイプ: 低速
コマンド: /usr/lib/lp/postscript/convert_text
オプション: INPUT * = -linewidth 80
hebr21 フィルタで印刷すると、すべてのテキストが反転し、プリンタの出力結果が右寄せになります。
入力タイプ: hebr21
出力タイプ: heb2ps
プリンタタイプ: すべて
プリンタ: すべて
フィルタタイプ: 低速
コマンド: /usr/lib/lp/postscript/convert_text
INPUT * = -linewidth 80 -inputLayoutDirection right_down \ -outputLayoutDirection left_down
フィルタで印刷すると、テキストがヘブライ語と英語の両方向で並べ替えられ、プリンタの出力結果が右寄せになります。
入力タイプ: hebtxt
出力タイプ: heb2ps
プリンタタイプ: すべて
プリンタ: すべて
フィルタタイプ: 低速
コマンド: /usr/lib/lp/postscript/convert_text
INPUT * = -inputTextMode text_mode_implicit \ -outputTextMode text_mode_visual -lineWidth 80 -inputLayoutDirection left_down \ -outputLayoutDirection right_down
コマンドラインから印刷するには、hebtxt フィルタを使用します。lp 印刷コマンドは、lp -T hebtxt -d printer_name です。
dt 構成ファイルの印刷アクションフィールドを変更して、ヘブライ語テキストフィルタを追加する必要があります。たとえば、dtmail アプリケーションでは、/usr/dt/appconfig/types/he/dtmail.dt ファイル の印刷アクションは次のようになります。
ACTION Print { LABEL Print ARG_TYPE DTMAIL_FILE TYPE COMMAND WINDOW_TYPE NO_STDIO EXEC_STRING sh -c ' \ dtmailpr -p -f %(File)Arg_1% | /usr/lib/lp/postscript/convert_text -inputTextMode text_mode_implicit -outputTextMode text_mode_visual -lineWidth 80 -inputLayoutDirection left_down -outputLayoutDirection right_down| mp -A4 -L he| dtlp -u %(File)Arg_1%;' }
リストされた convert_text パラメータでは、右寄せのテキストが右から左に向かって印刷されます。左寄せのテキストを左から右に向かって印刷するには、これらのパラメータを -lineWidth 80 に置換します。