chore: add missing translations (#28631)

This commit is contained in:
yyh
2025-11-25 14:52:17 +08:00
committed by GitHub
parent 58be008676
commit 82dac2eba0
250 changed files with 9194 additions and 324 deletions

View File

@@ -113,6 +113,15 @@ const translation = {
currentView: 'Текущий вид',
currentWorkflow: 'Текущий рабочий процесс',
moreActions: 'Больше действий',
listening: 'Слушание',
chooseStartNodeToRun: 'Выберите начальный узел для запуска',
runAllTriggers: 'Запустить все триггеры',
features: 'Функции',
featuresDescription: 'Улучшить пользовательский опыт веб-приложения',
featuresDocLink: 'Узнать больше',
needAdd: 'Необходимо добавить узел {{node}}',
needStartNode: 'Необходимо добавить хотя бы один начальный узел',
workflowAsToolDisabledHint: 'Опубликуйте последний рабочий процесс и убедитесь, что подключен узел ввода пользователя, прежде чем настраивать его как инструмент.',
},
env: {
envPanelTitle: 'Переменные среды',
@@ -219,6 +228,7 @@ const translation = {
rerankModelRequired: 'Перед включением модели повторного ранжирования убедитесь, что модель успешно настроена в настройках.',
noValidTool: '{{field}} не выбран валидный инструмент',
toolParameterRequired: '{{field}}: параметр [{{param}}] является обязательным',
startNodeRequired: 'Пожалуйста, сначала добавьте начальный узел перед {{operation}}',
},
singleRun: {
testRun: 'Тестовый запуск ',
@@ -250,6 +260,21 @@ const translation = {
'allAdded': 'Все добавлено',
'sources': 'Источников',
'searchDataSource': 'Поиск источника данных',
'start': 'Начать',
'searchTrigger': 'Триггеры поиска...',
'allTriggers': 'Все триггеры',
'noPluginsFound': 'Плагины не найдены',
'requestToCommunity': 'Запросы к сообществу',
'featuredTools': 'Избранное',
'showMoreFeatured': 'Показать больше',
'showLessFeatured': 'Показать меньше',
'installed': 'Установлено',
'pluginByAuthor': 'По {{author}}',
'usePlugin': 'Выбрать инструмент',
'hideActions': 'Скрыть инструменты',
'noFeaturedPlugins': 'Откройте больше инструментов в Маркетплейсе',
'noFeaturedTriggers': 'Откройте больше триггеров на Маркетплейсе',
'startDisabledTip': 'Узел триггера и узел ввода пользователя исключают друг друга.',
},
blocks: {
'start': 'Начало',
@@ -276,6 +301,10 @@ const translation = {
'loop-end': 'Выйти из цикла',
'knowledge-index': 'База знаний',
'datasource': 'Источник данных',
'originalStartNode': 'исходный начальный узел',
'trigger-schedule': 'Триггер расписания',
'trigger-webhook': 'Вебхук-триггер',
'trigger-plugin': 'Триггер плагина',
},
blocksAbout: {
'start': 'Определите начальные параметры для запуска рабочего процесса',
@@ -300,6 +329,9 @@ const translation = {
'loop': 'Выполните цикл логики до тех пор, пока не будет достигнуто условие завершения или максимальное количество итераций цикла.',
'knowledge-index': 'База знаний о компании',
'datasource': 'Источник данных О компании',
'trigger-schedule': 'Триггер рабочего процесса на основе времени, который запускает рабочие процессы по расписанию',
'trigger-webhook': 'Триггер вебхука получает HTTP-запросы от сторонних систем для автоматического запуска рабочих процессов.',
'trigger-plugin': 'Триггер интеграции с третьими сторонами, который запускает рабочие процессы на основе событий внешней платформы',
},
operator: {
zoomIn: 'Увеличить',
@@ -340,6 +372,8 @@ const translation = {
maximize: 'Максимизировать холст',
scrollToSelectedNode: 'Прокрутите до выбранного узла',
optional_and_hidden: '(необязательно и скрыто)',
goTo: 'Перейти к',
startNode: 'Начальный узел',
},
nodes: {
common: {
@@ -787,6 +821,8 @@ const translation = {
parallelModeEnableDesc: 'В параллельном режиме задачи в итерациях поддерживают параллельное выполнение. Вы можете настроить это на панели свойств справа.',
MaxParallelismDesc: 'Максимальный параллелизм используется для управления количеством задач, выполняемых одновременно в одной итерации.',
answerNodeWarningDesc: 'Предупреждение о параллельном режиме: узлы ответов, присвоение переменных диалога и постоянные операции чтения и записи в итерациях могут вызывать исключения.',
flattenOutput: 'Сгладить вывод',
flattenOutputDesc: 'Когда функция включена, если все результаты итераций являются массивами, они будут объединены в один массив. Когда функция выключена, результаты сохранят вложенную структуру массивов.',
},
note: {
addNote: 'Добавить заметку',
@@ -963,6 +999,144 @@ const translation = {
rerankingModelIsInvalid: 'Модель повторной ранжировки недействительна',
embeddingModelIsInvalid: 'Модель встраивания недействительна',
},
triggerPlugin: {
authorized: 'Авторизованный',
notConfigured: 'Не настроено',
notAuthorized: 'Не авторизовано',
selectSubscription: 'Выберите подписку',
availableSubscriptions: 'Доступные подписки',
addSubscription: 'Добавить новую подписку',
removeSubscription: 'Отменить подписку',
subscriptionRemoved: 'Подписка успешно удалена',
error: 'Ошибка',
configuration: 'Конфигурация',
remove: 'Удалить',
or: 'ИЛИ',
useOAuth: 'Использовать OAuth',
useApiKey: 'Использовать ключ API',
authenticationFailed: 'Ошибка аутентификации',
authenticationSuccess: 'Аутентификация успешна',
oauthConfigFailed: 'Сбой настройки OAuth',
configureOAuthClient: 'Настроить OAuth-клиент',
oauthClientDescription: 'Настройте учетные данные клиента OAuth для включения аутентификации',
oauthClientSaved: 'Конфигурация клиента OAuth успешно сохранена',
configureApiKey: 'Настроить ключ API',
apiKeyDescription: 'Настройте учетные данные ключа API для аутентификации',
apiKeyConfigured: 'API-ключ успешно настроен',
configurationFailed: 'Не удалось выполнить настройку',
failedToStart: 'Не удалось запустить процесс аутентификации',
credentialsVerified: 'Учётные данные успешно проверены',
credentialVerificationFailed: 'Проверка учетных данных не удалась',
verifyAndContinue: 'Проверить и продолжить',
configureParameters: 'Настроить параметры',
parametersDescription: 'Настройте параметры и свойства триггера',
configurationComplete: 'Конфигурация завершена',
configurationCompleteDescription: 'Ваш триггер успешно настроен',
configurationCompleteMessage: 'Ваша конфигурация триггера завершена и готова к использованию.',
parameters: 'Параметры',
properties: 'Свойства',
propertiesDescription: 'Дополнительные параметры конфигурации для этого триггера',
noConfigurationRequired: 'Дополнительная настройка для этого триггера не требуется.',
subscriptionName: 'Название подписки',
subscriptionNameDescription: 'Введите уникальное имя для этой подписки на триггер',
subscriptionNamePlaceholder: 'Введите название подписки...',
subscriptionNameRequired: 'Требуется название подписки',
subscriptionRequired: 'Требуется подписка',
},
triggerSchedule: {
title: 'Расписание',
nodeTitle: 'Триггер расписания',
notConfigured: 'Не настроено',
useCronExpression: 'Используйте cron-выражение',
useVisualPicker: 'Использовать визуальный выбор',
frequency: {
label: 'ЧАСТОТА',
hourly: 'Почасовой',
daily: 'Ежедневно',
weekly: 'Еженедельно',
monthly: 'Ежемесячно',
},
selectFrequency: 'Выберите частоту',
frequencyLabel: 'Частота',
nextExecution: 'Следующее исполнение',
weekdays: 'Будние дни',
time: 'Время',
cronExpression: 'Выражение Cron',
nextExecutionTime: 'ВРЕМЯ СЛЕДУЮЩЕГО ВЫПОЛНЕНИЯ',
nextExecutionTimes: 'Следующие 5 времен выполнения',
startTime: 'Время начала',
executeNow: 'Выполнение сейчас',
selectDateTime: 'Выберите дату и время',
hours: 'Часы',
minutes: 'Минуты',
onMinute: 'На минуту',
days: 'Дни',
lastDay: 'Последний день',
lastDayTooltip: 'Не все месяцы имеют 31 день. Используйте опцию «последний день», чтобы выбрать последний день каждого месяца.',
mode: 'Мода',
timezone: 'Часовой пояс',
visualConfig: 'Визуальная конфигурация',
monthlyDay: 'Ежемесячный день',
executionTime: 'Время выполнения',
invalidTimezone: 'Недопустимая временная зона',
invalidCronExpression: 'Неверное выражение cron',
noValidExecutionTime: 'Невозможно рассчитать допустимое время выполнения',
executionTimeCalculationError: 'Не удалось вычислить время выполнения',
invalidFrequency: 'Недопустимая частота',
invalidStartTime: 'Недопустимое время начала',
startTimeMustBeFuture: 'Время начала должно быть в будущем',
invalidTimeFormat: 'Неверный формат времени (ожидается ЧЧ:ММ AM/PM)',
invalidWeekday: 'Неверный день недели: {{weekday}}',
invalidMonthlyDay: 'Месячный день должен быть от 1 до 31 или "последний"',
invalidOnMinute: 'Минуты должны быть в диапазоне от 0 до 59',
invalidExecutionTime: 'Недопустимое время выполнения',
executionTimeMustBeFuture: 'Время выполнения должно быть в будущем',
},
triggerWebhook: {
title: 'Вебхук-триггер',
nodeTitle: '🔗 Вебхук триггер',
configPlaceholder: 'Настройка срабатывания вебхука будет реализована здесь',
webhookUrl: 'URL вебхука',
webhookUrlPlaceholder: 'Нажмите «Создать», чтобы сгенерировать URL вебхука',
generate: 'Сгенерировать',
copy: 'Копировать',
test: 'Тест',
urlGenerated: 'URL вебхука успешно создан',
urlGenerationFailed: 'Не удалось создать URL вебхука',
urlCopied: 'URL скопирован в буфер обмена',
method: 'Метод',
contentType: 'Тип контента',
queryParameters: 'Параметры запроса',
headerParameters: 'Параметры заголовка',
requestBodyParameters: 'Параметры тела запроса',
parameterName: 'Имя переменной',
varName: 'Имя переменной',
varType: 'Тип',
varNamePlaceholder: 'Введите имя переменной...',
required: 'Обязательно',
addParameter: 'Добавить',
addHeader: 'Добавить',
noParameters: 'Параметры не настроены',
noQueryParameters: 'Параметры запроса не настроены',
noHeaders: 'Заголовки не настроены',
noBodyParameters: 'Параметры тела не настроены',
debugUrlTitle: 'Для тестовых запусков всегда используйте этот URL',
debugUrlCopy: 'Нажмите, чтобы скопировать',
debugUrlCopied: 'Скопировано!',
debugUrlPrivateAddressWarning: 'Похоже, что этот URL является внутренним адресом, из-за чего запросы вебхука могут не выполняться. Вы можете изменить TRIGGER_URL на публичный адрес.',
errorHandling: 'Обработка ошибок',
errorStrategy: 'Обработка ошибок',
responseConfiguration: 'Ответ',
asyncMode: 'Асинхронный режим',
statusCode: 'Код состояния',
responseBody: 'Тело ответа',
responseBodyPlaceholder: 'Напишите здесь текст вашего ответа',
headers: 'Заголовки',
validation: {
webhookUrlRequired: 'Требуется URL вебхука',
invalidParameterType: 'Неверный тип параметра "{{type}}" для параметра "{{name}}"',
},
},
},
tracing: {
stopBy: 'Остановлено {{user}}',
@@ -1037,6 +1211,18 @@ const translation = {
exportToolTip: 'Экспорт переменной в файл',
largeData: 'Большие данные, предварительный просмотр только для чтения. Экспортируйте для просмотра всего.',
largeDataNoExport: 'Большие данные - только частичный предварительный просмотр',
listening: {
title: 'Ожидание событий от триггеров...',
tip: 'Теперь вы можете имитировать срабатывание событий, отправляя тестовые запросы на HTTP {{nodeName}}-эндпоинт или использовать его в качестве URL обратного вызова для отладки живых событий. Все результаты можно просматривать непосредственно в инспекторе переменных.',
tipPlugin: 'Теперь вы можете создавать события в {{- pluginName}} и получать данные этих событий в Инспекторе переменных.',
tipSchedule: 'Прослушивание событий от триггеров расписания.\nСледующий запланированный запуск: {{nextTriggerTime}}',
tipFallback: 'Ожидайте входящие триггерные события. Результаты появятся здесь.',
defaultNodeName: 'этот триггер',
defaultPluginName: 'этот плагин срабатывает',
defaultScheduleTime: 'Не настроено',
selectedTriggers: 'выбранные триггеры',
stopButton: 'Стоп',
},
},
lastRunTab: 'Последний запуск',
settingsTab: 'Настройки',
@@ -1054,11 +1240,52 @@ const translation = {
copyLastRunError: 'Не удалось скопировать последние входные данные выполнения',
noMatchingInputsFound: 'Не найдено соответствующих входных данных из последнего запуска.',
lastOutput: 'Последний вывод',
lastRunInputsCopied: '{{count}} вход(ов) скопировано из последнего запуска',
},
sidebar: {
exportWarning: 'Экспортировать текущую сохранённую версию',
exportWarningDesc: 'Это экспортирует текущую сохранённую версию вашего рабочего процесса. Если у вас есть несохранённые изменения в редакторе, сначала сохраните их с помощью опции экспорта на полотне рабочего процесса.',
},
publishLimit: {
startNodeTitlePrefix: 'Обновить до',
startNodeTitleSuffix: 'разблокировать неограниченное количество триггеров для каждого рабочего процесса',
startNodeDesc: 'Вы достигли лимита в 2 триггера на рабочий процесс для этого плана. Обновите план, чтобы опубликовать этот рабочий процесс.',
},
error: {
startNodeRequired: 'Пожалуйста, сначала добавьте начальный узел перед {{operation}}',
operations: {
connectingNodes: 'соединение узлов',
addingNodes: 'добавление узлов',
modifyingWorkflow: 'изменение рабочего процесса',
updatingWorkflow: 'обновление рабочего процесса',
},
},
customWebhook: 'Пользовательский вебхук',
difyTeam: 'Команда Dify',
triggerStatus: {
enabled: 'СПУСКОВОЙ МЕХАНИЗМ',
disabled: 'ТРЕВОГА • ОТКЛЮЧЕНО',
},
entryNodeStatus: {
enabled: 'НАЧАТЬ',
disabled: 'СТАРТ • ОТКЛЮЧЕНО',
},
onboarding: {
title: 'Выберите начальный узел, чтобы начать',
description: 'Разные начальные узлы имеют разные возможности. Не волнуйтесь, вы всегда сможете изменить их позже.',
userInputFull: 'Вход пользователя (исходный начальный узел)',
userInputDescription: 'Начальный узел, который позволяет задавать переменные пользовательского ввода с возможностями инструментов: веб-приложение, API сервиса, сервер MCP и рабочий процесс.',
trigger: 'Триггер',
triggerDescription: 'Триггеры могут служить начальной точкой рабочего процесса, например, для запланированных задач, пользовательских вебхуков или интеграций с другими приложениями.',
back: 'Назад',
learnMore: 'Узнать больше',
aboutStartNode: 'о стартовом узле.',
escTip: {
press: 'Нажмите',
key: 'esc',
toDismiss: 'уволить',
},
},
}
export default translation