1    多国語環境での作業

特に指定しなければ,Tru64 UNIX オペレーティング・システムは,アメリカ英語をサポートする状態でインストールされます。 ただし,システム管理者は,1 つ以上のワールドワイド言語サポート (WLS) サブセットをインストールすることもできます。 このサブセットには,英語以外の言語で作業をするためのツールや機能が用意されています。 言語サブセットは,ベースのオペレーティング・システムをインストールした後で追加することもできます。 WLS のインストレーションと,インストールできる言語サブセットについては,Tru64 UNIX の『インストレーション・ガイド』に記載されています。

この章では,英語以外の言語環境でのセットアップ作業の方法と,ソフトウェア機能の使い方について説明します。 この章は,省略時の英語環境での Tru64 UNIX の使い方を読者が熟知していることを前提としています。

1.1    国際化ソフトウェアの使用についての概要

英語以外の言語の入力と表示を可能にするには,プロセスを実行するロケールを必ず設定しなければなりません。 特定の言語のロケールは WLS サブセットとしてインストールされます。 locale -a コマンドを使って,利用可能なロケールを表示することができます。 ロケールについての情報と,ロケールの状態を設定または変更する方法については,1.3 節を参照してください。

スーパユーザの特権を持っている場合,SysMan Menu から国際化ソフトウェア構成ユーティリティを使って,省略時のログイン・ロケールを設定したり,その他の国際化作業を実行することができます。 このユーティリティの使い方については,1.2 節または国際化ソフトウェア構成ユーティリティのオンライン・ヘルプを参照してください。

言語によっては,ロケールの設定の他に必要な作業があります。 この章では,以下の作業の実行方法について説明します。

この章では,これらのトピックについて,特定の言語や言語グループに適用したものとして説明します。 共通デスクトップ環境 (CDE) で実行されるアプリケーションの国際化機能の使い方については,第 3 章と,Tru64 UNIX 『CDE ガイドブック』を参照してください。

1.2    国際化ソフトウェアの構成

この章では,ロケールの設定方法,キーボードのマッピング,システムのユーティリティとコマンドを使ったその他の国際化サポートについて説明します。 ただし,スーパユーザの特権を持つシステム・マネージャや管理者は,国際化ソフトウェア構成ユーティリティを使ってシステム上にワールドワイド言語サポートを構成することができます。

国際化ソフトウェア構成ユーティリティは,SysMan Menu の [ソフトウェア] オプション下から利用できる,メニュー方式で動作するユーティリティです。 システム・マネージャや管理者は,スーパユーザとして国際化ソフトウェア構成ユーティリティを使って,次のタスクを実行できます。

1.3    ロケールと言語の設定

Tru64 UNIX では,ロケールによってローカリゼーションを実現します。 ロケールによって,コンピュータ・システムでサポートされている各言語,文化によって異なるデータ,およびコード化文字セット (コードセット) の組み合わせに固有の情報が決まります。 ロケールは,次の情報を提供します。

システム上にインストールされているロケールを表示するには,locale -a コマンドを使用するか,国際化ソフトウェア構成ユーティリティの Manage Locales オプションを使用します。

Tru64 UNIX のロケールでサポートされている言語とコードセットについての情報は, l10n_intro(5) を参照してください。 ロケールの内容については, locale(4) を参照してください。 この項では,Tru64 UNIX に用意されている 2 種類のロケール (dense コードと Unicode) と,オペレーティング・システム上でのロケールの設定方法について説明します。

システム上にワールドワイド言語サポートをインストールすると,2 種類のロケール (Unicode ロケールと dense コード・ロケール) がローカリゼーション・サポート用にインストールされます。 Unicode ロケールは,Unicode 標準と ISO/IEC 10646 標準に適合しており,ワイド文字のコード化に UTF-32 を使用します。 名前が UTF-8 で終わる Unicode ロケールでは,これらの標準で定義されているファイルと内部処理コードが使用されます。 他の非 UTF-8 Unicode ロケールでは,ファイル・コードに従来の UNIX コードセットと独自のコードセットが使用され,内部処理コードに UTF-32 が使用されます。 これらのロケールのサブセットには,@ucs4 という修飾子が付きます。 これらのサブセットは旧製品との互換性を保つために提供されており,@ucs4 の付かないロケールと同じです。 CDE ログイン・メニューからは,@ucs4 ロケールは選択できないため,ロケール名を LANG 環境変数で指定しなければなりません。

dense コード・ロケールでは,テーブル・サイズを最小にするため,ワイド文字のコード化に dense コードが使用されます。

dense コード・ロケールと Unicode ロケールの相違点は,プログラマに必要な情報です。 『国際化ソフトウェア・プログラミング・ガイド』を参照してください。 Tru64 UNIX 上の国際化ソフトウェアのユーザにとっては,dense コード・ロケールと Unicode ロケールは機能的に同じで,各 dense コード・ロケールに対応して Unicode ロケールが存在します。 ただし,すべての Unicode ロケールに dense コード・バージョンがあるわけではありません。

Unicode ロケールは,/usr/i18n/lib/nls/ucsloc/ にインストールされます。 dense コード・ロケールは,/usr/i18n/lib/nls/loc にインストールされます。 省略時のアクティブ・ロケールは,シンボリック・リンク /usr/i18n/lib/nls/dloc で決まります。 スーパユーザの場合は,シンボリック・リンクの設定を変更する ( l10n_intro(5) を参照) か,SysMan Menu から国際化ソフトウェア構成ユーティリティを使用することで,Unicode ロケールと dense コード・ロケールの間で切り替えを行うことができます。 詳細については,国際化ソフトウェア構成ユーティリティのオンライン・ヘルプを参照してください。

システムで使うロケールを設定するには,インストールされているロケールの 1 つを値として LANG 環境変数を定義します。 たとえば,C シェルでは,次のようにします。

% setenv LANG en_US.ISO8859-1

