Как использовать переводы сообщений в JS файлах?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
rotting
Сообщения: 74
Зарегистрирован: 2016.07.28, 15:50

Как использовать переводы сообщений в JS файлах?

Сообщение rotting »

На сервере пишу вот так:

Код: Выделить всё

Yii::t('app', 'Price')
Как бы мне использовать что-то похожее в JS-файле?
Не посылать же запросы на сервер для получения перевода?
rotting
Сообщения: 74
Зарегистрирован: 2016.07.28, 15:50

Re: Как использовать переводы сообщений в JS файлах?

Сообщение rotting »

Я так понимаю что будет вызов сервера для каждого слова? Так я и сам могу написать... думал может что умное придумали....
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Re: Как использовать переводы сообщений в JS файлах?

Сообщение Chelobaka »

Особенно этот момент огорчает когда есть динамически создаваемые поля формы и к ним нужно добавлять валидатор в котором указывать сообщение в нужном языке. Без указания текста ошибки валидатор просто не повесить. :x
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Как использовать переводы сообщений в JS файлах?

Сообщение yiiliveext »

Chelobaka писал(а): 2019.09.27, 13:44 Особенно этот момент огорчает когда есть динамически создаваемые поля формы и к ним нужно добавлять валидатор в котором указывать сообщение в нужном языке. Без указания текста ошибки валидатор просто не повесить. :x
А что мешает подгружать поля с сервера вместе с валидаторами?
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Re: Как использовать переводы сообщений в JS файлах?

Сообщение Chelobaka »

yiiliveext писал(а): 2019.09.27, 14:07
Chelobaka писал(а): 2019.09.27, 13:44 Особенно этот момент огорчает когда есть динамически создаваемые поля формы и к ним нужно добавлять валидатор в котором указывать сообщение в нужном языке. Без указания текста ошибки валидатор просто не повесить. :x
А что мешает подгружать поля с сервера вместе с валидаторами?
Не совсем понял что вы имеете ввиду?
У меня есть поле Name и валидатор не пустое. Потом я создаю диначиски еще одно поле Name и вешаю на него валидотор через:

Код: Выделить всё

 $(form_id).yiiActiveForm("add", {
            id: id,
            name: name,
            container: container,
            input: input,
            error: ".help-block",
            validate:  function (attribute, value, messages, deferred, $form) {
                yii.validation.required(value, messages, {
                    "message": 'Мой текст'
                });
                yii.validation.number(value, messages, {
                    "pattern": /^\s*[+-]?\d+\s*$/,
                    "message": 'Мой текст'
                    "skipOnEmpty": 1
                });
            }
        });
        
Если вы знаете как упростить этот код, то как говорится: Are you wellcome.

Текст ошибок я беру из переданного параметра, а то в свою очередь из компонента Errors.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Как использовать переводы сообщений в JS файлах?

Сообщение yiiliveext »

Обсуждали в соседней теме.
viewtopic.php?f=19&t=52983
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Re: Как использовать переводы сообщений в JS файлах?

Сообщение Chelobaka »

yiiliveext писал(а): 2019.09.30, 15:38 Обсуждали в соседней теме.
viewtopic.php?f=19&t=52983
Так то оно так но странно грузить поля формы если есть возможность на стороне клиента это сделать. Возможно есть способ вытащить из существующих полей текст валидатора пока не знаю но думаю что все же это более верное решение.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Как использовать переводы сообщений в JS файлах?

Сообщение yiiliveext »

Chelobaka писал(а): 2019.10.01, 17:42 Так то оно так но странно грузить поля формы если есть возможность на стороне клиента это сделать. Возможно есть способ вытащить из существующих полей текст валидатора пока не знаю но думаю что все же это более верное решение.
В большинстве случаев этого достаточно, простой и универсальный метод, который позволяет подгружать поля произвольной конфигурации с любыми виджетами и правилами. Ну а если критично, то тс в той же теме описал решение, храните шаблон на клиенте, если он пустой, то подгружаете с сервера, если нет то берете из шаблона и добавляете тем же способом, предварительно подменив индексы.
Ответить