Django 2.2 i18n urlpatterns не переводится - PullRequest
1 голос
/ 27 октября 2019

Мне любопытно, как если бы кто-то тестировал функциональность Django i18n в последней версии Django?

Я пытаюсь интернационализировать мои urlpatterns следующим образом:

urlpatterns = [
    path('i18n/', include('django.conf.urls.i18n'))
]
urlpatterns += i18n_patterns(
    path('', include('apps.frontpage.urls', namespace='frontpage')),
    path(_('journal/'), include('apps.journal.urls', namespace='journal')),
    path(_('projects/'), include('apps.projects.urls', namespace='projects')),
    path(_('software/'), include('apps.software.urls', namespace='software')),
    path('administration/', admin.site.urls),
)

используя этот файл .po:

#: core/urls.py:22

msgid "journal/"
msgstr "dagbok/"

#: core/urls.py:23
msgid "projects/"
msgstr "prosjekter/"

#: core/urls.py:24
msgid "software/"
msgstr "programvare/"

Файлы .po и .mo создаются и обнаруживаются, когда меню HTML переводится следующим образом:

<li><a href="{% url 'frontpage:index' %}"><i class="fas fa-home fa-fw"></i> {% trans "Home" %}</a></li>
<li><a href="{% url 'journal:index' %}"><i class="fas fa-book fa-fw"></i> {% trans "Journal" %}</a></li>
<li><a href="{% url 'projects:index' %}"><i class="fas fa-project-diagram fa-fw"></i> {% trans "Projects" %}</a></li>
<li><a href="{% url 'software:index' %}"><i class="fas fa-hdd fa-fw"></i> {% trans "Software" %}</a></li>

file:

#: shared/templates/sidebar.html:5
msgid "Home"
msgstr "Hjem"

#: shared/templates/sidebar.html:6
msgid "Journal"
msgstr "Dagbok"

#: shared/templates/sidebar.html:7
msgid "Projects"
msgstr "Prosjekter"

#: shared/templates/sidebar.html:8
msgid "Software"
msgstr "Programvare"

#: shared/templates/sidebar.html:10
msgid "Languages"
msgstr "Språk"

Однако мои URL все еще не переводятся. Я не совсем уверен, что я сделал что-то не так, или эта функциональность действительно исправлена ​​в последней версии Django.

Нужно ли мне настраивать что-либо кроме

LOCALE_PATHS = [
    os.path.join(BASE_DIR, 'shared/locale')
]

дляэто обнаружить locale каталоги в приложениях? или это делает Django автоматически?

Любая помощь приветствуется. Весь исходный код общедоступен на GitHub .

1 Ответ

0 голосов
/ 27 октября 2019

Проблема была решена включением моего «основного» приложения в файл настроек в INSTALLED_APPS. Небольшой упущение с моей стороны при чтении документов.

Источник: Документация - Как Django обнаруживает переводы , вторая точка.

...