Django翻译:翻译URL

时间:2017-07-06 14:19:39

标签: django translation django-i18n

我正在使用支持翻译的Django 1.11。我的网址以语言代码开头,例如“/ en / tickets /”或“/ cs / tickets /”。我需要解决以下问题:我有某种语言的URL(可能是我正在使用的任何一种 - settings.LANGUAGES中的那些),我需要将其转换为一种特定的语言。

现在Django提供的django.urls.translate_url()应该完全符合我的要求,但它似乎只有在原始网址是当前语言时才有效。

示例(Django shell):

>>> from django.urls import translate_url
>>> from django.utils.translation import activate
>>> activate('en')
>>> translate_url('/en/tickets/', 'cs')
'/cs/tickets/'
>>> translate_url('/de/tickets/', 'cs')
'/de/tickets/'
>>> activate('de')
>>> translate_url('/en/tickets/', 'cs')
'/en/tickets/'
>>> translate_url('/de/tickets/', 'cs')
'/cs/tickets/'

我需要它为所有语言工作。我怎么做?谢谢。

更新 这是我的urlpatterns

项目范围:

urlpatterns = i18n_patterns(
    url(r'^tickets/', include('tickets.urls')),
    # all the other apps, similar to the row above
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

申请(样本):

urlpatterns = [
    url(r'^$', views.overview, name='tickets-overview'),
    url(r'^archive/$', views.archive, name='tickets-archive'),
    # all the other views, similar to the row above
]

0 个答案:

没有答案