文档章节

Django1.10.x i18n国际化

小致Daddy
 小致Daddy
发布于 2017/03/14 15:58
字数 601
阅读 70
收藏 0

官方原文:https://docs.djangoproject.com/en/1.10/#internationalization-and-localization

国际化与本地化的目的为了能为各个不同的用户以他们最熟悉的语言和格式来显示网页。

Django能完美支持文本翻译、日期时间和数字的格式化、时区。

另外,Django还有两点优势:

  1. 允许开发者和模板作者指定他们哪些app应该被翻译或被格式化为本地形式。
  2. 允许用户根据自己的偏好来实现本地化显示。翻译依据语言,格式化依据国家, 这些信息由浏览器中的Accept-Language头来决定。不过目前为止时区还未能实现

配置

实际上django的国际化做的非常好了,配置很简单。

settings.py

首先在settings中,添加如下内容:

from django.utils.translation import ugettext_lazy as _
LOCALE_PATH = {
    os.path.join(BASE_DIR, 'locale')
}

LANGUAGES = (
    ('en', _('English')),
    ('zh-cn', _('Simplified Chinese'))
)

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

 通过LANGUAGES执行语言列表,LOCALE_PATHS指定国际化目录。

翻译

在项目根目录下面创建一个locale文件夹,然后使用命令创建国际化文件:

python manage.py makemessages -l zn_CN

执行完后,locale文件夹下面创建zh_CN/LC_MESSAGES/django.po,里面的内容类似下面:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-14 15:51+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: .\categories\admin.py:17 .\forum\admin.py:15
msgid "is visible"
msgstr ""

#: .\categories\models.py:18
msgid "parent category"
msgstr ""

#: .\categories\models.py:20
msgid "name"
msgstr ""

#: .\categories\models.py:21 .\covers\models.py:14 .\covers\models.py:27
#: .\covers\models.py:28
msgid "cover"
msgstr ""

#: .\categories\models.py:23 .\forum\models.py:36
msgid "slug"
msgstr ""

#: .\categories\models.py:24
msgid "description"
msgstr ""

#: .\categories\models.py:30 .\categories\models.py:31 .\forum\models.py:40
msgid "category"
msgstr ""

#: .\config\settings.py:140
msgid "English"
msgstr ""

#: .\config\settings.py:141
msgid "Simplified Chinese"
msgstr ""

#: .\covers\models.py:16
msgid "caption"
msgstr ""

#: .\forum\models.py:34
msgid "title"
msgstr ""

#: .\forum\models.py:35
msgid "body"
msgstr ""

#: .\forum\models.py:37
msgid "views"
msgstr ""

#: .\forum\models.py:38
msgid "pinned"
msgstr ""

#: .\forum\models.py:41
msgid "author"
msgstr ""

#: .\forum\models.py:42
msgid "tags"
msgstr ""

#: .\forum\models.py:44 .\replies\models.py:12
msgid "replies"
msgstr ""

#: .\forum\models.py:50
msgid "post"
msgstr ""

#: .\forum\models.py:51
msgid "posts"
msgstr ""

#: .\replies\models.py:11
msgid "reply"
msgstr ""

将你上面需要翻译的内容写到这里面来即可。比如name要翻译成名称

编译翻译

写好了所有的翻译后,再执行:

python manage.py compilemessages

这时候会生成文件zh_CN/LC_MESSAGES/django.mo,这个是最终的目标文件了。

© 著作权归作者所有

小致Daddy

小致Daddy

粉丝 193
博文 576
码字总数 602911
作品 0
济南
技术主管
私信 提问
vue中如何使用i18n实现国际化

一、前言 在4k广告机中需要实现多语言切换,这时候接触到国际化,前端框架无数,其中几种热门的框架都有相匹配的国际化插件工具。比如: + + + + 在4K广告机项目中使用的前端框架为Vue,故而...

gorkys
09/04
0
0
NG-ZORRO 8.3.0 发布,Ant Design 的 Angular 实现

NG-ZORRO 8.3.0 发布了。NG-ZORRO 是 Ant Design 的 Angular 实现,用于开发和服务于企业级后台产品。 新版本更新内容如下: Bug Fixes cascader: 支持假值, 除了 / ) (#4119) (0cb44ac), c...

xplanet
09/11
731
1
Spring Boot 与 I18N

什么是 I18N I18N 是 "国际化" 的简称,对于程序来说,在不修改内部代码的情况下,根据不同语言及地区显示相应的界面 Spring Boot 结合 I18N 1. Spring Boot 加入 Thymeleaf 引入 Thymeleaf ...

林塬
2018/01/04
0
0
前端框架Vue(16)——vue-i18n ,vue项目中如何实现国际化

一、前言 趁着10月的最后一天,来写一篇关于前端国际化的实践型博客。国际化应该都不陌生,就是一个网站、应用可以实现语言的切换。 在这就不谈原理,只说说如何实现中英文的切换。做技术的总...

docallen
2017/10/31
0
0
前端框架Vue.js——vue-i18n ,vue项目中如何实现国际化

一、前言 趁着10月的最后一天,来写一篇关于前端国际化的实践型博客。国际化应该都不陌生,就是一个网站、应用可以实现语言的切换。 在这就不谈原理,只说说如何实现中英文的切换。做技术的总...

飞翔的熊blabla
01/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

arduino项目-1. 模拟楼道灯

@toc 1.1 情景说明 说明 漆黑的夜晚,当有人非法进入一所房屋,房屋内的灯在恰当的时间亮起,也许会有效阻止非法活动的继续。 效果展示 1.2 实验器材 器材名称 数量 继电器 1 人体红外感应器...

acktomas
21分钟前
3
0
Nacos 常见问题及解决方法

Nacos 开源至今已有一年,在这一年里,得到了很多用户的支持和反馈。在与社区的交流中,我们发现有一些问题出现的频率比较高,为了能够让用户更快的解决问题,我们总结了这篇常见问题及解决方...

阿里云官方博客
28分钟前
4
0
pinyin4j 满足中文转拼音的需求

引入依赖 // https://mvnrepository.com/artifact/com.belerweb/pinyin4j //汉字转拼音compile group: 'com.belerweb', name: 'pinyin4j', version: '2.5.1' 写入中文转拼英的工具......

edison_kwok
33分钟前
3
0
IPSE接入Substrate/Polkadot插槽实现互操作性的运行原理

Substrate框架将区块链的众多功能都模块化,对于开发者来说,只是一个选择的问题,同时还保持了众多的可以定制的功能和模块,比如底层通信模块,比如账户体系,比如共识机制等都是可以自己定...

IPSE
39分钟前
155
0
linux配置安装phpMyAdmin的步骤记录

1、首先在phpMyAdmin官方网站 http://www.phpmyadmin.net/downloads下载源码包,或者通过脚本之家进行下载://www.jb51.net/codes/405261.html ,下载后上传到服务器解压即可,或者通过Linux...

蜗牛女孩
40分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部