ユーザーの言語で使用可能な言語をリストする言語セレクターを使用して、翻訳を追加しているdjango Webサイトがあります。ドロップダウンにネイティブのスペルも含めたいと思います。
現在、次のようになっています:
英語
オランダ語
簡体字中国語
中国語に切り替えると、次のようになります。
英语荷
兰语<br> 简体中文
私はそれを次のようにしようとしています:
英語/英語
オランダ語/オランダ語
簡体字中国語/简体中文
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に次のような別の項目を追加することでした:
LANGUAGES = (
('en', ugettext('English'), 'English'),
('nl', ugettext('Dutch'), 'Nederlands'),
('zh-ch', ugettext('Simplified Chinese'), '简体中文'),)
しかし、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>
ロシア語と中国語のスクリプトが疑問符として表示されます - ロシア語\???????、中国語-????
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
HTML にある他のロシア語と中国語のテキスト (このフォーム以外) は正常に表示されます。