更改为另一种语言时,Django JS国际化不会返回错误消息

时间:2019-03-29 08:00:16

标签: javascript django internationalization translation toast

我正在尝试通过遵循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功能

0 个答案:

没有答案