Django makemessages不收集模板内的javascript字符串

时间:2018-07-17 06:24:25

标签: javascript django internationalization translation

发生此问题的当前Django项目以多种方式使用国际化和翻译:

  1. 在模板文件中,翻译内容文本在Javascript文件中
  2. 位于静态目录中,位于定义的Javascript函数中
  3. 模板文件内

当前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 %}

0 个答案:

没有答案