You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 16 Next »
Данный класс содержит методы, возвращающие переведенные сообщения. У него нет конструктора, поэтому доступ к методам осуществляется через глобальный объект s_i18n.
getMessage(msgKey, config, callback)
Этот метод возвращает строку, содержащую сообщение на языке пользователя, для переданной в него строки."Если в системе не существует такой строки, или её перевода на текущий язык, метод возвращает значение msgKey.
Параметр msgKey содержит строку для перевода, а параметр callback является функцией, которая выполняется после ответа сервера.
Параметры:
Название | Тип | Обязательное | Дефолтное значение |
---|---|---|---|
msgKey | String | Д | Н |
config | Object | Н | '' |
callback | Function | Н | Н |
Параметр config представляет собой объект, содержащий три параметра:
Название | Тип | Обязательное | Дефолтное значение |
---|---|---|---|
language | String | Н | '' |
category | String | Н | 'app' |
params | String | Н | '' |
Параметр language принимает значения, указанные в словаре Язык (sys_language). Если он не указан, метод будет использовать текущий язык пользователя.
Параметр category принимает значения, указанные в записи таблицы Исходные сообщения (source_message) в поле Category.
Параметр params позволяет объекту получать значения параметров language и category и сохранять значение плэйсхолдера из параметра msgKey.
Пример:
Как правило, параметр config не является обязательным, поэтому для получения перевода можно использовать функции обратного вызова:
await s_i18n.getMessage('Description', (response) => {console.log(response)}); // Description
Данный метод является асинхронным. Для оптимальной работы используйте ключевое слово 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, {serviceName} Service Is Temporarily Unavailable', {params: {"serviceName": serviceNameValue}, language: "ru", category: "app"}, (response) => console.log(response)); // Извините, Почта временно недоступна
getMessages(msgKeys, config, callback)
Этот метод возвращает массив строк, содержащих сообщения на языке пользователя. Если строка из массива не локализована для текущего языка или не существуют, метод возвращает её исходное значение.
Параметр msgKeys передает массив строк на перевод. Параметр callback является функцией, которая выполняется после ответа сервера.
Параметры:
Название | Тип | Обязательное | Дефолтное значение |
---|---|---|---|
msgKeys | Array of String | Д | Н |
config | Object | Н | '' |
callback | Function | Н | Н |
Параметр config представляет собой объект, содержащий три параметра:
Название | Тип | Обязательное | Дефолтное значение |
---|---|---|---|
language | String | Н | '' |
category | String | Н | 'app' |
params | Object | Н | '' |
Параметр language принимает значения, указанные в словаре Язык (sys_language). Если он не указан, метод будет использовать текущий язык пользователя.
Параметр category принимает значения, указанные в записи таблицы Исходные сообщения (source_message) в поле Category.
Параметр params позволяет объекту получать значения параметров language и category и сохранять значение плэйсхолдера из параметра msgKey.
Данный метод является асинхронным. Для оптимальной работы используйте ключевое слово await, как в примере ниже.
Возвращаемое значение:
Тип | Описание |
---|---|
Array of strings | Метод возвращает массив строк, которые могут быть переведены на заданный язык при соответствующей настройке. |
Пример:
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() возвращает одинаковые значения.
const dayOfWeek = ['Monday', 'Wednesday', 'Friday']; s_i18n.getMessages(dayOfWeek, {language: 'ru'}, (response) => {console.log(response.join('-'))}); // Понедельник-Среда-Пятница
- No labels