2011-12-23 50 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 "([^"]+)#