2011-12-01 125 views
0

我有以下模板:Django的國際化問題

{% load i18n %} 
    {% trans "Welcome to my site!" %} 

我用的RequestContext,呼籲makemessages,編輯.po文件和編譯的消息,但一切都沒有翻譯,我只看到了同樣的消息,即使我加載頁面。從.po文件

msgid "Welcome to my site!" 

msgstr "blahblah" 
+0

也許你有多種語言定義 – szaman

+0

是的,我有兩個,我已經爲他們倆調用了makemessages。 – aemdy

回答

1

提取要獲得翻譯模板顯示:

settings.py應具備以下條件:

USE_I18N = True 
USE_L10N = True # optional, but recommended 
LANGUAGE_CODE = 'en-us' # Or whatever language you want as default 

你應該有'django.core.context_processors.i18n'TEMPLATE_CONTEXT_PROCESSORS

你應該添加'django.middleware.locale.LocaleMiddleware'MIDDLEWARE_CLASSES(後'django.contrib.sessions.middleware.SessionMiddleware'

確保你的模板有{% load i18n %}頂部附近的某個地方。

一旦你翻譯和編譯了消息,要真正得到翻譯顯示,你需要告訴django你需要哪種語言。要做到這一點,請執行以下操作之一:

  1. 設置django_language在會話中鍵入所需的語言代碼。
  2. 將一個名爲django_language的cookie設置爲所需的語言。

如果畢竟以上,你沒有得到任何翻譯顯示 - 然後django無法找到你的消息文件。

+0

是的,問題是中間件類的順序。 – aemdy