博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django项目国际化
阅读量:6228 次
发布时间:2019-06-21

本文共 972 字,大约阅读时间需要 3 分钟。

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 ugettextdef index(request):    return HttpResponse(ugettext('hello world!'))

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

{% load i18n %}

translation

{% trans "This is the p element." %}

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 = TrueUSE_L10N = TrueLOCALE_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',)

实验代码请看

*

很多其它Djang的I18n细节请看

转载地址:http://dotna.baihongyu.com/

你可能感兴趣的文章
PHP获取毫秒时间戳,利用microtime()函数
查看>>
动态规划复习-HDU1231
查看>>
串门赛: NOIP2016模拟赛——By Marvolo 丢脸记
查看>>
Webapck项目开发基本构建及配置
查看>>
poj2562
查看>>
用matplotlib绘制图像
查看>>
flex 整理 笔记
查看>>
Cocos2d-x之瓦片地图 Tiled
查看>>
对网卡中断绑定的脚本
查看>>
Android第二次作业
查看>>
Trie
查看>>
(Joomla)多功能健康模块
查看>>
基于CC2530的zigbee信道、PANID扫描设备
查看>>
前端基础之jquery
查看>>
You are beautiful
查看>>
GIS部分理论知识备忘随笔
查看>>
应用安装和卸载
查看>>
CSS深入理解学习笔记之border
查看>>
查找并替换中文字符
查看>>
GRU(Gated Recurrent Unit) 更新过程推导及简单代码实现
查看>>