Newer
Older
gnexus-creds / frontend / src / i18n / messages / ru.js
// Russian dictionary — same slugs as en.js; a missing slug falls back to English.
export default {
  "nav.secrets": "Секреты",
  "nav.history": "История",
  "nav.audit": "Аудит",
  "nav.tokens": "Токены",
  "nav.extension": "Расширение",
  "login.title": "Добро пожаловать в GNEXUS CREDS",
  "login.subtitle": "Войдите, чтобы получить доступ к секретам",
  "login.action": "Войти через GNEXUS",
  "nav.settings": "Настройки",
  "nav.admin": "Админ",

  "common.loading": "Загрузка",
  "common.error": "Ошибка",
  "common.cancel": "Отмена",
  "common.close": "Закрыть",
  "common.delete": "Удалить",
  "common.download": "Скачать",
  "common.restore": "Восстановить",
  "common.revoke": "Отозвать",
  "common.save": "Сохранить",
  "common.refresh": "Обновить",
  "common.notSet": "Не задано",
  "common.uncategorized": "без категории",
  "common.user": "Пользователь",
  "common.hide": "Скрыть",
  "common.reveal": "Раскрыть",
  "common.records": "записей: {n}", // «{n} записей» ломает плюрализацию, эта форма короче и безопасна
  "profile.logout": "Выйти",
  "profile.languageAuto": "Авто (из аккаунта)",
  "profile.langEn": "English",
  "profile.langUk": "Українська",
  "profile.langRu": "Русский",
  "profile.saved": "Профиль обновлён.",

  "secrets.searchPlaceholder": "сервис, логин, тег, источник",
  "secrets.sort": "Сортировка",
  "secrets.sortUpdatedNewest": "Обновление (сначала новые)",
  "secrets.sortUpdatedOldest": "Обновление (сначала старые)",
  "secrets.sortTitleAz": "Название (А–Я)",
  "secrets.sortTitleZa": "Название (Я–А)",
  "secrets.sortStatus": "Статус",
  "secrets.create": "Создать",
  "secrets.empty": "Секретов пока нет",
  "secrets.emptyText": "Создайте первую запись кнопкой «Создать».",
  "secrets.openSecret": "Открыть секрет",

  "col.title": "Название",
  "col.purpose": "Назначение",
  "col.category": "Категория",
  "col.status": "Статус",
  "col.name": "Название",
  "col.scopes": "Scopes",
  "col.user": "Пользователь",
  "col.role": "Роль",
  "col.lastSeen": "Последняя активность",
  "col.time": "Время",
  "col.action": "Действие",
  "col.channel": "Канал",
  "col.ip": "IP",
  "col.metadata": "Метаданные",
  "col.file": "Файл",
  "col.size": "Размер",
  "col.created": "Создан",
  "col.publicId": "Публичный ID",
  "col.lastUsed": "Последнее использование",

  "detail.purpose": "Назначение",
  "detail.category": "Категория",
  "detail.tags": "Теги",
  "detail.noTags": "Нет тегов",
  "detail.access": "Доступ",
  "detail.accessState": "UI {ui} · REST {rest} · MCP {mcp}",
  "detail.on": "вкл",
  "detail.off": "выкл",
  "detail.encrypted": "зашифровано",
  "detail.plain": "открыто",
  "detail.versions": "Версии",
  "detail.editFields": "Изменить поля",
  "detail.markOutdated": "Пометить устаревшим",
  "detail.markActual": "Пометить актуальным",
  "detail.archive": "В архив",
  "detail.deleteAction": "Удалить",
  "detail.maskValues": "Замаскировать значения",
  "detail.showValues": "Показать расшифрованные значения",
  "detail.hideSecret": "Скрыть секрет",
  "detail.revealSecret": "Раскрыть секрет",
  "detail.editMetadata": "Изменить метаданные",
  "detail.secretActions": "Действия с секретом",
  "detail.backToList": "К списку",
  "detail.selectSecret": "Выберите секрет",
  "detail.selectSecretText": "Метаданные показываются сразу. Значения доступны после раскрытия.",
  "detail.revealedFields": "Раскрытые поля",
  "detail.hideValue": "Скрыть значение",
  "detail.showValue": "Показать значение",
  "detail.hideFieldValue": "Скрыть значение поля",
  "detail.showFieldValue": "Показать значение поля",

  "history.toolbar": "История версий",
  "history.selectSecret": "Сначала выберите секрет на вкладке «Секреты»",
  "history.version": "Версия {n}",
  "history.fields": { one: "{n} поле", few: "{n} поля", many: "{n} полей" },
  "history.noVersions": "Нет версий",
  "history.noVersionsText": "Выберите секрет и откройте его историю, чтобы увидеть версии.",

  "audit.toolbar": "Аудит",
  "audit.allSecrets": "Все секреты",
  "audit.empty": "Нет событий аудита",
  "audit.emptyText": "События появятся здесь после первых действий.",

  "tokens.toolbar": "API-токены",
  "tokens.create": "Создать токен",
  "tokens.intro": "API-токены позволяют внешним клиентам и MCP-инструментам работать с gnexus-creds без браузерной сессии. Выберите понятное название и нужные scopes.",
  "tokens.tokenName": "Название токена",
  "tokens.scopeRead": "Чтение",
  "tokens.scopeReveal": "Раскрытие",
  "tokens.scopeWrite": "Запись",
  "tokens.scopeAdmin": "Админ",
  "tokens.token": "Токен",
  "tokens.copyNotice": "Скопируйте токен сейчас — он больше не будет показан.",
  "tokens.empty": "Нет токенов",
  "tokens.emptyText": "Создайте API-токен, чтобы работать с секретами программно.",
  "tokens.revokeTitle": "Отозвать токен",
  "tokens.revokeText": "Токен '{name}' будет отозван навсегда. Он больше не подойдёт для API и MCP.",

  "extension.toolbar": "Браузерное расширение",
  "extension.description": "Автозаполнение сохранённых данных, захват новых логинов и просмотр секретов прямо из панели. Скачайте сборку для своего браузера, подключите её в распакованном виде и укажите этот сервер и API-токен.",
  "extension.download": "Скачать сборку {browser}",
  "extension.createToken": "Создать API-токен",
  "extension.loadFailed": "Не удалось загрузить сведения о расширении.",

  "settings.overview": "Обзор хранилища",
  "settings.totalSecrets": "Всего секретов",
  "settings.activeSecrets": "Активные секреты",
  "settings.mcpEnabled": "MCP включено",
  "settings.languageToolbar": "Язык интерфейса",
  "settings.languageDescription": "По умолчанию сервис следует языку аккаунта gnexus-auth; выбор здесь перекрывает его только для gnexus-creds. «Авто» возвращает язык аккаунта.",
  "settings.importToolbar": "Импорт данных",
  "settings.importTitle": "Импорт JSON",
  "settings.importDescription": "Поддерживаются только JSON-файлы экспорта gnexus-creds.",
  "settings.importPrimary": "Выбрать файл экспорта",
  "settings.importSecondary": "Файл разбирается локально перед импортом.",
  "settings.importAction": "Импортировать выбранный файл",
  "settings.importReady": "секретов готово: {n}",
  "settings.exportToolbar": "Экспорт данных",
  "settings.exportDescription": "Экспортирует все секреты как расшифрованный JSON. Храните файл в надёжном месте — он содержит значения открытым текстом.",
  "settings.exportAction": "Экспортировать расшифрованный JSON",
  "settings.gateToolbar": "Биометрическая защита",
  "settings.gateDescription": "Требует отпечаток (Android), Touch ID или Windows Hello перед каждым раскрытием секрета. Проверка выполняется целиком в этом браузере — сервер не видит биометрических данных. Для выключения нужно то же подтверждение, поэтому защиту нельзя снять с безнадзорной сессии.",
  "settings.gateUnavailable": "Биометрическая аутентификация на этом устройстве недоступна.",
  "settings.gateBroken": "Созданный passkey больше не на этом устройстве. Зарегистрируйте защиту заново, чтобы восстановить её.",
  "settings.gateDisable": "Выключить биометрическую защиту",
  "settings.gateEnable": "Включить биометрическую защиту",
  "settings.dangerToolbar": "Опасная зона",
  "settings.dangerDescription": "Удаление всех данных стирает каждый секрет и версию. Записи аудита и API-токены сохраняются.",
  "settings.deleteAll": "Удалить все данные",

  "bio.gateTitle": "Биометрическая защита",
  "bio.canceled": "Отменено",
  "bio.canceledText": "Биометрическая проверка отменена — ничего не раскрыто.",
  "bio.noCredential": "Passkey на этом устройстве не найден — зарегистрируйте защиту заново в Настройках.",
  "bio.failedText": "Проверка не пройдена — секрет не раскрыт.",
  "bio.stayOnCanceled": "Отменено — защита остаётся включённой.",
  "bio.stayOnFailed": "Проверка не пройдена — защита остаётся включённой.",
  "bio.disabled": "Биометрическая защита выключена — раскрытия больше не требуют проверки.",
  "bio.enabled": "Биометрическая защита включена — каждое раскрытие спросит сенсор.",
  "bio.enrollCanceled": "Регистрация отменена — защита остаётся выключенной.",
  "bio.enrollFailed": "Регистрация не удалась.",
  "bio.saved": "Сохранено",

  "admin.usersToolbar": "Пользователи",
  "admin.refresh": "Обновить",
  "admin.checkDiagnostics": "Проверить диагностику",
  "admin.noUsers": "Нет пользователей",
  "admin.noUsersText": "Пользователи появятся здесь после входа.",
  "admin.backups": "Резервные копии",
  "admin.createBackup": "Создать копию",
  "admin.noBackups": "Нет копий",
  "admin.noBackupsText": "Создайте резервную копию перед крупными изменениями.",
  "admin.noBackupsYet": "Копий пока нет",

  "confirm.deleteAllTitle": "Удалить все данные",
  "confirm.deleteAllText": "Это навсегда удаляет все секреты и версии. Записи аудита остаются.",
  "confirm.deleteSecretTitle": "Удалить секрет",
  "confirm.deleteSecretText": "Это навсегда удаляет «{title}» и все его версии. Записи аудита остаются.",
  "confirm.restoreTitle": "Восстановить базу",
  "confirm.restoreText": "Текущая база будет перезаписана файлом {file}. Все существующие данные будут заменены.",

  "toast.deleted": "Удалено",
  "toast.allDataRemoved": "Все данные удалены.",
  "toast.backup": "Копия",
  "toast.backupCreated": "Резервная копия базы создана.",
  "toast.restored": "Восстановлено",
  "toast.databaseRestored": "База восстановлена. Пожалуйста, перезагрузите страницу.",

  "create.title": "Создать секрет",
  "create.titleHelp": "Понятное название для списков и поиска.",
  "create.purposeHelp": "Сервис, сервер, аккаунт или другое назначение секрета.",
  "create.categoryHelp": "Одна группа для навигации, например work или banking.",
  "create.sourceHelp": "Откуда секрет: человек, импорт, задача или заметка.",
  "create.tagsHelp": "Ключевые слова для поиска.",
  "create.notesHelp": "Короткий контекст к секрету. Ограничено 140 символами.",
  "create.fieldsTitle": "Поля",
  "create.fieldsMeta": "Одна строка на значение секрета",
  "create.addField": "Добавить поле",
  "create.fieldsHelp": "Добавляйте по одной строке на значение. Для паролей, токенов, PIN-ов и ключей включите шифрование.",
  "create.fieldName": "Название поля",
  "create.fieldNameHelp": "Название попадает в ответы API и MCP, например username.",
  "create.fieldValue": "Значение",
  "create.fieldValueHelp": "Реальное значение этого поля.",
  "create.encrypt": "Шифровать",
  "create.removeField": "Убрать поле",
  "create.accessTitle": "Доступ",
  "create.accessMeta": "Общие каналы для этого секрета",
  "create.accessMetaEdit": "Общие каналы доступности этого секрета",
  "create.channelUi": "UI",
  "create.channelRest": "REST API",
  "create.channelMcp": "MCP",
  "create.uiInfo": "Доступно в веб-интерфейсе после входа.",
  "create.restInfo": "Доступно внешним клиентам с API-токенами.",
  "create.mcpInfo": "Доступно MCP-клиентам, если scopes токена позволяют.",
  "create.statusTitle": "Статус",
  "create.statusMeta": "Метаданные для списков и фильтров",
  "create.statusActual": "Актуальный",
  "create.statusOutdated": "Устаревший",
  "create.archived": "В архиве",
  "create.saveMetadata": "Сохранить метаданные",
  "create.saveNewVersion": "Сохранить новую версию",
  "create.sourceLabel": "Источник",
  "create.notesLabel": "Заметки",
  "create.fieldsLabel": "Поля",

  "import.unsupportedFile": "Неподдерживаемый файл импорта",
};