我尝试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的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编码,但也没有成功.
有人能帮我解决一下吗?:(
谢谢,最好的问候!
我正在安装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) 我已经正确安装了国际化。
它适用于以下网址:
/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中的无序列表,例如:
<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)