Django 使用未翻译的字符串而不是翻译

Django uses untranslated strings instead of translations

我有一个小型 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) 中为 t运行slation 标记了字符串, forms.py(标签)并在模板中。

我通过

提取了po文件
django-admin makemessages -l en
django-admin makemessages -l de

T运行 指定他们并且 运行

django-admin compilemessages

现在我的网址有了前缀 de/ 和 en/。 Locale 似乎设置正确,因为日期输入字段更改为正确的日期格式,但未使用 t运行slations。

我是个白痴。它当然应该是LOCALE_PATHS,而不是LOCAL_PATHS。

哈哈,是的,当您手动进行本地化时,确实很容易错过一些东西。我可以建议尝试本地化平台并使大多数流程自动化。这里有一篇关于Django with Crowdin本地化的小文章。您可以免费测试平台:)