fixed RU app text

master
tester.nicolai 2021-09-23 01:25:47 +03:00
parent a7e7d0ff05
commit f8f43b6cee
4 changed files with 65 additions and 63 deletions

View File

@ -1,12 +1,12 @@
### О проекте ### О проекте
Всё больше организаций хотят владеть нашими данными Всё больше организаций хотят владеть нашими данными
А мы сами хотим распоряжаться своими **данными** на своем сервере. Проект позволяет только Вам в полной мере распоряжаться собственными **данными** на своём сервере.
### Миссия проекта ### Миссия проекта
Цифровая независимость и приватность доступная каждому Цифровая независимость и приватность доступная каждому.
### Цель ### Цель
Развивать программу, которая позволит каждому создавать приватные сервисы для себя и своих близких Развивать программу, которая позволит каждому создавать приватные сервисы для себя и своих близких.

View File

@ -3,5 +3,5 @@
2. Заходим в созданный нами проект. Если такового - нет, значит создаём. 2. Заходим в созданный нами проект. Если такового - нет, значит создаём.
3. Наводим мышкой на боковую панель. Она должна раскрыться, показав нам пункты меню. Нас интересует последний — Security (с иконкой ключика). 3. Наводим мышкой на боковую панель. Она должна раскрыться, показав нам пункты меню. Нас интересует последний — Security (с иконкой ключика).
4. Далее, в верхней части интерфейса видим примерно такой список: SSH Keys, API Tokens, Certificates, Members. Нам нужен API Tokens. Переходим по нему. 4. Далее, в верхней части интерфейса видим примерно такой список: SSH Keys, API Tokens, Certificates, Members. Нам нужен API Tokens. Переходим по нему.
5. В правой части интерфейса, нас будет ожидать кнопка Generate API token. Если же вы используете мобильную версию сайта, в нижнем правом углу вы увидите красный плюсик. Нажимаем на эту кнопку. 5. В правой части интерфейса, нас будет ожидать кнопка Generate API token. Если же Вы используете мобильную версию сайта, в нижнем правом углу Вы увидите красный плюсик. Нажимаем на эту кнопку.
6. В поле Description, даём нашему токену название (это может быть любое название, которые вам нравиться. Сути оно не меняет. 6. В поле Description, даём нашему токену название (это может быть любое название, которые Вам нравиться. Сути оно не меняет.

View File

@ -6,7 +6,7 @@
"providers": "Провайдеры", "providers": "Провайдеры",
"services": "Сервисы", "services": "Сервисы",
"users": "Пользователи", "users": "Пользователи",
"more": "Еще", "more": "Ещё",
"next": "Далее", "next": "Далее",
"got_it": "Понял", "got_it": "Понял",
"settings": "Настройки", "settings": "Настройки",
@ -22,15 +22,15 @@
"nickname": "Никнейм", "nickname": "Никнейм",
"loading": "Загрузка", "loading": "Загрузка",
"later": "Настрою потом", "later": "Настрою потом",
"reset": "Reset", "reset": "Сбросить",
"details": "Детальная информация", "details": "Детальная информация",
"no_data": "Нет данных", "no_data": "Нет данных",
"wait": "Ожидайте", "wait": "Загрузка",
"remove": "Удалить", "remove": "Удалить",
"apply": "Подать" "apply": "Подать"
}, },
"more": { "more": {
"_comment": "вкладка еще", "_comment": "вкладка ещё",
"configuration_wizard": "Мастер Подключения", "configuration_wizard": "Мастер Подключения",
"about_project": "О проекте SelfPrivacy", "about_project": "О проекте SelfPrivacy",
"about_app": "О приложении", "about_app": "О приложении",
@ -43,7 +43,7 @@
"enable": "Включить", "enable": "Включить",
"ok": "ok", "ok": "ok",
"continue": "Продолжить", "continue": "Продолжить",
"ssh_key_exist_text": "У вас уже есть сгенерированный ssk ключ", "ssh_key_exist_text": "У Вас уже есть сгенерированный ssk ключ",
"yes_delete": "Да, удалить", "yes_delete": "Да, удалить",
"share": "Поделиться", "share": "Поделиться",
"copy_buffer": "Копировать в буфер", "copy_buffer": "Копировать в буфер",
@ -54,10 +54,10 @@
}, },
"settings": { "settings": {
"title": "Настройки приложения", "title": "Настройки приложения",
"1": "Темная тема", "1": "Тёмная тема",
"2": "Сменить цветовую тему", "2": "Сменить цветовую тему.",
"3": "Сброс настроек", "3": "Сброс настроек",
"4": "Сбросить API ключи а так же root пользвателя", "4": "Сбросить API ключи а также root пользвателя.",
"5": "Удалить сервер", "5": "Удалить сервер",
"6": "Действие приведет к удалению сервера. После чего он не будет доступен." "6": "Действие приведет к удалению сервера. После чего он не будет доступен."
} }
@ -65,9 +65,9 @@
"onboarding": { "onboarding": {
"_comment": "страницы онбординга", "_comment": "страницы онбординга",
"page1_title": "Цифровая независимость доступна каждому", "page1_title": "Цифровая независимость доступна каждому",
"page1_text": "Почта, VPN, Мессенджер, социальная сеть и многое другое на вашем личном сервере, под вашим полным контролем.", "page1_text": "Почта, VPN, Мессенджер, социальная сеть и многое другое на Вашем личном сервере, под Вашим полным контролем.",
"page2_title": "SelfPrivacy — это не облако, а ваш личный дата-центр", "page2_title": "SelfPrivacy — это не облако, а Ваш личный дата-центр",
"page2_text": "У SelfPrivacy работает только с вашими сервис-провадерами: Hetzner, Cloudflare, Backblaze. Если у вас нет учетных записей, мы поможем их создать." "page2_text": "SelfPrivacy работает только с вашими сервис-провайдерами: Hetzner, Cloudflare, Backblaze. Если у Вас нет учётных записей, мы поможем их создать."
}, },
"providers": { "providers": {
"_comment": "вкладка провайдеры", "_comment": "вкладка провайдеры",
@ -76,7 +76,7 @@
"card_title": "Сервер", "card_title": "Сервер",
"status": "Статус — в норме", "status": "Статус — в норме",
"bottom_sheet": { "bottom_sheet": {
"1": "Это виртульный компьютер на котором работают все ваши сервисы.", "1": "Это виртуальный компьютер на котором работают все Ваши сервисы.",
"2": "Общая информация", "2": "Общая информация",
"3": "Размещение" "3": "Размещение"
}, },
@ -90,16 +90,18 @@
"card_title": "Домен", "card_title": "Домен",
"status": "Статус — в норме", "status": "Статус — в норме",
"bottom_sheet": { "bottom_sheet": {
"1": "Это ваш личный адрес в интернете, который будет указывать на сервер и другие ваши сервисы.", "1": "Это Ваш личный адрес в интернете, который будет указывать на сервер и другие ваши сервисы.",
"2": "{} — продлен до {}" "2": "{} — продлен до {}."
} }
}, },
"backup": { "backup": {
"card_title": "Резервное копирование", "card_title": "Резервное копирование",
"status": "Статус — в норме", "status": "Статус — в норме",
"bottom_sheet": { "bottom_sheet": {
"1": "Выручит в любой ситуации: хакерская атака, удаление сервера и т.п.", "1": "Выручит Вас в любой ситуации: хакерская атака, удаление сервера и.т.д.",
"2": "3Gb — бестплатно до 10Gb, последний вчера в {}" "2": "Использовано 3Gb из бестплатых 10Gb.",
"3": "Последнее копирование была сделана вчера в {}."
} }
} }
}, },
@ -111,72 +113,72 @@
}, },
"services": { "services": {
"_comment": "Вкладка сервисы", "_comment": "Вкладка сервисы",
"title": "Ваши личные приватные и независимые сервисы", "title": "Ваши личные, приватные и независимые сервисы:",
"mail": { "mail": {
"title": "Почта", "title": "Почта",
"subtitle": "Электронная почта для семьи или компании", "subtitle": "Электронная почта для семьи или компании.",
"bottom_sheet": { "bottom_sheet": {
"1": "Для подключения почтового ящика используйте {} и логин пароль, который вы создали. Так же приглашайте", "1": "Для подключения почтового ящика используйте {} и профиль, который Вы создали. Так же приглашайте",
"2": "новых пользователей" "2": "новых пользователей."
} }
}, },
"messenger": { "messenger": {
"title": "Мессенджер", "title": "Мессенджер",
"subtitle": "Telegram и Signal не так приватны, как Delta.Chat использующий ваш личный сервер.", "subtitle": "Telegram и Signal не так приватны, как Delta.Chat — который использует Ваш личный сервер.",
"bottom_sheet": { "bottom_sheet": {
"1": "Для подключения используйте {} и логин пароль, который вы создали" "1": "Для подключения используйте {} и логин пароль, который Вы создали."
} }
}, },
"password_manager": { "password_manager": {
"title": "Менеджер паролей", "title": "Менеджер паролей",
"subtitle": "Фундамент безопасности. Создавать, хранить, копировать пароли между устройствами, вбивать их в формы поможет — Bitwarden.", "subtitle": "Это фундамент Вашей безопасности. Создавать, хранить, копировать пароли между устройствами и вбивать их в формы поможет — Bitwarden.",
"bottom_sheet": { "bottom_sheet": {
"1": "Подключиться к серверу и создать пользователя можно по адресу:" "1": "Подключиться к серверу и создать пользователя можно по адресу:."
} }
}, },
"video": { "video": {
"title": "Видеоконференция", "title": "Видеоконференция",
"subtitle": "Zoom и Google meet отличные инструменты, но Jitsi meet не хуже и дает уверенность, что вас никто не подслушивает.", "subtitle": "Jitsi meet — отличный аналог Zoom и Google meet который по мимо удобства ещё и гарантирует Вам защищённые высококачественные видеоконференции.",
"bottom_sheet": { "bottom_sheet": {
"1": "Для использования просто перейдите по ссылке:" "1": "Для использования просто перейдите по ссылке:."
} }
}, },
"cloud": { "cloud": {
"title": "Файловое облако", "title": "Файловое облако",
"subtitle": "Не позволяйте облачным сервисам читать ваши данные используйте NextCloud.", "subtitle": "Не позволяйте облачным сервисам просматривать ваши данные. Используйте NextCloud — надёжный дом для всех Ваших данных.",
"bottom_sheet": { "bottom_sheet": {
"1": "Подключиться к серверу и создать пользователя можно по адресу:" "1": "Подключиться к серверу и создать пользователя можно по адресу:."
} }
}, },
"social_network": { "social_network": {
"title": "Социальная сеть", "title": "Социальная сеть",
"subtitle": "Сложно поверить, но стало возможным создать свою собственную социальную сеть, со своими правилами и аудиторией.", "subtitle": "Сложно поверить, но стало возможным создать свою собственную социальную сеть, со своими правилами и аудиторией.",
"bottom_sheet": { "bottom_sheet": {
"1": "Подключиться к серверу и создать пользователя можно по адресу:" "1": "Подключиться к серверу и создать пользователя можно по адресу:."
} }
}, },
"git": { "git": {
"title": "Git-сервер", "title": "Git-сервер",
"subtitle": "Приватная альтернатива Github, которая принадлежит вам, а не Microsoft.", "subtitle": "Приватная альтернатива Github, которая принадлежит вам, а не Microsoft.",
"bottom_sheet": { "bottom_sheet": {
"1": "Подключиться к серверу и создать пользователя можно по адресу:" "1": "Подключиться к серверу и создать пользователя можно по адресу:."
} }
} }
}, },
"users": { "users": {
"_comment": "'Users' tab", "_comment": "'Users' tab",
"add_new_user": "Добавьте первого пользователя", "add_new_user": "Добавьте первого пользователя.",
"new_user": "Новый пользователь", "new_user": "Новый пользователь",
"not_ready": "Подключите сервер, домен и DNS в разделу Провайдеры, чтобы добавить первого пользователя", "not_ready": "Подключите сервер, домен и DNS в разделу Провайдеры, чтобы добавить первого пользователя",
"nobody_here": "'Здесь пока никого'", "nobody_here": "Здесь будут отображаться пользователи.",
"login": "Логин", "login": "Логин",
"onboarding": "Приветствие", "onboarding": "Приветствие",
"console": "Консоль разработчика", "console": "Консоль разработчика",
"new_user_info_note": "Новый пользователь автоматически получит доступ ко всем сервисам. Ещё какое-то описание.", "new_user_info_note": "Новый пользователь автоматически получит доступ ко всем сервисам.",
"delete_confirm_question": "удалить учетную запись?", "delete_confirm_question": "Вы действительно хотите удалить учетную запись?",
"reset_password": "Сбросить пароль", "reset_password": "Сбросить пароль",
"account": "Учетная запись", "account": "Учетная запись",
"send_regisration_data": "Отправить реквизиты для входа" "send_regisration_data": "Поделиться реквизитами"
}, },
"initializing": { "initializing": {
"_comment": "initializing page", "_comment": "initializing page",
@ -189,30 +191,30 @@
"6": "Подключите облачное хранилище Backblaze", "6": "Подключите облачное хранилище Backblaze",
"7": "На данный момент подлюченных доменов нет", "7": "На данный момент подлюченных доменов нет",
"8": "Загружаем список доменов", "8": "Загружаем список доменов",
"9": "Найдено больше одного домена, для вашей безопастности, просим вам удалить не нужные домены", "9": "Найдено больше одного домена, для вашей безопастности, просим Вам удалить не нужные домены",
"10": "Сохранить домен", "10": "Сохранить домен",
"final": "Последний шаг", "final": "Последний шаг",
"11": "Создать сервер", "11": "Создать сервер",
"what": "Что это значит?", "what": "Что это значит?",
"13": "Сервер презагружен, ждем последнюю проверку", "13": "Сервер презагружен, ждем последнюю проверку.",
"14": "Cервер запушен, сейчас он будет проверен и перезагружен", "14": "Cервер запущен, сейчас он будет проверен и перезагружен.",
"15": "Cервер создан, идет проверка ДНС адресов и запуск сервера", "15": "Cервер создан, идет проверка ДНС адресов и запуск сервера.",
"16": "До следующей проверки: ", "16": "До следующей проверки: ",
"17": "Проверка", "17": "Проверка",
"18": "Как получить Hetzner API Token'", "18": "Как получить Hetzner API Token:'",
"19": "1 Переходим по ссылке ", "19": "1 Переходим по ссылке ",
"20": "\n2 Заходим в созданный нами проект. Если такового - нет, значит создаём.\n3 Наводим мышкой на боковую панель. Она должна раскрыться, показав нам пункты меню. Нас интересует последний — Security (с иконкой ключика).\n4 Далее, в верхней части интерфейса видим примерно такой список: SSH Keys, API Tokens, Certificates, Members. Нам нужен API Tokens. Переходим по нему.\n5 В правой части интерфейса, нас будет ожидать кнопка Generate API token. Если же вы используете мобильную версию сайта, в нижнем правом углу вы увидите красный плюсик. Нажимаем на эту кнопку.\n6 В поле Description, даём нашему токену название (это может быть любое название, которые вам нравиться. Сути оно не меняет.", "20": "\n2 Заходим в созданный нами проект. Если такового нет - значит создаём.\n3 Наводим мышкой на боковую панель. Она должна раскрыться, показав нам пункты меню. Нас интересует последний — Security (с иконкой ключика).\n4 Далее, в верхней части интерфейса видим примерно такой список: SSH Keys, API Tokens, Certificates, Members. Нам нужен API Tokens. Переходим по нему.\n5 В правой части интерфейса, нас будет ожидать кнопка Generate API token. Если же Вы используете мобильную версию сайта - в нижнем правом углу Вы увидите красный плюсик. Нажимаем на эту кнопку.\n6 В поле Description даём нашему токену название (это может быть любое название, которое Вам нравиться, сути оно не меняет.",
"21": "Сейчас будет дополнительная перезагрузка для активации сертификатов безопастности", "21": "Сейчас будет дополнительная перезагрузка для активации сертификатов безопастности",
"22": "Создайте главную учетную запись", "22": "Создайте главную учетную запись",
"23": "Введите никнейм и сложный пароль", "23": "Введите никнейм и сложный пароль",
"finish": "Все инициализировано", "finish": "Всё инициализировано.",
"checks": "Проверок выполнено: \n{} / {}" "checks": "Проверок выполнено: \n{} / {}"
}, },
"modals": { "modals": {
"_comment": "messages in modals", "_comment": "messages in modals",
"1": "Сервер с таким именем уже существует", "1": "Сервер с таким именем уже существует",
"2": "Уничтожить сервер и создать новый?", "2": "Уничтожить сервер и создать новый?",
"3": "Вы уверенны", "3": "Подтвердите",
"4": "Сбросить все ключи?", "4": "Сбросить все ключи?",
"5": "Да, сбросить", "5": "Да, сбросить",
"6": "Удалить сервер и диск?", "6": "Удалить сервер и диск?",
@ -226,7 +228,7 @@
"_comment": "Jobs list", "_comment": "Jobs list",
"title": "Задачи", "title": "Задачи",
"start": "Начать выполенение", "start": "Начать выполенение",
"empty": "Пусто", "empty": "Пусто.",
"createUser": "Создать запись", "createUser": "Создать запись",
"serviceTurnOff": "Остановить", "serviceTurnOff": "Остановить",
"serviceTurnOn": "Запустить", "serviceTurnOn": "Запустить",
@ -234,11 +236,11 @@
"runJobs": "Запустите задачи" "runJobs": "Запустите задачи"
}, },
"validations": { "validations": {
"required": "обязательное поле", "required": "Обязательное поле.",
"invalid_format": "Неверный формат", "invalid_format": "Неверный формат.",
"root_name": "Имя пользователя не может быть'root'", "root_name": "Имя пользователя не может быть'root'.",
"key_format": "Неверный формат", "key_format": "Неверный формат.",
"length": "Длина строки [] должна быть {}", "length": "Длина строки [] должна быть {}.",
"user_alredy_exist": "Имя уже используется" "user_alredy_exist": "Имя уже используется."
} }
} }

