@goodandready/dsh-russian-lang 0.3.17 → 0.3.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"dsh-plugin-guard":{"checkDelayMs":"Задержка перед первой проверкой (мс)","checkIntervalMs":"Интервал проверки целостности (мс)","confPath":"Путь к файлу конфигурации правил","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","sub":"Защита целостности активных плагинов и профилей DSH","title":"Страж плагинов (Plugin Guard)"}}
1
+ {"dsh-plugin-guard":{"checkDelayMs":"Задержка перед первой проверкой (мс)","checkIntervalMs":"Интервал проверки целостности (мс)","confPath":"Путь к файлу конфигурации правил","currentVersion":"Текущая версия","invalidDelay":"Задержка должна быть от 1000 до 300000 мс","invalidInterval":"Интервал должен быть от 5000 до 86400000 мс","latestVersion":"Последняя версия","restartRequired":"Успешно обновлено! Перезапустите dsh-web.","save":"Сохранить","saveFailed":"Хост отклонил сохранение","saved":"Настройки сохранены","saving":"Сохранение…","sub":"Защита целостности активных плагинов и профилей DSH","title":"Страж плагинов (Plugin Guard)","unavailable":"Конфигурация настроек недоступна","upToDate":"Актуальная версия","update":"Обновить","updateAvailable":"Доступна новая версия","updateFailed":"Не удалось обновить","updating":"Обновление…"}}
@@ -1 +1 @@
1
- {"dsh-image-gen":{"card.actionRemoveBg":"Удалить фон","card.actionReroll":"Перегенерировать","card.actionUpscale":"Увеличить разрешение","card.copyPrompt":"Скопировать промпт","card.failed":"Ошибка генерации","card.generating":"Генерация изображения…","card.image":"Результат Image Studio","card.inpaint":"Инпейнтинг","card.origPrompt":"Исходный промпт","card.remix":"Ремикс","card.removeBg":"Удалить фон","card.reroll":"Перегенерировать","card.responsiveTabs":"Адаптивные экраны","card.seedPrefix":"Seed","card.sizePrefix":"Size","card.toolCall":"Вызов генерации изображения","card.unknownError":"An unknown error occurred during generation.","card.upscale":"Увеличить","card.vary":"Вариация","diagnostics.desc":"Быстрая проверка статуса подключения и задержки выбранного API сервиса генерации.","diagnostics.ready":"В норме","diagnostics.test":"Проверить подключение","diagnostics.testing":"Проверка...","diagnostics.title":"Диагностика подключения провайдера","f.apiKeyEnv":"Ссылка на ключ FAL","f.apiKeyEnvHint":"Имя записи в хранилище учётных данных, содержащей API-ключ FAL.","f.autoEnhancePrompt":"Auto Enhance Prompt","f.autoEnhancePromptHint":"Enrich prompts with photography, lighting, and composition quality tokens.","f.baseURL":"Базовый URL FAL","f.baseURLHint":"Эндпоинт сервиса очередей FAL.","f.cacheByPrompt":"Cache by Prompt Only","f.cacheByPromptHint":"Reuse existing result if the prompt has already been generated.","f.cacheBySeed":"Cache by Seed + Prompt","f.cacheBySeedHint":"Reuse existing result if the exact same seed and prompt are requested.","f.cacheTtlDays":"Cache Retention (Legacy)","f.cacheTtlDaysHint":"Legacy name for retention period in days.","f.customBaseURL":"Пользовательский базовый URL API","f.customBaseURLHint":"Корень OpenAI-совместимого эндпоинта изображений (например https://api.openai.com/v1).","f.customKeyEnv":"Ссылка на пользовательский ключ","f.customKeyEnvHint":"Имя записи в хранилище учётных данных, содержащей API-ключ для пользовательского эндпоинта.","f.customModel":"Пользовательский ID модели","f.customModelHint":"Имя модели, отправляемое на пользовательский эндпоинт изображений.","f.customSize":"Пользовательский размер изображения","f.customSizeHint":"Фиксированный размер, отправляемый на пользовательский эндпоинт (например 1024x1024).","f.dailyBudgetUsd":"Дневной бюджет ($ USD)","f.dailyBudgetUsdHint":"Дневной бюджет ($ USD)","f.defaultFormat":"Формат вывода","f.defaultFormatHint":"Целевой формат файла (PNG, JPEG или WEBP).","f.defaultSize":"Соотношение сторон по умолчанию","f.defaultSizeHint":"Соотношение сторон и разрешение, применяемые если image_size не указан.","f.defaultStylePreset":"Default Style Preset","f.defaultStylePresetHint":"Default style preset applied to generations (e.g. cinematic, anime, photorealistic).","f.deliverAs":"Режим доставки","f.deliverAsHint":"Как изображения передаются в диалог: \"link\" (безопасно для текстовых LLM) или \"image\" (мультимодальное зрение).","f.diskCache":"Дисковый кэш по хэшу","f.diskCacheHint":"Дисковый кэш по хэшу","f.enableLlmEnhancer":"Включить","f.enableLlmEnhancerHint":"Включить","f.enabled":"Включить","f.enabledHint":"Включить","f.enhanceBelowChars":"Улучшение промптов","f.enhanceBelowCharsHint":"Улучшение промптов","f.enhanceModel":"Улучшение промптов","f.enhanceModelHint":"Улучшение промптов","f.enhancePrompt":"Улучшение промптов","f.enhancePromptHint":"Улучшение промптов","f.fallbackProviders":"Цепочка резервных провайдеров","f.fallbackProvidersHint":"Список резервных провайдеров через запятую для перехода при ошибках 429, 5xx или исчерпании квоты (напр. replicate, custom, gemini).","f.geminiKeyEnv":"Gemini Key Reference","f.geminiKeyEnvHint":"Credential reference holding Google Gemini API key.","f.geminiModel":"Gemini Model ID","f.geminiModelHint":"Google Gemini image generation model identifier.","f.historyLimit":"History Limit","f.historyLimitHint":"Maximum number of recent generation records kept in memory.","f.inherit":"По умолчанию / Наследовать","f.localA1111Url":"Local A1111 URL (Legacy)","f.localA1111UrlHint":"Direct Automatic1111 endpoint URL.","f.localBaseURL":"Local Server URL","f.localBaseURLHint":"Server address (e.g. http://127.0.0.1:8188 for ComfyUI, http://127.0.0.1:7860 for A1111).","f.localCfg":"CFG Scale","f.localCfgHint":"Classifier-free guidance scale.","f.localComfyUrl":"Local ComfyUI URL (Legacy)","f.localComfyUrlHint":"Direct ComfyUI endpoint URL.","f.localKind":"Local Engine Architecture","f.localKindHint":"Select between ComfyUI API or Automatic1111 WebUI backend.","f.localModel":"Local Model / Checkpoint","f.localModelHint":"Checkpoint name or ComfyUI workflow name.","f.localSteps":"Sampling Steps","f.localStepsHint":"Number of denoising sampling steps.","f.loopGuardLimit":"Лимит защитного цикла (Loop Guard)","f.loopGuardLimitHint":"Лимит защитного цикла (Loop Guard)","f.model":"ID модели FAL","f.modelHint":"Целевая модель на эндпоинте FAL (например fal-ai/flux-2/klein/9b).","f.needCodex":"Built-in Codex subscription","f.needCustom":"Requires OpenAI-compatible endpoint","f.needFal":"Requires FAL API key","f.needGemini":"Requires Google Gemini API key","f.needGrok":"Built-in Grok subscription","f.needLocal":"Local ComfyUI or A1111","f.needReplicate":"Requires Replicate API token","f.needSeedream":"Requires SeaDream API key","f.outputDir":"Каталог сохранения","f.outputDirHint":"Путь к каталогу на диске, куда сохраняются сгенерированные изображения.","f.pollIntervalMs":"Интервал опроса (мс)","f.pollIntervalMsHint":"Частота проверки статуса задачи в асинхронной очереди.","f.provider":"Провайдер изображений","f.providerHint":"Бэкенд-сервис для генерации изображений.","f.pruneDays":"Срок хранения файлов (дней)","f.pruneDaysHint":"Срок хранения файлов (дней)","f.qualityGate":"Качество изображения","f.qualityGateHint":"Качество изображения","f.replicateKeyEnv":"Replicate Key Reference","f.replicateKeyEnvHint":"Credential reference holding the Replicate API token.","f.replicateModel":"Replicate Model ID","f.replicateModelHint":"Target model identifier on Replicate.","f.seedreamBaseURL":"SeaDream Base URL","f.seedreamBaseURLHint":"SeaDream API endpoint URL (ByteDance/Volcengine Ark).","f.seedreamKeyEnv":"SeaDream Key Reference","f.seedreamKeyEnvHint":"Credential reference holding the SeaDream API key.","f.seedreamModel":"SeaDream Model ID","f.seedreamModelHint":"ByteDance SeaDream model identifier.","f.stylePreset":"Суффикс художественного стиля","f.stylePresetHint":"Суффикс художественного стиля","f.subscriptionQuality":"Subscription Quality","f.subscriptionQualityHint":"Target quality profile when using Codex or Grok subscriptions.","f.timeoutMs":"Таймаут (мс)","f.timeoutMsHint":"Максимальный общий таймаут до прерывания запроса генерации.","gallery.copy_link":"Копировать Markdown-ссылку","gallery.copy_prompt":"Копировать промпт","gallery.empty":"Галерея пуста. Сгенерируйте первое изображение в чате!","gallery.inspector":"Детали записи генерации","gallery.loading":"Загрузка галереи…","gallery.title":"Галерея Image Studio","inpaint.apply":"Применить инпейнтинг","inpaint.brush":"Кисть","inpaint.brush_size":"Размер","inpaint.clear":"Очистить маску","inpaint.copied":"✓ Инструкция скопирована!","inpaint.eraser":"Ластик","inpaint.invert":"Инвертировать маску","inpaint.prompt_placeholder":"Опишите, что сгенерировать в области маски...","inpaint.title":"Холст инпейнтинга (закрасьте белой маской область для изменения)","inpaint.undo":"Отменить","matrix.blind_on":"Слепой режим активен","matrix.blind_toggle":"Показать стили","matrix.copied":"✓ Выбрано!","matrix.title":"Бенчмарк матрицы стилей (2×2)","matrix.use_style":"Использовать стиль","p.apiKeyEnv":"FAL_API_KEY","p.baseURL":"https://queue.fal.run","p.cacheTtlDays":"0","p.customBaseURL":"https://api.openai.com/v1","p.customKeyEnv":"OPENAI_API_KEY","p.customModel":"dall-e-3","p.customSize":"1024x1024","p.dailyBudgetUsd":"0.00","p.defaultStylePreset":"none","p.enhanceBelowChars":"200","p.enhanceModel":"Leave empty for default chat model","p.fallbackProviders":"replicate, custom, gemini","p.geminiKeyEnv":"GEMINI_API_KEY","p.geminiModel":"gemini-2.0-flash-exp-image-generation","p.historyLimit":"50","p.localA1111Url":"http://127.0.0.1:7860","p.localBaseURL":"http://127.0.0.1:8188","p.localCfg":"7","p.localComfyUrl":"http://127.0.0.1:8188","p.localModel":"v1-5-pruned-emaonly.safetensors","p.localSteps":"20","p.loopGuardLimit":"3","p.model":"fal-ai/flux-2/klein/9b","p.outputDir":"generated/images","p.pollIntervalMs":"2000","p.pruneDays":"0","p.replicateKeyEnv":"REPLICATE_API_TOKEN","p.replicateModel":"black-forest-labs/flux-schnell","p.seedreamBaseURL":"https://api.bytedanceapi.com/v1","p.seedreamKeyEnv":"SEEDREAM_API_KEY","p.seedreamModel":"seedream-4.0","p.timeoutMs":"180000","remix.copied":"✓ Copied!","remix.copy_instruction":"Copy Instruction","remix.creative_btn":"Creative (0.65)","remix.creativity_label":"Creativity / Denoising Strength","remix.drawer_title":"Variations & Style Remix Workbench","remix.prompt_placeholder":"Describe stylistic adjustments, new background, or variations...","remix.subtle_btn":"Subtle (0.25)","settings.collapse":"Свернуть","settings.credentialHint":"Ключи API хранятся в учётных данных DSH (~/.dsh/.credentials.yaml) и не попадают в файлы конфигурации.","settings.description":"Генерация изображений с помощью ИИ, дорисовка, вариации, апскейл и векторизация.","settings.discard":"Сбросить изменения","settings.expand":"Развернуть","settings.invalidNumber":"Пожалуйста, введите корректное число","settings.loading":"Загрузка настроек плагина…","settings.navLabel":"Студия изображений","settings.overridden":"переопределено","settings.readOnly":"Настройки доступны только для чтения в этом контексте.","settings.reset":"Сбросить по умолчанию","settings.save":"Сохранить настройки","settings.saveFailed":"Не удалось сохранить настройки. Пожалуйста, проверьте учетные данные и попробуйте снова.","settings.saving":"Сохранение…","settings.title":"Студия изображений","settings.unavailable":"Настройки плагина инициализируются. Они появятся автоматически через несколько секунд.","settings.unsaved":"Несохраненные изменения","stat.active_provider":"Активный провайдер","stat.budget_cache":"Бюджет и кэш","stat.format_size":"Стандартные параметры","stat.safety_status":"Безопасность и Loop Guard","studio.aspectRatio":"Соотношение сторон:","studio.canvas":"Холст студии","studio.copiedCommand":"Команда генерации скопирована в буфер обмена!","studio.copiedSnippet":"Фрагмент скопирован в буфер обмена!","studio.copyHtml":"Копировать HTML","studio.copyMarkdown":"Копировать Markdown","studio.download":"Скачать","studio.emptyCanvas":"Выберите изображение из ленты недавних ниже или нажмите «Сгенерировать».","studio.exitFullscreen":"Выйти из полноэкранного режима","studio.fullscreen":"На весь экран","studio.generate":"Сгенерировать в чате","studio.parameters":"Параметры генерации","studio.prompt":"Промпт:","studio.promptPlaceholder":"Опишите ваше видение...","studio.provider":"Провайдер:","studio.random":"Случайный","studio.randomizeSeed":"Случайный сид","studio.recent":"Недавние генерации","studio.seed":"Сид (необязательно):","studio.stylePreset":"Пресет стиля:","studio.title":"Студия изображений","studio.vault":"Хранилище ассетов","tab.cache":"Кэш и хранилище","tab.enhancer":"Промпт и стили","tab.gallery":"Галерея","tab.general":"Общие","tab.provider":"Провайдер","tab.safety":"Безопасность и бюджет","updater.check":"Check updates","updater.checking":"Checking…","updater.current":"Current version","updater.failed":"Update check failed: ","updater.latest":"Latest version","updater.success":"Plugin updated successfully! Please restart DSH service.","updater.title":"Plugin Updates","updater.upToDate":"Up to date","updater.updateNow":"Update to v{version}","updater.updating":"Updating…","vault.allProviders":"Все провайдеры","vault.allRatios":"Все соотношения","vault.confirmDelete":"Вы уверены, что хотите удалить этот ассет?","vault.copiedMarkdown":"Markdown-фрагмент скопирован в буфер обмена!","vault.copiedPrompt":"Промпт и сид скопированы в буфер обмена!","vault.delete":"Удалить","vault.deleteFailed":"Не удалось удалить ассет","vault.deleted":"Ассет удален","vault.download":"Скачать","vault.empty":"В хранилище нет ассетов.","vault.insert":"Вставить в чат","vault.inspector":"Инспектор ассетов","vault.loadMore":"Загрузить еще ассеты","vault.loading":"Загрузка...","vault.newest":"Сначала новые","vault.noPrompt":"Без промпта","vault.oldest":"Сначала старые","vault.provider":"Провайдер","vault.reroll":"Перегенерировать с тем же сидом","vault.search":"Поиск по промпту или тегам...","vault.seed":"Сид","vault.title":"Браузер ассетов и хранилище"}}
1
+ {"dsh-image-gen":{"card.actionRemoveBg":"Удалить фон","card.actionReroll":"Перегенерировать","card.actionUpscale":"Увеличить разрешение","card.copyPrompt":"Скопировать промпт","card.failed":"Ошибка генерации","card.generating":"Генерация изображения…","card.image":"Результат Image Studio","card.inpaint":"Инпейнтинг","card.origPrompt":"Исходный промпт","card.remix":"Ремикс","card.removeBg":"Удалить фон","card.reroll":"Перегенерировать","card.responsiveTabs":"Адаптивные экраны","card.seedPrefix":"Seed","card.sizePrefix":"Size","card.toolCall":"Вызов генерации изображения","card.unknownError":"An unknown error occurred during generation.","card.upscale":"Увеличить","card.vary":"Вариация","diagnostics.desc":"Быстрая проверка статуса подключения и задержки выбранного API сервиса генерации.","diagnostics.ready":"В норме","diagnostics.test":"Проверить подключение","diagnostics.testing":"Проверка...","diagnostics.title":"Диагностика подключения провайдера","f.apiKeyEnv":"Ссылка на ключ FAL","f.apiKeyEnvHint":"Имя записи в хранилище учётных данных, содержащей API-ключ FAL.","f.autoEnhancePrompt":"Auto Enhance Prompt","f.autoEnhancePromptHint":"Enrich prompts with photography, lighting, and composition quality tokens.","f.baseURL":"Базовый URL FAL","f.baseURLHint":"Эндпоинт сервиса очередей FAL.","f.cacheByPrompt":"Cache by Prompt Only","f.cacheByPromptHint":"Reuse existing result if the prompt has already been generated.","f.cacheBySeed":"Cache by Seed + Prompt","f.cacheBySeedHint":"Reuse existing result if the exact same seed and prompt are requested.","f.cacheTtlDays":"Cache Retention (Legacy)","f.cacheTtlDaysHint":"Legacy name for retention period in days.","f.customBaseURL":"Пользовательский базовый URL API","f.customBaseURLHint":"Корень OpenAI-совместимого эндпоинта изображений (например https://api.openai.com/v1).","f.customKeyEnv":"Ссылка на пользовательский ключ","f.customKeyEnvHint":"Имя записи в хранилище учётных данных, содержащей API-ключ для пользовательского эндпоинта.","f.customModel":"Пользовательский ID модели","f.customModelHint":"Имя модели, отправляемое на пользовательский эндпоинт изображений.","f.customSize":"Пользовательский размер изображения","f.customSizeHint":"Фиксированный размер, отправляемый на пользовательский эндпоинт (например 1024x1024).","f.dailyBudgetUsd":"Дневной бюджет ($ USD)","f.dailyBudgetUsdHint":"Дневной бюджет ($ USD)","f.defaultFormat":"Формат вывода","f.defaultFormatHint":"Целевой формат файла (PNG, JPEG или WEBP).","f.defaultSize":"Соотношение сторон по умолчанию","f.defaultSizeHint":"Соотношение сторон и разрешение, применяемые если image_size не указан.","f.defaultStylePreset":"Default Style Preset","f.defaultStylePresetHint":"Default style preset applied to generations (e.g. cinematic, anime, photorealistic).","f.deliverAs":"Режим доставки","f.deliverAsHint":"Как изображения передаются в диалог: \"link\" (безопасно для текстовых LLM) или \"image\" (мультимодальное зрение).","f.diskCache":"Дисковый кэш по хэшу","f.diskCacheHint":"Дисковый кэш по хэшу","f.enableLlmEnhancer":"Включить","f.enableLlmEnhancerHint":"Включить","f.enabled":"Включить","f.enabledHint":"Включить","f.enhanceBelowChars":"Улучшение промптов","f.enhanceBelowCharsHint":"Улучшение промптов","f.enhanceModel":"Улучшение промптов","f.enhanceModelHint":"Улучшение промптов","f.enhancePrompt":"Улучшение промптов","f.enhancePromptHint":"Улучшение промптов","f.fallbackProviders":"Цепочка резервных провайдеров","f.fallbackProvidersHint":"Список резервных провайдеров через запятую для перехода при ошибках 429, 5xx или исчерпании квоты (напр. replicate, custom, gemini).","f.geminiKeyEnv":"Gemini Key Reference","f.geminiKeyEnvHint":"Credential reference holding Google Gemini API key.","f.geminiModel":"Gemini Model ID","f.geminiModelHint":"Google Gemini image generation model identifier.","f.historyLimit":"History Limit","f.historyLimitHint":"Maximum number of recent generation records kept in memory.","f.inherit":"По умолчанию / Наследовать","f.localA1111Url":"Local A1111 URL (Legacy)","f.localA1111UrlHint":"Direct Automatic1111 endpoint URL.","f.localBaseURL":"Local Server URL","f.localBaseURLHint":"Server address (e.g. http://127.0.0.1:8188 for ComfyUI, http://127.0.0.1:7860 for A1111).","f.localCfg":"CFG Scale","f.localCfgHint":"Classifier-free guidance scale.","f.localComfyUrl":"Local ComfyUI URL (Legacy)","f.localComfyUrlHint":"Direct ComfyUI endpoint URL.","f.localKind":"Local Engine Architecture","f.localKindHint":"Select between ComfyUI API or Automatic1111 WebUI backend.","f.localModel":"Local Model / Checkpoint","f.localModelHint":"Checkpoint name or ComfyUI workflow name.","f.localSteps":"Sampling Steps","f.localStepsHint":"Number of denoising sampling steps.","f.loopGuardLimit":"Лимит защитного цикла (Loop Guard)","f.loopGuardLimitHint":"Лимит защитного цикла (Loop Guard)","f.model":"ID модели FAL","f.modelHint":"Целевая модель на эндпоинте FAL (например fal-ai/flux-2/klein/9b).","f.needCodex":"Built-in Codex subscription","f.needCustom":"Requires OpenAI-compatible endpoint","f.needFal":"Requires FAL API key","f.needGemini":"Requires Google Gemini API key","f.needGrok":"Built-in Grok subscription","f.needLocal":"Local ComfyUI or A1111","f.needReplicate":"Requires Replicate API token","f.needSeedream":"Requires SeaDream API key","f.outputDir":"Каталог сохранения","f.outputDirHint":"Путь к каталогу на диске, куда сохраняются сгенерированные изображения.","f.pollIntervalMs":"Интервал опроса (мс)","f.pollIntervalMsHint":"Частота проверки статуса задачи в асинхронной очереди.","f.provider":"Провайдер изображений","f.providerHint":"Бэкенд-сервис для генерации изображений.","f.pruneDays":"Срок хранения файлов (дней)","f.pruneDaysHint":"Срок хранения файлов (дней)","f.qualityGate":"Качество изображения","f.qualityGateHint":"Качество изображения","f.replicateKeyEnv":"Replicate Key Reference","f.replicateKeyEnvHint":"Credential reference holding the Replicate API token.","f.replicateModel":"Replicate Model ID","f.replicateModelHint":"Target model identifier on Replicate.","f.seedreamBaseURL":"SeaDream Base URL","f.seedreamBaseURLHint":"SeaDream API endpoint URL (ByteDance/Volcengine Ark).","f.seedreamKeyEnv":"SeaDream Key Reference","f.seedreamKeyEnvHint":"Credential reference holding the SeaDream API key.","f.seedreamModel":"SeaDream Model ID","f.seedreamModelHint":"ByteDance SeaDream model identifier.","f.stylePreset":"Суффикс художественного стиля","f.stylePresetHint":"Суффикс художественного стиля","f.subscriptionQuality":"Subscription Quality","f.subscriptionQualityHint":"Target quality profile when using Codex or Grok subscriptions.","f.timeoutMs":"Таймаут (мс)","f.timeoutMsHint":"Максимальный общий таймаут до прерывания запроса генерации.","f.toolsetCreative":"Творческий набор","f.toolsetCreativeHint":"Инструменты генерации: spritesheet, seamless_pattern, sketch_to_image, image_pack.","f.toolsetDesign":"Дизайн-набор","f.toolsetDesignHint":"Инструменты проектирования: style_matrix, theme_pair, ui_asset, character_sheet, beautify_diagram, anchor.","f.toolsetFrontend":"Фронтенд-набор","f.toolsetFrontendHint":"Инструменты веб-интерфейса: extract_design_tokens, image_to_css_gradient, check_image_contrast, responsive_mockups.","f.toolsetProcessing":"Набор постобработки","f.toolsetProcessingHint":"Инструменты обработки изображений: remove_background, upscale, vectorize, convert, grid, smart_crop, asset_pack, replace_image_text.","f.toolsetProfile":"Профиль инструментов","f.toolsetProfileHint":"Выберите набор инструментов в контексте: минимальный (до 3 основных инструментов, экономит ~8k токенов промпта), полный (30 инструментов) или пользовательский.","gallery.copy_link":"Копировать Markdown-ссылку","gallery.copy_prompt":"Копировать промпт","gallery.empty":"Галерея пуста. Сгенерируйте первое изображение в чате!","gallery.inspector":"Детали записи генерации","gallery.loading":"Загрузка галереи…","gallery.title":"Галерея Image Studio","inpaint.apply":"Применить инпейнтинг","inpaint.brush":"Кисть","inpaint.brush_size":"Размер","inpaint.clear":"Очистить маску","inpaint.copied":"✓ Инструкция скопирована!","inpaint.eraser":"Ластик","inpaint.invert":"Инвертировать маску","inpaint.prompt_placeholder":"Опишите, что сгенерировать в области маски...","inpaint.title":"Холст инпейнтинга (закрасьте белой маской область для изменения)","inpaint.undo":"Отменить","matrix.blind_on":"Слепой режим активен","matrix.blind_toggle":"Показать стили","matrix.copied":"✓ Выбрано!","matrix.title":"Бенчмарк матрицы стилей (2×2)","matrix.use_style":"Использовать стиль","p.apiKeyEnv":"FAL_API_KEY","p.baseURL":"https://queue.fal.run","p.cacheTtlDays":"0","p.customBaseURL":"https://api.openai.com/v1","p.customKeyEnv":"OPENAI_API_KEY","p.customModel":"dall-e-3","p.customSize":"1024x1024","p.dailyBudgetUsd":"0.00","p.defaultStylePreset":"none","p.enhanceBelowChars":"200","p.enhanceModel":"Leave empty for default chat model","p.fallbackProviders":"replicate, custom, gemini","p.geminiKeyEnv":"GEMINI_API_KEY","p.geminiModel":"gemini-2.0-flash-exp-image-generation","p.historyLimit":"50","p.localA1111Url":"http://127.0.0.1:7860","p.localBaseURL":"http://127.0.0.1:8188","p.localCfg":"7","p.localComfyUrl":"http://127.0.0.1:8188","p.localModel":"v1-5-pruned-emaonly.safetensors","p.localSteps":"20","p.loopGuardLimit":"3","p.model":"fal-ai/flux-2/klein/9b","p.outputDir":"generated/images","p.pollIntervalMs":"2000","p.pruneDays":"0","p.replicateKeyEnv":"REPLICATE_API_TOKEN","p.replicateModel":"black-forest-labs/flux-schnell","p.seedreamBaseURL":"https://api.bytedanceapi.com/v1","p.seedreamKeyEnv":"SEEDREAM_API_KEY","p.seedreamModel":"seedream-4.0","p.timeoutMs":"180000","remix.copied":"✓ Copied!","remix.copy_instruction":"Copy Instruction","remix.creative_btn":"Creative (0.65)","remix.creativity_label":"Creativity / Denoising Strength","remix.drawer_title":"Variations & Style Remix Workbench","remix.prompt_placeholder":"Describe stylistic adjustments, new background, or variations...","remix.subtle_btn":"Subtle (0.25)","settings.collapse":"Свернуть","settings.credentialHint":"Ключи API хранятся в учётных данных DSH (~/.dsh/.credentials.yaml) и не попадают в файлы конфигурации.","settings.description":"Генерация изображений с помощью ИИ, дорисовка, вариации, апскейл и векторизация.","settings.discard":"Сбросить изменения","settings.expand":"Развернуть","settings.invalidNumber":"Пожалуйста, введите корректное число","settings.loading":"Загрузка настроек плагина…","settings.navLabel":"Студия изображений","settings.overridden":"переопределено","settings.readOnly":"Настройки доступны только для чтения в этом контексте.","settings.reset":"Сбросить по умолчанию","settings.save":"Сохранить настройки","settings.saveFailed":"Не удалось сохранить настройки. Пожалуйста, проверьте учетные данные и попробуйте снова.","settings.saving":"Сохранение…","settings.title":"Студия изображений","settings.unavailable":"Настройки плагина инициализируются. Они появятся автоматически через несколько секунд.","settings.unsaved":"Несохраненные изменения","stat.active_provider":"Активный провайдер","stat.budget_cache":"Бюджет и кэш","stat.format_size":"Стандартные параметры","stat.safety_status":"Безопасность и Loop Guard","studio.aspectRatio":"Соотношение сторон:","studio.canvas":"Холст студии","studio.copiedCommand":"Команда генерации скопирована в буфер обмена!","studio.copiedSnippet":"Фрагмент скопирован в буфер обмена!","studio.copyHtml":"Копировать HTML","studio.copyMarkdown":"Копировать Markdown","studio.download":"Скачать","studio.emptyCanvas":"Выберите изображение из ленты недавних ниже или нажмите «Сгенерировать».","studio.exitFullscreen":"Выйти из полноэкранного режима","studio.fullscreen":"На весь экран","studio.generate":"Сгенерировать в чате","studio.parameters":"Параметры генерации","studio.prompt":"Промпт:","studio.promptPlaceholder":"Опишите ваше видение...","studio.provider":"Провайдер:","studio.random":"Случайный","studio.randomizeSeed":"Случайный сид","studio.recent":"Недавние генерации","studio.seed":"Сид (необязательно):","studio.stylePreset":"Пресет стиля:","studio.title":"Студия изображений","studio.vault":"Хранилище ассетов","tab.cache":"Кэш и хранилище","tab.enhancer":"Промпт и стили","tab.gallery":"Галерея","tab.general":"Общие","tab.provider":"Провайдер","tab.safety":"Безопасность и бюджет","updater.check":"Check updates","updater.checking":"Checking…","updater.current":"Current version","updater.failed":"Update check failed: ","updater.latest":"Latest version","updater.success":"Plugin updated successfully! Please restart DSH service.","updater.title":"Plugin Updates","updater.upToDate":"Up to date","updater.updateNow":"Update to v{version}","updater.updating":"Updating…","vault.allProviders":"Все провайдеры","vault.allRatios":"Все соотношения","vault.confirmDelete":"Вы уверены, что хотите удалить этот ассет?","vault.copiedMarkdown":"Markdown-фрагмент скопирован в буфер обмена!","vault.copiedPrompt":"Промпт и сид скопированы в буфер обмена!","vault.delete":"Удалить","vault.deleteFailed":"Не удалось удалить ассет","vault.deleted":"Ассет удален","vault.download":"Скачать","vault.empty":"В хранилище нет ассетов.","vault.insert":"Вставить в чат","vault.inspector":"Инспектор ассетов","vault.loadMore":"Загрузить еще ассеты","vault.loading":"Загрузка...","vault.newest":"Сначала новые","vault.noPrompt":"Без промпта","vault.oldest":"Сначала старые","vault.provider":"Провайдер","vault.reroll":"Перегенерировать с тем же сидом","vault.search":"Поиск по промпту или тегам...","vault.seed":"Сид","vault.title":"Браузер ассетов и хранилище"}}
@@ -1 +1 @@
1
- {"dsh-github-ops":{"approvalMode":"Подтверждение записи","approvalModeHint":"\"auto\" разрешает согласованные неразрушающие операции записи без запроса; удаление релиза, тега, секрета, переменной, набора правил, защиты ветки или отмена запуска всегда запрашивают подтверждение. \"ask\" запрашивает каждое действие записи; \"off\" передаёт контроль хосту.","baseUrl":"Базовый URL API","baseUrlHint":"Измените для GitHub Enterprise; по умолчанию используется публичный API.","cardHint":"Токен берётся из учётных данных DSH; в настройках хранится только его имя.","defaultRepository":"Репозиторий по умолчанию","defaultRepositoryHint":"owner/repo, используемый если вызов инструмента опускает репозиторий. Оставьте пустым, чтобы всегда указывать явно.","invalidNumber":"Введите положительное число.","maxRetries":"Повторы при ошибке чтения","maxRetriesHint":"Повтор чтения (GET/HEAD) при сетевом сбое, таймауте или 5xx. Запись никогда не повторяется автоматически.","noChanges":"Нет изменений для сохранения.","panelBack":"Вверх","panelChoose":"Выберите репозиторий для просмотра.","panelEmpty":"Здесь пока ничего нет.","panelInbox":"Входящие","panelIssues":"Задачи (Issues)","panelLoading":"Загрузка…","panelNoAccess":"Нет доступа к GitHub: настройте учётные данные, выполните вход или используйте инструмент gh CLI.","panelOpen":"Открыть в браузере","panelPulls":"Пул-реквесты","panelRepo":"Репозиторий","panelRuns":"Действия (Actions)","panelSearch":"Поиск публичных репозиториев…","panelTitle":"GitHub","prBarBranch":"в","prBarCommits":"коммит(ов) впереди","prBarCopied":"Инструкция скопирована: вставьте её в поле ввода и отправьте.","prBarCopyFailed":"Не удалось скопировать; инструкция указана в заголовке.","prBarCreate":"Создать PR","prBarMerge":"Слить PR","prBarReview":"Ревью","reviewRules":"Переопределение правил ревью (JSON)","reviewRulesHint":"Необязательно. sensitivePaths, sensitiveSeverity, attentionPaths, migrationPaths, testsRequired, sourcePatterns, testPatterns, largeDiffLines. Пример: {\"largeDiffLines\": 400, \"sensitivePaths\": [\".env\", \"private/**\"]}","save":"Сохранить","saved":"Сохранено","savedPartial":"Сохранено, за исключением: ","saving":"Сохранение…","scmAbort":"Прервать","scmActionFailed":"Git отклонил команду","scmAmend":"изменить коммит (amend)","scmBehindHint":"Отстаёт от апстрима: синхронизация подтянет изменения через rebase, затем отправит push","scmBranches":"Ветки","scmChanges":"Изменения","scmCommit":"Коммит","scmCommitPush":"Коммит и отправка (Push)","scmConfirm":"Подтвердить?","scmConflicts":"Конфликты","scmContinue":"Продолжить","scmCreate":"Создать","scmDelete":"Удалить","scmDiffEmpty":"Нет различий для этого файла (возможно, он бинарный или неотслеживаемый).","scmDiscard":"Отменить изменения","scmError":"Не удалось прочитать рабочую копию","scmInProgress":"В процессе","scmLoading":"Чтение рабочей копии…","scmMessage":"Сообщение коммита","scmNewBranch":"Новая ветка","scmNoChanges":"Нет индексированных или изменённых файлов","scmNoUpstream":"нет апстрима","scmNotRepo":"Эта рабочая область не является Git-репозиторием, здесь нечего отображать.","scmNothing":"Нечего коммитить: рабочая копия чиста.","scmPushBranch":"Отправить ветку (Push)","scmRefresh":"Обновить","scmRepoPath":"Путь к репозиторию (необязательно)","scmRepoPathHint":"Абсолютный путь; пустой означает рабочую область сессии","scmStage":"Индексировать","scmStaged":"В индексе","scmStashApply":"Применить","scmStashDrop":"Удалить","scmStashPop":"Применить и удалить (Pop)","scmStashSave":"Сохранить в stash","scmStashes":"Спрятанные изменения (Stashes)","scmSwitch":"Переключить","scmSync":"Синхронизировать","scmTags":"Теги","scmTitle":"Управление версиями","scmUnstage":"Убрать из индекса","scmUntracked":"Неотслеживаемые","scmWorking":"Обработка…","statusAccount":"Аккаунт","statusCache":"Кэш чтения","statusError":"Сбой проверки доступа","statusLoading":"Чтение настроек…","statusNotConfigured":"Доступ ещё не настроен","statusRate":"Лимит запросов","statusReadOnly":"Настройки доступны только для чтения в этой сессии.","statusRefresh":"Проверить снова","statusScopes":"Области доступа (Scopes)","statusSource":"Источник","statusTitle":"Доступ","statusUnavailable":"Сервис настроек недоступен в этой сборке: значения здесь редактировать нельзя.","sub":"Релизы, теги, защищённый шлюз API, публикация зеркал и настройки репозитория.","timeoutMs":"Таймаут запроса, мс","timeoutMsHint":"Предельное время выполнения одного запроса к GitHub до его прерывания.","title":"Операции с GitHub","tokenEnv":"Имя учётных данных","tokenEnvHint":"Имя записи в хранилище учётных данных DSH, содержащей токен GitHub. Сам токен здесь никогда не сохраняется.","tokenSource":"Источник доступа","tokenSourceHint":"\"auto\" проверяет учётные данные DSH, затем переменную окружения, затем сессию gh CLI. Зафиксируйте значение, чтобы использовать только один источник."}}
1
+ {"dsh-github-ops":{"approvalMode":"Подтверждение записи","approvalModeHint":"\"auto\" разрешает согласованные неразрушающие операции записи без запроса; удаление релиза, тега, секрета, переменной, набора правил, защиты ветки или отмена запуска всегда запрашивают подтверждение. \"ask\" запрашивает каждое действие записи; \"off\" передаёт контроль хосту.","baseUrl":"Базовый URL API","baseUrlHint":"Измените для GitHub Enterprise; по умолчанию используется публичный API.","cardHint":"Токен берётся из учётных данных DSH; в настройках хранится только его имя.","defaultRepository":"Репозиторий по умолчанию","defaultRepositoryHint":"owner/repo, используемый если вызов инструмента опускает репозиторий. Оставьте пустым, чтобы всегда указывать явно.","invalidNumber":"Введите положительное число.","maxRetries":"Повторы при ошибке чтения","maxRetriesHint":"Повтор чтения (GET/HEAD) при сетевом сбое, таймауте или 5xx. Запись никогда не повторяется автоматически.","noChanges":"Нет изменений для сохранения.","panelBack":"Вверх","panelChoose":"Выберите репозиторий для просмотра.","panelEmpty":"Здесь пока ничего нет.","panelInbox":"Входящие","panelIssues":"Задачи (Issues)","panelLoading":"Загрузка…","panelNoAccess":"Нет доступа к GitHub: настройте учётные данные, выполните вход или используйте инструмент gh CLI.","panelOpen":"Открыть в браузере","panelPulls":"Пул-реквесты","panelRepo":"Репозиторий","panelRuns":"Действия (Actions)","panelSearch":"Поиск публичных репозиториев…","panelTitle":"GitHub","prBarBranch":"в","prBarCommits":"коммит(ов) впереди","prBarCopied":"Инструкция скопирована: вставьте её в поле ввода и отправьте.","prBarCopyFailed":"Не удалось скопировать; инструкция указана в заголовке.","prBarCreate":"Создать PR","prBarMerge":"Слить PR","prBarReview":"Ревью","reviewRules":"Переопределение правил ревью (JSON)","reviewRulesHint":"Необязательно. sensitivePaths, sensitiveSeverity, attentionPaths, migrationPaths, testsRequired, sourcePatterns, testPatterns, largeDiffLines. Пример: {\"largeDiffLines\": 400, \"sensitivePaths\": [\".env\", \"private/**\"]}","save":"Сохранить","saved":"Сохранено","savedPartial":"Сохранено, за исключением: ","saving":"Сохранение…","scmAbort":"Прервать","scmActionFailed":"Git отклонил команду","scmAmend":"изменить коммит (amend)","scmBehindHint":"Отстаёт от апстрима: синхронизация подтянет изменения через rebase, затем отправит push","scmBranches":"Ветки","scmChanges":"Изменения","scmCommit":"Коммит","scmCommitPush":"Коммит и отправка (Push)","scmConfirm":"Подтвердить?","scmConflicts":"Конфликты","scmContinue":"Продолжить","scmCreate":"Создать","scmDelete":"Удалить","scmDiffEmpty":"Нет различий для этого файла (возможно, он бинарный или неотслеживаемый).","scmDiscard":"Отменить изменения","scmError":"Не удалось прочитать рабочую копию","scmInProgress":"В процессе","scmLoading":"Чтение рабочей копии…","scmMessage":"Сообщение коммита","scmNewBranch":"Новая ветка","scmNoChanges":"Нет индексированных или изменённых файлов","scmNoUpstream":"нет апстрима","scmNotRepo":"Эта рабочая область не является Git-репозиторием, здесь нечего отображать.","scmNothing":"Нечего коммитить: рабочая копия чиста.","scmPushBranch":"Отправить ветку (Push)","scmRefresh":"Обновить","scmRepoPath":"Путь к репозиторию (необязательно)","scmRepoPathHint":"Абсолютный путь; пустой означает рабочую область сессии","scmStage":"Индексировать","scmStaged":"В индексе","scmStashApply":"Применить","scmStashDrop":"Удалить","scmStashPop":"Применить и удалить (Pop)","scmStashSave":"Сохранить в stash","scmStashes":"Спрятанные изменения (Stashes)","scmSwitch":"Переключить","scmSync":"Синхронизировать","scmTags":"Теги","scmTitle":"Управление версиями","scmUnstage":"Убрать из индекса","scmUntracked":"Неотслеживаемые","scmWorking":"Обработка…","scmWorktrees":"Рабочие деревья","statusAccount":"Аккаунт","statusCache":"Кэш чтения","statusError":"Сбой проверки доступа","statusLoading":"Чтение настроек…","statusNotConfigured":"Доступ ещё не настроен","statusRate":"Лимит запросов","statusReadOnly":"Настройки доступны только для чтения в этой сессии.","statusRefresh":"Проверить снова","statusScopes":"Области доступа (Scopes)","statusSource":"Источник","statusTitle":"Доступ","statusUnavailable":"Сервис настроек недоступен в этой сборке: значения здесь редактировать нельзя.","sub":"Релизы, теги, защищённый шлюз API, публикация зеркал и настройки репозитория.","timeoutMs":"Таймаут запроса, мс","timeoutMsHint":"Предельное время выполнения одного запроса к GitHub до его прерывания.","title":"Операции с GitHub","tokenEnv":"Имя учётных данных","tokenEnvHint":"Имя записи в хранилище учётных данных DSH, содержащей токен GitHub. Сам токен здесь никогда не сохраняется.","tokenSource":"Источник доступа","tokenSourceHint":"\"auto\" проверяет учётные данные DSH, затем переменную окружения, затем сессию gh CLI. Зафиксируйте значение, чтобы использовать только один источник."}}
@@ -1 +1 @@
1
- {"ego-browser":{"actionFailed":"Не удалось выполнить действие: {error}","autoUnit":"авто","backstopIntervalMs":"Интервал контрольных кадров (мс)","backstopIntervalMsHint":"Периодичность отправки контрольного кадра при отсутствии событий в браузере (0 для отключения).","captureBackend":"Механизм захвата","captureBackendAuto":"Авто (FFmpeg, если доступен, иначе CDP)","captureBackendCdp":"Только CDP","captureBackendDesc":"FFmpeg использует меньше полосы пропускания и обеспечивает более плавный видеопоток; CDP работает без внешних зависимостей.","captureBackendFfmpeg":"FFmpeg (аппаратное/программное кодирование)","cdpBackstopDesc":"Гарантирует обновление экрана при статической картинке.","cdpBackstopIntervalMs":"Интервал восстановления CDP","cdpFps":"Частота кадров CDP (1-30)","cdpFpsDesc":"Частота передачи кадров при использовании захвата через CDP.","cdpMaxWidth":"Макс. ширина CDP (пиксели)","cdpMaxWidthDesc":"Ограничивает горизонтальное разрешение потока CDP для экономии трафика.","cdpQuality":"Качество изображений CDP (10-95)","cdpQualityDesc":"Качество сжатия JPEG для кадров CDP.","chromeArgs":"Дополнительные аргументы запуска Chrome","chromeArgsHint":"Добавляются в argv запуска Chrome. Вступают в силу при следующем холодном старте браузера (браузер singleton — выполните `ego-browser --stop` или перезапустите DSH для перезапуска). Заблокированы: --user-data-dir/--remote-debugging-port/--remote-allow-origins/--headless/--no-startup-window/--proxy-server (для прокси используйте EGO_LINUX_PROXY).","chromeBinary":"Исполняемый файл Chrome / Chromium","chromeBinaryDesc":"Абсолютный путь к браузеру или имя команды в PATH. Оставьте пустым для автоопределения.","chromePath":"Путь к бинарному файлу браузера","chromePathHint":"Путь к исполняемому файлу Chrome/Chromium/Edge. Пусто = автоопределение.","collapse":"Скрыть настройки","configLoadFailed":"Не удалось загрузить текущую конфигурацию.","copied":"Скопировано","copy":"Копировать","defaultBadge":"по умолчанию","discard":"Отменить","domainListPlaceholder":"example.com\n.google.com","domainsLabel":"Домены (по одному на строку)","egoCliArgs":"Дополнительные аргументы CLI ego-browser","egoCliArgsHint":"Добавляются к аргументам `ego-browser nodejs`. Вступают в силу при следующем вызове ego_*. Заблокированы: --status/--stop/--open/--spaces/--help (они завершают работу до выполнения heredoc). Используйте --headless через переменную окружения headless.","expand":"Показать настройки","ffmpegBitrateKbps":"Битрейт (кбит/с)","ffmpegBitrateKbpsDesc":"Целевой битрейт для видеопотока FFmpeg.","ffmpegChecking":"Проверка локального FFmpeg…","ffmpegDownloading":"Загрузка FFmpeg…","ffmpegEncoder":"Видеокодек FFmpeg","ffmpegEncoderAuto":"Авто (аппаратное ускорение при наличии)","ffmpegEncoderDesc":"Кодек H.264 для кодирования потока.","ffmpegEncoderH264Nvenc":"NVIDIA NVENC (h264_nvenc)","ffmpegEncoderH264Qsv":"Intel Quick Sync (h264_qsv)","ffmpegEncoderH264Vaapi":"VAAPI (h264_vaapi)","ffmpegEncoderLibx264":"Программный x264 (libx264)","ffmpegExtracting":"Распаковка FFmpeg…","ffmpegFailed":"Сбой установки FFmpeg","ffmpegFps":"Частота кадров FFmpeg (1-60)","ffmpegFpsDesc":"Частота кадров видеопотока FFmpeg.","ffmpegInstall":"Скачать FFmpeg","ffmpegMaxWidth":"Макс. ширина FFmpeg (пиксели)","ffmpegMaxWidthDesc":"Максимальная ширина видеокадра FFmpeg.","ffmpegMissing":"Совместимый FFmpeg не найден","ffmpegPath":"Путь к FFmpeg","ffmpegPathDesc":"Абсолютный путь к бинарному файлу ffmpeg или имя команды в PATH.","ffmpegProbing":"Проверка возможностей захвата…","ffmpegReady":"Готов","ffmpegRecheck":"Перепроверить","ffmpegReinstall":"Переустановить","ffmpegRequired":"FFmpeg (требуется установка)","ffmpegSource":"Источник","ffmpegTitle":"Установка FFmpeg","ffmpegUnsupported":"Захват через FFmpeg не поддерживается на этой платформе","ffmpegVerifying":"Проверка загрузки…","ffmpegVersion":"Версия","fpsUnit":"кадр/с","githubMirror":"Зеркало GitHub","githubMirrorHint":"Заменяет https://github.com для загрузок с GitHub, например https://gh-proxy.com/github.com.","groupGeneral":"Браузер и запуск","groupImport":"Импорт учётных данных","groupStream":"Параметры видеопотока","idleTimeoutMin":"Автоостановка при простое (минуты)","idleTimeoutMinHint":"Остановить фоновый браузер после N минут без вызовов ego_* (0 = отключено). Холодный старт при следующем вызове (~2-4 с). Просмотр панели не считается активностью.","intro":"Интеграция браузера агента. Настройте путь к исполняемому файлу Chrome/Chromium и параметры трансляции ниже.","isolateSpaces":"Изоляция пространств","isolateSpacesHint":"Отключено: постоянный профиль на диске, авторизации сохраняются между перезапусками. Включено: песочница только в памяти для каждой задачи.","isolateSpacesOff":"Отключено (постоянный профиль, сохранять авторизации)","isolateSpacesOn":"Включено (изолированная песочница в памяти)","kbpsUnit":"кбит/с","loginImportAction":"Импортировать сессии","loginImportBrave":"Brave Browser","loginImportBusy":"Выполняется…","loginImportChrome":"Google Chrome","loginImportCloseSource":"Сначала закройте исходный браузер, если он запущен (окна восстановятся при следующем открытии)","loginImportClosed":" (исходный браузер был закрыт и может быть открыт снова)","loginImportDesc":"Перенос cookies для указанных доменов.","loginImportDomains":"Домены (через запятую; пусто = ВСЕ)","loginImportDomainsHint":"например, bilibili.com, zhihu.com — включая поддомены. Предпочтительнее явный список вместо импорта всех cookies.","loginImportEdge":"Microsoft Edge","loginImportEmpty":"Укажите хотя бы один домен для импорта.","loginImportIntro":"Копирование cookies авторизации из повседневного Chrome/Edge/Brave в браузер агента (сквозная передача через CDP — без автономной расшифровки). Сначала выполните пробу, затем импортируйте с явным списком доменов.","loginImportProbe":"Проверить","loginImportProbeResult":"Доступно для импорта: {matched} cookies на {domains} доменах (всего прочитано {total}) — ничего не записано.","loginImportResult":"Импортировано {written} cookies на {domains} доменах из {source}. Они сохраняются между перезапусками.","loginImportRun":"Импортировать","loginImportSource":"Источник","loginImportTitle":"Импорт авторизаций из системного браузера","minUnit":"мин","msUnit":"мс","namespaceUnavailable":"Канал настройки ego-browser недоступен. Повторите попытку позже.","pxUnit":"пикс","readOnly":"В данном развёртывании настройки доступны только для чтения.","retry":"Повторить","save":"Сохранить","saving":"Сохранение…","streamProfile":"Профиль качества","title":"ego-browser","unsaved":"Не сохранено"}}
1
+ {"ego-browser":{"actionFailed":"Не удалось выполнить действие: {error}","autoUnit":"авто","backstopIntervalMs":"Интервал контрольных кадров (мс)","backstopIntervalMsHint":"Периодичность отправки контрольного кадра при отсутствии событий в браузере (0 для отключения).","captureBackend":"Механизм захвата","captureBackendAuto":"Авто (FFmpeg, если доступен, иначе CDP)","captureBackendCdp":"Только CDP","captureBackendDesc":"FFmpeg использует меньше полосы пропускания и обеспечивает более плавный видеопоток; CDP работает без внешних зависимостей.","captureBackendFfmpeg":"FFmpeg (аппаратное/программное кодирование)","cdpBackstopDesc":"Гарантирует обновление экрана при статической картинке.","cdpBackstopIntervalMs":"Интервал восстановления CDP","cdpFps":"Частота кадров CDP (1-30)","cdpFpsDesc":"Частота передачи кадров при использовании захвата через CDP.","cdpMaxWidth":"Макс. ширина CDP (пиксели)","cdpMaxWidthDesc":"Ограничивает горизонтальное разрешение потока CDP для экономии трафика.","cdpQuality":"Качество изображений CDP (10-95)","cdpQualityDesc":"Качество сжатия JPEG для кадров CDP.","chromeArgs":"Дополнительные аргументы запуска Chrome","chromeArgsHint":"Добавляются в argv запуска Chrome. Вступают в силу при следующем холодном старте браузера (браузер singleton — выполните `ego-browser --stop` или перезапустите DSH для перезапуска). Заблокированы: --user-data-dir/--remote-debugging-port/--remote-allow-origins/--headless/--no-startup-window/--proxy-server (для прокси используйте EGO_LINUX_PROXY).","chromeBinary":"Исполняемый файл Chrome / Chromium","chromeBinaryDesc":"Абсолютный путь к браузеру или имя команды в PATH. Оставьте пустым для автоопределения.","chromePath":"Путь к бинарному файлу браузера","chromePathHint":"Путь к исполняемому файлу Chrome/Chromium/Edge. Пусто = автоопределение.","collapse":"Скрыть настройки","configLoadFailed":"Не удалось загрузить текущую конфигурацию.","copied":"Скопировано","copy":"Копировать","defaultBadge":"по умолчанию","disableFrameRelay":"Отключить трансляцию live-кадров","disableFrameRelayHint":"Трансляция видеоряда полностью выключается: воркер ego-cast, захват CDP/WGC и ffmpeg не запускаются, а панель просмотра не открывает стрим. Инструменты ego_* продолжают работать в штатном режиме.","disableFrameRelayOff":"Выкл (live-просмотр включен)","disableFrameRelayOn":"Вкл (кадры не отправляются на страницу)","discard":"Отменить","domainListPlaceholder":"example.com\n.google.com","domainsLabel":"Домены (по одному на строку)","egoCliArgs":"Дополнительные аргументы CLI ego-browser","egoCliArgsHint":"Добавляются к аргументам `ego-browser nodejs`. Вступают в силу при следующем вызове ego_*. Заблокированы: --status/--stop/--open/--spaces/--help (они завершают работу до выполнения heredoc). Используйте --headless через переменную окружения headless.","expand":"Показать настройки","ffmpegBitrateKbps":"Битрейт (кбит/с)","ffmpegBitrateKbpsDesc":"Целевой битрейт для видеопотока FFmpeg.","ffmpegChecking":"Проверка локального FFmpeg…","ffmpegDownloading":"Загрузка FFmpeg…","ffmpegEncoder":"Видеокодек FFmpeg","ffmpegEncoderAuto":"Авто (аппаратное ускорение при наличии)","ffmpegEncoderDesc":"Кодек H.264 для кодирования потока.","ffmpegEncoderH264Nvenc":"NVIDIA NVENC (h264_nvenc)","ffmpegEncoderH264Qsv":"Intel Quick Sync (h264_qsv)","ffmpegEncoderH264Vaapi":"VAAPI (h264_vaapi)","ffmpegEncoderLibx264":"Программный x264 (libx264)","ffmpegExtracting":"Распаковка FFmpeg…","ffmpegFailed":"Сбой установки FFmpeg","ffmpegFps":"Частота кадров FFmpeg (1-60)","ffmpegFpsDesc":"Частота кадров видеопотока FFmpeg.","ffmpegInstall":"Скачать FFmpeg","ffmpegMaxWidth":"Макс. ширина FFmpeg (пиксели)","ffmpegMaxWidthDesc":"Максимальная ширина видеокадра FFmpeg.","ffmpegMissing":"Совместимый FFmpeg не найден","ffmpegPath":"Путь к FFmpeg","ffmpegPathDesc":"Абсолютный путь к бинарному файлу ffmpeg или имя команды в PATH.","ffmpegProbing":"Проверка возможностей захвата…","ffmpegReady":"Готов","ffmpegRecheck":"Перепроверить","ffmpegReinstall":"Переустановить","ffmpegRequired":"FFmpeg (требуется установка)","ffmpegSource":"Источник","ffmpegTitle":"Установка FFmpeg","ffmpegUnsupported":"Захват через FFmpeg не поддерживается на этой платформе","ffmpegVerifying":"Проверка загрузки…","ffmpegVersion":"Версия","fpsUnit":"кадр/с","githubMirror":"Зеркало GitHub","githubMirrorHint":"Заменяет https://github.com для загрузок с GitHub, например https://gh-proxy.com/github.com.","groupGeneral":"Браузер и запуск","groupImport":"Импорт учётных данных","groupStream":"Параметры видеопотока","idleTimeoutMin":"Автоостановка при простое (минуты)","idleTimeoutMinHint":"Остановить фоновый браузер после N минут без вызовов ego_* (0 = отключено). Холодный старт при следующем вызове (~2-4 с). Просмотр панели не считается активностью.","intro":"Интеграция браузера агента. Настройте путь к исполняемому файлу Chrome/Chromium и параметры трансляции ниже.","isolateSpaces":"Изоляция пространств","isolateSpacesHint":"Отключено: постоянный профиль на диске, авторизации сохраняются между перезапусками. Включено: песочница только в памяти для каждой задачи.","isolateSpacesOff":"Отключено (постоянный профиль, сохранять авторизации)","isolateSpacesOn":"Включено (изолированная песочница в памяти)","kbpsUnit":"кбит/с","loginImportAction":"Импортировать сессии","loginImportBrave":"Brave Browser","loginImportBusy":"Выполняется…","loginImportChrome":"Google Chrome","loginImportCloseSource":"Сначала закройте исходный браузер, если он запущен (окна восстановятся при следующем открытии)","loginImportClosed":" (исходный браузер был закрыт и может быть открыт снова)","loginImportDesc":"Перенос cookies для указанных доменов.","loginImportDomains":"Домены (через запятую; пусто = ВСЕ)","loginImportDomainsHint":"например, bilibili.com, zhihu.com — включая поддомены. Предпочтительнее явный список вместо импорта всех cookies.","loginImportEdge":"Microsoft Edge","loginImportEmpty":"Укажите хотя бы один домен для импорта.","loginImportIntro":"Копирование cookies авторизации из повседневного Chrome/Edge/Brave в браузер агента (сквозная передача через CDP — без автономной расшифровки). Сначала выполните пробу, затем импортируйте с явным списком доменов.","loginImportProbe":"Проверить","loginImportProbeResult":"Доступно для импорта: {matched} cookies на {domains} доменах (всего прочитано {total}) — ничего не записано.","loginImportResult":"Импортировано {written} cookies на {domains} доменах из {source}. Они сохраняются между перезапусками.","loginImportRun":"Импортировать","loginImportSource":"Источник","loginImportTitle":"Импорт авторизаций из системного браузера","minUnit":"мин","msUnit":"мс","namespaceUnavailable":"Канал настройки ego-browser недоступен. Повторите попытку позже.","pxUnit":"пикс","readOnly":"В данном развёртывании настройки доступны только для чтения.","relayDisabledBody":"Отключите опцию «Отключить трансляцию live-кадров» в Настройки → Плагины → ego-browser, чтобы видеть live-трансляцию здесь.","relayDisabledTitle":"Трансляция кадров отключена","retry":"Повторить","save":"Сохранить","saving":"Сохранение…","streamProfile":"Профиль качества","title":"ego-browser","unsaved":"Не сохранено"}}
package/lib/pure.js CHANGED
@@ -371,15 +371,18 @@ export const typoQuotes = (text) => text
371
371
 
