Skip to main content
Version: 4.31.0

Localization

Localization Settings

To use a new localization for the chatcenter library, you need to add a lnaguage file to your project, for example, ThreadsLocalizable.strings and add it to THRAttributes:

attributes.localizationConfig = .init(bundle: Bundle(for: AttributesHelper.self), tableName: "ThreadsLocalizable")

It is possible to add other language (the ones that are not in the language file by default).

If there is no language file or the required keys are missing in it, the text for them will be taken from the language file by default.

List of localization keys transferred from THRAttributes:

  • placeholder_header (helloTitle title in THRAttributes) - Title, short text in large font
  • placeholder_content (helloDescription title in THRAttributes) - Subtitle, longer text in a smaller font
  • state_not_connected (chatStateNotConnectedTitle title in THRAttributes) - Heading of the chat when there is no connection, by default it is "Contact"
  • state_ready (chatStateReadyTitle title in  THRAttributes) - Heading of the chat that is ready, by default it is "Contact center"
  • threads_request_close_thread_text (closeThreadSurveyText title in  THRAttributes) - Text of the request for the early end of the thread
  • no (closeThreadSurveyAnswerClose title in  THRAttributes) - Response text that closes the thread
  • yes (closeThreadSurveyAnswerContinue title in THRAttributes) - Response text that continues the thread

List of Localization Keys

Chat Screen

Text in the center of the screen when a chat initialization error occurs

"registration_failed_alert" = "Chat initialization failed:\n%@" / "Возникла проблема во время инициализации чата:\n%@"

"empty_client_id_error" = "Client id is not provided" / "Client id не указан"
"state_not_connected" = "Call center" / "Контакт центр"

"empty_client_name_error" = "Client name not provided" / "Client name не указано"

"data_not_parsed" = "Could not parse client data" / "Не удалось распарсить client data"

"repeat" = "Repeat" / "Повторить"

When connecting to the chat

"state_connecting" = "Connecting..." / "Подключение..."

"state_ready" = "Call center" / "Контакт центр"

"state_working" = "Specialist" / "Оператор"

"state_disconnected" = "Disconnected" / "Отключен"

"state_loading_history" = "Loading..." / "Загрузка…"

Title of the window when searching for an operator

"state_waiting_for_specialist" = "Searching..." / "Поиск оператора..."

When connecting to a chat and there are no messages

"placeholder_header" = "Welcome to the call center" / "Добро пожаловать в контакт центр"

Notifications when Sending Messages

"placeholder_content" = "Send your question, the first available specialist will answer it." / "Отправьте ваш вопрос, первый освободившийся оператор на него ответит."

"failed_message" = "The message failed to send. Retry or try again later" / "Сообщение не было отправлено. Нажмите "повторить отправку", чтобы отправить"

"failed_title" = "";

"failed_retry" = "Retry" / "Повторить отправку"

"failed_delete" = "Delete" / "Удалить"

"not_delivered" = "Not delivered" / "Не доставлено"

"menu_quote_title" = "Quote / "Цитировать"

Notifications during Chat

"system_message_join_chat_unknown" = "joined at %@" / "подключился(-ась) к диалогу в %@"

"system_message_join_chat_male" = "joined at %@" / "подключился к диалогу в %@"

"system_message_join_chat_female" = "joined at %@" / "подключилась к диалогу в %@"

"system_message_leave_chat_unknown" = "left at %@" / "покинул(а) диалог в %@"

"system_message_leave_chat_male" = "left at %@" / "покинул диалог в %@"

"system_message_leave_chat_female" = "left at %@" / "покинула диалог в %@"

"threads_request_close_thread_text" = "Specialist has answered all your questions, do you want to proceed consulting?" / "Специалист ответил на все ваши вопросы, продолжить консультацию?"

"sent_label" = "sent at %@" / "отправлено в %@"
"search_sent_by_you" = "You" / "Вы"
"one_unread_message" = "new message" / "новое сообщение"

"many_unread_messages" = "new messages" / "новых сообщения"

"reply" = "Reply" / "Ответить"

"client_name" = "Me" / "Я"

