Локализация
Настройки локализации
Чтобы использовать новую локализацию для библиотеки chatcenter
, необходимо в свой проект добавить языковой файл , например ThreadsLocalizable.strings
и добавить его в THRAttributes:
attributes.localizationConfig = .init(bundle: Bundle(for: AttributesHelper.self), tableName: "ThreadsLocalizable")
Возможно добавление своих языков (отсутствующих в языковом файле по умолчанию).
Если языкового файла не будет или необходимые ключи в языковом файле будут отсутствовать, текст будет браться из языкового файла по умолчанию.
Список ключей локализации, перенесенных из THRAttributes:
placeholder_header
(helloTitle
название вTHRAttributes
) - заголовок, короткий текст крупным шрифтомplaceholder_content
(helloDescription
название вTHRAttributes
) - подзаголовок, более длинный текст шрифтом меньше.state_not_connected
(chatStateNotConnectedTitle
название вTHRAttributes
) - заголовок чата при отсутствии связи, по умолчанию "Контакт центр"state_ready
(chatStateReadyTitle
название вTHRAttributes
) - заголовок чата готового к работе, по умолчанию "Контакт центр"threads_request_close_thread_text
(closeThreadSurveyText
название вTHRAttributes
) - текст запроса о досрочном завершении тредаno
(closeThreadSurveyAnswerClose
название вTHRAttributes
) - текст ответа, закрывающего обращениеyes
(closeThreadSurveyAnswerContinue
название вTHRAttributes
) - текст ответа, продолжающего обращение
Список ключей локализации:
Окно чата
Текст в центре экрана, при возникновении ошибки инициализации чата
"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" / "Повторить"
При подключении к чату
"state_connecting" = "Connecting..." / "Подключение..."
"state_ready" = "Call center" / "Контакт центр"
"state_working" = "Specialist" / "Оператор"
"state_disconnected" = "Disconnected" / "Отключен"
"state_loading_history" = "Loading..." / "Загрузка…"
Заголовок окна при поиске оператора
"state_waiting_for_specialist" = "Searching..." / "Поиск оператора..."
При подключении к чату, и отсутствию сообщений
"placeholder_header" = "Welcome to the call center" / "Добро пожаловать в контакт центр"
Уведомления при отправке сообщений
"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 / "Цитировать"
Уведомления во время чата
"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" / "Предыдущие сообщения"
При нажатии на иконку поиска, появляется поле поиска с кнопкой.
"cancel" = "Cancel" / "Отмена"
"search" = "Search" / "Поиск"
В этом же модуле ниже есть кнопки
"search_scope_all" = "All" / "Все"
"search_scope_images" = "Images" / "Изображения"
"search_scope_files" = "Files" / "Файлы"
Уведомления при поиске
"search_messages_found" = "messages found:" / "сообщений найдено:"
"search_yet_another" = "Search more" / "Искать еще"
При отсутствии разрешения на доступ к камере, появляется уведомление.
Поля уведомления
"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" / "Разблокируйте доступ к камере в настройках приложения, чтобы продолжить"
Поля в системном уведомлении, при выборе фото или файлов на устройстве
"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" / "Отменить"
При просмотре выбранной фотографии, появляются внизу кнопки
"retake_photo" = "Retake" / "Переснять"
"do_send" = "Send" / "Отправить"
Уведомление при касании иконки микрофона
"voice_recording_hint" = "Hold to start recording" / "Удерживайте, чтобы начать запись"
Алерт ошибки, при попытке воспроизведения аудио
"voice_play_error" = "The entry is not readable" / "Запись не читается"
При появлении клавиатуры
"send" = "Send" / "Отпр"
"new_message" = "New Message" / "Сообщение"
Изменение содержимого на текущей странице
"text_message_accessibility_label" = "%@: %@";
"media_message_accessibility_label" = "%@: медиа сообщение";
"accessory_button_accessibility_label" = "Поделиться";
"new_message_received_accessibility_announcement" = "Получено новое сообщение";
// Specialist Positions (Roles)
"BOT" = "Bot" / "Бот"
"EXTERNAL_BOT" = "Bot" / "Бот"
"OPERATOR" = "Operator" / "Оператор"
"SUPERVISOR" = "Operator" / "Оператор"
"SYSTEM" = "Operator" / "Оператор"
"INTEGRATION" = "Operator" / "Оператор"