我需要從.po文件中提取消息。有沒有一個Python模塊來做到這一點?我寫了一個解析器,但它依賴於平臺(如\ r \ n,\ n),所以也許有一些正常的方法來達到那個目的?用python解析gettext .po文件
回答
使用內置的gettext模塊:http://docs.python.org/library/gettext.html
看來,我作爲谷歌在第一個搜索結果提供python gettext
後。如果你想知道這是你搜索的內容,那麼是的,它是。
在大多數情況下,您不需要自己解析.po
文件。開發人員給翻譯人員一個.pot
模板文件,他們將其重命名爲xx_XX.po
並翻譯字符串。然後,你作爲開發者只需要使用GNU的gettext
工具(或它的Python實現,pygettext
)
他們「編譯」到.mo
文件,但是,如果你想/需要解析的PO文件自己,而不是編譯它們,我強烈建議您使用polib
,一個知名的python庫來處理po
文件。它由幾個大型項目,如水銀和Ubuntu的Launchpad翻譯引擎:
的PyPI包家: http://pypi.python.org/pypi/polib/
代碼庫: https://bitbucket.org/izi/polib/wiki/Home
文檔: http://polib.readthedocs.org
導入模塊是一個具有MIT許可證的單個文件,因此您可以輕鬆地將它合併到代碼中,如下所示:
import polib
po = polib.pofile('path/to/catalog.po')
for entry in po:
print entry.msgid, entry.msgstr
它不能比這更容易;)
@saeedgnu作品:也許你可以幫助改善它? 'polib'是用於處理po文件的最廣泛使用的庫,並且它被主動地維護,所以任何改進都將有益於很多*軟件 – MestreLion 2016-03-22 15:02:05
我認爲它應該是這樣的,使用它的程序可能會添加一些條目加載po文件(或創建一個新的pofile對象),它都在內存中 – saeedgnu 2016-03-23 17:41:04
- 1. 是否有解析gettext PO文件的Java庫?
- 2. Zend GetText和.mo .po文件
- 3. .Net庫解析PO文件
- 4. gettext po文件編輯器顯示多個po文件
- 5. 如何使用來自http://translationproject.org的PO文件使用python gettext?
- 6. javascript i18n與gettext和.po文件
- 7. 版本控制下的Gettext .po文件
- 8. 合併兩個PO文件usinf getText
- 9. Gettext:修改源文件後如何更新po和pot文件
- 10. 將CodeIgniter語言文件轉換爲.po(用於gettext)
- 11. 用Python解析pflog文件
- 12. 用Python解析文件
- 13. Python-文件解析
- 14. 使用msgcat生成.properties文件中的.PO文件並將生成的.po文件連接成一個.PO
- 15. .po文件
- 16. 使用Python解析文本文件
- 17. 使用python解析文本文件
- 18. 使用Python解析文本文件
- 19. 生成.po/.mo文件
- 20. 解析Python大文件
- 21. JSON文件解析Python
- 22. Python的解析文件
- 23. python解析csv文件
- 24. Python和解析unicode文件
- 25. Python文件解析 - > IndexError
- 26. 解析Python捕獲文件
- 27. 的Python解析XML文件
- 28. 解析文件在Python
- 29. python文件解析查詢
- 30. PO,MO翻譯文件
'gettext'是真棒,但它只能編譯'mo'文件,而不是純文本'po'那些 – MestreLion 2013-04-30 23:01:45