2013-01-09 100 views
2

我今天安裝了django countries。它工作得很整潔。Django-countries:如何翻譯?

文檔不幸有點薄,它說:

COUNTRIES 兩級部分的元組的元組,每個包括的國家碼和相應的很好標題(和平移)國家名。

我是否簡單地沿着django國際化的通常路徑走下去,它會自動提取並允許我在PO文件中定義國家?還是需要額外的魔法?

我已經實現了它是這樣的方式:

from django_countries.countries import COUNTRIES 
from django_countries.fields import CountryField 

country    = CountryField(_(u'Country'), choices=COUNTRIES, blank=True) 

COUNTRIES直接從延伸過來,因此我沒有訪問把_(u)圍繞各個國家名稱。 (from django.utils.translation import ugettext_lazy as _

回答

2

只要按照Django的翻譯documentation,它會自動添加ugettext_lazy標串到你的.po文件。然後根據您選擇的語言提供消息字符串。

+0

謝謝阿米爾。你說'標記的字符串'被放入PO文件中。我知道這一點。但我不能直接標記國家字符串,如示例中所示。那麼在這種情況下如何做標記呢?這是個問題:) – Houman

+1

@Kave如果瀏覽'django-countries'的代碼並轉到'countries.py',您會注意到所有國家的名稱都已標記爲已經過時的字符串。 '('AF',_(u'Afghanistan')),' –

+0

啊,太棒了。謝謝。 +1 – Houman

5

對於像我這樣的django新手來說:在你的網站的settings.py中添加'django_countries'到INSTALLED_APPS將會有效。所以Aamir的答案是正確的 - 只需在documentation中查看「Django如何發現翻譯」部分即可。