このコマンドは,ISO8859-1 コードセットを使うアメリカ英語用としてユーザ環境を設定します。 インストールされていないロケールを設定した場合,国際化アプリケーションは,英語だけがサポートされる POSIX (C) ロケールが設定されたものと見なします。

ロケールの使い方や,システムおよびユーザの設定に関係する変数の定義についての詳細は,『システム管理ガイド』および『Tru64 UNIX ユーザーズ・ガイド』の国際化についての説明を参照してください。 LANG などのロケール変数については, i18n_intro(5) を参照してください。

グラフィカル・アプリケーションの場合,テキスト変換機能と,共通デスクトップ環境 (CDE) や他の Motif アプリケーションで利用可能なローカル言語機能を利用するためには,言語を選択する必要があります。 アジア系言語の場合,次の機能を使用可能にするためには,正しい言語を選択する必要があります。

CDE における言語設定の一般的な情報については,『CDE ガイドブック』を参照してください。

CDE 環境では,1 つのセッション中は,セッションの起動時に設定された言語ですべてのアプリケーションを実行することを前提としています。 Tru64 UNIX システムでは,次の方法で,この制限を回避することができます。

  1. dtterm ウィンドウで,LANG または LC_ALL 環境変数を,新しいアプリケーションを実行するロケールに設定します。

    % setenv LANG ko_KR.deckorean
    

  2. 日本語や中国語,韓国語用のロケールを設定するのであれば,アプリケーションを実行する前にコマンド行から適切な入力サーバを起動します。

    % /usr/bin/X11/dxhangulim &
    

    アジア系言語の入力サーバについては,2.1 節を参照してください。

  3. ステップ 1 と同じウィンドウ内で,新しいロケールで実行するアプリケーションをコマンド行から実行します。

    % /usr/dt/bin/dtterm &
    

  4. 新しいロケールで操作を行うために,キーボード設定を変更する必要がある場合は,新しいアプリケーション・ウィンドウで操作を開始する前に設定を行います。 キーボード・タイプの設定については,1.4 節を参照してください。

1.4    キーボード・タイプの選択

英語を入力するときは,標準のキーボード上のキーとシフト・キーを組み合わせることにより,すべての大文字と小文字,数字,および句読点を入力できますが,その他の多くの言語では,キーボード上のキーとシフト・キーを組み合わせただけでは,すべての文字を入力することはできません。

シングルバイト・コードセットで英語以外の文字を入力するには,端末ユーザはローカライズされたキーボードを使用するか,あるいは,キーボードに Compose キーがあれば,Compose キー・シーケンスを使用する必要があります。 また,端末によっては,シングルバイト・コードセットに基づいた言語用のさまざまなキーボード・レイアウトに対応したエミュレーション・ソフトウェアが用意されています。 各端末のユーザ・マニュアルには,キーボードを使用して英語以外の文字を入力する方法が説明されています。 アジア系言語におけるマルチバイト文字の入力には,専用の端末ハードウェアが必要になります。

ワークステーションのユーザは,システム上に適切なサポート・ファイルがインストールされていれば,標準のキーボード・タイプが存在する言語ではキーボード・タイプを言語に合ったものに設定できます。 西ヨーロッパおよび東ヨーロッパの言語,日本語,タイ語,ヘブライ語では,キーボード・タイプの設定が必要です。 ただし,中国語と韓国語では,キーボード・タイプの設定は不要です。

CDE では,「キーボード・オプション」 (デスクトップ・アプリケーションの 1 つ) からキーボードを選択して,キーボード・タイプの変更を行います。 キーボード・タイプの変更については,『CDE ガイドブック』を参照してください。

コマンド行からは,dxkeyboard コマンドを使って「キーボード・オプション」を起動して,キーボード・マップを選択し,キーボード・タイプを変更します。

言語設定とは異なり,キーボード設定は,すべてのウィンドウに適用されるグローバルな属性です。 そのため,異なる言語設定で作成されたウィンドウで操作を行う場合には,ウィンドウを切り替えるたびにキーボード設定を変更しなければならないことがあります。

なお,CDE アプリケーションで変更した設定は,システム・ログイン時の設定には影響しません。 システム・ログイン時のキーボード設定は,常にシステムの省略時のキーボードになっています。 システムの省略時のキーボードを変更する方法についての詳細は, keyboard(5) を参照してください。

1.4.1    キーボード・レイアウトの決定

xkbprint コマンドを使用すると,現在のキーボード設定のキーボード・レイアウトにアクセスすることができます。 たとえば,次のコマンドはキーボード・レイアウトにアクセスし,印刷可能な PostScript ファイルを作成します。

% /usr/bin/X11/xkbprint -label symbols -o mykeyboard.ps :0

xkbprint コマンドについての詳細は, xkbprint(1X) を参照してください。

ハードウェア・キー上に文字が刻印されているキーボード以外のキーボードを使用する場合は,文字とキーのマップ方法,および,文字がモード切り替えキーとキー・シーケンスのいずれを使用して入力されるのかを理解しておかなければなりません。 チェコ語などの言語では,最大 4 種類の文字を 1 つのキーにマップできます。 そのような場合には,モード切り替えに指定されているキーを使用して,同一キーにマップされている文字セットを切り替えます。

dxkeycaps コマンドを使用すると,ワークステーションに接続されているキーボードのキーボード・マッピングを表示したり,編集することができます。 このコマンドでは,画面上にキーボードが表示され,現在のサーバ・キーマップに従ってキーキャップが表示されます。 マウスを使用すると,オプションのメニューを表示できます。 このメニューには,特定のキーが生成するキー・シンボルを変更するオプションも含まれています。 コマンド・オプションについては, dxkeycaps(1X) を参照してください。

モード切り替えは,Compose シーケンスとは異なった文字入力メカニズムです。 キーボード設定によって,Compose シーケンス (あるキーをマルチ・キーに指定する) またはモード切り替え (少なくとも 1 つのキーをモード切り替えに指定する) のいずれか,あるいはその両方がサポートされます。 いずれの入力メカニズムもサポートされない場合もあります。

