気の向くままに辿るIT/ICT/IoT
UNIX/Linux

Cygwin 日本語対応

ホーム前へ次へ
Cygwinの日本語対応ってどうやるの?

Cygwin 日本語対応

Cygwinの日本語対応

 Windows環境でUNIX/Linux/BSD風のコンパイル環境を利用できるフリーソフトウェアCygwinで日本語を利用するに当たり、日本語パッケージのインストールと日本語環境設定の2つを行うと日本語対応できるでしょう。

日本語環境対応の為のダウンロード

 まず、日本語環境対応する為にmanファイルなどをインストールしなかった場合は、配布サイトURL、例えば、

 http://cygwin-je.sourceforge.jp 

を確認しつつ、Cygwinのセットアップを参考に

 setup.exe 

を起動して

 Install from Internet 

を選択して[次へ]ボタンを順次クリックしてダウンロードサイト選択画面へ。

 ダウンロードサイト選択画面まで行ったら一番下のテキストボックスに配布サイトURLのパスを入力して[Add]ボタンをクリックしたら一覧画面の一番下に選択された状態で表示されるはず(されてなければ選択)して[次へ]ボタンをクリック。

 [Select Packages]というパッケージ選択画面でトグルボタンで[Keep]を選択します(全パッケージを更新・インストールしない、インストールしたいパッケージだけを選べる状態になり、選んだ際必然的に依存するパッケージは自動選択されます)。

 必要なパッケージの[Keep]を[Install]に変更されるように矢印がクルっと回ってるマークをクリック。

 ここで[次へ]ボタンをクリックするとインストールするパッケージのボリュームにもよりますが、追加だけなら初回とは比べ物にならないくらいあっという間に終わるはずです。

 もちろん、Download Without Installingでインストール後、一度setup.exeを閉じ、再度開いてInstall from Local Directoryで別途インストールしても構いません。

環境変数MANPATH設定

 manの日本語版などをインストールした場合で日本語表示が反映されない場合には、環境変数MANPATHに日本語manファイルがある場所が探索パスとして追加されていない可能性があるので設定ファイル(bashなら.bashrcなど)で追加設定し、(shなら.ドットコマンド、bashならsourceコマンドで.bashrcなどを読み込むか)、再ログインすれば、manコマンドで調べた結果が日本語で表示されると思います。

 export MANPATH=$MANPATH:... 

# shell設定ファイル内で既定のMANPATHにコロン区切りでパスを指定

シェル設定ファイルによる日本語環境設定

 次にシステムやshellにおける共通の環境設定としてbash設定ファイルによる日本語環境対応を参考に設定します。

 リンク先の設定をすれば、shellログイン後のls -lの結果表示の「合計」やmoreの「(--続ける--)」、既存の日本語文字で書かれたファイルのcat結果、vi/vimは文字化けなく表示されるようになると思います。

 但し、euc以外の文字コードに設定する場合には、コマンドで表示されるエラーメッセージ含むメッセージなど、それでも、まだ文字化けするケースがあるものと思われます。

メッセージカタログ po/mo形式

 これはソフトウェア国際化の過程に起因するものです。

 ソフトウェアが異なる言語圏で開発されたものである場合でも往々にしてメニューや出力メッセージが現地語であれば、利用に当たり、仮に外国語アレルギーでも、ほとんど違和感がないことも多く、特に世界中でサポート万全なオープンソースというのは、あっても相当に限られることや、そうでなくても逸早くリリースできるメリットなどから昨今のソフトウェアは、利用する現地でその部分に絞って翻訳する(特定の書式内で出力メッセージの該当箇所に翻訳した現地語を記述しておく)のが一般的です。

 特定の書式とは、po形式という設定ファイルフォーマットであり、実際にメッセージ出力時に参照されるのが、そのpo形式のメッセージカタログ(拡張子.po)をバイナリ化したメッセージカタログ(拡張子.mo/mo形式)であり、そのファイル自体の文字エンコードとファイル内で設定されている文字コードがeuc(charset=euc-jp)、一部UTF-8(charset=utf-8)であることに起因しています。

日本語対応の2つの手順

 shellにおける日本語対応の手順には2つあり、1つは、この要因となるメッセージカタログを含むディレクトリのコピーとそのコピー内メッセージカタログの修正、もう1つは、コピーしたディレクトリを探索パスとして指定する環境変数NLSPATHへの追加登録です。

 環境変数NLSPATHへの追加登録をしないとメッセージカタログの編集が完了しても日本語表示されるはずのメッセージが英語表示のままだったり、文字化けしたりと状況が変わりません。

日本語対応の手順

 そこで日本語対応する際の手順としては、/usr/share/localeなどのディレクトリにあるjaディレクトリを環境変数LANGに設定する文字コード名として以下同じディレクトリ及びファイル構成をコピー・作成し、各LC_MESSAGESディレクトリにある.moファイル内のcharsetに設定された値とそのファイル自体のファイルエンコーディング等を環境変数LANGの値とマッチするような設定値に置換します。

 つまり、/usr/share/locale/jaをコピーして例えば/usr/share/locale/ja_JP.SJISを新たに作成して/usr/share/locale/ja_JP.SJIS側の.moファイルを編集するということです。

 そして追加編集したディレクトリをbashなら~/.bashrcなどで環境変数NLSPATHに追加登録し、(shなら.ドットコマンド、bashならsourceコマンドで.bashrcなどを読み込むか)、再ログインします。

日本語対応の実装

 長くなってきたので具体的な作業、簡易scriptによるチェック、コマンドラインからの編集・確認方法、一連の作業を自動化する方法、環境変数NLSPATHに追加登録方法などについてCygwin日本語対応と方法で書きます。

LINK

ホーム前へ次へ