diff --git a/ru/chat.json b/ru/chat.json index 0f865bb7..e3fb288c 100644 --- a/ru/chat.json +++ b/ru/chat.json @@ -38,6 +38,7 @@ "actions/sendMessage/error": "Не удалось отправить сообщение", "actions/loadModel/error": "🥲 Не удалось загрузить модель", "actions/addFile": "[Экспериментально] Прикрепить файл к этому сообщению\n(.pdf, текст или .docx)", + "actions/addFile/label": "Прикрепить файл", "actions/changeRole": "Переключиться между ролями Пользователя и Ассистента.\n\nЭто полезно для направления диалога в определенное русло.\n\nМожно использовать для моделирования сценариев 'обучения на нескольких примерах' или 'обучения в контексте'.", "actions/addImage": "Добавить изображение", "actions/deleteMessage": "Удалить сообщение", @@ -56,6 +57,8 @@ "actions/loadLastModel": "Перезагрузить последнюю использованную модель", "actions/loadLastModel/tooltip": "Нажмите, чтобы загрузить модель, которую вы последний раз использовали с этим чатом:\n\n{{lastModel}}", "actions/loadLastModel/error": "Ошибка при загрузке последней использованной модели.", + "actions/clearLastUsedModel": "Очистить последнюю использованную модель", + "actions/clearLastUsedModel/error": "Не удалось очистить последнюю использованную модель.", "actions/continueCurrentModel": "Использовать текущую модель", "actions/continueCurrentModel/tooltip": "Текущая модель: {{currentModel}}", "actions/changeToLastUsedModel": "Загрузить {{lastModel}}", @@ -85,6 +88,8 @@ "actions/createChatAtRoot/error": "Не удалось создать чат на корневом уровне", "actions/createFolderAtRoot": "Создать новую папку", "actions/createFolderAtRoot/error": "Не удалось создать папку на корневом уровне", + "actions/openInFolder/mac": "Показать в Finder", + "actions/openInFolder/pc": "Показать в Проводнике", "actions/createChat/error": "Не удалось создать чат", "actions/deleteChat/errorTitle": "Не удалось удалить чат", "userFile/fileSizeLimit": "Ограничение размера файла: ", @@ -126,6 +131,7 @@ "style/debugBlocks/label": "Показывать блоки отладки", "style/thinkingUI/label": "Разворачивать блоки рассуждений по умолчанию", "style/chatFullWidth/label": "Растягивать чат на всю ширину", + "style/chatUtilityMenusShowLabel/label": "Показывать подписи пунктов меню утилит чата", "messageBlocks": { "expandBlockTooltip": "Развернуть содержимое", "collapseBlockTooltip": "Свернуть содержимое", @@ -135,6 +141,8 @@ "expandTooltip": "Развернуть блок информации отладки" } }, + "chatTabOptions/clearAllMessages": "Очистить все сообщения...", + "chatTabOptions/duplicateChat": "Дублировать чат", "topBarActions/duplicateChat": "Дублировать", "topBarActions/clearChat": "Очистить чат", "topBarActions/clearChatConfirmation": "Вы уверены, что хотите удалить все сообщения из этого чата?", @@ -166,7 +174,8 @@ "placeholder": "Созданные вами плагины будут отображаться здесь" }, "startRunningDevelopmentPlugin/error": "Не удалось запустить плагин в режиме разработки", - "stopRunningDevelopmentPlugin/error": "Не удалось остановить плагин в режиме разработки" + "stopRunningDevelopmentPlugin/error": "Не удалось остановить плагин в режиме разработки", + "forceReInitPlugin/error": "Не удалось перезапустить плагин" }, "pluginConfiguration": { "title": "Настройка плагина", @@ -190,7 +199,11 @@ "revealInFinder": "Показать в Finder", "openInFileExplorer": "Открыть в проводнике" } - } + }, + "localFork": { + "error": "Не удалось создать локальную копию разработки плагина." + }, + "restartErrorPlugin/error": "Не удалось перезапустить плагин" }, "genInfo": { "tokensPerSecond": "{{tokensPerSecond}} токенов/сек", @@ -206,6 +219,11 @@ "stopReason.maxPredictedTokensReached": "Достигнут максимальный лимит предсказанных токенов", "stopReason.contextLengthReached": "Достигнут лимит длины контекста", "speculativeDecodedBy": "Черновая модель: {{decodedBy}}", - "speculativeDecodingStats": "Принято {{accepted}}/{{total}} черновых токенов ({{percentage}}%)" + "speculativeDecodingStats": "Принято {{accepted}}/{{total}} черновых токенов ({{percentage}}%)", + "speculativeDecodingAcceptedPercentage": "{{percentage}}% принятых черновых токенов", + "speculativeDecodingTooltip": "Принято {{accepted}}/{{total}} черновых токенов" + }, + "tabs": { + "systemPromptEditorTab.headerLabel": "Редактирование системного промпта" } } diff --git a/ru/config.json b/ru/config.json index b357ce7a..64422562 100644 --- a/ru/config.json +++ b/ru/config.json @@ -31,11 +31,18 @@ "sampling/title": "Выборка", "settings/title": "Настройки", "toolUse/title": "Использование инструментов", - "promptTemplate/title": "Шаблон запроса" + "promptTemplate/title": "Шаблон запроса", + "customFields/title": "Пользовательские поля" }, "llm.prediction.systemPrompt/title": "Системный промпт", "llm.prediction.systemPrompt/description": "Используйте это поле для предоставления фона модели, такого как набор правил, ограничений или общих требований. Это поле также часто называется \"системной подсказкой\".", "llm.prediction.systemPrompt/subTitle": "Руководство для ИИ", + "llm.prediction.systemPrompt/openEditor": "Редактор", + "llm.prediction.systemPrompt/closeEditor": "Закрыть редактор", + "llm.prediction.systemPrompt/openedEditor": "Открыто в редакторе...", + "llm.prediction.systemPrompt/edit": "Редактировать системный промпт...", + "llm.prediction.systemPrompt/addInstructionsWithMore": "Добавить инструкции...", + "llm.prediction.systemPrompt/addInstructions": "Добавить инструкции", "llm.prediction.temperature/title": "Температура", "llm.prediction.temperature/subTitle": "Уровень случайности. 0 даёт одинаковый результат, более высокие значения повышают креативность и разнообразие", "llm.prediction.temperature/info": "Из документации llama.cpp: \"Значение по умолчанию <{{dynamicValue}}> обеспечивает баланс между случайностью и детерминизмом. В крайнем случае, температура 0 всегда будет выбирать наиболее вероятный следующий токен, приводя к идентичным результатам при каждом запуске\"", @@ -109,6 +116,23 @@ "llm.prediction.speculativeDecoding.draftModel/title": "Модель черновика", "llm.prediction.reasoning.parsing/title": "Парсинг секций рассуждений", "llm.prediction.reasoning.parsing/subTitle": "Как обрабатывать разделы рассуждений в выводе модели", + "llm.load.mainGpu/title": "Основной GPU", + "llm.load.mainGpu/subTitle": "GPU, который будет приоритетным для вычислений модели", + "llm.load.mainGpu/placeholder": "Выбрать основной GPU...", + "llm.load.splitStrategy/title": "Стратегия разделения", + "llm.load.splitStrategy/subTitle": "Как распределить вычисления модели между GPU", + "llm.load.splitStrategy/placeholder": "Выбрать стратегию разделения...", + "llm.load.offloadKVCacheToGpu/title": "Выгрузить KV-кэш в память GPU", + "llm.load.offloadKVCacheToGpu/subTitle": "Выгрузить KV-кэш в память GPU. Улучшает производительность, но требует больше памяти GPU", + "llm.load.numParallelSessions/title": "Макс. количество одновременных предсказаний", + "llm.load.numParallelSessions/subTitle": "Максимальное количество предсказаний, которые модель может выполнять одновременно. Скорость каждого отдельного предсказания может снизиться при параллелизме, но каждое предсказание начнётся быстрее и можно достичь большей общей пропускной способности", + "llm.load.useUnifiedKvCache/title": "Единый KV-кэш", + "llm.load.useUnifiedKvCache/subTitle": "Определяют, разделяют ли одновременные предсказания один KV-кэш, экономя память. Отключение гарантирует, что каждое предсказание может использовать полную длину контекста за счёт большего использования памяти", + "load.gpuStrictVramCap/title": "Ограничить выгрузку модели на выделенную память GPU", + "load.gpuStrictVramCap.customSubTitleOff": "ВЫКЛ: Разрешить выгрузку весов модели в разделяемую память, если выделенная память GPU заполнена", + "load.gpuStrictVramCap.customSubTitleOn": "ВКЛ: Система ограничит выгрузку весов модели только на выделенную память GPU и ОЗУ. Контекст всё ещё может использовать разделяемую память", + "load.gpuStrictVramCap.customGpuOffloadWarning": "Выгрузка модели ограничена выделенной памятью GPU. Фактическое количество выгруженных слоёв может отличаться", + "load.allGpusDisabledWarning": "Все GPU в настоящее время отключены. Включите хотя бы один для выгрузки", "llm.load.contextLength/title": "Длина контекста", "llm.load.contextLength/subTitle": "Максимальное число токенов в одном запросе. Смотрите опции управления переполнением под «Параметры вывода» для других способов", "llm.load.contextLength/info": "Определяет максимальное количество токенов, которое модель может рассматривать одновременно, влияя на то, сколько контекста она сохраняет во время обработки", @@ -116,6 +140,9 @@ "llm.load.seed/title": "Сид", "llm.load.seed/subTitle": "Начальное значение генератора случайных чисел. -1 — случайное", "llm.load.seed/info": "Случайный сид: Устанавливает сид для генерации случайных чисел, чтобы обеспечить воспроизводимые результаты", + "llm.load.numCpuExpertLayersRatio/title": "Number of layers for which to force MoE weights onto CPU", + "llm.load.numCpuExpertLayersRatio/subTitle": "Number of layers to force the experts into CPU. Saves VRAM and can be faster than partial GPU offload. Not recommended if the model fits entirely in VRAM.", + "llm.load.numCpuExpertLayersRatio/info": "Specifies the number of layers to force the expert into CPU. Leaves attention layers on GPU, saving VRAM while keeping inference fairly fast.", "llm.load.llama.evalBatchSize/title": "Размер пакета оценки", "llm.load.llama.evalBatchSize/subTitle": "Число входных токенов в одном пакете. Больше — быстрее, но выше нагрузка на память", "llm.load.llama.evalBatchSize/info": "Устанавливает количество примеров, обрабатываемых вместе в одном пакете во время оценки, что влияет на скорость и использование памяти.", @@ -199,21 +226,24 @@ "embedding.load.seed/subTitle": "Начальное значение генератора случайных чисел. -1 — случайное", "embedding.load.seed/info": "Случайный сид: задаёт сид для воспроизводимости результатов", "presetTooltip": { - "included/title": "Значения Предустановки", + "included/title": "Значения предустановки", "included/description": "Следующие поля будут применены", - "included/empty": "В данном контексте ни одно из полей этой предустановки не применяется.", + "included/empty": "Ни одно поле этой предустановки не применяется в данном контексте.", "included/conflict": "Вам будет предложено выбрать, применять ли это значение", - "separateLoad/title": "Конфигурация время загрузки", - "separateLoad/description.1": "Эта предустановка также включает в себя следующую конфигурацию время загрузки. Конфигурация время загрузки является глобальной для модели и требует перезагрузки модели для применения. Удерживайте", + "separateLoad/title": "Конфигурация времени загрузки", + "separateLoad/description.1": "Предустановка также включает следующую конфигурацию времени загрузки. Конфигурация времени загрузки применяется ко всей модели и требует перезагрузки модели для вступления в силу. Удерживайте", "separateLoad/description.2": "чтобы применить к", "separateLoad/description.3": ".", "excluded/title": "Может не применяться", "excluded/description": "Следующие поля включены в предустановку, но не применяются в текущем контексте.", - "legacy/title": "Предустановка (Устаревшая)", - "legacy/description": "Эта предустановка является устаревшей. Она включает в себя следующие поля, которые теперь автоматически обрабатываются или больше не актуальны.", - "button/publish": "Опубликовать на Хабе", - "button/pushUpdate": "Отправить изменения на Хаб", - "button/export": "Экспорт" + "legacy/title": "Устаревшая предустановка", + "legacy/description": "This preset is a legacy preset. It includes the following fields which are either handled automatically now, or are no longer applicable.", + "button/publish": "Опубликовать в Hub", + "button/pushUpdate": "Push Changes to Hub", + "button/noChangesToPush": "No changes to push", + "button/export": "Экспортировать", + "hubLabel": "Preset from the Hub by {{user}}", + "ownHubLabel": "Your preset from the Hub" }, "customInputs": { "string": { @@ -229,93 +259,93 @@ "off": "ВЫКЛ" }, "stringArray": { - "empty": "<Пусто>" + "empty": "" }, "llmPromptTemplate": { "type": "Тип", - "types.jinja/label": "Шаблон (Jinja)", + "types.jinja/label": "Template (Jinja)", "jinja.bosToken/label": "Токен BOS", "jinja.eosToken/label": "Токен EOS", "jinja.template/label": "Шаблон", - "jinja/error": "Не удалось разобрать шаблон Jinja: {{error}}", - "jinja/empty": "Пожалуйста, введите шаблон Jinja выше.", - "jinja/unlikelyToWork": "Предоставленный вами шаблон Jinja, скорее всего, не будет работать, так как он не ссылается на переменную \"messages\". Пожалуйста, убедитесь, что вы правильно ввели шаблон.", - "types.manual/label": "Ручной", - "manual.subfield.beforeSystem/label": "Перед Системой", - "manual.subfield.beforeSystem/placeholder": "Введите префикс Системы...", - "manual.subfield.afterSystem/label": "После Системы", - "manual.subfield.afterSystem/placeholder": "Введите суффикс Системы...", - "manual.subfield.beforeUser/label": "Перед Пользователем", - "manual.subfield.beforeUser/placeholder": "Введите префикс Пользователя...", - "manual.subfield.afterUser/label": "После Пользователя", - "manual.subfield.afterUser/placeholder": "Введите суффикс Пользователя...", - "manual.subfield.beforeAssistant/label": "Перед Ассистентом", - "manual.subfield.beforeAssistant/placeholder": "Введите префикс Ассистента...", - "manual.subfield.afterAssistant/label": "После Ассистента", - "manual.subfield.afterAssistant/placeholder": "Введите суффикс Ассистента...", - "stopStrings/label": "Дополнительные стоп-строки", - "stopStrings/subTitle": "Стоп-строки, специфичные для шаблона, которые будут использоваться в дополнение к стоп-строкам, указанным пользователем." + "jinja/error": "Failed to parse Jinja template: {{error}}", + "jinja/empty": "Please enter a Jinja template above.", + "jinja/unlikelyToWork": "The Jinja template you provided above is unlikely to work as it does not reference the variable \"messages\". Please double check if you have entered a correct template.", + "types.manual/label": "Вручную", + "manual.subfield.beforeSystem/label": "До системы", + "manual.subfield.beforeSystem/placeholder": "Enter System prefix...", + "manual.subfield.afterSystem/label": "После системы", + "manual.subfield.afterSystem/placeholder": "Enter System suffix...", + "manual.subfield.beforeUser/label": "До пользователя", + "manual.subfield.beforeUser/placeholder": "Enter User prefix...", + "manual.subfield.afterUser/label": "После пользователя", + "manual.subfield.afterUser/placeholder": "Enter User suffix...", + "manual.subfield.beforeAssistant/label": "Before Assistant", + "manual.subfield.beforeAssistant/placeholder": "Enter Assistant prefix...", + "manual.subfield.afterAssistant/label": "После ассистента", + "manual.subfield.afterAssistant/placeholder": "Enter Assistant suffix...", + "stopStrings/label": "Additional Stop Strings", + "stopStrings/subTitle": "Template specific stop strings that will be used in addition to user-specified stop strings." }, "contextLength": { - "maxValueTooltip": "Это максимальное количество токенов, которое модель была обучена обрабатывать. Нажмите, чтобы установить контекст на это значение", - "maxValueTextStart": "Модель поддерживает до", - "maxValueTextEnd": "токенов", - "tooltipHint": "Хотя модель может поддерживать определенное количество токенов, производительность может ухудшиться, если ресурсы вашего компьютера не могут справиться с нагрузкой - будьте осторожны при увеличении этого значения" + "maxValueTooltip": "This is the maximum number of tokens the model was trained to handle. Click to set the context to this value", + "maxValueTextStart": "Model supports up to", + "maxValueTextEnd": "токены", + "tooltipHint": "While a model may support up to a certain number of tokens, performance may deteriorate if your machine's resources cannot handle the load - use caution when increasing this value" }, "contextOverflowPolicy": { - "stopAtLimit": "Остановить при достижении лимита", - "stopAtLimitSub": "Останавливать генерацию, когда память модели заполнена", - "truncateMiddle": "Усечь посередине", - "truncateMiddleSub": "Удаляет сообщения из середины разговора, чтобы освободить место для новых. Модель все равно будет помнить начало разговора", + "stopAtLimit": "Остановиться на лимите", + "stopAtLimitSub": "Stop generating once the model's memory gets full", + "truncateMiddle": "Обрезать середину", + "truncateMiddleSub": "Removes messages from the middle of the conversation to make room for newer ones. The model will still remember the beginning of the conversation", "rollingWindow": "Скользящее окно", - "rollingWindowSub": "Модель всегда будет получать несколько последних сообщений, но может забыть начало разговора" + "rollingWindowSub": "The model will always get the most recent few messages but may forget the beginning of the conversation" }, "llamaAccelerationOffloadRatio": { "max": "МАКС", "off": "ВЫКЛ" }, - "llamaAccelerationSplitStrategy": { + "gpuSplitStrategy": { "evenly": "Равномерно", - "favorMainGpu": "Предпочитать основной GPU" + "favorMainGpu": "Отдавать приоритет основному GPU" }, "speculativeDecodingDraftModel": { - "readMore": "Прочитать, как это работает", - "placeholder": "Выберите совместимую черновую модель", - "noCompatible": "Не найдено ни одной совместимой черновой модели для вашего текущего выбора модели", - "stillLoading": "Определение совместимых черновых моделей...", - "notCompatible": "Выбранная черновая модель () несовместима с текущим выбором модели ().", + "readMore": "Read how it works", + "placeholder": "Select a compatible draft model", + "noCompatible": "No compatible draft models found for your current model selection", + "stillLoading": "Identifying compatible draft models...", + "notCompatible": "The selected draft model () is not compatible with the current model selection ().", "off": "ВЫКЛ", - "loadModelToSeeOptions": "Загрузить модель чтобы увидеть совместимые варианты", - "compatibleWithNumberOfModels": "Рекомендовано для как минимум {{dynamicValue}} ваших моделей", - "recommendedForSomeModels": "Рекомендовано для некоторых моделей", - "recommendedForLlamaModels": "Рекомендовано для моделей Llama", - "recommendedForQwenModels": "Рекомендовано для моделей Qwen", + "loadModelToSeeOptions": "Load model to see compatible options", + "compatibleWithNumberOfModels": "Recommended for at least {{dynamicValue}} of your models", + "recommendedForSomeModels": "Recommended for some models", + "recommendedForLlamaModels": "Recommended for Llama models", + "recommendedForQwenModels": "Recommended for Qwen models", "onboardingModal": { "introducing": "Представляем", - "speculativeDecoding": "Спекулятивное декодирование", - "firstStepBody": "Ускорение инференса для моделей llama.cpp и MLX", - "secondStepTitle": "Ускорение инференса с помощью Спекулятивного декодирования", - "secondStepBody": "Спекулятивное декодирование — это техника, включающая сотрудничество двух моделей:\n - Более крупная «основная» модель\n - Меньшая «черновая» модель\n\nВо время генерации черновая модель быстро предлагает токены для основной модели, которую нужно проверить. Проверка токенов — гораздо более быстрый процесс, чем их фактическое генерирование, что является источником ускорения.\n **Обычно, чем больше разница в размерах между основной и черновой моделями, тем выше скорость**.\n\nДля поддержания качества основная модель принимает только те токены, которые соответствуют тому, что она бы сгенерировала сама, что позволяет поддерживать качество ответа более крупной модели при более быстром инференсе. Обе модели должны использовать один и тот же словарь.", - "draftModelRecommendationsTitle": "Рекомендации по черновой модели", - "basedOnCurrentModels": "На основе ваших текущих моделей", + "speculativeDecoding": "Speculative Decoding", + "firstStepBody": "Inference speedup for llama.cpp and MLX models", + "secondStepTitle": "Inference Speedup with Speculative Decoding", + "secondStepBody": "Speculative Decoding is a technique involving the collaboration of two models:\n - A larger \"main\" model\n - A smaller \"draft\" model\n\nDuring generation, the draft model rapidly proposes tokens for the larger main model to verify. Verifying tokens is a much faster process than actually generating them, which is the source of the speed gains. **Generally, the larger the size difference between the main model and the draft model, the greater the speed-up**.\n\nTo maintain quality, the main model only accepts tokens that align with what it would have generated itself, enabling the response quality of the larger model at faster inference speeds. Both models must share the same vocabulary.", + "draftModelRecommendationsTitle": "Draft model recommendations", + "basedOnCurrentModels": "Based on your current models", "close": "Закрыть", "next": "Далее", "done": "Готово" }, - "speculativeDecodingLoadModelToSeeOptions": "Сначала загрузите модель ", - "errorEngineNotSupported": "Спекулятивное декодирование требует как минимум версии {{minVersion}} движка {{engineName}}. Обновите движок () и перезагрузите модель, чтобы использовать эту функцию.", - "errorEngineNotSupported/noKey": "Спекулятивное декодирование требует как минимум версии {{minVersion}} движка {{engineName}}. Обновите движок и перезагрузите модель, чтобы использовать эту функцию." + "speculativeDecodingLoadModelToSeeOptions": "Please load a model first ", + "errorEngineNotSupported": "Speculative decoding requires at least version {{minVersion}} of the engine {{engineName}}. Please update the engine () and reload the model to use this feature.", + "errorEngineNotSupported/noKey": "Speculative decoding requires at least version {{minVersion}} of the engine {{engineName}}. Please update the engine and reload the model to use this feature." }, "llmReasoningParsing": { - "startString/label": "Начальная строка", - "startString/placeholder": "Введите начальную строку...", - "endString/label": "Конечная строка", - "endString/placeholder": "Введите конечную строку..." + "startString/label": "Строка начала", + "startString/placeholder": "Enter the start string...", + "endString/label": "Строка конца", + "endString/placeholder": "Enter the end string..." } }, "saveConflictResolution": { - "title": "Выберите, какие значения включить в Предустановку", - "description": "Выберите из предложенного, какие значения сохранить", + "title": "Выберите, какие значения включить в предустановку", + "description": "Выберите, какие значения сохранить", "instructions": "Нажмите на значение, чтобы включить его", "userValues": "Предыдущее значение", "presetValues": "Новое значение", @@ -324,151 +354,195 @@ }, "applyConflictResolution": { "title": "Какие значения сохранить?", - "description": "У вас есть незафиксированные изменения, которые перекрываются с входящей Предустановкой", + "description": "У вас есть несохранённые изменения, которые пересекаются с входящей предустановкой", "instructions": "Нажмите на значение, чтобы сохранить его", "userValues": "Текущее значение", - "presetValues": "Значение входящей Предустановки", + "presetValues": "Значение входящей предустановки", "confirm": "Подтвердить", "cancel": "Отмена" }, "empty": "<Пусто>", - "noModelSelected": "Ни одна модель не выбрана", + "noModelSelected": "Модели не выбраны", "apiIdentifier.label": "Идентификатор API", - "apiIdentifier.hint": "Необязательно укажите идентификатор для этой модели. Он будет использоваться в запросах API. Оставьте пустым, чтобы использовать стандартный идентификатор.", - "idleTTL.label": "Автоматическая разгрузка при простоях (TTL)", - "idleTTL.hint": "Если установлено значение, модель будет автоматически разгружена после периода бездействия, указанного в течение определённого времени.", - "idleTTL.mins": "мин.", + "apiIdentifier.hint": "Optionally provide an identifier for this model. This will be used in API requests. Leave blank to use the default identifier.", + "idleTTL.label": "Auto Unload If Idle (TTL)", + "idleTTL.hint": "If set, the model will be automatically unloaded after being idle for the specified amount of time.", + "idleTTL.mins": "мин", "presets": { "title": "Предустановка", - "commitChanges": "Зафиксировать изменения", - "commitChanges/description": "Зафиксируйте ваши изменения в предустановке.", - "commitChanges.manual": "Обнаружены новые поля. Вы сможете выбрать, какие изменения включить в предустановку.", - "commitChanges.manual.hold.0": "Приостановить", - "commitChanges.manual.hold.1": "чтобы выбрать, какие изменения зафиксировать в предустановке.", - "commitChanges.saveAll.hold.0": "Приостановить", - "commitChanges.saveAll.hold.1": "чтобы сохранить все изменения.", - "commitChanges.saveInPreset.hold.0": "Приостановить", - "commitChanges.saveInPreset.hold.1": "только чтобы сохранить изменения в поля, которые уже включены в предустановку.", - "commitChanges/error": "Не удалось зафиксировать изменения в предустановке.", - "commitChanges.manual/description": "Выберите, какие изменения включить в предустановку.", - "saveAs": "Сохранить как...", - "presetNamePlaceholder": "Введите имя для предустановки...", - "cannotCommitChangesLegacy": "Это устаревшая предустановка и ее нельзя изменять. Вы можете скопировать ее, используя «Сохранить как...».", - "cannotCommitChangesNoChanges": "Нет изменений для фиксации.", - "emptyNoUnsaved": "Выберите предустановку...", - "emptyWithUnsaved": "Несохраненная предустановка", - "saveEmptyWithUnsaved": "Сохранить предустановку как...", + "saveChanges": "Сохранить", + "saveChanges/description": "Save your changes to the preset.", + "saveChanges.manual": "New fields detected. You will be able to choose which changes to include in the preset.", + "saveChanges.manual.hold.0": "Удерживать", + "saveChanges.manual.hold.1": "to choose which changes to save to the preset.", + "saveChanges.saveAll.hold.0": "Удерживать", + "saveChanges.saveAll.hold.1": "to save all changes.", + "saveChanges.saveInPreset.hold.0": "Удерживать", + "saveChanges.saveInPreset.hold.1": "to only save changes to fields that are already included in the preset.", + "saveChanges/error": "Failed to save changes to the preset.", + "saveChanges.manual/description": "Choose which changes to include in the preset.", + "saveAs": "Сохранить как новую...", + "presetNamePlaceholder": "Enter a name for the preset...", + "cannotCommitChangesLegacy": "This is a legacy preset and cannot be modified. You can create a copy by using \"Save As New...\".", + "cannotSaveChangesNoChanges": "No changes to save.", + "emptyNoUnsaved": "Select a Preset...", + "emptyWithUnsaved": "Несохранённая предустановка", + "saveEmptyWithUnsaved": "Save Preset As...", "saveConfirm": "Сохранить", "saveCancel": "Отмена", "saving": "Сохранение...", - "save/error": "Не удалось сохранить предустановку.", - "deselect": "Снять выделение с предустановки", - "deselect/error": "Не удалось снять выделение с предустановки.", - "select/error": "Не удалось выбрать предустановку.", - "delete/error": "Не удалось удалить предустановку.", - "discardChanges": "Отменить несохраненные изменения", - "discardChanges/info": "Отменить все незафиксированные изменения и восстановить предустановку в ее исходное состояние", + "save/error": "Failed to save preset.", + "deselect": "Снять выбор предустановки", + "deselect/error": "Failed to deselect preset.", + "select/error": "Failed to select preset.", + "delete/error": "Failed to delete preset.", + "discardChanges": "Отменить несохранённые", + "discardChanges/info": "Discard all unsaved changes and restore the preset to its original state", "newEmptyPreset": "+ Новая предустановка", - "importPreset": "Импорт", + "importPreset": "Импортировать", + "contextMenuCopyIdentifier": "Copy Preset Identifier", "contextMenuSelect": "Применить предустановку", "contextMenuDelete": "Удалить...", - "contextMenuShare": "Опубликовать...", - "contextMenuOpenInHub": "Просмотреть на Хабе", - "contextMenuPushChanges": "Отправить изменения в Хаб", - "contextMenuPushingChanges": "Отправка изменений...", + "contextMenuShare": "Публикация...", + "contextMenuOpenInHub": "Посмотреть в вебе", + "contextMenuPullFromHub": "Получить последнюю версию", + "contextMenuPushChanges": "Push Changes to Hub", + "contextMenuPushingChanges": "Отправка...", "contextMenuPushedChanges": "Изменения отправлены", - "contextMenuExport": "Экспорт файла", - "contextMenuRevealInExplorer": "Показать в Проводнике", - "contextMenuRevealInFinder": "Показать в Finder", + "contextMenuExport": "Экспортировать файл", + "contextMenuRevealInExplorer": "Reveal in File Explorer", + "contextMenuRevealInFinder": "Reveal in Finder", "share": { "title": "Опубликовать предустановку", - "action": "Поделитесь своей предустановкой с другими, чтобы они могли скачать, поставить лайк и создать ее копию", + "action": "Share your preset for others to download, like, and fork", "presetOwnerLabel": "Владелец", - "uploadAs": "Ваша предустановка будет создана как {{name}}", - "presetNameLabel": "Название предустановки", - "descriptionLabel": "Описание (необязательно)", + "uploadAs": "Your preset will be created as {{name}}", + "presetNameLabel": "Имя предустановки", + "descriptionLabel": "Description (optional)", "loading": "Публикация...", - "success": "Предустановка успешно опубликована", - "presetIsLive": " теперь доступна на Хабе!", + "success": "Preset Successfully Pushed", + "presetIsLive": " is now live on the Hub!", "close": "Закрыть", - "confirmViewOnWeb": "Просмотреть в браузере", - "confirmCopy": "Копировать URL", + "confirmViewOnWeb": "Посмотреть в вебе", + "confirmCopy": "Скопировать URL", "confirmCopied": "Скопировано!", - "pushedToHub": "Ваша предустановка была опубликована на Хабе", - "descriptionPlaceholder": "Введите описание...", - "willBePublic": "Публикация вашей предустановки сделает ее общедоступной", - "publicSubtitle": "Ваша предустановка общедоступна. Другие могут скачивать и создавать ее копию на lmstudio.ai", + "pushedToHub": "Your preset was pushed to the Hub", + "descriptionPlaceholder": "Enter a description...", + "willBePublic": "This preset will be public. Anyone on the internet will be able to see it.", + "willBePrivate": "Only you will be able to see this preset", + "willBeOrgVisible": "This preset will be visible to everyone in the organization.", + "publicSubtitle": "Your preset is Public. Others can download and fork it on lmstudio.ai", + "privateUsageReached": "Private preset number limit reached.", + "continueInBrowser": "Continue in Browser", "confirmShareButton": "Опубликовать", - "error": "Не удалось опубликовать предустановку", - "createFreeAccount": "Создайте бесплатную учетную запись в Хабе, чтобы публиковать предустановки" + "error": "Failed to publish preset", + "createFreeAccount": "Create a free account in the Hub to publish presets" }, "update": { - "title": "Отправить изменения на Хаб", - "title/success": "Предустановка успешно обновлена", - "subtitle": "Внесите изменения в и отправьте их на Хаб", + "title": "Push Changes to Hub", + "title/success": "Preset Successfully Updated", + "subtitle": "Make changes to and push them to the Hub", "descriptionLabel": "Описание", - "descriptionPlaceholder": "Введите описание...", + "descriptionPlaceholder": "Enter a description...", "loading": "Отправка...", "cancel": "Отмена", - "createFreeAccount": "Создайте бесплатную учетную запись в Хабе, чтобы публиковать предустановки", - "error": "Не удалось отправить обновление", + "createFreeAccount": "Create a free account in the Hub to publish presets", + "error": "Failed to push update", "confirmUpdateButton": "Отправить" }, + "resolve": { + "title": "Resolve conflicts...", + "tooltip": "Open a modal to resolve differences with the Hub version" + }, + "loginToManage": { + "title": "Login to manage..." + }, + "downloadFromHub": { + "title": "Скачать", + "downloading": "Загрузка...", + "success": "Загружено!", + "error": "Failed to download" + }, + "push": { + "title": "Отправить изменения", + "pushing": "Отправка...", + "success": "Отправлено", + "tooltip": "Push your local changes to the remote version hosted on the Hub", + "error": "Не удалось отправить" + }, + "saveAsNewModal": { + "title": "Oops! Did not find the preset on Hub", + "confirmSaveAsNewDescription": "Do you want to publish this preset as a new one?", + "confirmButton": "Опубликовать как новую" + }, + "pull": { + "title": "Получить последнюю версию", + "error": "Не удалось скачать", + "contextMenuErrorMessage": "Не удалось скачать", + "success": "Загружено", + "pulling": "Загрузка...", + "upToDate": "Актуально!", + "unsavedChangesModal": { + "title": "You have unsaved changes.", + "bodyContent": "Pulling from remote will overwrite your unsaved changes. Continue?", + "confirmButton": "Overwrite Unsaved Changes" + } + }, "import": { - "title": "Импортировать предустановку из файла", - "dragPrompt": "Перетащите файлы JSON предустановок или выберите со своего компьютера", + "title": "Import a Preset from File", + "dragPrompt": "Drag and drop preset files (.tar.gz or preset.json) or select from your computer", "remove": "Удалить", "cancel": "Отмена", "importPreset_zero": "Импортировать предустановку", "importPreset_one": "Импортировать предустановку", - "importPreset_other": "Импортировать предустановки: {{count}}", + "importPreset_other": "Import {{count}} Presets", "selectDialog": { - "title": "Выберите файл предустановки (.json)", + "title": "Select Preset File (preset.json or .tar.gz)", "button": "Импортировать" }, - "error": "Не удалось импортировать предустановку", + "error": "Failed to import preset", "resultsModal": { - "titleSuccessSection_one": "Успешно импортирована 1 предустановка", - "titleSuccessSection_other": "Успешно импортировано {{count}} предустановок", + "titleSuccessSection_one": "Imported 1 preset successfully", + "titleSuccessSection_other": "Imported {{count}} presets successfully", "titleFailSection_zero": "", - "titleFailSection_one": "({{count}} не удалось)", - "titleFailSection_other": "({{count}} не удалось)", - "titleAllFailed": "Не удалось импортировать предустановки", + "titleFailSection_one": "({{count}} failed)", + "titleFailSection_other": "({{count}} failed)", + "titleAllFailed": "Failed to import presets", "importMore": "Импортировать ещё", "close": "Готово", "successBadge": "Успешно", - "alreadyExistsBadge": "Предустановка уже существует", + "alreadyExistsBadge": "Preset already exists", "errorBadge": "Ошибка", "invalidFileBadge": "Неверный файл", - "otherErrorBadge": "Не удалось импортировать предустановку", + "otherErrorBadge": "Failed to import preset", "errorViewDetailsButton": "Просмотреть детали", - "seeError": "Посмотреть ошибку", - "noName": "Нет названия предустановки", + "seeError": "Смотрите ошибку", + "noName": "Без имени предустановки", "useInChat": "Использовать в чате" }, "importFromUrl": { - "button": "Импортировать из URL...", + "button": "Import from URL...", "title": "Импортировать из URL", - "back": "Импортировать из файла...", - "action": "Вставьте URL Хаба LM Studio, содержащий предустановку, которую вы хотите импортировать, ниже", - "invalidUrl": "Неверный URL. Убедитесь, что вы вставляете правильный URL Хаба LM Studio.", - "tip": "Можно установить предустановку напрямую с помощью кнопки {{buttonName}} в LM Studio Hub", + "back": "Import from File...", + "action": "Paste the LM Studio Hub URL of the preset you want to import below", + "invalidUrl": "Invalid URL. Please make sure you are pasting a correct LM Studio Hub URL.", + "tip": "You can install the preset directly with the {{buttonName}} button in LM Studio Hub", "confirm": "Импортировать", "cancel": "Отмена", - "loading": "Импорт...", - "error": "Не удалось скачать предустановку." + "loading": "Импортирование...", + "error": "Failed to download preset." } }, "download": { - "title": "Скачать из LM Studio Hub", - "subtitle": "Сохраните в свои предустановки. Это позволит вам использовать эту предустановку в приложении", - "button": "Скачать", - "button/loading": "Скачивание...", + "title": "Pull from LM Studio Hub", + "subtitle": "Save to your presets. Doing so you will allow you to use this preset in the app", + "button": "Загрузить", + "button/loading": "Загрузка...", "cancel": "Отмена", - "error": "Не удалось скачать предустановку." + "error": "Failed to download preset." }, "inclusiveness": { - "speculativeDecoding": "Включить в предустановку" + "speculativeDecoding": "Include in Preset" } }, "flashAttentionWarning": "Flash Attention — экспериментальная функция, может вызывать проблемы в некоторых моделях. При неполадках попробуйте отключить её.", @@ -477,24 +551,57 @@ "ropeFrequencyBaseUncheckedHint": "Авто", "ropeFrequencyScaleUncheckedHint": "Авто", "hardware": { - "advancedGpuSettings": "Дополнительные настройки GPU", - "advancedGpuSettings.info": "Если вы не уверены что это, оставьте эти параметры со значениями по умолчанию", - "advancedGpuSettings.reset": "Сбросить до значений по умолчанию", - "environmentVariables": { - "title": "Переменные окружения", - "description": "Активные переменные окружения во время работы модели.", - "key.placeholder": "Выбрать переменную...", - "value.placeholder": "Значение" + "environmentVariables": "Environment Variables", + "environmentVariables.info": "If you're unsure, leave these at their default values", + "environmentVariables.reset": "Reset to default", + "gpus.information": "Configure graphics processing units (GPUs) detected on your machine", + "gpuSettings": { + "editMaxCapacity": "Edit Max Capacity", + "hideEditMaxCapacity": "Hide Edit Max Capacity", + "allOffWarning": "All GPUs are off or disabled, ensure that there is some GPU allocation to enable loading models", + "split": { + "title": "Стратегия", + "placeholder": "Select a GPU memory allocation", + "options": { + "generalDescription": "Configure how models will be loaded onto your GPUs", + "evenly": { + "title": "Разделить равномерно", + "description": "Allocate memory evenly across GPUs" + }, + "priorityOrder": { + "title": "Порядок приоритета", + "description": "Drag to reorder priority. The system will try to allocate more on GPUs listed first" + }, + "custom": { + "title": "Пользовательский", + "description": "Выделить память", + "maxAllocation": "Maximum Allocation" + } + } + }, + "deviceId.info": "Unique identifier for this device", + "changesOnlyAffectNewlyLoadedModels": "Changes will only affect newly loaded models", + "toggleGpu": "Enable/Disable GPU" + } + }, + "load.gpuSplitConfig/title": "GPU Split Configuration", + "envVars/title": "Set an Environment Variable", + "envVars": { + "select": { + "placeholder": "Select an environment variable...", + "noOptions": "No more available", + "filter": { + "placeholder": "Filter search results", + "resultsFound_zero": "No results found", + "resultsFound_one": "Найден 1 результат", + "resultsFound_other": "{{count}} results found" + } }, - "mainGpu": { - "title": "Основной GPU", - "description": "GPU, который следует отдавать приоритету для вычислений модели.", - "placeholder": "Выбрать основной GPU..." + "inputValue": { + "placeholder": "Введите значение" }, - "splitStrategy": { - "title": "Стратегия разделения", - "description": "Как распределить вычисления модели между GPU.", - "placeholder": "Выбрать стратегию разделения..." + "values": { + "title": "Текущие значения" } } } diff --git a/ru/developer.json b/ru/developer.json index d2b79d00..1261a838 100644 --- a/ru/developer.json +++ b/ru/developer.json @@ -3,9 +3,7 @@ "tabs/extensions": "LM Runtimes", "loadSettings/title": "Загрузить настройки", "modelSettings/placeholder": "Выбрать модель для настройки", - "loadedModels/noModels": "Нет загруженных моделей", - "serverOptions/title": "Настройки сервера", "serverOptions/configurableTitle": "Настраиваемые параметры", "serverOptions/port/hint": "Укажите порт, который будет использоваться локальным сервером. По умолчанию LM Studio использует порт 1234. Возможно, вам потребуется изменить его, если этот порт уже используется.", @@ -27,6 +25,10 @@ "serverOptions/contentLogging/title": "Логировать запросы и ответы", "serverOptions/contentLogging/subtitle": "Настройки ведения журнала запросов / ответов локального сервера", "serverOptions/contentLogging/hint": "Включить или нет логирование запросов и/или ответов в журнале логов локального сервера.", + "serverOptions/redactContent/title": "Скрывать содержимое", + "serverOptions/redactContent/hint": "При включении предотвращается запись в логи конфиденциальных данных, таких как содержимое запросов и ответов.", + "serverOptions/logIncomingTokens/title": "Логирование входящих токенов", + "serverOptions/logIncomingTokens/hint": "Логировать каждый токен по мере его генерации.", "serverOptions/fileLoggingMode/title": "Режим ведения логирования файлов", "serverOptions/fileLoggingMode/off/title": "ОТКЛЮЧЕНО", "serverOptions/fileLoggingMode/off/hint": "Не создавать файлы логов", @@ -41,20 +43,30 @@ "serverOptions/jitModelLoadingTTL/hint": "Модель, которая была загружена Just-in-time (JIT) для обслуживания API-запроса, будет автоматически разгружена после того, как она не использовалась в течение определенного периода времени (TTL).", "serverOptions/jitModelLoadingTTL/ttl/label": "Максимальное время простоя TTL", "serverOptions/jitModelLoadingTTL/ttl/unit": "минуты", - "serverOptions/unloadPreviousJITModelOnLoad/title": "Сохранять только последнюю загруженную модель JIT", + "serverOptions/unloadPreviousJITModelOnLoad/title": "Хранить только последнюю модель, загруженную через JIT", "serverOptions/unloadPreviousJITModelOnLoad/hint": "Убедитесь, что одновременно загружена не более одной модели через JIT (разгружается предыдущая модель)", - + "serverOptions/allowMcp/title": "Разрешить удаленный MCP", + "serverOptions/allowMcp/hint": "Разрешить использование MCP, которые не указаны в вашем mcp.json. Эти MCP-соединения являются эфемерными, существующими только на время запроса. В настоящее время поддерживаются только удаленные MCP.", + "serverOptions/allowMcp/mode/off": "Выкл", + "serverOptions/allowMcp/mode/off/hint": "Не разрешать серверным запросам использовать MCP", + "serverOptions/allowMcp/mode/remote": "Удаленный", + "serverOptions/allowMcp/mode/remote/hint": "Разрешить подключение к удаленным MCP-серверам", + "serverOptions/start/error": "Не удалось запустить сервер", + "serverOptions/stop/error": "Не удалось остановить сервер", "serverLogs/scrollToBottom": "Перейти в конец", "serverLogs/clearLogs": "Очистить логи ({{shortcut}})", "serverLogs/openLogsFolder": "Открыть папку с логами сервера", - "runtimeSettings/title": "Настройки Runtime", "runtimeSettings/chooseRuntime/title": "По умолчанию", "runtimeSettings/chooseRuntime/description": "Выберите предустановленный runtime для каждого формата модели", "runtimeSettings/chooseRuntime/showAllVersions/label": "Показать все runtimes", "runtimeSettings/chooseRuntime/showAllVersions/hint": "По умолчанию LM Studio показывает только последнюю версию каждого совместимого runtime. Включите этоот параметр, чтобы увидеть все доступные runtimes.", "runtimeSettings/chooseRuntime/select/placeholder": "Выбрать Runtime", - + "runtimeSettings/chooseFrameworks/title": "Фреймворки", + "runtimeSettings/chooseFrameworks/description": "Выберите фреймворк для каждой функциональности", + "runtimeSettings/chooseFramework/documentParser/builtIn/label": "Встроенный парсер", + "runtimeSettings/chooseFramework/documentParser/select/label": "Парсер документов", + "runtimeSettings/chooseFramework/documentParser/select/placeholder": "Выберите парсер документов", "runtimeOptions/uninstall": "Удалить", "runtimeOptions/uninstallDialog/title": "Удалить {{runtimeName}}?", "runtimeOptions/uninstallDialog/body": "Удаление этого runtime удалит его из системы. Это действие необратимо.", @@ -65,7 +77,6 @@ "runtimeOptions/noCompatibleRuntimes": "Не найдено совместимых runtimes", "runtimeOptions/downloadIncompatibleRuntime": "Этот runtime был определён как несовместимый с вашим устройством. Скорее всего, он не будет работать.", "runtimeOptions/noRuntimes": "Нет runtimes", - "runtimes": { "manageLMRuntimes": "Управление LM Runtimes", "includeOlderRuntimeVersions": "Включить старые версии runtime", @@ -117,9 +128,7 @@ "noFrameworks": "Нет установленных фреймворков" } }, - "inferenceParams/noParams": "Параметры инференса не доступны для данного типа модели", - "quickDocs": { "tabChipTitle": "Быстрые справки", "newToolUsePopover": "Кодовые фрагменты теперь доступны здесь в \"Быстрых справках\". Нажмите здесь, чтобы начать использовать инструменты!", @@ -150,20 +159,25 @@ }, "newBadge": "Новый" }, - "endpoints/openaiCompatRest/title": "Поддерживаемые конечные точки (подобные OpenAI)", + "endpoints/openaiCompatRest/segmentedLabel": "В стиле OpenAI", "endpoints/openaiCompatRest/getModels": "Список загруженных моделей", "endpoints/openaiCompatRest/postCompletions": "Режим завершения текста. Предсказание следующего токена(ов) на основе запроса. Обратите внимание: OpenAI считает этот конечный пункт 'устаревшим'.", "endpoints/openaiCompatRest/postChatCompletions": "Завершения чата. Отправка истории чата модели для предсказания следующего ответа ассистента", "endpoints/openaiCompatRest/postEmbeddings": "Векторное представление текста. Генерация векторных представлений текста на основе заданного текстового ввода. Принимает строку или массив строк.", - + "endpoints/openaiCompatRest/postResponses": "Расширенный интерфейс для генерации ответов модели. Создавайте интерактивные с состоянием, передавая ID предыдущих ответов в качестве входных данных для следующих.", + "endpoints/lmStudioRest/segmentedLabel": "LM Studio", + "endpoints/lmStudioRestV1/getModels": "Список доступных моделей", + "endpoints/lmStudioRestV1/postModelsLoad": "Загрузить модель с опциями", + "endpoints/lmStudioRestV1/postModelsDownload": "Скачать модель", + "endpoints/lmStudioRestV1/postChat": "Чат с моделью. Поддерживает многоэтапные диалоги с состоянием и MCP", + "endpoints/lmStudioRestV1/getModelsDownloadStatus": "Получить статус скачивания модели", + "endpoints/anthropicCompatRest/segmentedLabel": "Совместимый с Anthropic", "model.createVirtualModelFromInstance": "Сохранить настройки как новую виртуальную модель", "model.createVirtualModelFromInstance/error": "Не удалось сохранить настройки в качестве новой виртуальной модели", - "model": { "toolUseSectionTitle": "Использование инструментов", "toolUseDescription": "Обнаружено, что эта модель обучена для использования инструментов\n\nОткройте quick docs для получения дополнительной информации" }, - "apiConfigOptions/title": "Настройки API" } diff --git a/ru/discover.json b/ru/discover.json index 97ce0e1d..903304d7 100644 --- a/ru/discover.json +++ b/ru/discover.json @@ -23,6 +23,7 @@ "download.option.recommended/description": "Исходя из вашего оборудования, этот вариант рекомендуется.", "download.option.downloaded/title": "Загружено", "download.option.downloading/title": "Загрузка ({{progressPercentile}}%)", + "failedToStartDownload": "Не удалось начать загрузку", "feed.action.refresh": "Обновить ленту" } diff --git a/ru/download.json b/ru/download.json index aaf80d68..d68df809 100644 --- a/ru/download.json +++ b/ru/download.json @@ -1,5 +1,14 @@ { - "postDownloadActionExecutor.zipExtraction/status": "Извлечение...", + "postDownloadActionExecutor.zipExtraction/status": "Извлечение файлов...", + "postDownloadActionExecutor.tarGzExtraction/status": "Извлечение файлов...", + "postDownloadActionExecutor.runtimeIndexerTarGzExtraction/status": "Извлечение файлов...", + "postDownloadActionExecutor.modifyModelData/status": "Обновление данных модели...", + "postDownloadActionExecutor.notification/status": "Уведомление пользователя...", + "postDownloadActionExecutor.writeString/status": "Запись метаданных...", + "postDownloadActionExecutor.updateSelectedBackendVersions/status": "Обновление выбранной версии...", + "postDownloadActionExecutor.extensionPackAutoDeletion/status": "Удаление неиспользуемых расширений...", + "postDownloadActionExecutor.pluginInstall/status": "Установка плагина...", + "postDownloadActionExecutor.pluginUninstall/status": "Удаление плагина...", "finalizing": "Завершение скачивания... (это может занять некоторое время)", "noOptions": "Нет совместимых вариантов для скачивания", @@ -19,5 +28,15 @@ "downloadsPanel/title": "Загрузки", "downloadsPanel/sectionTitle/ongoing": "В процессе", - "downloadsPanel/sectionTitle/completed": "Завершённые" + "downloadsPanel/sectionTitle/completed": "Завершённые", + "downloadsPanel": { + "reveal": { + "mac": "Показать в Finder", + "mac/error": "Не удалось показать в Finder", + "nonMac": "Показать в Проводнике", + "nonMac/error": "Не удалось показать в Проводнике" + }, + "completed": "Скачивание завершено", + "loadModel": "Загрузить модель" + } } diff --git a/ru/models.json b/ru/models.json index 080fcc1d..f8b46e91 100644 --- a/ru/models.json +++ b/ru/models.json @@ -3,12 +3,10 @@ "filterModels.placeholder": "Фильтровать модели...", "aggregate_one": "У вас {{count}} локальная модель, занимающая {{size}} места на диске.", "aggregate_other": "У вас {{count}} локальных моделей, занимающих {{size}} места на диске.", - "noModels.title": "Ваши локальные LLM будут отображаться здесь.", "noModels.discoverButtonText.prefix": "Нажмите на", "noModels.discoverButtonText.suffix": "кнопку на левой боковой панели, чтобы найти интересные LLM для загрузки.", "noModels.discoverModelsPrompt": "Идите и исследуйте некоторые локальные LLM!", - "modelsTable.arch/label": "Архитектура", "modelsTable.params/label": "Параметры", "modelsTable.publisher/label": "Издатель", @@ -17,32 +15,19 @@ "modelsTable.size/label": "Размер", "modelsTable.dateModified/label": "Дата изменения", "modelsTable.actions/label": "Действия", - "modelsTable.quant/label": "Квант.", "modelsTable.llms/label": "LLM", "modelsTable.embeddingModels/label": "Векторная модель", - "action.model.delete": "Удалить", "action.model.delete.full": "Удалить модель", "action.model.delete.confirmation/title": "Удалить {{name}}", "action.model.delete.confirmation/description": "Вы уверены? Это действие навсегда удалит все файлы, связанные с этой моделью, с вашего компьютера. Это действие необратимо.", "action.model.delete.confirmation/confirm": "Удалить", - - "action.createVirtual": "Создать пресет", - "action.createVirtual.details/title": "Создать пресет", - "action.createVirtual.details/create": "Создать", - "action.createVirtual.details/cancel": "Отмена", - "action.createVirtual.details.base/label": "Базовая модель", - "action.createVirtual.details.name/label": "Имя", - "action.createVirtual.details.includeMachineDependent/label": "Включить машинозависимые конфигурации", - "action.createVirtual.details.includeMachineDependent/hint": "Включить ли машинозависимые конфигурации (например, настройки GPU) в предустановку. Не рекомендуется для обмена.", - "action.createVirtual.details.config/label": "Переопределения конфигурации", - "action.createVirtual.details.config.empty": "Нет переопределений конфигурации", - "action.createVirtual.details/error": "Не удалось создать виртуальную модель.", - + "action.model.delete/error": "Не удалось удалить модель", "loader.model.bundled": "В комплекте", "action.cancel": "Отмена", "indexingOngoing": "Индексирование моделей... Это может занять несколько секунд", + "indexingPageLoaderText": "Индексация моделей...", "index/error_one": "Не удалось индексировать следующую папку:", "index/error_other": "Не удалось индексировать следующие папки:", "badModels/title_one": "Не удалось индексировать следующую модель:", @@ -53,12 +38,18 @@ "unresolvedVirtualModels/title_other": "Не удалось разрешить следующие виртуальные модели:", "unresolvedVirtualModels.missingModel": "Отсутствует зависимая модель: {{missing}}. Путь зависимости:\n{{chain}}", "unresolvedVirtualModels.circular": "Обнаружена круговая зависимость.", - + "unresolvedVirtualModels.fix": "Исправить", + "unresolvedVirtualModels.revealInExplorer": "Показать в Проводнике", + "unresolvedVirtualModels.revealInFinder": "Показать в Finder", + "unresolvedVirtualModels.reveal/error": "Не удалось показать", "modelsDirectory": "Каталог моделей", "modelsDirectory.change": "Изменить...", + "modelsDirectory.change/error": "Не удалось изменить каталог моделей", "modelsDirectory.reset": "Сбросить к умолчанию", "modelsDirectory.reveal.mac": "Показать в Finder", "modelsDirectory.reveal.nonMac": "Открыть в Проводнике", + "modelsDirectory.reveal.mac/error": "Не удалось открыть в Finder", + "modelsDirectory.reveal.nonMac/error": "Не удалось открыть в Проводнике", "modelsDirectory.forceReindex": "Обновить", "loadState/loaded": "Загружено", "loadState/loading": "Загрузка", @@ -74,20 +65,59 @@ "contextMenu/copyModelDefaultIdentifier": "Копировать идентификатор по умолчанию", "contextMenu/showRawMetadata": "Показать необработанные метаданные", "contextMenu/openOnHuggingFace": "Открыть на Hugging Face", + "contextMenu": { + "showOnWeb": "Показывать в вебе", + "pullLatest": { + "label": "Получить последнюю версию", + "checking": "Проверка обновлений...", + "upToDate": "Актуально", + "error": "Не удалось проверить обновления" + } + }, "tooltip/moreActions": "Другие действия", "tooltip/getInfo": "Получить информацию", "tooltip/editModelDefaultConfig": "Редактировать конфигурацию модели по умолчанию", "tooltip/editModelDefaultConfig/override": "Редактировать конфигурацию модели по умолчанию (* в настоящее время есть переопределения", "tooltip/visionBadge": "Эта модель может обрабатывать изображения", "tooltip/toolUseBadge": "Эта модель обучена для использования инструментов", - "visionBadge/label": "Включена обработка изображений", "toolUseBadge/label": "Обучен для использования инструментов", - "loader.action.load": "Загрузить модель", "loader.action.clearChanges": "Очистить изменения", "loader.action.cancel": "Отмена", "loader.info.clickOnModelToLoad": "Щелкните на модель, чтобы загрузить ее", "loader.info.configureLoadParameters": "Настройте параметры загрузки модели", - "loader.info.activeGeneratorWarning": "Вы используете плагин с пользовательским генератором. Ваша текущая загруженная модель может быть применена или нет, в зависимости от реализации генератора" + "loader.info.activeGeneratorWarning": "Вы используете плагин с пользовательским генератором. Ваша текущая загруженная модель может быть применена или нет, в зависимости от реализации генератора", + "loader.guardrails.estimatedMemoryUsage": "Предполагаемое использование памяти", + "loader.guardrails.total": "Всего", + "loader.guardrails.gpu": "GPU", + "loader.guardrails.unavailable": "Оценка памяти недоступна для этой модели", + "loader.guardrails.notEnoughResources": "Недостаточно ресурсов для загрузки модели с текущими настройками", + "loader.guardrails.notEnoughResources/options": "Опции", + "loader.guardrails.notEnoughResources.moreInfoSection.appearsNotEnoughMemory": "Похоже, в вашей системе недостаточно памяти для загрузки этой модели.", + "loader.guardrails.notEnoughResources.moreInfoSection.ifYouBelieveThisIsIncorrect": "Вы можете настроить ограничители загрузки модели в настройках или удерживать , чтобы загрузить всё равно.", + "loader.guardrails.notEnoughResources.moreInfoSection.warning": "Загрузка слишком большой модели может перегрузить вашу систему и вызвать её зависание.", + "loader.guardrails.notEnoughResources.alwaysAllowLoadAnyway": "(Не рекомендуется) Всегда разрешать 'Загрузить всё равно' без удерживания Alt/Option", + "virtual": { + "local": { + "create": "Создать виртуальную модель", + "title": "Создать локальную виртуальную модель", + "description": "Создайте виртуальную модель, объединив модель с набором конфигураций. Базовые веса не будут дублироваться.", + "modelKey.label": "Ключ модели", + "modelKey.placeholder": "Введите уникальный ключ модели", + "modelKey.normalized": "Ваш ключ модели будет нормализован к: {{normalized}}", + "baseModel.label": "Базовая модель", + "baseModel.placeholder": "Выберите базовую модель", + "baseModel.empty": "Скачайте модель для использования в качестве базовой", + "next": "Далее", + "confirm": "Создать", + "error": "Не удалось создать виртуальную модель" + }, + "altsSelect": { + "title": "Переключить источник модели", + "resetButton": "Сбросить к умолчанию", + "description": "Для этой модели доступно несколько исходных файлов.", + "trigger": "Варианты" + } + } } diff --git a/ru/settings.json b/ru/settings.json index ccbefd99..1995d2f8 100644 --- a/ru/settings.json +++ b/ru/settings.json @@ -1,7 +1,7 @@ { "settingsDialogTitle": "Настройки приложения", "settingsDialogButtonTooltip": "Настройки приложения", - + "accountDialogButtonTooltip": "Учётная запись", "settingsNewButtonPopover": { "primary": "Настройки приложения теперь находятся в правом нижнем углу", "secondary": "Нажмите на кнопку ⚙️, чтобы открыть их.", @@ -48,6 +48,9 @@ "sideButtonLabels": "Показывать текст боковых кнопок", "showModelFileNames": "Мои модели: всегда показывать полное название файла модели", "colorThemeLabel": "Цветовая тема", + "appNavigationBarPositionLabel": "Положение панели навигации", + "appNavigationBarPositionTop": "Сверху", + "appNavigationBarPositionLeft": "Слева", "complexityLevelLabel": "Уровень сложности пользовательского интерфейса", "selectComplexityLevelPlaceholder": "Выберите уровень сложности пользовательского интерфейса по умолчанию", "userComplexityLevelLabel": "Пользователь", @@ -57,7 +60,6 @@ "chat/alwaysShowPromptTemplate": "Всегда отображать шаблон запроса в боковой панели чата", "chat/highlightChatMessageOnHover": "Выделять сообщение чата при наведении курсора", "chat/doubleClickMessageToEdit": "Дважды щелкните сообщение чата, чтобы отредактировать его", - "chat/aiNaming/label": "Название чата с помощью ИИ", "chat/aiNaming/mode/label": "Название чата, сгенерированные ИИ", "chat/aiNaming/mode/value/never": "Никогда", @@ -71,13 +73,11 @@ "chat/keyboardShortcuts/verbPrefix": "Использовать", "chat/keyboardShortcuts/regenerate": "для повторного создания последнего сообщения в чате", "chat/keyboardShortcuts/sendMessage": "для отправки сообщения", - "onboarding/blockTitle": "Советы при запуске", "onboarding/dismissedHints": "Скрытые советы при запуске", "onboarding/resetHintTooltip": "Нажмите, чтобы снова включить этот совет при запуске", "onboarding/resetAllHints": "Сбросить все советы при запуске", "onboarding/noneDismissed": "Нет отклонённых советов, в настоящее время все советы при запуске будут отображаться до следующего отклонения", - "firstTimeExperienceLabel": "Опыт запуска первого чата", "firstTimeExperienceMarkCompletedLabel": "Отметить как завершённое", "firstTimeExperienceResetLabel": "Сбросить", @@ -91,30 +91,27 @@ "changeLanguageLabel": "Выберите язык приложения (в разработке)", "developerLabel": "Разработчик", "localServiceLabel": "Локальная служба LLM (без головного модуля)", + "modelDefaultsLabel": "Параметры модели по умолчанию", "showExperimentalFeaturesLabel": "Показывать экспериментальные функции", "appFirstLoadLabel": "Опыт первого запуска приложения", "showDebugInfoBlocksInChatLabel": "Показывать блоки отладочной информации в чате", "autoLoadBundledLLMLabel": "Автоматически загружать пакетную LLM-модель при запуске", "showReleaseNotes": "Показать заметки о выпуске", "hideReleaseNotes": "Скрыть заметки о выпуске", - "backendDownloadNewUpdate": "Доступны новые бэкенды!", "backendDownloadNewUpdateAction": "Перейти на страницу разработчика", - "backendDownloadChannel.label": "Канал скачивания пакетов расширений LM Studio", "backendDownloadChannel.value.stable": "Стабильный", "backendDownloadChannel.value.beta": "Бета", - "backendDownloadChannel.value.latest": "Dev", + "backendDownloadChannel.value.latest": "Разработка", "backendDownloadChannel.shortLabel": "Канал скачивания времени выполнения", "backendDownloadChannel.hint": "Выберите канал, с которого нужно сачивать пакеты расширений LM Studio. \"{{stableName}}\" - рекомендуемый канал для большинства пользователей.", - "appUpdateChannel.label": "Канал обновлений", "appUpdateChannel.value.stable": "Стабильный", "appUpdateChannel.value.beta": "Бета", "appUpdateChannel.value.alpha": "Альфа", "appUpdateChannel.shortLabel": "Канал обновлений приложения", "appUpdateChannel.hint": "Выберите канал, с которого нужно получать обновления для LM Studio. \"{{stableName}}\" - рекомендуемый канал для большинства пользователей.", - "modelLoadingGuardrails.label": "Ограничители загрузки моделей", "modelLoadingGuardrails.description": "Загрузка моделей, превышающих лимиты системных ресурсов, может привести к нестабильности системы или зависанию. Ограничители предотвращают случайную перегрузку. При необходимости настройте эти лимиты здесь, но будьте внимательны: загрузка моделей вблизи предела системы может снизить стабильность.", "modelLoadingGuardrails.value.off": "Отключено (Не рекомендуется)", @@ -135,26 +132,22 @@ "modelLoadingGuardrails.custom.label": "Лимит памяти: ", "modelLoadingGuardrails.custom.unitGB": "ГБ", "modelLoadingGuardrails.custom.description": "Установите пользовательский лимит памяти для загрузки модели. Модели не будут загружаться, если их загрузка превысит этот лимит.", - + "modelLoadingGuardrails.alwaysAllowLoadAnyway": "(Не рекомендуется) Всегда разрешать 'Загрузить всё равно' без удерживания Alt/Option", "experimentalLoadPresets": "Включить поддержку конфигурации загрузки моделей в предустановках", "experimentalLoadPresets.description": "Разрешить ли предустановкам включать конфигурации загрузки моделей. Эта функция экспериментальная, и мы приветствуем отзывы.", - "unloadPreviousJITModelOnLoad": "Автоматическая выгрузка JIT-моделей: гарантировать, что одновременно загружено не более 1 модели через JIT (выгружается предыдущая модель)", + "autoDeleteExtensionPacks": "Автоматическое удаление наименее используемых пакетов Runtime Extension Packs", "autoUpdateExtensionPacks": "Автоматическое обновление выбранных пакетов Runtime Extension Packs", "useHFProxy.label": "Использовать прокси Hugging Face от LM Studio", "useHFProxy.hint": "Используйте прокси Hugging Face от LM Studio для поиска и загрузки моделей. Это может помочь пользователям, которым трудно получать доступ к Hugging Face напрямую.", "separateReasoningContentInResponses": "При необходимости разделять `reasoning_content` и `content` в API-ответах", "separateReasoningContentInResponses/hint": "Эта настройка будет работать только для моделей 'reasoning', таких как DeepSeek R1, его варианты дистилляции и другие модели, которые генерируют CoT в тегах `` и ``.", - "promptWhenCommittingUnsavedChangesWithNewFields": "Предустановки: Отображать диалоговое окно подтверждения при добавлении новых полей к предустановке", "promptWhenCommittingUnsavedChangesWithNewFields.description": "Это полезно, если вы хотите предотвратить случайное добавление новых полей в предустановки.", - "enableLocalService": "Включить службу LLM от LM Studio", - "enableLocalService.subtitle": "Использовать сервер LLM от LM Studio без необходимости держать приложение LM Studio открытым", - "enableLocalService.description": "При включении службы, LLM от LM Studio будет запущен при старте. Закрытие LM Studio также оставит службу LLM запущенной в системной панели задач.", - + "enableLocalService.subtitle": "Использовать LLM-сервер LM Studio без необходимости держать приложение LM Studio открытым", + "enableLocalService.description": "При включении локальная LLM-служба LM Studio будет запускаться при старте. Закрытие LM Studio также оставит локальную LLM-службу запущенной в системном трее.", "expandConfigsOnClick": "Разворачивать конфигурации по клику вместо наведения курсора", - "migrateChats": { "label": "Миграция чатов pre-0.3.0", "hasBetterLabel": "Повторная миграция чатов до pre-0.3.0", @@ -179,5 +172,28 @@ "hasBetterFooterCardText": "Мы улучшили миграцию чатов с момента вашей предыдущей миграции. Можно повторно запустить процесс миграции. (Будет создана новая папка для хранения недавно мигрированных чатов.)", "dismissConfirm": "Отмена", "dismissConfirmDescription": "Вы всегда можете обработать миграцию чатов в Настройках." + }, + "toolConfirmation": { + "label": "Подтверждение вызова инструмента", + "neverAsk": { + "label": "Никогда не запрашивать подтверждения перед запуском инструмента (НЕ РЕКОМЕНДУЕТСЯ)", + "hint": "Отключить подтверждения перед запуском инструмента. Не рекомендуется.", + "warnTitle": "Вы уверены?", + "warnDescription": "Отключение подтверждений вызова инструментов опасно. Если какой-либо из ваших плагинов предоставил инструмент, способный выполнять разрушительные действия (например, запуск команды, удаление файлов, перезапись файлов, загрузка файлов и т.д.), модель сможет сделать это без какого-либо подтверждения. Вы всегда можете отключить подтверждения для отдельного инструмента или даже плагина. Включение этой опции НЕ рекомендуется. Будьте осторожны.", + "warnButton": "Я понимаю риски" + } + }, + "defaultContextLength": { + "label": "Длина контекста по умолчанию", + "maxTitle": "Максимум модели", + "customTitle": "Пользовательское значение", + "maxSubtitle": "Использовать максимальную длину контекста, поддерживаемую каждой моделью.", + "customSubtitle": "Установить длину контекста по умолчанию для загрузки новых моделей. Если поддерживаемая максимальная длина контекста модели ниже, будет использовано это значение.", + "invalidNaNError": "Недопустимое значение длины контекста. Используется {{value}}", + "invalidRangeError": "Недопустимое значение длины контекста. Должно быть в диапазоне от 1 до 2^30. Используется {{value}}", + "largeContextWarning": "Чем выше длина контекста, тем больше памяти будет занимать модель. Если вы не уверены, не изменяйте значение по умолчанию" + }, + "jitTTL": { + "subtitle": "Модели, загруженные через JIT, будут автоматически выгружены после простоя в течение указанного времени." } } diff --git a/ru/shared.json b/ru/shared.json index d916b396..118be735 100644 --- a/ru/shared.json +++ b/ru/shared.json @@ -31,8 +31,274 @@ "retry": "Повторить" }, "artifacts": { - "fetchError": "Не удалось получить артефакты" + "fetchError": "Не удалось получить артефакты", + "organizationVisible": "Видимый для организации" }, "incompatible": "Несовместимо", - "compatible": "Совместимо" + "compatible": "Совместимо", + "public": "Публичный", + "private": "Приватный", + "yes": "Да", + "no": "Нет", + "go": "Перейти", + + "proceedWithEllipsis": "Продолжить...", + "proceed": "Продолжить", + "inProgress": "Выполняется...", + "failed": "Сбой", + "pending": "Ожидание", + "doneWithExclamation": "Готово!", + "done": "Готово", + "beta": "Бета", + + "complete": { + "completeWithEllipsis": "Завершить...", + "complete": "Завершить", + "completingWithEllipsis": "Завершение...", + "completing": "Завершение", + "completedWithExclamation": "Завершено!", + "completed": "Завершено" + }, + + "cancel": { + "cancelWithEllipsis": "Отменить...", + "cancel": "Отменить", + "cancelingWithEllipsis": "Отмена...", + "canceling": "Отмена", + "canceled": "Отменено" + }, + + "next": { + "nextWithEllipsis": "Далее...", + "next": "Далее" + }, + + "back": { + "backWithEllipsis": "Назад...", + "back": "Назад" + }, + + "close": { + "closeWithEllipsis": "Закрыть...", + "close": "Закрыть", + "closingWithEllipsis": "Закрытие...", + "closing": "Закрытие", + "closedWithExclamation": "Закрыто!", + "closed": "Закрыто" + }, + + "delete": { + "deleteWithEllipsis": "Удалить...", + "delete": "Удалить", + "deletingWithEllipsis": "Удаление...", + "deleting": "Удаление", + "deletedWithExclamation": "Удалено!", + "deleted": "Удалено" + }, + + "retry": { + "retryWithEllipsis": "Повторить...", + "retry": "Повторить", + "retryingWithEllipsis": "Повторная попытка...", + "retrying": "Повторная попытка" + }, + + "refresh": { + "refreshWithEllipsis": "Обновить...", + "refresh": "Обновить", + "refreshingWithEllipsis": "Обновление...", + "refreshing": "Обновление", + "refreshedWithExclamation": "Обновлено!", + "refreshed": "Обновлено" + }, + + "confirm": { + "confirm": "Подтвердить", + "confirmingWithEllipsis": "Подтверждение...", + "confirming": "Подтверждение", + "confirmedWithExclamation": "Подтверждено!", + "confirmed": "Подтверждено" + }, + + "copy": { + "copyWithEllipsis": "Копировать...", + "copy": "Копировать", + "copyingWithEllipsis": "Копирование...", + "copying": "Копирование", + "copiedWithExclamation": "Скопировано!", + "copied": "Скопировано" + }, + + "edit": { + "editWithEllipsis": "Редактировать...", + "edit": "Редактировать", + "editingWithEllipsis": "Редактирование...", + "editing": "Редактирование", + "editedWithExclamation": "Отредактировано!", + "edited": "Отредактировано" + }, + + "load": { + "loadWithEllipsis": "Загрузить...", + "load": "Загрузить", + "loadingWithEllipsis": "Загрузка...", + "loading": "Загрузка", + "loadedWithExclamation": "Загружено!", + "loaded": "Загружено" + }, + + "save": { + "saveWithEllipsis": "Сохранить...", + "save": "Сохранить", + "savingWithEllipsis": "Сохранение...", + "saving": "Сохранение", + "savedWithExclamation": "Сохранено!", + "saved": "Сохранено" + }, + + "saveAs": { + "saveAsWithEllipsis": "Сохранить как...", + "saveAs": "Сохранить как" + }, + + "saveAsNew": { + "saveAsNewWithEllipsis": "Сохранить как новое...", + "saveAsNew": "Сохранить как новое" + }, + + "search": { + "searchWithEllipsis": "Поиск...", + "search": "Поиск", + "searchingWithEllipsis": "Поиск...", + "searching": "Поиск" + }, + + "update": { + "updateWithEllipsis": "Обновить...", + "update": "Обновить", + "updatingWithEllipsis": "Обновление...", + "updating": "Обновление", + "updatedWithExclamation": "Обновлено!", + "updated": "Обновлено" + }, + + "create": { + "createWithEllipsis": "Создать...", + "create": "Создать", + "creatingWithEllipsis": "Создание", + "creating": "Создание", + "createdWithExclamation": "Создано!", + "created": "Создано" + }, + + "reset": { + "resetWithEllipsis": "Сбросить...", + "reset": "Сбросить", + "resettingWithEllipsis": "Сброс...", + "resetting": "Сброс" + }, + + "pause": { + "pause": "Пауза", + "pausingWithEllipsis": "Пауза...", + "pausing": "Пауза", + "paused": "Приостановлено" + }, + + "download": { + "download": "Скачать", + "downloadingWithEllipsis": "Скачивание...", + "downloading": "Скачивание", + "downloadedWithExclamation": "Скачано!", + "downloaded": "Скачано" + }, + + "upload": { + "uploadWithEllipsis": "Загрузить...", + "upload": "Загрузить", + "uploadingWithEllipsis": "Загрузка...", + "uploading": "Загрузка", + "uploadedWithExclamation": "Загружено!", + "uploaded": "Загружено" + }, + + "remove": { + "removeWithEllipsis": "Удалить...", + "remove": "Удалить", + "removingWithEllipsis": "Удаление...", + "removing": "Удаление", + "removedWithExclamation": "Удалено!", + "removed": "Удалено" + }, + + "uninstall": { + "uninstallWithEllipsis": "Удалить...", + "uninstall": "Удалить", + "uninstallingWithEllipsis": "Удаление...", + "uninstalling": "Удаление", + "uninstalledWithExclamation": "Удалено!", + "uninstalled": "Удалено" + }, + + "resume": { + "resumeWithEllipsis": "Возобновить...", + "resume": "Возобновить", + "resumingWithEllipsis": "Возобновление...", + "resuming": "Возобновление" + }, + + "start": { + "startWithEllipsis": "Запустить...", + "start": "Запустить", + "startingWithEllipsis": "Запуск...", + "starting": "Запуск", + "started": "Запущено" + }, + + "stop": { + "stopWithEllipsis": "Остановить...", + "stop": "Остановить", + "stoppingWithEllipsis": "Остановка...", + "stopping": "Остановка", + "stoppedWithExclamation": "Остановлено!", + "stopped": "Остановлено" + }, + + "import": { + "importWithEllipsis": "Импортировать...", + "import": "Импортировать", + "importingWithEllipsis": "Импорт...", + "importing": "Импорт", + "importedWithExclamation": "Импортировано!", + "imported": "Импортировано" + }, + + "letsGo": { + "letsGo": "Поехали", + "letsGoWithEllipsis": "Поехали...", + "letsGoWithExclamation": "Поехали!" + }, + + "run": { + "runWithEllipsis": "Запустить...", + "run": "Запустить", + "runningWithEllipsis": "Выполнение...", + "running": "Выполнение" + }, + + "configure": { + "configureWithEllipsis": "Настроить...", + "configure": "Настроить", + "configuringWithEllipsis": "Настройка...", + "configured": "Настроено" + }, + + "publish": { + "publishWithEllipsis": "Опубликовать...", + "publish": "Опубликовать", + "publishingWithEllipsis": "Публикация...", + "publishing": "Публикация", + "publishedWithExclamation": "Опубликовано!", + "published": "Опубликовано" + } }