栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

设置Django翻译的正确方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设置Django翻译的正确方法是什么?

添加

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 _

现在一切正常。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/390528.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号