dify/web/i18n/ru-RU/workflow.ts
Alex 35f13c7327
Add Russian language (#7860)
Co-authored-by: d8rt8v <alex@ydertev.ru>
Co-authored-by: crazywoola <427733928@qq.com>
2024-09-02 19:09:41 +08:00

541 lines
29 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const translation = {
common: {
undo: 'Отменить',
redo: 'Повторить',
editing: 'Редактирование',
autoSaved: 'Автосохранено',
unpublished: 'Не опубликовано',
published: 'Опубликовано',
publish: 'Опубликовать',
update: 'Обновить',
run: 'Запустить',
running: 'Выполняется',
inRunMode: 'В режиме выполнения',
inPreview: 'В режиме предпросмотра',
inPreviewMode: 'В режиме предпросмотра',
preview: 'Предпросмотр',
viewRunHistory: 'Посмотреть историю запусков',
runHistory: 'История запусков',
goBackToEdit: 'Вернуться к редактору',
conversationLog: 'Журнал разговоров',
features: 'Функции',
debugAndPreview: 'Предпросмотр',
restart: 'Перезапустить',
currentDraft: 'Текущий черновик',
currentDraftUnpublished: 'Текущий черновик не опубликован',
latestPublished: 'Последняя опубликованная версия',
publishedAt: 'Опубликовано',
restore: 'Восстановить',
runApp: 'Запустить приложение',
batchRunApp: 'Пакетный запуск приложения',
accessAPIReference: 'Доступ к справочнику API',
embedIntoSite: 'Встроить на сайт',
addTitle: 'Добавить заголовок...',
addDescription: 'Добавить описание...',
noVar: 'Нет переменной',
searchVar: 'Поиск переменной',
variableNamePlaceholder: 'Имя переменной',
setVarValuePlaceholder: 'Установить значение переменной',
needConnecttip: 'Этот шаг ни к чему не подключен',
maxTreeDepth: 'Максимальный предел {{depth}} узлов на ветку',
needEndNode: 'Необходимо добавить блок "Конец"',
needAnswerNode: 'Необходимо добавить блок "Ответ"',
workflowProcess: 'Процесс рабочего процесса',
notRunning: 'Еще не запущено',
previewPlaceholder: 'Введите текст в поле ниже, чтобы начать отладку чат-бота',
effectVarConfirm: {
title: 'Удалить переменную',
content: 'Переменная используется в других узлах. Вы все еще хотите удалить ее?',
},
insertVarTip: 'Нажмите клавишу "/" чтобы быстро вставить',
processData: 'Обработка данных',
input: 'Вход',
output: 'Выход',
jinjaEditorPlaceholder: 'Введите "/" или "{" для вставки переменной',
viewOnly: 'Только просмотр',
showRunHistory: 'Показать историю запусков',
enableJinja: 'Включить поддержку шаблонов Jinja',
learnMore: 'Узнать больше',
copy: 'Копировать',
duplicate: 'Дублировать',
addBlock: 'Добавить блок',
pasteHere: 'Вставить сюда',
pointerMode: 'Режим указателя',
handMode: 'Режим руки',
model: 'Модель',
workflowAsTool: 'Рабочий процесс как инструмент',
configureRequired: 'Требуется настройка',
configure: 'Настроить',
manageInTools: 'Управление в инструментах',
workflowAsToolTip: 'После обновления рабочего процесса требуется перенастройка инструмента.',
viewDetailInTracingPanel: 'Посмотреть подробности',
syncingData: 'Синхронизация данных, всего несколько секунд.',
importDSL: 'Импортировать DSL',
importDSLTip: 'Текущий черновик будет перезаписан. Экспортируйте рабочий процесс в качестве резервной копии перед импортом.',
backupCurrentDraft: 'Резервное копирование текущего черновика',
chooseDSL: 'Выберите файл DSL(yml)',
overwriteAndImport: 'Перезаписать и импортировать',
importFailure: 'Ошибка импорта',
importSuccess: 'Импорт успешно завершен',
},
env: {
envPanelTitle: 'Переменные среды',
envDescription: 'Переменные среды могут использоваться для хранения конфиденциальной информации и учетных данных. Они доступны только для чтения и могут быть отделены от файла DSL во время экспорта.',
envPanelButton: 'Добавить переменную',
modal: {
title: 'Добавить переменную среды',
editTitle: 'Редактировать переменную среды',
type: 'Тип',
name: 'Имя',
namePlaceholder: 'Имя переменной среды',
value: 'Значение',
valuePlaceholder: 'Значение переменной среды',
secretTip: 'Используется для определения конфиденциальной информации или данных, с настройками DSL, настроенными для предотвращения утечки.',
},
export: {
title: 'Экспортировать секретные переменные среды?',
checkbox: 'Экспортировать секретные значения',
ignore: 'Экспортировать DSL',
export: 'Экспортировать DSL с секретными значениями ',
},
},
chatVariable: {
panelTitle: 'Переменные разговора',
panelDescription: 'Переменные разговора используются для хранения интерактивной информации, которую LLM необходимо запомнить, включая историю разговоров, загруженные файлы, пользовательские настройки. Они доступны для чтения и записи. ',
docLink: 'Посетите нашу документацию, чтобы узнать больше.',
button: 'Добавить переменную',
modal: {
title: 'Добавить переменную разговора',
editTitle: 'Редактировать переменную разговора',
name: 'Имя',
namePlaceholder: 'Имя переменной',
type: 'Тип',
value: 'Значение по умолчанию',
valuePlaceholder: 'Значение по умолчанию, оставьте пустым, чтобы не устанавливать',
description: 'Описание',
descriptionPlaceholder: 'Опишите переменную',
editInJSON: 'Редактировать в JSON',
oneByOne: 'Добавлять по одному',
editInForm: 'Редактировать в форме',
arrayValue: 'Значение',
addArrayValue: 'Добавить значение',
objectKey: 'Ключ',
objectType: 'Тип',
objectValue: 'Значение по умолчанию',
},
storedContent: 'Сохраненный контент',
updatedAt: 'Обновлено в ',
},
changeHistory: {
title: 'История изменений',
placeholder: 'Вы еще ничего не изменили',
clearHistory: 'Очистить историю',
hint: 'Подсказка',
hintText: 'Ваши действия по редактированию отслеживаются в истории изменений, которая хранится на вашем устройстве в течение этого сеанса. Эта история будет очищена, когда вы покинете редактор.',
stepBackward_one: '{{count}} шаг назад',
stepBackward_other: '{{count}} шагов назад',
stepForward_one: '{{count}} шаг вперед',
stepForward_other: '{{count}} шагов вперед',
sessionStart: 'Начало сеанса',
currentState: 'Текущее состояние',
nodeTitleChange: 'Изменено название блока',
nodeDescriptionChange: 'Изменено описание блока',
nodeDragStop: 'Блок перемещен',
nodeChange: 'Блок изменен',
nodeConnect: 'Блок подключен',
nodePaste: 'Блок вставлен',
nodeDelete: 'Блок удален',
nodeAdd: 'Блок добавлен',
nodeResize: 'Размер блока изменен',
noteAdd: 'Заметка добавлена',
noteChange: 'Заметка изменена',
noteDelete: 'Заметка удалена',
edgeDelete: 'Блок отключен',
},
errorMsg: {
fieldRequired: '{{field}} обязательно для заполнения',
authRequired: 'Требуется авторизация',
invalidJson: '{{field}} неверный JSON',
fields: {
variable: 'Имя переменной',
variableValue: 'Значение переменной',
code: 'Код',
model: 'Модель',
rerankModel: 'Модель переранжирования',
},
invalidVariable: 'Неверная переменная',
},
singleRun: {
testRun: 'Тестовый запуск ',
startRun: 'Начать запуск',
running: 'Выполняется',
testRunIteration: 'Итерация тестового запуска',
back: 'Назад',
iteration: 'Итерация',
},
tabs: {
'searchBlock': 'Поиск блока',
'blocks': 'Блоки',
'searchTool': 'Поиск инструмента',
'tools': 'Инструменты',
'allTool': 'Все',
'builtInTool': 'Встроенные',
'customTool': 'Пользовательские',
'workflowTool': 'Рабочий процесс',
'question-understand': 'Понимание вопроса',
'logic': 'Логика',
'transform': 'Преобразование',
'utilities': 'Утилиты',
'noResult': 'Ничего не найдено',
},
blocks: {
'start': 'Начало',
'end': 'Конец',
'answer': 'Ответ',
'llm': 'LLM',
'knowledge-retrieval': 'Поиск знаний',
'question-classifier': 'Классификатор вопросов',
'if-else': 'ЕСЛИ/ИНАЧЕ',
'code': 'Код',
'template-transform': 'Шаблон',
'http-request': 'HTTP-запрос',
'variable-assigner': 'Агрегатор переменных',
'variable-aggregator': 'Агрегатор переменных',
'assigner': 'Назначение переменной',
'iteration-start': 'Начало итерации',
'iteration': 'Итерация',
'parameter-extractor': 'Извлечение параметров',
},
blocksAbout: {
'start': 'Определите начальные параметры для запуска рабочего процесса',
'end': 'Определите конец и тип результата рабочего процесса',
'answer': 'Определите содержимое ответа в чате',
'llm': 'Вызов больших языковых моделей для ответа на вопросы или обработки естественного языка',
'knowledge-retrieval': 'Позволяет запрашивать текстовый контент, связанный с вопросами пользователей, из базы знаний',
'question-classifier': 'Определите условия классификации вопросов пользователей, LLM может определить, как будет развиваться разговор на основе описания классификации',
'if-else': 'Позволяет разделить рабочий процесс на две ветки на основе условий if/else',
'code': 'Выполните фрагмент кода Python или NodeJS для реализации пользовательской логики',
'template-transform': 'Преобразование данных в строку с использованием синтаксиса шаблонов Jinja',
'http-request': 'Разрешить отправку запросов на сервер по протоколу HTTP',
'variable-assigner': 'Объединение переменных из нескольких ветвей в одну переменную для унифицированной настройки подчиненных узлов.',
'assigner': 'Узел назначения переменной используется для назначения значений записываемым переменным (например, переменным разговора).',
'variable-aggregator': 'Объединение переменных из нескольких ветвей в одну переменную для унифицированной настройки подчиненных узлов.',
'iteration': 'Выполнение нескольких шагов над объектом списка до тех пор, пока не будут выведены все результаты.',
'parameter-extractor': 'Используйте LLM для извлечения структурированных параметров из естественного языка для вызова инструментов или HTTP-запросов.',
},
operator: {
zoomIn: 'Увеличить',
zoomOut: 'Уменьшить',
zoomTo50: 'Масштаб 50%',
zoomTo100: 'Масштаб 100%',
zoomToFit: 'По размеру',
},
panel: {
userInputField: 'Поле ввода пользователя',
changeBlock: 'Изменить блок',
helpLink: 'Ссылка на справку',
about: 'О программе',
createdBy: 'Создано ',
nextStep: 'Следующий шаг',
addNextStep: 'Добавить следующий блок в этот рабочий процесс',
selectNextStep: 'Выбрать следующий блок',
runThisStep: 'Выполнить этот шаг',
checklist: 'Контрольный список',
checklistTip: 'Убедитесь, что все проблемы решены перед публикацией',
checklistResolved: 'Все проблемы решены',
organizeBlocks: 'Организовать блоки',
change: 'Изменить',
optional: '(необязательно)',
},
nodes: {
common: {
outputVars: 'Выходные переменные',
insertVarTip: 'Вставить переменную',
memory: {
memory: 'Память',
memoryTip: 'Настройки памяти чата',
windowSize: 'Размер окна',
conversationRoleName: 'Имя роли разговора',
user: 'Префикс пользователя',
assistant: 'Префикс помощника',
},
memories: {
title: 'Воспоминания',
tip: 'Память чата',
builtIn: 'Встроенные',
},
},
start: {
required: 'обязательно',
inputField: 'Поле ввода',
builtInVar: 'Встроенные переменные',
outputVars: {
query: 'Ввод пользователя',
memories: {
des: 'История разговоров',
type: 'тип сообщения',
content: 'содержимое сообщения',
},
files: 'Список файлов',
},
noVarTip: 'Установите входные данные, которые можно использовать в рабочем процессе',
},
end: {
outputs: 'Выходы',
output: {
type: 'тип вывода',
variable: 'выходная переменная',
},
type: {
'none': 'Нет',
'plain-text': 'Простой текст',
'structured': 'Структурированный',
},
},
answer: {
answer: 'Ответ',
outputVars: 'Выходные переменные',
},
llm: {
model: 'модель',
variables: 'переменные',
context: 'контекст',
contextTooltip: 'Вы можете импортировать знания как контекст',
notSetContextInPromptTip: 'Чтобы включить функцию контекста, пожалуйста, заполните переменную контекста в PROMPT.',
prompt: 'подсказка',
roleDescription: {
system: 'Дайте высокоуровневые инструкции для разговора',
user: 'Предоставьте инструкции, запросы или любой текстовый ввод для модели',
assistant: 'Ответы модели на основе сообщений пользователя',
},
addMessage: 'Добавить сообщение',
vision: 'зрение',
files: 'Файлы',
resolution: {
name: 'Разрешение',
high: 'Высокое',
low: 'Низкое',
},
outputVars: {
output: 'Создать контент',
usage: 'Информация об использовании модели',
},
singleRun: {
variable: 'Переменная',
},
sysQueryInUser: 'sys.query в сообщении пользователя обязателен',
},
knowledgeRetrieval: {
queryVariable: 'Переменная запроса',
knowledge: 'Знания',
outputVars: {
output: 'Извлеченные сегментированные данные',
content: 'Сегментированный контент',
title: 'Сегментированный заголовок',
icon: 'Сегментированный значок',
url: 'Сегментированный URL',
metadata: 'Другие метаданные',
},
},
http: {
inputVars: 'Входные переменные',
api: 'API',
apiPlaceholder: 'Введите URL, введите "/" для вставки переменной',
notStartWithHttp: 'API должен начинаться с http:// или https://',
key: 'Ключ',
value: 'Значение',
bulkEdit: 'Массовое редактирование',
keyValueEdit: 'Редактирование ключа-значения',
headers: 'Заголовки',
params: 'Параметры',
body: 'Тело',
outputVars: {
body: 'Содержимое ответа',
statusCode: 'Код состояния ответа',
headers: 'Список заголовков ответа JSON',
files: 'Список файлов',
},
authorization: {
'authorization': 'Авторизация',
'authorizationType': 'Тип авторизации',
'no-auth': 'Нет',
'api-key': 'API-ключ',
'auth-type': 'Тип аутентификации',
'basic': 'Базовая',
'bearer': 'Bearer',
'custom': 'Пользовательская',
'api-key-title': 'API-ключ',
'header': 'Заголовок',
},
insertVarPlaceholder: 'введите "/" для вставки переменной',
timeout: {
title: 'Тайм-аут',
connectLabel: 'Тайм-аут подключения',
connectPlaceholder: 'Введите тайм-аут подключения в секундах',
readLabel: 'Тайм-аут чтения',
readPlaceholder: 'Введите тайм-аут чтения в секундах',
writeLabel: 'Тайм-аут записи',
writePlaceholder: 'Введите тайм-аут записи в секундах',
},
},
code: {
inputVars: 'Входные переменные',
outputVars: 'Выходные переменные',
advancedDependencies: 'Расширенные зависимости',
advancedDependenciesTip: 'Добавьте сюда некоторые предварительно загруженные зависимости, которые занимают больше времени для потребления или не являются встроенными по умолчанию',
searchDependencies: 'Поиск зависимостей',
},
templateTransform: {
inputVars: 'Входные переменные',
code: 'Код',
codeSupportTip: 'Поддерживает только Jinja2',
outputVars: {
output: 'Преобразованный контент',
},
},
ifElse: {
if: 'Если',
else: 'Иначе',
elseDescription: 'Используется для определения логики, которая должна быть выполнена, когда условие if не выполняется.',
and: 'и',
or: 'или',
operator: 'Оператор',
notSetVariable: 'Пожалуйста, сначала установите переменную',
comparisonOperator: {
'contains': 'содержит',
'not contains': 'не содержит',
'start with': 'начинается с',
'end with': 'заканчивается на',
'is': 'равно',
'is not': 'не равно',
'empty': 'пусто',
'not empty': 'не пусто',
'null': 'null',
'not null': 'не null',
},
enterValue: 'Введите значение',
addCondition: 'Добавить условие',
conditionNotSetup: 'Условие НЕ настроено',
selectVariable: 'Выберите переменную...',
},
variableAssigner: {
title: 'Назначить переменные',
outputType: 'Тип вывода',
varNotSet: 'Переменная не установлена',
noVarTip: 'Добавьте переменные, которые нужно назначить',
type: {
string: 'Строка',
number: 'Число',
object: 'Объект',
array: 'Массив',
},
aggregationGroup: 'Группа агрегации',
aggregationGroupTip: 'Включение этой функции позволяет агрегатору переменных агрегировать несколько наборов переменных.',
addGroup: 'Добавить группу',
outputVars: {
varDescribe: 'Вывод {{groupName}}',
},
setAssignVariable: 'Установить переменную назначения',
},
assigner: {
'assignedVariable': 'Назначенная переменная',
'writeMode': 'Режим записи',
'writeModeTip': 'Режим добавления: доступен только для переменных массива.',
'over-write': 'Перезаписать',
'append': 'Добавить',
'plus': 'Плюс',
'clear': 'Очистить',
'setVariable': 'Установить переменную',
'variable': 'Переменная',
},
tool: {
toAuthorize: 'Авторизовать',
inputVars: 'Входные переменные',
outputVars: {
text: 'контент, сгенерированный инструментом',
files: {
title: 'файлы, сгенерированные инструментом',
type: 'Поддерживаемый тип. Сейчас поддерживаются только изображения',
transfer_method: 'Метод передачи. Значение - remote_url или local_file',
url: 'URL изображения',
upload_file_id: 'Идентификатор загруженного файла',
},
json: 'json, сгенерированный инструментом',
},
},
questionClassifiers: {
model: 'модель',
inputVars: 'Входные переменные',
outputVars: {
className: 'Имя класса',
},
class: 'Класс',
classNamePlaceholder: 'Введите имя вашего класса',
advancedSetting: 'Расширенные настройки',
topicName: 'Название темы',
topicPlaceholder: 'Введите название вашей темы',
addClass: 'Добавить класс',
instruction: 'Инструкция',
instructionTip: 'Введите дополнительные инструкции, чтобы помочь классификатору вопросов лучше понять, как классифицировать вопросы.',
instructionPlaceholder: 'Введите вашу инструкцию',
},
parameterExtractor: {
inputVar: 'Входная переменная',
extractParameters: 'Извлечь параметры',
importFromTool: 'Импортировать из инструментов',
addExtractParameter: 'Добавить параметр для извлечения',
addExtractParameterContent: {
name: 'Имя',
namePlaceholder: 'Имя извлекаемого параметра',
type: 'Тип',
typePlaceholder: 'Тип извлекаемого параметра',
description: 'Описание',
descriptionPlaceholder: 'Описание извлекаемого параметра',
required: 'Обязательный',
requiredContent: 'Обязательный используется только в качестве ссылки для вывода модели, а не для обязательной проверки вывода параметра.',
},
extractParametersNotSet: 'Параметры для извлечения не настроены',
instruction: 'Инструкция',
instructionTip: 'Введите дополнительные инструкции, чтобы помочь извлекателю параметров понять, как извлекать параметры.',
advancedSetting: 'Расширенные настройки',
reasoningMode: 'Режим рассуждения',
reasoningModeTip: 'Вы можете выбрать соответствующий режим рассуждения, основываясь на способности модели реагировать на инструкции для вызова функций или подсказки.',
isSuccess: 'Успешно. В случае успеха значение равно 1, в случае сбоя - 0.',
errorReason: 'Причина ошибки',
},
iteration: {
deleteTitle: 'Удалить узел итерации?',
deleteDesc: 'Удаление узла итерации приведет к удалению всех дочерних узлов',
input: 'Вход',
output: 'Выходные переменные',
iteration_one: '{{count}} Итерация',
iteration_other: '{{count}} Итераций',
currentIteration: 'Текущая итерация',
},
note: {
addNote: 'Добавить заметку',
editor: {
placeholder: 'Напишите свою заметку...',
small: 'Маленький',
medium: 'Средний',
large: 'Большой',
bold: 'Жирный',
italic: 'Курсив',
strikethrough: 'Зачеркнутый',
link: 'Ссылка',
openLink: 'Открыть',
unlink: 'Удалить ссылку',
enterUrl: 'Введите URL...',
invalidUrl: 'Неверный URL',
bulletList: 'Маркированный список',
showAuthor: 'Показать автора',
},
},
},
tracing: {
stopBy: 'Остановлено {{user}}',
},
}
export default translation