国際化対応言語環境の利用ガイド

システム環境

この節では、ロケールの環境変数、TTY 環境の設定、32 ビットおよび 64 ビット STREAMS モジュール、および端末サポートについて説明します。

ロケールの環境変数

システムに en_US.UTF-8 がインストールされていることを確認してください。さまざまなカテゴリの現在のロケール設定を調べるには、locale ユーティリティを使用します。

system% locale 
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_ALL=

en_US.UTF-8 ロケールデスクトップ環境を使用するには、まずロケールを選択します。TTY 環境で、まず環境変数 LANGen_US.UTF-8 に設定してこのロケールを選択します。C シェルの例を以下に示します。

system% setenv LANG en_US.UTF-8

LC_ALLLC_COLLATELC_CTYPELC_MESSAGESLC_NUMERICLC_MONETARYLC_TIME カテゴリには、何も設定されていないか、en_US.UTF-8 が設定されている必要があります。これらのカテゴリに値が設定されていると、その値が、それより優先度の低い LANG 環境変数の値の代わりに使用されます。環境変数の階層については、setlocale(3C) のマニュアルページを参照してください。

また、CDE ログイン画面の「オプション」->「言語」メニューで en_US.UTF-8 を選択することにより、en_US.UTF-8 環境を起動することもできます。

TTY 環境の設定

使用している端末や端末エミュレータによっては、コードセット固有の一定の STREAMS モジュールをストリームにプッシュする必要がある場合があります。

STREAMS モジュールの詳細および一般的なストリームについては、『STREAM Programming Guide』を参照してください。

次の表に、端末環境で en_US.UTF-8 ロケールによってサポートされる 64 ビット STREAMS モジュールを示します。詳細は、『Solaris 64 ビット 開発ガイド』を参照してください。

表 5–12 en_US.UTF-8 によりサポートされる STREAMS モジュール

32 ビット STREAMS モジュール 

説明 

/usr/kernel/strmod/sparcv9/u8lat1

UTF-8ISO8859-1 (西ヨーロッパ) のコード変換 STREAMS モジュール

/usr/kernel/strmod/sparcv9/u8lat2

UTF-8ISO8859-2 (東ヨーロッパ) のコード変換 STREAMS モジュール

/usr/kernel/strmod/sparcv9/u8koi8

UTF-8KOI8-R (キリル文字) のコード変換 STREAMS モジュール


注 –

Solaris 10 リリース以降、SPARC sun4u プラットフォーム用の 32 ビットカーネルはサポートされません。表 5–12 は、x86 プラットフォーム用の 32 ビットカーネルにだけ適用されます。詳細は、『Solaris 10 ご使用にあたって』を参照してください。


次の表に、en_US.UTF-8によってサポートされる 64 ビット STREAMS モジュールを示します。

表 5–13 en_US.UTF-8 によりサポートされる 64 ビット STREAMS モジュール

64 ビット STREAMS モジュール 

説明 

/usr/kernel/strmod/sparcv9/u8lat1

UTF-8ISO8859-1 (西ヨーロッパ) のコード変換 STREAMS モジュール

/usr/kernel/strmod/sparcv9/u8lat2

UTF-8ISO8859-2 (東ヨーロッパ) のコード変換 STREAMS モジュール

/usr/kernel/strmod/sparcv9/u8koi8

UTF-8KOI8-R (キリル文字) のコード変換 STREAMS モジュール

カーネルに STREAMS モジュールをロードする方法
  1. スーパーユーザーとして、Solaris システムが 64 ビットと 32 ビットのどちらであるかを判断します。

    system# isainfo -v
    
    • 64 ビットの Solaris システムは、次の情報を返します。

      64-bit sparcv9 applications
      32-bit sparc applications
    • 32 ビットの Solaris システムは、次の情報を返します。

      32-bit sparc applications
    • 32 ビットの x86 システムは、次の情報を返します。

      32-bit i386 applications
  2. システムにすでに STREAMS モジュールがロードされていないかを確認します。

    system# modinfo | grep modulename
    

    u8lat1 などの STREAMS モジュールがすでにインストールされている場合は、出力は次のようになります。

    system# modinfo | grep u8lat1
    89 ff798000  4b13  18   1  u8lat1 (UTF-8 <--> ISO 8859-1 module)
  3. モジュールがロードされていない場合は、modload(1M) コマンドを使用してモジュールをロードします。

    • 32 ビットのシステムの場合、次のように入力します。

      system# modload /usr/kernel/strmod/u8lat1
      
    • 64 ビットのシステムの場合、次のように入力します。

      system# modload /usr/kernel/strmod/sparcv9/u8lat1
      

      適切な u8lat1 STREAMS モジュールがカーネルにロードされ、モジュールをストリームにプッシュできるようになります。

