po-modeについて(自分専用メモ)

mercurial翻訳を少しお手伝いしています。Emacsのpoモードについて調べたので、メモ*1

最近のlinuxのアプリは言語に依存する部分を別ファイル形式にして、それを差し替えていろんな言語に対応できるようになっています。

.poなファイルの使い方

  • msgidとmsgstrが、"原文→訳文"のKey/Valueになっている
  • gnu gettextは、言語設定に応じてja.poなどの各国語のファイルからこのデータをロードしておく
  • いざソフトウェアが表示するときは、原文をキーにして訳文を取得し、表示

基本的には、.poな拡張子のファイルを開いたら自動的にpoモードになります(手持ちのCarbon Emacsはそうでした)。大まかな流れとしては、

  1. n/pで前後のペアに移動、または、
  2. ソースを眺めながら、メッセージ分を見つけると、それを使って.poファイル中でC-s/C-rで該当する原文を検索
  3. 訳したい原文のところで、RETを押すと編集モードへ
  4. 訳文を書いたらC-c C-c(メタモードへ戻る)
    1. 改行も打ち込んでおくこと(\nと表示される)
    2. %dなどのフォーマットは、順番を守りつつ上手く訳すこと(日本語に沿うようにフォーマットの語順を変更する方法は不明)
  5. 訳に自信がなければ、原文のところでdeleteすると、fuzzyフラグがつけられる
  6. tabを押すと、fuzzyフラグが消せる
  7. hを押すとヘルプ

くらい知っておけば、とりあえずなんとか訳せた気になれます。翻訳者、まだ足りていないと思います。これで皆さんもハッピーなホニャクライフを過ごしましょう!

*1:というか、あんまし量が多くないからと思ってメモをサボっていたら三回も同じことを調べる羽目になったのでメモ