アプリケーションをローカライズしようとすると問題が発生します。英語とドイツ語の 2 つの言語で利用できます。この問題は、ブラウザの言語が英語 (米国) に設定されていて、設定ファイルで「de」に設定されている場合に発生し、その逆も同様です。英語で表示されるフィールドもあれば、ドイツ語で表示されるフィールドもあります。私のモデルには、CharField、DecimalField、および DateField フィールド タイプが含まれています。
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)
フォーム.py:
class TestForm(ModelForm):
test_date = forms.DateField(label=_('Booking date'), widget=AdminDateWidget)
設定.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',
)
ブラウザに設定されている言語は英語です。フィールド test_number と test_price のラベルはドイツ語で表示され、test_date のラベルは英語で表示されます。models.py から _('Test number') を削除し、forms.py の label 属性として追加すると機能します。これを行う別の方法ではありませんか?