发生此问题的当前Django项目以多种方式使用国际化和翻译:
当前1和2正常运行,没有任何问题。
运行Django-admin makemessages -l en
会为模板内容生成翻译,而Django-admin makemessages -l en -d djangojs
会为静态javascript文件中的字符串生成翻译。
我目前正在努力解决3号问题,还没有找到直接解决此用例的任何文档。
当前发生的情况是,当我运行任何一个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 %}