Django的国际化
Django的国际化
Django基于python的gettext来实现国际化。其过程为安装gettext工具,然后再代码中调用指定方法,然后用gettext提供的程序来把代码中需要翻译的部分找出来写到一个po的文件中,翻译po中的内容,最后通过gettext工具编译成mo文件。
安装gettext
在windows上安装gettext
可以自己从下面网址下载:
http://gnuwin32.sourceforge.net/packages/gettext.htm
需要下载两个东西:
- gettext-0.14.4-bin.zip
- gettext-0.14.4-dep.zip
在Ubuntu上安装gettext
apt-get install gettext
配置环境变量
解压上面的两个下载的zip包。然后把里面的bin目录配置到环境变量的path中。
代码中使用gettext
cd ..
from django.utils.translation import ugettext as _
from django.http import HttpResponse
def my_view(request):
output = _("Welcome to my site.")
return HttpResponse(output)
生成消息文件
上面的例子中的消息可通过下面的命令生成消息文件
django-admin makemessages -l zh_hans
注意: 需要在一个app目录下执行此命令。
另外此命令只需要执行一次。以后直接添加消息的翻译。
翻译消息
打开locale\zh_hans\LC_MESSAGES下面的django.po文件。
msgid "username"
msgstr "用户名"
开始对每一个消息进行翻译。
编译消息文件
在消息文件翻译之后,还需要把此消息文件变成二进制文件。需要运行下面命令:
django-admin compilemessages
编译之后会生成django.mo文件。
接下来就可以开始进行测试了。
其他事项
注意:决不要在settings文件中导入 django.utils.translation ,因为这个模块本身是依赖于settings,这样做会导致无限循环,而是使用一个“虚构的” gettext()
ugettext = lambda s: s
LANGUAGES = (
('de', ugettext('German')),
('en', ugettext('English')),
)
错误OSError: No translation files found for default language zh_CN.
需要把settings.py中的LANGUAGE_CODE配置zh-cn修改成zh-hans,就好了
Django的国际化的更多相关文章
- Django项目国际化
Django项目国际化 实验环境: py3.4.3 + django1.8.2 + Windows 项目设置 >django-admin startproject I18nDjango > ...
- Django开启国际化的支持
基础环境介绍 IDE我用的pycharm Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13) [GCC 4.2.1 (Apple Inc ...
- Django:之安全、国际化和session
Django 安全 以下是关于Django安全的一些特征,它包括如何使基于Django的网站的一些建议. 关于安全的官方文档:https://docs.djangoproject.com/en/dev ...
- django的多语言国际化
介绍 Django 支持国际化,多语言.Django的国际化是默认开启的,如果您不需要国际化支持,那么您可以在您的设置文件中设置 USE_I18N = False,那么Django会进行一些优化,不加 ...
- django创建第一个django项目-2
安装django 虚拟环境下执行命令: pip install django==1.11.11 查看是否安装成功 pip list 列表中有django说明安装成功 创建工程 命令行移动到想要创建项目 ...
- Django 模版当中使用中文 UnicodeDecodeError at / 问题
Django 再次是当中字符编码问题 今天使用了bootstrap 当中的一些CSS 对自己的博客项目当中的一些东西进行美化 但是很奇怪的是 当 诸如按钮类的加入 中文字符后 就会提示 Unicode ...
- Can't find msguniq. Make sure you have GNU gettext tools 0.15 or newer installed
Python Django生成国际化和本地化.po文件步骤1.在settings文件中,添加一下内容: LANGUAGES = ( ('zh-hans', ugettext_lazy('Simplif ...
- 关于web界面设计的整体可维护性的感悟
1.表现与数据分开管理: 某些数据具备特殊的表现格式,比如颜色,大小等等.为了对这些格式表现分开管理进行 a.使用css定义该类型数据的表现形式: 定义数据的类别,通过该类别对数据格式进行统一定义 . ...
- Django分析之国际化处理
最近在公司终于开始做web开发了,本以为会是简单的首页之类的小规模项目,结果上来就是一个处理大数据分析的项目,一个关于油品分析的系统,不过我接到的第一个任务是做这个网站的国际化处理,虽然项目还没有上线 ...
随机推荐
- Centos 下部署tomcat多实例
基础环境及JDK就不多说了,下面的目录结构以如下为准: 根目录-apps 根目录-apps--tomcat 根目录-apps--ins1 根目录-apps--ins2 ================ ...
- Java Web系列:Java Web 项目基础
1.Java Web 模块结构 JSP文件和AXPX文件类似,路径和URL一一对应,都会被动态编译为单独class.Java Web和ASP.NET的核心是分别是Servlet和IHttpHandle ...
- 执行计划--WHERE条件的先后顺序对执行计划的影响
在编写SQL时,会建议将选择性高(过滤数据多)的条件放到WHERE条件的前面,这是为了让查询优化器优先考虑这些条件,减少生成最优(或相对最优)的执行计划的时间,但最终的执行计划生成过滤顺序还是决定这些 ...
- 修改mysql的时间/时区
# 背景 往db中insert数据发现时间不对,因为是新DB,所以猜测是mysql设置不对 # 解决方法 方法一:通过mysql命令行模式下动态修改 show variables like " ...
- .Net上传图片压缩质量,不改变尺寸
图片上传有很多情况需要考虑,例如:生成缩略图.压缩尺寸.压缩质量.压缩尺寸质量.添加水印等等常见情况.最近遇到图片质量压缩不改变大小的问题,参考:听浪 #region 图片压缩 /// <sum ...
- dokcer 的export 、improt和save 、load
export .improt 是对容器操作也就是类似于虚拟机的快照 save .load 是针对于镜像操作的..
- iOS Objective-C 中 bool 与 BOOL 的你不一定知道的事
测试一下这段代码: - (void)test { NSLog(@"this is an attribut: %d", anAttribute); ; i < ; i++) { ...
- 数据库访问接口(ODBC、OLE DB、ADO)
最近在学C#的数据库编程,对于数据库接口技术这块的知识一直比较模糊,网上查了不少资料,看了几天还是朦朦胧胧的,只能做些笔记再研究了. 我们都知道,“数据库”是指一组相关信息的集合,最早的计算机应用之一 ...
- E - More is better (并查集)
点击打开链接 Mr Wang wants some boys to help him with a project. Because the project is rather complex, th ...
- 【OCP-12c】CUUG 071题库考试原题及答案解析(13)
13.(6-7) choose twoWhich two statements are true regarding operators used with subqueries? (Choose t ...