「入門TortoiseHg+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 には環境変数設定が伝播しないので、 実行された処理が表示するメッセージは、 日本語化されません。

メッセージ出力の言語を変更する場合の、 ロケール系環境変数の優先順位は以下のようになっています。

  1. LANGUAGE
  2. LC_ALL
  3. LC_MESSAGES
  4. LANG

LANGLANGUAGE であれば、 "ja" のような『言語名』設定のみでも十分なのですが、 LC_ALLLC_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.
$
Mercurial 実行限定のロケール設定

メッセージファイルの事後作成

例えば、以下の様なケースで:

インストール時点において 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のバージョン番号等は、 環境に応じて適宜読み替えてください)。

メッセージファイルの手動作成/インストールは、以下の手順で行います:

  1. GNU gettext をインストールしておく
  2. 対応する版の Mercurial ソースを入手
  3. ソースのルートで "python setup.py build_mo" を実行
  4. 作成された *.mo ファイルが格納されている "mercurial/locale" 配下を、Mercurial のインストール先にコピー
  5. メッセージが日本語化されていることを確認

次節「ローカルリポジトリ」へ