所有,我试图创建一个多语言网站,它必须支持(其中包括)美英和英英两种语言。Django-CMS中多种语言的方言
我的设置包括:
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)在我所有的实验中,我怀疑我在DB中弄糟了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可以在一个水平上工作,但用户界面将失败,因为所选择的语言匹配这个。
@catherine“我试着将上面的配置更改为'en-GB','en-gb或'en_gb',但行为没有变化。” – 2013-04-04 15:59:18
咦?你想让我用('cy',u'English(UK)')?我对Welsh-GB不感兴趣,而是英国方言,而不是美国方言。 (作为一个英美人士,我知道听起来有多愚蠢) – mkoistinen 2013-04-04 16:10:29