1.4.2    ユーロ通貨記号の入力

ユーロ通貨は 2002 年に,経済通貨同盟 (EMU) に加盟しているヨーロッパ諸国の基本通貨単位となりました。

ユーロ記号の入力,表示,印刷を行うには,システム上にワールドワイド言語サポート (WLS) がインストールされていなければならず,次の手順を実行しなければなりません。

  1. サポートされているロケール,キーボード・マッピング,およびフォントでシステムを構成する。

  2. 正しいキー・シーケンス,コードセット変換,およびプリント・フィルタを使用する。

この項では,これらの手順について説明し,ロケールの設定およびキーボード・タイプの選択の例を示します。

ユーロ通貨記号の使い方についての詳細は,Tru64 UNIX Best Practices の Web ページを参照してください。

Tru64 UNIX 上で記号の入力,表示,および印刷を行うには,その記号を含むコードセットと,その記号を表示できるフォント・セットが必要です。 Compose キーとカット・アンド・ペーストという代替手段もありますが,キーストロークと記号を対応付けるキーボード・マッピングも便利です。 コードセット,フォント・セット,および入力システムの要件は,記号が英語の文字,中国語の文字,またはユーロ通貨記号であってもあてはまります。

Unicode (UTF-8) と ISO/IEC 8859-15 (Latin-9) コードセットには,ユーロ記号が含まれています。 WLS がインストールされている場合,Tru64 UNIX は国固有のロケールによって,これらのコードセットを用意します。 Tru64 UNIX は,各国や Xfont ライブラリに固有のキーボード・マッピングも用意しているため,ユーロ記号の表示が可能となります。

ユーロ通貨記号の入力や表示を行うには,次の手順を実行します。

  1. ユーロ通貨記号をサポートしているロケール下で実行します。 表 1-1 に,ユーロ記号をサポートしているロケールの一覧を示します。 このロケールのいずれかをシステム上で起動するには,次の手順を実行します。

    1. CDE ログイン画面の [オプション] メニューから [言語] を選択します。

    2. この[言語] サブ・メニューから,ロケールを選択します。

  2. 選択したユーロ対応ロケールと,使用しているキーボード・タイプに適したキーボード・マップを選択します。 キーボード・マップを選択するには,次の手順を実行します。

    1. コマンド行で /usr/dt/bin/dxkeyboard と入力し,dxkeyboard のダイアログ・ボックスを表示します。

      または,CDE の「アプリケーション・マネージャ」の [デスクトップアプリケーション] フォルダから「キーボード設定」を選択して,dxkeyboard のダイアログ・ボックスを表示することもできます。

    2. dxkeyboard のダイアログ・ボックスから,使用しているロケールとキーボード・タイプに合ったキーボード・マップを選択します。 キーボード・タイプは通常,キーボードの下面に明記されています。 特定のロケールに対応するキーボード・タイプとキーボード・マップについては,使用している言語のリファレンス・ページ (たとえば, Italian(5)) を参照してください。

  3. 現在のロケールでのキーの組み合わせを使って,ユーロ通貨記号を入力します。 Compose シーケンスをサポートしているキーボードの場合,Compose キーに続けて C と等号 (=) を押すと,ユーロ記号になります。 (さまざまなロケールでのユーロ記号用の Compose シーケンス・キーについては, euro(5) を参照してください。)

システム・マネージャや管理者は,SysMan Menu から利用できる国際化ソフトウェア構成ユーティリティを使っても,システム上のロケールとキーマップを管理することができます。 国際化ソフトウェア構成ユーティリティを使用するためには,スーパユーザでなければなりません。

表 1-1 は国別にまとめられており,ユーロ通貨記号をサポートするロケールの一覧と,ユーロ記号を生成する PC スタイルおよび VT スタイルのキー・コンビネーションの一覧を示します。 この表中のキー・コンビネーションは,xkb フォーマットのキーマップ (CDE の省略時のキーマップ) でサポートされています。

表 1-1:  ロケールとキー・コンビネーションの要約

ロケール ユーロ記号の入力
    VT スタイルのキー・コンビネーション PC スタイルのキー・コンビネーション
カタロニア語 (スペイン)

ca_ES.UTF-8

ca_ES.ISO8859-15

左 Compose/E 右 Alt/E
中国語 - PRC (簡体字)

zh_CN.UTF-8 (簡体字)

zh_HK.UTF-8 (繁体字,香港)

zh_TW.UTF-8 (繁体字,台湾)

中国語用のキー・コンビネーションはありません。 ユーロの Unicode 値 (U+20AC) を入力するには,Qu-Wei 入力システムを使います (Tru64 UNIX Technical Reference for Using Chinese Featuresのオンライン・マニュアルを参照)。

デンマーク語 (デンマーク)

da_DK.UTF-8

da_DK.ISO8859-15

左 Compose/E 右 Alt/E
ドイツ語 (オランダ)

nl_NL.UTF-8

nl_NL.ISO8859-15

左 Compose/E 右 Alt/E
ドイツ語/フラマン語 (ベルギー)

nl_BE.UTF-8

nl_BE.ISO8859-15

左 Compose/E 右 Alt/E
英語 (イギリスおよびアイルランド)

en_GB.UTF-8

en_GB.ISO8859-15

左 Compose/4 右 Alt/4
英語 (アメリカ合衆国)

en_US.UTF-8

en_US.ISO8859-15

左 Compose/E 右 Alt/E
フィンランド語 (フィンランド)

fi_FI.UTF-8

fi_FI.ISO8859-15

左 Compose/E 右 Alt/E
フランス語 (フランス)

fr_FR.UTF-8

fr_FR.ISO8859-15

左 Compose/E 右 Alt/E
フランス語 (ベルギー)

fr_BE.UTF-8

fr_BE.ISO8859-15

