文档章节

django国际化

上官清偌
 上官清偌
发布于 2017/09/12 09:13
字数 757
阅读 187
收藏 0

精选30+云产品,助力企业轻松上云!>>>

最近在研究django国际化,最终还是研究好了

1:开启国际化的支持,需要在settings.py文件中设置

MIDDLEWARE_CLASSES = (
   'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',//放在 django.contrib.sessions的后面 
)
 
 
LANGUAGE_CODE = 'zh_Cn'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
 
LANGUAGES = (
    ('en', ('English')),
    ('zh-cn', ('中文简体')),
)
 
#翻译文件所在目录,需要手工创建
LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)
 
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            #insert your TEMPLATE_DIRS here
            os.path.join(BASE_DIR,  'templates'),
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                "django.core.context_processors.i18n",//记得要加上这句话
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',

                # 'utils.context_processors.clusters',
            ],
        },
    },
]

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

django-admin.py makemessages -l zh_CN

3:执行完后,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-09-11 16:40+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"

#: api/keystone.py:53
#, python-format
msgid "%(type)s (%(backend)s backend)"
msgstr ""

#: api/service/resource/pool_base.py:112
msgid "running"
msgstr ""

#: api/service/resource/pool_base.py:112
msgid "OUT"
msgstr ""

#: api/util.py:26
#, python-format
msgid "%s days %s hours ago"
msgstr ""

#: api/util.py:29
#, python-format
msgid "%s minutes ago"
msgstr ""

#: api/util.py:30
#, python-format
msgid "%s seconds ago"
msgstr ""

#: api/util.py:42 api/util.py:57
#, python-format
msgid "%s days %s hours"
msgstr ""

#: api/util.py:45 api/util.py:60
#, python-format
msgid "%s minutes"
msgstr ""

#: api/util.py:46 api/util.py:61
#, python-format
msgid "%s seconds"
msgstr ""

#: api/util.py:78
msgid "Unable to retrieve instance tenant information."
msgstr ""

#: api/util.py:91
msgid "Unable to retrieve instance size information."
msgstr ""

#: api/util.py:106
msgid "Unable to retrieve instance user information."
msgstr ""

#: templates/template2/menu.html:13
#:菜单
msgid "Dashboard"
msgstr "首页"

msgid "Infrastructure"
msgstr "基础设施"

msgid "Cluster"
msgstr "集群"

msgid "Resource"
msgstr "资源"

msgid "App Center"
msgstr "应用中心"

msgid "System"
msgstr "系统"

#:System下的子菜单
msgid "Authentication"
msgstr "认证"

msgid "Account"
msgstr "帐户"

msgid "Task"
msgstr "任务"

msgid "Schedule"
msgstr "计划表"

msgid "Policy"
msgstr "策略"

msgid "Periodic Task"
msgstr "周期性任务"

msgid "Backup & Log"
msgstr "备份和日志"

msgid "Backup"
msgstr "备份"

msgid "Snapshot"
msgstr "快照"

msgid "Log"
msgstr "日志"

msgid "Template"
msgstr "模板"

msgid "CSM"
msgstr "系统管理"

msgid "Setting"
msgstr "设置"

msgid "Upgrade"
msgstr "升级"

msgid "License"
msgstr "许可证"

#: templates/dashboard/index.html:36
# 主页
msgid "Global View"
msgstr "地图"

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

django-admin.py compilemessages

5:在html中的应用

  • 注意

<title>{% trans 'str'%}</title>