"survey_vote_from" = "of" / "из"

"survey_thanks" = "Thanks for vote" / "Спасибо за вашу оценку"

"image_attachment_title" = "image" / "изображение"

"loading_placeholder" = "Loading" / "Загрузка"

"image_is_nil" = "Image can not be nil" / "Изображение не должно быть nil"

"outside_text_limit_exceed" = "Text length limit exceeded. Maximum %lu symbols" / "Превышен предел длины текста. Максимум %lu символов"

"outside_text_is_empty" = "Text can not be empty" / "Сообщение не может быть пустое"

// JSQMessages
"load_earlier_messages" = "Load Earlier Messages" / "Предыдущие сообщения"

When you tap the search icon, a search field appears with the button.

"cancel" = "Cancel" / "Отмена"

"search" = "Search" / "Поиск"

In the same module below there are the following buttons

"search_scope_all" = "All" / "Все"

"search_scope_images" = "Images" / "Изображения"

"search_scope_files" = "Files" / "Файлы"

Notifications when Searching

"search_messages_found" = "messages found:" / "сообщений найдено:"

"search_yet_another" = "Search more" / "Искать еще"

If there is no permission to access the camera, a notification appears.

Notification Fields

"access_denied" = "Access denied" / "Нет доступа"

"unlock_photos_access" = "Unlock your photos in the app settings to continue" / "Разблокируйте доступ к фотографиям в настройках приложения, чтобы продолжить"

"file_limit_alert_title" = "File Size" / "Размер файла"

"file_limit_alert_message" = "File size limit exceeded. Maximum %.2f MB" / "Превышен лимит размера файла. Максимальный размер %.2f мб"

//SQPhotoPicker
"cant_take_photo" = "Can't take a photo" / "Не могу сфотографировать"

"camera_not_found" = "On your device, the camera can not be found" / "На Вашем устройстве не найдена камера"

"unlock_camera_access" = "Unlock your camera in the app settings to continue" / "Разблокируйте доступ к камере в настройках приложения, чтобы продолжить"

Fields in System Notification when Selecting Photos or Files on Device

"my_albums" = "My Albums" / "Мои альбомы"

"pick_photo" = "Take photo" / "Сделать снимок"

"take_selfie" = "Take selfie"/ "Сделать селфи"

"send_photos" = "Send" / "Отправить"

"cancel_pick" = "Cancel" / "Отмена"

"photo" = "photo" / "фото"

"albums" = "Albums" / "Альбомы"

"limit_reached" = "Limit reached!" / "Лимит достигнут!"

"limit_desc" = "You can pick up to" / "Вы можете загрузить не более "

"album_not_found" = "Selected album not found or it doesn't contain images" / "Выбранный альбом не найден или не содержит изображений"

"selfie_hint" = "Make sure your face is centered in the frame and is seen clearly" / "Убедитесь, что на фото ваше лицо размещено прямо и его отчетливо видно"

"do_cancel" = "Cancel" / "Отменить"

When Viewing Selected Photo, The Following Buttons Appear

"retake_photo" = "Retake" / "Переснять"

"do_send" = "Send" / "Отправить"

Notification when Tapping Microphone Button

"voice_recording_hint" = "Hold to start recording" / "Удерживайте, чтобы начать запись"

Error alert when trying to play audio

"voice_play_error" = "The entry is not readable" / "Запись не читается"

When Keyboard Appears

"send" = "Send" / "Отпр"

"new_message" = "New Message" / "Сообщение"

Changing Contents on Current Page

"text_message_accessibility_label" = "%@: %@";

"media_message_accessibility_label" = "%@: media message";

"accessory_button_accessibility_label" = "Share media";

"new_message_received_accessibility_announcement" = "New message received";

// Specialist Positions (Roles)

"BOT" = "Bot" / "Бот"

"EXTERNAL_BOT" = "Bot" / "Бот"

"OPERATOR" = "Operator" / "Оператор"

"SUPERVISOR" = "Operator" / "Оператор"

"SYSTEM" = "Operator" / "Оператор"

"INTEGRATION" = "Operator" / "Оператор"