我试图强制将网站翻译成德语(不用德语对字符串进行硬编码)。无论客户的浏览器发送的语言代码是什么,我都想要德语。
在我的settings.py
:
LOCALE_PATHS = (
'/path_to_my_app/locale',
)
LANGUAGE_CODE = 'de-de'
USE_I18N = True
已安装的应用和中间件没有什么特别之处:
INSTALLED_APPS = (
'my_project',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
我已在django.po
中生成了相关的django.mo
和/path_to_my_app/locale/de-de/LC_MESSAGES/
个文件。
但是使用ugettext()
时我的字符串不会翻译。我也在网站shell中看到了这一点:
In [1]: from django.utils.translation import get_language
In [2]: get_language()
Out[2]: u'en-us'
我错过了什么?
答案 0 :(得分:0)
经过几个小时的努力,我找到了一个解决方案......
在settings.py
:
LANGUAGE_CODE = 'de-de'
USE_I18N = True
(无需设置LOCALE_PATHS
。)
然后,在django.po
中生成相关的django.mo
和/path_to_my_app/locale/de/LC_MESSAGES/
个文件。 请注意使用" de"这里而不是" de-de"。
这让我想知道如何在Django中为一个国家生成语言变体......