mirror of
https://github.com/tiddly-gittly/TidGi-Desktop.git
synced 2026-03-12 09:42:31 -07:00
* Create ErrorDuringRelease.md
* Enforce test timeouts and add root tiddler scenario
Set global and step timeouts to 5s (local) and 10s (CI) across cucumber config and step definitions to standardize test execution times. Add a new scenario to verify root tiddler configuration and content loading after restart. Enhance start-e2e-app script to accept or auto-detect test scenario names and pass them to the app.
* Improve error handling for window and view initialization
Enhanced error reporting and handling when browser windows are not ready or fail to register in windowService. Updated focus logic to dynamically retrieve the current browser window, improving reliability during workspace hibernation and wake-up scenarios.
* Remove AfterAll hook and add --exit to e2e tests
Eliminates the AfterAll hook that forced process exit in cleanup.ts to prevent hanging after tests. Adds the --exit flag to the cucumber-js command in the e2e test script to ensure proper test process termination.
* Add step to restart workspace in wiki tests
Introduces a new step definition 'I restart workspace {string}' to programmatically restart a wiki workspace during tests. Updates the root tiddler scenario to use this step for verifying lazy-load behavior after workspace restart, improving test reliability and clarity.
* Centralize and standardize E2E test timeouts
Extracted timeout values into features/supports/timeouts.ts and replaced hardcoded timeouts in step definitions with named constants. This ensures consistent timeout handling across local and CI environments, reduces duplication, and clarifies intent. Also improved workspace update logic to check watch-fs state before restart and cleaned up related log marker handling.
* Improve i18n coverage and add Windows installer log access
Expanded and unified i18n keys for error messages and UI labels across multiple languages. Refactored code to remove hardcoded default values from translation calls. Added a Developer Tools option to open the Windows installer log folder (SquirrelTemp) when running on Windows. Introduced a placeholder file to preserve dynamic i18n keys for error messages.
* Initialize Tidgi mini window before workspace views
Moved the initialization of the Tidgi mini window to occur before initializing all workspace views in main.ts to ensure correct view creation. Added a clarifying comment in DeveloperTools.tsx regarding the SquirrelSetup.log path.
* Refactor Tidgi mini window initialization logic
Tidgi mini window creation now only creates the window; view creation is deferred to initializeAllWorkspaceView. Updated related comments and logging for clarity. Also fixed formatting in French translations and improved documentation for error handling during release.
* Add model feature chips to model selection UI
Introduces a ModelFeatureChip component to visually display model features in the model selector and new model dialog. Updates defaultProviders to include new models with features, and enhances the UI to show feature chips for each model, improving clarity for users selecting models.
* Add image attachment support to chat messages
This update enables users to attach image files to chat messages, including UI changes for file selection and preview, backend persistence of attachments, and prompt concatenation logic to include images in AI requests. It also adds error handling and i18n for model vision support, updates message rendering to display images, and improves logging and API validation for vision-capable models.
* Improve streaming status handling for agent messages
Adds a failsafe to clear streaming status when an agent reaches a terminal state and refines logic to prevent marking completed messages as streaming. Also updates message stream completion in AgentInstanceService to ensure proper cleanup and delivery of IPC messages. Includes new feature tests for message streaming status and image upload scenarios.
* Add cross-window sync feature and test steps
Introduces a new feature file for cross-window synchronization scenarios. Adds step definitions to open workspaces in new windows and execute TiddlyWiki code programmatically. Removes obsolete wiki.ts.backup file and updates agentActions for related actions.
* feat(sync): fix cross-window synchronization via SSE
- Remove overly aggressive echo prevention in backend that blocked all SSE updates
- Backend now forwards all wiki change events to subscribers
- Add comprehensive cross-window sync tests verifying bidirectional updates
- Test main->new window sync and new->main window sync scenarios
- Version bump to 0.13.0-prerelease19
* Improve file attachment handling in chat and tests
Refactors file input handling in chat tests to use Playwright's setInputFiles, updates message sending types to support optional file attachments, and enhances file metadata persistence and logging. Adjusts test expectations and UI logic to better handle and display image attachments, and clarifies combobox value assertions in ExternalAPI tests.
* Add file input validation and improve i18n messages
Added image type and size validation (10MB limit) to file input in InputContainer. Improved image preview logic. Updated French, Japanese, and Russian translations with new error messages for missing/default model and vision support. Enhanced type safety in promptConcatWithImage tests and messagePersistence logging. Fixed race condition in ExternalAPIService lazy initialization. Updated CommitDetailsPanel to use common cancel translation key.
* review
* Update browserView.ts
* Update timeouts.ts
* Update cucumber.config.js
* Update cucumber.config.js
* Move global timeout config to separate module
Extracted global timeout setup from cucumber.config.js to features/supports/timeout-config.ts using setDefaultTimeout. This ensures the timeout is set via code rather than config, improving clarity and maintainability.
* Update newAgent.feature
711 lines
49 KiB
JSON
711 lines
49 KiB
JSON
{
|
||
"APILogs": {
|
||
"CurrentAgent": "Показать журнал агента: {{agentId}}",
|
||
"Description": "Журнал отладки вызовов внешнего API этого агента. Включите параметр 'Отладка внешнего API' в настройках, чтобы начать запись.",
|
||
"ErrorDetails": "Подробности ошибки",
|
||
"NoLogs": "API-журнал этого агента не найден.",
|
||
"NoResponse": "не отвечает",
|
||
"RequestDetails": "детали запроса",
|
||
"ResponseContent": "ответное содержание",
|
||
"ResponseMetadata": "метаданные ответа",
|
||
"StatusCancel": "отменено",
|
||
"StatusDone": "завершено",
|
||
"StatusError": "ошибка",
|
||
"StatusStart": "начато",
|
||
"StatusUpdate": "в процессе обработки",
|
||
"Title": "Журнал отладки API"
|
||
},
|
||
"Agent": {
|
||
"EditTitle": "редактировать имя интеллектуального агента",
|
||
"InvalidTabType": "Неверный тип вкладки. Требуется вкладка чата.",
|
||
"LoadingChat": "Загрузка диалога...",
|
||
"StartConversation": "начать диалог",
|
||
"ThinkingProcess": "Размышляю",
|
||
"Untitled": "без названия"
|
||
},
|
||
"Browser": {
|
||
"Back": "назад",
|
||
"Bookmark": "коллекционировать",
|
||
"CurrentUrl": "текущий URL",
|
||
"EnterUrlPlaceholder": "введите URL",
|
||
"Forward": "вперёд",
|
||
"Home": "Главная страница",
|
||
"Refresh": "обновить",
|
||
"RenderPlaceholder": "Это область рендеринга веб-страницы."
|
||
},
|
||
"Chat": {
|
||
"Cancel": "Отмена",
|
||
"ConfigError": {
|
||
"AuthenticationError": "Ошибка аутентификации {{provider}}. Пожалуйста, проверьте API-ключ в настройках.",
|
||
"AuthenticationFailed": "Ошибка аутентификации {{provider}}. Пожалуйста, проверьте API-ключ в настройках.",
|
||
"GoToSettings": "Перейти к настройкам",
|
||
"MissingAPIKeyError": "API-ключ для {{provider}} не найден. Пожалуйста, добавьте его в настройках.",
|
||
"MissingBaseURLError": "Провайдер {{provider}} требует базовый URL. Пожалуйста, настройте его в настройках.",
|
||
"MissingConfigError": "Провайдер AI или модель не настроены. Пожалуйста, настройте в настройках.",
|
||
"MissingProviderError": "Провайдер {{provider}} недоступен. Пожалуйста, настройте его в настройках.",
|
||
"NoDefaultModel": "Модель по умолчанию не настроена. Пожалуйста, выберите модель в настройках.",
|
||
"ModelNoVisionSupport": "Выбранная модель не поддерживает обработку изображений. Пожалуйста, выберите модель с поддержкой vision.",
|
||
"ProviderNotFound": "Провайдер {{provider}} не найден. Пожалуйста, настройте его в настройках.",
|
||
"Title": "Проблема с конфигурацией"
|
||
},
|
||
"FileValidation": {
|
||
"NotAnImage": "Выбранный файл не является изображением ({{fileType}}). Пожалуйста, выберите файл изображения.",
|
||
"TooLarge": "Размер файла {{size}}МБ превышает лимит ({{maxSize}}МБ). Пожалуйста, выберите файл меньшего размера."
|
||
},
|
||
"InputPlaceholder": "Введите сообщение, Ctrl+Enter для отправки",
|
||
"Send": "Отправить"
|
||
},
|
||
"Common": {
|
||
"None": "не выбрано"
|
||
},
|
||
"ContextMenu": {
|
||
"AddToCurrentSplitView": "добавить к текущему разделенному экрану",
|
||
"Close": "закрыть",
|
||
"CloseAbove": "Закрыть вкладку сверху",
|
||
"CloseBelow": "Закрыть вкладку ниже",
|
||
"CloseOther": "Закрыть другие вкладки",
|
||
"CloseTabs": "Закрыть несколько вкладок",
|
||
"ConvertToSplitView": "переключиться на разделенный экран",
|
||
"CreateSplitViewWithActive": "создать разделенный экран с текущей вкладкой",
|
||
"Duplicate": "копировать",
|
||
"NewTabBelow": "Открыть в новой вкладке",
|
||
"Pin": "Закрепленные вкладки",
|
||
"Refresh": "обновить",
|
||
"RestoreClosed": "восстановить закрытую вкладку",
|
||
"Unpin": "открепить"
|
||
},
|
||
"CreateAgent": {
|
||
"AgentName": "название агента",
|
||
"AgentNameHelper": "Дайте вашему агенту описательное имя",
|
||
"AgentNamePlaceholder": "Введите название агента...",
|
||
"Back": "предыдущий шаг",
|
||
"CreatingPreview": "Создание предварительного просмотра интеллектуального агента...",
|
||
"EditPrompt": "редактировать подсказку",
|
||
"EditPromptDescription": "Настройте системные подсказки и поведение вашего интеллектуального агента",
|
||
"ImmediateUse": "тестировать и использовать",
|
||
"ImmediateUseDescription": "Протестируйте своего агента и начните использовать немедленно",
|
||
"Next": "следующий шаг",
|
||
"NoTemplateSelected": "Пожалуйста, сначала выберите шаблон.",
|
||
"Preview": "(предварительный просмотр)",
|
||
"SaveAndUse": "Сохранить и использовать агента",
|
||
"SearchTemplates": "Шаблон интеллектуального агента поиска...",
|
||
"SelectTemplate": "Выбрать шаблон",
|
||
"SelectTemplateDescription": "Выберите существующего агента в качестве начального шаблона.",
|
||
"SelectedTemplate": "выбран шаблон",
|
||
"SetupAgent": "настроить интеллектуального агента",
|
||
"SetupAgentDescription": "Назовите своего агента и выберите шаблон в качестве отправной точки",
|
||
"Title": "Создать нового интеллектуального агента"
|
||
},
|
||
"EditAgent": {
|
||
"AgentDescription": "описание агента",
|
||
"AgentDescriptionHelper": "Опишите функции и назначение вашего агента.",
|
||
"AgentDescriptionPlaceholder": "Введите описание интеллектуального агента...",
|
||
"AgentName": "название агента",
|
||
"AgentNameHelper": "Дайте вашему агенту описательное имя",
|
||
"AgentNamePlaceholder": "Введите название агента...",
|
||
"AgentNotFound": "Агент не найден",
|
||
"EditBasic": "Редактировать основную информацию",
|
||
"EditBasicDescription": "Редактировать основную информацию вашего агента",
|
||
"EditPrompt": "редактировать подсказку",
|
||
"EditPromptDescription": "Настройте системные подсказки и поведение вашего интеллектуального агента",
|
||
"ImmediateUse": "тестировать и использовать",
|
||
"ImmediateUseDescription": "Протестируйте своего агента и начните использовать немедленно",
|
||
"Loading": "Загрузка...",
|
||
"LoadingPromptConfig": "Загружается конфигурация подсказок...",
|
||
"PreviewChat": "предварительный просмотр чата",
|
||
"Save": "сохранить",
|
||
"Saving": "Сохранение...",
|
||
"Title": "редактировать определение интеллектуального агента"
|
||
},
|
||
"ModelFeature": {
|
||
"Embedding": "встраивание",
|
||
"Free": "бесплатно",
|
||
"ImageGeneration": "генерация изображений",
|
||
"Language": "язык",
|
||
"Reasoning": "умозаключение",
|
||
"Speech": "синтез речи",
|
||
"ToolCalling": "вызов инструмента",
|
||
"Transcriptions": "распознавание речи",
|
||
"Vision": "визуальный"
|
||
},
|
||
"ModelSelector": {
|
||
"Model": "модель",
|
||
"NoModelSelected": "модель не выбрана",
|
||
"SelectModel": "выбор модели",
|
||
"Title": "выбор модели"
|
||
},
|
||
"NewTab": {
|
||
"CreateDefaultAgent": "Создать агента по умолчанию",
|
||
"CreateInstance": "создать экземпляр",
|
||
"CreateNewAgent": "Создать нового интеллектуального агента",
|
||
"EditDefinition": "редактировать определение",
|
||
"NewTab": "Новая вкладка",
|
||
"QuickAccess": "Быстрый доступ",
|
||
"SearchPlaceholder": "Поиск вкладок или интеллектуальных агентов..."
|
||
},
|
||
"Preference": {
|
||
"AIAgent": "агент",
|
||
"AIAgentDescription": "Управление базой данных записей диалогов AI Agent",
|
||
"AIAgentDescriptionDetail": "Здесь можно просмотреть и удалить информацию о размере и местоположении базы данных записей диалогов AI Agent.",
|
||
"APIKey": "API ключ",
|
||
"AddNewModel": "Добавить новую модель",
|
||
"AddNewProvider": "Добавить нового поставщика",
|
||
"AddProvider": "Добавить поставщика",
|
||
"AgentDatabaseDescription": "Все записи диалогов с AI Agent хранятся в этой базе данных, касаются только общения с ИИ, не влияют на содержимое Wiki и занимают объем {{size}}.",
|
||
"BaseURL": "Базовый URL API",
|
||
"BaseURLRequired": "Базовый URL API обязателен",
|
||
"Browse": "просматривать",
|
||
"CancelAddProvider": "Отменить добавление",
|
||
"ConfigureModelParameters": "параметры конфигурации",
|
||
"ConfigureProvider": "Настроить {{provider}}",
|
||
"ConfirmDelete": "Подтвердить удаление",
|
||
"ConfirmDeleteAgentDatabase": "Вы уверены, что хотите удалить базу данных со всеми записями диалогов ИИ? Это действие нельзя отменить.",
|
||
"ConfirmDeleteExternalApiDatabase": "Вы уверены, что хотите удалить базу данных, содержащую отладочную информацию внешнего API? Это действие нельзя отменить.",
|
||
"ConfirmDeleteProvider": "Подтвердите удаление поставщика",
|
||
"CustomProvider": "Пользовательский поставщик",
|
||
"DefaultAIModelSelection": "Выбор AI модели по умолчанию",
|
||
"DefaultAIModelSelectionDescription": "Выберите поставщика AI и модель, которые будут использоваться по умолчанию",
|
||
"DefaultEmbeddingModelSelection": "выбор модели встраивания по умолчанию",
|
||
"DefaultEmbeddingModelSelectionDescription": "Выбор модели встраивания по умолчанию для семантического поиска и векторных операций",
|
||
"DefaultImageGenerationModelSelection": "выбор модели генерации изображений по умолчанию",
|
||
"DefaultImageGenerationModelSelectionDescription": "выбрать модель генерации изображений по умолчанию для операции создания изображения из текста",
|
||
"DefaultSpeechModelSelection": "выбор модели генерации голоса по умолчанию",
|
||
"DefaultSpeechModelSelectionDescription": "Выбрать модель генерации голоса по умолчанию для операции преобразования текста в речь",
|
||
"DefaultTranscriptionsModelSelection": "выбор модели распознавания речи по умолчанию",
|
||
"DefaultTranscriptionsModelSelectionDescription": "выбрать модель распознавания речи по умолчанию для операции преобразования голоса в текст",
|
||
"DeleteAgentDatabase": "Удалить базу данных диалогов ИИ",
|
||
"DeleteExternalApiDatabase": "удалить внешнюю базу данных API",
|
||
"DeleteProvider": "удалить поставщика",
|
||
"DisabledProviderInfo": "Этот поставщик отключен, его модели не будут отображаться в списке выбора моделей",
|
||
"EnableProvider": "Включить этого поставщика",
|
||
"ExternalAPI": "Внешний интерфейс",
|
||
"ExternalAPIDebug": "Включить журнал отладки API",
|
||
"ExternalAPIDebugDescription": "После включения все запросы и ответы API будут записываться в базу данных для отладки.",
|
||
"ExternalApiDatabaseDescription": "База данных, содержащая отладочную информацию внешнего API, занимает пространство размером {{size}}.",
|
||
"FailedToAddModel": "Не удалось добавить модель",
|
||
"FailedToAddProvider": "Не удалось добавить поставщика",
|
||
"FailedToDeleteProvider": "Не удалось удалить поставщика {{providerName}}",
|
||
"FailedToRemoveModel": "Не удалось удалить модель",
|
||
"FailedToSaveSettings": "Не удалось сохранить настройки",
|
||
"FailedToUpdateModel": "Не удалось обновить модель",
|
||
"FailedToUpdateProviderStatus": "Не удалось обновить статус поставщика",
|
||
"MaxTokens": "максимальная длина генерации",
|
||
"MaxTokensDescription": "Максимальное количество символов (в токенах), которое модель может сгенерировать в одном запросе.",
|
||
"ModelAddedSuccessfully": "Модель успешно добавлена",
|
||
"ModelAlreadyExists": "Модель уже существует",
|
||
"ModelCaption": "Название модели для отображения",
|
||
"ModelCaptionHelp": "Дружественное имя для отображения в интерфейсе, если не заполнено, будет использовано имя модели",
|
||
"ModelDetails": "Детали модели",
|
||
"ModelFeatures": "Возможности модели",
|
||
"ModelName": "Имя модели",
|
||
"ModelNameRequired": "Имя модели обязательно",
|
||
"ModelParameters": "параметры модели",
|
||
"ModelParametersDescription": "Настройка параметров поведения генеративных моделей ИИ, таких как температура, ограничение токенов и другие.",
|
||
"ModelRemovedSuccessfully": "Модель успешно удалена",
|
||
"ModelUpdatedSuccessfully": "Модель успешно обновлена.",
|
||
"Models": "Доступные модели",
|
||
"NoPresetSelected": "Нет выбранной предустановленной модели",
|
||
"NoProvidersAvailable": "Нет доступных поставщиков",
|
||
"OpenDatabaseFolder": "Открыть папку базы данных",
|
||
"PresetModels": "Предустановленные модели",
|
||
"PresetProvider": "Предустановленный поставщик",
|
||
"ProviderAddedSuccessfully": "Поставщик успешно добавлен",
|
||
"ProviderAlreadyExists": "Имя поставщика уже существует",
|
||
"ProviderClass": "Тип интерфейса поставщика",
|
||
"ProviderConfiguration": "Конфигурация поставщика",
|
||
"ProviderConfigurationDescription": "Настройте API ключ поставщика AI и другие настройки",
|
||
"ProviderDeleted": "Провайдер {{providerName}} удален",
|
||
"ProviderDisabled": "Поставщик отключен",
|
||
"ProviderEnabled": "Поставщик включен",
|
||
"ProviderName": "Имя поставщика",
|
||
"ProviderNameRequired": "Имя поставщика обязательно",
|
||
"Search": "поиск и внедрение",
|
||
"SearchEmbeddingDelete": "удалить",
|
||
"SearchEmbeddingDeleteConfirm": "Вы уверены, что хотите удалить все векторные вложения рабочей области \"{{workspaceName}}\"? Это действие нельзя отменить.",
|
||
"SearchEmbeddingDeleteError": "Удаление вложения не удалось: {{error}}",
|
||
"SearchEmbeddingGenerate": "генерировать вложения",
|
||
"SearchEmbeddingGenerating": "Генерация...",
|
||
"SearchEmbeddingLastUpdated": "Последнее обновление: {{time}}",
|
||
"SearchEmbeddingNoAIConfigError": "Пожалуйста, сначала настройте параметры AI API в разделе внешних API.",
|
||
"SearchEmbeddingNoEmbeddingModelError": "Пожалуйста, сначала настройте параметры модели встраивания по умолчанию в разделе внешних API.",
|
||
"SearchEmbeddingStatusCompleted": "{{totalEmbeddings}} вложений из {{totalNotes}} заметок",
|
||
"SearchEmbeddingStatusError": "Ошибка: {{error}}",
|
||
"SearchEmbeddingStatusGenerating": "Генерация... ({{completed}}/{{total}})",
|
||
"SearchEmbeddingStatusIdle": "встраивание не сгенерировано",
|
||
"SearchEmbeddingUpdate": "обновить встраивание",
|
||
"SearchNoWorkspaces": "Рабочая область не найдена",
|
||
"SelectDefaultProvider": "Выбрать поставщика по умолчанию",
|
||
"SelectFromPresets": "Выбрать из предустановленных моделей",
|
||
"SelectModel": "Выбрать модель",
|
||
"SettingsSaved": "Настройки сохранены",
|
||
"SystemPrompt": "Системная подсказка",
|
||
"SystemPromptDescription": "Установите системную инструкцию, отправляемую AI, определяющую его поведение и возможности",
|
||
"SystemPromptPlaceholder": "Заполнитель подсказки системы",
|
||
"Temperature": "Температура",
|
||
"TemperatureDescription": "Низкие значения приводят к более детерминированным и сфокусированным ответам, а высокие — к более разнообразным и творческим.",
|
||
"TopP": "Топ P",
|
||
"TopPDescription": "Управление случайностью ответов. Низкие значения делают ответы более предсказуемыми, а высокие — допускают больше вариантов.",
|
||
"WorkflowFile": "файл рабочего процесса",
|
||
"WorkflowFileHelp": "Путь к JSON-файлу рабочего процесса ComfyUI",
|
||
"WorkflowFilePath": "Путь к файлу рабочего процесса"
|
||
},
|
||
"Prompt": {
|
||
"AutoRefresh": "Предварительный просмотр автоматически обновляется при изменении введенного текста.",
|
||
"CodeEditor": "Редактор кода",
|
||
"Edit": "редактирование подсказок",
|
||
"Enabled": "включить",
|
||
"EnterEditSideBySide": "Редактирование с разделенным экраном",
|
||
"EnterFullScreen": "перейти в полноэкранный режим",
|
||
"EnterPreviewSideBySide": "Предварительный просмотр разделенного экрана",
|
||
"ExitFullScreen": "выйти из полноэкранного режима",
|
||
"ExitSideBySide": "выход из разделенного экрана",
|
||
"Flat": "плиточное представление",
|
||
"FormEditor": "редактор форм",
|
||
"LastUpdated": "Дата последнего обновления",
|
||
"Loading": "Загрузка в предварительном просмотре...",
|
||
"NoMessages": "Нет сообщений для предварительного просмотра",
|
||
"Preview": "Предварительный просмотр подсказок",
|
||
"SchemaNotProvided": "Формат не предоставлен.",
|
||
"SchemaNotProvidedDescription": "Не предоставлена JSON Schema или не удалось её корректно получить. Форма редактирования не может быть отображена.",
|
||
"Tree": "Древовидное представление",
|
||
"ValidationErrors": "обнаружить ошибку"
|
||
},
|
||
"PromptConfig": {
|
||
"AddItem": "добавить проект",
|
||
"Collapse": "складывать",
|
||
"EmptyArray": "Еще не добавлено ни одного элемента. Нажмите на кнопку ниже, чтобы добавить первый элемент.",
|
||
"Expand": "развернуть",
|
||
"ItemCount": "{{count}} элементов",
|
||
"ItemIndex": "Пункт {{index}}",
|
||
"Tabs": {
|
||
"Plugins": "плагин",
|
||
"Prompts": "подсказка",
|
||
"Response": "отклик"
|
||
},
|
||
"Tags": {
|
||
"HelperText": "После ввода нажмите Enter, чтобы добавить метку, или выберите из предопределенных меток.",
|
||
"NoOptions": "Нет доступных тегов",
|
||
"Placeholder": "Введите метку..."
|
||
}
|
||
},
|
||
"Schema": {
|
||
"AIConfig": {
|
||
"Default": "модель диалога по умолчанию",
|
||
"DefaultTitle": "модель по умолчанию",
|
||
"Description": "Настройка конфигурации AI-диалога",
|
||
"Embedding": "Модель встраивания для векторного поиска",
|
||
"EmbeddingTitle": "встраиваемая модель",
|
||
"Free": "низкозатратная модель, используемая для чувствительных к затратам задач",
|
||
"FreeTitle": "бесплатные/низкозатратные модели",
|
||
"ImageGeneration": "Модель для генерации изображений",
|
||
"ImageGenerationTitle": "модель генерации изображений",
|
||
"Speech": "Модель для преобразования текста в речь (TTS)",
|
||
"SpeechTitle": "модель синтеза речи",
|
||
"Title": "AI конфигурация",
|
||
"Transcriptions": "Модель для преобразования речи в текст (STT)",
|
||
"TranscriptionsTitle": "модель преобразования речи в текст"
|
||
},
|
||
"AgentConfig": {
|
||
"Description": "Конфигурация агента",
|
||
"Id": "уникальный идентификатор агента",
|
||
"IdTitle": "ID агента",
|
||
"PromptConfig": {
|
||
"Description": "настройка подсказок",
|
||
"Plugins": "Список конфигураций плагинов",
|
||
"Prompts": "Список конфигурации подсказок",
|
||
"Response": "список конфигураций ответа",
|
||
"Title": "настройка подсказок"
|
||
},
|
||
"Title": "Конфигурация агента"
|
||
},
|
||
"BaseAPIConfig": {
|
||
"ModelParameters": "Настройка параметров модели",
|
||
"ModelParametersTitle": "параметры модели"
|
||
},
|
||
"Common": {
|
||
"ToolListPosition": {
|
||
"Description": "Конфигурация позиции вставки списка инструментов в подсказки",
|
||
"Position": "позиция вставки относительно цели",
|
||
"PositionTitle": "вставить",
|
||
"TargetId": "ID целевого элемента",
|
||
"TargetIdTitle": "ID цели"
|
||
},
|
||
"ToolListPositionTitle": "позиция списка орудий"
|
||
},
|
||
"DefaultAgents": {
|
||
"Description": "список конфигураций агента по умолчанию",
|
||
"Title": "агент по умолчанию"
|
||
},
|
||
"FullReplacement": {
|
||
"Description": "полная замена параметров конфигурации",
|
||
"SourceType": "тип источника",
|
||
"SourceTypeTitle": "тип источника",
|
||
"TargetId": "ID целевого элемента",
|
||
"TargetIdTitle": "ID цели",
|
||
"Title": "полная замена параметров"
|
||
},
|
||
"Git": {
|
||
"Description": "Поиск журнала фиксаций Git и чтение содержимого определенных файлов",
|
||
"Title": "Инструменты Git",
|
||
"Tool": {
|
||
"Parameters": {
|
||
"commitHash": {
|
||
"Description": "отправить хэш-значение",
|
||
"Title": "хэш коммита"
|
||
},
|
||
"filePath": {
|
||
"Description": "Путь к файлу (используется для режима поиска файлов)",
|
||
"Title": "путь к файлу"
|
||
},
|
||
"maxLines": {
|
||
"Description": "Максимальное количество строк (по умолчанию 500)",
|
||
"Title": "максимальное количество строк"
|
||
},
|
||
"page": {
|
||
"Description": "номер страницы результата (начиная с 1)",
|
||
"Title": "страница"
|
||
},
|
||
"pageSize": {
|
||
"Description": "Количество результатов на страницу",
|
||
"Title": "количество на страницу"
|
||
},
|
||
"searchMode": {
|
||
"Description": "Режим поиска: по информации о подаче, пути файла, диапазону дат или не искать",
|
||
"Title": "режим поиска"
|
||
},
|
||
"searchQuery": {
|
||
"Description": "Строка поискового запроса (режим поиска сообщений)",
|
||
"Title": "поисковый запрос"
|
||
},
|
||
"since": {
|
||
"Description": "Дата начала (в формате ISO 8601)",
|
||
"Title": "Дата начала"
|
||
},
|
||
"until": {
|
||
"Description": "Дата окончания (в формате ISO 8601)",
|
||
"Title": "дата окончания"
|
||
},
|
||
"workspaceName": {
|
||
"Description": "Имя или ID рабочей области для поиска",
|
||
"Title": "Название рабочей области"
|
||
}
|
||
},
|
||
"ReadFile": {
|
||
"Parameters": {
|
||
"commitHash": {
|
||
},
|
||
"filePath": {
|
||
},
|
||
"maxLines": {
|
||
},
|
||
"workspaceName": {
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"MCP": {
|
||
"Description": "Настройка параметров протокола контекста модели",
|
||
"Id": "Идентификатор сервера MCP",
|
||
"IdTitle": "ID сервера",
|
||
"TimeoutMessage": "сообщение с истекшим сроком",
|
||
"TimeoutMessageTitle": "сообщение о тайм-ауте",
|
||
"TimeoutSecond": "Таймаут (секунды)",
|
||
"TimeoutSecondTitle": "время ожидания",
|
||
"Title": "параметры протокола контекста модели"
|
||
},
|
||
"ModelParameters": {
|
||
"Description": "Настройка параметров модели",
|
||
"MaxTokens": "максимальное количество генерируемых токенов",
|
||
"MaxTokensTitle": "максимальное количество токенов",
|
||
"SystemPrompt": "системная подсказка модели",
|
||
"SystemPromptTitle": "системное приглашение",
|
||
"Temperature": "Температура генерации ответа (чем выше = тем креативнее)",
|
||
"TemperatureTitle": "температура",
|
||
"Title": "параметры модели",
|
||
"TopP": "Параметр выборки Top P",
|
||
"TopPTitle": "Топ P"
|
||
},
|
||
"ModelSelection": {
|
||
"Description": "выбор поставщика модели и конкретного названия модели",
|
||
"Model": "Название модели (например, gpt-4o, Qwen2.5-7B-Instruct)",
|
||
"ModelTitle": "модель",
|
||
"Provider": "поставщики моделей (например, OpenAI, SiliconFlow, Google и др.)",
|
||
"ProviderTitle": "провайдер",
|
||
"Title": "выбор модели"
|
||
},
|
||
"Plugin": {
|
||
},
|
||
"Position": {
|
||
"Description": "настройка позиционных параметров",
|
||
"TargetId": "ID целевого элемента",
|
||
"TargetIdTitle": "ID цели",
|
||
"Title": "позиционные аргументы",
|
||
"Type": "тип местоположения",
|
||
"TypeTitle": "тип местоположения"
|
||
},
|
||
"Prompt": {
|
||
"Caption": "краткое описание",
|
||
"CaptionTitle": "описание",
|
||
"Children": "Список подсказок будет объединен в итоговый текст подсказки сверху вниз, снаружи внутрь.",
|
||
"ChildrenTitle": "подсказка",
|
||
"Description": "Полная конфигурация подсказок, включая тип и содержание.",
|
||
"Enabled": "Включить эту подсказку? Только включенные подсказки будут добавлены в итоговый текст.",
|
||
"EnabledTitle": "включить",
|
||
"Id": "Уникальный идентификатор конфигурации подсказки, удобный для ссылки на targetId в PromptDynamicModification.",
|
||
"IdTitle": "ID",
|
||
"Role": "роль подсказки в интерфейсе, совместимом с OpenAI",
|
||
"RoleTitle": "персонаж",
|
||
"RoleType": {
|
||
"Assistant": "Помощник - ответы и реакции ИИ",
|
||
"System": "Система - определение правил поведения и фоновых установок ИИ",
|
||
"User": "Пользователь - имитация ввода и запросов пользователя"
|
||
},
|
||
"Source": "Источник или ссылка на подсказку (например, путь к файлу, URL и т. д.)",
|
||
"SourceTitle": "источник",
|
||
"Tags": "список тегов",
|
||
"TagsTitle": "метка",
|
||
"Text": "Содержание подсказки может включать синтаксис, поддерживаемый вики-текстом, например <<имя_переменной>>.",
|
||
"TextTitle": "текст",
|
||
"Title": "подсказка"
|
||
},
|
||
"ProviderModel": {
|
||
},
|
||
"Response": {
|
||
"Caption": "Заголовок ответа, используемый для идентификации записи ответа.",
|
||
"CaptionTitle": "заголовок",
|
||
"Description": "Ответ от внешнего API, который обычно служит целью для динамического изменения в ответе, имеет такую же структуру, как и подсказка. Можно заполнить его предустановленным содержимым или использовать в качестве заполнителя (контейнера), куда ResponseDynamicModification внесёт конкретное содержимое ответа от внешнего API.",
|
||
"Id": "уникальный идентификатор конфигурации ответа для удобства ссылки",
|
||
"IdTitle": "ID",
|
||
"Title": "отклик"
|
||
},
|
||
"TiddlyWikiPlugin": {
|
||
"ActionsTag": {
|
||
"Description": "Метка Action Tiddler, с помощью которой ИИ может найти выполняемые действия.",
|
||
"Title": "Метка Actions"
|
||
},
|
||
"DataSourceTag": {
|
||
"Description": "Метка для записи источника данных, с помощью которой ИИ может понять метод получения и фильтрации данных.",
|
||
"Title": "Тег DataSource"
|
||
},
|
||
"DescribeTag": {
|
||
"Description": "Метки для краткого описания, которые автоматически загружаются в подсказки и помогают ИИ понять доступные функции.",
|
||
"Title": "Опишите тег"
|
||
},
|
||
"Description": "Загрузка источника данных и инструкций для конкретных плагинов. Система автоматически загружает записи с тегом Describe в качестве фоновой информации.",
|
||
"EnableCache": {
|
||
"Description": "Включить кеширование, чтобы избежать повторных запросов к вики при каждом создании подсказки. При отключении кеширования описания будут очищены и загружены заново.",
|
||
"Title": "включить кэширование"
|
||
},
|
||
"Title": "Плагины TiddlyWiki",
|
||
"Tool": {
|
||
"Parameters": {
|
||
"pluginTitle": {
|
||
"Description": "Заголовок плагина для загрузки деталей. Система будет искать записи DataSource и Actions, содержащие этот заголовок.",
|
||
"Title": "Заголовок плагина"
|
||
}
|
||
}
|
||
},
|
||
"WorkspaceNameOrID": {
|
||
"Description": "Имя или идентификатор рабочей области для загрузки информации о плагине (по умолчанию 'wiki')",
|
||
"Title": "название или идентификатор рабочей области"
|
||
}
|
||
},
|
||
"Tool": {
|
||
"Caption": "краткое описание (для отображения в интерфейсе)",
|
||
"CaptionTitle": "заголовок",
|
||
"Content": "содержание или описание плагина",
|
||
"ContentTitle": "содержание",
|
||
"Enabled": "Решить, будет ли этот текст включен в итоговый подсказку.",
|
||
"EnabledTitle": "включить",
|
||
"ForbidOverrides": "Запрещено ли переопределять параметры этого плагина во время выполнения?",
|
||
"ForbidOverridesTitle": "запрещено перекрывать",
|
||
"Id": "ID экземпляра плагина (уникальный в пределах одного обработчика)",
|
||
"IdTitle": "ID экземпляра плагина",
|
||
"ToolId": "Выберите тип инструмента для использования",
|
||
"ToolIdTitle": "тип инструмента"
|
||
},
|
||
"WikiOperation": {
|
||
"Description": "Выполнение операций с Tiddler (добавление, удаление или установка текста) в рабочей области Wiki",
|
||
"Title": "Wiki операции",
|
||
"Tool": {
|
||
"Parameters": {
|
||
"extraMeta": {
|
||
"Description": "JSON-строка дополнительных метаданных, таких как теги и поля, по умолчанию \"{}\"",
|
||
"Title": "дополнительные метаданные"
|
||
},
|
||
"operation": {
|
||
"Description": "Тип выполняемой операции",
|
||
"Title": "тип операции"
|
||
},
|
||
"options": {
|
||
"Description": "JSON-строка параметров операции, по умолчанию \"{}\"",
|
||
"Title": "Опции действий"
|
||
},
|
||
"text": {
|
||
"Description": "Текстовое содержание Tiddler",
|
||
"Title": "Содержание Tiddler"
|
||
},
|
||
"title": {
|
||
"Description": "Заголовок Tiddler",
|
||
"Title": "Заголовок Tiddler"
|
||
},
|
||
"variables": {
|
||
"Description": "переменные, передаваемые в action tiddler, строка в формате JSON, по умолчанию \"{}\"",
|
||
"Title": "переменная"
|
||
},
|
||
"workspaceName": {
|
||
"Description": "Имя или идентификатор рабочей области для работы",
|
||
"Title": "название рабочего пространства"
|
||
}
|
||
}
|
||
},
|
||
"ToolResultDuration": "Количество ходов в диалоге, в течение которых результаты выполнения инструмента остаются видимыми; после этого результаты будут отображаться серым цветом.",
|
||
"ToolResultDurationTitle": "количество раундов устойчивого результата инструмента"
|
||
},
|
||
"WikiSearch": {
|
||
"Description": "Поиск содержимого рабочей области TiddlyWiki с помощью фильтрующих выражений",
|
||
"SourceType": "тип источника данных",
|
||
"SourceTypeTitle": "тип источника",
|
||
"Title": "Поиск в Вики",
|
||
"Tool": {
|
||
"Description": "Поиск содержимого Tiddler в рабочей области Wiki (поддерживает традиционный фильтрованный поиск и векторный семантический поиск)",
|
||
"Parameters": {
|
||
"filter": {
|
||
"Description": "TiddlyWiki выражения фильтров",
|
||
"Title": "фильтр"
|
||
},
|
||
"limit": {
|
||
"Description": "максимальное количество возвращаемых результатов",
|
||
"Title": "ограничение"
|
||
},
|
||
"query": {
|
||
"Description": "текст запроса (естественный язык), используемый при векторном поиске",
|
||
"Title": "запрос"
|
||
},
|
||
"searchType": {
|
||
"Description": "Выберите один режим поиска на основе правил или сходства.",
|
||
"Title": "тип поиска"
|
||
},
|
||
"threshold": {
|
||
"Description": "Порог схожести (0-1), результаты векторов ниже этого порога будут отфильтрованы.",
|
||
"Title": "порог"
|
||
},
|
||
"workspaceName": {
|
||
"Description": "Имя или идентификатор рабочей области для поиска",
|
||
"Title": "название рабочего пространства"
|
||
}
|
||
},
|
||
"UpdateEmbeddings": {
|
||
"Description": "Сгенерировать или обновить векторный индекс вложений для рабочей области Wiki, предназначенный для семантического поиска.",
|
||
"forceUpdate": {
|
||
"Description": "Принудительно ли пересоздавать индекс вложений, перезаписывая существующие данные (если установлено значение true, инкрементные обновления игнорируются).",
|
||
"Title": "принудительное обновление"
|
||
},
|
||
"workspaceName": {
|
||
"Description": "Имя или идентификатор рабочей области, для которой необходимо сгенерировать или обновить индекс векторных вложений.",
|
||
"Title": "Название рабочей области"
|
||
}
|
||
}
|
||
},
|
||
"ToolResultDuration": "Количество ходов, в течение которых результаты выполнения инструмента остаются видимыми в диалоге; после превышения этого количества результаты будут отображаться серым цветом.",
|
||
"ToolResultDurationTitle": "количество раундов устойчивого результата инструмента"
|
||
},
|
||
"WorkspacesList": {
|
||
"Description": "Внедрить список доступных рабочих областей Wiki в подсказку",
|
||
"Position": "Позиция вставки: before — перед, after — после.",
|
||
"PositionTitle": "позиция вставки",
|
||
"TargetId": "ID целевого подсказочного слова, список будет вставлен относительно этого подсказочного слова.",
|
||
"TargetIdTitle": "ID цели",
|
||
"Title": "Список рабочих областей"
|
||
}
|
||
},
|
||
"Search": {
|
||
"AvailableAgents": "доступные агенты",
|
||
"FailedToCreateChatWithAgent": "Не удалось создать диалог с агентом.",
|
||
"FailedToFetchAgents": "Не удалось получить список агентов",
|
||
"NoAgentsFound": "Агент не найден",
|
||
"NoClosedTabsFound": "Нет недавно закрытых вкладок",
|
||
"NoTabsFound": "Вкладка не найдена.",
|
||
"OpenTabs": "открытые вкладки",
|
||
"RecentlyClosedTabs": "Недавно закрытые вкладки"
|
||
},
|
||
"SplitView": {
|
||
"NoTabs": "В разделенном экране нет вкладок."
|
||
},
|
||
"Tab": {
|
||
"Title": {
|
||
"CreateNewAgent": "Создать нового интеллектуального агента",
|
||
"EditAgentDefinition": "Редакторский интеллектуальный агент",
|
||
"NewTab": "Новая вкладка",
|
||
"NewWeb": "создать новую веб-страницу",
|
||
"SplitView": "разделенный экран",
|
||
"WikiEmbed": "Вики"
|
||
}
|
||
},
|
||
"Tool": {
|
||
"Git": {
|
||
"Error": {
|
||
"WorkspaceNotFound": "Название или идентификатор рабочей области \"{{workspaceName}}\" не существует"
|
||
}
|
||
},
|
||
"Schema": {
|
||
"Description": "описание",
|
||
"Examples": "пример использования",
|
||
"Optional": "дополнительный",
|
||
"Parameters": "параметр",
|
||
"Required": "необходимый"
|
||
},
|
||
"TiddlyWikiPlugin": {
|
||
"Error": {
|
||
"PluginTitleRequired": "Заголовок плагина не может быть пустым.",
|
||
"WorkspaceNotFound": "Название или идентификатор рабочей области \"{{workspaceNameOrID}}\" не существует."
|
||
}
|
||
},
|
||
"WikiOperation": {
|
||
"Error": {
|
||
"WorkspaceNotExist": "Рабочее пространство {{workspaceID}} не существует",
|
||
"WorkspaceNotFound": "Название или идентификатор рабочего пространства \"{{workspaceName}}\" не существует. Доступные рабочие пространства: {{availableWorkspaces}}"
|
||
},
|
||
"Success": {
|
||
"ActionInvoked": "Действие \"{{actionTitle}}\" успешно выполнено в рабочей области Вики \"{{workspaceName}}\".",
|
||
"Added": "Успешно добавлен Tiddler \"{{title}}\" в рабочее пространство Wiki \"{{workspaceName}}\".",
|
||
"Deleted": "Успешно удален Tiddler \"{{title}}\" из рабочего пространства Wiki \"{{workspaceName}}\".",
|
||
"Updated": "Текст Tiddler \"{{title}}\" успешно установлен в рабочем пространстве Wiki \"{{workspaceName}}\"."
|
||
}
|
||
},
|
||
"WikiSearch": {
|
||
"Error": {
|
||
"ExecutionFailed": "Выполнение инструмента завершилось неудачей: {{error}}",
|
||
"FilterSearchRequiresFilter": "Для фильтрации поиска необходимо предоставить параметры фильтра (filter).",
|
||
"VectorSearchFailed": "Векторный поиск не удался: {{error}}",
|
||
"VectorSearchRequiresConfig": "Для векторного поиска требуется настройка ИИ (настройте провайдера и модель внедрения в настройках).",
|
||
"VectorSearchRequiresQuery": "Для векторного поиска необходимо предоставить параметры запроса (query).",
|
||
"WorkspaceNotExist": "Рабочее пространство {{workspaceID}} не существует",
|
||
"WorkspaceNotFound": "Название или идентификатор рабочего пространства \"{{workspaceName}}\" не существует. Доступные рабочие пространства: {{availableWorkspaces}}"
|
||
},
|
||
"Success": {
|
||
"Completed": "Поиск в Wiki завершен. Найдено {{totalResults}} результатов, показано {{shownResults}}:",
|
||
"NoResults": "В рабочей области Wiki \"{{workspaceName}}\" не найдены результаты для фильтра \"{{filter}}\".",
|
||
"NoVectorResults": "В рабочей области Wiki \"{{workspaceName}}\" не найдено результатов векторного поиска, соответствующих условиям (порог сходства: {{threshold}}).",
|
||
"VectorCompleted": "По результатам векторного поиска в рабочей области {{workspaceName}} найдены следующие соответствующие материалы:"
|
||
},
|
||
"UpdateEmbeddings": {
|
||
"Error": {
|
||
"ExecutionFailed": "Не удалось создать вложение: {{error}}",
|
||
"NoAIConfig": "Пожалуйста, сначала настройте провайдера ИИ и модель внедрения (в настройках).",
|
||
"WorkspaceNotExist": "Рабочее пространство {{workspaceID}} не существует",
|
||
"WorkspaceNotFound": "Название или идентификатор рабочего пространства \"{{workspaceName}}\" не существует. Доступные рабочие пространства: {{availableWorkspaces}}"
|
||
},
|
||
"Success": {
|
||
"Generated": "Успешно создан индекс векторных вложений для рабочей области {{workspaceName}}. Всего заметок: {{totalNotes}}, вложений: {{totalEmbeddings}}."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"Unknown": "неизвестный",
|
||
"WikiEmbed": {
|
||
"Error": "Не удалось встроить Wiki",
|
||
"Loading": "Загрузка Wiki..."
|
||
}
|
||
}
|