所有,我正在尝试创建一个多语言网站,必须支持(其中包括)美英和英英。
我的设置包含:
LANGUAGES = (
('de', u'Deutsch'),
('en_GB', u'English (UK)'),
('en', u'English (US)'),
('es', u'Español'),
('fr', u'Français'),
('pt', u'Português'),
)
所有其他语言都运作良好;用户可以切换语言和事情。问题是en_GB。
我尝试将上述配置更改为'en-GB','en-gb或'en_gb',但行为没有变化。
看来中间件只支持语言路径的前两个字母?如何正确支持基础语言的多种方言?这很容易就是es-US,es-MX,es-ES或fr-FR,fr-CA或de-DE,de-AT,de-CH等。
我正在使用Django-CMS 2.3.5(这是撰写本文时的最新产品版本)在Python 2.7.2上的Django 1.4.5上。
更新:我现在似乎已经开始工作了。我认为有两件事阻碍了我的进步。 1)谈到英语时,最好不要将一个用作'en'而另一个用作'en-gb'。 2)在我的所有实验中,我怀疑我在数据库中弄乱了Django-CMS的记录。删除我的所有页面并重新开始似乎已经解决了这个问题(注意:这会比生产环境更糟糕!)
最后,我发现这些设置对我有用:
LANGUAGE_CODE = 'en-us'
LANGUAGES = (
('en-us', u'English (US)'),
('de', u'Deutsch'),
('en-gb', u'English (UK)'),
('es', u'Español'),
('fr', u'Français'),
('pt', u'Português'),
)
CMS_LANGUAGES = LANGUAGES
CMS_LANGUAGE_CONF = {
'de': ['en-gb', 'en-us', 'fr', 'es', 'pt'],
'en-gb': ['en-us', 'fr', 'es', 'de', 'pt'],
'en-us': ['en-gb', 'fr', 'es', 'de', 'pt'],
'es': ['pt', 'fr', 'en-gb', 'en-us', 'de'],
'fr': ['es', 'pt', 'en-gb', 'en-us', 'de'],
'pt': ['es', 'fr', 'en-gb', 'en-us', 'de'],
}
CMS_HIDE_UNTRANSLATED = False
另外,显然Django-CMS的模板标签page_language_url只返回小写语言路径元素,因此en_GB / en-GB可以在一个级别上工作,但由于这个原因,UI将无法匹配所选语言。 / p>
答案 0 :(得分:3)
Django I18N Docs解释两个代码,如下所示。 en_GB 是英国(英国) 区域设置。 en-CA 在加拿大使用英语。
答案 1 :(得分:0)
LANGUAGES = (
('en-us', u'English (US)'),
('de', u'Deutsch'),
('en-gb', u'English (UK)'),
('es', u'Español'),
('fr', u'Français'),
('pt', u'Português'),
)
LANGUAGE_CODE = 'en-us'