2012-01-31 114 views
2

问题是:如果我将英语设置为主要语言(LANGUAGE_CODE ='en'),那么一切正常。如果我们使用英文区域设置从浏览器请求网站,我们会看到英文版本,并且类似于俄文区域设置的浏览器。Django本地化:如何使用非英语语言作为'Translate-From'语言

但是,如果我设置LANGUAGE_CODE ='ru'那么我们在任何情况下都会看到俄罗斯变体。

那么为什么英语是默认的,并且被Django用作msgid?

请参阅下面我的项目的设置。


在我settings.py我尝试设置非英语语言作为主要语言:

LANGUAGE_CODE = 'ru' 
LANGUAGES = (('en', "English",), ('ru', "Russian",),) 

然后,我有恩/ 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> 
... 
+0

您正在使用哪种语言翻译器(包)? – Asif 2012-01-31 08:07:09

+0

msgid中的值反映了trans标签内部的值,因此'{%trans“SITE_MAIN_TITLE”%}'将全部生成带有“msgid”SITE_MAIN_TITLE“'的转换文件。设置'LANGUAGE_CODE ='ru''后到底是什么问题? – 2012-01-31 19:58:20

+0

@Secator问题是,即使当前的http客户端语言是英文,Django也只能在设置LANGUAGE_CODE ='ru'时使用ru/LC_MESSAGES/django.po。 – sergzach 2012-02-01 06:01:08

回答