diff --git a/packages/ui/public/locales/ru.json b/packages/ui/public/locales/ru.json new file mode 100644 index 000000000..cd7ea6f87 --- /dev/null +++ b/packages/ui/public/locales/ru.json @@ -0,0 +1,602 @@ +{ + "2fa": "2ФА", + "2fa-description": "Второй уровень безопасности для вашего логина и приложений Umbrel", + "2fa.disable.success": "Двухфакторная аутентификация отключена", + "2fa.disable.title": "Отключить двухфакторную аутентификацию", + "2fa.enable.or-paste": "Или вставьте следующий код в приложение аутентификатора", + "2fa.enable.scan-this": "Отсканируйте этот QR-код с помощью приложения-аутентификатора, например Google Authenticator или Authy.", + "2fa.enable.success": "Двухфакторная аутентификация включена", + "2fa.enable.title": "Включить двухфакторную аутентификацию", + "2fa.enter-code": "Введите код, отображаемый в приложении аутентификатора.", + "account": "Аккаунт", + "account-description": "Ваше имя и пароль", + "advanced-settings": "Расширенные настройки", + "advanced-settings-description": "Терминал, программа бета-тестирования umbrelOS, DNS Cloudflare и многое другое", + "app-not-found": "Приложение не найдено: {{app}}", + "app-only-over-tor": "{{app}} можно использовать только через Tor. Чтобы открыть это приложение, зайдите в Umbrel через браузер Tor по URL-адресу удаленного доступа (Настройки > Удаленный доступ через Tor).", + "app-page.section.about": "О", + "app-page.section.credentials.title": "Данные по умолчанию", + "app-page.section.dependencies.n-alternatives": "Смотрите {{count}} альтернативы", + "app-page.section.info.compatibility": "Совместимость", + "app-page.section.info.compatibility-compatible": "Совместимо", + "app-page.section.info.compatibility-not-compatible": "Не совместимо", + "app-page.section.info.developer": "Разработчик", + "app-page.section.info.source-code": "Исходный код", + "app-page.section.info.source-code.public": "Публичный", + "app-page.section.info.submitted-by": "Представлен", + "app-page.section.info.support": "Получить поддержку", + "app-page.section.info.title": "Инфо", + "app-page.section.info.version": "Версия", + "app-page.section.recommendations.title": "Вам также может понравиться", + "app-page.section.release-notes.title": "Что нового", + "app-page.section.release-notes.version": "Версия {{version}}", + "app-page.section.requires": "Требует", + "app-picker.search": "Поиск...", + "app-picker.select-app": "Выбрать приложение...", + "app-settings.connected-to": "{{appName}} связан с этими приложениями", + "app-settings.save-changes": "Сохранить изменения", + "app-settings.title": "Настройки", + "app-store.browse-category-apps": "Просмотреть {{category}} приложений", + "app-store.category.ai": "ИИ", + "app-store.category.all": "Все приложения", + "app-store.category.automation": "Дом и Автоматизация", + "app-store.category.bitcoin": "Биткоин", + "app-store.category.developer": "Инструменты для разработки", + "app-store.category.discover": "Откройте для себя", + "app-store.category.files": "Файлы и производительность", + "app-store.category.finance": "Финансы", + "app-store.category.media": "Медиа", + "app-store.category.networking": "Сеть", + "app-store.category.social": "Социальные приложения", + "app-store.description": "Настройки обновления приложения", + "app-store.menu.community-app-stores": "Магазины приложений сообщества", + "app-store.search-apps": "Поиск приложений", + "app-store.search.no-results": "Нет результатов", + "app-store.search.results-for": "Результаты по", + "app-store.title": "App Store", + "app-updates.less": "меньше", + "app-updates.more": "больше", + "app-updates.no-updates": "Все приложения обновлены!", + "app-updates.update": "Обновить", + "app-updates.update-all": "Обновить все", + "app-updates.updates-available-count_one": "{{count}} обновление доступно", + "app-updates.updates-available-count_other": "{{count}} обновлений доступно", + "app-updates.updating": "Обновление...", + "app.install": "Установить", + "app.installed": "Установлено", + "app.installing": "Установка", + "app.offline": "Не запущено", + "app.open": "Открыть", + "app.optimized-for-umbrel-home": "Оптимизированно под Umbrel Home", + "app.os-update-required.confirm": "Проверить обновление umbrelOS", + "app.os-update-required.description": "{{appName}} требует umbrelOS {{version}} или новее", + "app.os-update-required.title": "Обновить umbrelOS", + "app.restarting": "Перезагрузка", + "app.starting": "Запуск", + "app.stopped": "Остановлено", + "app.stopping": "Остановка", + "app.uninstall.confirm.description": "Все данные, связанные с {{app}}, будут безвозвратно удалены. Это действие нельзя отменить.", + "app.uninstall.confirm.submit": "Удалить", + "app.uninstall.confirm.title": "Удалить {{app}}?", + "app.uninstall.deps.used-by.description_one": "Сначала удалите {{firstAppToUninstall}}, чтобы удалить {{app}}.", + "app.uninstall.deps.used-by.description_other": "Сначала удалите эти приложения, чтобы удалить {{app}}.", + "app.uninstall.deps.used-by.title": "{{app}} используется в", + "app.uninstalling": "Удаление", + "app.updating": "Обновление", + "app.view": "Просмотр", + "app_one": "приложение", + "app_other": "приложений", + "apps.uninstall.failed-to-get-required-apps": "Не удалось получить необходимые приложения", + "apps.uninstalled-all.success": "Все приложения удалены", + "auth.checking-backend-for-user": "Загрузка...", + "auth.failed-checking-if-user-logged-in": "Ошибка: не удалось проверить вход", + "auth.failed-to-check-if-user-exists": "Ошибка: не удалось проверить существование пользователя", + "beta-program": "Бета-программа umbrelOS", + "beta-program-description": "Подпишитесь на получение бета-обновлений umbrelOS, получите ранний доступ к новым функциям и помогите нам их улучшить, предоставляя обратную связь. Бета-версии могут быть нестабильными, а для устранения неполадок может потребоваться знание терминала.", + "cancel": "Отмена", + "change": "Изменить", + "change-name": "Изменить имя", + "change-name.failed.name-required": "Имя обязательно", + "change-name.input-placeholder": "Ваше имя", + "change-password": "Изменить пароль", + "change-password.callout": "Если вы потеряете пароль, вы не сможете войти в свой Umbrel. Убедитесь, что он надежно сохранен.", + "change-password.current-password": "Текущий пароль", + "change-password.failed.current-required": "Текущий пароль обязателен", + "change-password.failed.min-length": "Пароль должен содержать не менее {{characters}} символов", + "change-password.failed.must-be-unique": "Новый пароль должен отличаться от текущего", + "change-password.failed.new-required": "Новый пароль обязателен", + "change-password.failed.no-match": "Пароли не совпадают", + "change-password.failed.repeat-required": "Повтор пароля обязателен", + "change-password.new-password": "Новый пароль", + "change-password.repeat-password": "Повторите пароль", + "check-for-latest-version": "Проверить последнюю версию umbrelOS", + "clipboard.copied": "Скопировано", + "close": "Закрыть", + "cmdk.change-wallpaper": "Изменить обои", + "cmdk.frequent-apps": "Часто используемые", + "cmdk.input-placeholder": "Поиск приложений, настроек или действий", + "cmdk.live-usage": "Использование в реальном времени", + "cmdk.restart-umbrel": "Перезагрузить Umbrel", + "cmdk.shutdown-umbrel": "Выключить Umbrel", + "cmdk.update-all-apps": "Обновить все приложения", + "cmdk.widgets": "Виджеты", + "community-app-store": "Сообщество App Store", + "community-app-store.back-to-umbrel-app-store": "Вернуться в Umbrel App Store", + "community-app-store.open-button": "Открыть", + "community-app-store.remove-button": "Удалить", + "community-app-stores.add-button": "Добавить", + "community-app-stores.description": "Сообщества App Store позволяют устанавливать приложения на ваш Umbrel, которые могут быть недоступны в официальном Umbrel App Store. Они также облегчают тестирование бета-версий приложений Umbrel до их выпуска разработчиками в официальном Umbrel App Store.", + "community-app-stores.learn-more": "Узнать больше", + "community-app-stores.warning": "Сообщества App Store могут быть созданы кем угодно. Приложения, опубликованные в них, не проверяются и не контролируются командой официального Umbrel App Store и могут быть небезопасными или вредоносными. Будьте осторожны и добавляйте только магазины приложений от разработчиков, которым доверяете.", + "confirm": "Подтвердить", + "connecting": "Подключение...", + "continue": "Продолжить", + "continue-to-log-in": "Перейти к входу", + "cpu": "ЦП", + "cpu-core-count": "{{cores}} потоков", + "create-user": "Создать пользователя", + "default-credentials.close": "Понятно", + "default-credentials.description": "Вот учетные данные по умолчанию, которые вам понадобятся для входа в приложение.", + "default-credentials.dont-show-again": "Больше не показывать", + "default-credentials.dont-show-again-notice": "Вы можете получить доступ к этим учетным данным в любое время, щелкнув правой кнопкой мыши на значке приложения.", + "default-credentials.open": "Открыть {{app}}", + "default-credentials.password": "Пароль по умолчанию", + "default-credentials.title": "Учетные данные для {{app}}", + "default-credentials.username": "Имя пользователя по умолчанию", + "desktop.app.context.go-to-store-page": "Просмотреть в App Store", + "desktop.app.context.settings": "Настройки", + "desktop.app.context.show-default-credentials": "Показать учетные данные по умолчанию", + "desktop.app.context.uninstall": "Удалить", + "desktop.context-menu.change-wallpaper": "Изменить обои", + "desktop.context-menu.edit-widgets": "Редактировать виджеты", + "desktop.context-menu.logout": "Выйти", + "desktop.greeting.afternoon": "Добрый день, {{name}}", + "desktop.greeting.evening": "Добрый вечер, {{name}}", + "desktop.greeting.morning": "Доброе утро, {{name}}", + "desktop.install-first.for-the-bitcoiner": "Для биткоинеров", + "desktop.install-first.for-the-self-hoster": "Для самохостеров", + "desktop.install-first.for-the-streamer": "Для стримеров", + "desktop.install-first.link-to-app-store": "Найти больше в App Store", + "desktop.not-enough-room": "Используйте экран большего размера для просмотра приложений.", + "device": "Устройство", + "device-info": "Информация об устройстве", + "device-info-description": "Информация о вашем устройстве", + "device-info.device": "Устройство", + "device-info.model-number": "Модель", + "device-info.serial-number": "Серийный номер", + "device-info.view-info": "Просмотреть информацию", + "disable": "Отключить", + "done": "Готово", + "download-logs": "Скачать логи", + "external-dns": "DNS Cloudflare", + "external-dns-description": "DNS Cloudflare обеспечивает лучшую надежность сети. Отключите, чтобы использовать DNS-настройки вашего роутера.", + "factory-reset": "Сброс к заводским настройкам", + "factory-reset-description": "Удалить все ваши данные и приложения, восстановив umbrelOS к настройкам по умолчанию", + "factory-reset.confirm.body": "Подтвердите пароль для сброса", + "factory-reset.confirm.ethernet-required-warning": "Убедитесь, что ваше устройство подключено к роутеру через Ethernet (не Wi-Fi) и вы обращаетесь к нему из локальной сети (например, через http://umbrel.local или локальный IP-адрес устройства).", + "factory-reset.confirm.submit": "Удалить всё и сбросить", + "factory-reset.confirm.submit-callout": "Это действие нельзя отменить.", + "factory-reset.failed.message": "Произошла ошибка при сбросе", + "factory-reset.failed.retry": "Повторить сброс", + "factory-reset.failed.title": "Сброс не удался", + "factory-reset.resetting.dont-turn-off-device": "Не выключайте устройство до завершения сброса", + "factory-reset.review.account-info": "Учетная запись и пароль", + "factory-reset.review.apps": "Приложения", + "factory-reset.review.following-will-be-removed": "Следующее будет удалено с вашего устройства", + "factory-reset.review.installed-apps_one": "{{count}} установленное приложение", + "factory-reset.review.installed-apps_other": "{{count}} установленных приложений", + "factory-reset.review.submit": "Продолжить", + "factory-reset.review.total-data": "Всего данных", + "factory-reset.success.description": "Все ваши приложения, данные и учетная запись были удалены, а umbrelOS сброшена к настройкам по умолчанию.", + "factory-reset.success.title": "Сброс завершен", + "files-action.add-favorite": "Добавить в избранное", + "files-action.cancel-upload": "Отменить загрузку", + "files-action.compress": "Архивировать", + "files-action.copy": "Копировать", + "files-action.cut": "Вырезать", + "files-action.delete": "Удалить навсегда", + "files-action.download": "Скачать", + "files-action.download-items": "Скачать {{count}} элементов", + "files-action.drop-to-upload": "Перетащите для загрузки", + "files-action.eject-disk": "Извлечь диск", + "files-action.empty-trash": "Очистить корзину", + "files-action.go-to-path": "Перейти к...", + "files-action.new-folder": "Новая папка", + "files-action.open": "Открыть", + "files-action.paste": "Вставить", + "files-action.remove-favorite": "Удалить из избранного", + "files-action.rename": "Переименовать", + "files-action.restore": "Восстановить", + "files-action.select": "Выбрать", + "files-action.share": "Открыть доступ по сети...", + "files-action.sharing": "Доступ открывается...", + "files-action.show-in-folder": "Показать в родительской папке", + "files-action.trash": "Корзина", + "files-action.uncompress": "Распаковать", + "files-action.upload": "Загрузить", + "files-audio-island.now-playing": "Сейчас играет", + "files-audio-island.pause": "Пауза", + "files-audio-island.play": "Воспроизвести", + "files-collision.action.keep-both": "Оба файла", + "files-collision.action.replace": "Заменить", + "files-collision.action.skip": "Пропустить", + "files-collision.destination.original-location": "исходное расположение", + "files-collision.message": "Заменить существующий файл или оставить оба?", + "files-collision.title": "\"{{itemName}}\" уже существует в {{destinationName}}", + "files-download.confirm": "Скачать", + "files-download.description": "Файлы не могут открыть этот тип файла. Хотите скачать его?", + "files-download.title": "Скачать {{name}}?", + "files-empty-trash.confirm": "Очистить", + "files-empty-trash.description": "Вы уверены, что хотите навсегда удалить все элементы из корзины? Это действие нельзя отменить.", + "files-empty-trash.title": "Очистить корзину?", + "files-empty.directory": "В этой папке нет элементов", + "files-error.add-favorite": "Ошибка добавления в избранное: {{message}}", + "files-error.add-share": "Ошибка открытия доступа: {{message}}", + "files-error.compress": "Ошибка архивирования: {{message}}", + "files-error.copy": "Ошибка копирования: {{message}}", + "files-error.create-folder": "Ошибка создания папки: {{message}}", + "files-error.delete": "Ошибка удаления: {{message}}", + "files-error.eject-disk": "Ошибка извлечения диска: {{message}}", + "files-error.empty-trash": "Ошибка очистки корзины: {{message}}", + "files-error.extract": "Ошибка распаковки: {{message}}", + "files-error.move": "Ошибка перемещения: {{message}}", + "files-error.remove-favorite": "Ошибка удаления из избранного: {{message}}", + "files-error.remove-share": "Ошибка закрытия доступа: {{message}}", + "files-error.rename": "Ошибка переименования: {{message}}", + "files-error.restore": "Ошибка восстановления: {{message}}", + "files-error.trash": "Ошибка перемещения в корзину: {{message}}", + "files-error.upload": "Ошибка загрузки: {{message}}", + "files-extension-change.confirm": "Продолжить", + "files-extension-change.description-add": "Вы уверены, что хотите изменить расширение файла '{{fileName}}' на '{{extension}}'? Это может сделать файл нечитаемым.", + "files-extension-change.description-remove": "Вы уверены, что хотите удалить расширение у файла '{{fileName}}'?", + "files-extension-change.title-add": "Изменить расширение на '{{extension}}'?", + "files-extension-change.title-remove": "Удалить расширение?", + "files-external-storage.unsupported.description": "Подключенный внешний диск не может быть использован с этим устройством. Функция внешнего хранилища доступна только на Umbrel Home.", + "files-external-storage.unsupported.title": "Внешнее хранилище не поддерживается", + "files-folder": "Папка", + "files-listing.empty": "Нет элементов", + "files-listing.error": "Произошла ошибка", + "files-listing.item-count-truncated": "{{formattedCount}}+ элементов", + "files-listing.item-count_one": "{{formattedCount}} элемент", + "files-listing.item-count_other": "{{formattedCount}} элементов", + "files-listing.loading": "Загрузка...", + "files-listing.no-such-file": "Файл или папка не найдены", + "files-listing.selected-count": "Выбрано {{selectedCount}} из {{totalCount}}", + "files-listing.selected-count-truncated": "Выбрано {{selectedCount}} из {{totalCount}}+", + "files-name-drawer.new-folder": "Новая папка", + "files-name-drawer.new-folder-description": "Введите имя для новой папки.", + "files-name-drawer.new-folder-input": "Имя папки", + "files-name-drawer.rename-file": "Переименовать файл", + "files-name-drawer.rename-file-description": "Введите новое имя для этого файла.", + "files-name-drawer.rename-file-input": "Имя файла", + "files-name-drawer.rename-folder": "Переименовать папку", + "files-name-drawer.rename-folder-description": "Введите новое имя для этой папки.", + "files-name-drawer.rename-folder-input": "Имя папки", + "files-operations-island.copying": "Копирование \"{{from}}\" в \"{{to}}\"", + "files-operations-island.moving": "Перемещение \"{{from}}\" в \"{{to}}\"", + "files-path.input-group": "Ввод пути", + "files-path.input-label": "Текущий путь", + "files-permanently-delete.confirm": "Удалить навсегда", + "files-permanently-delete.description-multiple": "Вы уверены, что хотите навсегда удалить эти {{count}} элементов? Это действие нельзя отменить.", + "files-permanently-delete.description-single": "Вы уверены, что хотите навсегда удалить \"{{fileName}}\"? Это действие нельзя отменить.", + "files-permanently-delete.title-multiple": "Удалить {{count}} элементов навсегда?", + "files-permanently-delete.title-single": "Удалить навсегда?", + "files-search.default": "Поиск файлов и папок", + "files-search.no-results": "Ничего не найдено по запросу \"{{query}}\"", + "files-search.placeholder": "Поиск", + "files-share.first-prompt-description": "Вы можете поделиться только \"{{folderName}}\" или выбрать общий доступ ко всей домашней папке. Вы всегда можете переключиться на общий доступ к домашней папке позже, щелкнув правой кнопкой мыши \"{{homeDirectoryName}}\" в боковой панели.", + "files-share.first-prompt-share-folder": "Поделиться только \"{{folderName}}\"", + "files-share.first-prompt-share-home": "Поделиться \"{{homeDirectoryName}}\"", + "files-share.first-prompt-title": "Поделиться только этой папкой или всей домашней папкой?", + "files-share.home-description": "Доступ ко всем файлам в \"{{homeDirectoryName}}\" с других устройств в вашей сети", + "files-share.home-title": "Открыть доступ к \"{{homeDirectoryName}}\" по сети", + "files-share.instructions.how-to-access": "Как получить доступ", + "files-share.instructions.ios.enter-password": "Введите {{password}} как пароль.", + "files-share.instructions.ios.enter-server": "Введите {{smbUrl}} как адрес сервера.", + "files-share.instructions.ios.enter-username": "Введите {{username}} как имя пользователя.", + "files-share.instructions.ios.install-files": "Установите приложение \"Файлы\" из App Store, если оно не установлено.", + "files-share.instructions.ios.tap-connect": "Нажмите \"Подключиться\" для доступа.", + "files-share.instructions.ios.tap-dots": "Нажмите на три точки (...) в правом верхнем углу и выберите \"Подключиться к серверу\".", + "files-share.instructions.macos.click-connect": "Нажмите \"Подключиться\" для доступа.", + "files-share.instructions.macos.enter-password": "Введите {{password}} как пароль.", + "files-share.instructions.macos.enter-url": "Введите {{smbUrl}} и нажмите Подключиться.", + "files-share.instructions.macos.enter-username": "Введите {{username}} как имя пользователя.", + "files-share.instructions.macos.open-finder": "Откройте \"Finder\" и нажмите ⌘ + K.", + "files-share.instructions.macos.select-registered": "Выберите \"Зарегистрированный пользователь\" при запросе.", + "files-share.instructions.macos.time-machine": "Использовать эту папку для резервных копий Time Machine", + "files-share.instructions.macos.time-machine.choose-encryption": "Выберите между зашифрованными или незашифрованными резервными копиями.", + "files-share.instructions.macos.time-machine.disk-limit": "Для 'Лимита использования диска' укажите максимальный объем пространства, который вы хотите выделить на вашем Umbrel для резервных копий Time Machine, затем нажмите \"Готово\".", + "files-share.instructions.macos.time-machine.follow-steps": "Выполните вышеуказанные шаги и откройте Системные настройки на вашем Mac.", + "files-share.instructions.macos.time-machine.go-settings": "Перейдите в Time Machine, нажмите \"Добавить диск для резервного копирования...\".", + "files-share.instructions.macos.time-machine.select-disk": "Выберите \"{{name}}\" и нажмите \"Настроить диск...\".", + "files-share.instructions.windows.enter-password": "Введите {{password}} как пароль.", + "files-share.instructions.windows.enter-url": "Введите {{smbUrl}} и нажмите Enter.", + "files-share.instructions.windows.enter-username": "Введите {{username}} как имя пользователя.", + "files-share.instructions.windows.open-run": "Нажмите Windows + R, чтобы открыть диалоговое окно \"Выполнить\".", + "files-share.instructions.windows.remember-credentials": "Отметьте \"Запомнить мои учетные данные\" и нажмите OK.", + "files-share.regular-description": "Откройте доступ к этой папке для доступа с других устройств в вашей сети", + "files-share.regular-title": "Открыть доступ к папке по сети", + "files-share.toggle": "Открыть доступ к \"{{name}}\" по вашей сети", + "files-sidebar.apps": "Приложения", + "files-sidebar.external-storage": "Внешнее хранилище", + "files-sidebar.favorites": "Избранное", + "files-sidebar.home": "Домашняя папка", + "files-sidebar.navigation": "Навигация по файлам", + "files-sidebar.recents": "Недавние", + "files-sidebar.shared-folders": "Общие папки", + "files-sidebar.trash": "Корзина", + "files-sidebar.trash.open": "Открыть", + "files-sort.created": "Дата создания", + "files-sort.modified": "Дата изменения", + "files-sort.name": "Имя", + "files-sort.size": "Размер", + "files-sort.type": "Тип", + "files-state.uploading": "Загрузка...", + "files-state.waiting": "Ожидание...", + "files-type.3gp": "Видео 3GP", + "files-type.3gp2": "Видео 3GP2", + "files-type.7z": "Архив 7Z", + "files-type.aac": "Аудио AAC", + "files-type.ai": "Файл Illustrator", + "files-type.aiff": "Аудио AIFF", + "files-type.au": "Аудио AU", + "files-type.avi": "Видео AVI", + "files-type.avif": "Изображение AVIF", + "files-type.bmp": "Изображение BMP", + "files-type.bzip2": "Архив BZIP2", + "files-type.caf": "Аудио CAF", + "files-type.compressed": "Архив", + "files-type.csv": "Файл CSV", + "files-type.directory": "Папка", + "files-type.dmg": "Образ диска", + "files-type.dv": "Видео DV", + "files-type.epub": "Книга EPUB", + "files-type.excel": "Таблица Excel", + "files-type.exe": "Исполняемый файл Windows", + "files-type.executable": "Исполняемый файл", + "files-type.external-drive": "Диск", + "files-type.flac": "Аудио FLAC", + "files-type.flv": "Видео FLV", + "files-type.gif": "Изображение GIF", + "files-type.gzip": "Архив GZIP", + "files-type.heic": "Изображение HEIC", + "files-type.ico": "Иконка ICO", + "files-type.iso": "Образ ISO", + "files-type.jpeg": "Изображение JPEG", + "files-type.keynote": "Презентация Keynote", + "files-type.lzip": "Архив LZIP", + "files-type.lzma": "Архив LZMA", + "files-type.lzop": "Архив LZOP", + "files-type.m3u": "Плейлист M3U", + "files-type.m4a": "Аудио M4A", + "files-type.m4v": "Видео M4V", + "files-type.midi": "Аудио MIDI", + "files-type.mka": "Аудио MKA", + "files-type.mkv": "Видео MKV", + "files-type.mng": "Видео MNG", + "files-type.mobi": "Книга MOBI", + "files-type.mp3": "Аудио MP3", + "files-type.mp4": "Видео MP4", + "files-type.mp4-audio": "Аудио MP4", + "files-type.mpeg": "Видео MPEG", + "files-type.mpeg-ts": "Транспортный поток MPEG", + "files-type.numbers": "Таблица Numbers", + "files-type.ogg": "Аудио OGG", + "files-type.ogv": "Видео OGV", + "files-type.pages": "Документ Pages", + "files-type.pdf": "Документ PDF", + "files-type.png": "Изображение PNG", + "files-type.powerpoint": "Презентация PowerPoint", + "files-type.psd": "Документ Photoshop", + "files-type.quicktime": "Видео QuickTime", + "files-type.rar": "Архив RAR", + "files-type.sgi": "Видео SGI", + "files-type.svg": "Изображение SVG", + "files-type.tar": "Архив TAR", + "files-type.tiff": "Изображение TIFF", + "files-type.ts": "Видео TS", + "files-type.txt": "Текстовый файл", + "files-type.wav": "Аудио WAV", + "files-type.webm": "Видео WebM", + "files-type.webm-audio": "Аудио WebM", + "files-type.webp": "Изображение WebP", + "files-type.wma": "Аудио WMA", + "files-type.wmv": "Видео WMV", + "files-type.word": "Документ Word", + "files-type.xz": "Архив XZ", + "files-type.zip": "Архив ZIP", + "files-upload-island.uploading-count": "Загрузка {{count}} элементов", + "files-view.icons": "Значки", + "files-view.list": "Список", + "files-view.sort-by": "Сортировать по", + "files-view.view-as": "Вид", + "files-widgets.favorites.no-items-text": "Добавьте папку в избранное, чтобы увидеть её здесь", + "files-widgets.recents.no-items-text": "Нет недавних файлов", + "generic-in": "в", + "hello": "Привет", + "install-first.install-app": "Установить {{app}}", + "install-first.title": "Для {{app}} требуется установка этих приложений", + "install-your-first-app": "Установите первое приложение", + "language": "Язык", + "language-description": "Предпочитаемый язык umbrelOS", + "language.select-description": "Выберите предпочитаемый язык umbrelOS", + "live-usage": "Использование в реальном времени", + "loading": "Загрузка", + "local-ip": "Локальный IP", + "login-2fa.subtitle": "Введите код 2FA из вашего приложения-аутентификатора", + "login-2fa.title": "Аутентификация", + "login-with-umbrel.description": "Введите пароль от Umbrel для открытия {{app}}", + "login-with-umbrel.title": "Войти через Umbrel", + "login.password-label": "Пароль", + "login.password.submit": "Войти", + "login.subtitle": "Введите пароль от Umbrel для входа", + "login.title": "С возвращением", + "logout": "Выйти", + "logout-error-generic": "Ошибка: не удалось выйти", + "logout.confirm.submit": "Выйти", + "logout.confirm.title": "Вы уверены, что хотите выйти?", + "memory": "Память", + "memory.low": "Мало памяти", + "migrate": "Перенести", + "migrate.callout": "Не выключайте Umbrel до завершения переноса", + "migrate.failed.retry": "Повторить", + "migrate.failed.title": "Ошибка переноса", + "migrate.success.description": "Все ваши приложения, данные и учетная запись были перенесены на Umbrel Home.", + "migrate.success.title": "Перенос завершен", + "migration-assistant": "Помощник миграции", + "migration-assistant-description": "Перенос всех приложений и данных с Raspberry Pi на Umbrel Home", + "migration-assistant-unsupported-device-description": "Помощник миграции поддерживает перенос данных и приложений с Raspberry Pi с umbrelOS на Umbrel Home. Откройте Помощник миграции на вашем Umbrel Home, чтобы начать.", + "migration-assistant.continue-migration.ready.submit": "Начать перенос", + "migration-assistant.failed": "Что-то пошло не так...", + "migration-assistant.failed.retrying-message": "Повторная попытка...", + "migration-assistant.mobile.start-button": "Начать перенос", + "migration-assistant.prep.body": "Подготовка к переносу", + "migration-assistant.prep.button-continue": "Продолжить", + "migration-assistant.prep.callout": "Данные на вашем Umbrel Home (если есть) будут безвозвратно удалены.", + "migration-assistant.prep.connect-disk-to-home": "Подключите внешний диск к любому USB-порту на Umbrel Home.", + "migration-assistant.prep.prep-done-continue-message": "После завершения нажмите '{{button}}' ниже.", + "migration-assistant.prep.shut-down-rpi": "Выключите ваш Raspberry Pi Umbrel.", + "migration-assistant.ready.description": "Все ваши данные и приложения готовы к переносу на Umbrel Home", + "migration-assistant.ready.hint-header": "Важные моменты", + "migration-assistant.ready.hint-keep-pi-off.description": "Это поможет избежать проблем с такими приложениями как Lightning Node", + "migration-assistant.ready.hint-keep-pi-off.title": "Не включайте Raspberry Pi после переноса", + "migration-assistant.ready.hint-use-same-password.description": "Используйте пароль от Raspberry Pi Umbrel для входа на Umbrel Home", + "migration-assistant.ready.hint-use-same-password.title": "Используйте тот же пароль", + "migration-assistant.ready.title": "Всё готово к переносу!", + "name": "Имя", + "no-forgot-password-message": "Если вы потеряете пароль, вы не сможете войти в Umbrel. Обязательно сохраните его надежно.", + "no-results-found": "Ничего не найдено", + "not-found-404": "Ошибка 404", + "not-found-404.back": "Назад", + "not-found-404.home": "На главную", + "notifications.cpu.too-hot": "Высокая температура процессора", + "notifications.memory.low": "На устройстве мало памяти", + "notifications.new-version-available": "Доступно обновление {{update}}", + "notifications.storage.full": "На устройстве закончилось место", + "notifications.view": "Просмотр", + "ok": "OK", + "onboarding.account-created.by-clicking-button-you-agree": "Нажимая 'Далее', вы соглашаетесь с Условиями использования umbrelOS", + "onboarding.account-created.next": "Далее", + "onboarding.account-created.subtitle": "Ваш Umbrel готов к использованию.", + "onboarding.account-created.youre-all-set-name": "Всё готово, {{name}}.", + "onboarding.contact-support": "Поддержка", + "onboarding.create-account": "Создать аккаунт", + "onboarding.create-account.confirm-password.input-label": "Подтвердите пароль", + "onboarding.create-account.failed.name-required": "Требуется имя", + "onboarding.create-account.failed.passwords-dont-match": "Пароли не совпадают", + "onboarding.create-account.name.input-placeholder": "Ваше имя", + "onboarding.create-account.password.input-label": "Пароль", + "onboarding.create-account.submit": "Создать", + "onboarding.create-account.submitting": "Создание", + "onboarding.create-account.subtitle": "Данные вашей учетной записи хранятся только на вашем Umbrel. Обязательно сохраните пароль, так как его нельзя восстановить.", + "onboarding.start.continue": "Начать", + "onboarding.start.subtitle": "Ваш домашний облачный сервер готов к настройке.", + "onboarding.start.title": "Добро пожаловать в umbrelOS", + "open": "Открыть", + "open-live-usage": "Открыть мониторинг", + "password": "Пароль", + "preferences": "Настройки", + "read-less": "Свернуть", + "read-more": "Читать далее", + "redirect.to-home": "Загрузка...", + "redirect.to-login": "Загрузка...", + "redirect.to-onboarding": "Загрузка...", + "remote-tor-access": "Удаленный доступ через Tor", + "reset": "Сброс", + "restart": "Перезагрузка", + "restart.confirm.submit": "Перезагрузить", + "restart.confirm.title": "Вы уверены, что хотите перезагрузить Umbrel?", + "restart.restarting": "Перезагрузка", + "restart.restarting-message": "Не обновляйте страницу и не выключайте Umbrel во время перезагрузки.", + "retry": "Повторить", + "search": "Поиск", + "settings": "Настройки", + "settings.app-store-preferences.title": "Настройки App Store", + "settings.contact-support": "Нужна помощь? Свяжитесь с поддержкой.", + "shut-down": "Выключение", + "shut-down.complete": "Выключение завершено", + "shut-down.complete-text": "Теперь можно отключить устройство от питания.", + "shut-down.confirm.submit": "Выключить", + "shut-down.confirm.title": "Вы уверены, что хотите выключить Umbrel?", + "shut-down.shutting-down": "Выключение", + "shut-down.shutting-down-message": "Не обновляйте страницу и не выключайте Umbrel во время завершения работы.", + "software-update.callout": "Не обновляйте страницу и не выключайте Umbrel во время обновления.", + "software-update.check": "Проверить обновления", + "software-update.checking": "Проверка обновлений...", + "software-update.current-running": "Текущая версия", + "software-update.failed": "Ошибка обновления", + "software-update.failed-to-check": "Не удалось проверить обновления", + "software-update.failed.retry": "Повторить", + "software-update.install-now": "Установить сейчас", + "software-update.new-version": "Доступно новое обновление {{name}}", + "software-update.on-latest": "У вас последняя версия umbrelOS", + "software-update.title": "Обновление ПО", + "software-update.updating-to": "Обновление до {{name}}", + "software-update.view": "Просмотр", + "something-left": "Осталось {{left}}", + "something-went-wrong": "⚠ Что-то пошло не так", + "start": "Запустить", + "stop": "Остановить", + "storage": "Хранилище", + "storage.full": "Хранилище заполнено", + "storage.low": "Мало места", + "temperature": "Температура", + "temperature.dangerously-hot": "Очень горячо", + "temperature.nice": "Нормально", + "temperature.normal": "Нормальная", + "temperature.too-hot-suggestion": "Рекомендуем изменить условия эксплуатации устройства.", + "temperature.warm": "Тепло", + "terminal": "Терминал", + "terminal-description": "Выполнение команд в umbrelOS или приложениях", + "terminal.app": "Приложение", + "terminal.app-description": "Выполнение команд в конкретном приложении", + "terminal.umbrelos-description": "Выполнение команд в umbrelOS", + "tor-description": "Доступ к Umbrel из любой точки через браузер Tor", + "tor.disable.description": "Это может занять несколько минут", + "tor.disable.progress": "Отключение удаленного доступа через Tor", + "tor.disable.success": "Удаленный доступ через Tor отключен", + "tor.enable.description": "Это может занять несколько минут", + "tor.enable.mobile.switch-label": "Включить удаленный доступ через Tor", + "tor.enable.submit": "Включить", + "tor.enable.success": "Удаленный доступ через Tor включен", + "tor.enable.title": "Включить удаленный доступ через Tor", + "tor.hidden-service": "Скрытый URL-адрес Tor", + "troubleshoot": "Диагностика", + "troubleshoot-description": "Диагностика проблем umbrelOS или приложений", + "troubleshoot-no-logs-yet": "Логи пока отсутствуют", + "troubleshoot-pick-title": "Диагностика", + "troubleshoot.app": "Приложение", + "troubleshoot.app-description": "Просмотр логов приложения", + "troubleshoot.app-download": "Скачать логи {{app}}", + "troubleshoot.share-with-umbrel-support": "Поделиться с поддержкой Umbrel", + "troubleshoot.system-download": "Скачать {{label}}", + "troubleshoot.umbrelos-description": "Просмотр логов umbrelOS", + "troubleshoot.umbrelos-logs": "Логи umbrelOS", + "trpc.backend-unavailable": "Ошибка: Не удалось подключиться к системному API", + "trpc.checking-backend": "Загрузка...", + "try-again": "Попробовать снова", + "umbrel": "Umbrel", + "umbrelos": "umbrelOS", + "unknown": "Неизвестно", + "unknown-app": "Неизвестное приложение", + "unknown-error": "Неизвестная ошибка", + "uptime": "Время работы", + "wallpaper": "Обои", + "wallpaper-description": "Обои и тема оформления Umbrel", + "widget.progress.in-progress": "В процессе", + "widgets.edit.select-up-to-3-widgets": "Выберите до 3 виджетов", + "widgets.install-an-app-before-using-widgets": "Установите приложение, чтобы начать настраивать домашний экран с виджетами.", + "wifi": "Wi-Fi", + "wifi-connect-insecure-message": "Открытые сети могут быть небезопасны", + "wifi-connection-failed": "Не удалось подключиться", + "wifi-dangerous-change-confirmation-description": "Смена Wi-Fi сети может разорвать соединение с Umbrel. Для повторного подключения убедитесь, что Umbrel и ваше устройство находятся в одной сети.", + "wifi-dangerous-change-confirmation-title": "Вы уверены, что хотите сменить Wi-Fi сеть?", + "wifi-dangerous-disable-confirmation-description": "Отключение Wi-Fi может разорвать соединение с Umbrel. Для повторного подключения используйте Ethernet кабель и убедитесь, что устройства в одной сети.", + "wifi-dangerous-disable-confirmation-title": "Вы уверены, что хотите отключить Wi-Fi?", + "wifi-description": "Подключение к Wi-Fi сети", + "wifi-description-long": "Ваше устройство остается подключенным к выбранной Wi-Fi сети, даже если Ethernet кабель отключен, и автоматически переподключается при запуске.", + "wifi-no-networks-message": "Wi-Fi сети не найдены", + "wifi-searching": "Поиск Wi-Fi сетей...", + "wifi-unsupported-device-description": "Wi-Fi не поддерживается на этом устройстве. Возможно отсутствует или несовместимый беспроводной адаптер.", + "wifi-view-networks": "Просмотр сетей" +} diff --git a/packages/ui/src/utils/date-time.ts b/packages/ui/src/utils/date-time.ts index f917b71f0..e6b41fb81 100644 --- a/packages/ui/src/utils/date-time.ts +++ b/packages/ui/src/utils/date-time.ts @@ -1,5 +1,5 @@ import {formatDistanceStrict, Locale} from 'date-fns' -import {de, enUS, es, fr, hu, it, ja, ko, nl, pt, tr, uk} from 'date-fns/locale' +import {de, enUS, es, fr, hu, it, ja, ko, nl, pt, tr, uk, ru} from 'date-fns/locale' // Added 'ru' here import {UNKNOWN} from '@/constants' import {SupportedLanguageCode} from '@/utils/language' @@ -21,6 +21,7 @@ export const languageCodeToDateLocale: Record = { tr: tr, ja: ja, ko: ko, + ru: ru, } export function duration(seconds: number | undefined, languageCode: SupportedLanguageCode) { diff --git a/packages/ui/src/utils/language.ts b/packages/ui/src/utils/language.ts index 6a83f3253..7b683858b 100644 --- a/packages/ui/src/utils/language.ts +++ b/packages/ui/src/utils/language.ts @@ -2,6 +2,7 @@ import {map} from 'remeda' export const languages = [ {name: 'English', code: 'en'}, + {name: 'Русский', code: 'ru'}, {name: 'Deutsch', code: 'de'}, {name: 'Español', code: 'es'}, {name: 'Français', code: 'fr'}, diff --git a/packages/ui/update-translations.js b/packages/ui/update-translations.js index 35761eb4c..eab8903e0 100644 --- a/packages/ui/update-translations.js +++ b/packages/ui/update-translations.js @@ -25,6 +25,7 @@ const englishReferenceFilePath = path.join(localesDirectory, 'en.json') const languageMapping = { en: 'English', + ru: 'Russian', de: 'German', es: 'Spanish', fr: 'French',