添加
LOCALE_PATHS到
settings.py并将其设置如下:
import osbase_DIR = os.path.dirname(os.path.dirname(__file__))LOCALE_PATHS = ( os.path.join(base_DIR, 'locale'),)
请注意,它
LOCALE_PATHS必须是一个元组(请查看路径末尾的逗号)。
现在基于
LOCALE_PATHS,该
locale文件夹应该位于项目的根目录中。
而且可以肯定的是你运行的命令
django-admin.py makemessages -l de,并
django-admin.py compilemessages从项目的根。
djPrj | +---> djPrj | +---> djApp | +---> locale | +---> templates
还重新安排你的MIDDLEWARE_CLASSES是LocaleMiddleware后SessionMiddleware和之前CommonMiddleware提到这里:
MIDDLEWARE_CLASSES = ( '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',)
重新启动服务(python manage.py runserver),然后再次检查。
只是为了确保将本地化应用到具有Django默认django.mo文件的Django 管理页面,请执行以下测试:
首先将主要urls.py项目替换patterns为i18n_patterns:
from django.conf.urls.i18n import i18n_patternsurlpatterns = i18n_patterns('', url(r'^admin/', include(admin.site.urls)), # ...)现在转到带有de前缀的管理页面,例如:http://127.0.0.1:8000/de/admin/ 并且该管理页面应以德语显示。
好的,你能够以德语查看Django的管理页面吗?
还要检查你的de前缀视图。
根据你的项目代码,有些句子不是成trans块的。将它们作为:
{% trans "your sentence" %}另外,你还必须在视图和模型的代码中使用ugettext_lazy而不是(请ugettext在此处和此处阅读)。
替换为:
from django.utils.translation import ugettext as _
与:
from django.utils.translation import ugettext_lazy as _
现在一切正常。



