设置国际化的具体步骤:

一、国际化

  1)效果:针对不同的国家的人可以配置不同的语言(一般是英文和中文,  English  Chinese)

  2)目的:增加项目的用户量

  3)难度:不难 比较费劲的就是翻译

二、步骤

  1)安装gettext这个工具,搜索这个安装包下载地址http://www.gnu.org/software/gettext/下载之后安装即可

  2)测试是否安装成功

  打开终端 输入 gettext --version  如果成功应该会提示

      

   如果提示'不是内部或外部命令',需要手动添加环境变量

  3)配置项目 在settings.py中

1. 找到settings.py,在MiddleWare中添加一句
'django.middleware.locale.LocaleMiddleware',
2. 在配置文件中添加要国际化的语言
LANGUAGES = (
('en-us', ('英文')),
('zh-hans', (u"中文")),
)
3. 配置国际化文件的路径
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
4. 配置模板上下文,在'context_processors'下面添加
'django.template.context_processors.i18n',

  4) 开始国际化

1. 在需要国际化的地方导入一个包
from django.utils.translation import gettext_lazy as _
2. 在需要国际化的地方使用 _()进行国际化
例如 _(u"登录")
3. 如果网页中也有中文, 前端/网页需要配置网页前面加载一个i18n
{% load i18n %}
修改中文的部分为
<h1>{{ _('欢迎登录') }}</h1> 或 <h1>{% trans '欢迎登录' %}</h1> 两个写法等价

  5) 生成国际化文件(注意:如果语言中是横岗,要改为下划线)

在 django 下方的 Terminal 中输入

 #生成英文
python manage.py makemessages -l en_us
#生成中文
python manage.py makemessages -l zh_hans

  如果提示 'make sure you have GNU gettext tools 0.15 or newer ***', 就关掉pycharm重新打开

 项目中应该会生成一个locale文件夹,里面有对应的文件打开里面的 ****.po 文件,对里面的内容进行翻译

  6) 翻译完毕以后对po文件进行编译,否则没法国际化

python manage.py compilemessages

按照以上步骤执行就完成了

最新文章

  1. 前端 时间个性化 插件 jquery.timeago.js
  2. Divide and conquer:Median(POJ 3579)
  3. Android总结篇系列:Android 权限
  4. 集群管理 secondaryNameNode和NameNode(转)
  5. 第五章 CSS页面布局基础
  6. HDU 2594 扩展kmp模板题
  7. 【win8技巧】win8一键截图自动保存到文件夹
  8. JavaWeb国际化
  9. Linux filesystem structures.
  10. 如何让你的SQL运行得更快
  11. ubuntu14.04LTS ruby on rails 开发环境
  12. notepad扩展搜索,正则搜索
  13. HTTPS协议入门
  14. setAttribute和setParameter方法的区别
  15. python 杂项
  16. JS关键字和保留字汇总(小记)
  17. 编写configure.ac
  18. Docker生态不会重蹈Hadoop的覆辙
  19. 初识backbone.js
  20. Linux下的环境部署和项目发布

热门文章

  1. MongoDB安装与配置问题
  2. Arduino基础入门—1.Hello World
  3. linux netfilter
  4. Reactor系列(八)concatMap有序映射
  5. HDU6582 Path【优先队列优化最短路 + dinic最大流 == 最小割】
  6. GitHub项目管理维护实用教程
  7. msyql 主从切换
  8. Python 解leetcode:48. Rotate Image
  9. 汉诺塔递推HDU2064
  10. python — lambda表达式与内置函数