相关疑难解决方法(0)

django i18n:确保你有GNU gettext工具

我尝试django-admin.py makemessages -l zh_CN但有错误:

CommandError: Can't find msguniq. Make sure you have GNU gettext tools 0.15 or newer installed.
Run Code Online (Sandbox Code Playgroud)

在我使用brew install gettext之后,它仍然出错了.
我需要做点什么吗?这是我的终端截图
请指导我谢谢.

在此输入图像描述

python django

22
推荐指数
5
解决办法
2万
查看次数

Django makemessages errors未知编码"utf8"

我在这里搜索了谷歌!但是没有成功找到解决方案,我真的是使用python的noob但是能够安装与yum分开的python.

现在,我需要重新编译OSQA系统的语言包,但是得到以下消息:

Error: errors happened while running xgettext on __init__.py
xgettext: ./Django-1.2.3/tests/regressiontests/views/__init__.py:1: Unknown encoding "utf8". Proceeding with ASCII instead.
xgettext: Non-ASCII string at ./Django-1.2.3/tests/regressiontests/views/__init__.py:7.
          Please specify the source encoding through --from-code or through a comment
          as specified in http://www.python.org/peps/pep-0263.html.
Run Code Online (Sandbox Code Playgroud)

我试过,但没有成功解决它,在manage.py文件中设置utf-8编码,但也没有成功.

有人能帮我解决一下吗?:(

谢谢,最好的问候!

python django gettext

14
推荐指数
4
解决办法
6808
查看次数

Django:i18n - 改变语言

我正在安装model_translation,rosetta,locale_url.但是不起作用改变语言.

我的settings.py:

LANGUAGE_CODE = 'ru'
MODELTRANSLATION_TRANSLATION_REGISTRY = "project.translation"
TRANSLATION_REGISTRY = "project.translation"
ugettext = lambda s: s
LANGUAGES = (
    ('ru', ugettext(u'Russian')),
    ('uk', ugettext(u'Ukrainian')),
)
Run Code Online (Sandbox Code Playgroud)

我对语言切换的看法:

def set_language(request):
    next = request.REQUEST.get('next', None)
    if not next:
        next = request.META.get('HTTP_REFERER', None)
    if not next:
        next = '/'
    response = http.HttpResponseRedirect(next)
    if request.method == 'GET':
        lang_code = request.GET.get('language', None)
        if lang_code and check_for_language(lang_code):
            if hasattr(request, 'session'):
                request.session['django_language'] = lang_code
            else:
                response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
    return response
Run Code Online (Sandbox Code Playgroud)

在模板中:

<a href="{% url set_lang %}?lang=uk&next={{request.path}}">Ukranian</a>
Run Code Online (Sandbox Code Playgroud)

我的中间件:

MIDDLEWARE_CLASSES = ( …
Run Code Online (Sandbox Code Playgroud)

django internationalization

11
推荐指数
2
解决办法
2万
查看次数

使用翻译后的 url 重定向在 Django 中切换语言

我已经正确安装了国际化。

它适用于以下网址:

/en/bookings/ #English
/es/reservas/ #Spanish
Run Code Online (Sandbox Code Playgroud)

在主页中,语言切换也能正常工作。

- 有什么问题吗?

当我更改翻译页面中的语言时,例如 /en/bookings/,如果我将语言转换为西班牙语 (es),我将再次重定向到 /en/bookings/ 并看到英文页面。

如果我更改前缀(如这个答案),重定向将转到不存在的 /es/bookings/ 。

我不想被重定向到主页。

- 我喜欢什么?

如果我在 /en/bookings/ 并切换到西班牙语,我想重定向到 /es/reservas/,所有翻译的 url。

什么是最好的方法?

谢谢。

django url internationalization

4
推荐指数
2
解决办法
5094
查看次数

没有表单选择和提交按钮的情况下如何使用Django i18n / setlang?

我需要将语言选择器呈现为Django中的无序列表,例如:

<ul>
  ...
  <li><a href="???">EN</a></li>
  <li><a href="???">FR</a></li>
<ul>
Run Code Online (Sandbox Code Playgroud)

我使用的是i18n/set_language不带Django的Django i18n_pattern,如果我使用以下文档中提供的表格,则效果很好:

{% load i18n %}

<form action="{% url 'set_language' %}" method="post">{% csrf_token %}
    <input name="next" type="hidden" value="{{ redirect_to }}" />
    <select name="language">
        {% get_current_language as LANGUAGE_CODE %}
        {% get_available_languages as LANGUAGES %}
        {% get_language_info_list for LANGUAGES as languages %}
        {% for language in languages %}
            <option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected="selected"{% endif %}>
                {{ language.name_local }} ({{ language.code }})
            </option>
        {% endfor …
Run Code Online (Sandbox Code Playgroud)

django django-forms django-i18n

2
推荐指数
1
解决办法
855
查看次数