所有,我試圖創建一個多語言網站,它必須支持(其中包括)美英和英英兩種語言。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