Django 国际化

Django 支持国际化,多语言。Django的国际化是默认开启的,如果您不需要国际化支持,那么您可以在您的设置文件中设置 USE_I18N = False,那么Django会进行一些优化,不加载国际化支持机制。

NOTE: 18表示Internationalization这个单词首字母I和结尾字母N之间的字母有18个。I18N就是Internationalization(国际化)的意思。

Django 完全支持文本翻译,日期时间数字格式和时区。

本质上讲,Django做了两件事:它允许开发者指定要翻译的字符串

Django根据特定的访问者的偏好设置 进行调用相应的翻译文本。

一,开启国际化的支持,需要在settings.py文件中设置MIDDLEWARE_CLASSES = (

...

'django.middleware.locale.LocaleMiddleware',

)

LANGUAGE_CODE = 'en'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

LANGUAGES = (

('en', ('English')),

('zh-cn', ('中文简体')),

('zh-tw', ('中文繁體')),

)

#翻译文件所在目录,需要手工创建

LOCALE_PATHS = (

os.path.join(BASE_DIR, 'locale'),

)

TEMPLATE_CONTEXT_PROCESSORS = (

...

"django.core.context_processors.i18n",

)

注意:Django 1.9 及以上版本中,语言的代码发生变化(详情链接:github, django ticket,如下LANGUAGES = (

('en', ('English')),

('zh-hans', ('中文简体')),

('zh-hant', ('中文繁體')),

)

二,生成需要翻译的文件(Django 1.8及以下的版本):python manage.py makemessages -l zh-cn

python manage.py makemessages -l zh-tw

Django 1.9 及以上版本要改成python manage.py makemessages -l zh_hans

python manage.py makemessages -l zh_hant

三,手工翻译 locale 中的 django.po此处省去500字

...

#: .\tutorial\models.py:23

msgid "created at"

msgstr "创建于"

#: .\tutorial\models.py:24

msgid "updated at"

msgstr "更新于"

...

此处省去几百字

四,编译一下,这样翻译才会生效python manage.py compilemessages

如果翻译不生效,请检查你的语言包的文件夹是不是有 中划线,请用下划线代替它。

比如 zh-hans 改成 zh_hans (但是要注意 setttings.py 中要用 中划线,不要也改了,就这一句话,你可能会浪费几个小时或几天)

django国际化与html语言,Django 国际化相关推荐

  1. java相关的国际化步骤_Java语言资源国际化步骤

    语言资源国际化步骤: ??1. 定义资源文件(如:language),需要使用命令native2ascii命令进行转码:(native2ascii是jdk中的转码工具,在jdk的bin目录下) ??2 ...

  2. springmvc国际化 基于浏览器语言的国际化配置

    项目结构图如下: 说明:lib下存放的是Spring相关包,项目应用包为Spring3.2,message_*.properties中存放的是国际化的资源文件 资源文件 英语的资源文件message_ ...

  3. Go语言的国际化支持(基于gettext-go)

    Go语言的国际化支持(基于gettext-go) hello, world! 假设有以下的程序, 输出: "Hello, world!". package mainimport ( ...

  4. android国际化(多语言)

    1.  很大程度上,为什么我们能如此方便的实现国际化.分辨率匹配等? 主要就是得益于 Android 中这种独特的资源管理方式.程序员的代码可以不直接和资源发生关系.Android 中,我们通常通过 ...

  5. 第三百一十节,Django框架,模板语言

    第三百一十节,Django框架,模板语言 模板语言就是可以将动态数据在html模板渲染的语言 一.接收值渲染 locals()函数,写在请求响应render()函数里,可以将逻辑处理函数里的变量传到h ...

  6. iOS - 实现语言本地化/国际化

    实现iOS语言本地化/国际化(图文详解) 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个国家 ...

  7. python框架django文档_Django基础——Django框架介绍及模板语言

    Django框架,我们只需要关心二点: 1.根据用户访问不同的路径执行不同的函数 2.从HTML读取出内容,并且完成字符串的替换 而socket通信不需要我们自己写: 新建Django项目 命令行创建 ...

  8. 3分钟实现iOS语言本地化/国际化(图文详解)

    为什么80%的码农都做不了架构师?>>>    原文 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往 ...

  9. AngularJS 国际化 支持记录语言刷新后语言不变

    AngularJS 国际化 支持记录语言刷新后语言不变 <!DOCTYPE html> <html ng-app='app'> <head><meta cha ...

最新文章

  1. 怎么写shell脚本才能不耍流氓?
  2. [CES 2018] TPCast发布升级版本,将支持微软MR设备
  3. 【采用】智能反欺诈算法概览及典型应用案例
  4. python:Anaconda+Pycharm Community版+Django搭建属于自己简易WEB
  5. SQL查询存在一个表而不在另一个表中的数据
  6. JavaScript实现Fast Powering算法(附完整源码)
  7. SEO原创文章制作器
  8. 基于redis实现分布式锁思考
  9. 2020年4月数据库流行度排行:MySQL 成事实王者,国产openGauss引期待
  10. mysql分表和分区的区别
  11. leetcode字节跳动探索
  12. hbase shell基础和常用命令详解
  13. 既往不恋,当下不杂,未来不迎
  14. Python爬虫技术-根据【理财】关键字爬取“巨潮资讯网”的title
  15. 将孤独视作挑战,倾听内心,自我对话
  16. 布尔-施罗德逻辑代数中的命题逻辑-- 布尔逻辑之七(尾篇**)
  17. Protobuf数据格式解析
  18. 如何查看IE浏览器的版本
  19. 微信小程序 -- 订阅消息wx.requestSubscribeMessage
  20. tensorboard使用界面介绍以及使用方法(看这篇就够了,都有源码可以直接测试)

热门文章

  1. 开发工具总结(2)之全面总结Android Studio2.X的填坑指南
  2. 使用栈实现队列 Implement Queue using Stacks
  3. Laravel Composer 命令大全
  4. 快速理解和使用 ES7 await/async
  5. mysql 迁移到tidb_通过从MySQL迁移到TiDB来水平扩展Hive Metastore数据库
  6. php不发送referer,php – 注意:未定义的索引:HTTP_REFERER
  7. advanced installer更换程序id_好程序员web前端培训分享kbone高级-事件系统
  8. JavaScript循环:标签语句,继续语句和中断语句说明
  9. 如何在iOS上运行React Native应用
  10. 我们如何使用CircleCI 2.0来构建Angular应用并将其部署到AWS S3