Django 2.2 i18n urlpatterns 未被翻译
Django 2.2 i18n urlpatterns not being translated
我很好奇好像有人在最新的 Django 版本中测试过使用 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>
通过这个文件:
#: 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"
但是,我的网址仍未被翻译。我不太确定我是否做错了什么,或者这个功能是否在最新的 Django 版本中确实存在错误。
除了
我还需要配置什么吗?
LOCALE_PATHS = [
os.path.join(BASE_DIR, 'shared/locale')
]
让它检测应用程序中的 locale
目录?还是由 Django 自动完成?
感谢任何帮助。 GitHub.
上的完整源代码 public
通过在 INSTALLED_APPS
的设置文件中包含我的 "core" 应用程序解决了问题。阅读文档时我的部分疏忽。
我很好奇好像有人在最新的 Django 版本中测试过使用 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>
通过这个文件:
#: 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"
但是,我的网址仍未被翻译。我不太确定我是否做错了什么,或者这个功能是否在最新的 Django 版本中确实存在错误。
除了
我还需要配置什么吗?LOCALE_PATHS = [
os.path.join(BASE_DIR, 'shared/locale')
]
让它检测应用程序中的 locale
目录?还是由 Django 自动完成?
感谢任何帮助。 GitHub.
上的完整源代码 public通过在 INSTALLED_APPS
的设置文件中包含我的 "core" 应用程序解决了问题。阅读文档时我的部分疏忽。