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 inTHRAttributes
) - Title, short text in large fontplaceholder_content
(helloDescription
title inTHRAttributes
) - Subtitle, longer text in a smaller fontstate_not_connected
(chatStateNotConnectedTitle
title inTHRAttributes
) - Heading of the chat when there is no connection, by default it is "Contact"state_ready
(chatStateReadyTitle
title inTHRAttributes
) - Heading of the chat that is ready, by default it is "Contact center"threads_request_close_thread_text
(closeThreadSurveyText
title inTHRAttributes
) - Text of the request for the early end of the threadno
(closeThreadSurveyAnswerClose
title inTHRAttributes
) - Response text that closes the threadyes
(closeThreadSurveyAnswerContinue
title inTHRAttributes
) - 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" / "Оператор"