Ste*_*eve 5 django translation internationalization
我有一个django网站我正在使用语言选择器添加翻译,该语言选择器列出了用户语言中的可用语言.我想让下拉列表包括原生拼写.
目前它看起来像这样:
英语
荷兰语
简体中文
当我切换到中文时,它看起来像:
英语
荷兰语
简体中文
我想让它看起来像:
英语/英语
荷兰语/荷兰语
简体中文/简体中文
settings.py包括:
ugettext = lambda s: s
LANGUAGES = (
('en', ugettext('English')),
('nl', ugettext('Dutch')),
('zh-cn', ugettext('Simplified Chinese')),
)
Run Code Online (Sandbox Code Playgroud)
base.html文件:
{% load i18n %}
{% get_available_languages as LANGUAGES %}
<form action="/i18n/setlang/" method="post">{% csrf_token %}
<input name="next" type="hidden" value="/" />
{% csrf_token %}
<select name="language">
{% for lang in LANGUAGES %}
<option value="{{ lang.0 }}">{{ lang.1 }}</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
Run Code Online (Sandbox Code Playgroud)
我的想法是将另一个项目添加到母语是LANGUAGES,例如:
LANGUAGES = (
('en', ugettext('English'), 'English'),
('nl', ugettext('Dutch'), 'Nederlands'),
('zh-ch', ugettext('Simplified Chinese'), '????'),)
Run Code Online (Sandbox Code Playgroud)
但Django似乎期待LANGUAGES的2项元组.还有其他想法吗?
编辑每个亚历山大的评论: 我认为这可能是一个更简单的解决方案,但在更改代码后:
<form action="/i18n/setlang/" method="post">{% csrf_token %}
<input name="next" type="hidden" value="/" />
<select name="language">
<option value="en">English</option>
<option value="nl">Dutch\Nederlands</option>
<option value="ru">Russian\???????</option>
<option value="zh-cn">Simplified Chinese-????</option>
</select>
<input type="submit" value="Go" />
</form>
Run Code Online (Sandbox Code Playgroud)
俄文和中文脚本出现问号 - 俄文\ ???????,中文 - ????
我<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
在html中,其他俄语和中文文本(在此表单之外)看起来很好.
试试这个:
LANGUAGES = (
('en', '{}/{}'.format(ugettext('English'), 'English')),
('nl', '{}/{}'.format(ugettext('Dutch'), 'Nederlands')),
('zh-cn', '{}/{}'.format(ugettext('Simplified Chinese'), '????')),
)
Run Code Online (Sandbox Code Playgroud)
然后您可以在模板中使用它:
{% for lang in LANGUAGES %}
<option value="{{ lang.0 }}">{{ lang.1 }}</option>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3717 次 |
| 最近记录: |