左 Compose/E 右 Alt/E
フランス語 (カナダ)

fr_CA.UTF-8

fr_CA.ISO8859-15

左 Compose/E 右 Alt/E
フランス語 (スイス)

fr_CH.UTF-8

fr_CH.ISO8859-15

左 Compose/E 右 Alt/E
ドイツ語 (ドイツ)

de_DE.UTF-8

de_DE.ISO8859-15

左 Compose/E 右 Alt/E
ドイツ語 (スイス)

de_CH.UTF-8

de_CH.ISO8859-15

左 Compose/E 右 Alt/E
アイスランド語 (アイスランド)

is_IS.UTF-8

is_IS.ISO8859-15

左 Compose/E 左 Compose/E
イタリア語 (イタリア)

it_IT.UTF-8

it_IT.ISO8859-15

左 Compose/E 右 Alt/E
日本語 (日本)

ja_JP.UTF-8

日本語には,ユーロ記号用の Compose テーブルやキーマップ・サポートはありません。 ユーロ記号を入力するには,vi エディタまたは dtpad エディタを使って,ユーロ記号をサポートしているアプリケーションから記号をカットし,ja_JP.UTF-8 ロケール下のターゲット・アプリケーションにペーストします。

韓国語 (韓国)

ko_KO.UTF-8

韓国語には,ユーロ記号用の Compose テーブルやキーマップ・サポートはありません。 ユーロ記号を入力するには,vi エディタまたは dtpad エディタを使って,ユーロ記号をサポートしているアプリケーションから記号をカットし,ko_KO.UTF-8 ロケール下のターゲット・アプリケーションにペーストします。

ノルウェー語 (ノルウェー)

no_NO.UTF-8

no_NO.ISO8859-15

左 Compose/E 右 Alt/E
ポルトガル語 (ポルトガル)

pt_PT.UTF-8

pt_PT.ISO8859-15

なし 右 Alt/E
スペイン語 (スペイン)

es_ES.UTF-8

es_ES.ISO8859-15

左 Compose/E 右 Alt/E
スウェーデン語 (スウェーデン)

sv_SE.UTF-8

sv_SE.ISO8859-15

左 Compose/E 右 Alt/E

代替ファンクション・キーはこの表中では Alt と記載していますが,一部のキーボードでは Gr と表示されています。 (どちらの場合も,このキーはキーボードの右側にあります。) キーボード・マッピングとキーボードについての詳細は,使用しているオペレーティング・システムの keyboard(5) を参照してください。

WLS と,ユーロ記号をサポートしている言語をインストールすると,テキスト・プリント・フィルタと PostScript プリント・フィルタが利用できるようになります。 これらのフィルタは,システムのロケール設定を意識し,ユーロ通貨記号を含むフォントが用意されています。 たとえば,汎用 PostScript プリント・フィルタ (wwpsof) は,UTF-8 フォーマットと ISO 8859-15 フォーマットをサポートしています。

ユーロ記号のプリント・サポートで,ユーザが行わなければならない作業はこれだけです。

Tru64 UNIX には,ユーロ記号をロケールの LC_MONETARY セクションに代入するロケールが 2 種類 (en_EU.UTF-8@euroen_US.UTF-8@euro) あります。 これらのロケールは,通貨記号をユーロとして定義する UTF-8 ロケールと ISO8859-15 ロケールを補うためのものです ( euro(5) を参照)。 LC_MONETARY を設定すると環境変数 LANG より優先されるため,LANG にユーロ記号をサポートしないロケールを設定し,LC_MONETARYen_EU.UTF-8@euro を設定しても,ユーロ記号がサポートされます。 詳細については, euro(5) を参照してください。 また,ロケール関連の環境変数については, i18n_intro(5) を参照してください。

1.5    特殊なコンポーネントの検索パスの設定

ヨーロッパ言語のサポートには,システム・デフォルトの位置にインストールされているデータと実行可能ファイルが使用されます。 一部のコマンドとライブラリでは,アジア系言語をサポートするためには,ディレクトリ /usr/i18n の下にあるファイルを必要とします。 これらのファイルは,システム・デフォルトの位置にあるファイルを補うか,それらのファイルの代わりとして使用されます。

1 つまたは複数のアジア系言語サブセットをインストールするときは,インストレーション過程で次の変数設定をシステム・レベルで変更します。

/etc/i18n_profile ファイルは,Bourne シェルと Korn シェルのユーザのために,PATH 変数と I18NPATH 変数への代入をシステム・レベルで実行します。 C シェル・ユーザの場合,インストレーション・プロセスは,/etc/i18n_login ファイルと /etc/csh.login ファイルをインクルードして,ヘブライ語とアジア系言語のための検索パスを設定します。 コマンドやユーティリティの説明で特に明記されていないかぎり,個々のユーザが,地域化対応のバイナリやユーティリティを見つけるためのプロセス固有の検索パスを変更する必要はありません。

1.6    ユーザ定義文字のサポート

日本,台湾,および中国で使用される文字セットには,アジア地域の場所や人名に使用されることがある一部の文字が含まれていません。 そのような文字はユーザが定義でき,サイト別のデータベースに格納されます。 そのようなデータベースは,ユーザ定義文字 (UDC) データベースと呼ばれます。 表意文字を定義するときは,その文字のフォント・グリフ,照合ファイル,およびその他のサポート・ファイルも定義しなければなりません。

UDC データベースの設定方法および使用方法,UDC データベース構成ファイル cp_dirs の編集方法については,『国際化ソフトウェア・プログラミング・ガイド』を参照してください。

1.7    ローカル言語をサポートするプリンタ・インタフェース機能の使用

Tru64 UNIX の言語別サブセットをインストールすると,プリンティング・サブシステムに次ような拡張機能を追加できます。

以降の項では,これらの機能 について説明します。

1.7.1    汎用の国際化プリント・フィルタ

