2012-01-31 49 views
1

的問題是:.po文件是平的。所以,我們沒有一個方便的層次結構。Django的本地化:讓「寶」的平面模型文件並不平坦

例如:當我們在我們的.po文件很多消息出現

msgid "SITE_TITLE" 
msgstr "This is a title of my site" 

msgid "ABOUT_SITE_TITLE" 
msgstr "And now... about the site" 

問題。很難找到我們想要更改的特定消息。

我們還需要我們的.po信息綁定到特定的模板(HTML模板)。

顯而易見的解決方案是使用自定義的前綴(例如,作爲模板文件的名稱)。那麼如果我們有home.html和about.html我們的消息字符串將是:

msgid "HOME:SITE_TITLE" 
msgstr "This is a title of my site" 

msgid "ABOUT:SITE_TITLE" 
msgstr "And now... about the site" 

請問您能提供更方便的解決方案嗎?

回答

1

基本上.po文件是與一個空行分隔的條目普通文本文件。編寫一個簡單的解析器,將一個.po文件分割成多個基於前綴的文件,如msgid "SOMETHING:,這似乎是處理巨大翻譯文件的一個不費腦力的解決方案。將組織分成多個po文件可簡化翻譯流程(但您必須保持msgid的獨特性,因此前綴需要保留)。

下一個工具,我建議叫django-rosetta。它提供對po文件的基於Web的訪問,處理版本並顯示文件(即模板)中翻譯字符串的出現。

+1

謝謝!非常好的建議。 – sergzach 2012-02-14 09:24:12