Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Данный класс содержит методы, возвращающие переведенные сообщения. У него нет конструктора, поэтому доступ к методам осуществляется через глобальный объект s_i18n.

getMessage(msgKey, config, callback)


Этот метод возвращает строку, которая содержит перевод данных, переданных в msgKey, на язык пользователя. Если в системе не существует такой строки, или её перевода на текущий язык, метод возвращает значение msgKey.

Параметр msgKey содержит строку для перевода, а параметр callback является функцией, которая выполняется после ответа сервера.

Параметры:

НазваниеТипОбязательноеЗначение по умолчанию
msgKeyStringДаНет
configObjectНет{ }
callbackFunctionНетНет

Параметр config представляет собой объект, содержащий три параметра:

НазваниеТипОбязательноеЗначение по умолчанию
languageStringНет''
categoryStringНет'app'
paramsObjectНет{ }

Параметр language принимает значения, указанные в таблице Язык (sys_language). Если он не указан, метод будет использовать текущий язык пользователя.

Параметр category принимает значения, хранящиеся в записи таблицы Исходные сообщения (source_message) в поле Категория.

Еслив сообщении присутствуют заполнители, а у объекта params есть ключ, совпадающий с заполнителем, то в итоговое сообщение будет подставлено его значение.

Как правило, параметр config не является обязательным, поэтому для получения перевода можно использовать функцию обратного вызова:

Code Block
languagejs
themeEclipse
titlegetMessage()
await s_i18n.getMessage('Description', (response) => {console.log(response)});
// Описание


Note

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

Возвращаемое значение:

ТипОписание
StringДанный метод возвращает сообщение, переведенное на указанный язык,  соответствующее параметру language.


Пример:

Code Block
languagejs
themeEclipse
titlegetMessage()
linenumberstrue
if (!s_form.getValue('condition')) {
  await s_i18n.getMessage('Specify conditions in "Condition" [condition] field.', (response) => {
    s_form.addErrorMessage(response);
  });
  return false;
}


Code Block
languagejs
themeEclipse
titlegetMessage()
linenumberstrue
const serviceNameValue = 'Почта';
s_i18n.getMessage('Sorry, The {serviceName} Service Is Temporarily Unavailable', {params: {"serviceName": serviceNameValue}, language: "ru", category: "app"}, (response) => console.log(response));

  // Извините, Почта временно недоступна

getMessages(msgKeys, config, callback)


Этот метод возвращает массив строк, содержащих сообщения на языке пользователя. Если строка из массива не локализована для текущего языка или не существует, метод возвращает её исходное значение. 

Параметр msgKeys передает массив строк на перевод. Параметр callback является функцией, которая выполняется после ответа сервера.

Параметры:

НазваниеТипОбязательноеЗначение по умолчанию
msgKeysArray of StringsДаНет
configObjectНет{ }
callbackFunctionНетНет


Параметр config представляет собой объект, содержащий три параметра:

НазваниеТипОбязательноеЗначение по умолчанию
languageStringНет''
categoryStringНет'app'
paramsObjectНет{ }

Параметр language принимает значения, указанные в таблице Язык (sys_language). Если он не указан, метод будет использовать текущий язык пользователя.

Параметр category принимает значения, хранящиеся в записи таблицы Исходные сообщения (source_message) в поле Категория.

Еслив сообщении присутствуют заполнители, а у объекта params есть ключ, совпадающий с заполнителем, то в итоговое сообщение будет подставлено его значение.

Note

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

Возвращаемое значение:

ТипОписание
Array of stringsМетод возвращает массив строк, которые могут быть переведены на язык, соответствующий параметру language.

Пример:

Code Block
languagejs
themeEclipse
titlegetMessages()
linenumberstrue
const data = {};
const btnTitles = ['Accept', 'Cancel'];
await s_i18n.getMessages(btnTitles, (response) => {
  [data.acceptBtnTitle, data.cancelBtnTitle] = response;
});
console.log(JSON.stringify(data));

// {"acceptBtnTitle":"Принять","cancelBtnTitle":"Отмена"}


Note

При использовании одного и того же заполнителя в разных сообщениях метод getMessages() возвращает одинаковые значения. 


Code Block
languagejs
themeEclipse
titlegetMessages()
linenumberstrue
window.s_i18n.getMessages(
                [
                    'Дата и время должны быть в {translation}.',
                    'Имя пользователя должно состоять не менее чем из 2 символов {translation}.',
                ],
                { params: { 'translation': 'TEST' } },
               

Данный метод возвращает сообщения: 

  • Дата и время должны быть в TEST.
  • Имя пользователя должно состоять не менее чем из 2 символов TEST.


Table of Contents
absoluteUrltrue
classfixedPosition