pcfofwwpsof プリント・フィルタは,HP のプリンタ,特に,プリンタ固有の解決策がこの章以外から入手できないプリンタを,国際化環境で使用できるようにします。 また,これらのフィルタは,サード・パーティのプリンタを使用する場合にも必要になります。 これらのフィルタはどちらも,プリンタ・カスタマイゼーション・ファイル (.pcf ファイル) を使用して,デバイス固有の情報を提供します。 オペレーティング・システム・ソフトウェアには,.pcf ファイルの基本セットが含まれています。 システム管理者は,サイトで使用しているプリンタのための記述を .pcf ファイルに追加できます。

1.7.1.1    pcfof プリント・フィルタ

pcfof フィルタは,HP PCL プリンタなどの PostScript プリンタとテキスト・プリンタの両方に対応します。 PostScript ファイルに対してこのフィルタを使用するには,ローカル言語用の適切な PostScript フォントがプリンタに搭載されていなければなりません。 この要件により,多くのプリンタでは,このフィルタの有用性が制限されてしまいます。 特に,日本語フォントを必要とする PostScript ファイルをプリントする場合には,この制限が顕著になります。 このフィルタは,プリンタ・ロケールがテキスト・ファイルのプリント・ジョブに必要なロケールと異なるときに,コードセット変換を行うように設定できます。 また,このフィルタは,サード・パーティ製のさまざまなテキスト・プリンタ用の .pcf ファイルを備えています。 このプリント・フィルタの使用方法については, pcfof(8) のリファレンス・ページと『システム管理ガイド』を参照してください。

1.7.1.2    wwpsof プリント・フィルタ

wwpsof フィルタは,PostScript プリンタでのみ使用します。 このフィルタは,国際化環境で使われているシングルバイト文字とマルチバイト文字を,プリント可能な PostScript 出力に変換します。 このため,ローカル言語フォントが常駐していないプリンタ上にも,ローカル言語文字を含むプリント・ジョブを印刷できます。 このフィルタを使用するためには,プリンタは PostScript レベル 2 以上,またはコンポジット・フォント拡張のある PostScript レベル 1 をサポートしていなければなりません。

PostScript フォントは,システム上にインストールされているアウトライン・フォント,TrueType フォント,または低解像度ビットマップ・フォントとすることができます。 TrueType フォントと低解像度ビットマップ・フォントは,X フォント・サーバにより,フィルタから利用できるようになります。 この場合,X フォント・サーバが実行されている必要があります。 フォントの検索では,フィルタは最初に PostScript アウトライン・フォントを使おうとします。 アウトライン・フォントが利用できない場合,フィルタは高解像度の,ラスタライズされた TrueType フォントを使います。 このフォントも利用できない場合,フィルタは低解像度ビットマップ・フォントを使います。

wwpsof フィルタは,ロケールの設定を意識します。 文字を処理するときに,フィルタは,文字が現在のロケールでプリント可能な文字かチェックし,ロケール定義の一部であるコードセットを使って適切なフォント (アウトライン,TrueType,または低解像度) を見つけます。 Byte Order Mark を含むファイル・フォーマット (UTF-16 または UTF-32 フォーマット) 以外では,英語以外の言語の文字を含むファイルを印刷する前に,ロケールを適切に設定しておかなければなりません。

たとえば,wwpsof プリント・フィルタとともに使うプリンタ構成ファイルをセットアップして,UTF-8 エンコーディングのファイルを印刷する際に,他のロケールのビットマップ・フォントを PostScript に変換させることができます。 Unicode にはほとんどすべての言語に対応する文字が含まれており,個々のフォントはいずれも,サポートされる文字セットの小規模なサブセットに限定されています。 このため,プリンタ構成ファイルの unicode conversion preference エントリをカスタマイズして,最も多く印刷するテキストの言語で利用されるフォントを優先するようにコードセットの参照順序を指定することができます。

wwpsof フィルタは,まずテキスト・ファイル内の各文字を,フォントが使用可能な UNIX コードセットの対応する文字に変換し,次にそのテキスト・ファイルを PostScript ファイルに変換することにより,各国語のテキスト・ファイルをプリントします。 またフィルタは,CDE アプリケーションで作成された PostScript ファイルをプリントすることもできます。

wwpsof プリント・フィルタの使用方法については, wwpsof(8) のリファレンス・ページと『システム管理ガイド』を参照してください。

1.7.2    ローカル言語プリンタ用のプリント・フィルタ

プリント・フィルタは,特定モデルのプリンタのためにテキスト・データを処理します。 フィルタはプリンタのデバイス依存性を処理し,デバイス・アカウンティング機能を実行します。 個々のプリント・ジョブが完了すると,プリント・フィルタは,/etc/printcap ファイル内のプリンタ・エントリの af フィールドで指定されているファイルにアカウンティング・レコードを書き込みます。

ローカル言語をサポートするテキスト・プリンタ用のプリント・フィルタは,ASCII 文字とローカル言語文字を含むテキスト・ファイルや,nroff コマンドで作成された出力ファイルを処理できます。 nroff 出力を処理する場合,フィルタは,ページ境界にまたがるマルチバイト文字を削除し,下線,スーパスクリプト,およびサブスクリプトの nroff 制御シーケンスを,そのプリンタに合った制御シーケンスに変換します。 ただし,フィルタは,同じ文字に対して適用される複数の nroff 制御シーケンスはサポートしません。

PostScript プリント・フィルタは,テキストと nroff 出力ファイルに加えて,PostScript ファイルもプリントできます。

ローカル言語用のプリント・フィルタとして,/etc/printcap ファイルの ofif の両方のフィールドで指定されたフィルタが使用できます。 /etc/printcap エントリの一般的な情報については,『システム管理ガイド』と printcap(4) のリファレンス・ページを参照してください。 i18n_printing(5) のリファレンス・ページに補足情報が記載されています。 特定の言語のリファレンス・ページ (たとえば, Japanese(5)) には,その言語の文字のプリントをサポートするプリント・フィルタ名がリストされています。

