Как разрешить функции использовать jQuery .i18n? - PullRequest
1 голос
/ 05 марта 2020

У меня проблема с получением функций для использования jQuery .i18n. Он отлично работает внутри jQuery(document).ready(function ($) {...});, а не снаружи.

jQuery(function($) {
  $.i18n().load({
    'en': '/path/to/i18n/en.json'
  });
});

jQuery(document).ready(function ($) {
    function payInfo('example@something.com', '12341234');

    console.log('Verification text test: ' + $.i18n('payments.verificationCode')); // works
});

function payInfo(address, invoice) {
    // translation does not work here
    swal({
        title: $.i18n('payments.verificationCode'),
        html: $.i18n('payments.verificationDetail', address),
        input: 'number',
        showCancelButton: true,
        confirmButtonText: $.i18n('global.confirm'),
        cancelButtonText: $.i18n('global.cancel'),
        showLoaderOnConfirm: true,
        inputPlaceholder: '0000',
        allowOutsideClick: false
     })
}

Ошибка TypeError: undefined is not an object (evaluating '$.i18n') - и указывает на номер строки title:. Как правильно разрешить функции получать переводы i18n?

1 Ответ

1 голос
/ 05 марта 2020

Ваш jQuery не определен глобально. Попробуйте добавить это в .ready:

jQuery(document).ready(function ($) {
    window.$ = $; // This line
    function payInfo('example@something.com', '12341234');

    console.log('Verification text test: ' + $.i18n('payments.verificationCode')); // works
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...