【发布时间】:2012-02-22 21:38:09
【问题描述】:
问题是:如果我将英语设置为主要语言( LANGUAGE_CODE = 'en' ),那么一切正常。如果我们从具有英语语言环境的浏览器请求站点,我们会看到英语变体,类似地,对于具有俄语语言环境的浏览器。
但如果我设置 LANGUAGE_CODE = 'ru' 那么我们无论如何都会看到俄语变体。
那么为什么英语是默认语言并被 Django 用作 msgid?
请看下面我项目的设置。
在我的 settings.py 中,我尝试将非英语设置为主要语言:
LANGUAGE_CODE = 'ru'
LANGUAGES = ( ( 'en', "English", ), ( 'ru', "Russian", ), )
然后我有 en/LC_MESSAGES/django.po:
msgid "SITE_MAIN_TITLE"
msgstr "D'argent: Cosmetics, Hair Care, Parfume"
还有 ru/LC_MESSAGES/django.po:
msgid "SITE_MAIN_TITLE"
msgstr "D'argent – косметика, средства по уходу за волосами, парфюмерия"
在模板 HTML 中:
...
<title>{% block title %}{% trans "SITE_MAIN_TITLE" %}{% endblock %}</title>
...
【问题讨论】:
-
您使用的是哪种语言的翻译器(包)?
-
msgid中的值反映了trans标签内的值,所以
{% trans "SITE_MAIN_TITLE" %}总是会生成带有msgid "SITE_MAIN_TITLE"的翻译文件。设置LANGUAGE_CODE = 'ru'后到底是什么问题? -
@Secator 问题是当我们设置 LANGUAGE_CODE = 'ru' 时,Django 仅适用于 ru/LC_MESSAGES/django.po,即使 http 客户端的当前语言是英语。
标签: django