次のプリント・フィルタは,アジア系言語のテキスト・データを処理します。

言語 フィルタ プリンタ
日本語 la84of LA84-J
日本語 la86of LA86-J
日本語 la90of LA90-J
日本語 la280of LA280-J
日本語 la380of LA380-J
日本語 ln03jaof LN03-J
日本語 ln05jaof LN05-J
日本語 ln82rof (PostScript とテキスト・データの両方を処理) LN82R
中国語 (簡体字) la88cof LA88-C
中国語 (簡体字) la380cbof LA380-CB
韓国語 la380kof LA380-K
韓国語 dl510kaof DL510-KA
中国語 (繁体字) cp382dof CP382-D
タイ語 thailpof EP1050+

1.7.3    /etc/printcap におけるローカル言語プリンタのサポート

/etc/printcap ファイルは,システム上の各プリンタの特性を記述するファイルです。 プリンタ特性は,シンボルと値の対で指定され,各シンボルは 2 文字のニーモニックです。 プリント・ジョブを送るたびに,lpd プリンタ・デーモンとプリンタ・スプーリング・システムは /etc/printcap ファイルの情報を使用して,そのジョブの処理方法を決定します。

表 1-2 に,ローカル言語プリンタ・サポートに固有の /etc/printcap シンボルを示します。 /etc/printcap ファイルで使われる他のシンボルについては, printcap(4) を参照してください。 lprsetup コマンドを使ってローカル言語プリンタ用に,/etc/printcap ファイルにこれらのオプションを追加する例については,1.7.4 項を参照してください。

表 1-2:  ローカル言語プリンタ用の /etc/printcap ファイル内のシンボル

シンボル タイプ 省略値 説明
ya str なし

二重引用符で囲まれたキーワード値の指定リスト。

このリストには,特定の言語サポートに必要なほとんどのプリンタ・オプションを指定します。 この表の後で,オプションのキーワード flocalefontlineodldbodlstyleonehalfplocalespcomtacdata,および tm について説明します。

yp str NULL WoToTo 規格 (タイ語のプリンタ規格) に準拠するプリンタ ID。
ys num NULL

SoftODL 文字キャッシュのサイズ。

ys エントリは,テキスト・プリント・フィルタに適用されます。 フォント・ファイルのオンデマンド・ローディングを可能にするには,このエントリが存在しており,その値がゼロより大きくなければなりません。 これらのフォント・ファイルは,ユーザ定義文字のために cgen コマンドによって作成された ODL サポート・ファイルです。 SoftODL サポート・ファイルの位置は,データベース位置構成ファイル /usr/var/i18n/conf/cp_dirs 内のシステム・レベルの ODL ファイルのパスで指定されます。 個人用の UDC データベースの ODL ファイルは,プリンタにはダウンロードされません。

最大限の性能を得るには,ys フィールドに指定したキャッシュ値が,プリンタ・キャッシュ・サイズと一致していなければなりません。 特定のプリンタのキャッシュ・サイズについては,プリンタのマニュアルを参照してください。

yt str fifo

SoftODL の文字置換方式。

yt エントリは,テキスト・プリント・フィルタに適用されます。 このエントリの値は,fifo (先入れ先出し) または lru (最低使用頻度) です。 これらの値は,大文字と小文字のいずれでも指定できます。 特定のプリンタでこの値を設定するには,プリンタのマニュアルを参照してください。

Latin-1 文字セットに含まれていない文字を使用する言語では,ya シンボルを指定しなければなりません。 ya シンボルに設定される値は,以下のオプションを 1 つ以上含む,引用符で囲まれた文字列です。

1.7.4    プリンタ構成ソフトウェアの拡張機能

SysMan Menu の [プリンタ] メニューは,システム上のプリンタの特性を追加,削除,変更するためのデスクトップ・アプリケーションを起動します。 システムで CDE が利用できないときは,同じ操作を行う別の方法として,lprsetup ユーティリティを使用できます。 いずれの場合でも,このソフトウェアは,プリンタ・スプール・ディレクトリの作成,適切なフィルタとプリンタのリンク,/etc/printcap ファイルへのプリンタ・エントリの書き込みなどの必要な処理を実行します。 lprsetup を実行するには,スーパユーザでなければなりません。 サポートされているプリンタの製品名と,プリンタのシステム識別子のマップについては, lprsetup.dat(4) のリファレンス・ページを参照してください。 プリンタ・セットアップの詳細とセットアップ例については,『システム管理ガイド』を参照してください。

例 1-1 に,lprsetup コマンドを使用してローカル言語プリンタ (ln03s-ja) をセットアップする方法を示します。

例 1-1:  lprsetup によるローカル言語プリンタのセットアップ

# /usr/sbin/lprsetup   [1]
Tru64 UNIX Printer Setup Program
 
Command < add modify delete exit view quit help >: add
 
Adding printer entry, type '?' for help.
 
Enter printer name to add [lp11] : [2]
 
Printer Types:
 
  1. Compaq Advanced Server ClientPS
  2. Compaq Advanced Server ClientText
  3. Compaq LN16
  4. Compaq LN32
  5. Digital Colormate PS
  6. Digital DEClaser 1100
  7. Digital DEClaser 1150
  8. Digital DEClaser 2100
  9. Digital DEClaser 2150
 10. Digital DEClaser 2200
 11. Digital DEClaser 2250
 12. Digital DEClaser 2300
 13. Digital DEClaser 2400
 14. Digital DEClaser 3200
 15. Digital DEClaser 3250
 16. Digital DEClaser 3500
 17. Digital DEClaser 5100
 18. Digital LA100
 19. Digital LA120
 20. Digital LA210
 21. Digital LA280
 22. Digital LA30N
 23. Digital LA30N A4
 24. Digital LA30W
 25. Digital LA30W A4
 26. Digital LA324
 27. Digital LA380
 28. Digital LA380CB
 29. Digital LA380K
 30. Digital LA400
 31. Digital LA424
 32. Digital LA50
 33. Digital LA600
 34. Digital LA70
 35. Digital LA75
 36. Digital LA84
 37. Digital LA86
 38. Digital LA88
 39. Digital LA88C
 40. Digital LA90
 41. Digital LG02
 42. Digital LG04 Plus
 43. Digital LG05 Plus
 
