parent
94c7d9e8cc
commit
ccaf5413f2
|
@ -1,10 +1,11 @@
|
|||
import I18n from 'react-native-i18n';
|
||||
import en from './locales/en';
|
||||
import ru from './locales/ru';
|
||||
|
||||
I18n.fallbacks = true;
|
||||
|
||||
I18n.translations = {
|
||||
en
|
||||
en, ru
|
||||
};
|
||||
|
||||
export default I18n;
|
||||
|
|
|
@ -0,0 +1,320 @@
|
|||
export default {
|
||||
'1_online_member': '1 участник онлайн',
|
||||
'1_person_reacted': '1 человек отреагировал',
|
||||
'error-action-not-allowed': '{{action}} не допускается',
|
||||
'error-application-not-found': 'Приложение не найдено',
|
||||
'error-archived-duplicate-name': 'Есть архивный канал с именем {{room_name}}',
|
||||
'error-avatar-invalid-url': 'Недопустимый URL-адрес аватара: {{url}}',
|
||||
'error-avatar-url-handling': 'Ошибка при обработке настроек аватара с URL-адреса ({{url}}) для {{username}}',
|
||||
'error-cant-invite-for-direct-room': 'Невозможно пригласить пользователя в личную переписку',
|
||||
'error-could-not-change-email': 'Не удалось изменить адрес электронной почты',
|
||||
'error-could-not-change-name': 'Не удалось изменить имя',
|
||||
'error-could-not-change-username': 'Не удалось изменить имя пользователя',
|
||||
'error-delete-protected-role': 'Не удается удалить защищенную роль',
|
||||
'error-department-not-found': 'Отдел не найден',
|
||||
'error-direct-message-file-upload-not-allowed': 'Общий доступ к файлам не разрешен в личных сообщениях',
|
||||
'error-duplicate-channel-name': 'Канал с именем {{channel_name}} существует',
|
||||
'error-email-domain-blacklisted': 'Домен электронной почты включен в черный список',
|
||||
'error-email-send-failed': 'Ошибка при попытке отправить электронное письмо: {{message}}',
|
||||
'error-field-unavailable': '{{field}} уже используется :(',
|
||||
'error-file-too-large': 'Файл слишком большой',
|
||||
'error-importer-not-defined': 'Импортер не был определен правильно, ему не хватает класса Import.',
|
||||
'error-input-is-not-a-valid-field': '{{input}} недействительно {{field}}',
|
||||
'error-invalid-actionlink': 'Недействительная ссылка действия',
|
||||
'error-invalid-arguments': 'Недопустимые аргументы',
|
||||
'error-invalid-asset': 'Недопустимый актив',
|
||||
'error-invalid-channel': 'Недействительный канал.',
|
||||
'error-invalid-channel-start-with-chars': 'Недействительный канал. Начните с @ или #',
|
||||
'error-invalid-custom-field': 'Неверное настраиваемое поле',
|
||||
'error-invalid-custom-field-name': 'Неверное имя настраиваемого поля. Используйте только буквы, цифры, дефисы и символы подчеркивания.',
|
||||
'error-invalid-date': 'Указана недопустимая дата.',
|
||||
'error-invalid-description': 'Недопустимое описание',
|
||||
'error-invalid-domain': 'Недопустимый домен',
|
||||
'error-invalid-email': 'Неверный адрес электронной почты {{emai}}',
|
||||
'error-invalid-email-address': 'Неверный адрес электронной почты',
|
||||
'error-invalid-file-height': 'Недопустимая высота файла',
|
||||
'error-invalid-file-type': 'Неверный тип файла',
|
||||
'error-invalid-file-width': 'Недопустимая ширина файла',
|
||||
'error-invalid-from-address': 'Вы указали неверный адрес FROM.',
|
||||
'error-invalid-integration': 'Недопустимая интеграция',
|
||||
'error-invalid-message': 'Недопустимое сообщение',
|
||||
'error-invalid-method': 'Недопустимый метод',
|
||||
'error-invalid-name': 'Недопустимое имя',
|
||||
'error-invalid-password': 'Неверный пароль',
|
||||
'error-invalid-redirectUri': 'Недопустимый redirectUri',
|
||||
'error-invalid-role': 'Недопустимая роль',
|
||||
'error-invalid-room': 'Недопустимый канал',
|
||||
'error-invalid-room-name': '{{room_name}} не является допустимым именем канала',
|
||||
'error-invalid-room-type': '{{type}} не является допустимым типом канала.',
|
||||
'error-invalid-settings': 'Недопустимые параметры',
|
||||
'error-invalid-subscription': 'Недействительная подписка',
|
||||
'error-invalid-token': 'Недопустимый токен',
|
||||
'error-invalid-triggerWords': 'Недопустимые triggerWords',
|
||||
'error-invalid-urls': 'Недопустимые URL-адреса',
|
||||
'error-invalid-user': 'Недопустимый пользователь',
|
||||
'error-invalid-username': 'Неверное имя пользователя',
|
||||
'error-invalid-webhook-response': 'URL-адрес ответил статусом, отличным от 200',
|
||||
'error-message-deleting-blocked': 'Удаление сообщений заблокировано',
|
||||
'error-message-editing-blocked': 'Редактирование сообщений заблокировано',
|
||||
'error-message-size-exceeded': 'Размер сообщения превышает Message_MaxAllowedSize',
|
||||
'error-missing-unsubscribe-link': 'Вы должны указать ссылку [отписаться].',
|
||||
'error-no-tokens-for-this-user': 'Для этого пользователя нет токенов',
|
||||
'error-not-allowed': 'Не допускается',
|
||||
'error-not-authorized': 'Не разрешено',
|
||||
'error-push-disabled': 'Push отключен',
|
||||
'error-remove-last-owner': 'Это последний владелец. Прежде чем удалить его, установите нового владельца.',
|
||||
'error-role-in-use': 'Невозможно удалить роль, потому что она используется',
|
||||
'error-role-name-required': 'Требуется имя роли',
|
||||
'error-the-field-is-required': 'Требуется поле {{field}}.',
|
||||
'error-too-many-requests': 'Ошибка, слишком много запросов. Пожалуйста, помедленнее. Вы должны подождать {{seconds}} секунд, прежде чем повторять попытку.',
|
||||
'error-user-is-not-activated': 'Пользователь не активирован',
|
||||
'error-user-has-no-roles': 'Пользователь не имеет ролей',
|
||||
'error-user-limit-exceeded': 'Количество пользователей, которых вы пытаетесь пригласить на #channel_name, превышает лимит, установленный администратором',
|
||||
'error-user-not-in-room': 'Пользователя нет на этом канале',
|
||||
'error-user-registration-custom-field': 'error-user-registration-custom-field',
|
||||
'error-user-registration-disabled': 'Регистрация пользователей отключена',
|
||||
'error-user-registration-secret': 'Регистрация пользователей разрешена только через секретный URL',
|
||||
'error-you-are-last-owner': 'Вы последний владелец. Пожалуйста, установите нового владельца, прежде чем покинуть комнату.',
|
||||
Actions: 'Действия',
|
||||
Add_Reaction: 'Добавить реакцию',
|
||||
Add_Server: 'Добавить сервер',
|
||||
Add_user: 'Добавить пользователя',
|
||||
Alert: 'Оповещение',
|
||||
alert: 'оповещение',
|
||||
alerts: 'оповещения',
|
||||
All_users_in_the_channel_can_write_new_messages: 'Все пользователи канала могут писать новые сообщения',
|
||||
All: 'Все',
|
||||
Allow_Reactions: 'Разрешить реакции',
|
||||
and_more: 'и более',
|
||||
and: 'и',
|
||||
announcement: 'объявление',
|
||||
Announcement: 'Объявление',
|
||||
ARCHIVE: 'АРХИВ',
|
||||
archive: 'архив',
|
||||
are_typing: 'печатают',
|
||||
Are_you_sure_question_mark: 'Вы уверены?',
|
||||
Are_you_sure_you_want_to_leave_the_room: 'Вы действительно хотите покинуть канал {{room}}?',
|
||||
Authenticating: 'Аутентификация',
|
||||
Avatar_changed_successfully: 'Аватар успешно изменен!',
|
||||
Avatar_Url: 'URL аватара',
|
||||
Away: 'Отошел',
|
||||
Block_user: 'Блокировать пользователя',
|
||||
Broadcast_channel_Description: 'Только авторизованные пользователи могут писать новые сообщения, но другие пользователи смогут ответить',
|
||||
Broadcast_Channel: 'Широковещательный канал',
|
||||
Busy: 'Занят',
|
||||
By_proceeding_you_are_agreeing: 'Продолжая, вы соглашаетесь с нашими',
|
||||
Cancel_editing: 'Отменить редактирование',
|
||||
Cancel_recording: 'Отменить запись',
|
||||
Cancel: 'Отмена',
|
||||
changing_avatar: 'изменение аватара',
|
||||
Channel_Name: 'Название канала',
|
||||
Chats: 'Чаты',
|
||||
Close: 'Закрыть',
|
||||
Close_emoji_selector: 'Закрыть селектор emoji',
|
||||
Choose: 'Выбрать',
|
||||
Choose_from_library: 'Выбрать из библиотеки',
|
||||
Code: 'Код',
|
||||
Colaborative: 'Совместный',
|
||||
Connect: 'Соединение',
|
||||
Connected_to: 'Подключен к',
|
||||
Connecting: 'Соединение',
|
||||
Copied_to_clipboard: 'Скопировано в буфер обмена!',
|
||||
Copy_Message: 'Копировать сообщение',
|
||||
Copy_Permalink: 'Копировать постоянную ссылку',
|
||||
Create_account: 'Создать аккаунт',
|
||||
Create_Channel: 'Создать канал',
|
||||
Create: 'Создать',
|
||||
Delete_Room_Warning: 'Удаление канала приведет к удалению всех сообщений, размещенных в нем. Это не может быть отменено.',
|
||||
delete: 'удалить',
|
||||
Delete: 'Удалить',
|
||||
DELETE: 'УДАЛИТЬ',
|
||||
description: 'описание',
|
||||
Description: 'Описание',
|
||||
Disable_notifications: 'Отключить уведомления',
|
||||
Do_you_really_want_to_key_this_room_question_mark: 'Вы действительно хотите {{key}} этот канал?',
|
||||
edit: 'редактировать',
|
||||
Edit: 'Редактировать',
|
||||
Email_or_password_field_is_empty: 'Поле электронной почты или пароля пусты',
|
||||
Email: 'Электронная почта',
|
||||
Enable_notifications: 'Включить уведомления',
|
||||
Everyone_can_access_this_channel: 'Каждый может получить доступ к этому каналу',
|
||||
Error_uploading: 'Ошибка при загрузке',
|
||||
Files: 'Файлы',
|
||||
Finish_recording: 'Завершить запись',
|
||||
For_your_security_you_must_enter_your_current_password_to_continue: 'В целях вашей безопасности вы должны ввести свой текущий пароль для продолжения',
|
||||
Forgot_my_password: 'Забыл свой пароль',
|
||||
Forgot_password_If_this_email_is_registered: 'Если эта электронная почта зарегистрирована, мы отправим инструкции о том, как сбросить пароль. Если вы не получите письмо в ближайшее время, вернитесь и повторите попытку.',
|
||||
Forgot_password: 'Забыли пароль',
|
||||
Forgot_Password: 'Забыли Пароль',
|
||||
Has_joined_the_channel: 'Присоединился к каналу',
|
||||
Has_left_the_channel: 'Покинул канал',
|
||||
I_have_an_account: 'У меня есть аккаунт',
|
||||
Invisible: 'Невидимый',
|
||||
is_a_valid_RocketChat_instance: 'является действительным сервером Rocket.Chat',
|
||||
is_not_a_valid_RocketChat_instance: 'не является действительным сервером Rocket.Chat',
|
||||
is_typing: 'печатает',
|
||||
Just_invited_people_can_access_this_channel: 'Только приглашенные люди могут получить доступ к этому каналу',
|
||||
Language: 'Язык',
|
||||
last_message: 'последнее сообщение',
|
||||
Leave_channel: 'Покинуть канал',
|
||||
leave: 'покинуть',
|
||||
Loading_messages_ellipsis: 'Загрузка сообщений ...',
|
||||
Login: 'Вход',
|
||||
Logout: 'Выйти',
|
||||
Members: 'Пользователи',
|
||||
Mentioned_Messages: 'Упомянутые сообщения',
|
||||
mentioned: 'упомянутые',
|
||||
Mentions: 'Упоминания',
|
||||
Message_accessibility: 'Сообщение от {{user}} в {{time}}: {{message}}',
|
||||
Message_actions: 'Действия с сообщением',
|
||||
Message_pinned: 'Сообщение прикреплено',
|
||||
Message_removed: 'Сообщение удалено',
|
||||
Messages: 'Сообщения',
|
||||
Microphone_Permission_Message: 'Rocket Chat нуждается в доступе к вашему микрофону, чтобы вы могли отправлять аудиосообщения.',
|
||||
Microphone_Permission: 'Разрешение на использование микрофона',
|
||||
Mute: 'Заглушить',
|
||||
muted: 'Заглушен',
|
||||
My_servers: 'Мои серверы',
|
||||
N_online_members: '{{n}} пользователей онлайн',
|
||||
N_person_reacted: '{{n}} людей отреагировало',
|
||||
Name: 'Имя',
|
||||
New_in_RocketChat_question_mark: 'Новичок в Rocket.Chat?',
|
||||
New_Message: 'Новое Сообщение',
|
||||
New_Password: 'Новый Пароль',
|
||||
New_Server: 'Новый Сервер',
|
||||
No_files: 'Нет файлов',
|
||||
No_mentioned_messages: 'Нет упоминаний',
|
||||
No_pinned_messages: 'Нет прикрепленных сообщений',
|
||||
No_snippeted_messages: 'Нет сообщений со сниппетом',
|
||||
No_starred_messages: 'Нет отмеченных сообщений',
|
||||
No_announcement_provided: 'Нет объявлений.',
|
||||
No_description_provided: 'Нет описания.',
|
||||
No_topic_provided: 'Нет темы.',
|
||||
No_Message: 'Нет сообщения',
|
||||
No_Reactions: 'Нет реакций',
|
||||
Not_logged: 'Не зарегистрирован',
|
||||
Nothing_to_save: 'Нечего сохранять!',
|
||||
Notify_active_in_this_room: 'Уведомить всех активных пользователей в этом чате',
|
||||
Notify_all_in_this_room: 'Уведомить всех в этом чате',
|
||||
Offline: 'Офлайн',
|
||||
Online: 'Онлайн',
|
||||
Only_authorized_users_can_write_new_messages: 'Только авторизованные пользователи могут писать новые сообщения',
|
||||
Open_emoji_selector: 'Открыть селектор emoji',
|
||||
Or_continue_using_social_accounts: 'Или продолжить, используя социальные учетные записи',
|
||||
Password: 'Пароль',
|
||||
Permalink_copied_to_clipboard: 'Постоянная ссылка скопирована в буфер обмена!',
|
||||
Pin: 'Прикрепить сообщение',
|
||||
Pinned_Messages: 'Прикрепленные сообщения',
|
||||
pinned: 'прикреплено',
|
||||
Pinned: 'Прикреплено',
|
||||
Please_enter_your_password: 'Пожалуйста введите ваш пароль',
|
||||
Preferences_saved: 'Настройки сохранены!',
|
||||
Privacy_Policy: ' Политика Конфиденциальности',
|
||||
Private_Channel: 'Приватный канал',
|
||||
Private: 'Приватный',
|
||||
Profile_saved_successfully: 'Профиль успешно сохранен!',
|
||||
Profile: 'Профиль',
|
||||
Public_Channel: 'Публичный канал',
|
||||
Public: 'Публичный',
|
||||
Quote: 'Цитата',
|
||||
Reactions_are_disabled: 'Реакции отключены',
|
||||
Reactions_are_enabled: 'Реакции активированы',
|
||||
Reactions: 'Реакции',
|
||||
Read_Only_Channel: 'Канал только для чтения',
|
||||
Read_Only: 'Только для чтения',
|
||||
Register: 'Зарегистрировать',
|
||||
Repeat_Password: 'Повторите пароль',
|
||||
Reply: 'Ответить',
|
||||
Resend: 'Отправить повторно',
|
||||
Reset_password: 'Сброс пароля',
|
||||
RESET: 'СБРОС',
|
||||
Roles: 'Роли',
|
||||
Room_actions: 'Действия с каналом',
|
||||
Room_changed_announcement: 'Объявление канала было изменено на: {{объявление}} пользователем {{userBy}}',
|
||||
Room_changed_description: 'Описание комнаты было изменено на: {{объявление}} пользователем {{userBy}}',
|
||||
Room_changed_privacy: 'Тип канала был изменен на: {{type}} пользователем {{userBy}}',
|
||||
Room_changed_topic: 'Топик канала был изменен на: {{topic}} пользователем {{userBy}}',
|
||||
Room_Files: 'Файлы',
|
||||
Room_Info_Edit: 'Редактировать информацию о канале',
|
||||
Room_Info: 'Информация о канале',
|
||||
Room_Members: 'Пользователи',
|
||||
Room_name_changed: 'Название канала было изменено на: {{name}} пользователем {{userBy}}',
|
||||
SAVE: 'СОХРАНИТЬ',
|
||||
Save_Changes: 'Сохранить изменения',
|
||||
Save: 'Сохранить',
|
||||
saving_preferences: 'сохранение персональных настроек',
|
||||
saving_profile: 'сохранение профиля',
|
||||
saving_settings: 'сохранение настроек',
|
||||
Search_Messages: 'Поиск сообщений',
|
||||
Search: 'Поиск',
|
||||
Select_Avatar: 'Выбор аватара',
|
||||
Select_Users: 'Выбор пользователей',
|
||||
Send: 'Отправить',
|
||||
Send_audio_message: 'Отправить аудиосообщение',
|
||||
Send_message: 'Отправить сообщение',
|
||||
Servers: 'Серверы',
|
||||
Settings: 'Настройки',
|
||||
Settings_succesfully_changed: 'Настройки успешно изменены!',
|
||||
Share_Message: 'Поделиться сообщением',
|
||||
Share: 'Поделиться',
|
||||
Sign_in_your_server: 'Войдите на ваш сервер',
|
||||
Sign_Up: 'Регистрация',
|
||||
Snippet_Messages: 'Сообщения со сниппетом',
|
||||
snippeted: 'сниппет добавлен',
|
||||
Snippets: 'Сниппеты',
|
||||
Some_field_is_invalid_or_empty: 'Некоторые поля недопустимы или пусты',
|
||||
Star_room: 'Star room',
|
||||
Star: 'Звезда',
|
||||
Starred_Messages: 'Помеченные сообщения',
|
||||
starred: 'отмечено',
|
||||
Starred: 'Отмечено',
|
||||
Start_of_conversation: 'Начало разговора',
|
||||
Submit: 'Отправить',
|
||||
Take_a_photo: 'Сфотографировать',
|
||||
tap_to_change_status: 'нажмите для изменения статуса',
|
||||
Tap_to_view_servers_list: 'Нажмите, чтобы просмотреть список серверов',
|
||||
Terms_of_Service: ' Условия использования ',
|
||||
There_was_an_error_while_action: 'Произошла ошибка в процессе {{action}}!',
|
||||
This_room_is_blocked: 'Этот канал заблокирован',
|
||||
This_room_is_read_only: 'Этот канал доступен только для чтения',
|
||||
Timezone: 'Часовой пояс',
|
||||
Toggle_Drawer: 'Toggle_Drawer',
|
||||
topic: 'топик',
|
||||
Topic: 'Топик',
|
||||
Try_again: 'Попробуйте еще раз',
|
||||
Type_the_channel_name_here: 'Введите название канала здесь',
|
||||
unarchive: 'разархивировать',
|
||||
UNARCHIVE: 'РАЗАРХИВИРОВАТЬ',
|
||||
Unblock_user: 'Разблокировать пользователя',
|
||||
Unmute: 'Отменить заглушивание',
|
||||
unmuted: 'Заглушивание отменено',
|
||||
Unpin: 'Открепить',
|
||||
unread_messages: 'непрочитанные сообщения',
|
||||
Unstar: 'Снять отметку',
|
||||
Uploading: 'Выгрузка',
|
||||
User_added_by: 'Пользователь {{userAdded}} добавлен по решению {{userBy}}',
|
||||
User_has_been_key: 'Пользователь был {{key}}!',
|
||||
User_is_no_longer_role_by_: '{{user}} больше не {{role}} по решению {{userBy}}',
|
||||
User_muted_by: 'Пользователь {{userMuted}} заглушен по решению {{userBy}}',
|
||||
User_removed_by: 'Пользователь {{userRemoved}} удален по решению {{userBy}}',
|
||||
User_unmuted_by: 'Пользователь {{userUnmuted}} перестал быть заглушенным по решению {{userBy}}',
|
||||
User_was_set_role_by_: '{{user}} был назначен {{role}} пользователем {{userBy}}',
|
||||
Username_is_empty: 'Имя пользователя пусто',
|
||||
Username: 'Имя пользователя',
|
||||
Validating: 'Проверка',
|
||||
Video_call: 'Видеозвонок',
|
||||
Voice_call: 'Голосовой вызов',
|
||||
Welcome: 'Добро пожаловать',
|
||||
Welcome_title_pt_1: 'Приготовьтесь к взлету с',
|
||||
Welcome_title_pt_2: 'передовой чат-платформой',
|
||||
Yes_action_it: 'Да, {{action}} это!',
|
||||
Yesterday: 'Вчера',
|
||||
You_are_in_preview_mode: 'Вы находитесь в режиме предварительного просмотра',
|
||||
You_are_offline: 'Вы не в сети',
|
||||
You_can_search_using_RegExp_eg: 'Вы можете выполнить поиск с помощью регулярных выражений, например `/^text$/i`',
|
||||
You_colon: 'Вы: ',
|
||||
you_were_mentioned: 'вы были упомянуты',
|
||||
You_will_not_be_able_to_recover_this_message: 'Вы не сможете восстановить это сообщение!',
|
||||
you: 'вы',
|
||||
Your_server: 'Ваш сервер'
|
||||
};
|
|
@ -19,7 +19,7 @@ import { setUser } from '../../actions/login';
|
|||
import { iconsMap } from '../../Icons';
|
||||
|
||||
@connect(state => ({
|
||||
language: state.login.user.language
|
||||
userLanguage: state.login.user && state.login.user.language
|
||||
}), dispatch => ({
|
||||
setUser: params => dispatch(setUser(params))
|
||||
}))
|
||||
|
@ -27,7 +27,7 @@ import { iconsMap } from '../../Icons';
|
|||
export default class SettingsView extends LoggedView {
|
||||
static propTypes = {
|
||||
navigator: PropTypes.object,
|
||||
language: PropTypes.string,
|
||||
userLanguage: PropTypes.string,
|
||||
setUser: PropTypes.func
|
||||
}
|
||||
|
||||
|
@ -35,10 +35,13 @@ export default class SettingsView extends LoggedView {
|
|||
super('SettingsView', props);
|
||||
this.state = {
|
||||
placeholder: {},
|
||||
language: props.language ? props.language : 'en',
|
||||
language: props.userLanguage ? props.userLanguage : 'en',
|
||||
languages: [{
|
||||
label: 'English',
|
||||
value: 'en'
|
||||
}, {
|
||||
label: 'Russian',
|
||||
value: 'ru'
|
||||
}],
|
||||
saving: false
|
||||
};
|
||||
|
@ -75,7 +78,7 @@ export default class SettingsView extends LoggedView {
|
|||
|
||||
formIsChanged = () => {
|
||||
const { language } = this.state;
|
||||
return !(this.props.language === language);
|
||||
return !(this.props.userLanguage === language);
|
||||
}
|
||||
|
||||
submit = async() => {
|
||||
|
@ -84,7 +87,7 @@ export default class SettingsView extends LoggedView {
|
|||
const {
|
||||
language
|
||||
} = this.state;
|
||||
const { user } = this.props;
|
||||
const { userLanguage } = this.props;
|
||||
|
||||
if (!this.formIsChanged()) {
|
||||
return;
|
||||
|
@ -93,7 +96,7 @@ export default class SettingsView extends LoggedView {
|
|||
const params = {};
|
||||
|
||||
// language
|
||||
if (user.language !== language) {
|
||||
if (userLanguage !== language) {
|
||||
params.language = language;
|
||||
}
|
||||
|
||||
|
@ -142,7 +145,7 @@ export default class SettingsView extends LoggedView {
|
|||
inputRef={(e) => { this.name = e; }}
|
||||
label={I18n.t('Language')}
|
||||
placeholder={I18n.t('Language')}
|
||||
value={language}
|
||||
value={languages.find(i => i.value === language).label}
|
||||
testID='settings-view-language'
|
||||
/>
|
||||
</RNPickerSelect>
|
||||
|
|
Loading…
Reference in New Issue