我正在尝试通过遵循django tranlstion文档来对我的javascript文件中的文本进行国际化。每当订购量大于库存量时,该函数都会引发文本错误。我在根目录下的locale文件夹中成功创建了djangojs.po,并将错误消息翻译为带有错误的英语。切换到第二种语言后,该错误应以该语言显示,但错误没有弹出并且购物车仍允许添加产品(即使购物车中的数量大于库存中的数量)
英语错误提高英语 在越南语中不会发生该错误,并且仍然允许将产品添加到购物车
在有限的帮助下我的JavaScript知识将不胜感激
我尝试重新启动服务器。我找不到与国际化有关的任何问题或答案会影响javascript功能
我的urls.py:
from django.conf.urls.i18n import i18n_patterns
from django.views.i18n import JavaScriptCatalog
from django.urls import path
from . import views
urlpatterns = [
path('i18n/', include('django.conf.urls.i18n')),
path('jsi18n/', JavaScriptCatalog.as_view(), name='javascript-catalog'),
]
javascript函数:
$scope.addProduct = function (id, count) {
var total = parseInt($('#product-' + id).attr('total').replace(/\./g, ''));
for (var index = 0; index < $scope.cart.length; index++) {
var line = $scope.cart[index];
if (line.id == id) {
line.quantity += count;
if (line.quantity <= 0) {
$scope.cart.splice(index, 1);
}
if (line.quantity > total){
line.quantity = total;
$scope.showToast(gettext("Bạn đã đặt hàng hết số lượng OCT còn trong kho."), "error");<-- only raise error when language = en
}
localStorageService.set('cart', $scope.cart);
return;
}
}
if (count > 0) {
if (count >= total){
count = total;
$scope.showToast(gettext("Bạn đã đặt hàng hết số lượng OCT còn trong kho."), "error");<-- only raise error when language = en
}
$scope.cart.push({
id: id,
quantity: count,
price: $scope.getProductById(id).price_retail
})
}
localStorageService.set('cart', $scope.cart);
}
我将脚本放入我的base.html
<script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>
<script src="/static/js/custom.js"></script>
djangojs.po
#: frontend/static/js/custom.js:188 frontend/static/js/custom.js:198
msgid "Bạn đã đặt hàng hết số lượng OCT còn trong kho."
msgstr "You have ordered all the OCT in stock"
希望它会引起两种语言的错误并且不影响JS功能