Press 'ENTER' to continue scrolling, type '(q)uit' to end scrolling: q 
 
Help Types:
 
  ?         - General help
  printer?  - Specific printer type information
 
Enter index number, help type, '(q)uit', or 'ENTER' [Generic Unknown type]:ln03ja  [3]

.
.
.
Enter printer synonym: draft [4]   Enter printer synonym:   Set device pathname 'lp' [] ? /foo   Do you want to capture print job accounting data ([y]|n)? n   Set spooler directory 'sd' [/var/spool/printers/lpd11] ?   Set printer error log file 'lf' [/var/adm/printers/lp11.lperr] ?   Enter the name of the printcap symbol you wish to modify. Other valid entries are: 'q' to quit (no more changes) 'p' to print the symbols you have specified so far 'l' to list all of the possible symbols and defaults The names of the printcap symbols are:   af br cf ct df dn du fc ff fo fs gf if lf lo lp mc mj mx nc nf of on pl pp ps pw px py rf rm rp rs rw sb sc sd sf sh st tf tr vf xc xf xn xs ya yd yj yp ys yt   Enter symbol name: yt [5]   Enter a new value for symbol 'yt'? [none] [Return]   Enter symbol name: ?   Enter the name of the printcap symbol you wish to modify. Other valid entries are: 'q' to quit (no more changes) 'p' to print the symbols you have specified so far 'l' to list all of the possible symbols and defaults The names of the printcap symbols are:   af br cf ct df dn du fc ff fo fs gf if lf lo lp mc mj mx nc nf of on pl pp ps pw px py rf rm rp rs rw sb sc sd sf sh st tf tr vf xc xf xn xs ya yd yj yp ys yt   Enter symbol name: q [6] Printer #11 ----------- Symbol type value ------ ---- ----- if STR /usr/lbin/ppdof +OPageSize=Letter +Ctektronix740.rpd lf STR /var/adm/printers/lp11.lperr lp STR /foo mx INT 0 of STR /usr/lbin/ppdof +OPageSize=Letter +Ctektronix740.rpd pl INT 66 pw INT 0 rw BOOL on sd STR /var/spool/printers/lpd11 xf STR /usr/lbin/xf   Are these the final values for printer 11 ? [y] [Return]     Adding comments to printcap file for new printer, type '?' for help. Do you want to add comments to the printcap file [n] ? : [Return]   Setup activity is complete for this printer. Verify that the printer works properly by using the lpr(1) command to send files to the printer.     Command < add modify delete exit view quit help >: e [7]      

  1. lprsetup プログラムを起動します。 [例に戻る]

  2. 利用可能なプリンタ・タイプを表示します (lprsetup コマンドがサポートしているローカル言語プリンタについては,その言語のリファレンス・ページを参照してください)。 [例に戻る]

  3. プリンタ・タイプを入力します。 個々のプリンタの情報を参照するには,printer? と入力します。 [例に戻る]

  4. ユーティリティにより,プリンタの別名,デバイス・パス,課金データを収集するかどうか,およびスプーラ・ディレクトリとエラー・ログの選択を指定するためのプロンプトが表示されます。 ヘルプを表示するには,プロンプトに対して疑問符を入力します。 [例に戻る]

  5. printcap シンボルを入力するためのプロンプトです。 国際化システムで重要なシンボルとパラメータについては,表 1-2 を参照してください。 たとえば,ys は,SoftODL サービスが使うキャッシュ・サイズを設定します。 特に指定しなければ,この値はプリンタに適したキャッシュ・サイズとなり,/etc/printcap ファイルの ys シンボルの値として格納されます。 [例に戻る]

  6. lprsetup」ダイアログを終了します。 このユーティリティは,指定された値を表示し,確認を求めます。 確認を行うと,/etc/printcap ファイルにコメントを追加するためのプロンプトが表示されます。 [例に戻る]

  7. プログラムを終了し,/etc/printcap ファイルにこれ以上の変更を加えないようにします。 [例に戻る]

1.7.5    プリント・コマンドとプリンタ・デーモン

lplpclpdlpqlprlprm,および lpstat コマンドは,Latin-1 グループに含まれないアジア系言語用のプリント・サブシステムに追加された拡張機能をサポートしています。 たとえば lpr コマンドには,-A オプションと,-O オプションに指定する値が追加されており,ユーザはこれらのオプションを使用して拡張機能を利用できます。 ローカル言語オプションとその値については, lpr(1) を参照してください。

1.7.6    PostScript プリンタのためのフォント処理

中国語や韓国語のフォントを PostScript プリンタのメモリに収納するのは,ほとんど不可能です。 タイ語のフォントと一部のヨーロッパ言語のフォントはプリンタ・メモリに収まりますが,他の言語のフォントと一緒に入れるにはその数が多すぎます。

PostScript プリンタに言語特有のフォントが常駐していない場合,wwpsof プリント・フィルタ (1.7.1.2 項 を参照) を使用して解決します。 その場合,プリンタの構成ファイル内に,使用する複数の言語に対応するフォントの名前を指定します。 また,wwpsof プリント・フィルタは,特定のコードセットに対する PostScript フォントが使用できない場合に,ビットマップ・フォントから PostScript 出力を作成することもできます。 このプリント・フィルタの使い方については, wwpsof(8) を参照してください。

以下に,言語およびコードセットと,PostScript フォント・セットの対応を示します。

1.8    多国語環境におけるメールの使用

