django-translation:如何翻译语言
发布时间:2020-12-20 13:23:25 所属栏目:Python 来源:网络整理
导读:官方 django doc建议在settings.py中写下以下内容 ugettext = lambda s: sLANGUAGES = ( ('de',ugettext('German')),('en',ugettext('English')),) 通过这种安排,django-admin.py makemessages仍会找到并标记这些字符串以进行翻译,但翻译不会在运行时发生 –
官方
django doc建议在settings.py中写下以下内容
ugettext = lambda s: s LANGUAGES = ( ('de',ugettext('German')),('en',ugettext('English')),) 通过这种安排,django-admin.py makemessages仍会找到并标记这些字符串以进行翻译,但翻译不会在运行时发生 – 所以你必须记住将语言包装在真实的ugettext()中在运行时使用LANGUAGES的代码. 但是,我无法理解在哪里用真正的翻译标签包装代码? 例如我在模板中的代码是 <form id="locale_switcher" method="POST" action="{% url localeurl_change_locale %}"> <label><b>{% trans "Language" %}:</b></label> <select name="locale" onchange="$('#locale_switcher').submit()"> {% for lang in LANGUAGES %} <option value="{{ lang.0 }}" {% ifequal lang.0 LANGUAGE_CODE %}selected="selected"{% endifequal %}> {{ lang.1 }}</option> {% endfor %} </select> <noscript> <input type="submit" value="Set" /> </noscript> </form> 这里提出的解决方案:Using settings.LANGUAGES with properly translated names using gettext() 显示空选择框,任何语言都没有文字 解决方法
以下代码适用于我:
// settings.py ugettext = lambda s:s LANGUAGES = ( ('de',) // template {% load i18n %} {% get_available_languages as LANGUAGES %} {% for LANGUAGE in LANGUAGES %} <p>{{ LANGUAGE.0 }} - {{ LANGUAGE.1 }}</p> {% endfor %} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |