我有一個django應用程序,其默認語言設置爲法語。 代碼和html頁面中的所有翻譯字符串都是法文的。在不同的語言之間切換正常。 但現在我需要隱藏法語,所以我將LANGUAGE_CODE更改爲'en-us',但默認頁面始終以法語顯示,我錯過了什麼嗎?Django默認語言
感謝
我有一個django應用程序,其默認語言設置爲法語。 代碼和html頁面中的所有翻譯字符串都是法文的。在不同的語言之間切換正常。 但現在我需要隱藏法語,所以我將LANGUAGE_CODE更改爲'en-us',但默認頁面始終以法語顯示,我錯過了什麼嗎?Django默認語言
感謝
我遇到了一些麻煩,這也一度......這是因爲大多數現代網絡瀏覽器在發送請求的區域設置,和Django的自動使用的語言,而不是它是否能。
不幸的是我不記得我做了什麼來解決這個問題,但是我希望它能給你一些指導去尋找或搜索。
謝謝,這是問題,通過改變瀏覽器語言的語言解決 – ark42
在您的settings.py文件中,您有一個LANGUAGES
元組。
LANGUAGES = (
('en', gettext('English')),
('sv', gettext('Swedish')),
('no', gettext('Norwegian')),
)
如果您使用Django Multilingual,您還可以設置DEFAULT_LANGUAGE
設置:
DEFAULT_LANGUAGE = 1 # the first one in the list
我剛剛遇到這個問題,這裏是我怎麼能設法解決它在不改變任何瀏覽器的語言環境的語言:
的想法是創建一箇中間件基礎上,LANGUAGE_CODE設置強制語言翻譯,這裏的中間件如何可能看起來像:
from django.conf import settings
from django.utils import translation
class ForceLangMiddleware:
def process_request(self, request):
request.LANG = getattr(settings, 'LANGUAGE_CODE', settings.LANGUAGE_CODE)
translation.activate(request.LANG)
request.LANGUAGE_CODE = request.LANG
保存此片段在你的主應用程序middleware.py(我假定這就是所謂的主),然後添加main.middleware.ForceLangMiddleware到您的MIDDLEWARE_CLASSES
,我發現這個https://gist.github.com/vstoykov/1366794。它強制I18N機器選擇settings.LANGUAGE_CODE作爲默認的初始語言。
試圖改變自己的瀏覽器本地語言,可能是它幫助 – Ahsan