3

.po(ポータブルオブジェクト)を.mo(マシンオブジェクト)ファイルに変換できるPHPスクリプトが必要ですか?PHPで利用できるスクリプトはありますか?

             byte
              +------------------------------------------+
           0  | magic number = 0x950412de                |
              |                                          |
           4  | file format revision = 0                 |
              |                                          |
           8  | number of strings                        |  == N
              |                                          |
          12  | offset of table with original strings    |  == O
              |                                          |
          16  | offset of table with translation strings |  == T
              |                                          |
          20  | size of hashing table                    |  == S
              |                                          |
          24  | offset of hashing table                  |  == H
              |                                          |
              .                                          .
              .    (possibly more entries later)         .
              .                                          .
              |                                          |
           O  | length & offset 0th string  ----------------.
       O + 8  | length & offset 1st string  ------------------.
               ...                                    ...   | |
 O + ((N-1)*8)| length & offset (N-1)th string           |  | |
              |                                          |  | |
           T  | length & offset 0th translation  ---------------.
       T + 8  | length & offset 1st translation  -----------------.
               ...                                    ...   | | | |
 T + ((N-1)*8)| length & offset (N-1)th translation      |  | | | |
              |                                          |  | | | |
           H  | start hash table                         |  | | | |
               ...                                    ...   | | | |
   H + S * 4  | end hash table                           |  | | | |
              |                                          |  | | | |
              | NUL terminated 0th string  <----------------' | | |
              |                                          |    | | |
              | NUL terminated 1st string  <------------------' | |
              |                                          |      | |
               ...                                    ...       | |
              |                                          |      | |
              | NUL terminated 0th translation  <---------------' |
              |                                          |        |
              | NUL terminated 1st translation  <-----------------'
              |                                          |
               ...                                    ...
              |                                          |
              +------------------------------------------+

これらの情報からmoファイルを作成できますか?

4

2 に答える 2

4

exec()または同様のものを使用してmsgfmtを実行できます。PHPのみの方法があるかどうかはわかりません。

于 2009-07-25T09:16:04.733 に答える
2

試したことはありませんが、このPEARパッケージが役立つかもしれません。それは維持されていませんが、多分あなたは新しい維持者になることができますか?

Pythonを読むことができれば、スクリプトをPHPに変換することに挑戦することができますmsgfmt.py。たった200行くらいです。

于 2009-07-25T10:19:49.973 に答える