<!DOCTYPE html>
{% load i18n %}//要加翻译的前缀 
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
<form action="/url 'go'/" method="post" class="smart-green">
    <h1>留言信息
        <span>{% trans 'test' %}</span>//要翻译的信息加入其中
    </h1>
    <label>
        <span>姓名 :</span>
        <input id="name" type="text" name="name" value="{% ifequal my_message.name|slice:"3"  "你好吗" %}我不好{% else %}not name{% endifequal %}" class="error" placeholder="请输入您的姓名"/>
        <div class="error-msg"></div>
    </label>

    <label>
        <span>邮箱 :</span>
        <input id="email" type="email" value="{{ my_message.email }}" name="email" placeholder="请输入邮箱地址"/>
        <div class="error-msg"></div>
    </label>

    <label>
        <span>联系地址 :</span>
        <input id="address" type="text" value="{{ my_message.address }}" name="address" placeholder="请输入联系地址"/>
        <div class="error-msg"></div>
    </label>
    <label>
        <span>留言 :</span>
        <textarea id="message" name="message"   placeholder="请输入你的建议">{{ my_message.message }}</textarea>
        <div class="error-msg"></div>
    </label>
    <div class="success-msg"></div>
    <label>
        <span>&nbsp;</span>
        <input type="submit" class="button" value="提交"/>
    </label>
    <input type='hidden' name='csrfmiddlewaretoken' value='SfHkbL4feo1G00sJQtbO7TtLN4c2BUwa' />
    {% csrf_token %}
</form>

</body>
</html>
上官清偌
粉丝 11
博文 87
码字总数 123753
作品 0
浦东
程序员
私信 提问
加载中
请先登录后再评论。
Django 国际化实例及原理分析

当 Web 服务搭建好以后,可以接收来自全球不同国家用户访问。这样就要求开发人员调整软件,使之能适用于不同的语言,即国际化和本地化。国际化 -- Internationalization,i 和 n 之间有 18 个...

红薯
2011/02/03
5.8K
9
Django i18n国际化

最近在看Django的国际化,看了很多贴子,终于有了比较系统的认识,在这里做一下简单总结。 先来看两个概念: 国际化:是指为了该软件在任何地区的潜在使用而进行程序设计的过程。 它包括了为...

残夜
2012/04/05
0
0
django的多语言国际化

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

osc_0vv1t8wx
2019/12/22
0
0
Django2.* 国际化

最近在项目里需要用到国际化,在网上找了很多方法,现在做个总结。 Django框架天然支持国际化,只要在settions.py 文件中设置国际化相关配置就可以使用这个功能了。 下面是与国际化相关的配置...

osc_wfgyoc6f
2019/04/13
2
0
“No module named context_processors”

之前因为django国际化的问题在settings.py里面改了很多东西,国际化是好使了,但是今天要用站点管理admin的时候出!错!了! 我前天用的时候还好好的啊,我的models.py和admin.py 都没有问题...

osc_x0e3sllx
2018/01/15
2
0

没有更多内容

加载失败,请刷新页面

加载更多

Python 二十三大实践、编码建议和技巧

点击上方“测试开发技术”,选择设为“设为星标” 优质文章,第一时间送达! 近期推文: 2019年下,测试开发技术精选合集 软件测试工程师必备:如何做好接口测试? 阅读全文大概需要 10分钟。...

狂师
02/12
16
0
大佬评清华Jittor,这是怎样一个深度学习框架?

点击上方“机器学习与生成对抗网络”,关注"星标" 获取有趣、好玩的前沿干货! 如何评价清华大学发布的自研深度学习框架-计图(Jittor)? 2020年3月20日,清华自研的深度学习框架,正式对外开...

AI_bryant8
03/21
15
0
MySQL 中 ACID 底层内部实现原理详解

“ ACID 事务底层内部实现原理” Hello,大家好。我是公众号“ 八点半技术站 ”的小编-Bruce.D。 今天是周二(2020-03-24),还是那句俗语 “一日之计在于晨” ,因此分享给大家的是 「mysql...

八点半的Bruce丶D
03/24
13
0
利用Makisu构建容器镜像

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 本系列文章深入研究了容器镜像构建的最新技术。我们已经介绍了Podman和Buildah、I...

osc_8exjk9uk
25分钟前
13
0
业务代码耗时操作优化

前几天我把我们小程序登录接口性能优化了,优化之前登录接口响应时间大概是 300 ms 左右,优化后的响应时间大概在 70 ms 左右。我们小程序登录接口涉及到的业务操作除了基本的登录验证功能外...

python6666
2019/11/17
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部