Django项目国际化
2015-07-08 19:38
399 查看
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细节请看 这里
相关文章推荐
- GooFlow
- Algorithm --> 字母重排
- Django静态文件配置
- 总结Django中的用户权限模块
- Mongo库表操作命令
- [翻译]Go语言调度器
- 让乐视如此优惠电信欢go怎么做到的
- 关于&nbsp;空格实体在最新的IE、Firefox和Google Chrome浏览器中解析宽度不一致问题的解决
- Algorithm --> 6174问题
- Go home or stand up
- GO语言使用开源SSH模拟终端
- Why we need model on Django ?
- Golang png Decode解析不了png图片
- 算法基础:最大递减数问题(Golang实现)
- FaceNet--Google的人脸识别
- Django & Celery – Easy async task processing 翻译
- goole Advance client 离线安装
- POJ 1940 Polygon Programming with Ease(高斯消元)
- 如何用好 Google 等搜索引擎
- Django用户认证系统(三)组与权限