zoukankan      html  css  js  c++  java
  • Django项目国际化

    Django项目国际化

    • 实验环境: py3.4.3 + django1.8.2 + Windows
    • 项目设置
        >django-admin startproject I18nDjango
        >manage.py startapp i18n

    1. 安装 gettext 。下载

    2. 在源码中标记须要翻译的字符串

    (1) 通过 ugettext() 标记views.py 中的待翻译字符串

    from django.utils.translation import ugettext
    
    def index(request):
        return HttpResponse(ugettext('hello world!'))

    (2) 通过 {% trans %}标记模板中的待翻译字符串

    {% load i18n %}
    <h1>translation</h1>
    <p>{% trans "This is the p element." %}</p>

    3. 创建语言相关的资源文件

    (1) 在project根文件夹下’mkdir locale’

    (2) 通过以下命令创建资源文件(.po file). 这个命令能提出 hard code string

    django-admin.py makemessages -l de

    (3) 在settings.py中设置LOCALE_PATHS。并保证以下的变量为True

    LANGUAGE_CODE = 'en-us'
    TIME_ZONE = 'UTC'
    USE_I18N = True
    USE_L10N = True
    LOCALE_PATHS = ('locale/',
    )

    4. 更新资源文件

    django-admin.py makemessages -a

    5. 将.po资源文件编译为二进制的更有效率的.mo文件

    django-admin.py compilemessages

    6. 在 settings.py 中加入中间件

    以下这个中间件能让Django站点依据配置或Accept-Language返回资源文件里相应语言的字符串

    MIDDLEWARE_CLASSES = (
        ... ...
        'django.middleware.locale.LocaleMiddleware',
    )

    实验代码请看
    * https://github.com/ybdesire/WebLearn/tree/master/14_Django/I18nDjango

    很多其它Djang的I18n细节请看 这里

  • 相关阅读:
    java学习网址大全
    Js 提示框
    api帮助文档及常见IT学习网站
    传参给 jsp
    jsp>action
    二级横菜单显示+sitemesh母板应用
    request,session
    map>json
    清空image画布并改变大小填充背景色
    取汉字首字母方法
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7285917.html
Copyright © 2011-2022 走看看