我正在使用支持翻译的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
]