关闭

Django项目国际化

2500人阅读 评论(0) 收藏 举报
分类:

Django项目国际化

  • 实验环境: py3.4.3 + django1.8.2 + Windows
  • 项目设置
    >django-admin startproject I18nDjango
    >manage.py startapp i18n

1. 安装 gettext 。下载

2. 在源代码中标记需要翻译的字符串

(1) 通过 ugettext() 标记views.py 中的待翻译字符串

from django.utils.translation import ugettext

def index(request):
    return HttpResponse(ugettext('hello world!'))

(2) 通过 {% trans %}标记模板中的待翻译字符串

{% load i18n %}
<h1>translation</h1>
<p>{% trans "This is the p element." %}</p>

3. 创建语言相关的资源文件

(1) 在工程根目录下’mkdir locale’

(2) 通过以下命令创建资源文件(.po file). 这个命令能提出 hard code string

django-admin.py makemessages -l de

(3) 在settings.py中设置LOCALE_PATHS。并保证下面的变量为True

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
LOCALE_PATHS = ('locale/',
)

4. 更新资源文件

django-admin.py makemessages -a

5. 将.po资源文件编译为二进制的更有效率的.mo文件

django-admin.py compilemessages

6. 在 settings.py 中添加中间件

下面这个中间件能让Django网站根据配置或Accept-Language返回资源文件中对应语言的字符串

MIDDLEWARE_CLASSES = (
    ... ...
    'django.middleware.locale.LocaleMiddleware',
)

实验代码请看
* https://github.com/ybdesire/WebLearn/tree/master/14_Django/I18nDjango

更多Djang的I18n细节请看 这里

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:443659次
    • 积分:4586
    • 等级:
    • 排名:第6836名
    • 原创:126篇
    • 转载:2篇
    • 译文:5篇
    • 评论:91条
    个人联系信息
    联系专家帮助:(1)机器学习,NLP,数据挖掘,数据分析(2)软件开发、优化(3)企业培训,技术顾问(4)数据科学职业发展咨询。微信:crazygoodluck,QQ:2802048871,微信公众号:自动话(说话的话)
    最新评论