Django JS Internationalization не возвращает сообщение об ошибке при переходе на другой язык - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь выполнить интернационализацию текста в моем файле javascript, следуя документации django tranlstion. Функция выдает текстовую ошибку всякий раз, когда сумма заказа превышает сумму запаса.Я успешно создал файл 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

...