2015-12-06 7 views
2

После Translating URL patterns, я могу сделать мои URL-адреса с префиксом активным языком, но я не могу их перевести.Django urls не используется

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) 

национальная_версия/ES/LC_MESSAGES/django.po

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

manage.py оболочки

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

Как я могу сделать reverse ('list') дисплей '/ es/ejercicios /'?

+0

ли вы собрали ваши переводы? – GwynBleidD

+0

Да, но это не было необходимо AFAIK, я нашел ошибку уже, спасибо – marcanuy

ответ

0

Проблема заключалась не только в том, что URL-адрес, но и все строки перевода из файла сообщения не были переведены.

Имея следующую структуру каталогов:

-Project #base directory 
    -apps 
    -templates 
    -project 
    -settings.py 
    -locale 
    -es 
     -LC_MESSAGES 
      -django.po 

Просто добавив LOCALE_PATHS конфигурации к settings.py решить эту проблему

LOCALE_PATHS = (
    'locale', 
) 

Джанго будет выглядеть в каждом из этих путей для /LC_MESSAGES, содержащие фактические файлы перевода .

* Испытано в Django 1.8

 Смежные вопросы

  • Нет связанных вопросов^_^