2010-12-01 1 views
11

Cプログラムで最もよく使われているテキストエントリの一部を翻訳しようとしました gettextを使用していましたが、少し掘り下げたときに ビットがすべての異なるファイルフォーマットについて混乱しました いくつかの重複があるようです機能性?異なるgettextファイル形式は何のために使用されていますか?

私は、異なるフォーマット

  • .po
  • .pot
  • .mo
  • .gmo
  • の概要を取得たい(私は除外した他のフォーマットを?)

と学ぶ

  • 通常のワークフローとは何ですか?
  • このファイル形式には何が含まれていますか?
  • 通常、どのツールが使用されていますか?
  • どのような「反対の」方向変換が可能ですか(1)?

(1) Iはmsgunfmtが.POする.moのへ変換することができることを知っているが、.moというが 終端形式であるので、私は、これは、可逆プロセスではないと仮定する。私。 hello1.moからhello2.poに変換してからhello2.po をhello3.moに変換すると、hello1.moとhello3.moに同じ言語文字列 が含まれていますが、いくつかのメタ情報が失われることが想定されます 道に沿って、右か?

答えて

12

私が間違っている可能が、可能性:

.POT - 人間が読めるのgettextテンプレートファイル - あなたは(人?)翻訳者に与えるだろう何これ。

.po - 人間が読めるgettextは、POTに基づいて変換されたファイルです。これは翻訳者から返されたものです。

.mo - 実際の翻訳を行う際にPHPが使用するマシンで判読可能なコード(バイトコード?)。このフォーマットはあなたがPHPに与えるものです。ほとんどのプログラムで理解できる汎用フォーマットですが、gnu gettextのすべての機能をサポートしているわけではありません。これは、gmoが配置される場所です。

.gmo - .gmoで終わるファイルは、これらのファイルがGNU形式を使用していることがわかっている場合、実際にはMOファイルです。 > .poファイル - - > .moの

more info

P.S.あなたは.POTを処理するためにpoeditを使用することができます


プログラマだけがPOやXMLのようなフォーマットを人間が読めるように呼ぶだろう。 - あなたはおそらく.moを.poに変換する必要はありません...まあ...少なくともこれは私にとっては一般的なシナリオのようには見えません:)

+0

ありがとう。 –

+1

Upvoteは「プログラマだけがPOやXMLのような書式を人間が読めるものと呼んでいます」と忘れてしまいましたが、 – jforberg

関連する問題