この章では,国際化されたソフトウェアを日本語の環境で使用するためのロケールの指定方法や,端末の入出力に関連した漢字コードの設定などの日本語環境の設定について説明します。
日本語環境のインストール
国際化環境の設定
CDE の言語設定
言語 (ロケール) の設定
日本語端末の設定
iconv コマンドによる日本語コード変換
メッセージ・カタログの設定
日本語リファレンス・ページの設定
Tru64 UNIX で提供する日本語機能を使用するためには,Tru64 UNIX のペース・オペレーティング・システムに加えて,ワールドワイド言語サポート・サブセットと日本語サブセットをインストールする必要があります。
図 2-1: 日本語環境を使用するために必要とするソフトウェア・サブセット
日本語機能を使用するために必要なこれらのサブセットのインストールは,インストレーション・プロシージャで日本語を選択することにより自動的に行われます。具体的なインストレーション手順については,『インストレーション・ガイド』および『インストレーション・ガイド -- 上級ユーザ編』を参照してください。
なお,下記の日本語機能を使用するためには,インストレーション・プロシージャによる Tru64 UNIX の日本語環境のインストレーションの後に,それぞれのソフトウェア・キットのインストレーションが必要になります。
VJE-Delta
日本語入力システム VJE-Delta のキットは,「日本語入力システム VJE-Delta」CD-ROM に含まれています。このソフトウェアのインストレーション方法については,VJE-Delta のユーザーズ・ガイドを参照してください。
WX3
日本語入力システム WX3 のキットは,「日本語入力システム WX3」CD-ROM 含まれています。このソフトウェアのインストレーション方法については,WX3 のユーザーズ・ガイドを参照してください。
日本語 Advanced Printing Software
Advanced Printing Software の日本語キットは,「Associated Products Volume 1」CD-ROM に含まれています。このソフトウェアのインストレーションについては,4.5 節 を参照してください。
midoc および miman
日本語ドキュメント全文検索機能 midoc とリファレンス・ページ全文検索機能 miman のキットおよびインストレーションについては,第 6 章 を参照してください。
Tru64 UNIX の日本語機能を使用するためには,まず最初に,次にあげる国際化環境用の環境変数を設定します。
I18NPATH
国際化環境の仮想的なルート・ディレクトリとなるディレクトリを設定します。
PATH
jvi
などの日本語サブセットに含まれるコマンドを優先して実行するように,PATH の先頭に
$I18NPATH/bin
を設定します。
これらの環境変数の設定を正しく行うために, Tru64 UNIX では次に示す3つのスクリプト・ファイルを用意しています。
/etc/i18n_profile
/etc/i18n_login
/etc/i18n_path
これらは,必要に応じて変更するためのテンプレート・ファイルです。システム管理者は,システムの構成や環境に合わせて
/etc/i18n_profile
および
/etc/i18n_login
の内容を適当に変更することができます。
注意
/etc/i18n_path
はシステムのディレクトリ構造に依存しているため変更してはいけません。
/usr/sbin/i18nsetup
というコマンドを使用すると,ユーザのスタートアップ・スクリプト($HOME/.profile
および
$HOME/.cshrc
)
の最後にスケルトン・ファイルの内容が追加されます。
この後でエディタを使用して,これらの追加された内容をファイルの中の適当な位置に移動します。
システム管理者(root)であれば,
/usr/sbin/i18nsetup
を使用して他のユーザのスタートアップ・スクリプトの変更を行うことができます。
この場合,次に示すように引数としてユーザ名を指定します。
この例ではユーザ
kanai
と
shimada
のスタートアップ・ファイルが変更されます。
# /usr/sbin/i18nsetup kanai shimada
以上のスタートアップ・ファイルが正しく変更された場合,次回以降ログインしたとき,あるいは
eval
(sh の場合),source
(csh の場合)で現在のシェル環境に設定を反映すると
Tru64 UNIX
の国際化環境のコマンドやユーティリティを使用することができるようになります。
注意
これ以降解説する日本語環境の設定や操作は,この節で解説した環境変数の設定が行われたものと仮定しています。 日本語環境の設定が正常に行われない場合,まずこれらの環境変数の値を調べてください。
CDE におけるユーザごとの言語設定は,システムへのログイン時に,ログイン・ダイアログで「オプション」メニューの「言語」サブメニューから使用言語を選択することによって行います。「言語」サブメニューから,表 2-1
に示すいずれかの日本語ロケールを選択することにより,日本語でシステムを利用することができます。
表 2-1: CDE の言語設定オプションで選択できる日本語ロケール
日本語 | ja_JP |
日本語 (DEC漢字) | ja_JP.deckanji |
日本語 (EUC) | ja_JP.eucJP |
日本語 (Super DEC漢字) | ja_JP.sdeckanji |
日本語 (Unicode) | ja_JP.UTF-8 |
日本語 (シフトJIS) | ja_JP.SJIS |
CDE セッションの環境変数 LANG の値は,ログイン時に選択した言語にしたがって自動的に設定されます。このため,.login
などの起動時スクリプトで LANG 環境変数を設定する必要はありません。
注意
CDE セッションをご使用の場合は,起動時スクリプトの中では環境変数 LANG を定義しないようにしてください。ログイン時に選択した言語とスクリプトが設定した環境変数 LANG の値が矛盾すると,セッションが正しく起動できない場合があります。
ワールドワイド言語サポート・ソフトウェアのインストレーション時に日本語だけを選択した場合,ウィンドウ環境の省略時の言語が自動的に日本語 EUC (ja_JP.eucJP) に設定されます。
ウィンドウ環境の省略時の言語設定を EUC 以外の日本語ロケールにしたい場合,あるいはワールドワイド言語サポート・ソフトウェアのインストレーション時に複数の言語を選択した場合は,以下の手順で日本語ウィンドウ環境の省略時の言語を設定 (変更) することができます。
/etc/dt/config/Xconfig
ファイルの有無を調べ,存在する場合は削除します。
以下の手順で新しい
Xconfig
ファイルを作成します。
# cd /etc/dt/config # ln -s Xconfig.ロケール名 Xconfig
次の例では,省略時の言語を日本語 EUC に設定しています。
# ln -s Xconfig.ja_JP.euc.JP Xconfig
この設定はログイン画面の言語と省略時のセッション言語の両方に対して有効です。
2.4 日本語ロケールの設定
2.4.1 日本語ロケールの設定方法
Tru64 UNIX の国際化されたコマンドやライブラリを日本語に対応させるためには,明示的に言語,テリトリ,コードセット名の3つの組み合わせから表されるロケール (locale) を指定します。
ロケールを表すロケール名は,次のような形式で指定します。
Language_Territory.Codeset
Language,Territory,Codeset には,それぞれシステムで定義されている言語名,テリトリ名,文字コードセット名のニーモニックを指定します。
Tru64 UNIX では,表 2-2
に示す日本語ロケールを使用することができます。 これらはすべて「日本国内で使用されている日本語」というロケールを指定するものですが,文字データを表すための使用文字コードセットを明示的に区別しています。
表 2-2: Tru64 UNIX で有効な日本語ロケール名
ロケール名 | 使用する文字コードセット名 |
ja_JP.deckanji | DEC 漢字コードを使用 |
ja_JP.sdeckanji | Super DEC 漢字コードを使用 |
ja_JP.eucJP | 日本語 EUC を使用 |
ja_JP.SJIS | シフト JIS を使用 |
ja_JP | 日本語 EUC を使用 |
ja_JP.UTF-8 | UTF-8 を使用 |
Tru64 UNIX
では,インストール時に日本語ロケール用のロケール・データベースを
表 2-3
に示す場所に格納します。
表 2-3: ロケール・データベース
ロケール名 | ロケール・データベース |
ja_JP.deckanji | /usr/lib/nls/loc/ja_JP.deckanji |
ja_JP.sdeckanji | /usr/lib/nls/loc/ja_JP.sdeckanji |
ja_JP.eucJP | /usr/lib/nls/loc/ja_JP.eucJP |
ja_JP.SJIS | /usr/lib/nls/loc/ja_JP.SJIS |
ja_JP.UTF-8 | /usr/lib/nls/loc/ja_JP.UTF-8 |
日本語ロケールを指定するには,環境変数 LANG に 表 2-2 で示したロケール名のうちのいずれか 1 つを設定します。 Tru64 UNIX の国際化されたコマンドやライブラリは,起動時に環境変数 LANG を参照して,そこに設定されているロケール名に対応します。
Tru64 UNIX
では,国際化されたコマンドやライブラリの処理の内容がロケールによって異なる状況を
表 2-4
の6種類のカテゴリに分類しています。
これらのカテゴリ名は,環境変数の名前と同じです。
ユーザは,これらの環境変数に適当なロケール名をそれぞれ独立に指定することができるため,処理の内容に応じて細かなロケールの指定を行うことが可能です。
表 2-4: 有効なカテゴリ名
カテゴリ名(環境変数名) | 選択内容 |
LC_COLLATE | 照合順序 (collation) |
LC_CTYPE | 文字の分類,大文字小文字などの文字の属性 |
LC_MESSAGES | メッセージの表示形式 |
LC_MONETARY | 金銭の表記形式 |
LC_NUMERIC | 数値データの表記形式 |
LC_TIME | 日時,時間の表記形式 |
これらのカテゴリのすべてに,同時に同じロケール名を設定するには 環境変数 LC_ALL を使用します。
システムは次の優先順位で各環境変数を参照し,正しいロケール名が設定されていればその変数値を使用してロケールの設定を行います。
環境変数 LC_ALL
環境変数 LC_COLLATE,LC_CTYPE,LC_MESSAGES,LC_MONETARY,LC_NUMERIC,LC_TIME
環境変数 LANG
環境変数 LANG および各カテゴリにロケール名を何も指定していない場合や不適当なロケール名を指定した場合,C ロケールが指定されたものとされます。 C ロケールは,ASCII 文字しか処理できない最も基本的な環境を示すロケールです。 C ロケールでは,日本語の処理はできません。
現在のロケール設定は
locale
コマンドで表示することができます。
% locale
詳細については,
locale
(1)2.4.2 Unicode および dense コード・ロケールの切替え
システムに Tru64 UNIX のワールドワイド言語サポートをインストールすると,2 種類のロケール (Unicode ロケールと dense コード・ロケール) がローカリゼーション・サポート用にインストールされます。
インストール直後のデフォルト設定では,dense コード・ロケールが使用されます。システムでどちらのロケールを設定するかは,ユーザが選択して設定することができます。Unicode ロケールとdense コード・ロケールの相違点および切替え方法についての詳細は,『国際化機能ユーザーズ・ガイド』の第 1 章の「ロケールと言語の設定」の項を参照してください。
2.5 日本語端末の設定
端末への日本語の表示や,キーボードからの日本語入力を行うためには端末ドライバを日本語用のラインディシプリン(回線制御規則)に設定します。 設定は次のように行います。
% stty jdec
このコマンドを実行した直後の端末ドライバの設定状態は,次のようになります。
項目 | 該当する stty のオプション | 設定状態 |
端末入出力コード | tcode dec | DEC 漢字コード |
アプリケーション・コード | acode コードセット名 | ロケールに設定されている日本語コードセット (ロケールが設定されていない場合は eucJP) |
日本語入力モード | imode hiragana | 8-bit コードを2バイトのひらがなコードとして入力 |
漢字変換機能 | -ikk | 変換機能 OFF |
ユーザが使用している環境がこれらの設定とは異なる場合,必要に応じて
stty
コマンドを使用して各項目の再設定を行います。
以下のセクションでは,端末コード,アプリケーションコード,8-bit データの取り扱いをユーザの環境に合わせて設定するための stty コマンドの使用法を解説します。
2.5.1 端末コードとアプリケーション・コードの設定
端末コードとアプリケーション・コードには,それぞれ独立に漢字コードを設定することができるので,様々な組合せが可能です。
Tru64 UNIX
の端末装置を使用するアプリケーション・プログラムは,
図 2-2
に示すように,端末装置とアプリケーションの間をカーネルに組み込まれた端末ドライバ atty
[脚注 4]
が仲介して通信しています。
図 2-2: 端末ドライバ(Asian tty)
Tru64 UNIX
では,端末,端末ドライバ,アプリケーションの間で送受信される文字コードをユーザがそれぞれ選択することができます。
以後,端末がホストと通信を行うときの文字コードを端末コード,アプリケーションが処理する文字コードをアプリケーション・コードと呼びます。
2.5.1.1 端末コードの設定
DEC 漢字コード以外の文字コードセットを端末コードとして設定するには
stty
コマンドの
tcode
オプションを使用します。
% stty tcode コードセット名
指定可能なコードセット名を
表 2-5
に示します。
表 2-5: 端末コードとして指定できるコードセット名
コードセット名 | 対応するニーモニック |
DEC 漢字 | dec |
シフト JIS | SJIS |
日本語 EUC | eucJP |
7-bit JIS | jis7 |
8-bit JIS | jis8 |
UTF-8 | UTF-8 |
アプリケーション・コードを設定するには
stty
コマンドの
acode
オプションを使用します。
% stty acode コードセット名
指定可能なコードセット名を
表 2-6
に示します。
表 2-6: アプリケーション・コードとして指定できるコードセット名
コードセット名 | 対応するニーモニック |
DEC 漢字 | deckanji |
Super DEC 漢字 | sdeckanji |
シフト JIS | SJIS |
日本語 EUC | eucJP |
UTF-8 | UTF-8 |
端末から 8-bit データ,すなわち8ビット目がオンになっているデータが入力された場合,次のように解釈されます。
1バイトのカナ文字と解釈され
1バイトの半角カナ文字としてそのままアプリケーションに渡される。
そのカナ文字に対応する 2 バイトの全角ひらがなのコードに変換される。
そのカナ文字に対応する 2 バイトの全角カタカナにコードに変換される。
複数バイトの漢字コードの一部として解釈される。
これらは
stty
コマンドの
imode
オプションによって指定します。
8-bit コード → 1バイトの半角カナ・コード
入力された 8-bit データを1バイトのカナ文字として,アプリケーションに渡すには次のように設定します。 ただし1バイトのカナ文字をサポートしていない DEC 漢字コードがアプリケーションコードに設定されているときにかぎり,このコードが表す1バイトのカナ文字を対応する2バイトのカタカナのコードに変換します。
% stty imode hankaku
8-bit コード → 2バイトの全角ひらがなコード
入力された1バイトの 8-bit データが表すカナ文字を2バイトのひらがなコードへ変換するには,stty
コマンドを使用して次のように指定します。
% stty imode hiragana
8-bit コード → 2バイトの全角カタカナ・コード
入力された1バイトの 8-bit データが表すカナ文字を2バイトのカタカナ・コードへ変換するには,stty コマンドを使用して次のように指定します。
% stty imode katakana
8-bit コード → 複数バイト文字の一部
端末コードに DEC 漢字コードが設定されている場合,入力された1バイトの 8-bit データを漢字コードの一部として扱うためには,stty コマンドを使用して次のように指定します。
% stty imode kanji
現在の端末ドライバの設定状態を表示するには,
stty
(1)
% stty atty disc;speed 9600 baud; -parity hupcl erase = ^? brkint -inpck -istrip icrnl -ixany onlcr echo echoe echok imode=hiragana tcode=dec acode=deckanji %
表示された各項目は
stty
(1)stty
コマンドのオプションについては,
stty
(1)
stty
(1)stty
(1)2.6 ファイル・コードの変換
Tru64 UNIX
は,
iconv
(1)iconv
(1)
iconv -f
入力コード-t
出力コード ファイル名 ...
iconv
(1)表 2-7: iconv で指定可能なコードセット名
コードセット名 | 対応するニーモニック |
DEC 漢字 | deckanji |
Super DEC 漢字 | sdeckanji |
日本語 EUC | eucJP |
シフト JIS | SJIS |
7-bit JIS | JIS7 |
7-bit JIS [脚注 5] | jiskanji7 |
ISO-2022-JP 日本語メール・コード | ISO-2022-JP |
ISO-2022-JP 拡張日本語メール・コード | ISO-2022-JPext |
UCS-4 | UCS-4 |
UCS-2 | UCS-2 |
UTF-8 | UTF-8 |
たとえばシフト JIS を使用したテキスト・ファイル foobar.txt を Super DEC 漢字のテキスト・ファイル foobar.sdec に変換するには,コマンド行上で次のように指定します。
% iconv -f SJIS -t sdeckanji foobar.txt >foobar.sdec
各コードセットのユーザ定義文字領域はそれぞれ異なります。
iconv
でコード変換を行うときには,ユーザ定義文字の文字コードに割当てられるコードの値も変換されますので注意が必要です。
各コードセットのユーザ定義文字領域と,コードセット間での文字コードの対応関係は,
udc
(5)
表 2-7
に示すコードセットに加えて,他社製汎用機で使用されているコードセットへのファイル・コード変換をサポートしています。
表 2-8: iconv で指定可能なコードセット名 (他社汎用機)
コードセット名 | 対応するニーモニック |
IBM 漢字システム文字 | ibmkanji |
富士通 JEF コード | JEF |
日立 KEIS | KEIS |
詳細については,
iconv_ibmkanji
(5)iconv_JEF
(5)iconv_KEIS
(5)2.7 メッセージ・カタログ
プログラムは,ユーザとの対話のために実行中に様々なメッセージを出力します。 従来のソフトウェアの多くは,メッセージ文字列がプログラム中に埋め込まれていたため,実行環境に合わせて出力内容を変えることはできませんでした。
Tru64 UNIX の国際化されたコマンドやライブラリは,メッセージ文字列をプログラムの中に埋め込むのではなく,メッセージ文字列を記録したファイルを実行時に参照し,その内容をメッセージとして出力します [脚注 6] 。 このように,実行時にファイルを参照して必要なメッセージを出力する機構や,そのファイルのことをメッセージ・カタログと呼びます。
Tru64 UNIX
では,インストール時に日本語ロケール用のメッセージ・カタログをロケール名で指定される漢字コードごとに
表 2-9
に示すディレクトリに格納します
[脚注 7]
。
表 2-9: 日本語メッセージ・カタログのあるディレクトリ
漢字コード | メッセージ・カタログが置かれるディレクトリ |
日本語 EUC | /usr/lib/nls/msg/ja_JP |
DEC 漢字 | /usr/lib/nls/msg/ja_JP.deckanji |
Super DEC 漢字 | /usr/lib/nls/msg/ja_JP.sdeckanji |
日本語 EUC | /usr/lib/nls/msg/ja_JP.eucJP |
シフト JIS | /usr/lib/nls/msg/ja_JP.SJIS |
UTF-8 | /usr/lib/nls/msg/ja_JP.UTF-8 |
Tru64 UNIX
では,日本語に対応したコマンド,ライブラリについて日本語リファンレス・ページを提供しています。
リファレンス・ページは,man
コマンドでオンライン上で参照するドキュメントです。
コマンド行から次のように
man
コマンドを実行すると,指定したタイトルのドキュメントが端末の画面上に出力されます。
% man 1 title
ここで第1引数の 1 は,リファレンス・ページのセクション番号です。
リファレンス・ページは,カテゴリごとに
表 2-10
のようなセクションに分類されています。
表 2-10: リファンレンス・ページのセクション番号
内容の分類 | 対応するセクション番号 |
コマンド | 1 |
システム・コール | 2 |
ライブラリ・ルーチン | 3 |
ファイル・フォーマット | 4 |
nroff のマクロなど | 5 |
その他 | 6 |
スペシャル・ファイル | 7 |
システム管理 | 8 |
環境変数 LANG が日本語用に設定されている場合,
man
(1)/usr/share/ja_JP.deckanji/man
) を最初に検索し,日本語リファレンス・ページを表示します。
ただし,環境変数 LANG が ja_JP.SJIS に設定されている場合は,/usr/share/ja_JP.eucJP/man
ディレクトリを探索し,コードセット・コンバータによって SJIS フォーマットに変換されます。
Tru64 UNIX
で提供される英語版リファレンス・ページを参照する必要があるとき
は,man
コマンドの
-M
オプションを次のように使います。
% man -M /usr/share/man タイトル
man
コマンドについての詳細は,リファレンス・ページ
man
(1)