fix tax log
This commit is contained in:
83
frontend/src/lib/i18n/index.ts
Normal file
83
frontend/src/lib/i18n/index.ts
Normal file
@@ -0,0 +1,83 @@
|
||||
// [DEF:i18n:Module]
|
||||
//
|
||||
// @TIER: STANDARD
|
||||
// @SEMANTICS: i18n, localization, svelte-store, translation
|
||||
// @PURPOSE: Centralized internationalization management using Svelte stores.
|
||||
// @LAYER: Infra
|
||||
// @RELATION: DEPENDS_ON -> locales/ru.json
|
||||
// @RELATION: DEPENDS_ON -> locales/en.json
|
||||
//
|
||||
// @INVARIANT: Locale must be either 'ru' or 'en'.
|
||||
// @INVARIANT: Persistence is handled via LocalStorage.
|
||||
|
||||
// [SECTION: IMPORTS]
|
||||
import { writable, derived } from 'svelte/store';
|
||||
import ru from './locales/ru.json';
|
||||
import en from './locales/en.json';
|
||||
// [/SECTION: IMPORTS]
|
||||
|
||||
const translations = { ru, en };
|
||||
type Locale = keyof typeof translations;
|
||||
|
||||
/**
|
||||
* @purpose Determines the starting locale.
|
||||
* @returns {Locale}
|
||||
*/
|
||||
const getInitialLocale = (): Locale => {
|
||||
if (typeof localStorage !== 'undefined') {
|
||||
const saved = localStorage.getItem('locale');
|
||||
if (saved === 'ru' || saved === 'en') return saved as Locale;
|
||||
}
|
||||
return 'ru';
|
||||
};
|
||||
|
||||
// [DEF:locale:Store]
|
||||
/**
|
||||
* @purpose Holds the current active locale string.
|
||||
* @side_effect Writes to LocalStorage on change.
|
||||
*/
|
||||
export const locale = writable<Locale>(getInitialLocale());
|
||||
|
||||
if (typeof localStorage !== 'undefined') {
|
||||
locale.subscribe((val) => localStorage.setItem('locale', val));
|
||||
}
|
||||
// [/DEF:locale:Store]
|
||||
|
||||
// [DEF:t:Store]
|
||||
/**
|
||||
* @purpose Derived store providing the translation dictionary.
|
||||
* @relation BINDS_TO -> locale
|
||||
*/
|
||||
export const t = derived(locale, ($locale) => {
|
||||
const dictionary = (translations[$locale] || translations.ru) as any;
|
||||
return dictionary;
|
||||
});
|
||||
// [/DEF:t:Store]
|
||||
|
||||
// [DEF:_:Function]
|
||||
/**
|
||||
* @purpose Get translation by key path.
|
||||
* @param key - Translation key path (e.g., 'nav.dashboard')
|
||||
* @returns Translation string or key if not found
|
||||
*/
|
||||
export function _(key: string): string {
|
||||
const currentLocale = getInitialLocale();
|
||||
const dictionary = (translations[currentLocale] || translations.ru) as any;
|
||||
|
||||
// Navigate through nested keys
|
||||
const keys = key.split('.');
|
||||
let value: any = dictionary;
|
||||
|
||||
for (const k of keys) {
|
||||
if (value && typeof value === 'object' && k in value) {
|
||||
value = value[k];
|
||||
} else {
|
||||
return key; // Return key if translation not found
|
||||
}
|
||||
}
|
||||
|
||||
return typeof value === 'string' ? value : key;
|
||||
}
|
||||
// [/DEF:_:Function]
|
||||
|
||||
// [/DEF:i18n:Module]
|
||||
337
frontend/src/lib/i18n/locales/en.json
Normal file
337
frontend/src/lib/i18n/locales/en.json
Normal file
@@ -0,0 +1,337 @@
|
||||
{
|
||||
"common": {
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"edit": "Edit",
|
||||
"loading": "Loading...",
|
||||
"error": "Error",
|
||||
"success": "Success",
|
||||
"actions": "Actions",
|
||||
"search": "Search...",
|
||||
"logout": "Logout",
|
||||
"refresh": "Refresh",
|
||||
"retry": "Retry"
|
||||
},
|
||||
"nav": {
|
||||
"dashboard": "Dashboard",
|
||||
"dashboards": "Dashboards",
|
||||
"datasets": "Datasets",
|
||||
"overview": "Overview",
|
||||
"all_datasets": "All Datasets",
|
||||
"storage": "Storage",
|
||||
"backups": "Backups",
|
||||
"repositories": "Repositories",
|
||||
"migration": "Migration",
|
||||
"git": "Git",
|
||||
"tasks": "Tasks",
|
||||
"settings": "Settings",
|
||||
"tools": "Tools",
|
||||
"tools_search": "Dataset Search",
|
||||
"tools_mapper": "Dataset Mapper",
|
||||
"tools_backups": "Backup Manager",
|
||||
"tools_debug": "System Debug",
|
||||
"tools_storage": "File Storage",
|
||||
"tools_llm": "LLM Tools",
|
||||
"settings_general": "General Settings",
|
||||
"settings_connections": "Connections",
|
||||
"settings_git": "Git Integration",
|
||||
"settings_environments": "Environments",
|
||||
"settings_storage": "Storage",
|
||||
"admin": "Admin",
|
||||
"admin_users": "User Management",
|
||||
"admin_roles": "Role Management",
|
||||
"admin_settings": "ADFS Configuration",
|
||||
"admin_llm": "LLM Providers"
|
||||
},
|
||||
"llm": {
|
||||
"providers_title": "LLM Providers",
|
||||
"add_provider": "Add Provider",
|
||||
"edit_provider": "Edit Provider",
|
||||
"new_provider": "New Provider",
|
||||
"name": "Name",
|
||||
"type": "Type",
|
||||
"base_url": "Base URL",
|
||||
"api_key": "API Key",
|
||||
"default_model": "Default Model",
|
||||
"active": "Active",
|
||||
"test": "Test",
|
||||
"testing": "Testing...",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"connection_success": "Connection successful!",
|
||||
"connection_failed": "Connection failed: {error}",
|
||||
"no_providers": "No providers configured.",
|
||||
"doc_preview_title": "Documentation Preview",
|
||||
"dataset_desc": "Dataset Description",
|
||||
"column_doc": "Column Documentation",
|
||||
"apply_doc": "Apply Documentation",
|
||||
"applying": "Applying..."
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
"language": "Language",
|
||||
"appearance": "Appearance",
|
||||
"connections": "Connections",
|
||||
"environments": "Environments",
|
||||
"global_title": "Global Settings",
|
||||
"env_title": "Superset Environments",
|
||||
"env_warning": "No Superset environments configured. You must add at least one environment to perform backups or migrations.",
|
||||
"env_add": "Add Environment",
|
||||
"env_edit": "Edit Environment",
|
||||
"env_default": "Default Environment",
|
||||
"env_test": "Test",
|
||||
"env_delete": "Delete",
|
||||
"storage_title": "File Storage Configuration",
|
||||
"storage_root": "Storage Root Path",
|
||||
"storage_backup_pattern": "Backup Directory Pattern",
|
||||
"storage_repo_pattern": "Repository Directory Pattern",
|
||||
"storage_filename_pattern": "Filename Pattern",
|
||||
"storage_preview": "Path Preview",
|
||||
"environments": "Superset Environments",
|
||||
"env_description": "Configure Superset environments for dashboards and datasets.",
|
||||
"env_add": "Add Environment",
|
||||
"env_actions": "Actions",
|
||||
"env_test": "Test",
|
||||
"env_delete": "Delete",
|
||||
"connections_description": "Configure database connections for data mapping.",
|
||||
"llm_description": "Configure LLM providers for dataset documentation.",
|
||||
"logging": "Logging Configuration",
|
||||
"logging_description": "Configure logging and task log levels.",
|
||||
"storage_description": "Configure file storage paths and patterns.",
|
||||
"save_success": "Settings saved",
|
||||
"save_failed": "Failed to save settings"
|
||||
},
|
||||
"git": {
|
||||
"management": "Git Management",
|
||||
"branch": "Branch",
|
||||
"actions": "Actions",
|
||||
"sync": "Sync from Superset",
|
||||
"commit": "Commit Changes",
|
||||
"pull": "Pull",
|
||||
"push": "Push",
|
||||
"deployment": "Deployment",
|
||||
"deploy": "Deploy to Environment",
|
||||
"history": "Commit History",
|
||||
"no_commits": "No commits yet",
|
||||
"refresh": "Refresh",
|
||||
"new_branch": "New Branch",
|
||||
"create": "Create",
|
||||
"init_repo": "Initialize Repository",
|
||||
"remote_url": "Remote Repository URL",
|
||||
"server": "Git Server",
|
||||
"not_linked": "This dashboard is not yet linked to a Git repository.",
|
||||
"manage": "Manage Git",
|
||||
"generate_message": "Generate"
|
||||
},
|
||||
"dashboard": {
|
||||
"search": "Search dashboards...",
|
||||
"title": "Title",
|
||||
"last_modified": "Last Modified",
|
||||
"status": "Status",
|
||||
"git": "Git",
|
||||
"showing": "Showing {start} to {end} of {total} dashboards",
|
||||
"previous": "Previous",
|
||||
"next": "Next",
|
||||
"no_dashboards": "No dashboards found in this environment.",
|
||||
"select_source": "Select a source environment to view dashboards.",
|
||||
"validate": "Validate",
|
||||
"validation_started": "Validation started for {title}",
|
||||
"select_tool": "Select Tool",
|
||||
"dashboard_validation": "Dashboard Validation",
|
||||
"dataset_documentation": "Dataset Documentation",
|
||||
"dashboard_id": "Dashboard ID",
|
||||
"dataset_id": "Dataset ID",
|
||||
"environment": "Environment",
|
||||
"home": "Home",
|
||||
"llm_provider": "LLM Provider (Optional)",
|
||||
"use_default": "Use Default",
|
||||
"screenshot_strategy": "Screenshot Strategy",
|
||||
"headless_browser": "Headless Browser (Accurate)",
|
||||
"api_thumbnail": "API Thumbnail (Fast)",
|
||||
"include_logs": "Include Execution Logs",
|
||||
"notify_on_failure": "Notify on Failure",
|
||||
"update_metadata": "Update Metadata Automatically",
|
||||
"run_task": "Run Task",
|
||||
"running": "Running...",
|
||||
"git_status": "Git Status",
|
||||
"last_task": "Last Task",
|
||||
"actions": "Actions",
|
||||
"action_migrate": "Migrate",
|
||||
"action_backup": "Backup",
|
||||
"action_commit": "Commit",
|
||||
"git_status": "Git Status",
|
||||
"last_task": "Last Task",
|
||||
"view_task": "View task",
|
||||
"task_running": "Running...",
|
||||
"task_done": "Done",
|
||||
"task_failed": "Failed",
|
||||
"task_waiting": "Waiting",
|
||||
"status_synced": "Synced",
|
||||
"status_diff": "Diff",
|
||||
"status_synced": "Synced",
|
||||
"status_diff": "Diff",
|
||||
"status_error": "Error",
|
||||
"task_running": "Running...",
|
||||
"task_done": "Done",
|
||||
"task_failed": "Failed",
|
||||
"task_waiting": "Waiting",
|
||||
"view_task": "View task",
|
||||
"empty": "No dashboards found"
|
||||
},
|
||||
"datasets": {
|
||||
"empty": "No datasets found",
|
||||
"table_name": "Table Name",
|
||||
"schema": "Schema",
|
||||
"mapped_fields": "Mapped Fields",
|
||||
"mapped_of_total": "Mapped of total",
|
||||
"last_task": "Last Task",
|
||||
"actions": "Actions",
|
||||
"action_map_columns": "Map Columns",
|
||||
"view_task": "View task",
|
||||
"task_running": "Running...",
|
||||
"task_done": "Done",
|
||||
"task_failed": "Failed",
|
||||
"task_waiting": "Waiting"
|
||||
},
|
||||
"tasks": {
|
||||
"management": "Task Management",
|
||||
"run_backup": "Run Backup",
|
||||
"recent": "Recent Tasks",
|
||||
"details_logs": "Task Details & Logs",
|
||||
"select_task": "Select a task to view logs and details",
|
||||
"loading": "Loading tasks...",
|
||||
"no_tasks": "No tasks found.",
|
||||
"started": "Started {time}",
|
||||
"logs_title": "Task Logs",
|
||||
"refresh": "Refresh",
|
||||
"no_logs": "No logs available.",
|
||||
"manual_backup": "Run Manual Backup",
|
||||
"target_env": "Target Environment",
|
||||
"select_env": "-- Select Environment --",
|
||||
"start_backup": "Start Backup",
|
||||
"backup_schedule": "Automatic Backup Schedule",
|
||||
"schedule_enabled": "Enabled",
|
||||
"cron_label": "Cron Expression",
|
||||
"cron_hint": "e.g., 0 0 * * * for daily at midnight",
|
||||
"footer_text": "Task continues running in background"
|
||||
},
|
||||
"connections": {
|
||||
"management": "Connection Management",
|
||||
"add_new": "Add New Connection",
|
||||
"name": "Connection Name",
|
||||
"host": "Host",
|
||||
"port": "Port",
|
||||
"db_name": "Database Name",
|
||||
"user": "Username",
|
||||
"pass": "Password",
|
||||
"create": "Create Connection",
|
||||
"saved": "Saved Connections",
|
||||
"no_saved": "No connections saved yet.",
|
||||
"delete": "Delete"
|
||||
},
|
||||
"storage": {
|
||||
"management": "File Storage Management",
|
||||
"refresh": "Refresh",
|
||||
"refreshing": "Refreshing...",
|
||||
"backups": "Backups",
|
||||
"repositories": "Repositories",
|
||||
"root": "Root",
|
||||
"no_files": "No files found.",
|
||||
"upload_title": "Upload File",
|
||||
"target_category": "Target Category",
|
||||
"upload_button": "Upload a file",
|
||||
"drag_drop": "or drag and drop",
|
||||
"supported_formats": "ZIP, YAML, JSON up to 50MB",
|
||||
"uploading": "Uploading...",
|
||||
"table": {
|
||||
"name": "Name",
|
||||
"category": "Category",
|
||||
"size": "Size",
|
||||
"created_at": "Created At",
|
||||
"actions": "Actions",
|
||||
"download": "Download",
|
||||
"go_to_storage": "Go to storage",
|
||||
"delete": "Delete"
|
||||
},
|
||||
"messages": {
|
||||
"load_failed": "Failed to load files: {error}",
|
||||
"delete_confirm": "Are you sure you want to delete {name}?",
|
||||
"delete_success": "{name} deleted.",
|
||||
"delete_failed": "Delete failed: {error}",
|
||||
"upload_success": "File {name} uploaded successfully.",
|
||||
"upload_failed": "Upload failed: {error}"
|
||||
}
|
||||
},
|
||||
"mapper": {
|
||||
"title": "Dataset Column Mapper",
|
||||
"environment": "Environment",
|
||||
"select_env": "-- Select Environment --",
|
||||
"dataset_id": "Dataset ID",
|
||||
"source": "Mapping Source",
|
||||
"source_postgres": "PostgreSQL",
|
||||
"source_excel": "Excel",
|
||||
"connection": "Saved Connection",
|
||||
"select_connection": "-- Select Connection --",
|
||||
"table_name": "Table Name",
|
||||
"table_schema": "Table Schema",
|
||||
"excel_path": "Excel File Path",
|
||||
"run": "Run Mapper",
|
||||
"starting": "Starting...",
|
||||
"errors": {
|
||||
"fetch_failed": "Failed to fetch data",
|
||||
"required_fields": "Please fill in required fields",
|
||||
"postgres_required": "Connection and Table Name are required for postgres source",
|
||||
"excel_required": "Excel path is required for excel source"
|
||||
},
|
||||
"success": {
|
||||
"started": "Mapper task started"
|
||||
},
|
||||
"auto_document": "Auto-Document"
|
||||
},
|
||||
"admin": {
|
||||
"users": {
|
||||
"title": "User Management",
|
||||
"create": "Create User",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"source": "Source",
|
||||
"roles": "Roles",
|
||||
"status": "Status",
|
||||
"active": "Active",
|
||||
"inactive": "Inactive",
|
||||
"loading": "Loading users...",
|
||||
"modal_title": "Create New User",
|
||||
"modal_edit_title": "Edit User",
|
||||
"password": "Password",
|
||||
"password_hint": "Leave blank to keep current password.",
|
||||
"roles_hint": "Hold Ctrl/Cmd to select multiple roles.",
|
||||
"confirm_delete": "Are you sure you want to delete user {username}?"
|
||||
},
|
||||
"roles": {
|
||||
"title": "Role Management",
|
||||
"create": "Create Role",
|
||||
"name": "Role Name",
|
||||
"description": "Description",
|
||||
"permissions": "Permissions",
|
||||
"loading": "Loading roles...",
|
||||
"no_roles": "No roles found.",
|
||||
"modal_create_title": "Create New Role",
|
||||
"modal_edit_title": "Edit Role",
|
||||
"permissions_hint": "Select permissions for this role.",
|
||||
"confirm_delete": "Are you sure you want to delete role {name}?"
|
||||
},
|
||||
"settings": {
|
||||
"title": "ADFS Configuration",
|
||||
"add_mapping": "Add Mapping",
|
||||
"ad_group": "AD Group Name",
|
||||
"local_role": "Local Role",
|
||||
"no_mappings": "No AD group mappings configured.",
|
||||
"modal_title": "Add AD Group Mapping",
|
||||
"ad_group_dn": "AD Group Distinguished Name",
|
||||
"ad_group_hint": "The full DN of the Active Directory group.",
|
||||
"local_role_select": "Local System Role",
|
||||
"select_role": "Select a role"
|
||||
}
|
||||
}
|
||||
}
|
||||
336
frontend/src/lib/i18n/locales/ru.json
Normal file
336
frontend/src/lib/i18n/locales/ru.json
Normal file
@@ -0,0 +1,336 @@
|
||||
{
|
||||
"common": {
|
||||
"save": "Сохранить",
|
||||
"cancel": "Отмена",
|
||||
"delete": "Удалить",
|
||||
"edit": "Редактировать",
|
||||
"loading": "Загрузка...",
|
||||
"error": "Ошибка",
|
||||
"success": "Успешно",
|
||||
"actions": "Действия",
|
||||
"search": "Поиск...",
|
||||
"logout": "Выйти",
|
||||
"refresh": "Обновить",
|
||||
"retry": "Повторить"
|
||||
},
|
||||
"nav": {
|
||||
"dashboard": "Панель управления",
|
||||
"dashboards": "Дашборды",
|
||||
"datasets": "Датасеты",
|
||||
"overview": "Обзор",
|
||||
"all_datasets": "Все датасеты",
|
||||
"storage": "Хранилище",
|
||||
"backups": "Бэкапы",
|
||||
"repositories": "Репозитории",
|
||||
"migration": "Миграция",
|
||||
"git": "Git",
|
||||
"tasks": "Задачи",
|
||||
"settings": "Настройки",
|
||||
"tools": "Инструменты",
|
||||
"tools_search": "Поиск датасетов",
|
||||
"tools_mapper": "Маппер колонок",
|
||||
"tools_backups": "Управление бэкапами",
|
||||
"tools_debug": "Диагностика системы",
|
||||
"tools_storage": "Хранилище файлов",
|
||||
"tools_llm": "Инструменты LLM",
|
||||
"settings_general": "Общие настройки",
|
||||
"settings_connections": "Подключения",
|
||||
"settings_git": "Интеграция Git",
|
||||
"settings_environments": "Окружения",
|
||||
"settings_storage": "Хранилище",
|
||||
"admin": "Админ",
|
||||
"admin_users": "Управление пользователями",
|
||||
"admin_roles": "Управление ролями",
|
||||
"admin_settings": "Настройка ADFS",
|
||||
"admin_llm": "Провайдеры LLM"
|
||||
},
|
||||
"llm": {
|
||||
"providers_title": "Провайдеры LLM",
|
||||
"add_provider": "Добавить провайдера",
|
||||
"edit_provider": "Редактировать провайдера",
|
||||
"new_provider": "Новый провайдер",
|
||||
"name": "Имя",
|
||||
"type": "Тип",
|
||||
"base_url": "Base URL",
|
||||
"api_key": "API Key",
|
||||
"default_model": "Модель по умолчанию",
|
||||
"active": "Активен",
|
||||
"test": "Тест",
|
||||
"testing": "Тестирование...",
|
||||
"save": "Сохранить",
|
||||
"cancel": "Отмена",
|
||||
"connection_success": "Подключение успешно!",
|
||||
"connection_failed": "Ошибка подключения: {error}",
|
||||
"no_providers": "Провайдеры не настроены.",
|
||||
"doc_preview_title": "Предпросмотр документации",
|
||||
"dataset_desc": "Описание датасета",
|
||||
"column_doc": "Документация колонок",
|
||||
"apply_doc": "Применить документацию",
|
||||
"applying": "Применение..."
|
||||
},
|
||||
"settings": {
|
||||
"title": "Настройки",
|
||||
"language": "Язык",
|
||||
"appearance": "Внешний вид",
|
||||
"connections": "Подключения",
|
||||
"environments": "Окружения",
|
||||
"global_title": "Общие настройки",
|
||||
"env_title": "Окружения Superset",
|
||||
"env_warning": "Окружения Superset не настроены. Необходимо добавить хотя бы одно окружение для выполнения бэкапов или миграций.",
|
||||
"env_add": "Добавить окружение",
|
||||
"env_edit": "Редактировать окружение",
|
||||
"env_default": "Окружение по умолчанию",
|
||||
"env_test": "Тест",
|
||||
"env_delete": "Удалить",
|
||||
"storage_title": "Настройка хранилища файлов",
|
||||
"storage_root": "Корневой путь хранилища",
|
||||
"storage_backup_pattern": "Шаблон директории бэкапов",
|
||||
"storage_repo_pattern": "Шаблон директории репозиториев",
|
||||
"storage_filename_pattern": "Шаблон имени файла",
|
||||
"storage_preview": "Предпросмотр пути",
|
||||
"environments": "Окружения Superset",
|
||||
"env_description": "Настройка окружений Superset для дашбордов и датасетов.",
|
||||
"env_add": "Добавить окружение",
|
||||
"env_actions": "Действия",
|
||||
"env_test": "Тест",
|
||||
"env_delete": "Удалить",
|
||||
"connections_description": "Настройка подключений к базам данных для маппинга.",
|
||||
"llm_description": "Настройка LLM провайдеров для документирования датасетов.",
|
||||
"logging": "Настройка логирования",
|
||||
"logging_description": "Настройка уровней логирования задач.",
|
||||
"storage_description": "Настройка путей и шаблонов файлового хранилища.",
|
||||
"save_success": "Настройки сохранены",
|
||||
"save_failed": "Ошибка сохранения настроек"
|
||||
},
|
||||
"git": {
|
||||
"management": "Управление Git",
|
||||
"branch": "Ветка",
|
||||
"actions": "Действия",
|
||||
"sync": "Синхронизировать из Superset",
|
||||
"commit": "Зафиксировать изменения",
|
||||
"pull": "Pull (Получить)",
|
||||
"push": "Push (Отправить)",
|
||||
"deployment": "Развертывание",
|
||||
"deploy": "Развернуть в окружение",
|
||||
"history": "История коммитов",
|
||||
"no_commits": "Коммитов пока нет",
|
||||
"refresh": "Обновить",
|
||||
"new_branch": "Новая ветка",
|
||||
"create": "Создать",
|
||||
"init_repo": "Инициализировать репозиторий",
|
||||
"remote_url": "URL удаленного репозитория",
|
||||
"server": "Git-сервер",
|
||||
"not_linked": "Этот дашборд еще не привязан к Git-репозиторию.",
|
||||
"manage": "Управление Git",
|
||||
"generate_message": "Сгенерировать"
|
||||
},
|
||||
"dashboard": {
|
||||
"search": "Поиск дашбордов...",
|
||||
"title": "Заголовок",
|
||||
"last_modified": "Последнее изменение",
|
||||
"status": "Статус",
|
||||
"git": "Git",
|
||||
"showing": "Показано с {start} по {end} из {total} дашбордов",
|
||||
"previous": "Назад",
|
||||
"next": "Вперед",
|
||||
"no_dashboards": "Дашборды не найдены в этом окружении.",
|
||||
"select_source": "Выберите исходное окружение для просмотра дашбордов.",
|
||||
"validate": "Проверить",
|
||||
"validation_started": "Проверка запущена для {title}",
|
||||
"select_tool": "Выберите инструмент",
|
||||
"dashboard_validation": "Проверка дашбордов",
|
||||
"dataset_documentation": "Документирование датасетов",
|
||||
"dashboard_id": "ID дашборда",
|
||||
"dataset_id": "ID датасета",
|
||||
"environment": "Окружение",
|
||||
"llm_provider": "LLM провайдер (опционально)",
|
||||
"use_default": "По умолчанию",
|
||||
"screenshot_strategy": "Стратегия скриншотов",
|
||||
"headless_browser": "Headless браузер (точно)",
|
||||
"api_thumbnail": "API Thumbnail (быстро)",
|
||||
"include_logs": "Включить логи выполнения",
|
||||
"notify_on_failure": "Уведомить при ошибке",
|
||||
"update_metadata": "Обновлять метаданные автоматически",
|
||||
"run_task": "Запустить задачу",
|
||||
"running": "Запуск...",
|
||||
"git_status": "Статус Git",
|
||||
"last_task": "Последняя задача",
|
||||
"actions": "Действия",
|
||||
"action_migrate": "Мигрировать",
|
||||
"action_backup": "Создать бэкап",
|
||||
"action_commit": "Зафиксировать",
|
||||
"git_status": "Статус Git",
|
||||
"last_task": "Последняя задача",
|
||||
"view_task": "Просмотреть задачу",
|
||||
"task_running": "Выполняется...",
|
||||
"task_done": "Готово",
|
||||
"task_failed": "Ошибка",
|
||||
"task_waiting": "Ожидание",
|
||||
"status_synced": "Синхронизировано",
|
||||
"status_diff": "Различия",
|
||||
"status_synced": "Синхронизировано",
|
||||
"status_diff": "Различия",
|
||||
"status_error": "Ошибка",
|
||||
"task_running": "Выполняется...",
|
||||
"task_done": "Готово",
|
||||
"task_failed": "Ошибка",
|
||||
"task_waiting": "Ожидание",
|
||||
"view_task": "Просмотреть задачу",
|
||||
"empty": "Дашборды не найдены"
|
||||
},
|
||||
"datasets": {
|
||||
"empty": "Датасеты не найдены",
|
||||
"table_name": "Имя таблицы",
|
||||
"schema": "Схема",
|
||||
"mapped_fields": "Отображенные колонки",
|
||||
"mapped_of_total": "Отображено из всего",
|
||||
"last_task": "Последняя задача",
|
||||
"actions": "Действия",
|
||||
"action_map_columns": "Отобразить колонки",
|
||||
"view_task": "Просмотреть задачу",
|
||||
"task_running": "Выполняется...",
|
||||
"task_done": "Готово",
|
||||
"task_failed": "Ошибка",
|
||||
"task_waiting": "Ожидание"
|
||||
},
|
||||
"tasks": {
|
||||
"management": "Управление задачами",
|
||||
"run_backup": "Запустить бэкап",
|
||||
"recent": "Последние задачи",
|
||||
"details_logs": "Детали и логи задачи",
|
||||
"select_task": "Выберите задачу для просмотра логов и деталей",
|
||||
"loading": "Загрузка задач...",
|
||||
"no_tasks": "Задачи не найдены.",
|
||||
"started": "Запущено {time}",
|
||||
"logs_title": "Логи задачи",
|
||||
"refresh": "Обновить",
|
||||
"no_logs": "Логи отсутствуют.",
|
||||
"manual_backup": "Ручной бэкап",
|
||||
"target_env": "Целевое окружение",
|
||||
"select_env": "-- Выберите окружение --",
|
||||
"start_backup": "Начать бэкап",
|
||||
"backup_schedule": "Расписание автоматических бэкапов",
|
||||
"schedule_enabled": "Включено",
|
||||
"cron_label": "Cron-выражение",
|
||||
"cron_hint": "например, 0 0 * * * для ежедневного запуска в полночь",
|
||||
"footer_text": "Задача продолжает работать в фоновом режиме"
|
||||
},
|
||||
"connections": {
|
||||
"management": "Управление подключениями",
|
||||
"add_new": "Добавить новое подключение",
|
||||
"name": "Название подключения",
|
||||
"host": "Хост",
|
||||
"port": "Порт",
|
||||
"db_name": "Название БД",
|
||||
"user": "Имя пользователя",
|
||||
"pass": "Пароль",
|
||||
"create": "Создать подключение",
|
||||
"saved": "Сохраненные подключения",
|
||||
"no_saved": "Нет сохраненных подключений.",
|
||||
"delete": "Удалить"
|
||||
},
|
||||
"storage": {
|
||||
"management": "Управление хранилищем файлов",
|
||||
"refresh": "Обновить",
|
||||
"refreshing": "Обновление...",
|
||||
"backups": "Бэкапы",
|
||||
"repositories": "Репозитории",
|
||||
"root": "Корень",
|
||||
"no_files": "Файлы не найдены.",
|
||||
"upload_title": "Загрузить файл",
|
||||
"target_category": "Целевая категория",
|
||||
"upload_button": "Загрузить файл",
|
||||
"drag_drop": "или перетащите сюда",
|
||||
"supported_formats": "ZIP, YAML, JSON до 50МБ",
|
||||
"uploading": "Загрузка...",
|
||||
"table": {
|
||||
"name": "Имя",
|
||||
"category": "Категория",
|
||||
"size": "Размер",
|
||||
"created_at": "Дата создания",
|
||||
"actions": "Действия",
|
||||
"download": "Скачать",
|
||||
"go_to_storage": "Перейти к хранилищу",
|
||||
"delete": "Удалить"
|
||||
},
|
||||
"messages": {
|
||||
"load_failed": "Ошибка загрузки файлов: {error}",
|
||||
"delete_confirm": "Вы уверены, что хотите удалить {name}?",
|
||||
"delete_success": "{name} удален.",
|
||||
"delete_failed": "Ошибка удаления: {error}",
|
||||
"upload_success": "Файл {name} успешно загружен.",
|
||||
"upload_failed": "Ошибка загрузки: {error}"
|
||||
}
|
||||
},
|
||||
"mapper": {
|
||||
"title": "Маппер колонок датасета",
|
||||
"environment": "Окружение",
|
||||
"select_env": "-- Выберите окружение --",
|
||||
"dataset_id": "ID датасета",
|
||||
"source": "Источник маппинга",
|
||||
"source_postgres": "PostgreSQL",
|
||||
"source_excel": "Excel",
|
||||
"connection": "Сохраненное подключение",
|
||||
"select_connection": "-- Выберите подключение --",
|
||||
"table_name": "Имя таблицы",
|
||||
"table_schema": "Схема таблицы",
|
||||
"excel_path": "Путь к файлу Excel",
|
||||
"run": "Запустить маппер",
|
||||
"starting": "Запуск...",
|
||||
"errors": {
|
||||
"fetch_failed": "Не удалось загрузить данные",
|
||||
"required_fields": "Пожалуйста, заполните обязательные поля",
|
||||
"postgres_required": "Подключение и имя таблицы обязательны для источника PostgreSQL",
|
||||
"excel_required": "Путь к Excel обязателен для источника Excel"
|
||||
},
|
||||
"success": {
|
||||
"started": "Задача маппинга запущена"
|
||||
},
|
||||
"auto_document": "Авто-документирование"
|
||||
},
|
||||
"admin": {
|
||||
"users": {
|
||||
"title": "Управление пользователями",
|
||||
"create": "Создать пользователя",
|
||||
"username": "Имя пользователя",
|
||||
"email": "Email",
|
||||
"source": "Источник",
|
||||
"roles": "Роли",
|
||||
"status": "Статус",
|
||||
"active": "Активен",
|
||||
"inactive": "Неактивен",
|
||||
"loading": "Загрузка пользователей...",
|
||||
"modal_title": "Создать нового пользователя",
|
||||
"modal_edit_title": "Редактировать пользователя",
|
||||
"password": "Пароль",
|
||||
"password_hint": "Оставьте пустым, чтобы не менять пароль.",
|
||||
"roles_hint": "Удерживайте Ctrl/Cmd для выбора нескольких ролей.",
|
||||
"confirm_delete": "Вы уверены, что хотите удалить пользователя {username}?"
|
||||
},
|
||||
"roles": {
|
||||
"title": "Управление ролями",
|
||||
"create": "Создать роль",
|
||||
"name": "Имя роли",
|
||||
"description": "Описание",
|
||||
"permissions": "Права доступа",
|
||||
"loading": "Загрузка ролей...",
|
||||
"no_roles": "Роли не найдены.",
|
||||
"modal_create_title": "Создать новую роль",
|
||||
"modal_edit_title": "Редактировать роль",
|
||||
"permissions_hint": "Выберите права для этой роли.",
|
||||
"confirm_delete": "Вы уверены, что хотите удалить роль {name}?"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Настройка ADFS",
|
||||
"add_mapping": "Добавить маппинг",
|
||||
"ad_group": "Имя группы AD",
|
||||
"local_role": "Локальная роль",
|
||||
"no_mappings": "Маппинги групп AD не настроены.",
|
||||
"modal_title": "Добавить маппинг группы AD",
|
||||
"ad_group_dn": "Distinguished Name группы AD",
|
||||
"ad_group_hint": "Полный DN группы Active Directory.",
|
||||
"local_role_select": "Локальная системная роль",
|
||||
"select_role": "Выберите роль"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user