zoukankan      html  css  js  c++  java
  • pinax 配置 i18n 中文化

    类似配置 django i18n 的文章不少,但是有些地方需要注意,否则总是出现一些莫名其妙的问题。本文以 pinax 为例子,重点说明容易出现问题的地方。

    0、建立 pinax 环境,具体请参考 pinax 的 document。

    1、建立 locale 文件夹。

        md locale

    2、执行命令创建 po 文件。

        django-admin.py makemessages -l zh_CN -v2

        注意,这里一定要用 zh_CN 而不是 zh-cn,否则汉化没有效果。 -v2 是详细输出参数。

    3、翻译生成的 po 文件。

        在 locale/zh_CN/LC_MESSAGES/django.po

        翻译时推荐用 poedit 工具,否则很可能会出现文件格式错误。 PS: 有绿色版本。

    4、编译 po 文件。

      django-admin.py compilemessages

        PS: pinax 有人提供了 mo 文件,见参考文章[4]。

    5、更改 Settings.py

    #TIME_ZONE = 'Asia/Shanghai'
    LANGUAGE_CODE = 'zh-cn'  # 添加默认语言
    LANGUAGES = (
            ('en', u'English'),
            ('zh-cn', u'中文'),    # settings.py 中的语言必须用 zh-cn,否则会出现不能切换语言的毛病。
    )
    

      另外可能需要在 MIDDLEWARE_CLASSES 添加 LocaleMiddleware

        我认为这里的 'django.middleware.locale.LocaleMiddleware',  已经包含在了 'account.middleware.LocaleMiddleware',

        LocaleMiddleware 是用来开启语言切换功能的。

        在 TEMPLATE_CONTEXT_PROCESSORS 中添加 'django.core.context_processors.i18n'

        按需添加。

    6、重启 server

        python manage.py runserver

        **如果需要对 pinax 整体翻译,需要在 pinax 目录下先按照如上步骤做翻译,然后将 locale 文件夹拷贝到自己项目目录中 locale_pinax ,然后在 settings.py 中设置参数

    LOCALE_PATHS = ( os.path.join(PROJECT_ROOT, 'pinax_locale'),
                    )
    

       ***如果在翻译 pinax 时出现错误,如:

    raise SyntaxError(msg) SyntaxError Translation blocks must not include other block tag  already_logged_in.html

        需要将 already_logged_in.html 中涉及到 trans transblock 代码块中的 url 语法做修改,如:

        {% url acct_logout as m_acct_logout %}
        <p>{% blocktrans %}You are already logged into the site. To login with a different OpenID please <a href="/openid/logout/?next={{ m_acct_logout }}">logout</a> first.{% endblocktrans %}
    
    

    参考文章:

    [1]http://www.paolocorti.net/2009/12/18/the-pinax-tutorial-3-internationalization-of-the-application/

    [2]http://www.cnblogs.com/itrust/archive/2010/05/31/1748358.html

    [3]https://humou.net/public/doc/django/doc/tut15.html

    [4]http://www.himysql.com/python/pinax-071-chinese-simplified.html

    [5]http://docs.djangoproject.com/en/dev/topics/i18n/

  • 相关阅读:
    python-阿里镜像源-pip
    python-Web-django-图形验证
    markdown-博客编辑
    python-爬虫-史书典籍
    python-爬虫-requests
    python-Web-项目-svn和git
    python-Web-数据库-Redis
    Codeforces Round #617 (Div. 3) A~D
    Educational Codeforces Round 81 (Rated for Div. 2)
    Codeforces Round #609 (Div. 2) A到C题
  • 原文地址:https://www.cnblogs.com/sunblackshine/p/1939751.html
Copyright © 2011-2022 走看看