View File

@ -27,13 +27,13 @@ class _TextDetails extends StatelessWidget {
children: [ children: [
TableRow( TableRow(
children: [ children: [
getRowTitle('Last check'), getRowTitle('Last check:'),
getRowValue(formater.format(checkTime)), getRowValue(formater.format(checkTime)),
], ],
), ),
TableRow( TableRow(
children: [ children: [
getRowTitle('Server Id'), getRowTitle('Server Id:'),
getRowValue(data.id.toString()), getRowValue(data.id.toString()),
], ],
), ),
@ -48,7 +48,7 @@ class _TextDetails extends StatelessWidget {
), ),
TableRow( TableRow(
children: [ children: [
getRowTitle('CPU'), getRowTitle('CPU:'),
getRowValue( getRowValue(
data.serverType.cores.toString(), data.serverType.cores.toString(),
), ),
@ -56,7 +56,7 @@ class _TextDetails extends StatelessWidget {
), ),
TableRow( TableRow(
children: [ children: [
getRowTitle('Memory'), getRowTitle('Memory:'),
getRowValue( getRowValue(
'${data.serverType.memory.toString()} GB', '${data.serverType.memory.toString()} GB',
), ),
@ -64,7 +64,7 @@ class _TextDetails extends StatelessWidget {
), ),
TableRow( TableRow(
children: [ children: [
getRowTitle('Disk Local'), getRowTitle('Disk Local:'),
getRowValue( getRowValue(
'${data.serverType.disk.toString()} GB', '${data.serverType.disk.toString()} GB',
), ),
@ -100,7 +100,7 @@ class _TextDetails extends StatelessWidget {
children: [ children: [
TableRow( TableRow(
children: [ children: [
getRowTitle('Country'), getRowTitle('Country:'),
getRowValue( getRowValue(
'${data.location.country}', '${data.location.country}',
), ),
@ -108,13 +108,13 @@ class _TextDetails extends StatelessWidget {
), ),
TableRow( TableRow(
children: [ children: [
getRowTitle('City'), getRowTitle('City:'),
getRowValue(data.location.city), getRowValue(data.location.city),
], ],
), ),
TableRow( TableRow(
children: [ children: [
getRowTitle('Description'), getRowTitle('Description:'),
getRowValue(data.location.description), getRowValue(data.location.description),
], ],
), ),