add firt ru translation

fix canvse list translation
This commit is contained in:
HF 2021-01-31 15:45:32 +01:00
parent 6ce8ca56d5
commit efe7b28ae5
4 changed files with 2573 additions and 11 deletions

1163
i18n/ru.po Normal file

File diff suppressed because it is too large Load Diff

371
i18n/ssr-ru.po Normal file
View File

@ -0,0 +1,371 @@
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.2\n"
"Last-Translator: \n"
"Language: ru_RU\n"
#: src/ssr-components/Main.jsx:53
msgid "PixelPlanet.fun"
msgstr "PixelPlanet.fun"
#: src/ssr-components/Main.jsx:55
msgid "Place color pixels on an map styled canvas with other players online"
msgstr ""
"Ставьте цветные пиксели на полотне в виде карты мира вместе с другими "
"игроками по сети"
#: src/ssr-components/Globe.jsx:44
msgid "Double click on globe to go back."
msgstr "Двойной клик на глобусе для того чтобы вернуться назад."
#: src/ssr-components/Globe.jsx:45
msgid "Loading..."
msgstr "Загрузка..."
#: src/ssr-components/Globe.jsx:51
msgid "PixelPlanet.Fun 3DGlobe"
msgstr "PixelPlanet.Fun 3D Глобус"
#: src/ssr-components/Globe.jsx:52
msgid "A 3D globe of our whole map"
msgstr "3D глобус всей нашей карты"
#: src/routes/reset_password.js:65
msgid "You sent an empty password or invalid data :("
msgstr "Вы послали пустой пароль или неверные данные :("
#: src/routes/reset_password.js:77
msgid "This password-reset link isn't valid anymore :("
msgstr "Это ссылка для сброса пароля больше недействительна :("
#: src/routes/reset_password.js:88
msgid "Your passwords do not match :("
msgstr "Ваши пароли не сходятся :("
#: src/routes/reset_password.js:103
msgid "User doesn't exist in our database :("
msgstr "Пользователь не существует в нашей базе данных :("
#: src/routes/reset_password.js:115
msgid "Passowrd successfully changed."
msgstr "Пароль успешно изменён."
#: src/routes/reset_password.js:134
msgid "Invalid url :( Please check your mail again."
msgstr "Неверный url :( Пожалуйста проверьте вашу почту ещё раз."
#: src/routes/reset_password.js:147
msgid ""
"This passwort reset link is wrong or already expired, please request a new "
"one (Note: you can use those links just once)"
msgstr ""
"Эта ссылка на изменение пароля неверна или уже истекла, пожалуйста запросить "
"новую (Примечание: вы можете использовать эти ссылки только один раз)"
#: src/core/mail.js:65
#, javascript-format
msgid ""
"We already sent you a verification mail, you can request another one in "
"${ minLeft } minutes."
msgstr ""
"Мы уже послали вам письмо с подтверждением, вы можете запросить ещё одно "
"через ${ minLeft } мин."
#: src/core/mail.js:75
msgid "Welcome ${ name } to PixelPlanet, plese verify your mail"
msgstr ""
"Добро Пожаловать ${ name } на PixelPlanet, пожалуйста подтвердите вашу почту"
#: src/core/mail.js:77
#, javascript-format
msgid "Hello ${ name }"
msgstr "Здравствуй ${ name }"
#: src/core/mail.js:78
msgid ""
"welcome to our little community of pixelplacers, to use your account, you "
"have to verify your mail. You can do that here: "
msgstr ""
"добро пожаловать в наше маленькое сообщество установщиков пикселей, для "
"использования вашего аккаунта вам нужно подтвердить вашу почту. Вы можете "
"сделать это здесь: "
#: src/core/mail.js:78
msgid "Click to Verify"
msgstr "Кликните чтобы Подтвердить"
#: src/core/mail.js:78 src/core/mail.js:128
msgid "Or by copying following url:"
msgstr "Или копирую со следующей url:"
#: src/core/mail.js:79
msgid ""
"Have fun and don't hesitate to contact us if you encouter any problems :)"
msgstr ""
"Развлекайтесь и не стесняйтесь обращаться к нам, если у вас возникнут "
"проблемы :)"
#: src/core/mail.js:80 src/core/mail.js:130
msgid "Thanks"
msgstr "Спасибо"
#: src/core/mail.js:98
msgid ""
"We already sent you a mail with instructions. Please wait before requesting "
"another mail."
msgstr ""
"Мы уже послали вам письмо с инструкциями. Пожалуйста подождите прежде чем "
"запрашивать другое письмо."
#: src/core/mail.js:106
msgid "Couldn't find this mail in our database"
msgstr "Не можем найти эту почту в нашей базе данных"
#: src/core/mail.js:125
msgid "You forgot your password for PixelPlanet? Get a new one here"
msgstr "Вы забыли ваш пароль от PixelPlanet? Получите новый здесь"
#: src/core/mail.js:127
msgid "Hello"
msgstr "Здравствуйте"
#: src/core/mail.js:128
msgid ""
"You requested to get a new password. You can change your password within the "
"next 30min here: "
msgstr ""
"Вы запросили получить новый пароль. Вы можете сменить ваш пароль в течение "
"следующих 30 минут здесь: "
#: src/core/mail.js:128 src/ssr-components/PasswordReset.jsx:19
#: src/ssr-components/PasswordReset.jsx:28
msgid "Reset Password"
msgstr "Сбросить Пароль"
#: src/core/mail.js:129
#, javascript-format
msgid ""
"If you did not request this mail, please just ignore it (the ip that "
"requested this mail was ${ ip })."
msgstr ""
"Если вы не запрашивали это письмо, пожалуйста просто проигнорируйте его (IP "
"которое запросило это письмо было ${ ip })."
#: src/ssr-components/PasswordReset.jsx:21
#: src/ssr-components/RedirectionPage.jsx:15
msgid "Click here"
msgstr "Кликните сюда"
#: src/ssr-components/PasswordReset.jsx:22
msgid "to go back to pixelplanet"
msgstr "чтобы вернуться назад на pixelplanet"
#: src/ssr-components/PasswordReset.jsx:29
#, javascript-format
msgid "Hello ${ name }, you can set your new password here:"
msgstr "Здравствуйте ${ name }, вы можете поставить новый пароль здесь:"
#: src/ssr-components/PasswordReset.jsx:33
msgid "New Password"
msgstr "Новый Пароль"
#: src/ssr-components/PasswordReset.jsx:41
msgid "Confirm New Password"
msgstr "Подтвердить Новый Пароль"
#: src/ssr-components/PasswordReset.jsx:47
msgid "Submit"
msgstr "Подать"
#: src/ssr-components/PasswordReset.jsx:52
msgid "PixelPlanet.fun Password Reset"
msgstr "Сброс Пароля PixelPlanet.fun"
#: src/ssr-components/PasswordReset.jsx:53
msgid "Reset your password here"
msgstr "Сбросьте свой пароль здесь"
#: src/utils/validation.js:18
msgid "Email can't be empty."
msgstr "Почта не может быть пустой."
#: src/utils/validation.js:19
msgid "Email should be at least 5 characters long."
msgstr "Почта должна быть длинной хотя-бы 5 символов."
#: src/utils/validation.js:20
msgid "Email can't be longer than 40 characters."
msgstr "Почта не может быть длиннее 40 символов."
#: src/utils/validation.js:21
msgid "Email should at least contain a dot"
msgstr "Почта должна содержать как минимум одну точку"
#: src/utils/validation.js:23
msgid "Email should contain a @"
msgstr "Почта должна содержать @"
#: src/utils/validation.js:30
msgid "Name can't be empty."
msgstr "Имя Пользователя не может быть пустым."
#: src/utils/validation.js:31
msgid "Name must be at least 4 characters long"
msgstr "Имя Пользователя должно быть длиной минимум 4 символа"
#: src/utils/validation.js:32
msgid "Name must be shorter than 26 characters"
msgstr "Имя Пользователя должно быть короче 26 символов"
#: src/utils/validation.js:39
msgid "Name contains invalid character like @, /, \\ or #"
msgstr "Имя Пользователя содержит неверные символы, например @, /, \\ или #"
#: src/utils/validation.js:54
msgid "No password given."
msgstr "Нету Пароля."
#: src/utils/validation.js:57
msgid "Password must be at least 6 characters long."
msgstr "Пароль должен быть минимум 6 символов длинной."
#: src/utils/validation.js:60
msgid "Password must be shorter than 60 characters."
msgstr "Пароль должен быть короче 60 символов."
#: src/utils/validation.js:74
msgid "Could not connect to server, please try again later :("
msgstr "Не получается присоедениться к серверу, пожалуйста попробуйте позже :("
#: src/utils/validation.js:80
msgid "I think we experienced some error :("
msgstr "Я думаю у нас вышла ошибка :("
#: src/routes/api/auth/change_mail.js:41
#: src/routes/api/auth/change_passwd.js:37
#: src/routes/api/auth/delete_account.js:38
msgid "You are not authenticated."
msgstr "Вы не авторизованы."
#: src/routes/api/auth/change_mail.js:50
#: src/routes/api/auth/change_passwd.js:46
#: src/routes/api/auth/delete_account.js:48
msgid "Incorrect password!"
msgstr "Неверный пароль!"
#: src/routes/api/auth/logout.js:13
msgid "You are not even logged in."
msgstr "Вы даже не вошли в аккаунт."
#: src/routes/api/auth/verify.js:25 src/routes/api/auth/verify.js:32
msgid "Mail verification"
msgstr "Подтверждение почты"
#: src/routes/api/auth/verify.js:26
msgid "You are now verified :)"
msgstr "Теперь вы подтвержденны :)"
#: src/routes/api/auth/verify.js:32
msgid ""
"Your mail verification code is invalid or already expired :(, please request "
"a new one."
msgstr ""
"Ваше письмо с кодом подтверждения неверное или уже истекло :(, пожалуйста "
"запросить другое."
#: src/routes/api/auth/register.js:31
msgid "E-Mail already in use."
msgstr "Почта уже используется."
#: src/routes/api/auth/register.js:33
msgid "Username already in use."
msgstr "Имя Пользователя уже используется."
#: src/routes/api/auth/register.js:61
msgid "Failed to create new user :("
msgstr "Провал при создании нового пользователя :("
#: src/routes/api/auth/register.js:77
msgid "Failed to establish session after register :("
msgstr "Провал установить сессию после регистрации :("
#: src/ssr-components/RedirectionPage.jsx:20
msgid "You will be automatically redirected after 15s"
msgstr "Вы будете автоматически перенаправленны через 15с"
#: src/ssr-components/RedirectionPage.jsx:21
#, javascript-format
msgid "Or ${ clickHere } to go back to pixelplanet"
msgstr "Или ${ clickHere } чтобы вернуться назад на pixelplanet"
#: src/ssr-components/RedirectionPage.jsx:25
msgid "PixelPlanet.fun Accounts"
msgstr "Аккаунты PixelPlanet.fun"
#: src/canvasesDesc.js:19
msgid "Earth"
msgstr "Земля"
#: src/canvasesDesc.js:20
msgid "Moon"
msgstr "Луна"
#: src/canvasesDesc.js:21
msgid "3D Canvas"
msgstr "3D Полотно"
#: src/canvasesDesc.js:22
msgid "Coronavirus"
msgstr "Коронавирус"
#: src/canvasesDesc.js:23
msgid "PixelZone"
msgstr "PixelZone"
#: src/canvasesDesc.js:24
msgid "PixelCanvas"
msgstr "PixelCanvas"
#: src/canvasesDesc.js:25
msgid "1bit"
msgstr "1бит"
#: src/canvasesDesc.js:28
msgid "Our main canvas, a huge map of the world. Place everywhere you like"
msgstr "Наше главное полотно, огромная карта мира. Ставьте везде где хотите"
#: src/canvasesDesc.js:29
msgid ""
"Moon canvas. Safe space for art. No flags or large text (unless part of art)"
msgstr ""
"Лунное полотно. Безопасное место для рисунков. Без флагов или больших "
"текстов (кроме случаев когда это часть рисунка)"
#: src/canvasesDesc.js:30
msgid "Place Voxels on a 3D canvas with others"
msgstr "Ставьте Воксели на 3D полотне с другими пользователями"
#: src/canvasesDesc.js:31
msgid "Special canvas to spread awareness of SARS-CoV2"
msgstr "Специальное полотно для распространения информации о SARS-CoV2"
#: src/canvasesDesc.js:32
msgid "Mirror of PixelZone"
msgstr "Зеркало PixelZone"
#: src/canvasesDesc.js:33
msgid "Mirror of PixelCanvas"
msgstr "Зеркало PixelCanvas"
#: src/canvasesDesc.js:34
msgid "Black and White canvas"
msgstr "Черно-Белое полотно"

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ import ttag from './core/ttag';
function getCanvases(t) {
/*
* add descriptions and titles of canvases here
* Use the t tab and right `backquotes`
* Use the t tag and right `backquotes`
*/
const canvasTitles = {
0: t`Earth`,
@ -37,11 +37,12 @@ function getCanvases(t) {
* no edit below here needed when adding/removing canvas
*/
const localicedCanvases = { ...canvases };
const canvasKeys = Object.keys(localicedCanvases);
const localicedCanvases = {};
const canvasKeys = Object.keys(canvases);
for (let i = 0; i < canvasKeys.length; i += 1) {
const key = canvasKeys[i];
localicedCanvases[key] = { ...canvases[key] };
localicedCanvases[key].desc = canvasDesc[key] || `Canvas ${key}`;
localicedCanvases[key].title = canvasTitles[key] || `Canvas ${key}`;
}
@ -54,10 +55,8 @@ const lCanvases = {};
(() => {
const langs = Object.keys(ttag);
langs.forEach((lang) => {
console.log(`CANVAS LANGUAGE ${lang}`)
lCanvases[lang] = getCanvases(ttag[lang].t);
});
console.log(lCanvases)
})();
export function getLocalicedCanvases(lang) {