2013-02-11 63 views
1

內形式的標籤和驗證消息翻譯:如何每當我跑的Django的

$ ./manage.py makemessages -a -l es -e .py 

它只包括翻譯,裏面locale/es/LC_MESSAGES/django.po我標誌着MY應用程序的字符串,但我想翻譯的串標爲意譯的Django的形式,像這樣的:https://github.com/django/django/blob/master/django/contrib/auth/forms.py#L64-L84

有沒有什麼辦法讓makemessages標籤和前來的Django內的Forms的驗證錯誤消息轉換,而不必重寫這樣的女士?

在此先感謝您的幫助! https://github.com/django/django/blob/master/django/contrib/auth/locale/es_MX/LC_MESSAGES/django.po#L42

你不需要讓自己的翻譯::)

+1

那些已經被翻譯。 Django帶有所有內置表單和模板的70多種翻譯。 – 2013-02-11 17:03:41

回答

2

這些字符串的翻譯已經由Django項目完成。

您應該已經將它們翻譯成您的應用程序。

0

如上所述,翻譯自帶Django。但是,如果翻譯對於您想要的或者與您的意願不符的語言而言不完整,您可以隨時複製字符串以翻譯爲您的項目,並且您的翻譯將優先於Django附帶的翻譯。

爲了實現這一點,只需創建文件幷包含這些字符串進行翻譯。例如app/i18n.py

''' 
Fake file to translate messages from django.contrib.auth. 
''' 

def _(text): 
    return text 

def fake(): 
    _(u'This username is already taken. Please choose another.') 

現在makemessages會撿起這些字符串,你將能夠transalte他們。

0

如果您正在使用的ModelForm,用戶自定義標籤和錯誤消息退房this answer

class AuthorForm(ModelForm): 
    class Meta: 
     model = Author 
     fields = ('name', 'title', 'birth_date') 
     labels = { 
      'name': _('Writer'), 
     } 
     help_texts = { 
      'name': _('Some useful help text.'), 
     } 
     error_messages = { 
      'name': { 
       'max_length': _("This writer's name is too long."), 
      }, 
     } 
相關問題