Hen*_*ryM 6 javascript django language-translation
我有几个使用翻译的 Django 项目,除了表单上的 Javascript 错误消息无法翻译之外,一切都工作正常。
例如,在我的登录表单上,如果我只需按 Enter 键,无论我选择了英语、法语、德语还是任何其他语言,我都会收到英语的 JS 错误消息“请填写此字段”。这不是我的 JS 错误消息,如果我运行manage.py makemessages -d djangojs,那么该消息不会显示出来进行翻译,所以我认为我不需要通过该过程进行纠正。
谁能告诉我如何确保用户收到其语言的 JavaScript 错误消息。谢谢
文档说你应该使用django-admin makemessages -d djangojs -l de,而不是python manage.py ...,还要确保你django-admin compilemessages之后运行。
如果仍然不起作用,您可以尝试使用该trans标记,然后使用模板上的事件侦听器手动添加错误消息。
页面顶部:
{% load trans %}
Run Code Online (Sandbox Code Playgroud)
对于纯 JavaScript:
var inputs = document.querySelectorAll("input");
inputs.forEach(function(input) {
if (input.hasAttribute("required")) {
input.oninvalid = function() {
this.setCustomValidity("{% trans 'Please fill in this field' %}");
}
});
});
Run Code Online (Sandbox Code Playgroud)
jQuery:
$("input[required]").on("invalid", function() {
this.setCustomValidity("{% trans 'Please fill in this field' %}");
});
Run Code Online (Sandbox Code Playgroud)
如果此解决方案不适用于您的特定用例,文档将详细介绍各种替代方案。