Мне любопытно, как если бы кто-то тестировал функциональность 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 .