Differences between revisions 37 and 38
Revision 37 as of 2006-12-31 15:54:11
Size: 15335
Editor: OsamuAoki
Comment:
Revision 38 as of 2007-01-02 11:08:05
Size: 15569
Editor: OsamuAoki
Comment:
Deletions are marked like this. Additions are marked like this.
Line 68: Line 68:
 || UTF-8 || 最近の主流、多国語対応 ||
 || eucJP || 昔のUNIXの標準、日本語のみ対応 ||
 || Shift-JP || 昔のMicrosoftの標準、日本語のみ対応 ||
 || ISO-2022-JP || 日本語e-mailの主流、7-bitコードのみ、日本語のみ対応 ||
 || ISO-8859-1 || 昔の西欧の主流、Ascii+西欧の文字対応、8ビット ||
 || ASCII || 米国の主流、7ビット ||
 || UTF-8 || [http://ja.wikipedia.org/wiki/UTF-8 最近の主流、多国語対応] ||
 || eucJP || [http://ja.wikipedia.org/wiki/EUC-JP 昔のUNIXの標準、日本語のみ対応] ||
 || Shift-JIS || [http://ja.wikipedia.org/wiki/Shift-jis 昔のMicrosoftの標準、日本語のみ対応] ||
 || ISO-2022-JP || [http://ja.wikipedia.org/wiki/ISO_2022 日本語e-mailの主流、7-bitコードのみ、日本語のみ対応] ||
 || ISO-8859-1 || [http://en.wikipedia.org/wiki/ISO_8859 昔の西欧の主流、Ascii+西欧の文字対応、8ビット] ||
 || ASCII || [http://en.wikipedia.org/wiki/Ascii 米国の主流、7ビット] ||

[:JapaneseEnvironmentE: (English)] [:OsamuAoki: Wiki links]

日本語環境

Debianのetchでの日本語環境設定について記します。皆さんの設定の参考にしてください。(他の非西欧言語を使う際にも参考になるでしょう。)

細かいコマンド自体のの説明はここではしないので、manpageを参考にしてください。

<!> 日本語環境のみによらず多言語環境をスムーズ設定・利用するには、etchでは必ずUTF-8のエンコーディング使うロケールを選ぶようにしてください。

日本語環境に必要なパッケージ

以下に日本語環境整備に必要とされるパーケージをリストします。(日本語以外は言語環境taskを参考に探してください。)

  • 日本語入力
    • scim系を選んだ場合に導入するパッケージ(私はこれを使ってます)
      • im-switch
      • scimと自動的に導入される以下のパッケージ
        • libscim8c2a他
      • scim-anthyと自動的に導入される以下のパッケージ
        • anthy
        • libanthy0
        • libscim8c2a他
    • uim系を選んだ場合に導入するパッケージ
      • im-switch
      • uimと自動的に導入される以下のパッケージ
        • uim-common
        • uim-utils
        • uim-gtk2.0
        • uim-xim
        • uim-fep(コンソールで使う際のみ必要)
      • uim-anthyと自動的に導入される以下のパッケージ
        • anthy
        • libanthy0
        • linuim3
        • uim-common
        • uim-utils
  • 日本語フォント
    • unifont
    • ttf-kochi-gothic
    • ttf-kochi-mincho
    • ttf-vlgothic
  • 日本語メッセージ
    • manpages-ja
    • manpages-ja-dev
    • openoffice.org-help-ja
    • openoffice.org-l10n-ja
    • iceweasel-l10n-ja
      • (firefox-locale-ja is old and should be removed)
    • kde-i18n-ja (KDEを導入した際のみ必要)
  • 日本語でのドキュメンテーション
    • doc-linux-ja-text
    • doc-linux-ja-html
  • 日本語関連ツール
    • lv
    • nkf
    • jfbterm

localeとは

LANG環境変数にあたえ言語環境を定義する、localeですがxx_YY.ZZZZと言う構造なっていて以下の意味があります。

  • xx

    言語

    yy

    地域 

    zzzz

    エンコーディング

日本の言語地域はja_JPで、これだけだとデフォールトの昔の ja_JP.eucJPの意味になります。 米国(ある意味で一番標準でサポートが良い)の言語地域はen_USで、これだけだとデフォールトの昔の en_US.ISO8859-1の意味になります。

ちなみに日本に御縁のあるエンコードシステムですが:

これらはうまく工夫されていて、ASCIIのコード範囲に収まる文字だったら上記どのエンコーディング体系でも同じです。

もしja_JP.UTF-8のlocaleをなんらかの理由でまだ作成設定してないなら

$ sudo dpkg-reconfigure locales

をして作成してください。これが無ければUTF-8の日本語環境は無理です。

言語関連の環境変数の設定

各種プログラムの挙動は言語関連の環境変数(LANGやLC_ALL等)への設定によって変わります。

ここで注意が必要なのは、一部のプログラムはPAM(Pluggable Authentication Modules)を使っているので、PAMでの環境変数設定が優先するということです。

etchの標準日本語インストール(2006年11月現在のRC1の前のバージョンの情報)では、日本語でのインストールを選ぶと/etc/environment/etc/defaults/localeというファイルともに

LANG="ja_JP.UTF-8"

という内容を定義していると思います。

通常X環境だと気にならないのですがクラシュしたりしてコンソールを使う際やsuを使うときにも日本語なので私は嫌いです。そういうときは文字化けのない一番確実な環境がいいので、私は日本語表示しない設定にコンソールではすべくこれらのファイルのLANG定義内容を:

LANG="en_US.UTF-8"

としています。(フレームバッファーコンソールやkon2をuim-fepemacsとでUTF-8環境下でうまく動かす方はこれは必要ないかもしれません。基本的に私の趣味の問題です。こうしなくても日本語環境はできます。)

ただこのままだとディスプレーマネージャーのgdmが英語です。X自体はこれでもLanguageでJapaneseを選べばちゃんと日本語でのメニュー等の表示に対応できます。

でも折角ですから私はディスプレーマネージャーのgdmを日本語メニューで立ち上げています。これにはPAMを使って対応します。 まず、/etc/pam.d/gdm/etc/pam.d/gdm-autologin(このファイルはお使いになっているディスプレーマネージャー次第ですが…)の中の

auth    required        pam_env.so read_env=1 envfile=/etc/default/locale

のlocale関連の環境変数を定義する行を

auth    required        pam_env.so read_env=1 envfile=/etc/default/locale-gdm

と直します。そして/etc/defaults/locale-gdmというファイルを作り、

LANG="ja_JP.UTF-8"

という内容にします。これでGDMは日本語になります。Xの中で使われる言語(LANGの値)はGDMのメニューから選べます。だからこうしておいてもXでは英語の環境も選べます。

Debianでの日本語入力設定

Debianでの日本語入力設定はim-switchを用いるのが簡単です。

そしてさらに複雑な各日本語入力ツールチェイン固有の設定は、各日本語入力ツールチェイン付随するGUIコンフィギュレーションツールを用いて設定していきましょう。このコンフィギュレーションツールは各日本語入力のツールバーの設定アイコンをたたくか、Gnomeのツールバーのメニューで「デスクトップ」->「設定」で表示されるメニューから該当する設定ツールアイコンをたたいて設定を行います。

まず、im-switchパッケージとuimscimのどちらかの日本語入力ツールチェインパッケージをインストールします。

詳しい設定のことは、/usr/share/doc/im-switch/README.Debian.gz/usr/share/doc/scim/README.Debian.gz/usr/share/doc/uim/README.Debian.gzに英語で書いてあります。以下に要点だけを日本語にします。

<!> im-switchコマンドは、コマンドがrootから実行されたかどうかで挙動が違います。

  • SCIM系での設定を選んだ場合(セッションを使わない方法。私はこれを使ってます。)
    • scim と名の付く役に立ちそうなパッケージをインストールする。("l"をaptitudeで使って見付ける) scim, scim-anthy (Japanese), ...等。

    • ユーザーとして"im-switch -c" を実行し"scim"を選ぶ。

    • ユーザーアカウントにリログインしてXセションを更新する。
    • 入力方法やモードはGUIのツールバーを叩いて設定する。(忙しすぎる変換ツール候補表示を減らすこともできます。)
    • 起動はCTRL-SPACE
  • SCIM系での設定を選んだ場合(セッションを使う方法。)
    • scim と名の付く役に立ちそうなパッケージをインストールする。("l"をaptitudeで使って見付ける) scim, scim-anthy (Japanese), ...等。

    • ユーザーとして"im-switch -c" を実行し"scim"を選ぶ。

    • マニュアルでim-switchの環境設定ファイルからはscimプログラム自身は起動しないようにする。(こんなことするより上行で"scim-nostart"を選べば良いようにいずれしないといけませんね。)

$ cd ~/.xinput.d
$ ls -l
lrwxrwxrwx 1 osamu osamu 28 2006-11-25 00:50 ja_JP -> /etc/X11/xinit/xinput.d/scim
$ cat ja_JP | sed 's/XIM_PROGRAM=.*/XIM_PROGRAM=/;s/XIM_ARGS=.*/XIM_ARGS=/'>ja.JP.file
$ mv ja.JP.file ja.JP
  • Desktop->Preferences->Session でセッションマネージャーに"scim -d" を起動するように登録。

  • ユーザーアカウントにリログインしてXセションを更新する。
  • 入力方法やモードはGUIのツールバーを叩いて設定する。(忙しすぎる変換ツール候補表示を減らすこともできます。)
  • 起動はCTRL-SPACE
  • UIM系での設定を選んだ場合(gnome-sesseionを使うim-switchパッケージ中の説明)
    • uim と名の付く役に立ちそうなパッケージをインストールする。("l"をaptitudeで使って見付ける)uim, uim-anthy (Japanese), uim-gtk2.0, uim-xim, ...等。

    • ユーザーとして"im-switch -c" を実行し"uim"を選ぶ。

      • もし、ツールバーに状況表示したい際には、Desktop->Preferences->Session でセッションマネージャーに"uim-toolbar-gtk}" を起動するように登録。

      • もし、シストレイに状況表示したい際には、"uim-toolbar-gtk-systray"を代わりに選ぶ。
      • もし、KDEが好きな際には、"uim-toolbar-qt"を代わりに選ぶ。
    • ユーザーアカウントにリログインしてXセションを更新する。
    • 入力方法やモードはGUIのツールバーを叩いて設定する。
    • UIMの変換起動はCNTL-SPACE
    • UIMでの変換モード切替えon/offはSHIFT-SPACE(通常は、直接入力のon/offになる)

上記のUIMの設定の変化形として、セッションマネージャーに起動を登録する代わりに、shellから"uim-toolbar-gtk >/dev/null 2>dev/null &"としてツールバーを起動し、シャットダウン時に自動登録され再起動時に立ち上がるのにたよるのも方法してあります。(uim-ximが安定してからの遅延起動がうまくいくかどうかはまだテストせず。)

  • UIM系での設定を選んだ場合(セッションマネージャーを使わない環境。uimのパッケージ中にある説明と同じ。)
    • uim と名の付く役に立ちそうなパッケージをインストールする。("l"をaptitudeで使って見付ける)uim, uim-anthy (Japanese), uim-gtk2.0, uim-xim, ...等。

    • 普通はユーザーとして"im-switch -c" を実行し"uim-toolbar"を選ぶ。

      • もし、シストレイに状況表示したい際には、ユーザーとして"im-switch -c" を実行し"uim-systray"を代わりに選ぶ。

      • もし、KDEが好きな際には、ユーザーとして"im-switch -c" を実行し"uim-toolbar-qt"を代わりに選ぶ。

      • もし、なにも状態表示が入らないという際には、ユーザーとして"im-switch -c" を実行し"uim"を代わりに選ぶ。

    • ユーザーアカウントにリログインしてXセションを更新する。
    • 入力方法やモードはGUIのツールバーを叩いて設定する。
    • UIMの変換起動はCNTL-SPACE
    • UIMでの変換モード切替えon/offはSHIFT-SPACE(通常は、直接入力のon/offになる)

上記ではセッションマネージャーに頼らずツールバーが起動されます。再ログインするときなどにセッションマネージャーにもよってツールバーが起動され複数起動になる場合などは、Desktop->Preferences->Session でセッションマネージャーが"uim-toolbar-gtk" を(再)起動しないように登録するとよいです。

uim-fepパッケージを用いるとコンソールでの日本語入力ができます。(日本語表示のためのjfbtermは私は良く分かりません)そういった意味でUIMは魅力があります。

  • MODIFIERSを設定せずen_US同様の挙動を得る。

    • "im-switch -c" を実行し"none"を選ぶ。

    • ユーザーアカウントにリログインしてXセションを更新する。
  • デフォルト挙動を回復する
    • "im-switch -a" を実行する。

    • ユーザーアカウントにリログインしてXセションを更新する。
  • 設定状況の確認方法
    • "im-switch -l" を実行する。

<!> im-switchによってスタートされる入力方法はlocaleの値に依存することは注意してください。

<!> 英語環境下ででも、im-switchによって日本語等の入力できる環境をスタートできます。en_US.UTF-8環境で日本語での入力は意外と便利です。

<!> SCIMがCJK以外のlocaleで起動するようにするには~/.scim/global/etc/scim/globalにあなたがSCIMを起動したいlocaleを

/SupportedUnicodeLocales = en_US.UTF-8,en_GB.UTF_8,fr_FR.UTF-8

等と列記します。

<!> GTK_IM_MODULE変数に新規のimmoduleメカニズムを設定して使わないとと考えるかもしれませんが、現状はGTK_IM_MODULE変数にximに設定するのが最も安定するようです。詳しくは/usr/share/doc/scim/README.Debian.gzに英語で書いてあります。

各プログラムとの連携

emacsの状況

  • emacsは賢いのでいろんなエンコード体系に対応しています。それだけにその設定には気を付けてください。
  • emacsはXやFEPなどの外部ソフトに頼らない独自の日本語入力インフラが色々あるようです。(eggなど。)
  • もしXIMを経由せずに日本語入力したい際には、emacsを立ち上げる際のXMODIFIERSの値を"none"としてやればいいということです。シェルからだと:

$ XMODIFIERS=none emacs

です。このようにDebianのmenuを触るのは、/usr/share/doc/menu/htmlの手順にしたがって/etc/menuにカスタマイズした定義を置いてください。

vimの状況

  • vimも賢いのでいろんなエンコード体系に対応しています。基本はUTF-8で使うように設定には気を付けてください。特別な入力関係の設定は現在要りません。詳しくは、UTF-8環境のvimで、非UTF-8エンコーディングのファイルを扱う方法 [:UTF8vimE: (English)][:UTF8vim: (日本語)]を参照ください。