django变量怎么使用(django的settings中设置中文支持的实现)
django变量怎么使用
django的settings中设置中文支持的实现今天创建了个django工程,用的是目前django 1.9.6,创建工程后,settings.py中设置中文显示支持(最简单的,例如把admin界面的默认英文改成中文),定义
|
time_zone = 'asia/shanghai' language_code = 'zh-cn' |
当然time_zone只是指定时区,和中文显示没有关系,这里一并修改了默认值。结果运行项目时报错了,如下:
django ioerror: no translation files found for default language zh-cn
即找不到zh-cn对应的本地化文件。一般而言,zh-cn编码对应的本地化文件夹为zh_cn,我去django的安装目录查找zh_cn,结果确实没有找到,在django安装目录的contrib子目录下的一系列子目录的locale文件夹中,没有zh_cn,而有zh_hans。不知道为什么django的这个版本没有zh_cn文件夹,可能是一个bug吧。网上有人说将zh_hans目录全部复制一份并命名为zh_cn,就可以解决这个问题,我试了下,再次运行确实可行了,在admin界面显示了中文。至于这种比较山寨的方法有没有隐患,现在还不知道,以后遇到再说吧。
不过话说回来,其实还有正统的方式去生成国际化文件,如下命令:
|
django - admin.py makemessages - l zh_cn |
不过这个需要gettext组件,如果你是在windows上开发,那么你需要自己安装这个组件,
在http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/下载gettext-runtime-x.zip以及gettext-tools-x.zip的最新版(注:x为版本号)并解压后,将两个bin目录可以合并后放入系统环境变量中。不过该方法我没有验证,感兴趣的可以试试。
后来我又想,django之前的老版本是有zh_cn的,要说这个一个bug,估计也比较低级,按理不应该的。于是又查,发现貌似zh_hans可能已经替代zh_cn了。han表示汉字,s表示simplified简体,反正我设置为language_code = 'zh-hans'也是正常显示中文。
zh-cn will expired in django1.9, the new format is zh-hans, but drf3.1.0 does not support this type of language.
上面的意思是在django1.9中,zh-cn过期了,可以用zh-hans替代,不过可能有些django的第三方模块还没有跟上这个变化。
总之,仁者见仁智者见智了,其实大可不必如此研究,只是突然对这个比较感兴趣所以多研究了一会。
ps:网上很多地方对于language_code = 'zh-cn'有各种不同写法,包括zh_cn,zh-cn等,有的人还说只能用某某写法等,反正我是没看出来区别,我也都试了,都没发现问题。
另外说个题外话,之前一直都不知道settings.py中的use_i18n和use_l10n是什么意思,直到看到了下面的一段话:
当 web 服务搭建好以后,可以接收来自全球不同国家用户访问。这样就要求开发人员调整软件,使之能适用于不同的语言,即国际化和本地化。国际化
-- internationalization,i 和 n 之间有 18 个字母,简称 i18n,。本地化 -- localization, l 和 n 之间有 10 个字母,简称 l10n。国际化意味着 web
产品有适用于任何地方的潜力,针对程序开发人员;本地化则是指使一个国际化的程序为了在某个特定地区使用而进行实际翻译的过程,针对翻译人员而言。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://www.pythontab.com/html/2017/pythonweb_0605/1147.html
- pythonimage库(Python/Django后端使用PIL Image生成头像缩略图)
- django url配置失效(解决Django生产环境无法加载静态文件问题的解决)
- python使用django搭建简单网页(Python后台开发Django的教程详解启动)
- django实现登录注册(django与小程序实现登录验证功能的示例代码)
- django学生管理系统搭建(Django实现学员管理系统)
- pythondjango工作机制(Python后台开发Django会话控制的实现)
- django参数判断(Django保护敏感信息的方法示例)
- django 如何实现高并发(Django如何防止定时任务并发浅析)
- django响应返回的常用方法(Django异步任务之Celery的基本使用)
- django框架详解(Django如何开发简单的查询接口详解)
- pycharm怎么创建django项目(Python、 Pycharm、Django安装详细教程图文)
- django数据库详解(Django页面数据的缓存与使用的具体方法)
- django用户权限管理(Django 内置权限扩展案例详解)
- django路由原理(详解django中url路由配置及渲染方式)
- python搭建django框架(详解Python网络框架Django和Scrapy安装指南)
- django整合前端流程日志权限(使用Django开发简单接口实现文章增删改查)
- 营养餐是什么(学校营养餐是什么)
- 谁说女子不如男 范冰冰演的武则天只是其一,另外两位你认识吗(谁说女子不如男)
- 杯酒人生---瓦伦丁酒杯和奥丁格啤酒(杯酒人生---瓦伦丁酒杯和奥丁格啤酒)
- 中秋节买啤酒,预算超过7元试试这8种啤酒,麦香浓郁都是真啤酒(预算超过7元试试这8种啤酒)
- CellPress旗下的6 期刊,国人友刊来了解一下吧(CellPress旗下的6期刊国人友刊来了解一下吧)
- ()
热门推荐
- html5如何控制内容(html5拖拽应用记录及注意点)
- docker-compose 如何启动(docker compose部署主从复制的实现)
- dedecms独立页面怎么加(dedecms调用当前栏目的子栏目的两种方法分享)
- linux设置lib目录(Linux如何使用libudev获取USB设备VID及PID)
- vue接收网络请求数据类型配置(vue中对接Graphql接口的实现示例)
- vue计算两个日期差几分钟(vue实现同时设置多个倒计时)
- reacthooks基础使用(React 小技巧教你如何摆脱hooks依赖烦恼)
- 常用的云服务器有哪些(云服务器通常用哪个操作系统比较好?)
- 怎么查询linux的selinux状态(如何理解Linux下的SELinux)
- dedecms手册教程(dedecms标签大全非常经典)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9