diff --git a/scripts/i18n-collect.js b/scripts/i18n-collect.js index 663f0e6..68cbd16 100644 --- a/scripts/i18n-collect.js +++ b/scripts/i18n-collect.js @@ -7,7 +7,7 @@ import prompt from 'prompt'; const MESSAGES_PATTERN = `../dist/messages/**/*.json`; const LANG_DIR = `../src/i18n`; const DEFAULT_LOCALE = 'en'; -const SUPPORTED_LANGS = [DEFAULT_LOCALE].concat('ru', 'be'); +const SUPPORTED_LANGS = [DEFAULT_LOCALE].concat('ru', 'be', 'uk'); /** * Aggregates the default messages that were extracted from the app's @@ -17,7 +17,7 @@ const SUPPORTED_LANGS = [DEFAULT_LOCALE].concat('ru', 'be'); */ let idToFileMap = {}; let duplicateIds = []; -let defaultMessages = globSync(MESSAGES_PATTERN) +const defaultMessages = globSync(MESSAGES_PATTERN) .map((filename) => [filename, JSON.parse(fs.readFileSync(filename, 'utf8'))]) .reduce((collection, [file, descriptors]) => { descriptors.forEach(({id, defaultMessage}) => { diff --git a/src/components/langMenu/LangMenu.jsx b/src/components/langMenu/LangMenu.jsx index 78a7747..93cceeb 100644 --- a/src/components/langMenu/LangMenu.jsx +++ b/src/components/langMenu/LangMenu.jsx @@ -11,6 +11,7 @@ const LANGS = { be: 'Беларускі', en: 'English', ru: 'Русский', + uk: 'Українська', }; export default class LangMenu extends Component { diff --git a/src/components/langMenu/langMenu.scss b/src/components/langMenu/langMenu.scss index fa2d442..ea6c8e0 100644 --- a/src/components/langMenu/langMenu.scss +++ b/src/components/langMenu/langMenu.scss @@ -99,6 +99,12 @@ background-image: url('icons/flag_be.svg'); } +.langUk { + composes: langIco; + + background-image: url('icons/flag_uk.svg'); +} + .trigger { color: #666; border-bottom: 1px dotted #666; diff --git a/src/i18n/be.json b/src/i18n/be.json index d2458a2..f755e76 100644 --- a/src/i18n/be.json +++ b/src/i18n/be.json @@ -163,7 +163,6 @@ "services.loginRequired": "Калі ласка, укажыце E‑mail ці нік", "services.newPasswordRequired": "Калі ласка, запоўніце поле пароля", "services.newRePasswordRequired": "Калі ласка, увядзіце паўтор пароля", - "services.oldHashStrategy": "Sorry, but your account's password is too old. Please change your password in order to perform this action.", "services.passwordRequired": "Калі ласка, увядзіце пароль", "services.passwordTooShort": "Пароль павінен быць не менш за 8 сімвалаў ў даўжыню", "services.passwordsDoesNotMatch": "Паролі не супадаюць", diff --git a/src/i18n/en.json b/src/i18n/en.json index 7dd12be..12b9756 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -163,7 +163,6 @@ "services.loginRequired": "Please enter E‑mail or username", "services.newPasswordRequired": "Please enter new password", "services.newRePasswordRequired": "Please repeat new password", - "services.oldHashStrategy": "Sorry, but your account's password is too old. Please change your password in order to perform this action.", "services.passwordRequired": "Please enter password", "services.passwordTooShort": "Your password should be at least 8 characters length", "services.passwordsDoesNotMatch": "The passwords does not match", diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 996c763..e9c5a4e 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -52,12 +52,12 @@ "components.auth.recoverPassword.messageWasSent": "Код для восстановления пароля был отправлен на ваш E‑mail.", "components.auth.recoverPassword.messageWasSentTo": "Код для восстановления пароля был отправлен на E‑mail {email}.", "components.auth.recoverPassword.title": "Восстановление пароля", - "components.auth.register.acceptRules": "Я согласен с {link}", + "components.auth.register.acceptRules": "Я принимаю {link}", "components.auth.register.accountPassword": "Пароль от аккаунта", "components.auth.register.registerTitle": "Регистрация", "components.auth.register.repeatPassword": "Повторите пароль", "components.auth.register.signUpButton": "Зарегистрироваться", - "components.auth.register.termsOfService": "правилами сервиса", + "components.auth.register.termsOfService": "правила сервиса", "components.auth.register.yourEmail": "Ваш E‑mail", "components.auth.register.yourNickname": "Желаемый ник", "components.auth.resendActivation.sendNewEmail": "Отправить новое письмо", @@ -76,7 +76,7 @@ "components.contact.send": "Отправить", "components.contact.subject": "Тема", "components.contact.title": "Форма обратной связи", - "components.contact.whichQuestion": "По каком вопросу?", + "components.contact.whichQuestion": "По какому вопросу?", "components.contact.youMessageReceived": "Ваше обращение в форму обратной связи получено. Мы ответим вам в ближайшее время. Ответ придёт на указанный вами E‑mail:", "components.footerMenu.contactUs": "Обратная связь", "components.footerMenu.rules": "Правила сайта", @@ -92,7 +92,7 @@ "components.profile.changeEmail.currentAccountEmail": "Текущий E‑mail адрес, привязанный к аккаунту:", "components.profile.changeEmail.enterFinalizationCode": "Чтобы подтвердить ваш новый E‑mail, пожалуйста, введите полученный код в поле ниже:", "components.profile.changeEmail.enterInitializationCode": "На E‑mail {email} было отправлено письмо с кодом для инициализации смены E‑mail адреса. Введите его в поле ниже:", - "components.profile.changeEmail.enterNewEmail": "Затем укажите новый E‑mail адрес, к которому хотите привязать свой аккаунт. На него будет выслан код с подтверждением.", + "components.profile.changeEmail.enterNewEmail": "Затем укажите новый E‑mail адрес, к которому хотите привязать свой аккаунт. На него будет выслан код подтверждения.", "components.profile.changeEmail.finalizationCodeWasSentToEmail": "На указанный E‑mail {email} было выслано письмо с кодом для завершения смены E‑mail адреса.", "components.profile.changeEmail.newEmailPlaceholder": "Введите новый E‑mail", "components.profile.changeEmail.pressButtonToStart": "Нажмите на кнопку ниже, чтобы отправить письмо с кодом для инициализации процесса смены E‑mail адреса.", @@ -111,7 +111,7 @@ "components.profile.changeUsername.changeUsernameWarning": "Будьте внимательны: если вы играли на сервере с привязкой по нику, то после смены ника вы можете утратить весь свой прогресс.", "components.profile.changedAt": "Изменен {at}", "components.profile.disabled": "Не включена", - "components.profile.mojangPriorityWarning": "Найден аккаунт Mojang с таким же ником и, по {rules}, его владелец вправе потребовать восстановления контроля над ником.", + "components.profile.mojangPriorityWarning": "Найден аккаунт Mojang с таким же ником. Учтите, что согласно с {rules}, его владелец вправе потребовать восстановления контроля над ником.", "components.profile.nickname": "Ник", "components.profile.oldHashingAlgoWarning": "Для пароля применяется старый алгоритм хэширования
Пожалуйста, смените пароль.", "components.profile.password": "Пароль", @@ -120,7 +120,7 @@ "components.profile.passwordRequestForm.title": "Подтвердите действие", "components.profile.personalData": "Персональные данные", "components.profile.preferencesDescription": "Здесь вы можете сменить ключевые параметры вашего аккаунта. Обратите внимание, что для всех действий необходимо подтверждение при помощи ввода пароля.", - "components.profile.projectRules": "правилам проекта", + "components.profile.projectRules": "правилами проекта", "components.profile.twoFactorAuth": "Двухфакторная аутентификация", "components.userbar.login": "Вход", "components.userbar.logout": "Выход", @@ -130,7 +130,7 @@ "pages.rules.elyAccountsAsService1": "Мы не гарантируем какой-либо процент времени бесперебойной работы этого сервиса.", "pages.rules.elyAccountsAsService2": "Мы не несём ответственности за простои и упущенную прибыль в результате неработоспособности наших сервисов.", "pages.rules.elyAccountsAsServiceDesc1": "Сервис {name} предоставляется бесплатно любому заинтересованному в его использовании проекту, связанному с Minecraft.", - "pages.rules.elyAccountsAsServiceDesc2": "Несмотря на все наши старания, направленные на обеспечение быстрой и стабильной работы сервиса, мы не застрахованы от DDOS-атак, перебоев в работе сети хостера, взбоев электропитания или иных ситуаций, предусмотреть и защититься от которых на 100% не представляется возможным. Во избежание возможных недопониманий, мы обязаны оговорить следующие соглашения, действующие в случае описанных выше ситуаций:", + "pages.rules.elyAccountsAsServiceDesc2": "Несмотря на все наши старания, направленные на обеспечение быстрой и стабильной работы сервиса, мы не застрахованы от DDOS-атак, перебоев в работе сети хостера, сбоев электропитания или иных ситуаций, предусмотреть и защититься от которых на 100% не представляется возможным. Во избежание возможных недопониманий, мы обязаны оговорить следующие соглашения, действующие в случае описанных выше ситуаций:", "pages.rules.emailAndNickname": "E‑mail и ник", "pages.rules.emailAndNickname1": "Запрещена регистрация аккаунтов с использованием сервисов временной почты. Речь идёт о сервисах, предоставляющих случайные почтовые ящики в любом количестве.", "pages.rules.emailAndNickname2": "Мы пытаемся противодействовать этому, но, если вам всё же удалось зарегистрировать аккаунт с использованием сервиса временной почты, по нему не будет оказываться техническая поддержка, и впоследствии, при обновлении наших фильтров, аккаунт будет заблокирован вместе с вашим ником.", @@ -139,7 +139,7 @@ "pages.rules.emailAndNickname5": "Владелец премиум-аккаунта Minecraft вправе потребовать восстановления контроля над своим ником, и вам в течение 3-х дней придётся сменить ник, или это будет сделано автоматически.", "pages.rules.emailAndNickname6": "Если в течение последних 3 месяцев на вашем аккаунте не было замечено какой-либо активности, то ваш ник может быть занят любым пользователем.", "pages.rules.emailAndNickname7": "Мы не несём ответственности за потерянный прогресс на игровых серверах в результате смены ника, включая случаи смены ника по требованию с нашей стороны.", - "pages.rules.mainProvision1": "Сервис {name} предназначен для организации безопасного доступа к пользовательским аккаунтам проекта Ely.by, его партнёров и любых сторонних разработок, желающих использовать один из наших сервисов.", + "pages.rules.mainProvision1": "Сервис {name} предназначен для организации безопасного доступа к пользовательским аккаунтам проекта Ely.by, его партнёров и любых сторонних проектов, желающих использовать один из наших сервисов.", "pages.rules.mainProvision2": "Мы (здесь и далее) - команда разработчиков проекта Ely.by, занимающихся созданием качественных сервисов для сообщества Minecraft.", "pages.rules.mainProvision3": "Ely.by является сторонней разработкой, не имеющей никакого отношения к компаниям Mojang и Microsoft. Мы не оказываем поддержки по премиум-аккаунтам Minecraft, а также никак не связаны с игровыми серверами, использующими или не использующими наши сервисы.", "pages.rules.mainProvision4": "Регистрация пользовательского аккаунта на сервисе бесплатна. Создание аккаунта Ely.by возможно только на странице {link}.", @@ -147,7 +147,7 @@ "pages.rules.title": "Правила сайта", "services.accountAlreadyActivated": "Этот аккаунт уже активирован", "services.accountNotActivated": "Аккаунт не активирован", - "services.doYouWantRequestKey": "Не хотите отправить новый код?", + "services.doYouWantRequestKey": "Желаете отправить новый код?", "services.emailFrequency": "Пожалуйста, успокойтесь, вы запрашиваете E‑mail слишком часто. Новый ключ можно будет заказать {time}.", "services.emailInvalid": "Указан неправильный E‑mail", "services.emailIsTempmail": "Использование сервисов временных E‑mail адресов запрещено", @@ -163,12 +163,11 @@ "services.loginRequired": "Пожалуйста, укажите E‑mail или ник", "services.newPasswordRequired": "Пожалуйста, заполните поле пароля", "services.newRePasswordRequired": "Пожалуйста, введите повтор пароля", - "services.oldHashStrategy": "Sorry, but your account's password is too old. Please change your password in order to perform this action.", "services.passwordRequired": "Пожалуйста, введите пароль", "services.passwordTooShort": "Пароль должен быть как минимум 8 символов в длинну", "services.passwordsDoesNotMatch": "Пароли не совпадают", "services.rePasswordRequired": "Пожалуйста, повторите пароль", - "services.rulesAgreementRequired": "Для создания аккаунта вам необходими принять правила сервиса", + "services.rulesAgreementRequired": "Для создания аккаунта вам необходимо принять правила сервиса", "services.suggestResetPassword": "Вы {link}?", "services.usernameInvalid": "Ник содержит недопустимые символы", "services.usernameRequired": "Поле ника обязательно к заполнению", diff --git a/src/i18n/uk.json b/src/i18n/uk.json new file mode 100644 index 0000000..f476650 --- /dev/null +++ b/src/i18n/uk.json @@ -0,0 +1,176 @@ +{ + "components.auth.activation.accountActivationTitle": "Активація акаунту", + "components.auth.activation.activationMailWasSent": "На {email} відправлено повідомлення з інструкціями по завершенню реєстрації", + "components.auth.activation.confirmEmail": "Підтвердження E‑mail", + "components.auth.activation.didNotReceivedEmail": "Не отримали E‑mail?", + "components.auth.activation.enterTheCode": "Вкажіть код з E‑mail", + "components.auth.appInfo.appDescription": "Ви знаходитесь на сервісі авторизації Ely.by, що дозволяє вам безпечно здійснювати будь-які операції над вашим акаунтом. Це єдина точка входу для сайтів і настільних програм, включаючи ігрові лаунчери.", + "components.auth.appInfo.appName": "Акаунти Ely", + "components.auth.appInfo.documentation": "документацію", + "components.auth.appInfo.goToAuth": "До авторизації", + "components.auth.appInfo.useItYourself": "Відвідайте нашу {link}, щоб дізнатися, як використовувати цей сервіс в своїх проектах.", + "components.auth.changePassword.change": "Змінити пароль", + "components.auth.changePassword.changePasswordMessage": "Для забезпечення безпеки вашого аккаунта, будь ласка, змініть пароль.", + "components.auth.changePassword.changePasswordTitle": "Зміна пароля", + "components.auth.changePassword.currentPassword": "Введіть поточний пароль", + "components.auth.changePassword.newPassword": "Введіть новий пароль", + "components.auth.changePassword.newRePassword": "Повторіть новий пароль", + "components.auth.changePassword.skipThisStep": "Пропустити зміну пароля", + "components.auth.finish.authForAppFailed": "Авторизація для {appName} не вдалася", + "components.auth.finish.authForAppSuccessful": "Авторизація для {appName} успішно виконана", + "components.auth.finish.copy": "Скопіювати", + "components.auth.finish.passCodeToApp": "Щоб завершити процес авторизації, будь ласка, передайте {appName} цей код", + "components.auth.finish.waitAppReaction": "Будь ласка, дочекайтеся реакції вашої програми", + "components.auth.forgotPassword.alreadyHaveCode": "Вже отримав код", + "components.auth.forgotPassword.pleasePressButton": "Натисніть на кнопку нижче, щоб отримати E-mail з кодом для відновлення пароля.", + "components.auth.forgotPassword.sendMail": "Відправити повідомлення", + "components.auth.forgotPassword.specifyEmail": "Вкажіть реєстраційну E-mail адресу або останній використаний нік від вашого облікового запису, і ми відправимо E-mail з подальшими інструкціями щодо відновлення пароля.", + "components.auth.forgotPassword.title": "Забув пароль", + "components.auth.login.emailOrUsername": "E‑mail або нік", + "components.auth.login.loginTitle": "Вхід", + "components.auth.login.next": "Далі", + "components.auth.password.accountPassword": "Пароль від акаунту", + "components.auth.password.forgotPassword": "Забув пароль", + "components.auth.password.forgotYourPassword": "забули пароль", + "components.auth.password.invalidPassword": "Ви вказали не вірний пароль від акаунту.", + "components.auth.password.passwordTitle": "Введіть пароль", + "components.auth.password.rememberMe": "Запам'ятати мене на цьому пристрої", + "components.auth.password.signInButton": "Увійти", + "components.auth.password.suggestResetPassword": "Ви {link}?", + "components.auth.permissions.approve": "Дозволити", + "components.auth.permissions.decline": "Відмінити", + "components.auth.permissions.permissionsTitle": "Права додатку", + "components.auth.permissions.scope_minecraft_server_session": "Авторизація на серверахMinecraft", + "components.auth.permissions.scope_offline_access": "Доступ до даних профілю, коли ви не в мережі", + "components.auth.permissions.theAppNeedsAccess1": "Цьому додатку потрібен доступ", + "components.auth.permissions.theAppNeedsAccess2": "до ваших даних", + "components.auth.permissions.youAuthorizedAs": "Ви увійшли як:", + "components.auth.recoverPassword.contactSupport": "Форма зворотнього зв'язку", + "components.auth.recoverPassword.enterCodeBelow": "Будь ласка, введіть отриманий код у поле нижче:", + "components.auth.recoverPassword.enterNewPasswordBelow": "Вкажіть пароль і його підтвердження нижче:", + "components.auth.recoverPassword.enterTheCode": "Введіть код підтвердження", + "components.auth.recoverPassword.messageWasSent": "Код для відновлення пароля був відправлений на ваш E‑mail.", + "components.auth.recoverPassword.messageWasSentTo": "Код для відновлення пароля був відправлений на E‑mail {email}.", + "components.auth.recoverPassword.title": "Відновлення паролю", + "components.auth.register.acceptRules": "Я приймаю {link}", + "components.auth.register.accountPassword": "Пароль від аккаунту", + "components.auth.register.registerTitle": "Реєстрація", + "components.auth.register.repeatPassword": "Повторіть пароль", + "components.auth.register.signUpButton": "Зареєструватися", + "components.auth.register.termsOfService": "правила сервісу", + "components.auth.register.yourEmail": "Ваш E‑mail", + "components.auth.register.yourNickname": "Бажаний нік", + "components.auth.resendActivation.sendNewEmail": "Відправити новий лист", + "components.auth.resendActivation.specifyYourEmail": "Вкажіть тут вашу реєстраційну E-mail адресу, і ми надішлемо на неї повідомлення з кодом активації облікового запису", + "components.auth.resendActivation.title": "Не отримав лист", + "components.contact.cannotAccessMyAccount": "Не вдалося визначити отримати доступ до аккаунту", + "components.contact.close": "Закрити", + "components.contact.disclaimer": "Будь ласка, формуйте свої звернення, надаючи максимум корисної інформації, щоб ми могли якомога швидше зрозуміти вашу проблему і вирішити її", + "components.contact.email": "E‑mail", + "components.contact.foundBugOnSite": "Знайдена помилка на сайті", + "components.contact.improvementsSuggestion": "У мене є пропозиція щодо покращення функціоналу", + "components.contact.integrationQuestion": "Питання про інтеграцію з сервісом", + "components.contact.message": "Текст повідомлення", + "components.contact.other": "Інше", + "components.contact.philosophicalThought": "Правильно сформульоване питання - половина відповіді", + "components.contact.send": "Відправити", + "components.contact.subject": "Тема", + "components.contact.title": "Форма зворотного зв'язку", + "components.contact.whichQuestion": "З якого питання?", + "components.contact.youMessageReceived": "Ваше звернення отримано. Ми відповімо вам найближчим часом. Відповідь прийде на вказаний вами E-mail:", + "components.footerMenu.contactUs": "Зворотній зв'язок", + "components.footerMenu.rules": "Правила сайту", + "components.langMenu.siteLanguage": "Мова сайту", + "components.profile.accountDescription": "Завдяки аккаунту Ely.by ви можете отримати доступ до багатьох ресурсів, пов'язаних з Minecraft. Бережіть свій аккаунт, використовуйте надійний пароль і регулярно його змінюйте.", + "components.profile.accountPreferencesTitle": "Налаштування акаунту Ely.by", + "components.profile.back": "Назад", + "components.profile.changeEmail.alreadyReceivedCode": "Я вже отримав код", + "components.profile.changeEmail.changeEmailButton": "Змінити E-mail", + "components.profile.changeEmail.changeEmailDescription": "Для зміни E-mail адреси акаунта спершу необхідно підтвердити володіння поточною адресою, а потім прив'язати нову.", + "components.profile.changeEmail.changeEmailTitle": "Зміна E-mail", + "components.profile.changeEmail.codePlaceholder": "Вставте код сюди", + "components.profile.changeEmail.currentAccountEmail": "Поточна E-mail адреса, прив'язана до акаунту:", + "components.profile.changeEmail.enterFinalizationCode": "Щоб підтвердити ваш новий E-mail, будь ласка, введіть отриманий код у поле нижче:", + "components.profile.changeEmail.enterInitializationCode": "На E-mail {email} було відправлено лист з кодом для ініціалізації процесу зміни E-mail адреси. Введіть його у поле нижче:", + "components.profile.changeEmail.enterNewEmail": "Потім вкажіть нову E-mail адресу, до якої бажаєте прив'язати свій аккаунт. На неї буде вислано код підтвердження.", + "components.profile.changeEmail.finalizationCodeWasSentToEmail": "На вказаний E-mail {email} було надіслано листа з кодом для завершення зміни E-mail адреси.", + "components.profile.changeEmail.newEmailPlaceholder": "Введіть новий E‑mail", + "components.profile.changeEmail.pressButtonToStart": "Натисніть кнопку нижче, щоб відправити лист з кодом для ініціалізації процесу зміни E-mail адреси.", + "components.profile.changeEmail.sendEmailButton": "Відправити E‑mail", + "components.profile.changePassword.achievementLossWarning": "Адже ви цінуєте свої ігрові досягнення?", + "components.profile.changePassword.changePasswordButton": "Змінити пароль", + "components.profile.changePassword.changePasswordDescription": "Вигадайте пароль, який буде відрізнятися від ваших паролів на інших сайтах і не буде збігатися з тим паролем, який ви використовуєте для входу на різні ігрові сервери Minecraft.", + "components.profile.changePassword.changePasswordTitle": "Зміна паролю", + "components.profile.changePassword.logoutOnAllDevices": "Вийти на всіх пристроях", + "components.profile.changePassword.newPasswordLabel": "Новий пароль:", + "components.profile.changePassword.passwordRequirements": "Пароль повинен містити не менше 8 символів. Це можуть бути будь-які символи — не обмежуйте себе, вигадайте непередбачуваний пароль!", + "components.profile.changePassword.repeatNewPasswordLabel": "Повторіть пароль ще раз:", + "components.profile.changeUsername.changeUsernameButton": "Змінити нікнейм", + "components.profile.changeUsername.changeUsernameDescription": "Ви можете змінити свій нікнейм на будь-яке припустиме значення. Пам'ятайте про те, що не рекомендується займати нікнейми користувачів Mojang.", + "components.profile.changeUsername.changeUsernameTitle": "Зміна никнейму", + "components.profile.changeUsername.changeUsernameWarning": "Будьте уважні: якщо ви грали на сервері з прив'язкою до ніку, то після зміни ніку ви можете втратити ігрові досягнення.", + "components.profile.changedAt": "Змінено {at}", + "components.profile.disabled": "Вимкнено", + "components.profile.mojangPriorityWarning": "Знайдений аккаунт Mojang з таким же ніком. Майте на увазі, що згідно з {rules}, його власник має право вимагати відновлення контролю над ніком.", + "components.profile.nickname": "Нік", + "components.profile.oldHashingAlgoWarning": "Для пароля застосовується старий алгоритм хешування
Будь ласка, змініть пароль.", + "components.profile.password": "Пароль", + "components.profile.passwordRequestForm.continue": "Продовжити", + "components.profile.passwordRequestForm.description": "Для завершення, вкажіть пароль від акаунту", + "components.profile.passwordRequestForm.title": "Підтвердіть дію", + "components.profile.personalData": "Персональні дані", + "components.profile.preferencesDescription": "Тут ви можете змінити ключові параметри вашого облікового запису. Зверніть увагу, що для всіх дій необхідно підтвердження за допомогою введення пароля.", + "components.profile.projectRules": "правилами проекта", + "components.profile.twoFactorAuth": "Двофакторна аутентифікація", + "components.userbar.login": "Вхід", + "components.userbar.logout": "Вихід", + "components.userbar.register": "Реєстрація", + "pages.root.siteName": "Ely.by", + "pages.rules.elyAccountsAsService": "{name} як сервіс", + "pages.rules.elyAccountsAsService1": "Ми не гарантуємо безперебійної роботи цього сервісу.", + "pages.rules.elyAccountsAsService2": "Ми не несемо відповідальності за простої і втрачений прибуток у результаті непрацездатності наших сервісів.", + "pages.rules.elyAccountsAsServiceDesc1": "Сервіс {name} надається безкоштовно будь-якому зацікавленому у його використанні проекту, пов'язаному з Minecraft.", + "pages.rules.elyAccountsAsServiceDesc2": "Незважаючи на всі наші зусилля, спрямовані на забезпечення швидкої і стабільної роботи сервісу, ми не застраховані від DDOS-атак, перебоїв у роботі мережі хостера, збоев електроживлення чи інших ситуацій, передбачити і захиститися від яких на 100% не представляється можливим. Щоб уникнути можливих непорозумінь, ми зобов'язані донести такі угоди, що діють у разі вакзаних вище ситуацій:", + "pages.rules.emailAndNickname": "E‑mail та нік", + "pages.rules.emailAndNickname1": "Заборонена реєстрація акаунтів з використанням сервісів тимчасової пошти. Йдеться про сервіси, що надають випадкові поштові скриньки у будь-якій кількості.", + "pages.rules.emailAndNickname2": "Ми намагаємося протидіяти цьому, але, якщо вам все ж вдалося зареєструвати аккаунт з використанням сервісу тимчасової пошти, по ньому не буде надаватися технічна підтримка, і згодом, при оновленні наших фільтрів, аккаунт буде заблокований разом з вашим ніком.", + "pages.rules.emailAndNickname3": "На призначений для користувача нікнейм, який використовується у грі, не накладаються будь-які моральні обмеження.", + "pages.rules.emailAndNickname4": "Ніки, що належать відомим особистостям, за вимогою, можуть бути звільнені у їх користь після встановленню цієї самої особистості.", + "pages.rules.emailAndNickname5": "Власник преміум-аккаунта Minecraft має право вимагати відновлення контролю над своїм ніком. У цьому випадку вам необхідно буде протягом 3-х днів змінити нік, або це буде зроблено автоматично.", + "pages.rules.emailAndNickname7": "Ми не несемо відповідальності за втрачений прогрес на ігрових серверах у результаті зміни ника, включаючи випадки зміни ника на вимогу з нашого боку.", + "pages.rules.mainProvision1": "Сервіс {name} призначений для організації безпечного доступу до призначених для користувача аккаунтів проекту Ely.by, його партнерів і будь-яких сторонніх проектів, які бажають використовувати один з наших сервісів.", + "pages.rules.mainProvision2": "Ми (тут і надалі) — команда розробників проекту Ely.by, що займаються створенням якісних сервісів для спільноти Minecraft.", + "pages.rules.mainProvision3": "Ely.by є сторонньою розробкою, яка не має ніякого відношення до компаній Mojang і Microsoft. Ми не надаємо підтримки власникам преміум-акаунтів Minecraft, а також ніяк не пов'язані з ігровими серверами, які використовують або не використовують наші сервіси.", + "pages.rules.mainProvision4": "Реєстрація на сервісі безкоштовна. Створення облікового запису Ely.by можливо тільки на сторінці {link}.", + "pages.rules.mainProvisions": "Основні положення", + "pages.rules.title": "Правила сайту", + "services.accountAlreadyActivated": "Цей обліковий запис вже активований", + "services.accountNotActivated": "Акаунт не активований", + "services.doYouWantRequestKey": "Бажаєте відправити новий код?", + "services.emailFrequency": "Будь ласка, заспокойтесь, ви запитуєте E-mail занадто часто. Новий ключ можна буде замовити {time}.", + "services.emailInvalid": "Вказано невірний E-mail", + "services.emailIsTempmail": "Використання сервісів тимчасових E-mail адрес заборонено", + "services.emailNotAvailable": "На вказану E-mail адресу вже зареєстровано обліковий запис", + "services.emailNotFound": "Аккаунта із зазначеною E-mail адресою не існує", + "services.emailRequired": "Будь ласка, вкажіть E-mail", + "services.emailToLong": "E‑mail занадто довгий", + "services.forgotYourPassword": "забули свій пароль", + "services.invalidPassword": "Ви вказали невірний пароль від акаунту.", + "services.keyNotExists": "Вказаний ключ не існує або застарів.", + "services.keyRequired": "Будь ласка, введіть код активації", + "services.loginNotExist": "На жаль, на Ely немає користувача з зазначеним логіном.", + "services.loginRequired": "Будь ласка, вкажіть E-mail або нік", + "services.newPasswordRequired": "Будь ласка, заповніть поле пароля", + "services.newRePasswordRequired": "Будь ласка, введіть повторення пароля", + "services.passwordRequired": "Будь ласка, введіть пароль", + "services.passwordTooShort": "Пароль повинен бути як мінімум 8 символів у довжину", + "services.passwordsDoesNotMatch": "Паролі не співпадають", + "services.rePasswordRequired": "Будь ласка, повторіть пароль", + "services.rulesAgreementRequired": "Для створення аккаунта вам необхідно прийняти правила сервісу", + "services.suggestResetPassword": "Ви {link}?", + "services.usernameInvalid": "Нік містить неприпустимі символи", + "services.usernameRequired": "Поле ніку обов'язково до заповнення", + "services.usernameTooLong": "Занадто довгий нік", + "services.usernameTooShort": "Нік занадто короткий", + "services.usernameUnavailable": "Цей нік вже занятий" +} diff --git a/src/icons/flag_uk.svg b/src/icons/flag_uk.svg new file mode 100644 index 0000000..551b203 --- /dev/null +++ b/src/icons/flag_uk.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/icons/flag_ukraine.svg b/src/icons/flag_ukraine.svg deleted file mode 100644 index d1b537e..0000000 --- a/src/icons/flag_ukraine.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/services/errorsDict.intl.json b/src/services/errorsDict.intl.json index e30ea19..cc60382 100644 --- a/src/services/errorsDict.intl.json +++ b/src/services/errorsDict.intl.json @@ -26,7 +26,6 @@ "doYouWantRequestKey": "Do you want to request a new key?", "emailFrequency": "Please cool down, you are requesting E‑mails too often. New key can be retrieved {time}.", "accountNotActivated": "The account is not activated", - "oldHashStrategy": "Sorry, but your account's password is too old. Please change your password in order to perform this action.", "emailNotFound": "Specified E‑mail is not found", "accountAlreadyActivated": "This account is already activated" } diff --git a/src/services/errorsDict.js b/src/services/errorsDict.js index 8032fd2..e9dc977 100644 --- a/src/services/errorsDict.js +++ b/src/services/errorsDict.js @@ -23,7 +23,6 @@ const errorsMap = { 'error.password_required': () => , 'error.password_invalid': () => , - 'error.old_hash_strategy': () => , 'error.password_incorrect': (props) => ( diff --git a/src/services/i18n.js b/src/services/i18n.js index 84444fc..377c458 100644 --- a/src/services/i18n.js +++ b/src/services/i18n.js @@ -2,13 +2,15 @@ import { addLocaleData } from 'react-intl'; import enLocaleData from 'react-intl/locale-data/en'; import ruLocaleData from 'react-intl/locale-data/ru'; import beLocaleData from 'react-intl/locale-data/be'; +import ukLocaleData from 'react-intl/locale-data/uk'; // till we have not so many locales, we can require their data at once addLocaleData(enLocaleData); addLocaleData(ruLocaleData); addLocaleData(beLocaleData); +addLocaleData(ukLocaleData); -const SUPPORTED_LANGUAGES = ['ru', 'en', 'be']; +const SUPPORTED_LANGUAGES = ['ru', 'en', 'be', 'uk']; const DEFAULT_LANGUAGE = 'en'; const needPolyfill = !window.Intl; @@ -43,7 +45,7 @@ export default { require.context( 'bundle?name=[name]-polyfill-data!intl/locale-data/jsonp', false, - /\.\/(en|ru|be)\.js$/ + /\.\/(en|ru|be|uk)\.js$/ )(`./${locale}.js`)(resolve); }); }));