2011-11-20 53 views
0

,但我還不能得到它的工作: 在settings.py國際化的set_language重定向視圖不會爲國際化我所做的這些步驟工作

LANGUAGE_CODE = 'en-us' 
SITE_ID = 1 
USE_I18N = True 
USE_L10N = True 
LANGUAGES = (
    ('fa', gettext('Persian')), 
    ('en', gettext('English')), 
) 
LOCALE_PATHS = (
    'fa/LC_MESSAGES/django.po', 
    'fa/LC_MESSAGES/django.mo', 
    'en/LC_MESSAGES/django.po', 
    'en/LC_MESSAGES/django.mo', 
    '$PYTHONPATH/django/conf/locale/fa/LC_MESSAGES' 
) 
MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
     'django.middleware.common.CommonMiddleware', 
     'django.middleware.csrf.CsrfViewMiddleware', 
     'django.middleware.csrf.CsrfResponseMiddleware', 
     'django.contrib.auth.middleware.AuthenticationMiddleware', 
     'django.contrib.messages.middleware.MessageMiddleware', 
) 

我已經建立了mesage fiels在我的應用文件夾和編譯的主題。 我在模板中創建了翻譯字符串。 和語言我在我的模板有這個之間切換:

<form action="/i18n/setlang/" method="post" class="forms"> 
{% csrf_token %} 
<input name="next" type="hidden" value="/next/page/" /> 
<select name="language" id="select_langauge" class="m_show hide"> 
{% for lang in LANGUAGES %} 
    {% if lang.0 != '' %} 
     <option value="{{lang.0}}">{{lang.1}}</option> 
    {% endif %} 
{% endfor %} 
</select> 
<input type="submit" value="Go" /> 
</form> 

urls.py

(r'^i18n/', include('django.conf.urls.i18n')) 

但是當我提交此表以語言之間進行切換,我有這樣的錯誤:

Page not found (404) 
Request Method:  GET 
Request URL: http://127.0.0.1:8080/next/page/ 

有什麼我已經知道的嗎?

在此先感謝:)

回答

1

我認爲Django的嘗試將您重定向到一個/下/頁/

<input name="next" type="hidden" value="/next/page/" /> 

但是,你必須在你的URL不是這條路,是不是?

+1

下面是這個[功能](https://code.djangoproject.com/browser/ Django的/主幹/ Django的/視圖/ i18n.py#L12)。把現有的路徑或只是刪除這個輸入 –

+0

我已經在django文檔中使用的代碼,我現在不是什麼/下一頁/頁面,我該如何處理它。 –

+1

好的。只要刪除這一行。它會重定向你回到主頁面(「/」) –

0

您必須給出語言環境的絕對路徑 - 包含您的翻譯的文件夾。它是這樣的:

LOCALE_PATHS = (
    'C:/abolute_path_to_your_project/.../locale/', 
) 

區域應該包含這樣您的翻譯文件夾:

.../locale/ 
     - en/LC_MESSAGES/django.po 
          django.mo 
     - fr/LC_MESSAGES/django.po 
          django.mo