我的JavaScript函数包含以下内容:
document.getElementById("example").innerHTML = gettext("This is an example");
我的urls.py看起来像这样:
urlpatterns = [
url(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
url(r'^admin/', admin.site.urls),
url(r'^', include('project.urls')),
url(r'^login/$', auth_views.login, {'template_name': 'login.html', 'authentication_form': LoginForm}, name = 'login'),
url(r'^logout/$', auth_views.logout, {'next_page': '/login'}),
url(r'^i18n/', include('django.conf.urls.i18n')),
]
在我的模板中,我有:
<script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>
上面使用gettext()的翻译无法工作。出现了一个引用错误,显示gettext()未定义。然而,在同一个javascript文件中,我有:
var monthNames = [gettext("January"), gettext("February"), gettext("March"), gettext("April"), gettext("May"), gettext("June"), gettext("July"), gettext("August"), gettext("September"), gettext("October"), gettext("November"), gettext("December")];
这不会引发参考错误。月份翻译可以正常工作,但示例却不能。
document.getElementById("example").innerHTML = gettext("This is an example");
行检查其他gettext()函数调用是否不会抛出ReferenceError。如果它们正常工作,那么很可能是脚本在您的函数调用后加载或任何其他范围问题导致的问题。 - Kishu Agarwal