2012-06-01 42 views
3

在Django中運行django-admin.py makemessages -l de來創建翻譯文件後,您可以使用純文本編輯器或Poedit來填充它們。如何爲.po翻譯文件提供數據?

Poedit的優勢在於它提供了一個用於輸入此數據的專用UI。

MyBookmarks /區域/ DE/LC_MESSAGES/django.po::7:然而,當我的話之間切換一直收到錯誤消息首部字段 '項目-ID-版」仍具有初始缺省值

這是什麼?有沒有人知道Django中的國際化或者po/GNU gettext的普通用戶是否遇到過這個錯誤信息?

非常感謝,

回答

2

我猜Django的離開.po文件可由用戶自定義的頭,所以是由你來代替「包版本」的東西更多的描述是「我的FABULOUS APP V.1.0 」。

要做到這一點對一個給定的路徑中的任何相關的文件,你可以在命令行,並在* nix的環境中使用此命令(或任何sed的找到可用)

find <YOUR_PATH_HERE> -type f -name '*.po' -exec sed -e s'/PACKAGE VERSION/<YOUR_APP_NAME> <YOUR_APP_VERSION>/g' -i.bak {} \; 

該命令將替換每個.po文件中的上述文本,並且還會保存每個文件的未修改備份文件。

所以,在你的情況下,命令將是:

find MyBookmarks/ -type f -name '*.po' -exec sed -e s'/PACKAGE VERSION/MyBookmarks v.1.0/g' -i.bak {} \; 

我通常包括我fabfile這個命令,它解決了使用poEdit的1.5.x的問題(但也應該工作在以前的版本)。

注意:您必須爲每個.po文件只做一次。下一次您將啓動一個./manage.py makemessages Django會記住該設置。

+0

很多謝謝你解決這個問題。那時我最終使用了一個編輯器並且爲每個文件手工完成。感謝更簡單的方法。 +1 – Houman

+0

只需簡單提一下,'-i .bak'之間不能有空格,否則會打破。 – Houman

+1

我編輯了它。謝謝! – furins

相關問題