Emacs と po-mode

Battle for Wesnothローカライズは gettext というライブラリ(という表現が正確なのかどうかわからないけど)を使って行われていて、日本語の場合は「ja.po」というテキストファイルを編集し、msgfmt というコマンドを使ってバイナリに変換することになる。ファイルの内容は単なるテキストなので、gettext のパッケージをインストールしさえすれば普通のテキストエディタだけで作業することができる。
しかし、普通のテキストエディタでは不便な場面もある。専用のエディタやプラグインなどには、未翻訳の部分を検索したり、更新によって修正が必要になった箇所を見つけたりするといった便利な機能がある。専用のエディタもいろいろあるようだけど、今回は Emacs に po-mode というモードを追加するという方法を試してみた。
Mac OS X には、Terminal で動作する emacs がもともと入っているらしいのだけど、Carbon で動作する Carbon Emacs を、日本語対応設定済み、インライン入力もできる状態にした状態でパッケージにして公開していただいているのでありがたく使わせてもらうことに。アプリケーションを適当なフォルダにコピーするだけでインストール完了。これはすばらしい。
まずは、モードファイルを使わずに編集してみる。キーバインドがわからず、何をするにも試行錯誤の連続だが、問題なく使えそうだ。
そして po-mode。gettext のソースの中(gettext-tools/misc フォルダ)に po-mode.el というファイルがあるので、これを Emacs.app の中の、Contents/Resources/site-lisp フォルダへコピーする。そして、Usage of po-mode を参考に、~/.emacs を編集。これで、ja.po を開くと、自動的に po-mode になる。
モードがちゃんと変わったのかどうか見た目にわからずちょっと戸惑ったのだけど、よく見ればメニューバーに「PO」というメニューがあらわれていて、これでモードが変わったことがわかる。このメニューの中には、po ファイルを編集する上で便利な機能がまとめられている(もちろん、メニューから選ぶのではなくてショートカットキーも使える)。
po-mode では編集方法が通常とはまったく違い、編集したいところで enter キーを押すことによって、翻訳テキストを入力することができる。最初これがわからず、無理矢理入力しようとして怒られたり、文字を消そうと思って delete キーを押したらファジーになってしまったりして一人で混乱してしまった。
期待していた機能は、ファジーや未翻訳部分の検索くらいだったのだけど、文字列が使われている箇所を検索してくれる機能や、po ファイルの更新日時を自動的に更新してくれる機能なんかもあってかなり便利そうだ。これならもっと早く試してみればよかった。Emacs Carbon 自体の起動に若干時間がかかるという点(と、まだ操作に慣れていないという点もあるか)を除けば、満足度の高いツールだ。