Files
sfera/frontend/sfera-web/src/lib/i18n.ts
T
2026-05-16 19:03:49 +03:00

581 lines
26 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.
export type UiLanguage = "ru" | "en";
export function normalizeLanguage(value: string | undefined): UiLanguage {
return value === "en" ? "en" : "ru";
}
export const messages = {
ru: {
productSubtitle: "Семантическое пространство 1С",
nav: {
overview: "Обзор",
projects: "Проекты 1С",
graph: "Граф",
objects: "Объекты",
review: "Проверка",
knowledge: "Знания",
patterns: "Паттерны",
privacy: "Приватность",
aiUsage: "Расход ИИ",
operations: "Операции",
settings: "Настройки"
},
searchPlaceholder: "Поиск по 1С объектам, процедурам, знаниям",
rights: "Права",
projectSettings: "Настройки",
createProject: "+ Проект",
notifications: "Уведомления",
profile: "Профиль",
workspaceSelector: "Компания",
projectSelector: "Проект",
environmentSelector: "Среда",
activeTaskSelector: "Задача",
languageRu: "Русский",
languageEn: "English",
commandLanguageNote: "Команды: русский по умолчанию, английский доступен",
apiOnline: "API доступен",
apiOffline: "API недоступен",
overview: "Обзор",
projects: "Проекты",
objects: "Объекты",
configurationTree: "Дерево конфигурации",
openWindows: "Открытые окна",
projectDashboard: "Обзор проекта 1С",
projectDashboardDescription: "Рабочая сводка по выбранной 1С-конфигурации: состояние, проверки, снимки и быстрый переход в открытые объекты.",
contextPanel: "Контекст",
contextInspector: "Контекстный инспектор",
owner: "Владелец",
subsystem: "Подсистема",
criticality: "Критичность",
activeTask: "Активная задача",
calls: "Вызовы",
riskContext: "Риски и изменения",
runtimeIncidents: "Инциденты выполнения",
heroBadge: "Семантическое ядро 1С",
title: "Операционный контур 1С",
subtitle: "Семантический граф, проверка, знания, приватность и управление ИИ в одном рабочем представлении.",
review: "Проверка",
graph: "Граф 1С",
knowledge: "Знания",
governance: "Управление",
aiPolicy: "Политика ИИ",
aiUsage: "Расход ИИ",
projectWorkspace: "Рабочее пространство 1С",
projectWorkspaceDescription: "Снимок, проверка, знания, UI-формы, интеграции и регламентные задания выбранного 1С-проекта.",
selectedProject: "Выбранный проект",
openProject: "Открыть проект",
openInEditor: "Открыть в редакторе",
nodes: "Узлы",
edges: "Связи",
procedures: "Процедуры",
queries: "Запросы",
writes: "Записи",
reviewFindings: "Замечания проверки",
noReviewFindings: "Замечаний нет",
severity: "Уровень",
finding: "Замечание",
source: "Источник",
forms: "Формы",
commands: "Команды",
elements: "Элементы",
integrations: "Интеграции",
scheduledJobs: "Регламентные задания",
knowledgeCoverage: "Покрытие знаниями",
covered: "Покрыто",
uncovered: "Не покрыто",
unsecuredObjects: "Без прав ролей",
unownedObjects: "Без владельца",
sensitiveFields: "Чувствительные поля",
permissionState: "Права доступа",
permissionStateDescription: "Текущий экран показывает только чтение семантического состояния; действия изменения будут требовать роли владельца проекта.",
commandPalette: "Командная строка",
commandPlaceholder: "Найти объект 1С, процедуру или команду",
savedView: "Представление",
auditTrail: "Аудит",
authoringHistory: "История изменений",
noAuthoringChanges: "Пока нет сохранённых authoring change-set",
version: "Версия",
approvedBy: "Подтвердил",
aiContext: "Контекст ИИ",
model: "Модель",
tokenImpact: "Влияние на токены",
noProjectData: "Нет данных выбранного проекта",
noProjectDataDescription: "Снимок сохранён, но проектные данные ещё не доступны для панели.",
ideWorkspace: "IDE 1С",
ideWorkspaceDescription: "Современная рабочая среда 1С: модуль, форма, свойства, события, версии, документация, знания, обучение, AI-подсказки и semantic diff.",
objectTree: "Дерево объектов",
bslEditor: "Редактор BSL",
procedureOutline: "Outline процедур",
findUsages: "Использования",
quickFixes: "Быстрые исправления",
insertGuardClause: "Вставить проверку отказа",
extractProcedure: "Выделить процедуру",
addKnowledgeLink: "Связать со знанием",
moduleMode: "Модуль",
formMode: "Форма",
propertiesMode: "Свойства",
eventsMode: "События",
versionsMode: "Версии",
documentationMode: "Документация",
knowledgeMode: "Знания",
learningMode: "Обучение",
formDesigner: "Дизайнер формы",
eventsInspector: "Инспектор событий",
knowledgeLearning: "Знания и обучение",
knowledgeLearningDescription: "AI связывает текущий объект с документацией, паттернами, историей решений и учебными материалами команды.",
postAndClose: "Провести и закрыть",
saveAndClose: "Записать и закрыть",
save: "Записать",
create: "Создать",
search: "Поиск",
emptyList: "Список пуст",
mainSection: "Основное",
nameField: "Наименование",
code: "Код",
comment: "Комментарий",
client: "Клиент",
agent: "Агент",
sites: "Сайты",
compensationTerms: "Условия возмещения",
agencyAgreements: "Агентские соглашения",
telegram: "Телеграм",
mail: "Почта",
sentToBankCompanyName: "Наименование компании, отправленное в банк",
mergeProject: "Мерч проект",
legalEntity: "Юр лицо",
result: "Результат",
author: "Автор",
editor: "Редактор",
creationDate: "Дата создания",
editDate: "Дата редактирования",
supplier: "Поставщик",
contract: "Договор",
documentNumber: "Номер",
operation: "Операция",
goods: "Товары",
services: "Услуги",
additional: "Дополнительно",
numberSign: "N",
item: "Номенклатура",
quantity: "Количество",
price: "Цена",
amount: "Сумма",
eventName: "Событие",
objectVersioningDescription: "История SFERA хранится на уровне объекта 1С: каждое изменение связано с diff, задачей, автором и rollback-точкой.",
documentationModeDescription: "Документация открывается рядом с объектом: назначение, бизнес-правила, связи с формами, отчётами, командами и регламентами.",
knowledgeModeDescription: "База знаний связывает текущий объект с паттернами команды, BSP/vendor docs, обсуждениями, решениями и известными рисками.",
learningModeDescription: "Обучение показывает, что можно безопасно написать в текущем контексте, какие переменные доступны и какие стандарты команды применимы.",
problemsPanel: "Проблемы",
outputPanel: "Вывод",
testsPanel: "Тесты",
referencesPanel: "Ссылки",
propertiesInspector: "Инспектор свойств",
semanticDiff: "Семантический diff",
aiPairProgrammer: "AI-помощник",
currentContext: "Текущий контекст",
availableVariables: "Доступные переменные",
localVariables: "Локальные переменные",
objectAttributes: "Реквизиты объекта",
tabularSections: "Табличные части",
formElements: "Элементы формы",
metadataDraft: "Черновик объекта 1С",
metadataDraftDescription: "SFERA создаёт объект как версионированный черновик workspace: реквизиты, табличные части, формы и diff без записи в production 1С.",
objectKind: "Тип объекта",
objectName: "Имя объекта",
attributeName: "Имя реквизита",
attributeType: "Тип",
tabularSectionName: "Имя табличной части",
formName: "Имя формы",
commandName: "Имя команды",
commandHandler: "Обработчик",
synonym: "Синоним",
requiredFlag: "Обязательный",
addAttribute: "Добавить реквизит",
addTabularColumn: "Добавить колонку",
addForm: "Добавить форму",
addCommand: "Добавить команду",
applyMetadataDraft: "Создать черновик",
suggestedCompletion: "Предложение продолжения",
guardedApply: "Безопасное применение",
versionPreview: "Preview версии",
affectedNodes: "Затронутые узлы",
applyBlocked: "Применение заблокировано",
workspaceApplyReady: "Можно сохранить в workspace-историю SFERA",
productionApplyDisabled: "Запись в production 1С отключена",
previewRequired: "Требуется preview",
applyToSfera: "Применить в SFERA",
rollbackPlan: "План отката",
authoringMode: "Режим разработки",
workspaceHistoryOnly: "только workspace-история SFERA",
impactBeforeApply: "Анализ влияния до применения",
reviewBeforeApply: "Проверка до применения",
versionKind: "Тип версии",
lineage: "Линия версий",
parentVersion: "Родительская версия",
versionDiff: "Diff версии",
taskLabel: "Задача",
sessionLabel: "Сессия",
fullPayload: "Полные данные",
summaryOnly: "Кратко",
loading: "Загрузка",
rootVersion: "корневая",
agentOnline: "Агент онлайн",
online: "онлайн",
offline: "офлайн",
snapshotStatus: "Снимок",
agentStatus: "Агент",
parserStatus: "Парсер",
diagnosticsStatus: "Диагностика",
taskStatus: "Задача",
privacyStatus: "Приватность",
metadataOnly: "только метаданные",
sferaProjectTree: "Дерево проекта SFERA",
sirObjects: "Объекты SIR",
aiHandlers: "AI-обработчики",
semanticRules: "Семантические правила",
reviewPolicies: "Политики проверки",
knowledgeBindings: "Связи знаний",
agentCommands: "Команды агентов",
rollbackTemplates: "Шаблоны отката",
highReviewFindings: "Критичные замечания проверки",
policyGated: "по политике доступа",
graphEdges: "Связи графа",
aiShort: "ИИ",
appliedToWorkspace: "Записано в workspace",
rolledBackToWorkspace: "Откат записан в workspace",
blocked: "заблокировано",
ready: "готово",
required: "требуется",
checked: "проверено",
applying: "Применяется...",
rollingBack: "Откатываем...",
building: "Строим...",
savedToSfera: "Записано в SFERA",
guardedApplyNote: "Безопасная запись из рабочего места SFERA IDE",
rollbackApplyNote: "План отката проверен в SFERA IDE",
aiSuggestion: "AI предлагает код с учётом текущей процедуры, переменных, регистра и прав доступа.",
editorDirty: "Есть несохранённые изменения",
readOnlyPrototype: "Preview-режим: запись только в workspace-историю SFERA.",
addLine: "Добавить строку",
removeLine: "Удалить строку",
selectedObject: "Выбранный объект",
objectOverview: "Обзор объекта",
objectOverviewDescription: "Сводка выбранного объекта 1С: структура, формы, команды, связи, риски, знания и версии.",
line: "Строка",
snapshots: "Снимки",
activeProjects: "активных проектов",
relations: "связей",
packages: "пакетов",
aiTokens: "AI токены",
requests: "запросов",
current: "актуально",
latestSnapshots: "Последние снимки SIR",
snapshotsDescription: "Проекты, доступные для проверки, графа и анализа влияния.",
open: "Открыть",
project: "Проект",
snapshot: "Снимок",
hash: "Хэш",
status: "Статус",
stored: "сохранено",
none: "нет",
noSnapshots: "Нет сохранённых снимков",
noSnapshotsDescription: "После индексации 1С-конфигурации список появится здесь.",
governanceDescription: "Контроль владельцев, приватности, расхода ИИ и покрытия знаниями.",
owners: "Владельцы",
tasks: "Задачи",
privacy: "Приватность",
tokenLimit: "Лимит токенов",
used: "Использовано",
remaining: "Осталось",
unlimited: "без лимита",
apiUnavailable: "API недоступен",
unknownApiError: "Неизвестная ошибка API"
},
en: {
productSubtitle: "1C Semantic Workspace",
nav: {
overview: "Overview",
projects: "1C Projects",
graph: "Graph",
objects: "Objects",
review: "Review",
knowledge: "Knowledge",
patterns: "Patterns",
privacy: "Privacy",
aiUsage: "AI Usage",
operations: "Operations",
settings: "Settings"
},
searchPlaceholder: "Search 1C objects, routines, knowledge",
rights: "Access",
projectSettings: "Settings",
createProject: "+ Project",
notifications: "Notifications",
profile: "Profile",
workspaceSelector: "Workspace",
projectSelector: "Project",
environmentSelector: "Env",
activeTaskSelector: "Task",
languageRu: "Русский",
languageEn: "English",
commandLanguageNote: "Commands: Russian by default, English available",
apiOnline: "API online",
apiOffline: "API offline",
overview: "Overview",
projects: "Projects",
objects: "Objects",
configurationTree: "Configuration tree",
openWindows: "Open windows",
projectDashboard: "1C project overview",
projectDashboardDescription: "Working summary for the selected 1C configuration: state, checks, snapshots, and quick jumps to open objects.",
contextPanel: "Context",
contextInspector: "Context inspector",
owner: "Owner",
subsystem: "Subsystem",
criticality: "Criticality",
activeTask: "Active task",
calls: "Calls",
riskContext: "Risks and changes",
runtimeIncidents: "Runtime incidents",
heroBadge: "1C semantic core",
title: "1C Operational Workspace",
subtitle: "Semantic graph, review, knowledge, privacy, and AI governance in one working view.",
review: "Review",
graph: "1C Graph",
knowledge: "Knowledge",
governance: "Governance",
aiPolicy: "AI policy",
aiUsage: "AI usage",
projectWorkspace: "1C Workspace",
projectWorkspaceDescription: "Snapshot, review, knowledge, UI forms, integrations, and scheduled jobs for the selected 1C project.",
selectedProject: "Selected project",
openProject: "Open project",
openInEditor: "Open in editor",
nodes: "Nodes",
edges: "Edges",
procedures: "Procedures",
queries: "Queries",
writes: "Writes",
reviewFindings: "Review findings",
noReviewFindings: "No findings",
severity: "Severity",
finding: "Finding",
source: "Source",
forms: "Forms",
commands: "Commands",
elements: "Elements",
integrations: "Integrations",
scheduledJobs: "Scheduled jobs",
knowledgeCoverage: "Knowledge coverage",
covered: "Covered",
uncovered: "Uncovered",
unsecuredObjects: "No role access",
unownedObjects: "No owner",
sensitiveFields: "Sensitive fields",
permissionState: "Permissions",
permissionStateDescription: "This screen currently exposes read-only semantic state; mutation actions will require the project owner role.",
commandPalette: "Command line",
commandPlaceholder: "Find a 1C object, routine, or command",
savedView: "View",
auditTrail: "Audit",
authoringHistory: "Change history",
noAuthoringChanges: "No saved authoring change sets yet",
version: "Version",
approvedBy: "Approved by",
aiContext: "AI context",
model: "Model",
tokenImpact: "Token impact",
noProjectData: "No selected project data",
noProjectDataDescription: "The snapshot is stored, but project details are not yet available to the panel.",
ideWorkspace: "1C IDE",
ideWorkspaceDescription: "A modern 1C workspace: module, form, properties, events, versions, docs, knowledge, training, AI suggestions, and semantic diff.",
objectTree: "Object tree",
bslEditor: "BSL editor",
procedureOutline: "Procedure outline",
findUsages: "Find usages",
quickFixes: "Quick fixes",
insertGuardClause: "Insert guard clause",
extractProcedure: "Extract procedure",
addKnowledgeLink: "Link knowledge",
moduleMode: "Module",
formMode: "Form",
propertiesMode: "Properties",
eventsMode: "Events",
versionsMode: "Versions",
documentationMode: "Docs",
knowledgeMode: "Knowledge",
learningMode: "Training",
formDesigner: "Form designer",
eventsInspector: "Events inspector",
knowledgeLearning: "Knowledge and training",
knowledgeLearningDescription: "AI links the current object with docs, patterns, decision history, and team learning material.",
postAndClose: "Post and close",
saveAndClose: "Save and close",
save: "Save",
create: "Create",
search: "Search",
emptyList: "List is empty",
mainSection: "Main",
nameField: "Name",
code: "Code",
comment: "Comment",
client: "Client",
agent: "Agent",
sites: "Sites",
compensationTerms: "Compensation terms",
agencyAgreements: "Agency agreements",
telegram: "Telegram",
mail: "Mail",
sentToBankCompanyName: "Company name sent to bank",
mergeProject: "Merge project",
legalEntity: "Legal entity",
result: "Result",
author: "Author",
editor: "Editor",
creationDate: "Creation date",
editDate: "Edit date",
supplier: "Supplier",
contract: "Contract",
documentNumber: "Number",
operation: "Operation",
goods: "Goods",
services: "Services",
additional: "Additional",
numberSign: "No.",
item: "Item",
quantity: "Quantity",
price: "Price",
amount: "Amount",
eventName: "Event",
objectVersioningDescription: "SFERA history is stored at the 1C object level: every change is linked to a diff, task, author, and rollback point.",
documentationModeDescription: "Documentation opens next to the object: purpose, business rules, links with forms, reports, commands, and jobs.",
knowledgeModeDescription: "The knowledge base links the current object with team patterns, BSP/vendor docs, discussions, decisions, and known risks.",
learningModeDescription: "Training shows what can be safely written in the current context, which variables are available, and which team standards apply.",
problemsPanel: "Problems",
outputPanel: "Output",
testsPanel: "Tests",
referencesPanel: "References",
propertiesInspector: "Properties inspector",
semanticDiff: "Semantic diff",
aiPairProgrammer: "AI pair programmer",
currentContext: "Current context",
availableVariables: "Available variables",
localVariables: "Local variables",
objectAttributes: "Object attributes",
tabularSections: "Tabular sections",
formElements: "Form elements",
metadataDraft: "1C object draft",
metadataDraftDescription: "SFERA creates the object as a versioned workspace draft: attributes, tabular sections, forms, and diff without writing to production 1C.",
objectKind: "Object kind",
objectName: "Object name",
attributeName: "Attribute name",
attributeType: "Type",
tabularSectionName: "Tabular section name",
formName: "Form name",
commandName: "Command name",
commandHandler: "Handler",
synonym: "Synonym",
requiredFlag: "Required",
addAttribute: "Add attribute",
addTabularColumn: "Add column",
addForm: "Add form",
addCommand: "Add command",
applyMetadataDraft: "Create draft",
suggestedCompletion: "Suggested completion",
guardedApply: "Guarded apply",
versionPreview: "Version preview",
affectedNodes: "Affected nodes",
applyBlocked: "Apply blocked",
workspaceApplyReady: "Ready to save into SFERA workspace history",
productionApplyDisabled: "Production 1C write is disabled",
previewRequired: "Preview required",
applyToSfera: "Apply to SFERA",
rollbackPlan: "Rollback plan",
authoringMode: "Authoring mode",
workspaceHistoryOnly: "SFERA workspace history only",
impactBeforeApply: "Impact before apply",
reviewBeforeApply: "Review before apply",
versionKind: "Version kind",
lineage: "Lineage",
parentVersion: "Parent version",
versionDiff: "Version diff",
taskLabel: "Task",
sessionLabel: "Session",
fullPayload: "Full payload",
summaryOnly: "Summary",
loading: "Loading",
rootVersion: "root",
agentOnline: "Agent online",
online: "online",
offline: "offline",
snapshotStatus: "Snapshot",
agentStatus: "Agent",
parserStatus: "Parser",
diagnosticsStatus: "Diagnostics",
taskStatus: "Task",
privacyStatus: "Privacy",
metadataOnly: "metadata-only",
sferaProjectTree: "SFERA Project",
sirObjects: "SIR objects",
aiHandlers: "AI handlers",
semanticRules: "Semantic rules",
reviewPolicies: "Review policies",
knowledgeBindings: "Knowledge bindings",
agentCommands: "Agent commands",
rollbackTemplates: "Rollback templates",
highReviewFindings: "Review HIGH findings",
policyGated: "policy-gated",
graphEdges: "Graph edges",
aiShort: "AI",
appliedToWorkspace: "Applied to workspace",
rolledBackToWorkspace: "Rolled back to workspace",
blocked: "blocked",
ready: "ready",
required: "required",
checked: "checked",
applying: "Applying...",
rollingBack: "Rolling back...",
building: "Loading...",
savedToSfera: "Saved to SFERA",
guardedApplyNote: "Guarded apply from SFERA IDE workbench",
rollbackApplyNote: "Rollback preview checked in SFERA IDE",
aiSuggestion: "AI suggests code using the current routine, variables, register, and access context.",
editorDirty: "Unsaved changes",
readOnlyPrototype: "Preview mode: writes only to SFERA workspace history.",
addLine: "Add line",
removeLine: "Remove line",
selectedObject: "Selected object",
objectOverview: "Object overview",
objectOverviewDescription: "Summary of the selected 1C object: structure, forms, commands, links, risks, knowledge, and versions.",
line: "Line",
snapshots: "Snapshots",
activeProjects: "active projects",
relations: "relations",
packages: "packs",
aiTokens: "AI tokens",
requests: "requests",
current: "current",
latestSnapshots: "Latest SIR snapshots",
snapshotsDescription: "Projects available for review, graph, and impact analysis.",
open: "Open",
project: "Project",
snapshot: "Snapshot",
hash: "Hash",
status: "Status",
stored: "stored",
none: "none",
noSnapshots: "No stored snapshots",
noSnapshotsDescription: "Indexed 1C configurations will appear here.",
governanceDescription: "Owners, privacy, AI usage, and knowledge coverage controls.",
owners: "Owners",
tasks: "Tasks",
privacy: "Privacy",
tokenLimit: "Token limit",
used: "Used",
remaining: "Remaining",
unlimited: "unlimited",
apiUnavailable: "API unavailable",
unknownApiError: "Unknown API error"
}
} as const;