カーネルから STREAMS モジュールをアンロードする方法
  1. スーパーユーザーとして、カーネルにモジュールがロードされていることを確認します。

    u8lat1 がロードされていることを確認するには、次のように入力します。

    system# modinfo | grep u8lat1
    89 ff798000  4b13  18   1  u8lat1 (UTF-8 <--> ISO 8859-1 module)
  2. modunload(1M) コマンドを使用して、カーネルをアンロードします。

    u8lat1 モジュールをアンロードするには、次のように入力します。

    system# modunload -i 89
    
Latin-2 端末および STREAMS モジュールを設定する方法
  1. strchg(1M) を次のように使用します (2 つめのコマンド行)。

    system% cat > tmp/mystreams 
    ttcompat
    ldterm
    u8lat1
    ptem
    ^D
    system% strchg -f /tmp/mystreams
    

    strchg(1) を使用する場合、スーパーユーザーかデバイスの所有者としてログインしていることを確認します。

  2. strconf コマンドを実行して、現在の構成を確認します。

    system% strconf
    ttcompat
    ldterm
    u8lat1
    ptem
    pts
    system%
  3. strchg コマンドを実行して、元の構成に戻します。

    system% cat > /tmp/orgstreams
    ttcompat
    ldterm
    ptem
    ^D
    system% strchg -f /tmp/orgstreams
    

UTF-8 文字の入出力が可能な dttermxterm、および端末

Solaris OS の旧リリースとは異なり、UTF-8 コードセットの入出力をサポートする dttermxterm 端末エミュレータおよびその他の端末では、ストリームに追加 STREAMS モジュールを置く必要はありません。stty(1) ユーティリティを使用して端末環境を設定した場合は、ldterm モジュールはコードセットに依存せず、Unicode/UTF-8 をサポートします。

Unicode ロケールの端末環境を設定するには、stty(1) ユーティリティを使用します。

system% /bin/stty defeucw

現在の設定を照会する場合は、次のように stty-a オプションを指定します。

system% /bin/stty -a

注 –

/usr/ucb/stty は国際化されていないので、代わりに /bin/stty を使ってください。


Latin-1、Latin-2、および KOI8-R の端末サポート

Latin-1 (ISO8859-1)、Latin-2 (ISO8859-2)、または KOI8-R だけをサポートする端末の場合、STREAMS は次のように構成されている必要があります。

head <-> ttcompat <->  ldterm <->  u8lat1 <-> TTY

これは Latin-1 をサポートする端末用の構成です。Latin-2 端末の場合は、STREAMS モジュール u8lat1u8lat2 に置き換えます。KOI8-R 端末の場合は、このモジュールを u8koi8 に置き換えます。

STREAMS モジュールがすでにカーネルにロードされていることを確認してください。

~/.cshrc への設定の保存

必要な STREAMS モジュールがカーネルにロードされたら、以下の行を .cshrc ファイル (C シェルの場合) に保存すると便利です。

setenv LANG en_US.UTF-8
if ($?USER != 0 && $?prompt != 0) then
     cat >! /tmp/mystreams$$ << _EOF
     ttcompat
     ldtterm
     u8lat1
     ptem
_EOF
     /bin/strchg -f /tmp/mystreams$$
     /bin/rm -f /tmp/mystreams$$
     /bin/stty cs8 -istrip defeucw
endif

.cshrc ファイルにこれらの行がすでにある場合は、STREAMS モジュールを使用するたびにこれらのコマンドを入力する必要はありません。2 つめの _EOF は行の先頭の位置になければなりません。