Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

jQuery скрипт вывод языкой переменной


Recommended Posts

Ребята помогите  подкорректировать скрипт, может кто сталкивался,

нужно внести небольшую правку если язык английский и если язык русский чтоб в разных случаях выводился разный вариант.

 

function Callme_createButton() {
    var jq = jQuery,

 var jq1 = jQuery,
        btn = jq('<button type="button" class="call_me" name="button">Перезвони мне /button>><div class="callmy"></div></a>') ;
            btn = jq1('<button type="button" class="call_me" name="button">Call me </button>><div class="callmy"></div></a>') ;


    jq('.clickclick').append(btn);
     jq1('.clickclick').append(btn);


    btn.click(function (e) {
        e.preventDefault();
         Callme_formPopup();
        return false;
    });
}

Надіслати
Поділитися на інших сайтах


это какое-то извращение

 

вместо дублирования кода под каждый язык, используйте данные из контроллера

типа

<button type="button" class="call_me" name="button"><?php echo $text_call_me?></button>><div class="callmy"></div></a>

  • +1 1
Надіслати
Поділитися на інших сайтах

44 минуты назад, munhgauzen сказал:

Алекс спасибо конечно но мне нужно именно такое извращенное решение через jq

а зачем ? ну если этот скрипт у вас в js файле каком то, то на крайний случай в контроллере header.php задайте в data языковые переменные, ну и, например, в header.tpl заведите какой то js обьект для них, т.е 

locale = {

   'btn_call' => '<?php echo $text_call_me?>'

}

а в js файле берите эти данные , примерно так 

        btn = jq('<button type="button" class="call_me" name="button">'+locale.btn_call+' </button>><div class="callmy"></div></a>') ;

Главное чтобы скрипт этот был после вашего определения обьекта locale
 

  • +1 1
Надіслати
Поділитися на інших сайтах

еще можно, конечно, подгружать разные js файлы, к зависимости от языка, или разные надстройки к ним, но это лишня заморочка и дублирование уже js части

Надіслати
Поділитися на інших сайтах

Seriusis спасибо.

 

но с Locale я ни разу не имел дел как ее правильно вписать в header.tpl?

 

 

 <script type="text/javascript">
 locale = {
   'btn_call' => '<?php echo $text_call_me?>'

}
 </script>

Надіслати
Поділитися на інших сайтах


20 минут назад, munhgauzen сказал:

Seriusis спасибо.

 

но с Locale я ни разу не имел дел как ее правильно вписать в header.tpl?

 

 

 <script type="text/javascript">
 locale = {
   'btn_call' => '<?php echo $text_call_me?>'

}
 </script>

 

locale - просто именование для вашего обьекта с данными. Можно как угодно обозвать. Да, вы правильно написали. И в скрипте укажите, как я вам предложил. Потом смотрите консоль, если есть ошибки, то исправляйте, или сюда бросьте. Может быть такое, что ваш скрипт с функцией Callme_createButton подключен раньше, чем вы объявляете  переменную locale, т.е. проверьте, чтобы locale объявлялась ДО кода , а не после,

<?php foreach ($scripts as $script) { ?>
<script src="<?php echo $script; ?>" type="text/javascript"></script>
<?php } ?>

 

и вообще до подключения любых скриптов, в самом начале, можно перед подключением самого первого, т.е. jquery или что там в вашем шаблоне

Надіслати
Поділитися на інших сайтах

вот кусок header.tpl  Объявляю переменную затем уже загружаю скрипт.

 

<?php foreach ($styles as $style) { ?>
<link href="<?php echo $style['href']; ?>" type="text/css" rel="<?php echo $style['rel']; ?>" media="<?php echo $style['media']; ?>" />
<?php } ?>
<script src="catalog/view/javascript/common.js" type="text/javascript"></script>

 

 

/////////

 <script type="text/javascript">
 locale = {
   'btn_call' => '<?php echo $text_call_me?>'

}
 </script>

///////////
<script src="catalog/view/javascript/IMCallMeAskMe/jquery.imcallask.js" type="text/javascript"></script>

////////////////////////////////////////////////////////////////////////////////

 

Вот кусок jq объявляющий баттон

 

function IMCallMeAskMe_createButton() {
    var jq = jQuery,
      
        //btn = jq('<button type="button" class="call_me" name="button">Перезвони мне</button>><div class="imcallask-btn-mini-phone"></div></a>')
        btn = jq('<button type="button" class="call_me" name="button">'+locale.btn_call+' </button>><div class="callmy"></div></a>')
        
    ;

 

Но в консоли имею вот такую ошибку:

 

 

ReferenceError: locale is not defined jquery.imcallask.js:127:9

 

 

Надіслати
Поділитися на інших сайтах


может быть несколько причин. 

По первых, кеш модификаторов чистили ? 

Потом, не вижу всего скрипта MCallMeAskMe , может там контекст подменен, попробуйте вместо locale.btn_call поставить window.locale.btn_call

Надіслати
Поділитися на інших сайтах

3 часа назад, munhgauzen сказал:

 locale = {
   'btn_call' => '<?php echo $text_call_me?>'

}

наверно

let Locale=............

 

  • +1 1
Надіслати
Поділитися на інших сайтах

43 минуты назад, fanatic сказал:

наверно


let Locale=............

 

можно и так, если всего 1 текстовка, тут без разницы. Я лишь дал пример, как бы это сделал я. Потом, вероятно, появиться необходимость и в других текстовках

Надіслати
Поділитися на інших сайтах

добавил

 

<link href="catalog/view/javascript/jquery/owl-carousel/owl.carousel.css" type="text/css" rel="stylesheet" media="screen" />
<link href="catalog/view/javascript/jquery/owl-carousel/owl.theme.default.css" type="text/css" rel="stylesheet" media="screen" />
<!-- <link href="catalog/view/javascript/jquery/owl-carousel/animate.css" type="text/css" rel="stylesheet" media="screen" />  -->
<script src="catalog/view/javascript/jquery/owl-carousel/owl.carousel.js" type="text/javascript"></script>


<?php foreach ($styles as $style) { ?>
<link href="<?php echo $style['href']; ?>" type="text/css" rel="<?php echo $style['rel']; ?>" media="<?php echo $style['media']; ?>" />
<?php } ?>
<script src="catalog/view/javascript/common.js" type="text/javascript"></script>

 <script type="text/javascript">
 let locale = {
   'btn_call' => '<?php echo $text_call_me; ?>'

} 
 </script>


<script src="catalog/view/javascript/IMCallMeAskMe/jquery.imcallask.js" type="text/javascript"></script>

<?php foreach ($links as $link) { ?>
<link href="<?php echo $link['href']; ?>" rel="<?php echo $link['rel']; ?>" />
<?php } ?>
<?php foreach ($scripts as $script) { ?>
<script src="<?php echo $script; ?>" type="text/javascript"></script>
<?php } ?>
<?php foreach ($analytics as $analytic) { ?>
<?php echo $analytic; ?>
<?php } ?>
</head>

 


но все равно пишит туже ошибку

 

 

ReferenceError: locale is not definedjquery.imcallask.js:128:9

    jQuery 6
Надіслати
Поділитися на інших сайтах


45 минут назад, munhgauzen сказал:

добавил

 

45 минут назад, munhgauzen сказал:

но все равно пишит туже ошибку

модификаторы, обновили?

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.