372
372
  export const typoDash = (text) => text
373
373
  .replace(/(^|[\s(\[«])--(?=\s|$)/g, '$1—')
374
- .replace(/(^|[\s(\[«])-(?=\s)/g, '$1—')
374
+ .replace(/(?<=[\p{L}\p{N}»\)]) - (?=[\p{L}\p{N}«\(])/gu, ' — ')
375
375
 
376
376
  export const typoPunct = (text) => text.replace(/\s+([,.:;!?])(?=\s|$)/g, '$1')
377
377
 
378
378
  export const TYPO_SHORT = new Set(['в', 'с', 'к', 'о', 'у', 'а', 'и', 'но', 'не', 'ни', 'на', 'по', 'до', 'из', 'за', 'от', 'об'])
379
379
 
380
- export const typoNbsp = (text) => text.replace(/(^|[\s(\[«])([а-яё]{1,2})(\s+)/g, (match, lead, word) => (
381
- TYPO_SHORT.has(word) ? lead + word + ' ' : match
382
- ))
380
+ export const typoNbsp = (text) => text
381
+ .replace(/(^|[\s(\[«])([а-яё]{1,2})(\s+)/g, (match, lead, word) => (
382
+ TYPO_SHORT.has(word) ? lead + word + ' ' : match
383
+ ))
384
+ .replace(/(\d) ([а-яё]{1,24})(?![а-яё])/giu, '$1 $2')
385
+ .replace(/(\d) ([%°₽$€£]|кб|КБ|МБ|ГБ)(?=\s|$)/giu, '$1 $2')
383
386
 
384
387
  // \b здесь не годится: он определён через \w = [A-Za-z0-9_], кириллица в \w не
385
388
  // входит, поэтому границы слова перед «в» в «все» просто нет и ни одна якорная
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodandready/dsh-russian-lang",
3
- "version": "0.3.17",
3
+ "version": "0.3.19",
4
4
  "description": "Russian localization for DeepSeek Harness (DSH v0.1.7-rc.1+) web UI: adds Русский as native language option. 100.0% coverage across 11,295 keys (127 namespaces). Features full DSH v0.1.7-rc.1 core support (terminal, archive, command palette, Auto review, trajectory, PTC/Creator presets) and complete GoodAndReady plugin catalog (subscriptions, tts, image-gen, voice, key-limits, notify, commandcode, plugin-console).",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -70,4 +70,4 @@
70
70
  "bin": {
71
71
  "dsh-i18n": "./bin/dsh-i18n.mjs"
72
72
  }
73
- }
73
+ }