2011-12-23 47 views
0

我们的程序的翻译字符串存储在服务器的.po/.mo文件中。 我们需要将翻译导出到XML。 看来,自然的方式是编写打印字符串标签这样如何枚举locale域中的所有字符串键?

<s key="apple" value="яблоко"/> 
<s key="orange" value="апельсин"/> 

这是很容易,当你知道的.po /的.mo文件的所有键小PHP脚本。 设置域,设置语言环境并使用gettext()。

但我还没有找到一个函数来枚举域中的所有字符串。 我能想到的唯一选择是手动列出所有翻译键以完成工作。 我懒得这份工作。

有没有办法来枚举域中的所有翻译键?

+1

一个正则表达式解析我会寻找像“解析PO文件”的事情。我敢打赌大量的脚本存在。 – goat 2011-12-23 19:18:02

+1

请不要标记您的标题。我们现在还没有上世纪90年代。 – 2011-12-24 01:19:13

回答

1

.mo文件是二进制文件,据我所知,它并不实际存储msgid,而是在索引中存储的一个易于访问的版本。

.po文件是简单的文本文件,其中列出所有msgid S,容易像#msgid "([^"]+)#