繁体   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