我有一个小型的Django应用程序,我尝试将其本地化。 在urls.py文件中,我有以下内容:
urlpatterns += i18n_patterns(
path('add_request/',AddRequest.as_view(),name='add_request'),
path('add_offer/', AddOffer.as_view(), name='add_offer'),
)
在settings.py文件中,我有如下配置
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
并且
LANGUAGE_CODE = 'de'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
LOCAL_PATHS = (
os.path.join(BASE_DIR, 'locale/'),
)
USE_TZ = True
LANGUAGES= [
('en', 'English'),
('de', 'German')
]
我已在models.py(verbose_name)、forms.py(label)和template中标记需要翻译的字符串。
我通过以下方式提取了po文件:
django-admin makemessages -l en
django-admin makemessages -l de
翻译它们并运行
django-admin compilemessages
现在我有用于URL的前缀de/和en/。区域设置似乎已正确设置,因为日期输入字段更改为正确的日期格式,但未使用翻译。