s_i18n
Данный класс содержит методы, возвращающие переведенные сообщения. У него нет конструктора, поэтому доступ к методам осуществляется через глобальный объект s_i18n.
getMessage(msgKey, config, callback)
Используйте метод, чтобы вернуть строку с данными, переданными в msgKey. Возращенные данные переведены на язык пользователя. Если в системе не существует такой строки, или ее перевода на текущий язык, метод возвращает значение msgKey.
Параметр msgKey содержит строку для перевода, а параметр callback является функцией, которая выполняется после ответа сервера.
Параметры:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
msgKey | String | Да | Нет |
config | Object | Нет | {} |
callback | Function | Нет | Нет |
Параметр config представляет собой объект, содержащий три параметра:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
language | String | Нет | '' |
category | String | Нет | 'app' |
params | Object | Нет | {} |
Параметр language принимает значения, указанные в таблице Язык (sys_language). Если он не указан, метод будет использовать текущий язык пользователя.
Параметр category принимает значения, хранящиеся в записи таблицы Исходные сообщения (source_message) в поле Категория.
Если в сообщении присутствуют местозаполнители, а у объекта params есть ключ, совпадающий с заполнителем, то в итоговое сообщение будет подставлено его значение.
Как правило, параметр config не является обязательным, поэтому для получения перевода можно использовать функцию обратного вызова:
await s_i18n.getMessage('Description', (response) => {console.log(response)});
// Описание
Метод является асинхронным. Для оптимальной работы используйте ключевое слово await, как в примере ниже.
Возвращаемое значение:
Тип | Описание |
---|---|
String | Метод возвращает сообщение, переведенное на указанный язык, соответствующее параметру language. |
Примеры:
if (!s_form.getValue('condition')) {
await s_i18n.getMessage('Specify conditions in "Condition" [condition] field.', (response) => {
s_form.addErrorMessage(response);
});
return false;
}
const serviceNameValue = 'Почта';
s_i18n.getMessage('Sorry, The {serviceName} Service Is Temporarily Unavailable', {params: {"serviceName": serviceNameValue}, language: "ru", category: "app"}, (response) => console.log(response));
// Извините, почта временно недоступна
getMessages(msgKey, config, callback)
Используйте метод, чтобы вернуть массив строк, содержащих сообщения на языке пользователя. Если строка из массива не локализована для текущего языка или не существует, метод возвращает ее исходное значение.
Параметр msgKeys передает массив строк на перевод. Параметр callback является функцией, которая выполняется после ответа сервера.
Параметры:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
msgKey | String | Да | Нет |
config | Object | Нет | {} |
callback | Function | Нет | Нет |
Па раметр config представляет собой объект, содержащий три параметра:
Наименование | Тип | Обязательно | Значение по умолчанию |
---|---|---|---|
language | String | Нет | '' |
category | String | Нет | 'app' |
params | Object | Нет | {} |
Параметр language принимает значения, указанные в таблице Язык (sys_language). Если он не указан, метод будет использовать текущий язык пользователя.
Параметр category принимает значения, хранящиеся в записи таблицы Исходные сообщения (source_message) в поле Категория.
Если в сообщении присутствуют местозаполнители, а у объекта params есть ключ, совпадающий с заполнителем, то в итоговое сообщение будет подставлено его значение.
Метод является асинхронным. Для оптимальной работы используйте ключевое слово await, как в примере ниже.
Возвращаемое значение:
Тип | Описание |
---|---|
Array of Strings | Метод возвращает массив строк, которые могут быть переведены на язык, соответствующий параметру language. |
Примеры:
const data = \{};
const btnTitles = ['Accept', 'Cancel'];
await s_i18n.getMessages(btnTitles, (response) => {
[data.acceptBtnTitle, data.cancelBtnTitle] = response;
});
console.log(JSON.stringify(data));
// {"acceptBtnTitle":"Accept","cancelBtnTitle":"Cancel"}
При использовании одного и того же местозаполнителя в разных сообщениях метод getMessages() возвращает одинаковые значения.
window.s_i18n.getMessages(
[
'Дата и время должны быть в {translation}.',
'Имя пользователя должно состоять не менее чем из 2 символов {translation}.',
],
{ params: { 'translation': 'TEST' } },
)
Метод возвращает сообщения:
Дата и время должны быть в TEST.
Имя пользователя должно состоять не менее чем из 2 символов TEST.