#35: Український переклад

This commit is contained in:
SleepWalker 2016-06-18 22:24:36 +03:00
parent a5797f0172
commit 008c13ecb9
12 changed files with 203 additions and 23 deletions

View File

@ -7,7 +7,7 @@ import prompt from 'prompt';
const MESSAGES_PATTERN = `../dist/messages/**/*.json`; const MESSAGES_PATTERN = `../dist/messages/**/*.json`;
const LANG_DIR = `../src/i18n`; const LANG_DIR = `../src/i18n`;
const DEFAULT_LOCALE = 'en'; 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 * 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 idToFileMap = {};
let duplicateIds = []; let duplicateIds = [];
let defaultMessages = globSync(MESSAGES_PATTERN) const defaultMessages = globSync(MESSAGES_PATTERN)
.map((filename) => [filename, JSON.parse(fs.readFileSync(filename, 'utf8'))]) .map((filename) => [filename, JSON.parse(fs.readFileSync(filename, 'utf8'))])
.reduce((collection, [file, descriptors]) => { .reduce((collection, [file, descriptors]) => {
descriptors.forEach(({id, defaultMessage}) => { descriptors.forEach(({id, defaultMessage}) => {

View File

@ -11,6 +11,7 @@ const LANGS = {
be: 'Беларускі', be: 'Беларускі',
en: 'English', en: 'English',
ru: 'Русский', ru: 'Русский',
uk: 'Українська',
}; };
export default class LangMenu extends Component { export default class LangMenu extends Component {

View File

@ -99,6 +99,12 @@
background-image: url('icons/flag_be.svg'); background-image: url('icons/flag_be.svg');
} }
.langUk {
composes: langIco;
background-image: url('icons/flag_uk.svg');
}
.trigger { .trigger {
color: #666; color: #666;
border-bottom: 1px dotted #666; border-bottom: 1px dotted #666;

View File

@ -163,7 +163,6 @@
"services.loginRequired": "Калі ласка, укажыце Email ці нік", "services.loginRequired": "Калі ласка, укажыце Email ці нік",
"services.newPasswordRequired": "Калі ласка, запоўніце поле пароля", "services.newPasswordRequired": "Калі ласка, запоўніце поле пароля",
"services.newRePasswordRequired": "Калі ласка, увядзіце паўтор пароля", "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.passwordRequired": "Калі ласка, увядзіце пароль",
"services.passwordTooShort": "Пароль павінен быць не менш за 8 сімвалаў ў даўжыню", "services.passwordTooShort": "Пароль павінен быць не менш за 8 сімвалаў ў даўжыню",
"services.passwordsDoesNotMatch": "Паролі не супадаюць", "services.passwordsDoesNotMatch": "Паролі не супадаюць",

View File

@ -163,7 +163,6 @@
"services.loginRequired": "Please enter Email or username", "services.loginRequired": "Please enter Email or username",
"services.newPasswordRequired": "Please enter new password", "services.newPasswordRequired": "Please enter new password",
"services.newRePasswordRequired": "Please repeat 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.passwordRequired": "Please enter password",
"services.passwordTooShort": "Your password should be at least 8 characters length", "services.passwordTooShort": "Your password should be at least 8 characters length",
"services.passwordsDoesNotMatch": "The passwords does not match", "services.passwordsDoesNotMatch": "The passwords does not match",

View File

@ -52,12 +52,12 @@
"components.auth.recoverPassword.messageWasSent": "Код для восстановления пароля был отправлен на ваш Email.", "components.auth.recoverPassword.messageWasSent": "Код для восстановления пароля был отправлен на ваш Email.",
"components.auth.recoverPassword.messageWasSentTo": "Код для восстановления пароля был отправлен на Email {email}.", "components.auth.recoverPassword.messageWasSentTo": "Код для восстановления пароля был отправлен на Email {email}.",
"components.auth.recoverPassword.title": "Восстановление пароля", "components.auth.recoverPassword.title": "Восстановление пароля",
"components.auth.register.acceptRules": согласен с {link}", "components.auth.register.acceptRules": принимаю {link}",
"components.auth.register.accountPassword": "Пароль от аккаунта", "components.auth.register.accountPassword": "Пароль от аккаунта",
"components.auth.register.registerTitle": "Регистрация", "components.auth.register.registerTitle": "Регистрация",
"components.auth.register.repeatPassword": "Повторите пароль", "components.auth.register.repeatPassword": "Повторите пароль",
"components.auth.register.signUpButton": "Зарегистрироваться", "components.auth.register.signUpButton": "Зарегистрироваться",
"components.auth.register.termsOfService": "правилами сервиса", "components.auth.register.termsOfService": "правила сервиса",
"components.auth.register.yourEmail": "Ваш Email", "components.auth.register.yourEmail": "Ваш Email",
"components.auth.register.yourNickname": "Желаемый ник", "components.auth.register.yourNickname": "Желаемый ник",
"components.auth.resendActivation.sendNewEmail": "Отправить новое письмо", "components.auth.resendActivation.sendNewEmail": "Отправить новое письмо",
@ -76,7 +76,7 @@
"components.contact.send": "Отправить", "components.contact.send": "Отправить",
"components.contact.subject": "Тема", "components.contact.subject": "Тема",
"components.contact.title": "Форма обратной связи", "components.contact.title": "Форма обратной связи",
"components.contact.whichQuestion": "По каком вопросу?", "components.contact.whichQuestion": "По какому вопросу?",
"components.contact.youMessageReceived": "Ваше обращение в форму обратной связи получено. Мы ответим вам в ближайшее время. Ответ придёт на указанный вами Email:", "components.contact.youMessageReceived": "Ваше обращение в форму обратной связи получено. Мы ответим вам в ближайшее время. Ответ придёт на указанный вами Email:",
"components.footerMenu.contactUs": "Обратная связь", "components.footerMenu.contactUs": "Обратная связь",
"components.footerMenu.rules": "Правила сайта", "components.footerMenu.rules": "Правила сайта",
@ -92,7 +92,7 @@
"components.profile.changeEmail.currentAccountEmail": "Текущий Email адрес, привязанный к аккаунту:", "components.profile.changeEmail.currentAccountEmail": "Текущий Email адрес, привязанный к аккаунту:",
"components.profile.changeEmail.enterFinalizationCode": "Чтобы подтвердить ваш новый Email, пожалуйста, введите полученный код в поле ниже:", "components.profile.changeEmail.enterFinalizationCode": "Чтобы подтвердить ваш новый Email, пожалуйста, введите полученный код в поле ниже:",
"components.profile.changeEmail.enterInitializationCode": "На Email {email} было отправлено письмо с кодом для инициализации смены Email адреса. Введите его в поле ниже:", "components.profile.changeEmail.enterInitializationCode": "На Email {email} было отправлено письмо с кодом для инициализации смены Email адреса. Введите его в поле ниже:",
"components.profile.changeEmail.enterNewEmail": "Затем укажите новый Email адрес, к которому хотите привязать свой аккаунт. На него будет выслан код с подтверждением.", "components.profile.changeEmail.enterNewEmail": "Затем укажите новый Email адрес, к которому хотите привязать свой аккаунт. На него будет выслан код подтверждения.",
"components.profile.changeEmail.finalizationCodeWasSentToEmail": "На указанный Email {email} было выслано письмо с кодом для завершения смены Email адреса.", "components.profile.changeEmail.finalizationCodeWasSentToEmail": "На указанный Email {email} было выслано письмо с кодом для завершения смены Email адреса.",
"components.profile.changeEmail.newEmailPlaceholder": "Введите новый Email", "components.profile.changeEmail.newEmailPlaceholder": "Введите новый Email",
"components.profile.changeEmail.pressButtonToStart": "Нажмите на кнопку ниже, чтобы отправить письмо с кодом для инициализации процесса смены Email адреса.", "components.profile.changeEmail.pressButtonToStart": "Нажмите на кнопку ниже, чтобы отправить письмо с кодом для инициализации процесса смены Email адреса.",
@ -111,7 +111,7 @@
"components.profile.changeUsername.changeUsernameWarning": "Будьте внимательны: если вы играли на сервере с привязкой по нику, то после смены ника вы можете утратить весь свой прогресс.", "components.profile.changeUsername.changeUsernameWarning": "Будьте внимательны: если вы играли на сервере с привязкой по нику, то после смены ника вы можете утратить весь свой прогресс.",
"components.profile.changedAt": "Изменен {at}", "components.profile.changedAt": "Изменен {at}",
"components.profile.disabled": "Не включена", "components.profile.disabled": "Не включена",
"components.profile.mojangPriorityWarning": "Найден аккаунт Mojang с таким же ником и, по {rules}, его владелец вправе потребовать восстановления контроля над ником.", "components.profile.mojangPriorityWarning": "Найден аккаунт Mojang с таким же ником. Учтите, что согласно с {rules}, его владелец вправе потребовать восстановления контроля над ником.",
"components.profile.nickname": "Ник", "components.profile.nickname": "Ник",
"components.profile.oldHashingAlgoWarning": "Для пароля применяется старый алгоритм хэширования<br />Пожалуйста, смените пароль.", "components.profile.oldHashingAlgoWarning": "Для пароля применяется старый алгоритм хэширования<br />Пожалуйста, смените пароль.",
"components.profile.password": "Пароль", "components.profile.password": "Пароль",
@ -120,7 +120,7 @@
"components.profile.passwordRequestForm.title": "Подтвердите действие", "components.profile.passwordRequestForm.title": "Подтвердите действие",
"components.profile.personalData": "Персональные данные", "components.profile.personalData": "Персональные данные",
"components.profile.preferencesDescription": "Здесь вы можете сменить ключевые параметры вашего аккаунта. Обратите внимание, что для всех действий необходимо подтверждение при помощи ввода пароля.", "components.profile.preferencesDescription": "Здесь вы можете сменить ключевые параметры вашего аккаунта. Обратите внимание, что для всех действий необходимо подтверждение при помощи ввода пароля.",
"components.profile.projectRules": "правилам проекта", "components.profile.projectRules": "правилами проекта",
"components.profile.twoFactorAuth": "Двухфакторная аутентификация", "components.profile.twoFactorAuth": "Двухфакторная аутентификация",
"components.userbar.login": "Вход", "components.userbar.login": "Вход",
"components.userbar.logout": "Выход", "components.userbar.logout": "Выход",
@ -130,7 +130,7 @@
"pages.rules.elyAccountsAsService1": "Мы не гарантируем какой-либо процент времени бесперебойной работы этого сервиса.", "pages.rules.elyAccountsAsService1": "Мы не гарантируем какой-либо процент времени бесперебойной работы этого сервиса.",
"pages.rules.elyAccountsAsService2": "Мы не несём ответственности за простои и упущенную прибыль в результате неработоспособности наших сервисов.", "pages.rules.elyAccountsAsService2": "Мы не несём ответственности за простои и упущенную прибыль в результате неработоспособности наших сервисов.",
"pages.rules.elyAccountsAsServiceDesc1": "Сервис {name} предоставляется бесплатно любому заинтересованному в его использовании проекту, связанному с Minecraft.", "pages.rules.elyAccountsAsServiceDesc1": "Сервис {name} предоставляется бесплатно любому заинтересованному в его использовании проекту, связанному с Minecraft.",
"pages.rules.elyAccountsAsServiceDesc2": "Несмотря на все наши старания, направленные на обеспечение быстрой и стабильной работы сервиса, мы не застрахованы от DDOS-атак, перебоев в работе сети хостера, взбоев электропитания или иных ситуаций, предусмотреть и защититься от которых на 100% не представляется возможным. Во избежание возможных недопониманий, мы обязаны оговорить следующие соглашения, действующие в случае описанных выше ситуаций:", "pages.rules.elyAccountsAsServiceDesc2": "Несмотря на все наши старания, направленные на обеспечение быстрой и стабильной работы сервиса, мы не застрахованы от DDOS-атак, перебоев в работе сети хостера, сбоев электропитания или иных ситуаций, предусмотреть и защититься от которых на 100% не представляется возможным. Во избежание возможных недопониманий, мы обязаны оговорить следующие соглашения, действующие в случае описанных выше ситуаций:",
"pages.rules.emailAndNickname": "Email и ник", "pages.rules.emailAndNickname": "Email и ник",
"pages.rules.emailAndNickname1": "Запрещена регистрация аккаунтов с использованием сервисов временной почты. Речь идёт о сервисах, предоставляющих случайные почтовые ящики в любом количестве.", "pages.rules.emailAndNickname1": "Запрещена регистрация аккаунтов с использованием сервисов временной почты. Речь идёт о сервисах, предоставляющих случайные почтовые ящики в любом количестве.",
"pages.rules.emailAndNickname2": "Мы пытаемся противодействовать этому, но, если вам всё же удалось зарегистрировать аккаунт с использованием сервиса временной почты, по нему не будет оказываться техническая поддержка, и впоследствии, при обновлении наших фильтров, аккаунт будет заблокирован вместе с вашим ником.", "pages.rules.emailAndNickname2": "Мы пытаемся противодействовать этому, но, если вам всё же удалось зарегистрировать аккаунт с использованием сервиса временной почты, по нему не будет оказываться техническая поддержка, и впоследствии, при обновлении наших фильтров, аккаунт будет заблокирован вместе с вашим ником.",
@ -139,7 +139,7 @@
"pages.rules.emailAndNickname5": "Владелец премиум-аккаунта Minecraft вправе потребовать восстановления контроля над своим ником, и вам в течение 3-х дней придётся сменить ник, или это будет сделано автоматически.", "pages.rules.emailAndNickname5": "Владелец премиум-аккаунта Minecraft вправе потребовать восстановления контроля над своим ником, и вам в течение 3-х дней придётся сменить ник, или это будет сделано автоматически.",
"pages.rules.emailAndNickname6": "Если в течение последних 3 месяцев на вашем аккаунте не было замечено какой-либо активности, то ваш ник может быть занят любым пользователем.", "pages.rules.emailAndNickname6": "Если в течение последних 3 месяцев на вашем аккаунте не было замечено какой-либо активности, то ваш ник может быть занят любым пользователем.",
"pages.rules.emailAndNickname7": "Мы не несём ответственности за потерянный прогресс на игровых серверах в результате смены ника, включая случаи смены ника по требованию с нашей стороны.", "pages.rules.emailAndNickname7": "Мы не несём ответственности за потерянный прогресс на игровых серверах в результате смены ника, включая случаи смены ника по требованию с нашей стороны.",
"pages.rules.mainProvision1": "Сервис {name} предназначен для организации безопасного доступа к пользовательским аккаунтам проекта Ely.by, его партнёров и любых сторонних разработок, желающих использовать один из наших сервисов.", "pages.rules.mainProvision1": "Сервис {name} предназначен для организации безопасного доступа к пользовательским аккаунтам проекта Ely.by, его партнёров и любых сторонних проектов, желающих использовать один из наших сервисов.",
"pages.rules.mainProvision2": "Мы (здесь и далее) - команда разработчиков проекта Ely.by, занимающихся созданием качественных сервисов для сообщества Minecraft.", "pages.rules.mainProvision2": "Мы (здесь и далее) - команда разработчиков проекта Ely.by, занимающихся созданием качественных сервисов для сообщества Minecraft.",
"pages.rules.mainProvision3": "Ely.by является сторонней разработкой, не имеющей никакого отношения к компаниям Mojang и Microsoft. Мы не оказываем поддержки по премиум-аккаунтам Minecraft, а также никак не связаны с игровыми серверами, использующими или не использующими наши сервисы.", "pages.rules.mainProvision3": "Ely.by является сторонней разработкой, не имеющей никакого отношения к компаниям Mojang и Microsoft. Мы не оказываем поддержки по премиум-аккаунтам Minecraft, а также никак не связаны с игровыми серверами, использующими или не использующими наши сервисы.",
"pages.rules.mainProvision4": "Регистрация пользовательского аккаунта на сервисе бесплатна. Создание аккаунта Ely.by возможно только на странице {link}.", "pages.rules.mainProvision4": "Регистрация пользовательского аккаунта на сервисе бесплатна. Создание аккаунта Ely.by возможно только на странице {link}.",
@ -147,7 +147,7 @@
"pages.rules.title": "Правила сайта", "pages.rules.title": "Правила сайта",
"services.accountAlreadyActivated": "Этот аккаунт уже активирован", "services.accountAlreadyActivated": "Этот аккаунт уже активирован",
"services.accountNotActivated": "Аккаунт не активирован", "services.accountNotActivated": "Аккаунт не активирован",
"services.doYouWantRequestKey": "Не хотите отправить новый код?", "services.doYouWantRequestKey": "Желаете отправить новый код?",
"services.emailFrequency": "Пожалуйста, успокойтесь, вы запрашиваете Email слишком часто. Новый ключ можно будет заказать {time}.", "services.emailFrequency": "Пожалуйста, успокойтесь, вы запрашиваете Email слишком часто. Новый ключ можно будет заказать {time}.",
"services.emailInvalid": "Указан неправильный Email", "services.emailInvalid": "Указан неправильный Email",
"services.emailIsTempmail": "Использование сервисов временных Email адресов запрещено", "services.emailIsTempmail": "Использование сервисов временных Email адресов запрещено",
@ -163,12 +163,11 @@
"services.loginRequired": "Пожалуйста, укажите Email или ник", "services.loginRequired": "Пожалуйста, укажите Email или ник",
"services.newPasswordRequired": "Пожалуйста, заполните поле пароля", "services.newPasswordRequired": "Пожалуйста, заполните поле пароля",
"services.newRePasswordRequired": "Пожалуйста, введите повтор пароля", "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.passwordRequired": "Пожалуйста, введите пароль",
"services.passwordTooShort": "Пароль должен быть как минимум 8 символов в длинну", "services.passwordTooShort": "Пароль должен быть как минимум 8 символов в длинну",
"services.passwordsDoesNotMatch": "Пароли не совпадают", "services.passwordsDoesNotMatch": "Пароли не совпадают",
"services.rePasswordRequired": "Пожалуйста, повторите пароль", "services.rePasswordRequired": "Пожалуйста, повторите пароль",
"services.rulesAgreementRequired": "Для создания аккаунта вам необходими принять правила сервиса", "services.rulesAgreementRequired": "Для создания аккаунта вам необходимо принять правила сервиса",
"services.suggestResetPassword": "Вы {link}?", "services.suggestResetPassword": "Вы {link}?",
"services.usernameInvalid": "Ник содержит недопустимые символы", "services.usernameInvalid": "Ник содержит недопустимые символы",
"services.usernameRequired": "Поле ника обязательно к заполнению", "services.usernameRequired": "Поле ника обязательно к заполнению",

176
src/i18n/uk.json Normal file
View File

@ -0,0 +1,176 @@
{
"components.auth.activation.accountActivationTitle": "Активація акаунту",
"components.auth.activation.activationMailWasSent": "На {email} відправлено повідомлення з інструкціями по завершенню реєстрації",
"components.auth.activation.confirmEmail": "Підтвердження Email",
"components.auth.activation.didNotReceivedEmail": "Не отримали Email?",
"components.auth.activation.enterTheCode": "Вкажіть код з Email",
"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": "Email або нік",
"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": "Код для відновлення пароля був відправлений на ваш Email.",
"components.auth.recoverPassword.messageWasSentTo": "Код для відновлення пароля був відправлений на Email {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": "Ваш Email",
"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": "Email",
"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": "Введіть новий Email",
"components.profile.changeEmail.pressButtonToStart": "Натисніть кнопку нижче, щоб відправити лист з кодом для ініціалізації процесу зміни E-mail адреси.",
"components.profile.changeEmail.sendEmailButton": "Відправити Email",
"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": "Для пароля застосовується старий алгоритм хешування<br />Будь ласка, змініть пароль.",
"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": "Email та нік",
"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": "Email занадто довгий",
"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": "Цей нік вже занятий"
}

4
src/icons/flag_uk.svg Normal file
View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600">
<rect width="1200" height="600" fill="#005BBB"/>
<rect width="1200" height="300" y="300" fill="#FFD500"/>
</svg>

After

Width:  |  Height:  |  Size: 180 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="800">
<rect width="1200" height="800" fill="#005BBB"/>
<rect width="1200" height="400" y="400" fill="#FFD500"/>
</svg>

Before

Width:  |  Height:  |  Size: 179 B

View File

@ -26,7 +26,6 @@
"doYouWantRequestKey": "Do you want to request a new key?", "doYouWantRequestKey": "Do you want to request a new key?",
"emailFrequency": "Please cool down, you are requesting Emails too often. New key can be retrieved {time}.", "emailFrequency": "Please cool down, you are requesting Emails too often. New key can be retrieved {time}.",
"accountNotActivated": "The account is not activated", "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 Email is not found", "emailNotFound": "Specified Email is not found",
"accountAlreadyActivated": "This account is already activated" "accountAlreadyActivated": "This account is already activated"
} }

View File

@ -23,7 +23,6 @@ const errorsMap = {
'error.password_required': () => <Message {...messages.passwordRequired} />, 'error.password_required': () => <Message {...messages.passwordRequired} />,
'error.password_invalid': () => <Message {...messages.invalidPassword} />, 'error.password_invalid': () => <Message {...messages.invalidPassword} />,
'error.old_hash_strategy': () => <Message {...messages.oldHashStrategy} />,
'error.password_incorrect': (props) => ( 'error.password_incorrect': (props) => (
<span> <span>
<Message {...messages.invalidPassword} /> <Message {...messages.invalidPassword} />

View File

@ -2,13 +2,15 @@ import { addLocaleData } from 'react-intl';
import enLocaleData from 'react-intl/locale-data/en'; import enLocaleData from 'react-intl/locale-data/en';
import ruLocaleData from 'react-intl/locale-data/ru'; import ruLocaleData from 'react-intl/locale-data/ru';
import beLocaleData from 'react-intl/locale-data/be'; 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 // till we have not so many locales, we can require their data at once
addLocaleData(enLocaleData); addLocaleData(enLocaleData);
addLocaleData(ruLocaleData); addLocaleData(ruLocaleData);
addLocaleData(beLocaleData); addLocaleData(beLocaleData);
addLocaleData(ukLocaleData);
const SUPPORTED_LANGUAGES = ['ru', 'en', 'be']; const SUPPORTED_LANGUAGES = ['ru', 'en', 'be', 'uk'];
const DEFAULT_LANGUAGE = 'en'; const DEFAULT_LANGUAGE = 'en';
const needPolyfill = !window.Intl; const needPolyfill = !window.Intl;
@ -43,7 +45,7 @@ export default {
require.context( require.context(
'bundle?name=[name]-polyfill-data!intl/locale-data/jsonp', 'bundle?name=[name]-polyfill-data!intl/locale-data/jsonp',
false, false,
/\.\/(en|ru|be)\.js$/ /\.\/(en|ru|be|uk)\.js$/
)(`./${locale}.js`)(resolve); )(`./${locale}.js`)(resolve);
}); });
})); }));