MAP | TOP > 工房「藤車」 > SCM メモ > Mercurial の利用 > 言語設定 | << | >> |
コマンドラインから Mercurial を使用する
(= "hg" コマンドを実行する) 場合、
事前に言語設定を行うことで、
エラー/警告メッセージやオンラインヘルプ
("hg help
" 機能)
出力を日本語化することが可能です。
なお、
外部ライブラリから得られるエラーメッセージ
(例: ファイル不在時の "No such file or directory
" 等)
に関しては、
Mercurial のメッセージ翻訳の範疇から外れるため、
言語設定に関わりなく英語で表示されますので注意してください。
"hg version
" を実行した際に、
日本語でバージョン情報が表示されたなら、
それ以上の言語設定の必要性はありません。
$ hg version Mercurial - 分散構成管理ツール(バージョン 2.1) (詳細は http://mercurial.selenic.com を参照のこと) Copyright (C) 2005-2012 Matt Mackall 他 本製品はフリーソフトウェアです。 頒布条件に関しては同梱されるライセンス条項をお読みください。 市場適合性や特定用途への可否を含め、 本製品は無保証です。 $
なお、文字コード設定が不適切な場合は、 日本語のバージョン情報が文字化け等により正しく表示されませんので、 文字コード設定の見直しを行ってください。
メッセージ等を日本語表示するためには、 ロケール系環境変数の設定を行う必要があります。
注意: 環境変数設定を適切に行っても、 メッセージが日本語化されない場合は、 後述する『メッセージファイルの事後作成』も参照してみてください。
備考: Windows 環境での環境変数設定は、 『コントロールパネル』 ⇒ 『システム』 ⇒ 『詳細設定』 ⇒ 『環境変数』経由等で実施してください。
コマンドプロンプト等で設定した場合、 Windows メニューやエクスプローラ経由等で起動した TortoiseHg には環境変数設定が伝播しないので、 実行された処理が表示するメッセージは、 日本語化されません。
メッセージ出力の言語を変更する場合の、 ロケール系環境変数の優先順位は以下のようになっています。
LANG
や LANGUAGE
であれば、
"ja
" のような『言語名』設定のみでも十分なのですが、
LC_ALL
や LC_MESSAGES
を設定する場合は、
以下の形式の各構成要素を正しく選択する必要があります
(環境依存で省略可能)。
『言語名』 + "_" + 『国名』 + "." + 『文字コード』
なお、ロケール系環境変数を設定した場合、 ロケール対応している他のコマンドの挙動 (出力メッセージ/文字コード等) も変化してしまいますので、 新たに設定する場合は注意してください。
Unix 系環境で bash を使用している場合であれば、 以下のような関数定義を行う事で、 hg コマンド実行時のみ一時的に環境変数を設定する、 という方法もあります。
$ hg() { ( export LANGUAGE=ja; command hg "$@"; ) }
$ hg version
Mercurial - 分散構成管理ツール(バージョン 2.1)
(詳細は http://mercurial.selenic.com を参照のこと)
Copyright (C) 2005-2012 Matt Mackall 他
本製品はフリーソフトウェアです。
頒布条件に関しては同梱されるライセンス条項をお読みください。
市場適合性や特定用途への可否を含め、 本製品は無保証です。
$ /full/path/to/hg version
Mercurial Distributed SCM (version 2.1)
(see http://mercurial.selenic.com for more information)
Copyright (C) 2005-2012 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$
例えば、以下の様なケースで:
インストール時点において GNU gettext (具体的には msgfmt コマンド) が利用可能な状況に無い場合は、 日本語メッセージファイルが作成されず、 結果として、 環境変数設定を適切に行ってもメッセージは日本語化されません。 事後的に GNU gettext を導入しても、 この状況は改善されません。
この場合は、GNU gettext をインストールした上で、 以下の様な対処をすることで、 状況が改善される筈です。
備考: MacOS 上で Homebrew を使用している場合、 GNU gettext の導入には注意が必要です。 詳細は、『入門 TortoiseHg+Mercurial』に関する補足情報を参照してください。
また、 Linux 系パッケージの中には、 各国語のメッセージファイルを含まないものもある模様です。
パッケージ管理機能を使用して Mercurial の
『パッケージに含まれるファイルの一覧』を得た上で、
"mercurial/locale/ja/LC_MESSAGES/hg.mo
"
に該当するものが含まれているか確認してみてください。
含まれていない場合は、 やはりメッセージファイルの手動作成等が必要です。
注意:
バージョン2.5以降のMercurialに関しては、
日本語MLにおけるリリース報告の際に、
日本語向けhg.mo
ファイルも、
一緒に添付するようにします
(公式Twitterアカウントでもアナウンスします)
。
こちらからhg.mo
ファイルを入手した場合は、
インストール先の
"lib/python2.6/site-packages/mercurial/locale/ja/LC_MESSAGES/hg.mo
"
に、
こののファイルを配置してください(Pythonのバージョン番号等は、
環境に応じて適宜読み替えてください)。
メッセージファイルの手動作成/インストールは、以下の手順で行います:
python setup.py build_mo
" を実行
mercurial/locale
" 配下を、Mercurial のインストール先にコピー
MAP | TOP > 工房「藤車」 > SCM メモ > Mercurial の利用 > 言語設定 | << | >> |