我試圖本地化我的應用程序時遇到問題。它有兩種語言版本:英文和德文。如果瀏覽器的語言設置爲英語(美國),並且在我的設置文件中設置爲「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屬性添加,它就可以工作。這不是另一種方式嗎?
請編輯您的問題以正確格式化您的代碼。編輯問題時,頁面的右側有格式指南。 – 2010-10-11 11:19:49