簡體   English   中英

Django 1.9-URL國際化

[英]Django 1.9 - url internationalization

我正在嘗試在Django 1.9中設置一個項目,但無法翻譯主頁。

我想在用戶訪問主頁時將其重定向到/ en或/ fr。

所以我檢查了文檔,但對我來說還不太清楚。

在我的settings.py中,我添加了以下內容(來自doc: url internationalization ):

MIDDLEWARE_CLASSES += [
    'django.middleware.locale.LocaleMiddleware',
]

我也有這個:

LANGUAGE_CODE = 'en'
DEFAULT_LANGUAGE = 'en'
LANGUAGES = (
    ('en', 'English'),
    ('fr', 'Français'),
)
TIME_ZONE = 'America/Toronto'
USE_I18N = True
USE_L10N = True
USE_TZ = True

在我的urls.py中,我添加了:

# -*- coding: utf-8 -*-
from django.conf.urls import url
from django.utils.translation import ugettext_lazy as _
from django.views.generic.base import TemplateView

urlpatterns = [
    url(r'^$', TemplateView.as_view(template_name="index.html"), name='home'),
    url(_(r'^privacy-policy/$'), TemplateView.as_view(template_name="privacy-policy.html"), name='privacy-policy'),
]

當我運行服務器並轉到localhost:8000時,沒有重定向到/ en或/ fr

我做錯了什么?

我不確定django 1.9,但是在1.8中,您需要以這種方式聲明您的i18n urlpatterns:

# your_project/your_project/urls.py
from django.conf.urls import include, url
from django.contrib import admin
from django.conf.urls.i18n import i18n_patterns

urlpatterns += i18n_patterns(
    url(r'^test$', 'your_package.views.test', name='test'),
)

我們幾個月前在我公司的博客上發表了一篇文章,它可以幫助您http://www.metod.io/zh/blog/2015/05/05/django-i18n-part-1/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM