Перейти к основному содержимому
Версия: 6.19.0

Настройка языковой локализации

Языковая локализация виджета

Поддерживается настройка надписей для соответствия виджета локализации ваших сайтов. В поставку включены локализации для всех надписей виджета на языках: русский (ru), английский (en), индонезийский (id), азербайджанский (az). Они включены в код виджета. Вы можете добавить любое количество дополнительных локалей или переопределить настройки существующих. Управление локализациями выполняется в файле настроек settings.json. Для конфигурирования укажите в ветке locales файла settings.json ключ надписи, код языка и значение для этого языка. В этом примере вы можете посмотреть вариант настроек, в котором несколько надписей были изменены.

Параметры файла конфигурации, отвечающие за локализацию

Управление языковыми локализациями осуществляется в файле настроек settings.json.

ПараметрЗначенияПо умолчаниюОписание
localeстрока"en"Предпочтительная локаль - языковой код в формате ISO 639-1
localesJSON-объект{}Объект, с ключами для переопределения локализаций. Указываются только те ключи и языковые коды, значения которых требуется переопределить

Логика применения локализации

При настройке локализации в settings.json вы можете указать предпочтительную локаль. Для смены локали виджета на лету используется метод setLocale

Локаль надписей в виджете определяется по следующей логике:

  1. Текущая локаль: заданная при инициализации виджета или заданная методом смены локали ссылка. Если текущая не задана, то:
  2. Предпочтительная: выбранная в settings.json. Если предпочтительная не задана, то:
  3. Дефолтная: локаль en

Приоритет отображения надписей:

  1. Переопределенные в файле setting.json. Если не заданы, то:
  2. Дефолтные

Структура раздела locales файла конфигурации settings.json

{
"раздел": {
"подраздел": {
"элемент1": {
"язык1": "значение для языка 1",
"язык2": "значение для языка 2"
}
}
}
}

Описание ключей локализации

Конечным значением ключа является обьект содержащий в свойствах пары код языка: значения для языка (см. структуру)

Тексты ошибок

КлючОписание
1errors.file.restricted.typeТекст ошибки прикрепления файла некорректного типа
2errors.file.restricted.sizeТекст ошибки прикрепления файла некорректного размера
3errors.file.restricted.not-foundТекст ошибки прикрепления отсутствующего файла
4errors.file.disallowedТекст ошибки файла непрошедшего проверку
5errors.file.timeoutТекст ошибки загрузки файла по таймауту
6errors.file.unexpected-errorТекст непредвиденной ошибки загрузки файла

Предупреждение о неполной поддержке браузера

КлючОписание
1BadBrowser.headerPartialШапка чата. Предупреждение о неполной поддержке браузера

Область диалога виджета

КлючОписание
1common.time.todayПлавающая метка даты - сегодня
2common.time.yesterdayПлавающая метка даты - вчера
3common.typingИдентификатор набора текста оператором
4RateIndicator.ofПредлог, используется в сообщении с результатами пройденного опроса CSI - проставленная оценка из максимально возможной. Пример: "ChatMessage": { "of": "из" }, при оценке 4 в 5-балльном опросе будет указано "4 из 5"
5ChatMessage.yourselfМестоимение "Вы" в заголовке сообщения. Указывает клиенту, что отправитель сообщения - он
6ChatMessage.youWroteМетка "вы"
7ChatMessage.operatorWroteМетка "оператор"
8ChatMessage.audio.compatibilityСообщение в случае если браузер не поддерживает аудио контент
8SocialLinks.textНазвание панели со ссылками на социальные сети и мессенджеры
9ChatMessage.audio.errorPlaybackСообщение об ошибке воспроизведения аудио-файла
10ChatMessage.audio.errorSpeechСообщение об ошибке распознавания
11ChatMessage.audio.quoteInfoНазвание аудио сообщения в цитатах
12ChatMessage.downloadErrorСообщение об ошибке сохранения вложения
13ChatMessage.sendErrorundefined
15ChatMessage.messageDeletedundefined
16ChatMessage.messageEditedundefined

Область диалога виджета

Форма приветствия и форма обратной связи

КлючОписание
1LimitedTextarea.charsПоле ввода формы обратной связи, индикатор оставшихся для ввода символов "N символ(ов)"
2ChatWelcome.sendWelcomeФорма приветствия - текст на кнопке отправки формы
3ChatWelcome.identification.pre.textФорма приветствия - заголовок приветственного сообщения
4ChatWelcome.identification.pre.noticeФорма приветствия - подзаголовок приветственного сообщения
5ChatWelcome.identification.post.textЭкран чата после представления клиента: заголовок приветственной фразы
6ChatWelcome.identification.post.noticeЭкран чата после представления клиента: подзаголовок приветственной фразы
7ChatWelcome.form.phone.placeholderФорма приветствия - подсказка для ввода телефона, если маска не задана
8ChatWelcome.form.email.placeholderПодсказка для ввода электронной почты
9ChatWelcome.form.name.placeholderПодсказка для ввода имени
10ChatWelcome.inactivityForm.sentФорма обратной связи - уведомление после отправки сообщения
11ChatWelcome.inactivityForm.sendMessageФорма обратной связи - кнопка отправки

Форма приветствия и форма обратной связи

Заголовок чата

КлючОписание
1ChatHeader.emptyЗаголовок чата. Виджет в процессе инициализации и установки подключения
2ChatHeader.titleЗаголовок чата. У клиента нет активного обращения, чат доступен
3ChatHeader.searchЗаголовок чата. У клиента есть активное обращение, оператор или бот еще не подключился: выполняется поиск
4ChatHeader.operatorSubTitleЗаголовок чата, у клиента есть активное обращение, бот или оператор назначен: название должности или другая информация
5ChatHeader.inactiveЗаголовок чата, чат недоступен

Заголовок чата

Опросы и запросы клиенту

КлючОписание
1ChatPoll.post.textТекст после оценки
2ChatEndPoll.textТекст запроса клиенту - предложение завершить диалог
3ChatEndPoll.continueТекст ответа клиента на запрос - продолжить диалог
4ChatEndPoll.closeТекст ответа клиента на запрос - завершить диалог

Опросы и запросы клиенту

Поле ввода сообщения

КлючОписание
1ChatInput.errorSizeПоле ввода сообщения - cсообщение о превышении допустимого размера прикрепляемого файла
2ChatInput.errorFormatОшибка недопустимого формата прикрепляемого файла
3ChatInput.errorBrokenОшибка поврежденного файла
3ChatInput.placeholderПодсказка для ввода сообщения (плейсхолдер)
4ChatInput.attachments.uploadingСообщение о процессе загрузки вложения
5ChatInput.attachments.uploadedСообщение о готовности вложения к отправке
6ChatInput.attachments.errorОшибка загрузки вложения

Поле ввода сообщения

Нотификации для клиента

КлючОписание
1Offline.down.textСообщение о потере связи с сервером - заголовок
2Offline.down.noticeСообщение о потере связи с сервером - подзаголовок
3Offline.reconnectТекст на кнопке переподключения
4WebNotifications.newВеб-уведомление о новом сообщении
5WebNotifications.attachmentsВеб-уведомление о новом вложении

Нотификации для клиента

Предупреждение о доступе к микрофону

КлючОписание
1MicrophoneAccessModal.titleПредупреждение о доступе к микрофону - заголовок
2MicrophoneAccessModal.textПредупреждение о доступе к микрофону - текст
3MicrophoneAccessModal.buttonПредупреждение о доступе к микрофону - кнопка

Предупреждение о доступе к микрофону

Локализация окна emoji

КлючОписание
1Emoji.recentЭмоджи - вкладка "Недавние"
2Emoji.peopleЭмоджи - вкладка "Смайлики и люди"
3Emoji.natureЭмоджи - вкладка "Животные и природа"
4Emoji.foodsЭмоджи - вкладка "Еда и напитки"
5Emoji.activityЭмоджи - вкладка "Активности"
6Emoji.placesЭмоджи - вкладка "Путешествия и места"
7Emoji.objectsЭмоджи - вкладка "Предметы"
8Emoji.symbolsЭмоджи - вкладка "Символы"

Локализация окна emoji

undefined

КлючОписание
1ButtonsSurvey.thanksТекст благодарности за отклик на кнопочный опрос

Пример переопределения некоторых локалей

settings.json:

{
"locale": "ru",

... // прочие настройки

"locales": {
"ChatWelcome": {
"remained": {
"ru": "Осталось"
},
"identification": {
"pre": {
"notice": {
"ru": "Представьтесь, пожалуйста, и начнём.",
"en": "Please, tell us something about yourself."
}
}
}
},
"ChatInput": {
"placeholder": {
"en": "Type your message here..."
}
}
}
}

Структура и значения по умолчанию

{
"errors": {
"file": {
"restricted": {
"type": {
"ru": "Неверный тип файла. Файл не может быть загружен",
"en": "Invalid file type. The file cannot be uploaded",
"az": "Invalid file type. The file cannot be uploaded",
"id": "Invalid file type. The file cannot be uploaded"
},
"size": {
"ru": "Файл не может быть загружен, невалидный размер файла",
"en": "Invalid file size. The file cannot be uploaded",
"az": "Invalid file size. The file cannot be uploaded",
"id": "Invalid file size. The file cannot be uploaded"
},
"not-found": {
"ru": "Файл не найден",
"en": "File not found",
"az": "File not found",
"id": "File not found"
}
},
"disallowed": {
"ru": "Файл не прошел проверку",
"en": "The file has failed verification",
"az": "The file has failed verification",
"id": "The file has failed verification"
},
"timeout": {
"ru": "Попытка загрузки файла завершена по таймауту",
"en": "The attempt to upload the file is completed by timeout",
"az": "The attempt to upload the file is completed by timeout",
"id": "The attempt to upload the file is completed by timeout"
},
"unexpected-error": {
"ru": "Непредвиденная ошибка загрузки файла",
"en": "Unexpected file upload error",
"az": "Unexpected file upload error",
"id": "Unexpected file upload error"
}
}
},
"BadBrowser": {
"headerPartial": {
"ru": "Возможна некорректная работа виджета в вашем браузере. Рекомендуемые браузеры – [Safari](https://www.apple.com/safari/) и [Chrome](https://www.google.com/chrome/)",
"en": "The widget may work incorrectly in your browser. Recommended browsers are [Safari](https://www.apple.com/safari/) and [Chrome](https://www.google.com/chrome/)",
"az": "The widget may work incorrectly in your browser. Recommended browsers are [Safari](https://www.apple.com/safari/) and [Chrome](https://www.google.com/chrome/)",
"id": "The widget may work incorrectly in your browser. Recommended browsers are [Safari](https://www.apple.com/safari/) and [Chrome](https://www.google.com/chrome/)"
}
},
"common": {
"time": {
"today": {
"ru": "сегодня",
"en": "today",
"az": "today",
"id": "hari ini"
},
"yesterday": {
"ru": "вчера",
"en": "yesterday",
"az": "yesterday",
"id": "kemarin"
}
},
"typing": {
"ru": "печатает...",
"en": "typing...",
"az": "typing...",
"id": "typing..."
}
},
"LimitedTextarea": {
"chars": {
"ru": "осталось символов",
"en": "characters left",
"az": "qalan işarələr",
"id": "simbol kiri"
}
},
"ChatHeader": {
"empty": {
"ru": "Чат",
"en": "Chat"
},
"title": {
"ru": "Добро пожаловать в чат!",
"en": "Welcome to chat"
},
"search": {
"ru": "Поиск оператора",
"en": "Looking for operator"
},
"operatorSubTitle": {
"ru": "оператор",
"en": "operator"
},
"inactive": {
"ru": "Чат временно недоступен",
"en": "Chat temporarily unavailable"
}
},
"ChatWelcome": {
"sendWelcome": {
"ru": "Представиться",
"en": "Start chat",
"az": "Çata başlamaq",
"id": "Start chat"
},
"identification": {
"pre": {
"text": {
"ru": "Появились вопросы к нам? Давайте обсудим здесь",
"en": "Can we help you? Let's discuss it in chat.",
"az": "Sizə necə kömək edə bilərik?",
"id": "Bisakah kami membantu Anda? Mari kita bahas dalam obrolan"
},
"notice": {
"ru": "Представьтесь, пожалуйста, и начнём",
"en": "Please, tell us something about yourself",
"az": "Zəhmət olmasa, özünüz barədə məlumat verin",
"id": "Tolong, beri tahu kami sesuatu tentang diri Anda"
}
},
"post": {
"text": {
"ru": "Спасибо за то, что представились",
"en": "Thank you for sharing",
"az": "Bölüşdüyünz üçün təşəkkür edirik",
"id": "Terima kasih sudah berbagi"
},
"notice": {
"ru": "Это необходимо для идентификации",
"en": "It will help us to support you later",
"az": "Bu bizə sizə daha sonra xidmət göstərməyə kömək edəcək",
"id": "Ini akan membantu kami untuk mendukung Anda nanti"
}
}
},
"form": {
"phone": {
"placeholder": {
"ru": "Номер телефона",
"en": "Phone number",
"az": "Phone number",
"id": "Phone number"
}
},
"email": {
"placeholder": {
"ru": "Электронная почта",
"en": "Email",
"az": "Email",
"id": "Email"
}
},
"name": {
"placeholder": {
"ru": "Ваше имя",
"en": "Name",
"az": "Name",
"id": "Name"
}
}
},
"inactivityForm": {
"sent": {
"ru": "Ваше сообщение отправлено в контактный центр. С Вами свяжется оператор",
"en": "Your message was sent to the contact center. Wait for the reply"
},
"sendMessage": {
"ru": "Отправить",
"en": "Send",
"az": "Göndərmək",
"id": "Send"
}
}
},
"ChatPoll": {
"post": {
"text": {
"ru": "Спасибо за вашу оценку",
"en": "We appreciate your choice",
"az": "Seçiminiz üçün təşəkkür edirik!",
"id": "Kami menghargai pilihan Anda"
}
}
},
"ChatEndPoll": {
"text": {
"ru": "Вы получили ответы на все вопросы, завершить консультацию?",
"en": "Do you have any other questions for us?",
"az": "Əlavə sualınız olacaqmı?",
"id": "Apakah Anda memiliki pertanyaan lain untuk kami?"
},
"continue": {
"ru": "Продолжить",
"en": "Yes",
"az": "Bəli",
"id": "Ya"
},
"close": {
"ru": "Завершить",
"en": "No",
"az": "Xeyr",
"id": "Tidak"
}
},
"ChatInput": {
"errorSize": {
"ru": "превышен максимальный размер",
"en": "the uploaded file exceeds the",
"az": "Yüklədiyiniz fayl ….. aşır",
"id": "the uploaded file exceeds the"
},
"errorFormat": {
"ru": "недопустимый формат файла",
"en": "invalid file format",
"az": "Yanlış fayl formatı",
"id": "invalid file format"
},
"errorBroken": {
"ru": "Файл поврежден",
"en": "The file is corrupted",
"az": "The file is corrupted",
"id": "The file is corrupted"
},
"placeholder": {
"ru": "Ваше сообщение...",
"en": "Type your message here...",
"az": "Mesajınızı burada yazın...",
"id": "Masukan pesan anda disini..."
},
"attachments": {
"uploading": {
"ru": "Загрузка вложения...",
"en": "Uploading...",
"az": "Yüklənir...",
"id": "Uploading..."
},
"uploaded": {
"ru": "Готов. Отправить – Enter",
"en": "uploaded. Press Enter",
"az": "Yükləndi. Enter-i tıklayın",
"id": "uploaded. Press Enter"
},
"error": {
"ru": "Не удалось загрузить вложение",
"en": "Upload failed",
"az": "Yükləmə baş tutmadı",
"id": "Upload failed"
}
}
},
"RateIndicator": {
"of": {
"ru": "из",
"en": "of",
"az": "of",
"id": "of"
}
},
"ChatMessage": {
"yourself": {
"ru": "Вы",
"en": "You"
},
"youWrote": {
"ru": "Вы",
"en": "You"
},
"operatorWrote": {
"ru": "Оператор {{name}}",
"en": "Operator {{name}}"
},
"audio": {
"compatibility": {
"ru": "Ваш браузер не поддерживает аудио контент",
"en": "Your browser does not support audio playback",
"id": "Your browser does not support audio playback",
"az": "Your browser does not support audio playback"
},
"errorPlayback": {
"ru": "Аудио сообщение не может быть воспроизведено",
"en": "Audio message can't be played",
"id": "Audio message can't be played",
"az": "Audio message can't be played"
},
"errorSpeech": {
"ru": "Ошибка распознавания",
"en": "Recognition error",
"id": "Recognition error",
"az": "Recognition error"
},
"quoteInfo": {
"ru": "аудиосообщение",
"en": "audio message",
"id": "audio message",
"az": "audio message"
}
},
"downloadError": {
"ru": "Ошибка загрузки",
"en": "Download error"
},
"sendError": {
"ru": "Сообщение не отправлено",
"en": "The message has not been sent"
},
"messageDeleted": {
"ru": "Сообщение удалено",
"en": "Deleted message"
},
"messageEdited": {
"ru": "ред.",
"en": "ed."
}
},
"Offline": {
"down": {
"text": {
"ru": "Потеряна связь с сервером",
"en": "Connection is dropped",
"az": "Bağlantı kəsildi",
"id": "Connection is dropped"
},
"notice": {
"ru": "проверьте ваше подключение к сети интернет",
"en": "check your internet connection",
"az": "İnternetlə bağlantınızı yoxlayın",
"id": "check your internet connection"
}
},
"reconnect": {
"ru": "Подключиться снова",
"en": "Reconnect",
"az": "Təkrar bağlan",
"id": "Reconnect"
}
},
"WebNotifications": {
"new": {
"ru": "Новое сообщение: ",
"en": "New message: ",
"az": "Yeni mesaj: ",
"id": "New message: "
},
"attachments": {
"ru": "Новое вложение",
"en": "New attachment",
"az": "New attachment",
"id": "New attachment"
}
},
"SocialLinks": {
"text": {
"ru": "Спросить в мессенджере",
"en": "Ask in the messenger",
"id": "Bertanya the messenger"
}
},
"MicrophoneAccessModal": {
"title": {
"ru": "Нет доступа к микрофону",
"en": "No access to your microphone"
},
"text": {
"ru": "Чтобы записать голосовое сообщение, разрешите доступ к микрофону в настройках браузера",
"en": "To be able to record voice messages, you need to allow access to your microphone in the browser settings"
},
"button": {
"ru": "Понятно",
"en": "Ok"
}
},
"Emoji": {
"recent": {
"ru": "Недавние",
"en": "Frequently Used",
"id": "Sering digunakan",
"az": "Son istifadə olunmuş"
},
"people": {
"ru": "Смайлики и люди",
"en": "Smileys & People",
"id": "Smiley & Orang",
"az": "Smayllar və insanlar"
},
"nature": {
"ru": "Животные и природа",
"en": "Animals & Nature",
"id": "Hewan & Alam",
"az": "Heyvanlar və təbiət"
},
"foods": {
"ru": "Еда и напитки",
"en": "Food & Drink",
"id": "Makanan Minuman",
"az": "Qida və içkilər"
},
"activity": {
"ru": "Активности",
"en": "Activity",
"id": "Aktivitas",
"az": "Fəallıq"
},
"places": {
"ru": "Путешествия и места",
"en": "Travel & Places",
"id": "Travel & Places",
"az": "Səyahət və yerlər"
},
"objects": {
"ru": "Предметы",
"en": "Objects",
"id": "Benda",
"az": "Əşyalar"
},
"symbols": {
"ru": "Символы",
"en": "Symbols",
"id": "Simbol",
"az": "Simvollar"
}
},
"ButtonsSurvey": {
"thanks": {
"ru": "Спасибо за участие в опросе!",
"en": "Thank you for participating in our survey!",
"id": "Thank you for participating in our survey!",
"az": "Thank you for participating in our survey!"
}
}
}