add firt ru translation
fix canvse list translation
This commit is contained in:
parent
6ce8ca56d5
commit
efe7b28ae5
1163
i18n/ru.po
Normal file
1163
i18n/ru.po
Normal file
File diff suppressed because it is too large
Load Diff
371
i18n/ssr-ru.po
Normal file
371
i18n/ssr-ru.po
Normal 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 "Черно-Белое полотно"
|
1041
i18n/template.pot
1041
i18n/template.pot
File diff suppressed because it is too large
Load Diff
|
@ -13,7 +13,7 @@ import ttag from './core/ttag';
|
||||||
function getCanvases(t) {
|
function getCanvases(t) {
|
||||||
/*
|
/*
|
||||||
* add descriptions and titles of canvases here
|
* add descriptions and titles of canvases here
|
||||||
* Use the t tab and right `backquotes`
|
* Use the t tag and right `backquotes`
|
||||||
*/
|
*/
|
||||||
const canvasTitles = {
|
const canvasTitles = {
|
||||||
0: t`Earth`,
|
0: t`Earth`,
|
||||||
|
@ -37,11 +37,12 @@ function getCanvases(t) {
|
||||||
* no edit below here needed when adding/removing canvas
|
* no edit below here needed when adding/removing canvas
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const localicedCanvases = { ...canvases };
|
const localicedCanvases = {};
|
||||||
const canvasKeys = Object.keys(localicedCanvases);
|
const canvasKeys = Object.keys(canvases);
|
||||||
|
|
||||||
for (let i = 0; i < canvasKeys.length; i += 1) {
|
for (let i = 0; i < canvasKeys.length; i += 1) {
|
||||||
const key = canvasKeys[i];
|
const key = canvasKeys[i];
|
||||||
|
localicedCanvases[key] = { ...canvases[key] };
|
||||||
localicedCanvases[key].desc = canvasDesc[key] || `Canvas ${key}`;
|
localicedCanvases[key].desc = canvasDesc[key] || `Canvas ${key}`;
|
||||||
localicedCanvases[key].title = canvasTitles[key] || `Canvas ${key}`;
|
localicedCanvases[key].title = canvasTitles[key] || `Canvas ${key}`;
|
||||||
}
|
}
|
||||||
|
@ -54,10 +55,8 @@ const lCanvases = {};
|
||||||
(() => {
|
(() => {
|
||||||
const langs = Object.keys(ttag);
|
const langs = Object.keys(ttag);
|
||||||
langs.forEach((lang) => {
|
langs.forEach((lang) => {
|
||||||
console.log(`CANVAS LANGUAGE ${lang}`)
|
|
||||||
lCanvases[lang] = getCanvases(ttag[lang].t);
|
lCanvases[lang] = getCanvases(ttag[lang].t);
|
||||||
});
|
});
|
||||||
console.log(lCanvases)
|
|
||||||
})();
|
})();
|
||||||
|
|
||||||
export function getLocalicedCanvases(lang) {
|
export function getLocalicedCanvases(lang) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user