当前出现此问题的Django项目通过多种方式使用了国际化和翻译:
目前1和2工作正常,没有任何问题。 运行
Django-admin makemessages -l en
生成模板内容的翻译,运行 Django-admin makemessages -l en -d djangojs
生成位于静态 javascript 文件中的字符串的翻译。
我目前正在努力解决第三个问题,尚未找到任何直接解决此用例的文档。
当前发生的情况是,当我运行任何一个 makemessages 命令时,Django 找不到新字符串,当我手动将它们添加到翻译文件中时,翻译会正常工作,直到我再次运行 makemessages。
为什么 makemessages 没有检测到这些翻译字符串以及如何让它检测到这些翻译字符串?
urls.py:
path('i18n/', include('django.conf.urls.i18n')),
path('jsi18n/', JavaScriptCatalog.as_view(), name='javascript-catalog'),
dashboard.html 的片段:
{% extends "base/template_base.html" %}
{% load staticfiles %}
{% load i18n %}
{% block content %}
<script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>
<div>
<!-- some HTML content here -->
</div>
<script>
<!--Intro JS-->
function startIntro(){
var intro = introJs();
intro.setOptions({
showProgress: true,
showBullets: false,
doneLabel: gettext('intro_done'),
steps: [
{
intro: gettext("intro_dashboard_01")
},
{
intro: gettext('intro_dashboard_02')
},
]
});
intro.start();
}
</script>
{% endblock %}
将脚本放入 .js 文件中,它应该可以工作。