0

在我的django項目中,我介紹了國際化。 我按照所有的技巧,特別是:Django,國際化神祕莫測

  • 在模板中插入反式聲明,對模板
  • 我已經拼命地跑django-admin.py makemessages -l it(從項目的根目錄)
  • 我已經設置好的的msgstr的頂部插入{% load i18n %} /locale/it/LC_MESSAGES/django.po
  • 然後我拼命地跑了django-admin.py compilemessages (from root of project)

我的settings.py爲:

  • LANGUAGE_CODE = 'en-us'
  • USE_I18N = True USE_L10N = True
  • TEMPLATE_CONTEXT_PROCESSOR = ('django.core.context_processors.i18n',)
  • 在MIDDLEWARE_CLASSES "django.middleware.locale.LocaleMiddleware",

如果我使用DjDT在Web瀏覽器中調試Django的,我可以看到:

  • 接受 - 語言是'it'

但是看不到它的語言,我繼續看到en-us語言。 我已閱讀關於此主題在stackoverflow上的其他問題,但我沒有找到解決方案。 我的應用程序需要什麼來實現國際化?

編輯-1

我的項目結構如下:

的src/

 myproj/ 

      app1/ 

      app2/ 

區域/

it/ 

     LC_MESSAGES/ 

        django.mo 

        django.po 

it-IT/ 

     ... 

模板/

回答

1

如果我在國際化工作的myproj文件夾中粘貼文件夾區域設置(在項目的根目錄中),也沒有設置LOCALE_PATHS settings.py。

+1

是的,因爲myproject中的語言環境是翻譯的默認位置。但它也應該工作,如果你把它放在外面並正確設置LOCALE_PATHS。我很高興你設法得到它的工作:) – gruszczy 2012-01-03 09:55:25

+0

@gruszczy我也是,整體過了一段時間後,這個問題。你有博客嗎?或其他網頁? – 2012-01-03 11:51:54

+0

我有Google+(https://plus.google.com/112862690224509532762/posts)。 – gruszczy 2012-01-03 12:21:35

1

您是否嘗試過將意大利語設置爲LANGUAGE_CODE,然後看看會發生什麼?

您是否嘗試過將英語和意大利語設置爲LANGUAGES,然後看看會發生什麼?對於波蘭語和英語我有這樣的事情:LANGUAGES = (('pl', 'Polski'), ('en', 'English'))

最後一件事情是:您的意見使用RequestContext?

def some_view(request): 
    # ... 
    return render_to_response('my_template.html', 
           my_data_dictionary, 
           context_instance=RequestContext(request)) 

你能渲染模板之前創建一個請求上下文並檢查LANGUAGESLANGUAGE_CODE值:

def some_view(request): 
    # ... 
    context = RequestContext(request) 
    print context.LANGUAGE, context.LANGUAGE_CODE 
    return render_to_response('my_template.html', my_data_dictionary, 
           context_instance=context) 

這種方式,我們將看到什麼樣的價值已設置。

我認爲必須使用RequestContext才能在模板內檢測到該語言。

我記得設置這個的痛苦,我曾試圖打開這個在Django上運行的Facebook應用程序。也許我可以想出更多的東西。

+0

是的,如果我設置了'LANGUAGE_CODE =',它不會發生。結果是一樣的:我看到英文版的頁面。 – 2012-01-01 20:38:53

+0

我已編輯我的答案。 – gruszczy 2012-01-01 20:42:34

+0

我在setting.py中添加了這個:'LANGUAGES =(('it','Italian'),('en','English'))'但是沒有任何反應,這個頁面仍然使用英語語言 – 2012-01-01 20:47:10

0

聽起來像Django沒有找到您的本地文件夾。在這裏看到的文檔:https://docs.djangoproject.com/en/1.3/howto/i18n/

默認情況下,Django會看每個已安裝的應用程序下,並在項目的根(這是包含您的settings.py文件的文件夾 - 不一定是你的應用程序的根目錄)