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) 在project根文件夹下’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细节请看 这里

Django项目国际化的更多相关文章

  1. Django项目实践4 - Django网站管理(后台管理员)

    http://blog.csdn.net/pipisorry/article/details/45079751 上篇:Django项目实践3 - Django模型 Introduction 对于某一类 ...

  2. Django项目实践4 - Django站点管理(后台管理员)

    http://blog.csdn.net/pipisorry/article/details/45079751 上篇:Django项目实践3 - Django模型 Introduction 对于某一类 ...

  3. django创建第一个django项目-2

    安装django 虚拟环境下执行命令: pip install django==1.11.11 查看是否安装成功 pip list 列表中有django说明安装成功 创建工程 命令行移动到想要创建项目 ...

  4. Django项目开发,XSS攻击,图片防盗链,图片验证码,kindeditor编辑器

    目录 一.Django项目开发 1. 项目开发流程 2. auth模块的补充 (1)django的admin可视化管理页面 (2)将admin可视化管理页面的模型表显示成中文 (3)auth模块的用户 ...

  5. centos7 apache httpd安装和配置django项目

    一.安装httpd服务 apache在centos7中是Apache HTTP server.如下对httpd的解释就是Apache HTTP Server.所以想安装apache其实是要安装http ...

  6. 终端指令操作创建Django项目

    需求:通过Django创建一个用户表和权限表. 用户表包括:用户名,邮箱,密码,管理权限. 权限表包括:普通用户,管理用户,超级用户. 权限表和用户表有一对多的关系,即用户表中的每条数据对应权限表中的 ...

  7. mac osx 上面部署Django项目 apache+mysql+mod_wsgi

    1.安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tool ...

  8. Apache部署django项目

    在此之前,我们一直使用django的manage.py 的runserver 命令来运行django应用,但这只是我们的开发环境,当项目真正部署上线的时候这做就不可行了,必须将我们的项目部署到特定的w ...

  9. python——创建django项目全攻略(野生程序员到家养程序员的完美进化)

    新建工程 我用pycharm写代码,所以一般就用pycharm创建django工程.右上角File-New Project.选择路径,修改项目名称,确定.就可以创建一个新的django工程.     ...

随机推荐

  1. MFC获取纸张大小

    BOOL CPrintView::GetPageSize(CSize &nRetVal)  // CPrintView 是自己创建的类       {          PRINTDLG FA ...

  2. easyui-textbox input输入框的一种取值方式

    1.html文件 <td> <input id="clientPhone" type="text" name="clientPhon ...

  3. 关于如何避免Android中Bitmap引起的OutOfMemoryError

    在Android中处理大图片不是一件很随意的事情,因为通常我们使用的是内置的BitmapFactory解码图片的,而BitmapFactory往往会因为图片过大而遇到OutOfMemoryError的 ...

  4. iOS:触摸事件和手势识别的介绍

    触摸事件和手势识别的介绍 1.iOS的输入事件  UIKit可识别三种类型的输入事件: 触摸事件 运动事件 远程控制事件 iOS中许多事件对象都是UIEvent类的实例,UIEvent记录了事件所产生 ...

  5. Enyim Memached 客户端 执行GET 总是返回NULL

    排查: 1. ping 远程Linux 服务器 正常 2.11211 端口正常 3. ps aux | grep memcached 显示正常 4. 使用另外一个客户端 memcachedClient ...

  6. 【Web】前台传送JSON格式数据到后台Shell处理

    1.js中的json对象和字符串之间的转化:http://www.oschina.net/code/snippet_175925_6288 代码片段: var obj = JSON.parse(des ...

  7. php 中 拓展 xdebug的完全理解

    question: Xdebug unable to connect to client, where do I start debugging the debugger? I'm setting u ...

  8. Silverlight 安装失败 提示 消息 ID 1603 的解决方法

    消息 ID: 1603 安装过程中出现错误.请执行以下步骤 原因是在以前安装过silverlight,没有安装成功或者没有彻底卸载干净,遗留了一些文件,尤其是安装时突然中断的时候会出现这个问题. 解决 ...

  9. redis学习笔记——事件处理

    Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件: 文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字 ...

  10. unicode 编码在线转换工具

    字符串 unideo的16进制值