Comers
@Comers
Frontend Dev.

Как сделать мультиязычность отдельного JS в Opencart (fastorder в корне)?

Привет. Очень при очень нужна помощь...
Есть магазин под opencart с модулем быстрого заказа на JS. Файл лежит в корне сайта mysite.ru/fastorder/fastorder.js. К нему обращаются практически все файлы из папок product и module.
Не могу никак сделать текст мультиязычным, который находится в данном файле.
Вот и сам скрипт из этого файла:

$(document).ready(function () {
    $('#content').on('click' ,'.product-list .singleclick, .product-grid .singleclick, .itemcolumns .singleclick', function () {
        $('.fast_order_button').css('display','block');
        $('#fast_order_result').html('');
        var product = $(this).parents('.product-list > div, .product-grid > div, .itemcolumns');
        $('#product_name').val(product.find('.name a').text());
        $('#product_price').val(product.find('.price').text());
        $('#singleclick_title').text(product.find('.name a').text());
        $.colorbox({
            href: "#fast_order_form",
            inline: true,
            maxWidth:'95%',
	    maxHeight:'95%',
	    overlayClose: true,
            title: " ",
	    opacity: 0.5,
        });
    });
    $('.fast_order_button').on('click', function () {
	var $sendparam = $(this).closest("#fast_order_form");
        var product_name = $('#product_name', $sendparam).val();
        var product_price = $('#product_price', $sendparam).val();
        var customer_name = $('#customer_name', $sendparam).val();
        var customer_phone = $('#customer_phone', $sendparam).val();
        var customer_message = $('#customer_message', $sendparam).val();
	var captcha = $('#captcha', $sendparam).val();
	var pr = $('#pr', $sendparam).val();
        $('#fast_order_result', $sendparam).text('Обрабатываем введенные данные..');
        $.post('/index.php?route=module/singleclick', {
            'product_name': product_name,
            'product_price': product_price,
            'customer_name': customer_name,
            'customer_phone': customer_phone,
	    'captcha': captcha,
	    'pr': pr ,
            'customer_message': customer_message
        }, function (data) {
            var data = $.parseJSON(data);
            if ('error' in data) {
                $('#fast_order_result', $sendparam).html('<span class="singleclick_error">' + data.error + '</span>');
            } else {
                $('#fast_order_result', $sendparam).html('<span class="singleclick_success">Заявка оформлена</span><br /><span>Мы перезвоним Вам.</span>');
		$('.fast_order_button', $sendparam).css('display','none');
            }
        });
    });
});
  • Вопрос задан
  • 289 просмотров
Решения вопроса 1
Comers
@Comers Автор вопроса
Frontend Dev.
1. в header.tpl добавляем условие в подключение скрипта таким образом:

2. копируем файлик fast_order.js и называем fast_order_uk.js и fast_order_en.js

Готово! Осталось только перевести текст на нужный язык в соответствующих файлах.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@M-ka
frontend присматривающийся к ror
вынести все текста в какой то ассоциативный массив, предпочтительно в отдельном файле, со всех скриптов, когда нужно получать текст обращаться к файлу с текстами через прокладку(которая как раз и знает, что нужно заимпортить), в зависимости от локализации пользователю подгружать файлы с разной локализацией. К примеру, в урл должно быть присутствие ленга, если идет обращение к файлу но нет локализации подходящей, выдавать другую, которая идет дефолтной. Как результат, все скрипты обращаются на апи прокладки с пожеланием получения определенного текста по ключу, а прокладка решает, выдать текст или выкинуть ошибку, мол текст не найден, ну а при подобнм "не найдем" засылать в стату запрошенный ключ, из-за которого возникла проблема....
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы