如何在django的html的脚本标签中翻译javascript中的字符串

How to translate strings in javascript written in script tags of html in django?

本文关键字:翻译 javascript 字符串 标签 html django 脚本      更新时间:2023-09-26

嗨,我正在翻译匈牙利语网站,我有警报和确认字符串的问题,我有在我的模板。我使用的是gettext(''),但这些字符串没有出现在po文件

我的urls . py

urlpatterns = patterns('',    
   url(r'^jsi18n/$', javascript_catalog, js_info_dict, name='javascript-catalog'),

我已经创建了po文件django。通过运行makemessages,它可以在模板中标记为trans的所有字符串以及*.py文件中的字符串。然后我运行了以下命令

django-admin.py makemessages -d djangojs -l hu_HU

正在创建djangojs.po

出现在这个文件中的字符串都来自我的静态文件夹中的*.js文件。

但是我如何在警报和确认中使用我的字符串,这些都写在我的模板中。

这里是我的模板片段。

<script>
    if($('#id_action').val()=='DEL'){
        if(confirm(gettext('Are you sure you want to delete selected author(s) ?'))){
           flag_action=true;
        }
    }
</script>

在我的模板中,我也有这样的东西,它也没有出现在po文件中。

<li>
   <a onclick="if(confirm(gettext('Are you sure you want to delete the selected author?'))){filter_content({{auth.id}},'DEL');return false;}" href="javascript:void(0)">
      {% trans 'Delete' %}
   </a>
</li>

getext中的字符串没有出现在任何po中。

我在模板中包含了以下内容

<script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>

使用

var alert_var = {% blocktrans %}"Are you sure you want to delete selected author(s) ?" {% endblocktrans %};
<!-- begin snippet: js hide: false console: true babel: false -->

然后在任何需要

的地方使用这个变量

正如Arhot所说,{% blocktrans %}"Text..."{% endblocktrans %}工作得很好。

如果你在html文件的<script>标签中使用这个,单词id将在.po文件中生成,对应于html翻译,而不是javascript翻译。我的意思是你会在文件django.po中找到新单词,而不是在djangojs.po中。