Tru64 UNIX には,マルチバイト文字コードセットに基づく言語を扱えるように,次のコマンドとユーティリティの拡張バージョンが用意されています。

この節では,これらのコンポーネントに加えられた拡張と,comsat サーバが実行するコードセット変換について説明します。 これらのソフトウェアの詳細については, sendmail(8)mailx(1)mh(1),および comsat(8) のリファレンス・ページを参照してください。

1.8.1    sendmail ユーティリティ

複数のユーザ・コマンドのバックエンドとして機能する sendmail ユーティリティは,省略時構成で 8 ビット・データをサポートします。 マルチバイト文字のサポートには,8 ビット・データをサポートする構成が必須です。 8 ビット構成における制限事項については, sendmail(8) のリファレンス・ページを参照してください。

1.8.2    mailx コマンドと MH コマンド

mailx コマンドと,MH システムで使用可能なすべてのコマンドは,メール交換コードセット (メッセージを一部のホストに転送するために使用する) と,ユーザのアプリケーション・コードセット間でのメール・メッセージの変換をサポートします。 たとえば,メール交換用のコードセットが ISO-2022-JP で,アプリケーション・コードセットが eucJP である場合,mailx および MH コマンドは,着信メッセージを表示する前に,メッセージのコードセットを日本語 EUC に変換します。

データの紛失を避けるために,着信メッセージは,メール・フォルダに格納される際に,受信されたときのコードセットでエンコードされます。 コードセット変換は,ユーザがメッセージを読み出したり,表示したときに実行されます。

メール交換コード情報を他のシステムに送るために,発信メッセージには次のような 2 つのヘッダが含まれます。

Mime-Version: 1.0
 
Content-Type: TEXT/PLAIN; charset=ISO-2022-JP

上記の例の charset フィールドは,メール交換コードセット (上記の例では ISO-2022-JP) を指定します。 このコードセットは,日本語文字のための ISO 7 ビットの状態依存コードセットです。 ISO 規格に含まれていないコードセットには,コードセット名にプレフィックス X- が付けられます。 たとえば,DEC Hanyu がメール交換に使用されるコードセットであれば,次のヘッダ行が発信メール・メッセージに取り込まれます。

Mime-Version: 1.0
 
Content-Type: TEXT/PLAIN; charset=X-dechanyu

mailx コマンドや MH コマンドは,アプリケーションのコードセットを判定し,着信メッセージおよび発信メッセージのメール交換コードセットを,ある値に基づいて設定します。 以下のリストに,これらのコマンドが使う値を,優先順位の高いものから順に示します。

1.8.3    comsat サーバ

ユーザにメール・メッセージの着信を通知する comsat サーバは,常に着信メール・メッセージを,メール交換コードセットからユーザのアプリケーション・コードセットに変換しようとします。 次のリストに,comsat サーバが,メール交換のコードセットとアプリケーションのコードセットの判定に使う値を示します (優先順位の高いものから順に示します)。

1.9    英語以外の言語におけるリファレンス・ページの表示

Tru64 UNIX では,国際化アプリケーションには一般的にオンライン・リファレンス・ページ (manpage) が用意されており,アプリケーションとそのコンポーネントの説明が記載されています。 Tru64 UNIX には拡張バージョンの nrofftbl,および man が含まれており,このリファレンス・ページの処理に使用されます。

nroff コマンドと tbl コマンドは,リファレンス・ページを作成するために主にプログラマが使用するツールです。 これらのコマンドについては,『国際化ソフトウェア・プログラミング・ガイド』を参照してください。

man コマンドは,リファレンス・ページをフォーマットして表示します。 また,リファレンス・ページ・ファイル内のマルチバイト文字を扱うことができます。 特に指定しなければ,man コマンドは自動的に /usr/share/locale_name/man ディレクトリでリファレンス・ページを検索してから,/usr/share/man ディレクトリと /usr/local/man ディレクトリを検索します。 このため,インストールされているロケールが LANG 環境変数に設定されていて,そのロケール用の翻訳されたリファレンス・ページが利用できる場合,man コマンドは自動的に適切な言語でリファレンス・ページを表示します。

さらに,特定の言語用のリファレンス・ページの翻訳版が,ユーザのロケールのコードセットと合わないコードセットでエンコードされているときは,man コマンドは自動的にコードセット変換を適用します (適切なコンバータが利用可能な場合)。 man コマンドの検索パスの再設定や,コードセット変換の詳細については, man(1) のリファレンス・ページを参照してください。

1.10    コードセット間でのデータ・ファイルの変換

各ロケールは,特定のコードセットに基づいています。 そのため,あるコードセットでエンコードされているデータを含むファイルを使用するアプリケーションを,別のコードセットに基づくロケールで実行する場合には,文字の解釈が正しく行えないことがあります。 ユーザは,プロセス環境を特定のロケールに設定して,ロケールが基づくコードセットとは異なるコードセットで作成されたデータ・ファイルを使用しなければならない場合があります。 異なる言語環境や,ユーザのロケールとは異なるコードセットでデータ・ファイルが使用される例を,次に示します。

iconv コマンドを使用すると,あるコードセットから別のコードセットへデータ・ファイルを変換できます。 次のような例について説明します。

% iconv -f SJIS -t eucJP accounts_local >> accounts_central

この iconv コマンドは,次の処理を実行します。

一方,アプリケーション・プログラマは,iconv_open()iconv(),および iconv_close() 関数を同じ目的で使うこともできます。 man コマンドや国際化プリント・フィルタなどの多くのコマンドやユーティリティは,iconv() 関数やそれに対応するコンバータを使って,ユーザの代わりにコードセット変換を実行します。

国際化プログラム内で iconv やアルゴリズム/テーブル・コンバータを使用する方法についての詳細は,『国際化ソフトウェア・プログラミング・ガイド』と iconv(3) を参照してください。

1.11    その他の基本システム・コマンド

従来の UNIX コマンドをローカル言語環境で使用する際の機能と制限事項を,以下に示します。