[Python] Django urls aren't being translated

Discussão em 'Python' iniciado por Stack, Maio 14, 2025.

  1. Stack

    Stack Membro Participativo

    Following Translating URL patterns, I can make my urls being prefixed with the active language, but I can't get them translated.

    urls.py

    from django.conf.urls import include, url
    from django.conf.urls.i18n import i18n_patterns
    from django.utils.translation import ugettext_lazy as _

    from django.contrib import admin
    from django.conf.urls.static import static
    from django.conf import settings

    from exercises.views import ExerciseListView

    urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    ]

    urlpatterns += i18n_patterns(
    ...
    url(_(r'^exercises/$'), ExerciseListView.as_view(), name='list'),
    ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


    locale/es/LC_MESSAGES/django.po

    #: myproject/urls.py:54
    msgid "^exercises/$"
    msgstr "^ejercicios/$"


    manage.py shell

    >>> from django.core.urlresolvers import reverse
    >>> from django.utils.translation import activate
    >>> activate('en')
    >>> reverse('list')
    '/en/exercises/'
    >>> activate('es')
    >>> reverse('list')
    '/es/exercises/' <---- should be /es/ejercicios as translated in .po


    How can I make reverse('list') display '/es/ejercicios/' ?

    Continue reading...

Compartilhe esta Página