Im對我的應用程序使用python3和django1.10,以及對django新增的kinnda。
我打算爲django管理面板提供多種語言。 我跟隨Django documantion規則,我發現,我不得不使用本地化middleware
...這裏是我的設置應用使用django的多語言問題
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
我還添加此
LANGUAGES = (
('fa', ugettext('Farsi')),
('en', ugettext('English')),
)
和
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
當然,我安裝了GNU gettext
並創建了我的區域文件夾與django-admin.py makemessages -l fa
逗號nd,然後我翻譯.po
文件並編譯它,所以我得到了.mo
文件。 到目前爲止,我認爲每件事看起來都不錯,當我只是通過輸入設置文件來更改語言時,每件事情都有效。
現在,這是我的問題,我如何添加功能,從管理面板或視圖更改應用程序語言? 我在我的urls
文件中添加url((r'^i18n/', include('django.conf.urls.i18n'))),
。但我現在不知道該怎麼做。請幫幫我。你下一步怎麼做 ?我如何添加此表單或sholud添加此表單來更改語言?
<form action="/i18n/setlang/" method="post">
<input name="next" type="hidden" value="/next/page/" />
<select name="language">
{% for lang in LANGUAGES %}
<option value="{{ lang.0 }}">{{ lang.1 }}</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
我這個代碼添加到我的看法。但是當我打印出'request.LANGUAGE_CODE'仍然是相同的(EN)...即時股票和困惑:(@Cody Parker –
對不起,您還需要在會話中更改它以手動更改爲用戶。我已經更新了我的答案,以表明這一點。 –
即時通訊試圖找到一種方式,在管理面板中改變它。我的應用程序沒有前視圖或任何意見... 任何建議嗎?也見這裏[問題](它改變我的應用程序語言正確。但它dosent改變我提供的語言文件。我怎麼加載該語言?你能幫我嗎?[我的問題](http://stackoverflow.com/questions/39102538/language-file-dosent- load-automaticaly-in-django) –