我有一個django網站我正在使用語言選擇器添加翻譯,該語言選擇器用用戶的語言列出可用的語言。我希望將下拉列表包含原生拼寫。本地語言和本地語言的Django語言選擇器
目前,它看起來像這樣:
英語
荷蘭
簡體中國
當我切換到中國,它看起來像:
英語
荷蘭語
簡體中文
我試圖讓它看起來像:
英文/英文
荷蘭/荷蘭
簡體中國/簡體中文
settings.py包括:
ugettext = lambda s: s
LANGUAGES = (
('en', ugettext('English')),
('nl', ugettext('Dutch')),
('zh-cn', ugettext('Simplified Chinese')),
)
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>
我的想法是到另一個項目添加到語言是母語,如:
LANGUAGES = (
('en', ugettext('English'), 'English'),
('nl', ugettext('Dutch'), 'Nederlands'),
('zh-ch', ugettext('Simplified Chinese'), '簡體中文'),)
但Django似乎期待一個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>
俄羅斯和中國的腳本都顯示爲問號 - 俄羅斯\ ?? ?????,中文 - ????
我有<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
在html中,其他俄文和中文文本(此表格以外)顯示正常。
我們並沒有打擾自己這樣一個問題:硬編碼模板中的一部分,這就是全部。 – 2012-07-18 20:27:57
您必須切換/設置語言並枚舉所有語言才能生成每種語言名稱的所有可能的本機翻譯。只需爲每種您想要的語言嵌入一個預定義的名稱字典,然後將其傳遞給模板,就容易得多。 – astevanovic 2012-07-18 22:53:16