.po to .mo convertor in php?

青春壹個敷衍的年華 提交于 2019-12-09 03:42:29

问题


i want a PHP script which can convert .po(Portable Object) as .mo(Machine Object) file? is any script available in 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  <-----------------'
              |                                          |
               ...                                    ...
              |                                          |
              +------------------------------------------+

can i make a mo file from these information?


回答1:


I have not tried it, but it looks like this PEAR package might help you. It is unmaintained, but maybe you can be the new maintainer?

If you can read Python, then you can take a stab at converting their msgfmt.py script to PHP. It's only 200 lines or so.




回答2:


You could run msgfmt using exec() or similar. I don't know if there is a PHP-only way to do it.



来源:https://stackoverflow.com/questions/1181681/po-to-mo-convertor-in-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!