2010-10-11 94 views
2

我試圖本地化我的應用程序時遇到問題。它有兩種語言版本:英文和德文。如果瀏覽器的語言設置爲英語(美國),並且在我的設置文件中設置爲「de」,則反之亦然。有些字段以英文顯示,其他字段以德文顯示。我的模型包含CharField,DecimalField和DateField字段類型。Django應用程序的本地化僅適用於forms.py而不適用於models.py

models.py:

from django.db import models 
from django.utils.translation import ugettext as _ 

class Test(models.Model): 
    test_number = models.CharField(_('Test number'), max_length=20) 
    test_date = models.DateField() 
    test_price = models.DecimalField(_('Test price'), max_digits=16, decimal_places=2, null=True, blank=True) 

forms.py:

class TestForm(ModelForm): 
    test_date = forms.DateField(label=_('Booking date'), widget=AdminDateWidget) 

settings.py

USE_L10N = True 
USE_I18N = True 

TIME_ZONE = 'Europe/Berlin' 
LANGUAGE_CODE = 'de' 

TEMPLATE_CONTEXT_PROCESSORS = ( 
    "django.core.context_processors.auth", 
    "django.core.context_processors.debug", 
    "django.core.context_processors.i18n", 
    "django.core.context_processors.media", 
    "django.core.context_processors.request",  
) 

MIDDLEWARE_CLASSES = ( 
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.core.files.uploadhandler.MemoryFileUploadHandler', 
    'django.core.files.uploadhandler.TemporaryFileUploadHandler', 
    'django.middleware.transaction.TransactionMiddleware', 
    'pagination.middleware.PaginationMiddleware',  
) 

英語是langua ge設置瀏覽器。字段test_number和test_price的標籤以德語顯示,test_date標籤以英語顯示。如果我從models.py中刪除_('Test number'),並將它作爲forms.py中的label屬性添加,它就可以工作。這不是另一種方式嗎?

+1

請編輯您的問題以正確格式化您的代碼。編輯問題時,頁面的右側有格式指南。 – 2010-10-11 11:19:49

回答

2

將聲明「from django.utils.translation import ugettext as _」更改爲「from django.utils.translation import ugettext_lazy as _」似乎解決了該問題。

0

雙擊你的.po文件:它不應該有任何'模糊'狀態。

+0

我已經檢查過了。沒有模糊條目。 – Seitaridis 2010-10-12 05:30:13

相關問題