我想要一个可以将 .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文件吗?
答案 0 :(得分:4)
您可以使用exec()
或类似名称运行msgfmt。我不知道是否有以PHP为单位的方法。
答案 1 :(得分:2)
我没有尝试过,但看起来PEAR package可能会对您有所帮助。它没有维护,但也许你可以成为新的维护者?
如果您可以阅读Python,那么您可以尝试将their msgfmt.py
脚本转换为PHP。它只有200行左右。