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本地化的小文章。您可以免费测试平台:)
我有一个小型 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本地化的小文章。您可以免费测试平台:)