Django1.9开发博客(12)- i18n国际化
国际化与本地化的目的为了能为各个不同的用户以他们最熟悉的语言和格式来显示网页。
Django能完美支持文本翻译、日期时间和数字的格式化、时区。
另外,Django还有两点优势:
- 允许开发者和模板作者指定他们哪些app应该被翻译或被格式化为本地形式。
- 允许用户根据自己的偏好来实现本地化显示。翻译依据语言,格式化依据国家, 这些信息由浏览器中的
Accept-Language
头来决定。不过目前为止时区还未能实现。
参考官方文档:https://docs.djangoproject.com/en/1.9/topics/i18n/
配置
实际上django的国际化做的非常好了,配置很简单。
settings.py
首先在settings中,添加如下内容:
1 |
from django.utils.translation import ugettext_lazy as _ |
通过LANGUAGES
执行语言列表,LOCALE_PATHS
指定国际化目录。
在项目根目录下面创建一个locale文件夹,然后使用命令创建国际化文件:
django-admin.py makemessages -l zh_CN |
执行完后,locale文件夹下面创建zh_CN/LC_MESSAGES/django.po
,里面的内容类似下面:
1 |
# SOME DESCRIPTIVE TITLE. |
将你页面上面需要翻译的内容写到这里面来即可。比如previous
要翻译成上一页
。
写好了所有的翻译后,再执行:
django-admin.py compilemessages |
这时候会生成文件zh_CN/LC_MESSAGES/django.mo
,这个是最终的目标文件了。
使用
我们用base.html
来做演示,打开mysite/templates/mysite/base.html
1 |
{% load staticfiles %} |
注意
<title>{% trans 'Simple Blog'%}</title> |
这句,如果用户选择中文,那么就会被翻译成极简博客
。这个在django.po文件中定义过。其他的内容也是类似,就不多说了。
好了,i18n国际化就是这么简单。
Django1.9开发博客(12)- i18n国际化的更多相关文章
- Django1.7开发博客
转自: http://www.pycoding.com/articles/category/django 基于最新的django1.7写的,通俗易懂,非常适合新手入门. 感谢博主! 参考教程: htt ...
- Django1.9开发博客(14)- 集成Xadmin
xadmin是一个django的管理后台实现,使用了更加灵活的架构设计及Bootstrap UI框架, 目的是替换现有的admin,国人开发,有许多新的特性: 兼容 Django Admin 使用 B ...
- Django1.9开发博客(11)- 富文本与代码高亮
TinyMCE是一个轻量级的基于浏览器的所见即所得编辑器,支持目前流行的各种浏览器,由JavaScript写成. 功能配置灵活简单(两行代码就可以将编辑器嵌入网页中),支持AJAX.另一特点是加载速度 ...
- Django1.9开发博客(8)- 继续完善
到现在为止我们已经完成的差不多了,并且基本的东西都已经学到了,是时候用起来了. 我们的博客还有很多功能需要完善,下面抛砖引玉新增几个功能,还有其他功能等你自己去发现和实现. 草稿箱 之前我们新建文章的 ...
- Django1.9开发博客(7)- 实现功能
到目前为止我们已经完成了一个django应用的所有基础部分. 包括url配置.视图.模型和模板.接下来开始继续完善我们的博客系统了. 首先我们需要一个显示每篇文章的详细页面,对不? 文章详情 对于首页 ...
- Django1.9开发博客(13)- redis缓存
Redis 是一个高性能的key-value数据库.redis的出现, 很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用. 它提供了Pyth ...
- Django1.9开发博客(10)- 全文搜索
Django本身不提供全文检索的功能,但django-haystack为其提供了全文检索的框架. django-haystack能为Django提供whoosh,solr,Xapian和Elastic ...
- Django1.9开发博客(9)- 用户认证
你应该注意到了一点,当你去新建.修改和删除文章的时候并不需要登录,这样的话任何浏览网站的用户都能随时修改和删除我的文章.这个可不是我想要的! 编辑和删除的认证 我们需要保护post_new, post ...
- Django1.9开发博客(6)- 模板继承
模板继承就是网站的多个页面可以共享同一个页面布局或者是页面的某几个部分的内容.通过这种方式你就需要在每个页面复制粘贴同样的代码了. 如果你想改变页面某个公共部分,你不需要每个页面的去修改,只需要修改一 ...
随机推荐
- IOS开始对App Store大扫除:你的APP更新了吗?
成都亿合科技小编从北京商报了解到,对于开发APP应用的要注意啦,IOS要开始对App Store大扫除:你的APP更新了吗? 日前苹果App Store的开发者们发送邮件,表示将实施一个持续评估应用行 ...
- wkwebview a target="_blank" 打不开链接的解决方案
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigatio ...
- JavaScript原型理解
这东西我还不是很理解,但是把自己实践的过程记录下来,希望积累到一定程度,能自然而而然的理解了.很多东西我是这样慢慢理解的,明白为啥是那样子,真的很神奇哦.少说废话,开始吧. 可以先阅读这篇文章 fun ...
- python核心编程学习记录之文件和输入输出
- vs2013 类名颜色显示黑色,无法修改
vs2013 类名黑色,修改不起作用,最后找到解决办法. http://stackoverflow.com/questions/10970305/how-can-i-get-user-type-c-s ...
- Git错误non-fast-forward后的冲突解决
Git错误non-fast-forward后的冲突解决当要push代码到git时,出现提示: error:failed to push some refs to ... Dealing with “n ...
- ADT中通过Android SDK Manager去安装x86的image时无法下载
参考:http://www.crifan.com/adt_android_sdk_manager_can_not_download_package_x86_image/
- HDU 5688:2016"百度之星" - 资格赛 Problem D
原文链接:https://www.dreamwings.cn/hdu5688/2650.html Problem D Time Limit: 2000/1000 MS (Java/Others) ...
- LA 3211 飞机调度
题目链接:http://vjudge.net/contest/142615#problem/A 题意:n架飞机,每架可选择两个着落时间.安排一个着陆时间表,使得着陆间隔的最小值最大. 分析: 最小值最 ...
- python学习之认识字符串
1.打印字符串 >>> print ("hello world") hello world 2.使用“/"进行符号转义 >>> pri ...