krona-front/src/features/control-center/locales/ru.ts

158 lines
7.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { OperatorRole, ServerStatus, SubscriptionStatus, IncidentSeverity, IncidentStatus, AuditActionType } from '../contracts';
export const RU_ROLES: Record<OperatorRole, { label: string; shortLabel: string; description: string }> = {
platform_owner: {
label: 'Владелец платформы',
shortLabel: 'Владелец',
description: 'Полный доступ ко всей инфраструктуре, биллингу, лицензиям и управлению платформой',
},
platform_admin: {
label: 'Администратор платформы',
shortLabel: 'Админ',
description: 'Управление организациями, инсталляциями, серверами и техническими параметрами',
},
support_operator: {
label: 'Оператор поддержки',
shortLabel: 'Поддержка',
description: 'Диагностика организаций, сброс кэша, техническая помощь и расследования',
},
billing_manager: {
label: 'Менеджер биллинга',
shortLabel: 'Биллинг',
description: 'Финансовые показатели, тарифы, подписки, продления и льготные периоды',
},
security_auditor: {
label: 'Аудитор безопасности',
shortLabel: 'Аудитор',
description: 'Только чтение: сквозной журнал аудита (SHA-256), события безопасности и логи',
},
release_manager: {
label: 'Релиз-инженер',
shortLabel: 'Релизы',
description: 'Управление версиями модулей, каталогом расширений и плановыми обновлениями',
},
};
export const RU_SERVER_STATUS: Record<ServerStatus, { label: string; badgeVariant: 'success' | 'warning' | 'danger' | 'neutral' }> = {
healthy: { label: 'Работает нормально', badgeVariant: 'success' },
degraded: { label: 'Работает с ограничениями', badgeVariant: 'warning' },
offline: { label: 'Недоступен', badgeVariant: 'danger' },
};
export const RU_SUBSCRIPTION_STATUS: Record<SubscriptionStatus, { label: string; badgeVariant: 'success' | 'warning' | 'danger' | 'info' | 'neutral' }> = {
trial: { label: 'Пробный период', badgeVariant: 'info' },
active: { label: 'Активна', badgeVariant: 'success' },
grace: { label: 'Льготный период', badgeVariant: 'warning' },
suspended: { label: 'Приостановлена', badgeVariant: 'danger' },
canceled: { label: 'Отменена', badgeVariant: 'neutral' },
};
export const RU_INCIDENT_SEVERITY: Record<IncidentSeverity, { label: string; short: string }> = {
P0_CRITICAL: { label: 'P0 Критическая авария', short: 'P0 Критическая' },
P1_MAJOR: { label: 'P1 Серьёзный инцидент', short: 'P1 Серьёзный' },
P2_DEGRADED: { label: 'P2 Ограничение работы', short: 'P2 Деградация' },
P3_INFO: { label: 'P3 Информационный', short: 'P3 Инфо' },
};
export const RU_INCIDENT_STATUS: Record<IncidentStatus, string> = {
investigating: 'Расследуется',
identified: 'Локализован',
monitoring: 'Мониторинг устранения',
resolved: 'Устранён',
};
export const RU_AUDIT_ACTION: Record<AuditActionType, string> = {
suspend_tenant: 'Приостановка организации',
resume_tenant: 'Возобновление организации',
drain_node: 'Вывод сервера на обслуживание (Drain)',
enable_maintenance: 'Включение режима тех. обслуживания',
disable_maintenance: 'Выключение режима тех. обслуживания',
grant_grace_period: 'Предоставление льготного периода',
restart_gateway: 'Перезапуск шлюза обмена',
invalidate_cache: 'Инвалидация распределённого кэша',
rollback_module: 'Откат версии модуля',
circuit_breaker_trip: 'Аварийное срабатывание Circuit Breaker',
circuit_breaker_reset: 'Восстановление связи мониторинга',
};
export const RU_MODULE_CATEGORY: Record<string, string> = {
core: 'Базовые модули',
trade: 'Торговля и продажи',
kitchen: 'Кухня и производство',
finance: 'Финансы и учёт',
management: 'Управление персоналом',
analytics: 'Аналитика и AI',
};
export const RU_PLATFORMS: Record<string, string> = {
web: 'Веб-версия',
desktop: 'Компьютеры (Desktop)',
android: 'Android-устройства',
};
export const RU_THEMES = {
'soft-light': 'Мягкая светлая',
light: 'Классическая светлая',
dark: 'Тёмная',
} as const;
export const RU_UI = {
brand: 'Krona Control Center',
tagline: 'Кабинет оператора платформы',
scope: 'Контур платформы',
productionScope: 'Боевой контур (Production)',
gateTitle: 'Защита доступа оператора',
gateSubtitle: 'Демонстрационный стенд закрытого кабинета оператора платформы',
gatePinPlaceholder: 'Введите код доступа (например: krona2026 или 8492)...',
gateSubmit: 'Войти в консоль оператора',
gateDemoLogin: 'Быстрый демо-вход в 1 клик (Режим ревьюера)',
gateError: 'Неверный код доступа. Попробуйте krona2026 или 8492.',
forbiddenTitle: 'Доступ ограничен политикой безопасности',
forbiddenDescription: 'У текущей роли оператора недостаточно прав для выполнения этого действия.',
forbiddenBack: 'Вернуться в Обзор',
nav: {
overview: 'Обзор',
organizations: 'Организации',
incidents: 'Инциденты',
servers: 'Серверы',
more: 'Ещё',
billing: 'Подписки и платежи',
modules: 'Каталог модулей',
installations: 'Установки',
announcements: 'Оповещения',
audit: 'Журнал аудита',
settings: 'Настройки оператора',
},
overviewTabs: {
attention: 'Требует внимания',
metrics: 'Показатели',
infrastructure: 'Инфраструктура',
},
filters: {
title: 'Фильтры',
apply: 'Применить',
reset: 'Сбросить фильтры',
searchPlaceholder: 'Поиск...',
statusAll: 'Все статусы',
roleAll: 'Все роли',
},
inspector: {
title: 'Инспектор объекта 360°',
tabOverview: 'Сводка',
tabModules: 'Модули',
tabInstallations: 'Установки',
tabBilling: 'Биллинг',
close: 'Закрыть',
},
system: {
synced: 'Синхронизировано',
syncing: 'Синхронизация...',
nodeLabel: 'Узел',
resetDemo: 'Сбросить демоданные',
simulateOutage: 'Имитировать сбой мониторинга',
restoreMonitoring: 'Восстановить мониторинг',
themeLabel: 'Тема оформления',
exitToClient: 'Перейти в Krona Business OS',
operatorProfile: 'Профиль оператора',
},
};