在我的Django项目中,我有带文本的JS文件,我需要翻译。我使用下面的代码。
在 makemessages 和 compilemessages 命令的帮助下,我创建了 djangojs.po 和 djangojs.mo 文件。问题是添加 gettext 后JS代码无法正常工作。它会在浏览器控制台中引发错误如何解决这个问题?
urls.py:
from django.views.i18n import javascript_catalog
js_info_dict = {
'domain': 'djangojs',
'packages': ('slider',), # my app name
}
urlpatterns = [
[OTHER URLs]
# Internationalization in Javascript Code
url(r'^jsi18n/$',
javascript_catalog,
js_info_dict,
name='javascript-catalog'),
]
JS:
$("#slideModalBox").on("click", "#imageFieldClearBtn", function() {
$('#imageFieldFileName').val("");
$('#imageFieldClearBtn').hide();
$('#imageFieldInput input:file').val("");
$("#imageFieldInputTitle").text(gettext("Add new image"););
});
$("#slideModalBox").on("change", "#imageFieldInput input:file", function() {
var file = this.files[0];
var reader = new FileReader();
reader.onload = function (e) {
$("#imageFieldInputTitle").text(gettext("Change Image")); <-- This place raise error
$("#imageFieldClearBtn").show();
$("#imageFieldFileName").val(file.name);
}
reader.readAsDataURL(file);
});
浏览器控制台中的错误:
ReferenceError: gettext is not defined
reader.onload http://127.0.0.1:8000/static/js/slider/image_field.js:12:9
答案 0 :(得分:1)
您是否在js脚本之前在base.html中添加了DataListItem header = (DataListItem)dl.Controls[0];
?
答案 1 :(得分:0)
尝试在urls.py
中进行以下订购urlpatterns = [
# Internationalization in Javascript Code
url(r'^jsi18n/$',
javascript_catalog,
js_info_dict,
name='javascript-catalog'),
# then the other urls
[OTHER URLs]
]
基本上,首先制作javascript_catalog。
或者