dify
This commit is contained in:
98
dify/web/i18n/ru-RU/app-annotation.ts
Normal file
98
dify/web/i18n/ru-RU/app-annotation.ts
Normal file
@@ -0,0 +1,98 @@
|
||||
const translation = {
|
||||
title: 'Аннотации',
|
||||
name: 'Ответить на аннотацию',
|
||||
editBy: 'Ответ отредактирован {{author}}',
|
||||
noData: {
|
||||
title: 'Нет аннотаций',
|
||||
description: 'Вы можете редактировать аннотации во время отладки приложения или импортировать их массово здесь для получения качественного ответа.',
|
||||
},
|
||||
table: {
|
||||
header: {
|
||||
question: 'вопрос',
|
||||
answer: 'ответ',
|
||||
createdAt: 'создано',
|
||||
hits: 'попаданий',
|
||||
actions: 'действия',
|
||||
addAnnotation: 'Добавить аннотацию',
|
||||
bulkImport: 'Массовый импорт',
|
||||
bulkExport: 'Массовый экспорт',
|
||||
clearAll: 'Очистить все аннотации',
|
||||
clearAllConfirm: 'Удалить все аннотации?',
|
||||
},
|
||||
},
|
||||
editModal: {
|
||||
title: 'Редактировать ответ аннотации',
|
||||
queryName: 'Запрос пользователя',
|
||||
answerName: 'Storyteller Bot',
|
||||
yourAnswer: 'Ваш ответ',
|
||||
answerPlaceholder: 'Введите ваш ответ здесь',
|
||||
yourQuery: 'Ваш запрос',
|
||||
queryPlaceholder: 'Введите ваш запрос здесь',
|
||||
removeThisCache: 'Удалить эту аннотацию',
|
||||
createdAt: 'Создано',
|
||||
},
|
||||
addModal: {
|
||||
title: 'Добавить ответ аннотации',
|
||||
queryName: 'Вопрос',
|
||||
answerName: 'Ответ',
|
||||
answerPlaceholder: 'Введите ответ здесь',
|
||||
queryPlaceholder: 'Введите вопрос здесь',
|
||||
createNext: 'Добавить еще один аннотированный ответ',
|
||||
},
|
||||
batchModal: {
|
||||
title: 'Массовый импорт',
|
||||
csvUploadTitle: 'Перетащите сюда ваш CSV-файл или ',
|
||||
browse: 'выберите файл',
|
||||
tip: 'CSV-файл должен соответствовать следующей структуре:',
|
||||
question: 'вопрос',
|
||||
answer: 'ответ',
|
||||
contentTitle: 'содержимое фрагмента',
|
||||
content: 'содержимое',
|
||||
template: 'Скачать шаблон здесь',
|
||||
cancel: 'Отмена',
|
||||
run: 'Запустить пакет',
|
||||
runError: 'Ошибка запуска пакета',
|
||||
processing: 'В процессе пакетной обработки',
|
||||
completed: 'Импорт завершен',
|
||||
error: 'Ошибка импорта',
|
||||
ok: 'ОК',
|
||||
},
|
||||
errorMessage: {
|
||||
answerRequired: 'Ответ обязателен',
|
||||
queryRequired: 'Вопрос обязателен',
|
||||
},
|
||||
viewModal: {
|
||||
annotatedResponse: 'Ответ аннотации',
|
||||
hitHistory: 'История попаданий',
|
||||
hit: 'Попадание',
|
||||
hits: 'Попадания',
|
||||
noHitHistory: 'Нет истории попаданий',
|
||||
},
|
||||
hitHistoryTable: {
|
||||
query: 'Запрос',
|
||||
match: 'Совпадение',
|
||||
response: 'Ответ',
|
||||
source: 'Источник',
|
||||
score: 'Оценка',
|
||||
time: 'Время',
|
||||
},
|
||||
initSetup: {
|
||||
title: 'Начальная настройка ответа аннотации',
|
||||
configTitle: 'Настройка ответа аннотации',
|
||||
confirmBtn: 'Сохранить и включить',
|
||||
configConfirmBtn: 'Сохранить',
|
||||
},
|
||||
embeddingModelSwitchTip: 'Модель векторизации текста аннотаций, переключение между моделями будет осуществлено повторно, что приведет к дополнительным затратам.',
|
||||
list: {
|
||||
delete: {
|
||||
title: 'Вы уверены, что хотите удалить?',
|
||||
},
|
||||
},
|
||||
batchAction: {
|
||||
cancel: 'Отменить',
|
||||
selected: 'Выбрано',
|
||||
delete: 'Удалить',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
85
dify/web/i18n/ru-RU/app-api.ts
Normal file
85
dify/web/i18n/ru-RU/app-api.ts
Normal file
@@ -0,0 +1,85 @@
|
||||
const translation = {
|
||||
apiServer: 'API Сервер',
|
||||
apiKey: 'API Ключ',
|
||||
status: 'Статус',
|
||||
disabled: 'Отключено',
|
||||
ok: 'В работе',
|
||||
copy: 'Копировать',
|
||||
copied: 'Скопировано',
|
||||
play: 'Запустить',
|
||||
pause: 'Приостановить',
|
||||
playing: 'Запущено',
|
||||
loading: 'Загрузка',
|
||||
merMaid: {
|
||||
rerender: 'Перезапустить рендеринг',
|
||||
},
|
||||
never: 'Никогда',
|
||||
apiKeyModal: {
|
||||
apiSecretKey: 'Секретный ключ API',
|
||||
apiSecretKeyTips: 'Чтобы предотвратить злоупотребление API, защитите свой API ключ. Избегайте использования его в виде plain-текста во фронтенд-коде. :)',
|
||||
createNewSecretKey: 'Создать новый секретный ключ',
|
||||
secretKey: 'Секретный ключ',
|
||||
created: 'СОЗДАН',
|
||||
lastUsed: 'ПОСЛЕДНЕЕ ИСПОЛЬЗОВАНИЕ',
|
||||
generateTips: 'Храните этот ключ в безопасном и доступном месте.',
|
||||
},
|
||||
actionMsg: {
|
||||
deleteConfirmTitle: 'Удалить этот секретный ключ?',
|
||||
deleteConfirmTips: 'Это действие необратимо.',
|
||||
ok: 'ОК',
|
||||
},
|
||||
completionMode: {
|
||||
title: 'API приложения',
|
||||
info: 'Для высококачественной генерации текста, такой как статьи, резюме и переводы, используйте API completion-messages с пользовательским вводом. Генерация текста основана на параметрах модели и шаблонах подсказок, установленных в Dify Prompt Engineering.',
|
||||
createCompletionApi: 'Создать completion-message',
|
||||
createCompletionApiTip: 'Создайте completion-message для поддержки режима вопросов и ответов.',
|
||||
inputsTips: '(Необязательно) Укажите поля пользовательского ввода в виде пар ключ-значение, соответствующих переменным в Prompt Eng. Ключ - это имя переменной, Значение - это значение параметра. Если тип поля - Выбор, отправленное Значение должно быть одним из предустановленных вариантов.',
|
||||
queryTips: 'Текстовое содержимое пользовательского ввода.',
|
||||
blocking: 'Блокирующий тип, ожидает завершения выполнения и возвращает результаты. (Запросы могут быть прерваны, если процесс длительный)',
|
||||
streaming: ' Ответ в рамках потока. Реализация потоковой передачи ответов на основе SSE (Server-Sent Events).',
|
||||
messageFeedbackApi: 'Обратная связь по сообщению (лайк)',
|
||||
messageFeedbackApiTip: 'Оцените полученные сообщения от имени конечных пользователей с помощью лайков или дизлайков. Эти данные видны на странице Журналы и аннотации и используются для будущей тонкой настройки модели.',
|
||||
messageIDTip: 'Идентификатор сообщения',
|
||||
ratingTip: 'лайк или дизлайк, null - отмена',
|
||||
parametersApi: 'Получить информацию о параметрах приложения',
|
||||
parametersApiTip: 'Получить настроенные входные параметры, включая имена переменных, имена полей, типы и значения по умолчанию. Обычно используется для отображения этих полей в форме или заполнения значений по умолчанию после загрузки клиента.',
|
||||
},
|
||||
chatMode: {
|
||||
title: 'API приложения чата',
|
||||
info: 'Для универсальных диалоговых приложений, использующих формат вопросов и ответов, вызовите API chat-messages, чтобы начать диалог. Поддерживайте текущие разговоры, передавая возвращенный conversation_id. Параметры ответа и шаблоны зависят от настроек Dify Prompt Eng.',
|
||||
createChatApi: 'Создать сообщение чата',
|
||||
createChatApiTip: 'Создайте новое сообщение разговора или продолжите существующий диалог.',
|
||||
inputsTips: '(Необязательно) Укажите поля пользовательского ввода в виде пар ключ-значение, соответствующих переменным в Prompt Eng. Ключ - это имя переменной, Значение - это значение параметра. Если тип поля - Выбор, отправленное Значение должно быть одним из предустановленных вариантов.',
|
||||
queryTips: 'Содержимое пользовательского ввода/вопроса',
|
||||
blocking: 'Блокирующий тип, ожидает завершения выполнения и возвращает результаты. (Запросы могут быть прерваны, если процесс длительный)',
|
||||
streaming: 'потоковая передача возвращает. Реализация потоковой передачи возврата на основе SSE (Server-Sent Events).',
|
||||
conversationIdTip: '(Необязательно) Идентификатор разговора: оставьте пустым для первого разговора; передайте conversation_id из контекста, чтобы продолжить диалог.',
|
||||
messageFeedbackApi: 'Обратная связь конечного пользователя по сообщению, лайк',
|
||||
messageFeedbackApiTip: 'Оцените полученные сообщения от имени конечных пользователей с помощью лайков или дизлайков. Эти данные видны на странице Журналы и аннотации и используются для будущей тонкой настройки модели.',
|
||||
messageIDTip: 'Идентификатор сообщения',
|
||||
ratingTip: 'лайк или дизлайк, null - отмена',
|
||||
chatMsgHistoryApi: 'Получить историю сообщений чата',
|
||||
chatMsgHistoryApiTip: 'Первая страница возвращает последние `limit` строк, которые находятся в обратном порядке.',
|
||||
chatMsgHistoryConversationIdTip: 'Идентификатор разговора',
|
||||
chatMsgHistoryFirstId: 'Идентификатор первой записи чата на текущей странице. По умолчанию - нет.',
|
||||
chatMsgHistoryLimit: 'Сколько чатов возвращается за один запрос',
|
||||
conversationsListApi: 'Получить список разговоров',
|
||||
conversationsListApiTip: 'Получает список сеансов текущего пользователя. По умолчанию возвращаются последние 20 сеансов.',
|
||||
conversationsListFirstIdTip: 'Идентификатор последней записи на текущей странице, по умолчанию - нет.',
|
||||
conversationsListLimitTip: 'Сколько чатов возвращается за один запрос',
|
||||
conversationRenamingApi: 'Переименование разговора',
|
||||
conversationRenamingApiTip: 'Переименовать разговоры; имя отображается в многосессионных клиентских интерфейсах.',
|
||||
conversationRenamingNameTip: 'Новое имя',
|
||||
parametersApi: 'Получить информацию о параметрах приложения',
|
||||
parametersApiTip: 'Получить настроенные входные параметры, включая имена переменных, имена полей, типы и значения по умолчанию. Обычно используется для отображения этих полей в форме или заполнения значений по умолчанию после загрузки клиента.',
|
||||
},
|
||||
develop: {
|
||||
requestBody: 'Тело запроса',
|
||||
pathParams: 'Параметры пути',
|
||||
query: 'Запрос',
|
||||
toc: 'Содержание',
|
||||
},
|
||||
regenerate: 'Регенерировать',
|
||||
}
|
||||
|
||||
export default translation
|
||||
575
dify/web/i18n/ru-RU/app-debug.ts
Normal file
575
dify/web/i18n/ru-RU/app-debug.ts
Normal file
@@ -0,0 +1,575 @@
|
||||
const translation = {
|
||||
pageTitle: {
|
||||
line1: 'PROMPT',
|
||||
line2: 'Engineering',
|
||||
},
|
||||
orchestrate: 'Оркестрация',
|
||||
promptMode: {
|
||||
simple: 'Переключиться в экспертный режим для редактирования всего ПРОМПТА',
|
||||
advanced: 'Экспертный режим',
|
||||
switchBack: 'Переключиться обратно',
|
||||
advancedWarning: {
|
||||
title: 'Вы переключились в экспертный режим, и после изменения ПРОМПТА вы НЕ СМОЖЕТЕ вернуться в базовый режим.',
|
||||
description: 'В экспертном режиме вы можете редактировать весь ПРОМПТ.',
|
||||
learnMore: 'Узнать больше',
|
||||
ok: 'ОК',
|
||||
},
|
||||
operation: {
|
||||
addMessage: 'Добавить сообщение',
|
||||
},
|
||||
contextMissing: 'Отсутствует компонент контекста, эффективность промпта может быть невысокой.',
|
||||
},
|
||||
operation: {
|
||||
applyConfig: 'Опубликовать',
|
||||
resetConfig: 'Сбросить',
|
||||
debugConfig: 'Отладка',
|
||||
addFeature: 'Добавить функцию',
|
||||
automatic: 'Сгенерировать',
|
||||
stopResponding: 'Остановить ответ',
|
||||
agree: 'лайк',
|
||||
disagree: 'дизлайк',
|
||||
cancelAgree: 'Отменить лайк',
|
||||
cancelDisagree: 'Отменить дизлайк',
|
||||
userAction: 'Пользователь ',
|
||||
},
|
||||
notSetAPIKey: {
|
||||
title: 'Ключ поставщика LLM не установлен',
|
||||
trailFinished: 'Пробный период закончен',
|
||||
description: 'Ключ поставщика LLM не установлен, его необходимо установить перед отладкой.',
|
||||
settingBtn: 'Перейти к настройкам',
|
||||
},
|
||||
trailUseGPT4Info: {
|
||||
title: 'В настоящее время не поддерживается gpt-4',
|
||||
description: 'Чтобы использовать gpt-4, пожалуйста, установите API ключ.',
|
||||
},
|
||||
feature: {
|
||||
groupChat: {
|
||||
title: 'Улучшение чата',
|
||||
description: 'Добавление настроек предварительного разговора для приложений может улучшить пользовательский опыт.',
|
||||
},
|
||||
groupExperience: {
|
||||
title: 'Улучшение опыта',
|
||||
},
|
||||
conversationOpener: {
|
||||
title: 'Начальное сообщение',
|
||||
description: 'В чат-приложении первое предложение, которое ИИ активно говорит пользователю, обычно используется в качестве приветствия.',
|
||||
},
|
||||
suggestedQuestionsAfterAnswer: {
|
||||
title: 'Последующие вопросы',
|
||||
description: 'Настройка предложения следующих вопросов может улучшить чат для пользователей.',
|
||||
resDes: '3 предложения для следующего вопроса пользователя.',
|
||||
tryToAsk: 'Попробуйте спросить',
|
||||
},
|
||||
moreLikeThis: {
|
||||
title: 'Больше похожего',
|
||||
description: 'Сгенерируйте несколько текстов одновременно, а затем отредактируйте и продолжайте генерировать',
|
||||
generateNumTip: 'Количество генерируемых каждый раз',
|
||||
tip: 'Использование этой функции приведет к дополнительным расходам токенов',
|
||||
},
|
||||
speechToText: {
|
||||
title: 'Преобразование речи в текст',
|
||||
description: 'После включения вы можете использовать голосовой ввод.',
|
||||
resDes: 'Голосовой ввод включен',
|
||||
},
|
||||
textToSpeech: {
|
||||
title: 'Преобразование текста в речь',
|
||||
description: 'После включения текст можно преобразовать в речь.',
|
||||
resDes: 'Преобразование текста в аудио включено',
|
||||
},
|
||||
citation: {
|
||||
title: 'Цитаты и ссылки',
|
||||
description: 'После включения отображается исходный документ и атрибутированная часть сгенерированного контента.',
|
||||
resDes: 'Цитаты и ссылки включены',
|
||||
},
|
||||
annotation: {
|
||||
title: 'Ответ аннотации',
|
||||
description: 'Вы можете вручную добавить высококачественный ответ в кэш для приоритетного сопоставления с похожими вопросами пользователей.',
|
||||
resDes: 'Ответ аннотации включен',
|
||||
scoreThreshold: {
|
||||
title: 'Порог оценки',
|
||||
description: 'Используется для установки порога сходства для ответа аннотации.',
|
||||
easyMatch: 'Простое совпадение',
|
||||
accurateMatch: 'Точное совпадение',
|
||||
},
|
||||
matchVariable: {
|
||||
title: 'Переменная соответствия',
|
||||
choosePlaceholder: 'Выберите переменную соответствия',
|
||||
},
|
||||
cacheManagement: 'Аннотации',
|
||||
cached: 'Аннотировано',
|
||||
remove: 'Удалить',
|
||||
removeConfirm: 'Удалить эту аннотацию?',
|
||||
add: 'Добавить аннотацию',
|
||||
edit: 'Редактировать аннотацию',
|
||||
},
|
||||
dataSet: {
|
||||
title: 'Контекст',
|
||||
noData: 'Вы можете импортировать знания в качестве контекста',
|
||||
selectTitle: 'Выберите справочные знания',
|
||||
selected: 'Знания выбраны',
|
||||
noDataSet: 'Знания не найдены',
|
||||
toCreate: 'Перейти к созданию',
|
||||
notSupportSelectMulti: 'В настоящее время поддерживаются только одни знания',
|
||||
queryVariable: {
|
||||
title: 'Переменная запроса',
|
||||
tip: 'Эта переменная будет использоваться в качестве входных данных запроса для поиска контекста, получая информацию о контексте, связанную с вводом этой переменной.',
|
||||
choosePlaceholder: 'Выберите переменную запроса',
|
||||
noVar: 'Нет переменных',
|
||||
noVarTip: 'пожалуйста, создайте переменную в разделе Переменные',
|
||||
unableToQueryDataSet: 'Невозможно запросить знания',
|
||||
unableToQueryDataSetTip: 'Не удалось успешно запросить знания, пожалуйста, выберите переменную запроса контекста в разделе контекста.',
|
||||
ok: 'ОК',
|
||||
contextVarNotEmpty: 'переменная запроса контекста не может быть пустой',
|
||||
deleteContextVarTitle: 'Удалить переменную "{{varName}}"?',
|
||||
deleteContextVarTip: 'Эта переменная была установлена в качестве переменной запроса контекста, и ее удаление повлияет на нормальное использование знаний. Если вам все еще нужно удалить ее, пожалуйста, выберите ее заново в разделе контекста.',
|
||||
},
|
||||
},
|
||||
tools: {
|
||||
title: 'Инструменты',
|
||||
tips: 'Инструменты предоставляют стандартный метод вызова API, принимая пользовательский ввод или переменные в качестве параметров запроса для запроса внешних данных в качестве контекста.',
|
||||
toolsInUse: '{{count}} инструментов используется',
|
||||
modal: {
|
||||
title: 'Инструмент',
|
||||
toolType: {
|
||||
title: 'Тип инструмента',
|
||||
placeholder: 'Пожалуйста, выберите тип инструмента',
|
||||
},
|
||||
name: {
|
||||
title: 'Имя',
|
||||
placeholder: 'Пожалуйста, введите имя',
|
||||
},
|
||||
variableName: {
|
||||
title: 'Имя переменной',
|
||||
placeholder: 'Пожалуйста, введите имя переменной',
|
||||
},
|
||||
},
|
||||
},
|
||||
conversationHistory: {
|
||||
title: 'История разговоров',
|
||||
description: 'Установить префиксы имен для ролей разговора',
|
||||
tip: 'История разговоров не включена, пожалуйста, добавьте <histories> в промпт выше.',
|
||||
learnMore: 'Узнать больше',
|
||||
editModal: {
|
||||
title: 'Редактировать имена ролей разговора',
|
||||
userPrefix: 'Префикс пользователя',
|
||||
assistantPrefix: 'Префикс помощника',
|
||||
},
|
||||
},
|
||||
toolbox: {
|
||||
title: 'НАБОР ИНСТРУМЕНТОВ',
|
||||
},
|
||||
moderation: {
|
||||
title: 'Модерация контента',
|
||||
description: 'Обеспечьте безопасность выходных данных модели, используя API модерации или поддерживая список чувствительных слов.',
|
||||
allEnabled: 'ВХОДНОЙ/ВЫХОДНОЙ контент включен',
|
||||
inputEnabled: 'ВХОДНОЙ контент включен',
|
||||
outputEnabled: 'ВЫХОДНОЙ контент включен',
|
||||
modal: {
|
||||
title: 'Настройки модерации контента',
|
||||
provider: {
|
||||
title: 'Поставщик',
|
||||
openai: 'Модерация OpenAI',
|
||||
openaiTip: {
|
||||
prefix: 'Для модерации OpenAI требуется ключ API OpenAI, настроенный в ',
|
||||
suffix: '.',
|
||||
},
|
||||
keywords: 'Ключевые слова',
|
||||
},
|
||||
keywords: {
|
||||
tip: 'По одному на строку, разделенные разрывами строк. До 100 символов на строку.',
|
||||
placeholder: 'По одному на строку, разделенные разрывами строк',
|
||||
line: 'Строка',
|
||||
},
|
||||
content: {
|
||||
input: 'Модерировать ВХОДНОЙ контент',
|
||||
output: 'Модерировать ВЫХОДНОЙ контент',
|
||||
preset: 'Предустановленные ответы',
|
||||
placeholder: 'Здесь содержимое предустановленных ответов',
|
||||
condition: 'Модерация ВХОДНОГО и ВЫХОДНОГО контента включена хотя бы одна',
|
||||
fromApi: 'Предустановленные ответы возвращаются API',
|
||||
errorMessage: 'Предустановленные ответы не могут быть пустыми',
|
||||
supportMarkdown: 'Markdown поддерживается',
|
||||
},
|
||||
openaiNotConfig: {
|
||||
before: 'Для модерации OpenAI требуется ключ API OpenAI, настроенный в',
|
||||
after: '',
|
||||
},
|
||||
},
|
||||
contentEnableLabel: 'Модерация контента включена',
|
||||
},
|
||||
fileUpload: {
|
||||
title: 'Загрузка файлов',
|
||||
description: 'Поле ввода чата позволяет загружать изображения, документы и другие файлы.',
|
||||
supportedTypes: 'Поддерживаемые типы файлов',
|
||||
numberLimit: 'Максимум загрузок',
|
||||
modalTitle: 'Настройка загрузки файлов',
|
||||
},
|
||||
imageUpload: {
|
||||
title: 'Загрузка изображений',
|
||||
description: 'Позволяет загружать изображения.',
|
||||
supportedTypes: 'Поддерживаемые типы файлов',
|
||||
numberLimit: 'Максимум загрузок',
|
||||
modalTitle: 'Настройка загрузки изображений',
|
||||
},
|
||||
bar: {
|
||||
empty: 'Включить функции для улучшения пользовательского опыта веб-приложения',
|
||||
enableText: 'Функции включены',
|
||||
manage: 'Управлять',
|
||||
},
|
||||
documentUpload: {
|
||||
title: 'Документ',
|
||||
description: 'Включение Документа позволит модели принимать документы и отвечать на вопросы о них.',
|
||||
},
|
||||
audioUpload: {
|
||||
title: 'Аудио',
|
||||
description: 'Включение Аудио позволит модели обрабатывать аудиофайлы для транскрипции и анализа.',
|
||||
},
|
||||
},
|
||||
generate: {
|
||||
title: 'Генератор промпта',
|
||||
description: 'Генератор промпта использует настроенную модель для оптимизации промпта для повышения качества и улучшения структуры. Пожалуйста, напишите четкие и подробные инструкции.',
|
||||
tryIt: 'Попробуйте',
|
||||
instruction: 'Инструкции',
|
||||
generate: 'Сгенерировать',
|
||||
resTitle: 'Сгенерированный промпт',
|
||||
apply: 'Применить',
|
||||
loading: 'Оркестрация приложения для вас...',
|
||||
overwriteTitle: 'Перезаписать существующую конфигурацию?',
|
||||
overwriteMessage: 'Применение этого промпта перезапишет существующую конфигурацию.',
|
||||
template: {
|
||||
pythonDebugger: {
|
||||
name: 'Отладчик Python',
|
||||
instruction: 'Бот, который может генерировать и отлаживать ваш код на основе ваших инструкций',
|
||||
},
|
||||
translation: {
|
||||
name: 'Переводчик',
|
||||
instruction: 'Переводчик, который может переводить на несколько языков',
|
||||
},
|
||||
professionalAnalyst: {
|
||||
name: 'Профессиональный аналитик',
|
||||
instruction: 'Извлекайте информацию, выявляйте риски и извлекайте ключевую информацию из длинных отчетов в одну записку',
|
||||
},
|
||||
excelFormulaExpert: {
|
||||
name: 'Эксперт по формулам Excel',
|
||||
instruction: 'Чат-бот, который может помочь начинающим пользователям понять, использовать и создавать формулы Excel на основе инструкций пользователя',
|
||||
},
|
||||
travelPlanning: {
|
||||
name: 'Планировщик путешествий',
|
||||
instruction: 'Помощник по планированию путешествий - это интеллектуальный инструмент, разработанный, чтобы помочь пользователям без труда планировать свои поездки',
|
||||
},
|
||||
SQLSorcerer: {
|
||||
name: 'SQL-ассистент',
|
||||
instruction: 'Преобразуйте повседневный язык в SQL-запросы',
|
||||
},
|
||||
GitGud: {
|
||||
name: 'Git gud',
|
||||
instruction: 'Генерируйте соответствующие команды Git на основе описанных пользователем действий по управлению версиями',
|
||||
},
|
||||
meetingTakeaways: {
|
||||
name: 'Итоги совещания',
|
||||
instruction: 'Извлекайте из совещаний краткие резюме, включая темы обсуждения, ключевые выводы и элементы действий',
|
||||
},
|
||||
writingsPolisher: {
|
||||
name: 'Редактор',
|
||||
instruction: 'Используйте LLM, чтобы улучшить свои письменные работы',
|
||||
},
|
||||
},
|
||||
to: 'к',
|
||||
versions: 'Версии',
|
||||
latest: 'Последний',
|
||||
version: 'Версия',
|
||||
dismiss: 'Отклонить',
|
||||
press: 'Пресс',
|
||||
optional: 'Необязательно',
|
||||
insertContext: 'вставьте контекст',
|
||||
idealOutput: 'Идеальный результат',
|
||||
optimizationNote: 'Замечание по оптимизации',
|
||||
optimizePromptTooltip: 'Оптимизировать в генераторе подсказок',
|
||||
instructionPlaceHolderTitle: 'Опишите, как вы хотели бы улучшить этот запрос. Например:',
|
||||
instructionPlaceHolderLine2: 'Формат вывода неверный, пожалуйста, строго следуйте формату JSON.',
|
||||
instructionPlaceHolderLine3: 'Тон слишком резкий, пожалуйста, сделай его более дружелюбным.',
|
||||
instructionPlaceHolderLine1: 'Сделайте результат более кратким, сохраняя основные моменты.',
|
||||
idealOutputPlaceholder: 'Опишите формат ответа, длину, тон и требования к содержанию, которые вы считаете идеальными.',
|
||||
newNoDataLine1: 'Напишите инструкцию в левом столбце и нажмите \'Сгенерировать\', чтобы увидеть ответ.',
|
||||
codeGenInstructionPlaceHolderLine: 'Чем более подробной является обратная связь, например, типы данных входных и выходных данных, а также то, как обрабатываются переменные, тем точнее будет генерируемый код.',
|
||||
},
|
||||
resetConfig: {
|
||||
title: 'Подтвердить сброс?',
|
||||
message:
|
||||
'Сброс отменяет изменения, восстанавливая последнюю опубликованную конфигурацию.',
|
||||
},
|
||||
errorMessage: {
|
||||
nameOfKeyRequired: 'имя ключа: {{key}} обязательно',
|
||||
valueOfVarRequired: 'значение {{key}} не может быть пустым',
|
||||
queryRequired: 'Требуется текст запроса.',
|
||||
waitForResponse:
|
||||
'Пожалуйста, дождитесь завершения ответа на предыдущее сообщение.',
|
||||
waitForBatchResponse:
|
||||
'Пожалуйста, дождитесь завершения ответа на пакетное задание.',
|
||||
notSelectModel: 'Пожалуйста, выберите модель',
|
||||
waitForImgUpload: 'Пожалуйста, дождитесь загрузки изображения',
|
||||
waitForFileUpload: 'Пожалуйста, дождитесь загрузки файла/файлов',
|
||||
},
|
||||
chatSubTitle: 'Инструкции',
|
||||
completionSubTitle: 'Префикс Промпта',
|
||||
promptTip:
|
||||
'Промпт направляют ответы ИИ с помощью инструкций и ограничений. Вставьте переменные, такие как {{input}}. Этот Промпт не будет видна пользователям.',
|
||||
formattingChangedTitle: 'Форматирование изменено',
|
||||
formattingChangedText:
|
||||
'Изменение форматирования приведет к сбросу области отладки, вы уверены?',
|
||||
variableTitle: 'Переменные',
|
||||
variableTip:
|
||||
'Пользователи заполняют переменные в форме, автоматически заменяя переменные в промпте.',
|
||||
notSetVar: 'Переменные позволяют пользователям вводить промпты или вступительные замечания при заполнении форм. Вы можете попробовать ввести "{{input}}" в промптах.',
|
||||
autoAddVar: 'В предварительной промпте упоминаются неопределенные переменные, хотите ли вы добавить их в форму пользовательского ввода?',
|
||||
variableTable: {
|
||||
key: 'Ключ переменной',
|
||||
name: 'Имя поля пользовательского ввода',
|
||||
type: 'Тип ввода',
|
||||
action: 'Действия',
|
||||
typeString: 'Строка',
|
||||
typeSelect: 'Выбор',
|
||||
},
|
||||
varKeyError: {
|
||||
canNoBeEmpty: '{{key}} обязательно',
|
||||
tooLong: '{{key}} слишком длинное. Не может быть длиннее 30 символов',
|
||||
notValid: '{{key}} недействительно. Может содержать только буквы, цифры и подчеркивания',
|
||||
notStartWithNumber: '{{key}} не может начинаться с цифры',
|
||||
keyAlreadyExists: '{{key}} уже существует',
|
||||
},
|
||||
otherError: {
|
||||
promptNoBeEmpty: 'Промпт не может быть пустой',
|
||||
historyNoBeEmpty: 'История разговоров должна быть установлена в промпте',
|
||||
queryNoBeEmpty: 'Запрос должен быть установлен в промпте',
|
||||
},
|
||||
variableConfig: {
|
||||
'addModalTitle': 'Добавить поле ввода',
|
||||
'editModalTitle': 'Редактировать поле ввода',
|
||||
'description': 'Настройка для переменной {{varName}}',
|
||||
'fieldType': 'Тип поля',
|
||||
'string': 'Короткий текст',
|
||||
'text-input': 'Короткий текст',
|
||||
'paragraph': 'Абзац',
|
||||
'select': 'Выбор',
|
||||
'number': 'Число',
|
||||
'notSet': 'Не задано, попробуйте ввести {{input}} в префикс промпта',
|
||||
'stringTitle': 'Параметры текстового поля формы',
|
||||
'maxLength': 'Максимальная длина',
|
||||
'options': 'Варианты',
|
||||
'addOption': 'Добавить вариант',
|
||||
'apiBasedVar': 'Переменная на основе API',
|
||||
'varName': 'Имя переменной',
|
||||
'labelName': 'Имя метки',
|
||||
'inputPlaceholder': 'Пожалуйста, введите',
|
||||
'content': 'Содержимое',
|
||||
'required': 'Обязательно',
|
||||
'hide': 'Скрыть',
|
||||
'errorMsg': {
|
||||
labelNameRequired: 'Имя метки обязательно',
|
||||
varNameCanBeRepeat: 'Имя переменной не может повторяться',
|
||||
atLeastOneOption: 'Требуется хотя бы один вариант',
|
||||
optionRepeat: 'Есть повторяющиеся варианты',
|
||||
},
|
||||
'defaultValue': 'Значение по умолчанию',
|
||||
'noDefaultValue': 'Без значения по умолчанию',
|
||||
'selectDefaultValue': 'Выберите значение по умолчанию',
|
||||
'file': {
|
||||
image: {
|
||||
name: 'Образ',
|
||||
},
|
||||
audio: {
|
||||
name: 'Аудио',
|
||||
},
|
||||
document: {
|
||||
name: 'Документ',
|
||||
},
|
||||
video: {
|
||||
name: 'Видео',
|
||||
},
|
||||
custom: {
|
||||
createPlaceholder: ' Расширение файла, например .doc',
|
||||
name: 'Другие типы файлов',
|
||||
description: 'Укажите другие типы файлов.',
|
||||
},
|
||||
supportFileTypes: 'Типы файлов поддержки',
|
||||
},
|
||||
'both': 'Оба',
|
||||
'localUpload': 'Локальная загрузка',
|
||||
'maxNumberOfUploads': 'Максимальное количество загрузок',
|
||||
'maxNumberTip': 'Документ < {{docLimit}}, изображение < {{imgLimit}}, аудио < {{audioLimit}}, видео < {{videoLimit}}',
|
||||
'uploadFileTypes': 'Типы файлов загрузки',
|
||||
'single-file': 'Друг за другом',
|
||||
'multi-files': 'Список файлов',
|
||||
'checkbox': 'Флажок',
|
||||
'optional': 'необязательный',
|
||||
'jsonSchema': 'JSON схема',
|
||||
'json': 'JSON код',
|
||||
'unit': 'Единица',
|
||||
'showAllSettings': 'Показать все настройки',
|
||||
'placeholder': 'Заполнитель',
|
||||
'noDefaultSelected': 'Не выбирайте',
|
||||
'uploadMethod': 'Способ загрузки',
|
||||
'displayName': 'Отображаемое имя',
|
||||
'startChecked': 'Начало проверено',
|
||||
'startSelectedOption': 'Запустить выбранный вариант',
|
||||
'tooltips': 'Всплывающие подсказки',
|
||||
'placeholderPlaceholder': 'Ввод текста для отображения, когда поле пусто',
|
||||
'unitPlaceholder': 'Отображайте единицы измерения после цифр, например, токены',
|
||||
'defaultValuePlaceholder': 'Введите значение по умолчанию для предварительного заполнения поля',
|
||||
'tooltipsPlaceholder': 'Введите полезный текст, отображаемый при наведении указателя мыши на этикетку',
|
||||
},
|
||||
vision: {
|
||||
name: 'Зрение',
|
||||
description: 'Включение зрения позволит модели принимать изображения и отвечать на вопросы о них.',
|
||||
settings: 'Настройки',
|
||||
visionSettings: {
|
||||
title: 'Настройки зрения',
|
||||
resolution: 'Разрешение',
|
||||
resolutionTooltip: `Низкое разрешение позволит модели получать версию изображения с низким разрешением 512 x 512 и представлять изображение с бюджетом 65 токенов. Это позволяет API возвращать ответы быстрее и потреблять меньше входных токенов для случаев использования, не требующих высокой детализации.
|
||||
\n
|
||||
Высокое разрешение сначала позволит модели увидеть изображение с низким разрешением, а затем создаст детальные фрагменты входных изображений в виде квадратов 512 пикселей на основе размера входного изображения. Каждый из детальных фрагментов использует вдвое больший бюджет токенов, в общей сложности 129 токенов.`,
|
||||
high: 'Высокое',
|
||||
low: 'Низкое',
|
||||
uploadMethod: 'Метод загрузки',
|
||||
both: 'Оба',
|
||||
localUpload: 'Локальная загрузка',
|
||||
url: 'URL',
|
||||
uploadLimit: 'Лимит загрузки',
|
||||
},
|
||||
onlySupportVisionModelTip: 'Поддерживает только модели машинного зрения',
|
||||
},
|
||||
voice: {
|
||||
name: 'Голос',
|
||||
defaultDisplay: 'Голос по умолчанию',
|
||||
description: 'Настройки преобразования текста в речь',
|
||||
settings: 'Настройки',
|
||||
voiceSettings: {
|
||||
title: 'Настройки голоса',
|
||||
language: 'Язык',
|
||||
resolutionTooltip: 'Язык, поддерживаемый преобразованием текста в речь.',
|
||||
voice: 'Голос',
|
||||
autoPlay: 'Автовоспроизведение',
|
||||
autoPlayEnabled: 'Включить',
|
||||
autoPlayDisabled: 'Выключить',
|
||||
},
|
||||
},
|
||||
openingStatement: {
|
||||
title: 'Начальное сообщение',
|
||||
add: 'Добавить',
|
||||
writeOpener: 'Написать начальное сообщение',
|
||||
placeholder: 'Напишите здесь свое начальное сообщение, вы можете использовать переменные, попробуйте ввести {{variable}}.',
|
||||
openingQuestion: 'Начальные вопросы',
|
||||
openingQuestionPlaceholder: 'Вы можете использовать переменные, попробуйте ввести {{variable}}.',
|
||||
noDataPlaceHolder:
|
||||
'Начало разговора с пользователем может помочь ИИ установить более тесную связь с ним в диалоговых приложениях.',
|
||||
varTip: 'Вы можете использовать переменные, попробуйте ввести {{variable}}',
|
||||
tooShort: 'Для генерации вступительного замечания к разговору требуется не менее 20 слов начального промпта.',
|
||||
notIncludeKey: 'Начальный промпт не включает переменную: {{key}}. Пожалуйста, добавьте её в начальную промпт.',
|
||||
},
|
||||
modelConfig: {
|
||||
model: 'Модель',
|
||||
setTone: 'Установить тон ответов',
|
||||
title: 'Модель и параметры',
|
||||
modeType: {
|
||||
chat: 'Чат',
|
||||
completion: 'Завершение',
|
||||
},
|
||||
},
|
||||
inputs: {
|
||||
title: 'Отладка и предварительный просмотр',
|
||||
noPrompt: 'Попробуйте написать промпт во входных данных предварительного промпта',
|
||||
userInputField: 'Поле пользовательского ввода',
|
||||
noVar: 'Заполните значение переменной, которое будет автоматически заменяться в промпте каждый раз при запуске нового сеанса.',
|
||||
chatVarTip:
|
||||
'Заполните значение переменной, которое будет автоматически заменяться в промпте каждый раз при запуске нового сеанса',
|
||||
completionVarTip:
|
||||
'Заполните значение переменной, которое будет автоматически заменяться в промпте каждый раз при отправке вопроса.',
|
||||
previewTitle: 'Предварительный просмотр промпта',
|
||||
queryTitle: 'Содержимое запроса',
|
||||
queryPlaceholder: 'Пожалуйста, введите текст запроса.',
|
||||
run: 'ЗАПУСТИТЬ',
|
||||
},
|
||||
result: 'Выходной текст',
|
||||
datasetConfig: {
|
||||
settingTitle: 'Настройки поиска',
|
||||
knowledgeTip: 'Нажмите кнопку "+", чтобы добавить знания',
|
||||
retrieveOneWay: {
|
||||
title: 'Поиск N-к-1',
|
||||
description: 'На основе намерения пользователя и описаний знаний агент автономно выбирает наилучшие знания для запроса. Лучше всего подходит для приложений с различными, ограниченными знаниями.',
|
||||
},
|
||||
retrieveMultiWay: {
|
||||
title: 'Многопутный поиск',
|
||||
description: 'На основе намерения пользователя выполняет запросы по всем знаниям, извлекает соответствующий текст из нескольких источников и выбирает наилучшие результаты, соответствующие запросу пользователя, после повторного ранжирования.',
|
||||
},
|
||||
rerankModelRequired: 'Требуется rerank-модель ',
|
||||
params: 'Параметры',
|
||||
top_k: 'Top K',
|
||||
top_kTip: 'Используется для фильтрации фрагментов, наиболее похожих на вопросы пользователей. Система также будет динамически корректировать значение Top K в зависимости от max_tokens выбранной модели.',
|
||||
score_threshold: 'Порог оценки',
|
||||
score_thresholdTip: 'Используется для установки порога сходства для фильтрации фрагментов.',
|
||||
retrieveChangeTip: 'Изменение режима индексации и режима поиска может повлиять на приложения, связанные с этими знаниями.',
|
||||
embeddingModelRequired: 'Требуется сконфигурированная модель встраивания',
|
||||
},
|
||||
debugAsSingleModel: 'Отладка как одной модели',
|
||||
debugAsMultipleModel: 'Отладка как нескольких моделей',
|
||||
duplicateModel: 'Дублировать',
|
||||
publishAs: 'Опубликовать как',
|
||||
assistantType: {
|
||||
name: 'Тип помощника',
|
||||
chatAssistant: {
|
||||
name: 'Базовый помощник',
|
||||
description: 'Создайте помощника на основе чата, используя большую языковую модель',
|
||||
},
|
||||
agentAssistant: {
|
||||
name: 'Агент-помощник',
|
||||
description: 'Создайте интеллектуального агента, который может автономно выбирать инструменты для выполнения задач',
|
||||
},
|
||||
},
|
||||
agent: {
|
||||
agentMode: 'Режим агента',
|
||||
agentModeDes: 'Установите тип режима вывода для агента',
|
||||
agentModeType: {
|
||||
ReACT: 'ReAct',
|
||||
functionCall: 'Вызов функции',
|
||||
},
|
||||
setting: {
|
||||
name: 'Настройки агента',
|
||||
description: 'Настройки агента-помощника позволяют установить режим агента и расширенные функции, такие как встроенные промпты, доступные только в типе агента.',
|
||||
maximumIterations: {
|
||||
name: 'Максимальное количество итераций',
|
||||
description: 'Ограничьте количество итераций, которые может выполнить агент-помощник',
|
||||
},
|
||||
},
|
||||
buildInPrompt: 'Встроенный промпт',
|
||||
firstPrompt: 'Первый промпт',
|
||||
nextIteration: 'Следующая итерация',
|
||||
promptPlaceholder: 'Напишите здесь свой первый промпт',
|
||||
tools: {
|
||||
name: 'Инструменты',
|
||||
description: 'Использование инструментов может расширить возможности LLM, такие как поиск в Интернете или выполнение научных расчетов',
|
||||
enabled: 'Включено',
|
||||
},
|
||||
},
|
||||
codegen: {
|
||||
generate: 'Порождать',
|
||||
title: 'Генератор кодов',
|
||||
resTitle: 'Сгенерированный код',
|
||||
generatedCodeTitle: 'Сгенерированный код',
|
||||
applyChanges: 'Применение изменений',
|
||||
loading: 'Генерация кода...',
|
||||
noDataLine2: 'Предварительный просмотр кода будет показан здесь.',
|
||||
instruction: 'Резолюция',
|
||||
apply: 'Применять',
|
||||
overwriteConfirmTitle: 'Перезаписать существующий код?',
|
||||
overwriteConfirmMessage: 'Это действие перезапишет существующий код. Хотите продолжить?',
|
||||
instructionPlaceholder: 'Введите подробное описание кода, который вы хотите сгенерировать.',
|
||||
noDataLine1: 'Опишите свой вариант использования слева,',
|
||||
description: 'Генератор кода использует настроенные модели для создания высококачественного кода на основе ваших инструкций. Пожалуйста, предоставьте четкие и подробные инструкции.',
|
||||
},
|
||||
warningMessage: {
|
||||
timeoutExceeded: 'Результаты не отображаются из-за тайм-аута. Пожалуйста, обратитесь к журналам для получения полных результатов.',
|
||||
},
|
||||
noResult: 'Вывод будет отображаться здесь.',
|
||||
}
|
||||
|
||||
export default translation
|
||||
112
dify/web/i18n/ru-RU/app-log.ts
Normal file
112
dify/web/i18n/ru-RU/app-log.ts
Normal file
@@ -0,0 +1,112 @@
|
||||
const translation = {
|
||||
title: 'Логирование',
|
||||
description: 'В логах записывается состояние работы приложения, включая пользовательский ввод и ответы ИИ.',
|
||||
dateTimeFormat: 'DD.MM.YYYY HH:mm:ss',
|
||||
table: {
|
||||
header: {
|
||||
updatedTime: 'Время обновления',
|
||||
time: 'Время создания',
|
||||
endUser: 'Конечный пользователь или аккаунт',
|
||||
input: 'Ввод',
|
||||
output: 'Вывод',
|
||||
summary: 'Заголовок',
|
||||
messageCount: 'Количество сообщений',
|
||||
userRate: 'Оценка пользователя',
|
||||
adminRate: 'Оценка оп.',
|
||||
startTime: 'ВРЕМЯ НАЧАЛА',
|
||||
status: 'СТАТУС',
|
||||
runtime: 'ВРЕМЯ ВЫПОЛНЕНИЯ',
|
||||
tokens: 'ТОКЕНЫ',
|
||||
user: 'Конечный пользователь или аккаунт',
|
||||
version: 'ВЕРСИЯ',
|
||||
triggered_from: 'СРАБАТЫВАЕТ ОТ',
|
||||
},
|
||||
pagination: {
|
||||
previous: 'Предыдущий',
|
||||
next: 'Следующий',
|
||||
},
|
||||
empty: {
|
||||
noChat: 'Еще нет чатов',
|
||||
noOutput: 'Нет вывода',
|
||||
element: {
|
||||
title: 'Есть кто-нибудь?',
|
||||
content: 'Наблюдайте и аннотируйте взаимодействия между конечными пользователями и приложениями ИИ здесь, чтобы постоянно повышать точность ИИ. Вы можете попробовать <shareLink>поделиться</shareLink> или <testLink>протестировать</testLink> веб-приложение самостоятельно, а затем вернуться на эту страницу.',
|
||||
},
|
||||
},
|
||||
},
|
||||
detail: {
|
||||
time: 'Время',
|
||||
conversationId: 'Идентификатор разговора',
|
||||
promptTemplate: 'Шаблон подсказки',
|
||||
promptTemplateBeforeChat: 'Шаблон подсказки перед чатом · Как системное сообщение',
|
||||
annotationTip: 'Улучшения, отмеченные {{user}}',
|
||||
timeConsuming: '',
|
||||
second: 'с',
|
||||
tokenCost: 'Потрачено токенов',
|
||||
loading: 'загрузка',
|
||||
operation: {
|
||||
like: 'лайк',
|
||||
dislike: 'дизлайк',
|
||||
addAnnotation: 'Добавить улучшение',
|
||||
editAnnotation: 'Редактировать улучшение',
|
||||
annotationPlaceholder: 'Введите ожидаемый ответ, который вы хотите получить от ИИ, который может быть использован для тонкой настройки модели и постоянного улучшения качества генерации текста в будущем.',
|
||||
},
|
||||
variables: 'Переменные',
|
||||
uploadImages: 'Загруженные изображения',
|
||||
modelParams: 'Параметры модели',
|
||||
},
|
||||
filter: {
|
||||
period: {
|
||||
today: 'Сегодня',
|
||||
last7days: 'Последние 7 дней',
|
||||
last4weeks: 'Последние 4 недели',
|
||||
last3months: 'Последние 3 месяца',
|
||||
last12months: 'Последние 12 месяцев',
|
||||
monthToDate: 'С начала месяца',
|
||||
quarterToDate: 'С начала квартала',
|
||||
yearToDate: 'С начала года',
|
||||
allTime: 'Все время',
|
||||
last30days: 'Последние 30 дней',
|
||||
custom: 'Кастомный',
|
||||
},
|
||||
annotation: {
|
||||
all: 'Все',
|
||||
annotated: 'Аннотированные улучшения ({{count}} элементов)',
|
||||
not_annotated: 'Не аннотировано',
|
||||
},
|
||||
sortBy: 'Сортировать по:',
|
||||
descending: 'по убыванию',
|
||||
ascending: 'по возрастанию',
|
||||
},
|
||||
workflowTitle: 'Журналы рабочих процессов',
|
||||
workflowSubtitle: 'Журнал записал работу Automate.',
|
||||
runDetail: {
|
||||
title: 'Журнал разговоров',
|
||||
workflowTitle: 'Подробная информация о журнале',
|
||||
fileListLabel: 'Сведения о файле',
|
||||
fileListDetail: 'Подробность',
|
||||
testWithParams: 'Тест с параметрами',
|
||||
},
|
||||
promptLog: 'Журнал подсказок',
|
||||
agentLog: 'Журнал агента',
|
||||
viewLog: 'Просмотреть журнал',
|
||||
agentLogDetail: {
|
||||
agentMode: 'Режим агента',
|
||||
toolUsed: 'Использованный инструмент',
|
||||
iterations: 'Итерации',
|
||||
iteration: 'Итерация',
|
||||
finalProcessing: 'Окончательная обработка',
|
||||
},
|
||||
dateFormat: 'ДД/ММ/ГГГГ',
|
||||
triggerBy: {
|
||||
debugging: 'Отладка',
|
||||
appRun: 'Веб-приложение',
|
||||
webhook: 'Вебхук',
|
||||
schedule: 'Расписание',
|
||||
plugin: 'Плагин',
|
||||
ragPipelineRun: 'Конвейер RAG',
|
||||
ragPipelineDebugging: 'Отладка RAG',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
189
dify/web/i18n/ru-RU/app-overview.ts
Normal file
189
dify/web/i18n/ru-RU/app-overview.ts
Normal file
@@ -0,0 +1,189 @@
|
||||
const translation = {
|
||||
welcome: {
|
||||
firstStepTip: 'Чтобы начать,',
|
||||
enterKeyTip: 'введите свой ключ API OpenAI ниже',
|
||||
getKeyTip: 'Получите свой ключ API на панели инструментов OpenAI',
|
||||
placeholder: 'Ваш ключ API OpenAI (например, sk-xxxx)',
|
||||
},
|
||||
apiKeyInfo: {
|
||||
cloud: {
|
||||
trial: {
|
||||
title: 'Вы используете пробную квоту {{providerName}}.',
|
||||
description: 'Пробная квота предоставляется для тестирования. Прежде чем пробная квота будет исчерпана, пожалуйста, настройте своего собственного поставщика модели или приобретите дополнительную квоту.',
|
||||
},
|
||||
exhausted: {
|
||||
title: 'Ваша пробная квота была исчерпана, пожалуйста, настройте свой APIKey.',
|
||||
description: 'Вы исчерпали свою пробную квоту. Пожалуйста, настройте своего собственного поставщика модели или приобретите дополнительную квоту.',
|
||||
},
|
||||
},
|
||||
selfHost: {
|
||||
title: {
|
||||
row1: 'Чтобы начать,',
|
||||
row2: 'сначала настройте своего поставщика модели.',
|
||||
},
|
||||
},
|
||||
callTimes: 'Количество вызовов',
|
||||
usedToken: 'Использованные токены',
|
||||
setAPIBtn: 'Перейти к настройке поставщика модели',
|
||||
tryCloud: 'Или попробуйте облачную версию Dify с бесплатной квотой',
|
||||
},
|
||||
overview: {
|
||||
title: 'Обзор',
|
||||
appInfo: {
|
||||
explanation: 'Готовое к использованию веб-приложение ИИ',
|
||||
accessibleAddress: 'Публичный URL',
|
||||
preview: 'Предварительный просмотр',
|
||||
regenerate: 'Перегенерировать',
|
||||
regenerateNotice: 'Вы хотите перегенерировать публичный URL?',
|
||||
preUseReminder: 'Пожалуйста, включите веб-приложение перед продолжением.',
|
||||
settings: {
|
||||
entry: 'Настройки',
|
||||
title: 'Настройки веб-приложения',
|
||||
webName: 'Название веб-приложения',
|
||||
webDesc: 'Описание веб-приложения',
|
||||
webDescTip: 'Этот текст будет отображаться на стороне клиента, предоставляя базовые инструкции по использованию приложения',
|
||||
webDescPlaceholder: 'Введите описание веб-приложения',
|
||||
language: 'Язык',
|
||||
workflow: {
|
||||
title: 'Рабочий процесс',
|
||||
subTitle: 'Подробности рабочего процесса',
|
||||
show: 'Показать',
|
||||
hide: 'Скрыть',
|
||||
showDesc: 'Показать или скрыть подробности рабочего процесса в веб-приложении',
|
||||
},
|
||||
chatColorTheme: 'Цветовая тема чата',
|
||||
chatColorThemeDesc: 'Установите цветовую тему чат-бота',
|
||||
chatColorThemeInverted: 'Инвертированные цвета',
|
||||
invalidHexMessage: 'Неверное HEX-значение',
|
||||
invalidPrivacyPolicy: 'Недопустимая ссылка на политику конфиденциальности. Пожалуйста, используйте действительную ссылку, начинающуюся с http или https',
|
||||
sso: {
|
||||
label: 'SSO аутентификация',
|
||||
title: 'web app SSO',
|
||||
description: 'Все пользователи должны войти в систему с помощью SSO перед использованием web app',
|
||||
tooltip: 'Обратитесь к администратору, чтобы включить web app SSO',
|
||||
},
|
||||
more: {
|
||||
entry: 'Показать больше настроек',
|
||||
copyright: 'Авторские права',
|
||||
copyRightPlaceholder: 'Введите имя автора или организации',
|
||||
privacyPolicy: 'Политика конфиденциальности',
|
||||
privacyPolicyPlaceholder: 'Введите ссылку на политику конфиденциальности',
|
||||
privacyPolicyTip: 'Помогает посетителям понять, какие данные собирает приложение, см. <privacyPolicyLink>Политику конфиденциальности</privacyPolicyLink> Dify.',
|
||||
customDisclaimer: 'Пользовательский отказ от ответственности',
|
||||
customDisclaimerPlaceholder: 'Введите текст пользовательского отказа от ответственности',
|
||||
customDisclaimerTip: 'Текст пользовательского отказа от ответственности будет отображаться на стороне клиента, предоставляя дополнительную информацию о приложении',
|
||||
copyrightTooltip: 'Пожалуйста, перейдите на тарифный план Professional или выше',
|
||||
copyrightTip: 'Отображение информации об авторских правах в веб-приложении',
|
||||
},
|
||||
modalTip: 'Настройки веб-приложения на стороне клиента.',
|
||||
},
|
||||
embedded: {
|
||||
entry: 'Встраивание',
|
||||
title: 'Встроить на веб-сайт',
|
||||
explanation: 'Выберите способ встраивания чат-приложения на свой веб-сайт',
|
||||
iframe: 'Чтобы добавить чат-приложение в любое место на вашем веб-сайте, добавьте этот iframe в свой HTML-код.',
|
||||
scripts: 'Чтобы добавить чат-приложение в правый нижний угол вашего веб-сайта, добавьте этот код в свой HTML.',
|
||||
chromePlugin: 'Установите расширение Dify Chatbot для Chrome',
|
||||
copied: 'Скопировано',
|
||||
copy: 'Копировать',
|
||||
},
|
||||
qrcode: {
|
||||
title: 'QR-код ссылки',
|
||||
scan: 'Сканировать, чтобы поделиться',
|
||||
download: 'Скачать QR-код',
|
||||
},
|
||||
customize: {
|
||||
way: 'способ',
|
||||
entry: 'Настроить',
|
||||
title: 'Настроить веб-приложение ИИ',
|
||||
explanation: 'Вы можете настроить внешний интерфейс веб-приложения в соответствии со своими потребностями.',
|
||||
way1: {
|
||||
name: 'Создайте форк клиентского кода, измените его и разверните на Vercel (рекомендуется)',
|
||||
step1: 'Создайте форк клиентского кода и измените его',
|
||||
step1Tip: 'Нажмите здесь, чтобы создать форк исходного кода в своей учетной записи GitHub и изменить код',
|
||||
step1Operation: 'Dify-WebClient',
|
||||
step2: 'Развернуть на Vercel',
|
||||
step2Tip: 'Нажмите здесь, чтобы импортировать репозиторий в Vercel и развернуть',
|
||||
step2Operation: 'Импортировать репозиторий',
|
||||
step3: 'Настроить переменные среды',
|
||||
step3Tip: 'Добавьте следующие переменные среды в Vercel',
|
||||
},
|
||||
way2: {
|
||||
name: 'Напишите клиентский код для вызова API и разверните его на сервере',
|
||||
operation: 'Документация',
|
||||
},
|
||||
},
|
||||
launch: 'Баркас',
|
||||
enableTooltip: {
|
||||
description: 'Чтобы включить эту функцию, добавьте на холст узел ввода пользователя. (Может уже существовать в черновике, вступает в силу после публикации)',
|
||||
learnMore: 'Узнать больше',
|
||||
},
|
||||
title: 'Веб-приложение',
|
||||
},
|
||||
apiInfo: {
|
||||
title: 'API серверной части',
|
||||
explanation: 'Легко интегрируется в ваше приложение',
|
||||
accessibleAddress: 'Конечная точка API сервиса',
|
||||
doc: 'Справочник по API',
|
||||
},
|
||||
status: {
|
||||
running: 'В работе',
|
||||
disable: 'Отключено',
|
||||
},
|
||||
triggerInfo: {
|
||||
title: 'Триггеры',
|
||||
explanation: 'Управление триггерами рабочего процесса',
|
||||
triggersAdded: 'Добавлены триггеры',
|
||||
noTriggerAdded: 'Триггер не добавлен',
|
||||
triggerStatusDescription: 'Статус узла триггера отображается здесь. (Может уже существовать в черновике, вступает в силу после публикации)',
|
||||
learnAboutTriggers: 'Узнайте о триггерах',
|
||||
},
|
||||
disableTooltip: {
|
||||
triggerMode: 'Функция {{feature}} не поддерживается в режиме узла триггера.',
|
||||
},
|
||||
},
|
||||
analysis: {
|
||||
title: 'Анализ',
|
||||
ms: 'мс',
|
||||
tokenPS: 'Токен/с',
|
||||
totalMessages: {
|
||||
title: 'Всего сообщений',
|
||||
explanation: 'Ежедневное количество взаимодействий с ИИ.',
|
||||
},
|
||||
totalConversations: {
|
||||
title: 'Всего чатов',
|
||||
explanation: 'Ежедневное количество чатов с LLM; проектирование/отладка не учитываются.',
|
||||
},
|
||||
activeUsers: {
|
||||
title: 'Активные пользователи',
|
||||
explanation: 'Уникальные пользователи, участвующие в вопросах и ответах с LLM; проектирование/отладка не учитываются.',
|
||||
},
|
||||
tokenUsage: {
|
||||
title: 'Использование токенов',
|
||||
explanation: 'Отражает ежедневное использование токенов языковой модели для приложения, полезно для целей контроля затрат.',
|
||||
consumed: 'Потрачено',
|
||||
},
|
||||
avgSessionInteractions: {
|
||||
title: 'Среднее количество взаимодействий за сеанс',
|
||||
explanation: 'Количество непрерывных взаимодействий пользователя с LLM; для приложений на основе чатов.',
|
||||
},
|
||||
avgUserInteractions: {
|
||||
title: 'Среднее количество взаимодействий пользователя',
|
||||
explanation: 'Отражает ежедневную частоту использования пользователями. Эта метрика отражает активность пользователей.',
|
||||
},
|
||||
userSatisfactionRate: {
|
||||
title: 'Уровень удовлетворенности пользователей',
|
||||
explanation: 'Количество лайков на 1000 сообщений. Это указывает на долю ответов, которыми пользователи довольны.',
|
||||
},
|
||||
avgResponseTime: {
|
||||
title: 'Среднее время ответа',
|
||||
explanation: 'Время (мс) для обработки/ответа LLM; для текстовых приложений.',
|
||||
},
|
||||
tps: {
|
||||
title: 'Скорость вывода токенов',
|
||||
explanation: 'Измерьте производительность LLM. Подсчитайте скорость вывода токенов LLM от начала запроса до завершения вывода.',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
349
dify/web/i18n/ru-RU/app.ts
Normal file
349
dify/web/i18n/ru-RU/app.ts
Normal file
@@ -0,0 +1,349 @@
|
||||
const translation = {
|
||||
createApp: 'СОЗДАТЬ ПРИЛОЖЕНИЕ',
|
||||
types: {
|
||||
all: 'Все',
|
||||
chatbot: 'Чат-бот',
|
||||
agent: 'Агент',
|
||||
workflow: 'Рабочий процесс',
|
||||
completion: 'Завершение',
|
||||
advanced: 'Чатфлоу',
|
||||
basic: 'Основной',
|
||||
},
|
||||
duplicate: 'Дублировать',
|
||||
duplicateTitle: 'Дублировать приложение',
|
||||
export: 'Экспортировать DSL',
|
||||
exportFailed: 'Ошибка экспорта DSL.',
|
||||
importDSL: 'Импортировать файл DSL',
|
||||
createFromConfigFile: 'Создать из файла DSL',
|
||||
importFromDSL: 'Импортировать из DSL',
|
||||
importFromDSLFile: 'Из файла DSL',
|
||||
importFromDSLUrl: 'Из URL',
|
||||
importFromDSLUrlPlaceholder: 'Вставьте ссылку DSL сюда',
|
||||
dslUploader: {
|
||||
button: 'Перетащите файл, или',
|
||||
browse: 'Обзор',
|
||||
},
|
||||
deleteAppConfirmTitle: 'Удалить это приложение?',
|
||||
deleteAppConfirmContent:
|
||||
'Удаление приложения необратимо. Пользователи больше не смогут получить доступ к вашему приложению, и все настройки подсказок и журналы будут безвозвратно удалены.',
|
||||
appDeleted: 'Приложение удалено',
|
||||
appDeleteFailed: 'Не удалось удалить приложение',
|
||||
join: 'Присоединяйтесь к сообществу',
|
||||
communityIntro:
|
||||
'Общайтесь с членами команды, участниками и разработчиками на разных каналах.',
|
||||
roadmap: 'Посмотреть наш roadmap',
|
||||
newApp: {
|
||||
startFromBlank: 'Создать с нуля',
|
||||
startFromTemplate: 'Создать из шаблона',
|
||||
workflowWarning: 'В настоящее время находится в бета-версии',
|
||||
captionName: 'Значок и название приложения',
|
||||
appNamePlaceholder: 'Дайте вашему приложению имя',
|
||||
captionDescription: 'Описание',
|
||||
appDescriptionPlaceholder: 'Введите описание приложения',
|
||||
useTemplate: 'Использовать этот шаблон',
|
||||
previewDemo: 'Предварительный просмотр',
|
||||
chatApp: 'Ассистент',
|
||||
chatAppIntro:
|
||||
'Я хочу создать приложение на основе чата. Это приложение использует формат вопросов и ответов, позволяя общаться непрерывно.',
|
||||
agentAssistant: 'Новый Ассистент Агента',
|
||||
completeApp: 'Генератор текста',
|
||||
completeAppIntro:
|
||||
'Я хочу создать приложение, которое генерирует высококачественный текст на основе подсказок, например, генерирует статьи, резюме, переводы и многое другое.',
|
||||
showTemplates: 'Я хочу выбрать из шаблона',
|
||||
hideTemplates: 'Вернуться к выбору режима',
|
||||
Create: 'Создать',
|
||||
Cancel: 'Отмена',
|
||||
nameNotEmpty: 'Имя не может быть пустым',
|
||||
appTemplateNotSelected: 'Пожалуйста, выберите шаблон',
|
||||
appTypeRequired: 'Пожалуйста, выберите тип приложения',
|
||||
appCreated: 'Приложение создано',
|
||||
appCreateFailed: 'Не удалось создать приложение',
|
||||
caution: 'Осторожность',
|
||||
appCreateDSLErrorPart2: 'Хотите продолжить?',
|
||||
Confirm: 'Подтверждать',
|
||||
appCreateDSLErrorTitle: 'Несовместимость версий',
|
||||
appCreateDSLErrorPart3: 'Актуальная версия приложения DSL:',
|
||||
appCreateDSLErrorPart4: 'Поддерживаемая системой версия DSL:',
|
||||
appCreateDSLWarning: 'Внимание: разница в версиях DSL может повлиять на некоторые функции',
|
||||
appCreateDSLErrorPart1: 'Обнаружена существенная разница в версиях DSL. Принудительный импорт может привести к сбою в работе приложения.',
|
||||
learnMore: 'Подробнее',
|
||||
forAdvanced: 'ДЛЯ ПРОДВИНУТЫХ ПОЛЬЗОВАТЕЛЕЙ',
|
||||
foundResults: '{{count}} Результаты',
|
||||
optional: 'Необязательный',
|
||||
chatbotShortDescription: 'Чат-бот на основе LLM с простой настройкой',
|
||||
advancedShortDescription: 'Рабочий процесс, улучшенный для многоходовых чатов',
|
||||
foundResult: '{{count}} Результат',
|
||||
workflowShortDescription: 'Агентный поток для интеллектуальных автоматизаций',
|
||||
advancedUserDescription: 'Рабочий процесс с дополнительными функциями памяти и интерфейсом чат-бота.',
|
||||
noAppsFound: 'Приложения не найдены',
|
||||
agentUserDescription: 'Интеллектуальный агент, способный к итеративным рассуждениям и автономному использованию инструментов для достижения целей задачи.',
|
||||
forBeginners: 'Более простые типы приложений',
|
||||
chatbotUserDescription: 'Быстро создайте чат-бота на основе LLM с простой настройкой. Вы можете переключиться на Chatflow позже.',
|
||||
noTemplateFound: 'Шаблоны не найдены',
|
||||
completionShortDescription: 'AI-помощник для задач генерации текста',
|
||||
noIdeaTip: 'Нет идей? Ознакомьтесь с нашими шаблонами',
|
||||
chooseAppType: 'Выберите тип приложения',
|
||||
agentShortDescription: 'Интеллектуальный агент с рассуждениями и автономным использованием инструментов',
|
||||
noTemplateFoundTip: 'Попробуйте искать по разным ключевым словам.',
|
||||
completionUserDescription: 'Быстро создайте помощника с искусственным интеллектом для задач генерации текста с простой настройкой.',
|
||||
workflowUserDescription: 'Визуально создавайте автономные ИИ-процессы простым перетаскиванием.',
|
||||
dropDSLToCreateApp: 'Перетащите файл DSL сюда, чтобы создать приложение',
|
||||
import: 'Импорт',
|
||||
},
|
||||
editApp: 'Редактировать информацию',
|
||||
editAppTitle: 'Редактировать информацию о приложении',
|
||||
editDone: 'Информация о приложении обновлена',
|
||||
editFailed: 'Не удалось обновить информацию о приложении',
|
||||
iconPicker: {
|
||||
ok: 'ОК',
|
||||
cancel: 'Отмена',
|
||||
emoji: 'Эмодзи',
|
||||
image: 'Изображение',
|
||||
},
|
||||
switch: 'Переключиться на Workflow',
|
||||
switchTipStart: 'Для вас будет создана новая копия Workflow. Новая копия ',
|
||||
switchTip: 'не позволит',
|
||||
switchTipEnd: ' переключиться обратно на базовую организацию.',
|
||||
switchLabel: 'Копия приложения, которая будет создана',
|
||||
removeOriginal: 'Удалить исходное приложение',
|
||||
switchStart: 'Переключиться',
|
||||
typeSelector: {
|
||||
all: 'ВСЕ типы',
|
||||
chatbot: 'Чат-бот',
|
||||
agent: 'Агент',
|
||||
workflow: 'Рабочий процесс',
|
||||
completion: 'Завершение',
|
||||
advanced: 'Чатфлоу',
|
||||
},
|
||||
tracing: {
|
||||
title: 'Отслеживание производительности приложения',
|
||||
description: 'Настройка стороннего поставщика LLMOps и отслеживание производительности приложения.',
|
||||
config: 'Настройка',
|
||||
view: 'Просмотр',
|
||||
collapse: 'Свернуть',
|
||||
expand: 'Развернуть',
|
||||
tracing: 'Отслеживание',
|
||||
disabled: 'Отключено',
|
||||
disabledTip: 'Пожалуйста, сначала настройте провайдера LLM',
|
||||
enabled: 'В работе',
|
||||
tracingDescription: 'Запись полного контекста выполнения приложения, включая вызовы LLM, контекст, подсказки, HTTP-запросы и многое другое, на стороннюю платформу трассировки.',
|
||||
configProviderTitle: {
|
||||
configured: 'Настроено',
|
||||
notConfigured: 'Настройте провайдера, чтобы включить трассировку',
|
||||
moreProvider: 'Больше провайдеров',
|
||||
},
|
||||
arize: {
|
||||
title: 'Arize',
|
||||
description: 'Корпоративный уровень наблюдаемости LLM, онлайн и оффлайн оценка, мониторинг и эксперименты—на основе OpenTelemetry. Специально разработан для приложений на базе LLM и агентов.',
|
||||
},
|
||||
phoenix: {
|
||||
title: 'Phoenix',
|
||||
description: 'Открытая и основанная на OpenTelemetry платформа для наблюдаемости, оценки, инженерии подсказок и экспериментов для ваших рабочих процессов и агентов LLM.',
|
||||
},
|
||||
langsmith: {
|
||||
title: 'LangSmith',
|
||||
description: 'Универсальная платформа для разработчиков для каждого этапа жизненного цикла приложения на базе LLM.',
|
||||
},
|
||||
langfuse: {
|
||||
title: 'Langfuse',
|
||||
description: 'Трассировка, оценка, управление подсказками и метрики для отладки и улучшения вашего приложения LLM.',
|
||||
},
|
||||
inUse: 'Используется',
|
||||
configProvider: {
|
||||
title: 'Настройка ',
|
||||
placeholder: 'Введите ваш {{key}}',
|
||||
project: 'Проект',
|
||||
publicKey: 'Публичный ключ',
|
||||
secretKey: 'Секретный ключ',
|
||||
viewDocsLink: 'Посмотреть документацию {{key}}',
|
||||
removeConfirmTitle: 'Удалить конфигурацию {{key}}?',
|
||||
removeConfirmContent: 'Текущая конфигурация используется, ее удаление отключит функцию трассировки.',
|
||||
username: 'Имя пользователя',
|
||||
password: 'Пароль',
|
||||
experimentId: 'ID эксперимента',
|
||||
trackingUri: 'URI отслеживания',
|
||||
clientSecret: 'Секрет клиента OAuth',
|
||||
databricksHost: 'URL рабочего пространства Databricks',
|
||||
clientId: 'Идентификатор клиента OAuth',
|
||||
personalAccessToken: 'Личный токен доступа (устаревший)',
|
||||
},
|
||||
opik: {
|
||||
title: 'Опик',
|
||||
description: 'Opik — это платформа с открытым исходным кодом для оценки, тестирования и мониторинга LLM-приложений.',
|
||||
},
|
||||
weave: {
|
||||
description: 'Weave — это открытая платформа для оценки, тестирования и мониторинга приложений LLM.',
|
||||
title: 'Ткать',
|
||||
},
|
||||
aliyun: {
|
||||
title: 'Облачный монитор',
|
||||
description: 'Полностью управляемая и не требующая обслуживания платформа наблюдения, предоставляемая Alibaba Cloud, обеспечивает мониторинг, трассировку и оценку приложений Dify из коробки.',
|
||||
},
|
||||
mlflow: {
|
||||
title: 'MLflow',
|
||||
description: 'Платформа LLMOps с открытым исходным кодом для отслеживания экспериментов, наблюдаемости и оценки, для создания приложений AI/LLM с уверенностью.',
|
||||
},
|
||||
databricks: {
|
||||
title: 'Databricks',
|
||||
description: 'Databricks предлагает полностью управляемый MLflow с сильным управлением и безопасностью для хранения данных трассировки.',
|
||||
},
|
||||
tencent: {
|
||||
title: 'Tencent APM',
|
||||
description: 'Мониторинг производительности приложений Tencent предоставляет всестороннее отслеживание и многомерный анализ для приложений LLM.',
|
||||
},
|
||||
},
|
||||
answerIcon: {
|
||||
title: 'Использование значка web app для замены 🤖',
|
||||
description: 'Следует ли использовать значок web app для замены 🤖 в общем приложении',
|
||||
descriptionInExplore: 'Следует ли использовать значок web app для замены 🤖 в разделе "Обзор"',
|
||||
},
|
||||
mermaid: {
|
||||
handDrawn: 'Рисованный',
|
||||
classic: 'Классический',
|
||||
},
|
||||
openInExplore: 'Открыть в разделе «Обзор»',
|
||||
newAppFromTemplate: {
|
||||
sidebar: {
|
||||
HR: 'ЧАС',
|
||||
Workflow: 'Рабочий процесс',
|
||||
Recommended: 'Рекомендованный',
|
||||
Agent: 'Агент',
|
||||
Assistant: 'Помощник',
|
||||
Writing: 'Пишущий',
|
||||
Programming: 'Программирование',
|
||||
},
|
||||
searchAllTemplate: 'Поиск по всем шаблонам...',
|
||||
byCategories: 'ПО КАТЕГОРИЯМ',
|
||||
},
|
||||
showMyCreatedAppsOnly: 'Показать только созданные мной приложения',
|
||||
appSelector: {
|
||||
label: 'ПРИЛОЖЕНИЕ',
|
||||
noParams: 'Параметры не нужны',
|
||||
placeholder: 'Выберите приложение...',
|
||||
params: 'ПАРАМЕТРЫ ПРИЛОЖЕНИЯ',
|
||||
},
|
||||
structOutput: {
|
||||
notConfiguredTip: 'Структурированный вывод еще не был настроен.',
|
||||
LLMResponse: 'Ответ LLM',
|
||||
structured: 'Структурированный',
|
||||
moreFillTip: 'Показано максимум 10 уровней вложенности',
|
||||
required: 'Необходимо',
|
||||
configure: 'Настроить',
|
||||
modelNotSupported: 'Модель не поддерживается',
|
||||
modelNotSupportedTip: 'Текущая модель не поддерживает эту функцию и автоматически понижается до инъекции подсказок.',
|
||||
structuredTip: 'Структурированные выходные данные — это функция, которая гарантирует, что модель всегда будет генерировать ответы, соответствующие вашей предоставленной JSON-схеме.',
|
||||
},
|
||||
accessItemsDescription: {
|
||||
anyone: 'Любой может получить доступ к веб-приложению',
|
||||
specific: 'Только определенные группы или участники могут получить доступ к веб-приложению.',
|
||||
organization: 'Любой в организации может получить доступ к веб-приложению',
|
||||
external: 'Только аутентифицированные внешние пользователи могут получить доступ к веб-приложению.',
|
||||
},
|
||||
accessControlDialog: {
|
||||
accessItems: {
|
||||
anyone: 'Кто угодно с ссылкой',
|
||||
specific: 'Конкретные группы или члены',
|
||||
organization: 'Только члены внутри предприятия',
|
||||
external: 'Аутентифицированные внешние пользователи',
|
||||
},
|
||||
operateGroupAndMember: {
|
||||
searchPlaceholder: 'Искать группы и участников',
|
||||
expand: 'Расширить',
|
||||
noResult: 'Нет результата',
|
||||
allMembers: 'Все члены',
|
||||
},
|
||||
title: 'Управление доступом к веб-приложению',
|
||||
description: 'Установите разрешения на доступ к веб-приложению',
|
||||
accessLabel: 'Кто имеет доступ',
|
||||
groups_one: '{{count}} ГРУППА',
|
||||
groups_other: '{{count}} ГРУПП',
|
||||
members_one: '{{count}} УЧАСТНИК',
|
||||
members_other: '{{count}} УЧАСТНИКИ',
|
||||
noGroupsOrMembers: 'Группы или участники не выбраны',
|
||||
updateSuccess: 'Обновление прошло успешно',
|
||||
webAppSSONotEnabledTip: 'Пожалуйста, свяжитесь с администратором предприятия, чтобы настроить метод аутентификации веб-приложения.',
|
||||
},
|
||||
publishApp: {
|
||||
title: 'Кто может получить доступ к веб-приложению',
|
||||
notSet: 'Не установлено',
|
||||
notSetDesc: 'В настоящее время никто не может получить доступ к веб-приложению. Пожалуйста, установите права доступа.',
|
||||
},
|
||||
accessControl: 'Управление доступом к веб-приложению',
|
||||
noAccessPermission: 'Нет разрешения на доступ к веб-приложению',
|
||||
maxActiveRequests: 'Максимальное количество параллельных запросов',
|
||||
maxActiveRequestsPlaceholder: 'Введите 0 для неограниченного количества',
|
||||
maxActiveRequestsTip: 'Максимальное количество одновременно активных запросов на одно приложение (0 для неограниченного количества)',
|
||||
gotoAnything: {
|
||||
actions: {
|
||||
searchPlugins: 'Поиск плагинов',
|
||||
searchKnowledgeBases: 'Поиск в базах знаний',
|
||||
searchApplications: 'Поиск приложений',
|
||||
searchKnowledgeBasesDesc: 'Поиск и переход к базам знаний',
|
||||
searchPluginsDesc: 'Поиск и переход к вашим плагинам',
|
||||
searchWorkflowNodes: 'Поиск узлов рабочего процесса',
|
||||
searchApplicationsDesc: 'Поиск и переход к приложениям',
|
||||
searchWorkflowNodesHelp: 'Эта функция работает только при просмотре рабочего процесса. Сначала перейдите к рабочему процессу.',
|
||||
searchWorkflowNodesDesc: 'Поиск узлов в текущем рабочем процессе и переход к ним по имени или типу',
|
||||
themeCategoryDesc: 'Переключить тему приложения',
|
||||
runTitle: 'Команды',
|
||||
themeDark: 'Темная тема',
|
||||
themeCategoryTitle: 'Тема',
|
||||
languageCategoryTitle: 'Язык',
|
||||
themeSystem: 'Системная тема',
|
||||
runDesc: 'Запустите быстрые команды (тема, язык, …)',
|
||||
themeLight: 'Светлая тема',
|
||||
themeDarkDesc: 'Используйте темный внешний вид',
|
||||
languageChangeDesc: 'Измените язык интерфейса',
|
||||
languageCategoryDesc: 'Переключите язык интерфейса',
|
||||
themeLightDesc: 'Используйте светлый внешний вид',
|
||||
themeSystemDesc: 'Следуйте внешнему виду вашей операционной системы',
|
||||
slashDesc: 'Выполняйте команды, такие как /theme, /lang',
|
||||
accountDesc: 'Перейдите на страницу учетной записи',
|
||||
feedbackDesc: 'Обсуждения обратной связи с открытым сообществом',
|
||||
docDesc: 'Откройте справочную документацию',
|
||||
communityDesc: 'Открытое сообщество Discord',
|
||||
},
|
||||
emptyState: {
|
||||
noPluginsFound: 'Плагины не найдены',
|
||||
noKnowledgeBasesFound: 'Базы знаний не найдены',
|
||||
noAppsFound: 'Приложения не найдены',
|
||||
noWorkflowNodesFound: 'Узлы расчетной схемы не найдены',
|
||||
tryDifferentTerm: 'Попробуйте другой поисковый термин или удалите фильтр {{mode}}',
|
||||
trySpecificSearch: 'Попробуйте {{shortcuts}} для конкретного поиска',
|
||||
},
|
||||
groups: {
|
||||
knowledgeBases: 'Базы знаний',
|
||||
plugins: 'Плагины',
|
||||
apps: 'Приложения',
|
||||
workflowNodes: 'Узлы рабочих процессов',
|
||||
commands: 'Команды',
|
||||
},
|
||||
searching: 'Поиск...',
|
||||
noResults: 'Ничего не найдено',
|
||||
searchFailed: 'Ошибка поиска',
|
||||
searchTitle: 'Ищите что угодно',
|
||||
useAtForSpecific: 'Используйте @ для определенных типов',
|
||||
clearToSearchAll: 'Очистите @ для поиска по всем',
|
||||
searchTemporarilyUnavailable: 'Поиск временно недоступен',
|
||||
searchPlaceholder: 'Найдите или введите @ для команд...',
|
||||
someServicesUnavailable: 'Некоторые поисковые сервисы недоступны',
|
||||
servicesUnavailableMessage: 'В некоторых поисковых службах могут возникать проблемы. Повторите попытку через мгновение.',
|
||||
searchHint: 'Начните печатать, чтобы мгновенно искать все',
|
||||
commandHint: 'Введите @ для просмотра по категориям',
|
||||
selectSearchType: 'Выберите, что искать',
|
||||
resultCount: '{{count}} результат',
|
||||
resultCount_other: '{{count}} результатов',
|
||||
inScope: 'в {{scope}}s',
|
||||
noMatchingCommands: 'Соответствующие команды не найдены',
|
||||
tryDifferentSearch: 'Попробуйте использовать другой поисковый запрос',
|
||||
slashHint: 'Введите / чтобы увидеть все доступные команды',
|
||||
startTyping: 'Начните вводить для поиска',
|
||||
tips: 'Нажмите ↑↓ для навигации',
|
||||
selectToNavigate: 'Выберите для навигации',
|
||||
pressEscToClose: 'Нажмите ESC для закрытия',
|
||||
},
|
||||
notPublishedYet: 'Приложение ещё не опубликовано',
|
||||
noUserInputNode: 'Отсутствует узел ввода пользователя',
|
||||
}
|
||||
|
||||
export default translation
|
||||
203
dify/web/i18n/ru-RU/billing.ts
Normal file
203
dify/web/i18n/ru-RU/billing.ts
Normal file
@@ -0,0 +1,203 @@
|
||||
const translation = {
|
||||
currentPlan: 'Текущий тарифный план',
|
||||
upgradeBtn: {
|
||||
plain: 'Обновить тарифный план',
|
||||
encourage: 'Обновить сейчас',
|
||||
encourageShort: 'Обновить',
|
||||
},
|
||||
viewBilling: 'Управление счетами и подписками',
|
||||
buyPermissionDeniedTip: 'Пожалуйста, свяжитесь с администратором вашей организации, чтобы подписаться',
|
||||
plansCommon: {
|
||||
yearlyTip: 'Получите 2 месяца бесплатно, подписавшись на год!',
|
||||
mostPopular: 'Самый популярный',
|
||||
planRange: {
|
||||
monthly: 'Ежемесячно',
|
||||
yearly: 'Ежегодно',
|
||||
},
|
||||
month: 'месяц',
|
||||
year: 'год',
|
||||
save: 'Сэкономить ',
|
||||
free: 'Бесплатно',
|
||||
currentPlan: 'Текущий тарифный план',
|
||||
contractSales: 'Связаться с отделом продаж',
|
||||
contractOwner: 'Связаться с руководителем команды',
|
||||
startForFree: 'Начать бесплатно',
|
||||
contactSales: 'Связаться с отделом продаж',
|
||||
talkToSales: 'Поговорить с отделом продаж',
|
||||
modelProviders: 'Поставщики моделей',
|
||||
annotationQuota: 'Квота аннотаций',
|
||||
buildApps: 'Создать приложения',
|
||||
vectorSpace: 'Векторное пространство',
|
||||
vectorSpaceTooltip: 'Векторное пространство - это система долговременной памяти, необходимая LLM для понимания ваших данных.',
|
||||
documentProcessingPriority: 'Приоритет обработки документов',
|
||||
documentProcessingPriorityUpgrade: 'Обрабатывайте больше данных с большей точностью и на более высоких скоростях.',
|
||||
priority: {
|
||||
'standard': 'Стандартный',
|
||||
'priority': 'Приоритетный',
|
||||
'top-priority': 'Высокий приоритет',
|
||||
},
|
||||
logsHistory: 'История журналов',
|
||||
customTools: 'Пользовательские инструменты',
|
||||
unavailable: 'Недоступно',
|
||||
days: 'дней',
|
||||
unlimited: 'Неограниченно',
|
||||
support: 'Поддержка',
|
||||
supportItems: {
|
||||
communityForums: 'Форумы сообщества',
|
||||
emailSupport: 'Поддержка по электронной почте',
|
||||
priorityEmail: 'Приоритетная поддержка по электронной почте и в чате',
|
||||
logoChange: 'Изменение логотипа',
|
||||
SSOAuthentication: 'SSO аутентификация',
|
||||
personalizedSupport: 'Персональная поддержка',
|
||||
dedicatedAPISupport: 'Выделенная поддержка API',
|
||||
customIntegration: 'Пользовательская интеграция и поддержка',
|
||||
ragAPIRequest: 'Запросы RAG API',
|
||||
bulkUpload: 'Массовая загрузка документов',
|
||||
agentMode: 'Режим агента',
|
||||
workflow: 'Рабочий процесс',
|
||||
llmLoadingBalancing: 'Балансировка нагрузки LLM',
|
||||
llmLoadingBalancingTooltip: 'Добавьте несколько ключей API к моделям, эффективно обходя ограничения скорости API.',
|
||||
},
|
||||
comingSoon: 'Скоро',
|
||||
member: 'Участник',
|
||||
memberAfter: 'Участник',
|
||||
messageRequest: {
|
||||
title: 'Кредиты на сообщения',
|
||||
tooltip: 'Квоты вызова сообщений для различных тарифных планов, использующих модели OpenAI (кроме gpt4). Сообщения, превышающие лимит, будут использовать ваш ключ API OpenAI.',
|
||||
titlePerMonth: '{{count,number}} сообщений/месяц',
|
||||
},
|
||||
annotatedResponse: {
|
||||
title: 'Ограничения квоты аннотаций',
|
||||
tooltip: 'Ручное редактирование и аннотирование ответов обеспечивает настраиваемые высококачественные возможности ответов на вопросы для приложений. (Применимо только в чат-приложениях)',
|
||||
},
|
||||
ragAPIRequestTooltip: 'Относится к количеству вызовов API, вызывающих только возможности обработки базы знаний Dify.',
|
||||
receiptInfo: 'Только владелец команды и администратор команды могут подписываться и просматривать информацию о выставлении счетов',
|
||||
cloud: 'Облачный сервис',
|
||||
annualBilling: 'Ежегодная оплата',
|
||||
apiRateLimit: 'Ограничение скорости API',
|
||||
self: 'Самостоятельно размещенный',
|
||||
teamMember_other: '{{count,number}} Члены команды',
|
||||
apiRateLimitUnit: '{{count,number}}',
|
||||
unlimitedApiRate: 'Нет ограничений на количество запросов к API',
|
||||
freeTrialTip: 'бесплатная пробная версия из 200 вызовов OpenAI.',
|
||||
freeTrialTipSuffix: 'Кредитная карта не требуется',
|
||||
teamMember_one: '{{count,number}} Член команды',
|
||||
getStarted: 'Начать',
|
||||
teamWorkspace: '{{count,number}} Командное рабочее пространство',
|
||||
freeTrialTipPrefix: 'Зарегистрируйтесь и получите',
|
||||
comparePlanAndFeatures: 'Сравните планы и функции',
|
||||
documents: '{{count,number}} Документов знаний',
|
||||
documentsRequestQuota: '{{count,number}}/мин Лимит Частоты Запросов на Знание',
|
||||
apiRateLimitTooltip: 'Ограничение скорости API применяется ко всем запросам, сделанным через API Dify, включая генерацию текста, чатовую переписку, выполнение рабочих процессов и обработку документов.',
|
||||
documentsRequestQuotaTooltip: 'Указывает общее количество действий, которые рабочая область может выполнять в минуту внутри базы знаний, включая создание, удаление, обновление наборов данных, загрузку документов, модификации, архивирование и запросы к базе знаний. Эта метрика используется для оценки производительности запросов к базе знаний. Например, если пользователь Sandbox выполняет 10 последовательных тестов за один минуту, его рабочая область будет временно ограничена в выполнении следующих действий в течение следующей минуты: создание, удаление, обновление наборов данных и загрузка или модификация документов.',
|
||||
priceTip: 'по рабочему месту/',
|
||||
documentsTooltip: 'Квота на количество документов, импортируемых из источника знаний.',
|
||||
startBuilding: 'Начать строительство',
|
||||
taxTip: 'Все цены на подписку (ежемесячную/годовую) не включают применимые налоги (например, НДС, налог с продаж).',
|
||||
taxTipSecond: 'Если в вашем регионе нет применимых налоговых требований, налоги не будут отображаться при оформлении заказа, и с вас не будут взиматься дополнительные сборы за весь срок подписки.',
|
||||
triggerEvents: {
|
||||
unlimited: 'Неограниченные триггерные события',
|
||||
tooltip: 'Количество событий, которые автоматически запускают рабочие процессы с помощью плагина, расписания или вебхука.',
|
||||
sandbox: '{{count,number}} События триггера',
|
||||
professional: '{{count,number}} Событий срабатывания/месяц',
|
||||
},
|
||||
workflowExecution: {
|
||||
faster: 'Более быстрое выполнение рабочих процессов',
|
||||
standard: 'Стандартное выполнение рабочего процесса',
|
||||
tooltip: 'Приоритет и скорость выполнения очереди рабочих процессов.',
|
||||
priority: 'Выполнение рабочего процесса по приоритету',
|
||||
},
|
||||
startNodes: {
|
||||
unlimited: 'Неограниченные триггеры/рабочий процесс',
|
||||
limited: 'До {{count}} триггеров/рабочих процессов',
|
||||
},
|
||||
title: {
|
||||
plans: 'планы',
|
||||
description: 'Выберите план, который лучше всего соответствует потребностям вашей команды.',
|
||||
},
|
||||
},
|
||||
plans: {
|
||||
sandbox: {
|
||||
name: 'Песочница',
|
||||
description: '200 бесплатных пробных использований GPT',
|
||||
for: 'Бесплатная пробная версия основных возможностей',
|
||||
},
|
||||
professional: {
|
||||
name: 'Профессиональный',
|
||||
description: 'Для частных лиц и небольших команд, чтобы разблокировать больше возможностей по доступной цене.',
|
||||
for: 'Для независимых разработчиков/малых команд',
|
||||
},
|
||||
team: {
|
||||
name: 'Команда',
|
||||
description: 'Сотрудничайте без ограничений и наслаждайтесь высочайшей производительностью.',
|
||||
for: 'Для команд среднего размера',
|
||||
},
|
||||
enterprise: {
|
||||
name: 'Корпоративный',
|
||||
description: 'Получите полный набор возможностей и поддержку для крупномасштабных критически важных систем.',
|
||||
includesTitle: 'Все в командном плане, плюс:',
|
||||
features: ['Масштабируемые решения для развертывания корпоративного уровня', 'Разрешение на коммерческую лицензию', 'Эксклюзивные корпоративные функции', 'Несколько рабочих пространств и корпоративное управление', 'SSO', 'Согласованные SLA с партнёрами Dify', 'Расширенные функции безопасности и управления', 'Обновления и обслуживание от Dify официально', 'Профессиональная техническая поддержка'],
|
||||
price: 'Пользовательский',
|
||||
priceTip: 'Только годовая подписка',
|
||||
for: 'Для команд большого размера',
|
||||
btnText: 'Связаться с отделом продаж',
|
||||
},
|
||||
community: {
|
||||
features: ['Все основные функции выпущены в публичный репозиторий', 'Одиночное рабочее пространство', 'Соответствует лицензии с открытым исходным кодом Dify'],
|
||||
name: 'Сообщество',
|
||||
btnText: 'Начните с сообщества',
|
||||
price: 'Свободно',
|
||||
includesTitle: 'Бесплатные функции:',
|
||||
description: 'Для отдельных пользователей, малых команд или некоммерческих проектов',
|
||||
for: 'Для отдельных пользователей, малых команд или некоммерческих проектов',
|
||||
},
|
||||
premium: {
|
||||
features: ['Самоуправляемая надежность у различных облачных провайдеров', 'Одиночное рабочее пространство', 'Настройка логотипа и брендинга веб-приложения', 'Приоритетная поддержка по электронной почте и в чате'],
|
||||
description: 'Для средних организаций и команд',
|
||||
includesTitle: 'Всё из Сообщества, плюс:',
|
||||
priceTip: 'На основе облачного маркетплейса',
|
||||
btnText: 'Получите Премиум в',
|
||||
comingSoon: 'Поддержка Microsoft Azure и Google Cloud скоро появится',
|
||||
price: 'Масштабируемый',
|
||||
for: 'Для средних организаций и команд',
|
||||
name: 'Премиум',
|
||||
},
|
||||
},
|
||||
vectorSpace: {
|
||||
fullTip: 'Векторное пространство заполнено.',
|
||||
fullSolution: 'Обновите свой тарифный план, чтобы получить больше места.',
|
||||
},
|
||||
apps: {
|
||||
fullTip2des: 'Рекомендуется удалить неактивные приложения, чтобы освободить место, или свяжитесь с нами.',
|
||||
fullTip2: 'Достигнут лимит плана',
|
||||
contactUs: 'Свяжитесь с нами',
|
||||
fullTip1des: 'Вы достигли предела создания приложений по этому плану',
|
||||
fullTip1: 'Обновите, чтобы создать больше приложений',
|
||||
},
|
||||
annotatedResponse: {
|
||||
fullTipLine1: 'Обновите свой тарифный план, чтобы',
|
||||
fullTipLine2: 'аннотировать больше разговоров.',
|
||||
quotaTitle: 'Квота ответов аннотаций',
|
||||
},
|
||||
usagePage: {
|
||||
buildApps: 'Создавайте приложения',
|
||||
teamMembers: 'Члены команды',
|
||||
vectorSpaceTooltip: 'Документы с режимом индексирования высокого качества будут потреблять ресурсы Хранилища Знаний. Когда Хранилище Знаний достигнет предела, новые документы не будут загружены.',
|
||||
annotationQuota: 'Квота аннотации',
|
||||
vectorSpace: 'Хранилище данных знаний',
|
||||
documentsUploadQuota: 'Квота на загрузку документов',
|
||||
perMonth: 'в месяц',
|
||||
triggerEvents: 'Триггерные события',
|
||||
resetsIn: 'Сброс через {{count,number}} дней',
|
||||
},
|
||||
teamMembers: 'Члены команды',
|
||||
triggerLimitModal: {
|
||||
upgrade: 'Обновить',
|
||||
dismiss: 'Отклонить',
|
||||
usageTitle: 'СОБЫТИЯ-ИНИЦИАТОРЫ',
|
||||
description: 'Вы достигли предела триггеров событий рабочего процесса для этого плана.',
|
||||
title: 'Обновите, чтобы открыть больше событий срабатывания',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
788
dify/web/i18n/ru-RU/common.ts
Normal file
788
dify/web/i18n/ru-RU/common.ts
Normal file
@@ -0,0 +1,788 @@
|
||||
const translation = {
|
||||
api: {
|
||||
success: 'Успешно',
|
||||
actionSuccess: 'Действие выполнено успешно',
|
||||
saved: 'Сохранено',
|
||||
create: 'Создано',
|
||||
remove: 'Удалено',
|
||||
},
|
||||
operation: {
|
||||
create: 'Создать',
|
||||
confirm: 'Подтвердить',
|
||||
cancel: 'Отмена',
|
||||
clear: 'Очистить',
|
||||
save: 'Сохранить',
|
||||
saveAndEnable: 'Сохранить и включить',
|
||||
edit: 'Редактировать',
|
||||
add: 'Добавить',
|
||||
added: 'Добавлено',
|
||||
refresh: 'Перезапустить',
|
||||
reset: 'Сбросить',
|
||||
search: 'Поиск',
|
||||
change: 'Изменить',
|
||||
remove: 'Удалить',
|
||||
send: 'Отправить',
|
||||
copy: 'Копировать',
|
||||
lineBreak: 'Разрыв строки',
|
||||
sure: 'Я уверен',
|
||||
download: 'Скачать',
|
||||
delete: 'Удалить',
|
||||
settings: 'Настройки',
|
||||
setup: 'Настроить',
|
||||
getForFree: 'Получить бесплатно',
|
||||
reload: 'Перезагрузить',
|
||||
ok: 'ОК',
|
||||
log: 'Журнал',
|
||||
learnMore: 'Узнать больше',
|
||||
params: 'Параметры',
|
||||
duplicate: 'Дублировать',
|
||||
rename: 'Переименовать',
|
||||
audioSourceUnavailable: 'AudioSource недоступен',
|
||||
zoomIn: 'Увеличить',
|
||||
zoomOut: 'Уменьшение масштаба',
|
||||
openInNewTab: 'Открыть в новой вкладке',
|
||||
copyImage: 'Скопировать изображение',
|
||||
close: 'Закрывать',
|
||||
regenerate: 'Регенерировать',
|
||||
view: 'Вид',
|
||||
viewMore: 'ПОДРОБНЕЕ',
|
||||
saveAndRegenerate: 'Сохранение и повторное создание дочерних блоков',
|
||||
submit: 'Отправить',
|
||||
skip: 'Корабль',
|
||||
imageCopied: 'Скопированное изображение',
|
||||
deleteApp: 'Удалить приложение',
|
||||
copied: 'Скопированы',
|
||||
in: 'в',
|
||||
viewDetails: 'Подробнее',
|
||||
format: 'Формат',
|
||||
more: 'Больше',
|
||||
downloadFailed: 'Скачивание не удалось. Пожалуйста, попробуйте еще раз позже.',
|
||||
downloadSuccess: 'Загрузка завершена.',
|
||||
selectAll: 'Выбрать все',
|
||||
deSelectAll: 'Снять выделение со всех',
|
||||
config: 'Конфигурация',
|
||||
yes: 'Да',
|
||||
no: 'Нет',
|
||||
deleteConfirmTitle: 'Удалить?',
|
||||
confirmAction: 'Пожалуйста, подтвердите ваше действие.',
|
||||
noSearchResults: 'Ничего {{content}} не найдено',
|
||||
resetKeywords: 'Сбросить ключевые слова',
|
||||
selectCount: '{{count}} Выбран',
|
||||
searchCount: 'Найти {{count}} {{content}}',
|
||||
noSearchCount: '0 {{content}}',
|
||||
now: 'Сейчас',
|
||||
},
|
||||
errorMsg: {
|
||||
fieldRequired: '{{field}} обязательно',
|
||||
urlError: 'URL должен начинаться с http:// или https://',
|
||||
},
|
||||
placeholder: {
|
||||
input: 'Пожалуйста, введите',
|
||||
select: 'Пожалуйста, выберите',
|
||||
search: 'Поиск...',
|
||||
},
|
||||
voice: {
|
||||
language: {
|
||||
zhHans: 'Китайский',
|
||||
zhHant: 'Традиционный китайский',
|
||||
enUS: 'Английский',
|
||||
deDE: 'Немецкий',
|
||||
frFR: 'Французский',
|
||||
esES: 'Испанский',
|
||||
itIT: 'Итальянский',
|
||||
thTH: 'Тайский',
|
||||
idID: 'Индонезийский',
|
||||
jaJP: 'Японский',
|
||||
koKR: 'Корейский',
|
||||
ptBR: 'Португальский',
|
||||
ruRU: 'Русский',
|
||||
ukUA: 'Украинский',
|
||||
viVN: 'Вьетнамский',
|
||||
plPL: 'Польский',
|
||||
roRO: 'Румынский',
|
||||
hiIN: 'Хинди',
|
||||
trTR: 'Турецкий',
|
||||
faIR: 'Персидский',
|
||||
},
|
||||
},
|
||||
unit: {
|
||||
char: 'символов',
|
||||
},
|
||||
actionMsg: {
|
||||
noModification: 'На данный момент нет изменений.',
|
||||
modifiedSuccessfully: 'Изменено успешно',
|
||||
modifiedUnsuccessfully: 'Изменено неудачно',
|
||||
copySuccessfully: 'Скопировано успешно',
|
||||
paySucceeded: 'Оплата прошла успешно',
|
||||
payCancelled: 'Оплата отменена',
|
||||
generatedSuccessfully: 'Сгенерировано успешно',
|
||||
generatedUnsuccessfully: 'Сгенерировано неудачно',
|
||||
},
|
||||
model: {
|
||||
params: {
|
||||
temperature: 'Temperature',
|
||||
temperatureTip:
|
||||
'Контролирует случайность: более низкое значение приводит к менее случайным завершениям. По мере приближения температуры к нулю модель станет детерминированной и повторяющейся.',
|
||||
top_p: 'Top P',
|
||||
top_pTip:
|
||||
'Контролирует разнообразие с помощью ядерной выборки: 0,5 означает, что рассматривается половина всех вариантов, взвешенных по вероятности.',
|
||||
presence_penalty: 'Presence penalty',
|
||||
presence_penaltyTip:
|
||||
'Насколько штрафовать новые токены в зависимости от того, появляются ли они в тексте до сих пор.\nУвеличивает вероятность того, что модель будет говорить о новых темах.',
|
||||
frequency_penalty: 'Frequency penalty',
|
||||
frequency_penaltyTip:
|
||||
'Насколько штрафовать новые токены в зависимости от их существующей частоты в тексте до сих пор.\nУменьшает вероятность того, что модель будет повторять одну и ту же строку дословно.',
|
||||
max_tokens: 'Максимальное количество токенов',
|
||||
max_tokensTip:
|
||||
'Используется для ограничения максимальной длины ответа в токенах. \nБольшие значения могут ограничивать пространство, оставленное для подсказок, журналов чата и знаний. \nРекомендуется установить его ниже двух третей\ngpt-4-1106-preview, gpt-4-vision-preview max token (input 128k output 4k)',
|
||||
maxTokenSettingTip: 'Ваша настройка максимального количества токенов высока, что потенциально ограничивает пространство для подсказок, запросов и данных. Подумайте о том, чтобы установить его ниже 2/3.',
|
||||
setToCurrentModelMaxTokenTip: 'Максимальное количество токенов обновлено до 80% максимального количества токенов текущей модели {{maxToken}}.',
|
||||
stop_sequences: 'Стоп-последовательности',
|
||||
stop_sequencesTip: 'До четырех последовательностей, где API прекратит генерировать дальнейшие токены. Возвращаемый текст не будет содержать стоп-последовательность.',
|
||||
stop_sequencesPlaceholder: 'Введите последовательность и нажмите Tab',
|
||||
},
|
||||
tone: {
|
||||
Creative: 'Творческий',
|
||||
Balanced: 'Сбалансированный',
|
||||
Precise: 'Точный',
|
||||
Custom: 'Пользовательский',
|
||||
},
|
||||
addMoreModel: 'Перейдите в настройки, чтобы добавить больше моделей',
|
||||
capabilities: 'Мультимодальные возможности',
|
||||
settingsLink: 'Настройки поставщика моделей',
|
||||
},
|
||||
menus: {
|
||||
status: 'бета',
|
||||
explore: 'Исследовать',
|
||||
apps: 'Студия',
|
||||
plugins: 'Плагины',
|
||||
pluginsTips: 'Интегрируйте сторонние плагины или создавайте совместимые с ChatGPT AI-плагины.',
|
||||
datasets: 'Знания',
|
||||
datasetsTips: 'СКОРО: Импортируйте свои собственные текстовые данные или записывайте данные в режиме реального времени через Webhook для улучшения контекста LLM.',
|
||||
newApp: 'Новое приложение',
|
||||
newDataset: 'Создать знания',
|
||||
tools: 'Инструменты',
|
||||
exploreMarketplace: 'Подробнее о Marketplace',
|
||||
appDetail: 'Детали приложения',
|
||||
account: 'Учетная запись',
|
||||
},
|
||||
userProfile: {
|
||||
settings: 'Настройки',
|
||||
emailSupport: 'Поддержка по электронной почте',
|
||||
workspace: 'Рабочее пространство',
|
||||
createWorkspace: 'Создать рабочее пространство',
|
||||
helpCenter: 'Помощь',
|
||||
roadmap: 'План развития',
|
||||
community: 'Сообщество',
|
||||
about: 'О нас',
|
||||
logout: 'Выйти',
|
||||
github: 'ГитХаб',
|
||||
compliance: 'Соблюдение',
|
||||
support: 'Поддержка',
|
||||
contactUs: 'Свяжитесь с нами',
|
||||
forum: 'Форум',
|
||||
},
|
||||
settings: {
|
||||
accountGroup: 'АККАУНТ',
|
||||
workplaceGroup: 'РАБОЧЕЕ ПРОСТРАНСТВО',
|
||||
account: 'Моя учетная запись',
|
||||
members: 'Участники',
|
||||
billing: 'Оплата',
|
||||
integrations: 'Интеграции',
|
||||
language: 'Язык',
|
||||
provider: 'Поставщик модели',
|
||||
dataSource: 'Источник данных',
|
||||
plugin: 'Плагины',
|
||||
apiBasedExtension: 'API расширение',
|
||||
generalGroup: 'ОБЩЕЕ',
|
||||
},
|
||||
account: {
|
||||
avatar: 'Аватар',
|
||||
name: 'Имя',
|
||||
email: 'Электронная почта',
|
||||
password: 'Пароль',
|
||||
passwordTip: 'Вы можете установить постоянный пароль, если не хотите использовать временные коды входа',
|
||||
setPassword: 'Установить пароль',
|
||||
resetPassword: 'Сбросить пароль',
|
||||
currentPassword: 'Текущий пароль',
|
||||
newPassword: 'Новый пароль',
|
||||
confirmPassword: 'Подтвердите пароль',
|
||||
notEqual: 'Два пароля различаются.',
|
||||
langGeniusAccount: 'Учетная запись Dify',
|
||||
langGeniusAccountTip: 'Ваша учетная запись Dify и связанные с ней пользовательские данные.',
|
||||
editName: 'Редактировать имя',
|
||||
showAppLength: 'Показать {{length}} приложений',
|
||||
delete: 'Удалить учетную запись',
|
||||
deleteTip: 'Удаление вашей учетной записи приведет к безвозвратному удалению всех ваших данных, и их невозможно будет восстановить.',
|
||||
account: 'Счет',
|
||||
studio: 'Студия Dify',
|
||||
myAccount: 'Моя учетная запись',
|
||||
deletePrivacyLink: 'Политика конфиденциальности.',
|
||||
deletePlaceholder: 'Пожалуйста, введите свой адрес электронной почты',
|
||||
sendVerificationButton: 'Отправить код подтверждения',
|
||||
verificationLabel: 'Проверочный код',
|
||||
verificationPlaceholder: 'Вставьте 6-значный код',
|
||||
feedbackTitle: 'Обратная связь',
|
||||
feedbackLabel: 'Расскажите нам, почему вы удалили свой аккаунт?',
|
||||
feedbackPlaceholder: 'Необязательный',
|
||||
permanentlyDeleteButton: 'Окончательно удалить учетную запись',
|
||||
deleteLabel: 'Для подтверждения, пожалуйста, введите свой адрес электронной почты ниже',
|
||||
deleteSuccessTip: 'Вашему аккаунту требуется время, чтобы завершить удаление. Мы свяжемся с вами по электронной почте, когда все будет готово.',
|
||||
deletePrivacyLinkTip: 'Для получения дополнительной информации о том, как мы обрабатываем ваши данные, ознакомьтесь с нашим',
|
||||
workspaceIcon: 'Иконка рабочего пространства',
|
||||
workspaceName: 'Название рабочего пространства',
|
||||
editWorkspaceInfo: 'Редактировать информацию о рабочем пространстве',
|
||||
changeEmail: {
|
||||
resendTip: 'Не получили код?',
|
||||
codePlaceholder: 'Вставьте 6-значный код',
|
||||
emailLabel: 'Новое письмо',
|
||||
codeLabel: 'Код подтверждения',
|
||||
resend: 'Переслать',
|
||||
continue: 'Продолжайте',
|
||||
emailPlaceholder: 'Введите новый адрес электронной почты',
|
||||
resendCount: 'Отправьте снова через {{count}}с',
|
||||
newEmail: 'Создайте новый адрес электронной почты',
|
||||
sendVerifyCode: 'Отправить код проверки',
|
||||
title: 'Сменить электронную почту',
|
||||
changeTo: 'Изменить на {{email}}',
|
||||
existingEmail: 'Пользователь с этим адресом электронной почты уже существует.',
|
||||
verifyNew: 'Подтвердите ваш новый адрес электронной почты',
|
||||
verifyEmail: 'Подтвердите ваш текущий адрес электронной почты',
|
||||
content2: 'Ваш текущий электронный адрес: <email>{{email}}</email>. Код подтверждения был отправлен на этот адрес электронной почты.',
|
||||
content4: 'Мы только что отправили вам временный код подтверждения на <email>{{email}}</email>.',
|
||||
content3: 'Введите новый адрес электронной почты, и мы отправим вам код подтверждения.',
|
||||
content1: 'Если вы продолжите, мы отправим код подтверждения на <email>{{email}}</email> для повторной аутентификации.',
|
||||
authTip: 'После изменения вашего адреса электронной почты учетные записи Google или GitHub, связанные с вашим старым адресом, больше не смогут войти в эту учетную запись.',
|
||||
unAvailableEmail: 'Этот email временно недоступен.',
|
||||
},
|
||||
},
|
||||
members: {
|
||||
team: 'Команда',
|
||||
invite: 'Добавить',
|
||||
name: 'ИМЯ',
|
||||
lastActive: 'ПОСЛЕДНЯЯ АКТИВНОСТЬ',
|
||||
role: 'РОЛИ',
|
||||
pending: 'Ожидание...',
|
||||
owner: 'Владелец',
|
||||
admin: 'Администратор',
|
||||
adminTip: 'Может создавать приложения и управлять настройками команды',
|
||||
normal: 'Обычный',
|
||||
normalTip: 'Может только использовать приложения, не может создавать приложения',
|
||||
builder: 'Разработчик',
|
||||
builderTip: 'Может создавать и редактировать собственные приложения',
|
||||
editor: 'Редактор',
|
||||
editorTip: 'Может создавать и редактировать приложения',
|
||||
datasetOperator: 'Администратор знаний',
|
||||
datasetOperatorTip: 'Может управлять только базой знаний',
|
||||
inviteTeamMember: 'Добавить участника команды',
|
||||
inviteTeamMemberTip: 'Они могут получить доступ к данным вашей команды сразу после входа в систему.',
|
||||
emailNotSetup: 'Почтовый сервер не настроен, поэтому приглашения по электронной почте не могут быть отправлены. Пожалуйста, уведомите пользователей о ссылке для приглашения, которая будет выдана после приглашения.',
|
||||
email: 'Электронная почта',
|
||||
emailInvalid: 'Неверный формат электронной почты',
|
||||
emailPlaceholder: 'Пожалуйста, введите адреса электронной почты',
|
||||
sendInvite: 'Отправить приглашение',
|
||||
invitedAsRole: 'Приглашен как пользователь с ролью {{role}}',
|
||||
invitationSent: 'Приглашение отправлено',
|
||||
invitationSentTip: 'Приглашение отправлено, и они могут войти в Dify, чтобы получить доступ к данным вашей команды.',
|
||||
invitationLink: 'Ссылка для приглашения',
|
||||
failedInvitationEmails: 'Следующие пользователи не были успешно приглашены',
|
||||
ok: 'ОК',
|
||||
removeFromTeam: 'Удалить из команды',
|
||||
removeFromTeamTip: 'Удалить доступ к команде',
|
||||
setAdmin: 'Назначить администратором',
|
||||
setMember: 'Назначить обычным участником',
|
||||
setBuilder: 'Назначить разработчиком',
|
||||
setEditor: 'Назначить редактором',
|
||||
disInvite: 'Отменить приглашение',
|
||||
deleteMember: 'Удалить участника',
|
||||
you: '(Вы)',
|
||||
transferModal: {
|
||||
sendVerifyCode: 'Отправить код проверки',
|
||||
transferPlaceholder: 'Выберите участника рабочего пространства…',
|
||||
resendCount: 'Отправьте снова через {{count}}с',
|
||||
resend: 'Переслать',
|
||||
codePlaceholder: 'Вставьте 6-значный код',
|
||||
resendTip: 'Не получили код?',
|
||||
continue: 'Продолжайте',
|
||||
transfer: 'Передать права собственности на рабочую область',
|
||||
warningTip: 'Вы станете администратором, и новый владелец получит полный контроль.',
|
||||
transferLabel: 'Передать право собственности на рабочее пространство на',
|
||||
codeLabel: 'Код подтверждения',
|
||||
verifyContent2: 'Мы отправим временный код для проверки на этот электронный адрес для повторной аутентификации.',
|
||||
verifyEmail: 'Подтвердите ваш текущий адрес электронной почты',
|
||||
verifyContent: 'Ваш текущий адрес электронной почты: <email>{{email}}</email>.',
|
||||
title: 'Передать права собственности на рабочую область',
|
||||
warning: 'Вы собираетесь передать право собственности на «{{workspace}}». Это вступает в силу немедленно и не может быть отменено.',
|
||||
sendTip: 'Если вы продолжите, мы отправим код подтверждения на <email>{{email}}</email> для повторной аутентификации.',
|
||||
},
|
||||
transferOwnership: 'Передать право собственности',
|
||||
},
|
||||
integrations: {
|
||||
connected: 'Подключено',
|
||||
google: 'Google',
|
||||
googleAccount: 'Войти с помощью учетной записи Google',
|
||||
github: 'GitHub',
|
||||
githubAccount: 'Войти с помощью учетной записи GitHub',
|
||||
connect: 'Подключить',
|
||||
},
|
||||
language: {
|
||||
displayLanguage: 'Язык отображения',
|
||||
timezone: 'Часовой пояс',
|
||||
},
|
||||
provider: {
|
||||
apiKey: 'Ключ API',
|
||||
enterYourKey: 'Введите свой ключ API здесь',
|
||||
invalidKey: 'Неверный ключ API OpenAI',
|
||||
validatedError: 'Ошибка валидации: ',
|
||||
validating: 'Проверка ключа...',
|
||||
saveFailed: 'Ошибка сохранения ключа API',
|
||||
apiKeyExceedBill: 'Этот API-ключ не имеет доступной квоты, пожалуйста, прочитайте',
|
||||
addKey: 'Добавить ключ',
|
||||
comingSoon: 'Скоро',
|
||||
editKey: 'Редактировать',
|
||||
invalidApiKey: 'Неверный ключ API',
|
||||
azure: {
|
||||
apiBase: 'Базовый API',
|
||||
apiBasePlaceholder: 'Базовый URL-адрес API вашей конечной точки Azure OpenAI.',
|
||||
apiKey: 'Ключ API',
|
||||
apiKeyPlaceholder: 'Введите свой ключ API здесь',
|
||||
helpTip: 'Узнать о службе Azure OpenAI',
|
||||
},
|
||||
openaiHosted: {
|
||||
openaiHosted: 'Размещенный OpenAI',
|
||||
onTrial: 'ПРОБНАЯ ВЕРСИЯ',
|
||||
exhausted: 'КВОТА ИСЧЕРПАНА',
|
||||
desc: 'Хостинговая служба OpenAI, предоставляемая Dify, позволяет вам использовать такие модели, как GPT-3.5. Прежде чем ваша пробная квота будет исчерпана, вам необходимо настроить других поставщиков моделей.',
|
||||
callTimes: 'Количество вызовов',
|
||||
usedUp: 'Пробная квота исчерпана. Добавьте собственного поставщика модели.',
|
||||
useYourModel: 'В настоящее время используется собственный поставщик модели.',
|
||||
close: 'Закрыть',
|
||||
},
|
||||
anthropicHosted: {
|
||||
anthropicHosted: 'Anthropic Claude',
|
||||
onTrial: 'ПРОБНАЯ ВЕРСИЯ',
|
||||
exhausted: 'КВОТА ИСЧЕРПАНА',
|
||||
desc: 'Мощная модель, которая отлично справляется с широким спектром задач, от сложных диалогов и создания творческого контента до подробных инструкций.',
|
||||
callTimes: 'Количество вызовов',
|
||||
usedUp: 'Пробная квота исчерпана. Добавьте собственного поставщика модели.',
|
||||
useYourModel: 'В настоящее время используется собственный поставщик модели.',
|
||||
close: 'Закрыть',
|
||||
trialQuotaTip: 'Ваша квота на пробную версию Anthropic истечет 11.03.2025 и больше не будет доступна. Пожалуйста, используйте его вовремя.',
|
||||
},
|
||||
anthropic: {
|
||||
using: 'Возможность встраивания использует',
|
||||
enableTip: 'Чтобы включить модель Anthropic, вам необходимо сначала привязаться к OpenAI или Azure OpenAI Service.',
|
||||
notEnabled: 'Не включено',
|
||||
keyFrom: 'Получите свой ключ API от Anthropic',
|
||||
},
|
||||
encrypted: {
|
||||
front: 'Ваш API-ключ будет зашифрован и сохранен с использованием',
|
||||
back: ' технологии.',
|
||||
},
|
||||
},
|
||||
modelProvider: {
|
||||
notConfigured: 'Системная модель еще не полностью настроена, и некоторые функции могут быть недоступны.',
|
||||
systemModelSettings: 'Настройки системной модели',
|
||||
systemModelSettingsLink: 'Зачем нужно настраивать системную модель?',
|
||||
selectModel: 'Выберите свою модель',
|
||||
setupModelFirst: 'Пожалуйста, сначала настройте свою модель',
|
||||
systemReasoningModel: {
|
||||
key: 'Модель системного мышления',
|
||||
tip: 'Установите модель вывода по умолчанию, которая будет использоваться для создания приложений, а также такие функции, как генерация имени диалога и предложение следующего вопроса, также будут использовать модель вывода по умолчанию.',
|
||||
},
|
||||
embeddingModel: {
|
||||
key: 'Модель встраивания',
|
||||
tip: 'Установите модель по умолчанию для обработки встраивания документов знаний, как поиск, так и импорт знаний используют эту модель встраивания для обработки векторизации. Переключение приведет к несоответствию векторного измерения между импортированными знаниями и вопросом, что приведет к сбою поиска. Чтобы избежать сбоя поиска, пожалуйста, не переключайте эту модель по своему усмотрению.',
|
||||
required: 'Модель встраивания обязательна',
|
||||
},
|
||||
speechToTextModel: {
|
||||
key: 'Модель преобразования речи в текст',
|
||||
tip: 'Установите модель по умолчанию для ввода речи в текст в разговоре.',
|
||||
},
|
||||
ttsModel: {
|
||||
key: 'Модель преобразования текста в речь',
|
||||
tip: 'Установите модель по умолчанию для ввода текста в речь в разговоре.',
|
||||
},
|
||||
rerankModel: {
|
||||
key: 'Модель повторного ранжирования',
|
||||
tip: 'Модель повторного ранжирования изменит порядок списка документов-кандидатов на основе семантического соответствия запросу пользователя, улучшая результаты семантического ранжирования',
|
||||
},
|
||||
apiKey: 'API-КЛЮЧ',
|
||||
quota: 'Квота',
|
||||
searchModel: 'Поиск модели',
|
||||
noModelFound: 'Модель не найдена для {{model}}',
|
||||
models: 'Модели',
|
||||
showMoreModelProvider: 'Показать больше поставщиков моделей',
|
||||
selector: {
|
||||
tip: 'Эта модель была удалена. Пожалуйста, добавьте модель или выберите другую модель.',
|
||||
emptyTip: 'Нет доступных моделей',
|
||||
emptySetting: 'Пожалуйста, перейдите в настройки для настройки',
|
||||
rerankTip: 'Пожалуйста, настройте модель повторного ранжирования',
|
||||
},
|
||||
card: {
|
||||
quota: 'КВОТА',
|
||||
onTrial: 'Пробная версия',
|
||||
paid: 'Платный',
|
||||
quotaExhausted: 'Квота исчерпана',
|
||||
callTimes: 'Количество вызовов',
|
||||
tokens: 'Токены',
|
||||
buyQuota: 'Купить квоту',
|
||||
priorityUse: 'Приоритетное использование',
|
||||
removeKey: 'Удалить API-ключ',
|
||||
tip: 'Приоритет будет отдаваться платной квоте. Пробная квота будет использоваться после исчерпания платной квоты.',
|
||||
},
|
||||
item: {
|
||||
deleteDesc: '{{modelName}} используются в качестве моделей системного мышления. Некоторые функции будут недоступны после удаления. Пожалуйста, подтвердите.',
|
||||
freeQuota: 'БЕСПЛАТНАЯ КВОТА',
|
||||
},
|
||||
addApiKey: 'Добавьте свой API-ключ',
|
||||
invalidApiKey: 'Неверный API-ключ',
|
||||
encrypted: {
|
||||
front: 'Ваш API-ключ будет зашифрован и сохранен с использованием',
|
||||
back: ' технологии.',
|
||||
},
|
||||
freeQuota: {
|
||||
howToEarn: 'Как заработать',
|
||||
},
|
||||
addMoreModelProvider: 'ДОБАВИТЬ БОЛЬШЕ ПОСТАВЩИКОВ МОДЕЛЕЙ',
|
||||
addModel: 'Добавить модель',
|
||||
modelsNum: '{{num}} Моделей',
|
||||
showModels: 'Показать модели',
|
||||
showModelsNum: 'Показать {{num}} моделей',
|
||||
collapse: 'Свернуть',
|
||||
config: 'Настройка',
|
||||
modelAndParameters: 'Модель и параметры',
|
||||
model: 'Модель',
|
||||
featureSupported: '{{feature}} поддерживается',
|
||||
callTimes: 'Количество вызовов',
|
||||
credits: 'Кредиты на сообщения',
|
||||
buyQuota: 'Купить квоту',
|
||||
getFreeTokens: 'Получить бесплатные токены',
|
||||
priorityUsing: 'Приоритетное использование',
|
||||
deprecated: 'Устаревший',
|
||||
confirmDelete: 'Подтвердить удаление?',
|
||||
quotaTip: 'Оставшиеся доступные бесплатные токены',
|
||||
loadPresets: 'Загрузить предустановки',
|
||||
parameters: 'ПАРАМЕТРЫ',
|
||||
loadBalancing: 'Балансировка нагрузки',
|
||||
loadBalancingDescription: 'Снизьте нагрузку с помощью нескольких наборов учетных данных.',
|
||||
loadBalancingHeadline: 'Балансировка нагрузки',
|
||||
configLoadBalancing: 'Настроить балансировку нагрузки',
|
||||
modelHasBeenDeprecated: 'Эта модель устарела',
|
||||
providerManaged: 'Управляется поставщиком',
|
||||
providerManagedDescription: 'Используйте один набор учетных данных, предоставленный поставщиком модели.',
|
||||
defaultConfig: 'Настройка по умолчанию',
|
||||
apiKeyStatusNormal: 'Статус APIKey в норме',
|
||||
apiKeyRateLimit: 'Достигнут предел скорости, доступен через {{seconds}}s',
|
||||
addConfig: 'Добавить конфигурацию',
|
||||
editConfig: 'Редактировать конфигурацию',
|
||||
loadBalancingLeastKeyWarning: 'Для включения балансировки нагрузки необходимо включить не менее 2 ключей.',
|
||||
loadBalancingInfo: 'По умолчанию балансировка нагрузки использует стратегию Round-robin. Если срабатывает ограничение скорости, будет применен 1-минутный период охлаждения.',
|
||||
upgradeForLoadBalancing: 'Обновите свой тарифный план, чтобы включить балансировку нагрузки.',
|
||||
emptyProviderTitle: 'Поставщик модели не настроен',
|
||||
toBeConfigured: 'Подлежит настройке',
|
||||
configureTip: 'Настройте api-ключ или добавьте модель для использования',
|
||||
emptyProviderTip: 'Сначала установите поставщик модели.',
|
||||
discoverMore: 'Узнайте больше в',
|
||||
installProvider: 'Установка поставщиков моделей',
|
||||
auth: {
|
||||
apiKeyModal: {
|
||||
addModel: 'Добавить модель',
|
||||
title: 'Конфигурация авторизации ключа API',
|
||||
desc: 'После настройки учетных данных все члены рабочей области могут использовать эту модель при оркестрации приложений.',
|
||||
},
|
||||
authRemoved: 'Удалена аутентификация',
|
||||
addApiKey: 'Добавьте API-ключ',
|
||||
addCredential: 'Добавить учетные данные',
|
||||
apiKeys: 'API ключи',
|
||||
authorizationError: 'Ошибка авторизации',
|
||||
modelCredentials: 'Учетные данные модели',
|
||||
configModel: 'Настройка модели',
|
||||
providerManaged: 'Управляемый провайдером',
|
||||
unAuthorized: 'Неавторизованный',
|
||||
specifyModelCredential: 'Укажите учетные данные модели',
|
||||
addNewModel: 'Добавить новую модель',
|
||||
addModelCredential: 'Добавить учетные данные модели',
|
||||
configLoadBalancing: 'Конфигурация балансировки нагрузки',
|
||||
providerManagedTip: 'Текущая конфигурация размещена у провайдера.',
|
||||
specifyModelCredentialTip: 'Используйте конфигурированные учетные данные модели.',
|
||||
removeModel: 'Удалить модель',
|
||||
addModel: 'Добавить модель',
|
||||
modelCredential: 'Удостоверение модели',
|
||||
editModelCredential: 'Редактирование учетных данных модели',
|
||||
selectModelCredential: 'Выбор учетных данных модели',
|
||||
addNewModelCredential: 'Добавление новых учетных данных модели',
|
||||
customModelCredentials: 'Учетные данные пользовательской модели',
|
||||
manageCredentials: 'Управление учетными данными',
|
||||
customModelCredentialsDeleteTip: 'Учетные данные используются и не могут быть удалены',
|
||||
},
|
||||
parametersInvalidRemoved: 'Некоторые параметры недействительны и были удалены',
|
||||
installDataSourceProvider: 'Установить поставщиков источников данных',
|
||||
},
|
||||
dataSource: {
|
||||
add: 'Добавить источник данных',
|
||||
connect: 'Подключить',
|
||||
configure: 'Настроить',
|
||||
notion: {
|
||||
title: 'Notion',
|
||||
description: 'Использование Notion в качестве источника данных для знаний.',
|
||||
connectedWorkspace: 'Подключенное рабочее пространство',
|
||||
addWorkspace: 'Добавить рабочее пространство',
|
||||
connected: 'Подключено',
|
||||
disconnected: 'Отключено',
|
||||
changeAuthorizedPages: 'Изменить авторизованные страницы',
|
||||
pagesAuthorized: 'Авторизованные страницы',
|
||||
sync: 'Синхронизировать',
|
||||
remove: 'Удалить',
|
||||
selector: {
|
||||
pageSelected: 'Выбранные страницы',
|
||||
searchPages: 'Поиск страниц...',
|
||||
noSearchResult: 'Нет результатов поиска',
|
||||
addPages: 'Добавить страницы',
|
||||
preview: 'ПРЕДПРОСМОТР',
|
||||
},
|
||||
integratedAlert: 'Notion интегрирован через внутренние учетные данные, нет необходимости повторной авторизации.',
|
||||
},
|
||||
website: {
|
||||
title: 'Веб-сайт',
|
||||
description: 'Импортировать контент с веб-сайтов с помощью веб-краулера.',
|
||||
with: 'С',
|
||||
configuredCrawlers: 'Настроенные краулеры',
|
||||
active: 'Активный',
|
||||
inactive: 'Неактивный',
|
||||
},
|
||||
},
|
||||
plugin: {
|
||||
serpapi: {
|
||||
apiKey: 'Ключ API',
|
||||
apiKeyPlaceholder: 'Введите свой ключ API',
|
||||
keyFrom: 'Получите свой ключ SerpAPI на странице учетной записи SerpAPI',
|
||||
},
|
||||
},
|
||||
apiBasedExtension: {
|
||||
title: 'API-расширения обеспечивают централизованное управление API, упрощая настройку для удобного использования в приложениях Dify.',
|
||||
link: 'Узнайте, как разработать собственное API-расширение.',
|
||||
add: 'Добавить API Extension',
|
||||
selector: {
|
||||
title: 'API Extension',
|
||||
placeholder: 'Пожалуйста, выберите API-расширение',
|
||||
manage: 'Управление API-расширением',
|
||||
},
|
||||
modal: {
|
||||
title: 'Добавить API-расширение',
|
||||
editTitle: 'Редактировать API-расширение',
|
||||
name: {
|
||||
title: 'Имя',
|
||||
placeholder: 'Пожалуйста, введите имя',
|
||||
},
|
||||
apiEndpoint: {
|
||||
title: 'API Endpoint',
|
||||
placeholder: 'Пожалуйста, введите конечную точку API',
|
||||
},
|
||||
apiKey: {
|
||||
title: 'API-ключ',
|
||||
placeholder: 'Пожалуйста, введите API-ключ',
|
||||
lengthError: 'Длина API-ключа не может быть меньше 5 символов',
|
||||
},
|
||||
},
|
||||
type: 'Тип',
|
||||
},
|
||||
about: {
|
||||
changeLog: 'Журнал изменений',
|
||||
updateNow: 'Обновить сейчас',
|
||||
nowAvailable: 'Dify {{version}} теперь доступен.',
|
||||
latestAvailable: 'Dify {{version}} - последняя доступная версия.',
|
||||
},
|
||||
appMenus: {
|
||||
overview: 'Мониторинг',
|
||||
promptEng: 'Оркестрация',
|
||||
apiAccess: 'Доступ к API',
|
||||
logAndAnn: 'Журналы и аннотации',
|
||||
logs: 'Журналы',
|
||||
},
|
||||
environment: {
|
||||
testing: 'ТЕСТИРОВАНИЕ',
|
||||
development: 'РАЗРАБОТКА',
|
||||
},
|
||||
appModes: {
|
||||
completionApp: 'Генератор текста',
|
||||
chatApp: 'Чат-приложение',
|
||||
},
|
||||
datasetMenus: {
|
||||
documents: 'Документы',
|
||||
hitTesting: 'Тестирование поиска',
|
||||
settings: 'Настройки',
|
||||
emptyTip: 'Знания не были связаны, пожалуйста, перейдите в приложение или плагин, чтобы завершить связывание.',
|
||||
viewDoc: 'Просмотреть документацию',
|
||||
relatedApp: 'связанные приложения',
|
||||
noRelatedApp: 'Нет связанных приложений',
|
||||
pipeline: 'Трубопровод',
|
||||
},
|
||||
voiceInput: {
|
||||
speaking: 'Говорите сейчас...',
|
||||
converting: 'Преобразование в текст...',
|
||||
notAllow: 'микрофон не авторизован',
|
||||
},
|
||||
modelName: {
|
||||
'gpt-3.5-turbo': 'GPT-3.5-Turbo',
|
||||
'gpt-3.5-turbo-16k': 'GPT-3.5-Turbo-16K',
|
||||
'gpt-4': 'GPT-4',
|
||||
'gpt-4-32k': 'GPT-4-32K',
|
||||
'text-davinci-003': 'Text-Davinci-003',
|
||||
'text-embedding-ada-002': 'Text-Embedding-Ada-002',
|
||||
'whisper-1': 'Whisper-1',
|
||||
'claude-instant-1': 'Claude-Instant',
|
||||
'claude-2': 'Claude-2',
|
||||
},
|
||||
chat: {
|
||||
renameConversation: 'Переименовать разговор',
|
||||
conversationName: 'Название разговора',
|
||||
conversationNamePlaceholder: 'Пожалуйста, введите название разговора',
|
||||
conversationNameCanNotEmpty: 'Название разговора обязательно',
|
||||
citation: {
|
||||
title: 'ЦИТАТЫ',
|
||||
linkToDataset: 'Ссылка на знания',
|
||||
characters: 'Символы:',
|
||||
hitCount: 'Количество совпадений:',
|
||||
vectorHash: 'Векторный хэш:',
|
||||
hitScore: 'Оценка совпадения:',
|
||||
},
|
||||
inputPlaceholder: 'Поговорить с ботом',
|
||||
thinking: 'Мыслящий...',
|
||||
thought: 'Мысль',
|
||||
resend: 'Переслать',
|
||||
},
|
||||
promptEditor: {
|
||||
placeholder: 'Напишите здесь свое ключевое слово подсказки, введите \'{\', чтобы вставить переменную, введите \'/\', чтобы вставить блок содержимого подсказки',
|
||||
context: {
|
||||
item: {
|
||||
title: 'Контекст',
|
||||
desc: 'Вставить шаблон контекста',
|
||||
},
|
||||
modal: {
|
||||
title: '{{num}} знаний в контексте',
|
||||
add: 'Добавить контекст ',
|
||||
footer: 'Вы можете управлять контекстами в разделе «Контекст» ниже.',
|
||||
},
|
||||
},
|
||||
history: {
|
||||
item: {
|
||||
title: 'История разговоров',
|
||||
desc: 'Вставить шаблон исторического сообщения',
|
||||
},
|
||||
modal: {
|
||||
title: 'ПРИМЕР',
|
||||
user: 'Привет',
|
||||
assistant: 'Привет! Как я могу вам помочь сегодня?',
|
||||
edit: 'Редактировать имена ролей разговора',
|
||||
},
|
||||
},
|
||||
variable: {
|
||||
item: {
|
||||
title: 'Переменные и внешние инструменты',
|
||||
desc: 'Вставить переменные и внешние инструменты',
|
||||
},
|
||||
outputToolDisabledItem: {
|
||||
title: 'Переменные',
|
||||
desc: 'Вставить переменные',
|
||||
},
|
||||
modal: {
|
||||
add: 'Новая переменная',
|
||||
addTool: 'Новый инструмент',
|
||||
},
|
||||
},
|
||||
query: {
|
||||
item: {
|
||||
title: 'Запрос',
|
||||
desc: 'Вставить шаблон запроса пользователя',
|
||||
},
|
||||
},
|
||||
existed: 'Уже существует в подсказке',
|
||||
},
|
||||
imageUploader: {
|
||||
uploadFromComputer: 'Загрузить с компьютера',
|
||||
uploadFromComputerReadError: 'Ошибка чтения изображения, повторите попытку.',
|
||||
uploadFromComputerUploadError: 'Ошибка загрузки изображения, загрузите еще раз.',
|
||||
uploadFromComputerLimit: 'Загружаемые изображения не могут превышать {{size}} МБ',
|
||||
pasteImageLink: 'Вставить ссылку на изображение',
|
||||
pasteImageLinkInputPlaceholder: 'Вставьте ссылку на изображение здесь',
|
||||
pasteImageLinkInvalid: 'Неверная ссылка на изображение',
|
||||
imageUpload: 'Загрузка изображения',
|
||||
},
|
||||
tag: {
|
||||
placeholder: 'Все теги',
|
||||
addNew: 'Добавить новый тег',
|
||||
noTag: 'Нет тегов',
|
||||
noTagYet: 'Еще нет тегов',
|
||||
addTag: 'Добавить теги',
|
||||
editTag: 'Редактировать теги',
|
||||
manageTags: 'Управление тегами',
|
||||
selectorPlaceholder: 'Введите для поиска или создания',
|
||||
create: 'Создать',
|
||||
delete: 'Удалить тег',
|
||||
deleteTip: 'Тег используется, удалить его?',
|
||||
created: 'Тег успешно создан',
|
||||
failed: 'Ошибка создания тега',
|
||||
},
|
||||
fileUploader: {
|
||||
pasteFileLinkInputPlaceholder: 'Введите URL...',
|
||||
pasteFileLink: 'Вставить ссылку на файл',
|
||||
uploadFromComputer: 'Локальная загрузка',
|
||||
fileExtensionNotSupport: 'Расширение файла не поддерживается',
|
||||
uploadFromComputerReadError: 'Чтение файла не удалось, пожалуйста, повторите попытку.',
|
||||
pasteFileLinkInvalid: 'Неверная ссылка на файл',
|
||||
uploadFromComputerLimit: 'Файл загрузки не может превышать {{size}}',
|
||||
uploadFromComputerUploadError: 'Загрузка файла не удалась, пожалуйста, загрузите еще раз.',
|
||||
fileExtensionBlocked: 'Этот тип файла заблокирован по соображениям безопасности',
|
||||
},
|
||||
license: {
|
||||
expiring: 'Срок действия истекает за один день',
|
||||
expiring_plural: 'Срок действия истекает через {{count}} дней',
|
||||
unlimited: 'Неограниченный',
|
||||
},
|
||||
pagination: {
|
||||
perPage: 'Элементов на странице',
|
||||
},
|
||||
theme: {
|
||||
light: 'свет',
|
||||
dark: 'темный',
|
||||
theme: 'Тема',
|
||||
auto: 'система',
|
||||
},
|
||||
compliance: {
|
||||
soc2Type2: 'Отчет SOC 2 Тип II',
|
||||
gdpr: 'GDPR DPA',
|
||||
professionalUpgradeTooltip: 'Доступно только с командным планом или выше.',
|
||||
iso27001: 'Сертификация ISO 27001:2022',
|
||||
sandboxUpgradeTooltip: 'Доступно только с профессиональным или командным планом.',
|
||||
soc2Type1: 'Отчет SOC 2 Тип I',
|
||||
},
|
||||
imageInput: {
|
||||
browse: 'просмотр',
|
||||
dropImageHere: 'Перетащите ваше изображение сюда или',
|
||||
supportedFormats: 'Поддерживает PNG, JPG, JPEG, WEBP и GIF',
|
||||
},
|
||||
you: 'Ты',
|
||||
avatar: {
|
||||
deleteTitle: 'Удалить аватар',
|
||||
deleteDescription: 'Вы уверены, что хотите удалить свою фотографию профиля? Ваш аккаунт будет использовать стандартный аватар.',
|
||||
},
|
||||
feedback: {
|
||||
title: 'Оставить отзыв',
|
||||
content: 'Содержимое обратной связи',
|
||||
placeholder: 'Пожалуйста, опишите, что пошло не так или как мы можем улучшиться...',
|
||||
subtitle: 'Пожалуйста, сообщите нам, что пошло не так с этим ответом',
|
||||
},
|
||||
label: {
|
||||
optional: '(необязательно)',
|
||||
},
|
||||
noData: 'Нет данных',
|
||||
dynamicSelect: {
|
||||
error: 'Не удалось загрузить параметры',
|
||||
noData: 'Нет доступных вариантов',
|
||||
loading: 'Загрузка параметров...',
|
||||
selected: '{{count}} выбрано',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
32
dify/web/i18n/ru-RU/custom.ts
Normal file
32
dify/web/i18n/ru-RU/custom.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
const translation = {
|
||||
custom: 'Настройка',
|
||||
upgradeTip: {
|
||||
prefix: 'Обновите свой тарифный план, чтобы',
|
||||
suffix: 'настроить свой бренд.',
|
||||
des: 'Обновите свой план, чтобы настроить свой бренд',
|
||||
title: 'Обновите свой план',
|
||||
},
|
||||
webapp: {
|
||||
title: 'Настроить бренд веб-приложения',
|
||||
removeBrand: 'Удалить Powered by Dify',
|
||||
changeLogo: 'Изменить изображение бренда Powered by',
|
||||
changeLogoTip: 'Формат SVG или PNG с минимальным размером 40x40px',
|
||||
},
|
||||
app: {
|
||||
title: 'Настроить бренд заголовка приложения',
|
||||
changeLogoTip: 'Формат SVG или PNG с минимальным размером 80x80px',
|
||||
},
|
||||
upload: 'Загрузить',
|
||||
uploading: 'Загрузка',
|
||||
uploadedFail: 'Ошибка загрузки изображения, пожалуйста изображение, загрузите еще раз.',
|
||||
change: 'Изменить',
|
||||
apply: 'Применить',
|
||||
restore: 'Восстановить значения по умолчанию',
|
||||
customize: {
|
||||
contactUs: ' свяжитесь с нами ',
|
||||
prefix: 'Чтобы настроить логотип бренда в приложении, пожалуйста,',
|
||||
suffix: 'чтобы перейти на корпоративную версию.',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
217
dify/web/i18n/ru-RU/dataset-creation.ts
Normal file
217
dify/web/i18n/ru-RU/dataset-creation.ts
Normal file
@@ -0,0 +1,217 @@
|
||||
const translation = {
|
||||
steps: {
|
||||
header: {
|
||||
fallbackRoute: 'Знание',
|
||||
},
|
||||
one: 'Выберите источник данных',
|
||||
two: 'Предварительная обработка и очистка текста',
|
||||
three: 'Выполнить и завершить',
|
||||
},
|
||||
error: {
|
||||
unavailable: 'Эта база знаний недоступна',
|
||||
},
|
||||
firecrawl: {
|
||||
configFirecrawl: 'Настроить 🔥Firecrawl',
|
||||
apiKeyPlaceholder: 'Ключ API с firecrawl.dev',
|
||||
getApiKeyLinkText: 'Получите свой ключ API с firecrawl.dev',
|
||||
},
|
||||
stepOne: {
|
||||
filePreview: 'Предварительный просмотр файла',
|
||||
pagePreview: 'Предварительный просмотр страницы',
|
||||
dataSourceType: {
|
||||
file: 'Импортировать из файла',
|
||||
notion: 'Синхронизировать из Notion',
|
||||
web: 'Синхронизировать с веб-сайта',
|
||||
},
|
||||
uploader: {
|
||||
title: 'Загрузить файл',
|
||||
button: 'Перетащите файлы или папки или',
|
||||
buttonSingleFile: 'Перетащите файл или',
|
||||
browse: 'Обзор',
|
||||
tip: 'Поддерживаются {{supportTypes}}. Максимум {{size}} МБ каждый.',
|
||||
validation: {
|
||||
typeError: 'Тип файла не поддерживается',
|
||||
size: 'Файл слишком большой. Максимум {{size}} МБ',
|
||||
count: 'Несколько файлов не поддерживаются',
|
||||
filesNumber: 'Вы достигли лимита пакетной загрузки {{filesNumber}} файлов.',
|
||||
},
|
||||
cancel: 'Отмена',
|
||||
change: 'Изменить',
|
||||
failed: 'Ошибка загрузки',
|
||||
},
|
||||
notionSyncTitle: 'Notion не подключен',
|
||||
notionSyncTip: 'Чтобы синхронизировать данные из Notion, сначала необходимо установить соединение с Notion.',
|
||||
connect: 'Перейти к подключению',
|
||||
button: 'Далее',
|
||||
emptyDatasetCreation: 'Я хочу создать пустую базу знаний',
|
||||
modal: {
|
||||
title: 'Создать пустую базу знаний',
|
||||
tip: 'Пустая база знаний не будет содержать документов, и вы можете загружать документы в любое время.',
|
||||
input: 'Название базы знаний',
|
||||
placeholder: 'Пожалуйста, введите',
|
||||
nameNotEmpty: 'Название не может быть пустым',
|
||||
nameLengthInvalid: 'Название должно быть от 1 до 40 символов',
|
||||
cancelButton: 'Отмена',
|
||||
confirmButton: 'Создать',
|
||||
failed: 'Ошибка создания',
|
||||
},
|
||||
website: {
|
||||
fireCrawlNotConfigured: 'Firecrawl не настроен',
|
||||
fireCrawlNotConfiguredDescription: 'Настройте Firecrawl с API-ключом.',
|
||||
configure: 'Настроить',
|
||||
run: 'Запустить',
|
||||
firecrawlTitle: 'Извлечь веб-контент с помощью 🔥Firecrawl',
|
||||
firecrawlDoc: 'Документация Firecrawl',
|
||||
options: 'Опции',
|
||||
crawlSubPage: 'Сканировать подстраницы',
|
||||
limit: 'Лимит',
|
||||
maxDepth: 'Максимальная глубина',
|
||||
excludePaths: 'Исключить пути',
|
||||
includeOnlyPaths: 'Включить только пути',
|
||||
extractOnlyMainContent: 'Извлекать только основной контент (без заголовков, навигации, футеров и т. д.)',
|
||||
exceptionErrorTitle: 'Произошло исключение при запуске задания Firecrawl:',
|
||||
unknownError: 'Неизвестная ошибка',
|
||||
totalPageScraped: 'Всего просканировано страниц:',
|
||||
selectAll: 'Выбрать все',
|
||||
resetAll: 'Сбросить все',
|
||||
scrapTimeInfo: 'Всего просканировано {{total}} страниц за {{time}} секунд',
|
||||
preview: 'Предварительный просмотр',
|
||||
maxDepthTooltip: 'Максимальная глубина сканирования относительно введенного URL. Глубина 0 сканирует только страницу введенного URL, глубина 1 сканирует URL и все, что находится после введенного URL + один /, и так далее.',
|
||||
jinaReaderNotConfiguredDescription: 'Настройте Jina Reader, введя свой бесплатный ключ API для доступа.',
|
||||
jinaReaderDocLink: 'https://jina.ai/reader',
|
||||
useSitemap: 'Использовать карту сайта',
|
||||
chooseProvider: 'Выберите провайдера',
|
||||
jinaReaderNotConfigured: 'Jina Reader не настроен',
|
||||
jinaReaderDoc: 'Узнайте больше о Jina Reader',
|
||||
jinaReaderTitle: 'Конвертируйте весь сайт в Markdown',
|
||||
useSitemapTooltip: 'Следуйте карте сайта, чтобы просканировать сайт. Если нет, Jina Reader будет сканировать итеративно в зависимости от релевантности страницы, выдавая меньшее количество страниц, но более высокого качества.',
|
||||
watercrawlTitle: 'Извлечение веб-контента с помощью Watercrawl',
|
||||
configureWatercrawl: 'Настроить Watercrawl',
|
||||
waterCrawlNotConfigured: 'Watercrawl не настроен',
|
||||
configureFirecrawl: 'Настроить Firecrawl',
|
||||
waterCrawlNotConfiguredDescription: 'Настройте Watercrawl с помощью ключа API для его использования.',
|
||||
configureJinaReader: 'Настройте Jina Reader',
|
||||
watercrawlDoc: 'Документация Watercrawl',
|
||||
running: 'Бег',
|
||||
},
|
||||
cancel: 'Отмена',
|
||||
},
|
||||
stepTwo: {
|
||||
segmentation: 'Настройки фрагментации',
|
||||
auto: 'Автоматически',
|
||||
autoDescription: 'Автоматически устанавливать правила фрагментации и предварительной обработки. Пользователям, не знакомым с системой, рекомендуется выбрать этот вариант.',
|
||||
custom: 'Пользовательский',
|
||||
customDescription: 'Настроить правила фрагментации, длину фрагментов, правила предварительной обработки и т. д.',
|
||||
separator: 'Идентификатор сегмента',
|
||||
separatorPlaceholder: 'Например, новая строка (\\\\n) или специальный разделитель (например, "***")',
|
||||
maxLength: 'Максимальная длина фрагмента',
|
||||
overlap: 'Перекрытие фрагментов',
|
||||
overlapTip: 'Установка перекрытия фрагментов может сохранить семантическую связь между ними, улучшая эффект поиска. Рекомендуется установить 10%-25% от максимального размера фрагмента.',
|
||||
overlapCheck: 'перекрытие фрагментов не должно превышать максимальную длину фрагмента',
|
||||
rules: 'Правила предварительной обработки текста',
|
||||
removeExtraSpaces: 'Заменить последовательные пробелы, новые строки и табуляции',
|
||||
removeUrlEmails: 'Удалить все URL-адреса и адреса электронной почты',
|
||||
removeStopwords: 'Удалить стоп-слова, такие как "a", "an", "the"',
|
||||
preview: 'Подтвердить и просмотреть',
|
||||
reset: 'Сбросить',
|
||||
indexMode: 'Режим индексации',
|
||||
qualified: 'Высокое качество',
|
||||
recommend: 'Рекомендуется',
|
||||
qualifiedTip: 'Вызов интерфейса встраивания системы по умолчанию для обработки, чтобы обеспечить более высокую точность при запросах пользователей.',
|
||||
warning: 'Пожалуйста, сначала настройте ключ API поставщика модели.',
|
||||
click: 'Перейти к настройкам',
|
||||
economical: 'Экономичный',
|
||||
economicalTip: 'Используйте автономные векторные движки, индексы ключевых слов и т. д., чтобы снизить точность, не тратя токены',
|
||||
QATitle: 'Сегментация в формате вопрос-ответ',
|
||||
QATip: 'Включение этой опции приведет к потреблению большего количества токенов',
|
||||
QALanguage: 'Сегментировать с помощью',
|
||||
estimateCost: 'Оценка',
|
||||
estimateSegment: 'Оценочное количество фрагментов',
|
||||
segmentCount: 'фрагментов',
|
||||
calculating: 'Вычисление...',
|
||||
fileSource: 'Предварительная обработка документов',
|
||||
notionSource: 'Предварительная обработка страниц',
|
||||
websiteSource: 'Предварительная обработка веб-сайта',
|
||||
other: 'и другие ',
|
||||
fileUnit: ' файлов',
|
||||
notionUnit: ' страниц',
|
||||
webpageUnit: ' страниц',
|
||||
previousStep: 'Предыдущий шаг',
|
||||
nextStep: 'Сохранить и обработать',
|
||||
save: 'Сохранить и обработать',
|
||||
cancel: 'Отмена',
|
||||
sideTipTitle: 'Зачем нужна фрагментация и предварительная обработка?',
|
||||
sideTipP1: 'При обработке текстовых данных фрагментация и очистка являются двумя важными этапами предварительной обработки.',
|
||||
sideTipP2: 'Сегментация разбивает длинный текст на абзацы, чтобы модели могли лучше его понимать. Это улучшает качество и релевантность результатов модели.',
|
||||
sideTipP3: 'Очистка удаляет ненужные символы и форматы, делая знания более чистыми и легкими для анализа.',
|
||||
sideTipP4: 'Правильная фрагментация и очистка улучшают производительность модели, обеспечивая более точные и ценные результаты.',
|
||||
previewTitle: 'Предварительный просмотр',
|
||||
previewTitleButton: 'Предварительный просмотр',
|
||||
previewButton: 'Переключение в формат вопрос-ответ',
|
||||
previewSwitchTipStart: 'Текущий предварительный просмотр фрагмента находится в текстовом формате, переключение на предварительный просмотр в формате вопрос-ответ',
|
||||
previewSwitchTipEnd: ' потребляет дополнительные токены',
|
||||
characters: 'символов',
|
||||
indexSettingTip: 'Чтобы изменить метод индексации, пожалуйста, перейдите в ',
|
||||
retrievalSettingTip: 'Чтобы изменить метод индексации, пожалуйста, перейдите в ',
|
||||
datasetSettingLink: 'настройки базы знаний.',
|
||||
separatorTip: 'Разделитель — это символ, используемый для разделения текста. \\n\\n и \\n — это часто используемые разделители для разделения абзацев и строк. В сочетании с запятыми (\\n\\n,\\n) абзацы будут сегментированы по строкам, если максимальная длина блока превышает их. Вы также можете использовать специальные разделители, определенные вами (например, ***).',
|
||||
maxLengthCheck: 'Максимальная длина блока должна быть меньше {{limit}}',
|
||||
switch: 'Выключатель',
|
||||
parentChunkForContext: 'Родительский блок для контекста',
|
||||
previewChunkTip: 'Нажмите кнопку «Предварительный просмотр фрагмента» слева, чтобы загрузить предварительный просмотр',
|
||||
notAvailableForParentChild: 'Недоступно для индекса типа "родитель-потомок"',
|
||||
parentChildChunkDelimiterTip: 'Разделитель — это символ, используемый для разделения текста. \\n рекомендуется для разбиения родительских блоков на небольшие дочерние блоки. Вы также можете использовать специальные разделители, определенные самостоятельно.',
|
||||
previewChunk: 'Предварительный просмотр фрагмента',
|
||||
previewChunkCount: '{{Количество}} Предполагаемые куски',
|
||||
generalTip: 'Общий режим фрагментации текста, извлекаемые и вызываемые фрагменты одинаковы.',
|
||||
general: 'Общее',
|
||||
useQALanguage: 'Фрагмент с использованием формата Q&A в',
|
||||
notAvailableForQA: 'Недоступно для индекса Q&A',
|
||||
paragraph: 'Параграф',
|
||||
parentChild: 'Родитель-дочерний',
|
||||
fullDoc: 'Полный документальный фильм',
|
||||
qaSwitchHighQualityTipTitle: 'Формат вопросов и ответов требует высококачественного метода индексации',
|
||||
parentChildDelimiterTip: 'Разделитель — это символ, используемый для разделения текста. \\n\\n рекомендуется для разделения исходного документа на большие родительские части. Вы также можете использовать специальные разделители, определенные самостоятельно.',
|
||||
parentChildTip: 'При использовании режима «родитель-потомок» дочерний блок используется для извлечения, а родительский блок — для вызова в качестве контекста.',
|
||||
paragraphTip: 'В этом режиме текст разбивается на абзацы на основе разделителей и максимальной длины блока, используя разделенный текст в качестве родительского блока для извлечения.',
|
||||
highQualityTip: 'После завершения встраивания в режиме «Высокое качество» возврат к экономичному режиму невозможен.',
|
||||
childChunkForRetrieval: 'Детский фрагмент для извлечения',
|
||||
qaSwitchHighQualityTipContent: 'В настоящее время только высококачественный метод индекса поддерживает фрагментацию формата Q&A. Хотели бы вы перейти в режим высокого качества?',
|
||||
fullDocTip: 'Весь документ используется в качестве родительского блока и извлекается напрямую. Обратите внимание, что по причинам производительности текст, превышающий 10000 токенов, будет автоматически обрезан.',
|
||||
qaTip: 'При использовании структурированных данных вопросов и ответов можно создавать документы, в которых вопросы сочетаются с ответами. Эти документы индексируются на основе части вопроса, что позволяет системе получать релевантные ответы на основе сходства запросов.',
|
||||
},
|
||||
stepThree: {
|
||||
creationTitle: '🎉 База знаний создана',
|
||||
creationContent: 'Мы автоматически назвали базу знаний, вы можете изменить ее в любое время',
|
||||
label: 'Название базы знаний',
|
||||
additionTitle: '🎉 Документ загружен',
|
||||
additionP1: 'Документ был загружен в базу знаний',
|
||||
additionP2: ', вы можете найти его в списке документов базы знаний.',
|
||||
stop: 'Остановить обработку',
|
||||
resume: 'Возобновить обработку',
|
||||
navTo: 'Перейти к документу',
|
||||
sideTipTitle: 'Что дальше',
|
||||
sideTipContent: 'После завершения индексации документа база знаний может быть интегрирована в приложение в качестве контекста, вы можете найти настройку контекста на странице prompt orchestration. Вы также можете создать-workflow приложение как отдельный как независимый плагин.',
|
||||
modelTitle: 'Вы уверены, что хотите остановить встраивание?',
|
||||
modelContent: 'Если вам нужно будет возобновить обработку позже, вы продолжите с того места, где остановились.',
|
||||
modelButtonConfirm: 'Подтвердить',
|
||||
modelButtonCancel: 'Отмена',
|
||||
},
|
||||
jinaReader: {
|
||||
getApiKeyLinkText: 'Получите бесплатный ключ API в jina.ai',
|
||||
configJinaReader: 'Настройка Jina Reader',
|
||||
apiKeyPlaceholder: 'Ключ API от jina.ai',
|
||||
},
|
||||
otherDataSource: {
|
||||
learnMore: 'Подробнее',
|
||||
title: 'Подключаться к другим источникам данных?',
|
||||
description: 'В настоящее время база знаний Dify имеет лишь ограниченные источники данных. Добавление источника данных в базу знаний Dify — это отличный способ повысить гибкость и возможности платформы для всех пользователей. Наше руководство по вкладу поможет вам легко начать работу. Пожалуйста, нажмите на ссылку ниже, чтобы узнать больше.',
|
||||
},
|
||||
watercrawl: {
|
||||
getApiKeyLinkText: 'Получите свой API-ключ с watercrawl.dev',
|
||||
configWatercrawl: 'Настроить Watercrawl',
|
||||
apiKeyPlaceholder: 'API ключ с watercrawl.dev',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
407
dify/web/i18n/ru-RU/dataset-documents.ts
Normal file
407
dify/web/i18n/ru-RU/dataset-documents.ts
Normal file
@@ -0,0 +1,407 @@
|
||||
const translation = {
|
||||
list: {
|
||||
title: 'Документы',
|
||||
desc: 'Здесь отображаются все файлы базы знаний, и вся база знаний может быть связана с цитатами Dify или проиндексирована с помощью чата.',
|
||||
addFile: 'Добавить файл',
|
||||
addPages: 'Добавить страницы',
|
||||
addUrl: 'Добавить URL',
|
||||
table: {
|
||||
header: {
|
||||
fileName: 'НАЗВАНИЕ ФАЙЛА',
|
||||
words: 'СЛОВА',
|
||||
hitCount: 'КОЛИЧЕСТВО ОБРАЩЕНИЙ',
|
||||
uploadTime: 'ВРЕМЯ ЗАГРУЗКИ',
|
||||
status: 'СТАТУС',
|
||||
action: 'ДЕЙСТВИЕ',
|
||||
chunkingMode: 'РЕЖИМ ДРОБЛЕНИЯ',
|
||||
},
|
||||
rename: 'Переименовать',
|
||||
name: 'Название',
|
||||
},
|
||||
action: {
|
||||
uploadFile: 'Загрузить новый файл',
|
||||
settings: 'Настройки сегментации',
|
||||
addButton: 'Добавить фрагмент',
|
||||
add: 'Добавить фрагмент',
|
||||
batchAdd: 'Пакетное добавление',
|
||||
archive: 'Архивировать',
|
||||
unarchive: 'Разархивировать',
|
||||
delete: 'Удалить',
|
||||
enableWarning: 'Архивный файл не может быть включен',
|
||||
sync: 'Синхронизировать',
|
||||
resume: 'Возобновить',
|
||||
pause: 'Пауза',
|
||||
},
|
||||
index: {
|
||||
enable: 'Включить',
|
||||
disable: 'Отключить',
|
||||
all: 'Все',
|
||||
enableTip: 'Файл может быть проиндексирован',
|
||||
disableTip: 'Файл не может быть проиндексирован',
|
||||
},
|
||||
status: {
|
||||
queuing: 'В очереди',
|
||||
indexing: 'Индексация',
|
||||
paused: 'Приостановлено',
|
||||
error: 'Ошибка',
|
||||
available: 'Доступно',
|
||||
enabled: 'Включено',
|
||||
disabled: 'Отключено',
|
||||
archived: 'Архивировано',
|
||||
},
|
||||
empty: {
|
||||
title: 'Пока нет документов',
|
||||
upload: {
|
||||
tip: 'Вы можете загружать файлы, синхронизировать с веб-сайта или из веб-приложений, таких как Notion, GitHub и т. д.',
|
||||
},
|
||||
sync: {
|
||||
tip: 'Dify будет периодически загружать файлы из вашего Notion и завершать обработку.',
|
||||
},
|
||||
},
|
||||
delete: {
|
||||
title: 'Вы уверены, что хотите удалить?',
|
||||
content: 'Если вам нужно будет возобновить обработку позже, вы продолжите с того места, где остановились',
|
||||
},
|
||||
batchModal: {
|
||||
title: 'Пакетное добавление фрагментов',
|
||||
csvUploadTitle: 'Перетащите сюда свой CSV-файл или ',
|
||||
browse: 'обзор',
|
||||
tip: 'CSV-файл должен соответствовать следующей структуре:',
|
||||
question: 'вопрос',
|
||||
answer: 'ответ',
|
||||
contentTitle: 'содержимое фрагмента',
|
||||
content: 'содержимое',
|
||||
template: 'Скачать шаблон здесь',
|
||||
cancel: 'Отмена',
|
||||
run: 'Запустить пакет',
|
||||
runError: 'Ошибка запуска пакета',
|
||||
processing: 'В процессе пакетной обработки',
|
||||
completed: 'Импорт завершен',
|
||||
error: 'Ошибка импорта',
|
||||
ok: 'ОК',
|
||||
},
|
||||
learnMore: 'Подробнее',
|
||||
sort: {
|
||||
uploadTime: 'Время загрузки',
|
||||
hitCount: 'Количество извлечений',
|
||||
},
|
||||
},
|
||||
metadata: {
|
||||
title: 'Метаданные',
|
||||
desc: 'Маркировка метаданных для документов позволяет ИИ своевременно получать к ним доступ и раскрывать источник ссылок для пользователей.',
|
||||
dateTimeFormat: 'D MMMM YYYY, HH:mm',
|
||||
docTypeSelectTitle: 'Пожалуйста, выберите тип документа',
|
||||
docTypeChangeTitle: 'Изменить тип документа',
|
||||
docTypeSelectWarning:
|
||||
'Если тип документа будет изменен, заполненные сейчас метаданные больше не будут сохранены',
|
||||
firstMetaAction: 'Поехали',
|
||||
placeholder: {
|
||||
add: 'Добавить ',
|
||||
select: 'Выбрать ',
|
||||
},
|
||||
source: {
|
||||
upload_file: 'Загрузить файл',
|
||||
notion: 'Синхронизировать из Notion',
|
||||
github: 'Синхронизировать из Github',
|
||||
local_file: 'Локальный файл',
|
||||
online_document: 'Онлайн-документ',
|
||||
website_crawl: 'Сканирование сайта',
|
||||
},
|
||||
type: {
|
||||
book: 'Книга',
|
||||
webPage: 'Веб-страница',
|
||||
paper: 'Статья',
|
||||
socialMediaPost: 'Пост в социальных сетях',
|
||||
personalDocument: 'Личный документ',
|
||||
businessDocument: 'Деловой документ',
|
||||
IMChat: 'Чат в мессенджере',
|
||||
wikipediaEntry: 'Статья в Википедии',
|
||||
notion: 'Синхронизировать из Notion',
|
||||
github: 'Синхронизировать из Github',
|
||||
technicalParameters: 'Технические параметры',
|
||||
},
|
||||
field: {
|
||||
processRule: {
|
||||
processDoc: 'Обработка документа',
|
||||
segmentRule: 'Правило фрагментации',
|
||||
segmentLength: 'Длина фрагментов',
|
||||
processClean: 'Очистка текста',
|
||||
},
|
||||
book: {
|
||||
title: 'Название',
|
||||
language: 'Язык',
|
||||
author: 'Автор',
|
||||
publisher: 'Издатель',
|
||||
publicationDate: 'Дата публикации',
|
||||
ISBN: 'ISBN',
|
||||
category: 'Категория',
|
||||
},
|
||||
webPage: {
|
||||
title: 'Название',
|
||||
url: 'URL',
|
||||
language: 'Язык',
|
||||
authorPublisher: 'Автор/Издатель',
|
||||
publishDate: 'Дата публикации',
|
||||
topicKeywords: 'Темы/Ключевые слова',
|
||||
description: 'Описание',
|
||||
},
|
||||
paper: {
|
||||
title: 'Название',
|
||||
language: 'Язык',
|
||||
author: 'Автор',
|
||||
publishDate: 'Дата публикации',
|
||||
journalConferenceName: 'Название журнала/конференции',
|
||||
volumeIssuePage: 'Том/Выпуск/Страница',
|
||||
DOI: 'DOI',
|
||||
topicsKeywords: 'Темы/Ключевые слова',
|
||||
abstract: 'Аннотация',
|
||||
},
|
||||
socialMediaPost: {
|
||||
platform: 'Платформа',
|
||||
authorUsername: 'Автор/Имя пользователя',
|
||||
publishDate: 'Дата публикации',
|
||||
postURL: 'URL поста',
|
||||
topicsTags: 'Темы/Теги',
|
||||
},
|
||||
personalDocument: {
|
||||
title: 'Название',
|
||||
author: 'Автор',
|
||||
creationDate: 'Дата создания',
|
||||
lastModifiedDate: 'Дата последнего изменения',
|
||||
documentType: 'Тип документа',
|
||||
tagsCategory: 'Теги/Категория',
|
||||
},
|
||||
businessDocument: {
|
||||
title: 'Название',
|
||||
author: 'Автор',
|
||||
creationDate: 'Дата создания',
|
||||
lastModifiedDate: 'Дата последнего изменения',
|
||||
documentType: 'Тип документа',
|
||||
departmentTeam: 'Отдел/Команда',
|
||||
},
|
||||
IMChat: {
|
||||
chatPlatform: 'Платформа чата',
|
||||
chatPartiesGroupName: 'Участники чата/Название группы',
|
||||
participants: 'Участники',
|
||||
startDate: 'Дата начала',
|
||||
endDate: 'Дата окончания',
|
||||
topicsKeywords: 'Темы/Ключевые слова',
|
||||
fileType: 'Тип файла',
|
||||
},
|
||||
wikipediaEntry: {
|
||||
title: 'Название',
|
||||
language: 'Язык',
|
||||
webpageURL: 'URL веб-страницы',
|
||||
editorContributor: 'Редактор/Автор',
|
||||
lastEditDate: 'Дата последнего редактирования',
|
||||
summaryIntroduction: 'Краткое содержание/Введение',
|
||||
},
|
||||
notion: {
|
||||
title: 'Название',
|
||||
language: 'Язык',
|
||||
author: 'Автор',
|
||||
createdTime: 'Время создания',
|
||||
lastModifiedTime: 'Время последнего изменения',
|
||||
url: 'URL',
|
||||
tag: 'Тег',
|
||||
description: 'Описание',
|
||||
},
|
||||
github: {
|
||||
repoName: 'Название репозитория',
|
||||
repoDesc: 'Описание репозитория',
|
||||
repoOwner: 'Владелец репозитория',
|
||||
fileName: 'Название файла',
|
||||
filePath: 'Путь к файлу',
|
||||
programmingLang: 'Язык программирования',
|
||||
url: 'URL',
|
||||
license: 'Лицензия',
|
||||
lastCommitTime: 'Время последнего коммита',
|
||||
lastCommitAuthor: 'Автор последнего коммита',
|
||||
},
|
||||
originInfo: {
|
||||
originalFilename: 'Исходное имя файла',
|
||||
originalFileSize: 'Исходный размер файла',
|
||||
uploadDate: 'Дата загрузки',
|
||||
lastUpdateDate: 'Дата последнего обновления',
|
||||
source: 'Источник',
|
||||
},
|
||||
technicalParameters: {
|
||||
segmentSpecification: 'Спецификация фрагментов',
|
||||
segmentLength: 'Длина фрагментов',
|
||||
avgParagraphLength: 'Средняя длина абзаца',
|
||||
paragraphs: 'Абзацы',
|
||||
hitCount: 'Количество обращений',
|
||||
embeddingTime: 'Время встраивания',
|
||||
embeddedSpend: 'Потрачено на встраивание',
|
||||
},
|
||||
},
|
||||
languageMap: {
|
||||
zh: 'Китайский',
|
||||
en: 'Английский',
|
||||
es: 'Испанский',
|
||||
fr: 'Французский',
|
||||
de: 'Немецкий',
|
||||
ja: 'Японский',
|
||||
ko: 'Корейский',
|
||||
ru: 'Русский',
|
||||
ar: 'Арабский',
|
||||
pt: 'Португальский',
|
||||
it: 'Итальянский',
|
||||
nl: 'Голландский',
|
||||
pl: 'Польский',
|
||||
sv: 'Шведский',
|
||||
tr: 'Турецкий',
|
||||
he: 'Иврит',
|
||||
hi: 'Хинди',
|
||||
da: 'Датский',
|
||||
fi: 'Финский',
|
||||
no: 'Норвежский',
|
||||
hu: 'Венгерский',
|
||||
el: 'Греческий',
|
||||
cs: 'Чешский',
|
||||
th: 'Тайский',
|
||||
id: 'Индонезийский',
|
||||
},
|
||||
categoryMap: {
|
||||
book: {
|
||||
fiction: 'Художественная литература',
|
||||
biography: 'Биография',
|
||||
history: 'История',
|
||||
science: 'Наука',
|
||||
technology: 'Технологии',
|
||||
education: 'Образование',
|
||||
philosophy: 'Философия',
|
||||
religion: 'Религия',
|
||||
socialSciences: 'Социальные науки',
|
||||
art: 'Искусство',
|
||||
travel: 'Путешествия',
|
||||
health: 'Здоровье',
|
||||
selfHelp: 'Самопомощь',
|
||||
businessEconomics: 'Бизнес/Экономика',
|
||||
cooking: 'Кулинария',
|
||||
childrenYoungAdults: 'Детская/Подростковая литература',
|
||||
comicsGraphicNovels: 'Комиксы/Графические романы',
|
||||
poetry: 'Поэзия',
|
||||
drama: 'Драматургия',
|
||||
other: 'Другое',
|
||||
},
|
||||
personalDoc: {
|
||||
notes: 'Заметки',
|
||||
blogDraft: 'Черновик блога',
|
||||
diary: 'Дневник',
|
||||
researchReport: 'Научный отчет',
|
||||
bookExcerpt: 'Отрывок из книги',
|
||||
schedule: 'Расписание',
|
||||
list: 'Список',
|
||||
projectOverview: 'Обзор проекта',
|
||||
photoCollection: 'Коллекция фотографий',
|
||||
creativeWriting: 'Творческое письмо',
|
||||
codeSnippet: 'Фрагмент кода',
|
||||
designDraft: 'Черновик дизайна',
|
||||
personalResume: 'Личное резюме',
|
||||
other: 'Другое',
|
||||
},
|
||||
businessDoc: {
|
||||
meetingMinutes: 'Протокол собрания',
|
||||
researchReport: 'Научный отчет',
|
||||
proposal: 'Предложение',
|
||||
employeeHandbook: 'Справочник сотрудника',
|
||||
trainingMaterials: 'Учебные материалы',
|
||||
requirementsDocument: 'Документ с требованиями',
|
||||
designDocument: 'Проектный документ',
|
||||
productSpecification: 'Спецификация продукта',
|
||||
financialReport: 'Финансовый отчет',
|
||||
marketAnalysis: 'Анализ рынка',
|
||||
projectPlan: 'План проекта',
|
||||
teamStructure: 'Структура команды',
|
||||
policiesProcedures: 'Политики и процедуры',
|
||||
contractsAgreements: 'Договоры и соглашения',
|
||||
emailCorrespondence: 'Переписка по электронной почте',
|
||||
other: 'Другое',
|
||||
},
|
||||
},
|
||||
},
|
||||
embedding: {
|
||||
processing: 'Расчет эмбеддингов...',
|
||||
paused: 'Расчет эмбеддингов приостановлен',
|
||||
completed: 'Встраивание завершено',
|
||||
error: 'Ошибка расчета эмбеддингов',
|
||||
docName: 'Предварительная обработка документа',
|
||||
mode: 'Правило сегментации',
|
||||
segmentLength: 'Длина фрагментов',
|
||||
textCleaning: 'Предварительная очистка текста',
|
||||
segments: 'Абзацы',
|
||||
highQuality: 'Режим высокого качества',
|
||||
economy: 'Экономичный режим',
|
||||
estimate: 'Оценочное потребление',
|
||||
stop: 'Остановить обработку',
|
||||
resume: 'Возобновить обработку',
|
||||
automatic: 'Автоматически',
|
||||
custom: 'Пользовательский',
|
||||
previewTip: 'Предварительный просмотр абзацев будет доступен после завершения расчета эмбеддингов',
|
||||
parentMaxTokens: 'Родитель',
|
||||
childMaxTokens: 'Ребёнок',
|
||||
hierarchical: 'Родитель-дочерний',
|
||||
pause: 'Пауза',
|
||||
waiting: 'Ожидание встраивания...',
|
||||
},
|
||||
segment: {
|
||||
paragraphs: 'Абзацы',
|
||||
keywords: 'Ключевые слова',
|
||||
addKeyWord: 'Добавить ключевое слово',
|
||||
keywordError: 'Максимальная длина ключевого слова - 20',
|
||||
hitCount: 'Количество обращений',
|
||||
vectorHash: 'Векторный хэш: ',
|
||||
questionPlaceholder: 'добавьте вопрос здесь',
|
||||
questionEmpty: 'Вопрос не может быть пустым',
|
||||
answerPlaceholder: 'добавьте ответ здесь',
|
||||
answerEmpty: 'Ответ не может быть пустым',
|
||||
contentPlaceholder: 'добавьте содержимое здесь',
|
||||
contentEmpty: 'Содержимое не может быть пустым',
|
||||
newTextSegment: 'Новый текстовый сегмент',
|
||||
newQaSegment: 'Новый сегмент вопрос-ответ',
|
||||
delete: 'Удалить этот фрагмент?',
|
||||
chunks_other: 'КУСКИ',
|
||||
searchResults_one: 'РЕЗУЛЬТАТ',
|
||||
parentChunk: 'Родительский блок',
|
||||
characters_other: 'письмена',
|
||||
edited: 'ОТРЕДАКТИРОВАНЫ',
|
||||
regenerationSuccessMessage: 'Вы можете закрыть это окно.',
|
||||
searchResults_other: 'РЕЗУЛЬТАТЫ',
|
||||
regeneratingTitle: 'Регенерация дочерних блоков',
|
||||
parentChunks_one: 'РОДИТЕЛЬСКИЙ БЛОК',
|
||||
childChunk: 'Чайлд-Чанк',
|
||||
editedAt: 'Отредактировано в',
|
||||
dateTimeFormat: 'MM/DD/YYYY h:mm',
|
||||
editChildChunk: 'Редактирование дочернего фрагмента',
|
||||
parentChunks_other: 'РОДИТЕЛЬСКИЕ БЛОКИ',
|
||||
regenerationSuccessTitle: 'Регенерация завершена',
|
||||
childChunks_one: 'ДОЧЕРНИЙ ЧАНК',
|
||||
newChunk: 'Новый чанк',
|
||||
addAnother: 'Добавить еще один',
|
||||
clearFilter: 'Очистить фильтр',
|
||||
addChunk: 'Добавить чанк',
|
||||
editParentChunk: 'Редактирование родительского блока',
|
||||
chunkDetail: 'Деталь Чанка',
|
||||
regenerationConfirmMessage: 'При повторном создании дочерних блоков текущие дочерние блоки будут перезаписаны, включая отредактированные и вновь добавленные блоки. Регенерацию нельзя отменить.',
|
||||
collapseChunks: 'Сворачивание кусков',
|
||||
regenerationConfirmTitle: 'Вы хотите регенерировать дочерние куски?',
|
||||
searchResults_zero: 'РЕЗУЛЬТАТ',
|
||||
childChunks_other: 'ДЕТСКИЕ КУСОЧКИ',
|
||||
childChunkAdded: 'Добавлен 1 дочерний чанк',
|
||||
editChunk: 'Редактировать фрагмент',
|
||||
empty: 'Чанк не найден',
|
||||
chunks_one: 'ЛОМОТЬ',
|
||||
regeneratingMessage: 'Это может занять некоторое время, пожалуйста, подождите...',
|
||||
chunkAdded: 'Добавлен 1 блок',
|
||||
chunk: 'Ломоть',
|
||||
expandChunks: 'Развернуть чанки',
|
||||
characters_one: 'характер',
|
||||
addChildChunk: 'Добавить дочерний чанк',
|
||||
newChildChunk: 'Новый дочерний чанк',
|
||||
keywordEmpty: 'Ключевое слово не может быть пустым',
|
||||
keywordDuplicate: 'Ключевое слово уже существует',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
34
dify/web/i18n/ru-RU/dataset-hit-testing.ts
Normal file
34
dify/web/i18n/ru-RU/dataset-hit-testing.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
const translation = {
|
||||
title: 'Тестирование поиска',
|
||||
desc: 'Проверьте эффективность поиска в базе знаний на основе заданного текста запроса.',
|
||||
dateTimeFormat: 'DD.MM.YYYY HH:mm',
|
||||
table: {
|
||||
header: {
|
||||
source: 'Источник',
|
||||
text: 'Текст',
|
||||
time: 'Время',
|
||||
},
|
||||
},
|
||||
input: {
|
||||
title: 'Исходный текст',
|
||||
placeholder: 'Пожалуйста, введите текст, рекомендуется использовать короткое повествовательное предложение.',
|
||||
countWarning: 'До 200 символов.',
|
||||
indexWarning: 'Только база знаний высокого качества.',
|
||||
testing: 'Тестирование',
|
||||
},
|
||||
hit: {
|
||||
title: 'НАЙДЕННЫЕ АБЗАЦЫ',
|
||||
emptyTip: 'Результаты тестирования поиска будут отображаться здесь',
|
||||
},
|
||||
noRecentTip: 'Здесь нет результатов недавних запросов',
|
||||
viewChart: 'Посмотреть ВЕКТОРНУЮ ДИАГРАММУ',
|
||||
viewDetail: 'Подробнее',
|
||||
settingTitle: 'Настройка извлечения',
|
||||
records: 'Записи',
|
||||
hitChunks: 'Попадание {{num}} дочерних чанков',
|
||||
chunkDetail: 'Деталь Чанка',
|
||||
open: 'Открытый',
|
||||
keyword: 'Ключевые слова',
|
||||
}
|
||||
|
||||
export default translation
|
||||
166
dify/web/i18n/ru-RU/dataset-pipeline.ts
Normal file
166
dify/web/i18n/ru-RU/dataset-pipeline.ts
Normal file
@@ -0,0 +1,166 @@
|
||||
const translation = {
|
||||
creation: {
|
||||
createFromScratch: {
|
||||
title: 'Пустой конвейер знаний',
|
||||
description: 'Создайте кастомный конвейер с нуля с полным контролем над обработкой и структурой данных.',
|
||||
},
|
||||
importDSL: 'Импорт из файла DSL',
|
||||
caution: 'Осторожность',
|
||||
backToKnowledge: 'Назад к знаниям',
|
||||
createKnowledge: 'Создание знаний',
|
||||
successTip: 'Успешно создали базу знаний',
|
||||
errorTip: 'Не удалось создать базу знаний',
|
||||
},
|
||||
templates: {
|
||||
customized: 'Настроить',
|
||||
},
|
||||
operations: {
|
||||
choose: 'Выбирать',
|
||||
process: 'Процесс',
|
||||
details: 'Подробности',
|
||||
dataSource: 'Источник данных',
|
||||
preview: 'Предварительный просмотр',
|
||||
saveAndProcess: 'Сохранение и переработка',
|
||||
backToDataSource: 'Вернуться к источнику данных',
|
||||
editInfo: 'Редактировать информацию',
|
||||
useTemplate: 'Использование этого конвейера знаний',
|
||||
convert: 'Обращать',
|
||||
exportPipeline: 'Экспортный конвейер',
|
||||
},
|
||||
deletePipeline: {
|
||||
title: 'Вы уверены, что удалите этот шаблон воронки продаж?',
|
||||
content: 'Удаление шаблона конвейера является необратимым.',
|
||||
},
|
||||
publishPipeline: {
|
||||
success: {
|
||||
message: 'Опубликован конвейер знаний',
|
||||
tip: '<CustomLink>Перейдите в «Документы»</CustomLink>, чтобы добавить или управлять документами.',
|
||||
},
|
||||
error: {
|
||||
message: 'Не удалось опубликовать конвейер знаний',
|
||||
},
|
||||
},
|
||||
publishTemplate: {
|
||||
success: {
|
||||
learnMore: 'Подробнее',
|
||||
message: 'Опубликован шаблон конвейера',
|
||||
tip: 'Вы можете использовать этот шаблон на странице создания.',
|
||||
},
|
||||
error: {
|
||||
message: 'Не удалось опубликовать шаблон конвейера',
|
||||
},
|
||||
},
|
||||
exportDSL: {
|
||||
successTip: 'Экспорт конвейера DSL успешно',
|
||||
errorTip: 'Не удалось экспортировать DSL конвейера',
|
||||
},
|
||||
details: {
|
||||
structure: 'Структура',
|
||||
structureTooltip: 'Структура блоков определяет порядок разделения и индексирования документов (в соответствии с режимами «Общие», «Родитель-потомок» и «Вопросы и ответы») и является уникальной для каждой базы знаний.',
|
||||
createdBy: 'По {{author}}',
|
||||
},
|
||||
testRun: {
|
||||
steps: {
|
||||
dataSource: 'Источник данных',
|
||||
documentProcessing: 'Обработка документов',
|
||||
},
|
||||
dataSource: {
|
||||
localFiles: 'Локальные файлы',
|
||||
},
|
||||
notion: {
|
||||
docTitle: 'Документация по Notion',
|
||||
title: 'Выберите страницы Notion',
|
||||
},
|
||||
title: 'Тестовый прогон',
|
||||
tooltip: 'В режиме тестового прогона одновременно разрешается импортировать только один документ для упрощения отладки и наблюдения.',
|
||||
},
|
||||
inputFieldPanel: {
|
||||
uniqueInputs: {
|
||||
title: 'Уникальные входы для каждого входа',
|
||||
tooltip: 'Уникальные входные данные доступны только выбранному источнику данных и его нижестоящим узлам. Пользователям не нужно будет заполнять его при выборе других источников данных. На первом шаге (Data Source) будут отображаться только поля ввода, на которые ссылаются переменные источника данных. Все остальные поля будут показаны на втором шаге (Process Documents).',
|
||||
},
|
||||
globalInputs: {
|
||||
title: 'Глобальные входы для всех входов',
|
||||
tooltip: 'Глобальные входные данные являются общими для всех узлов. Пользователям потребуется ввести их при выборе любого источника данных. Например, такие поля, как разделитель и максимальная длина блока, могут быть единообразно применены к нескольким источникам данных. На первом шаге отображаются только поля ввода, на которые ссылаются переменные источника данных (Data Source). Все остальные поля отображаются на втором шаге (Process Documents).',
|
||||
},
|
||||
preview: {
|
||||
stepOneTitle: 'Источник данных',
|
||||
stepTwoTitle: 'Документы по процессу',
|
||||
},
|
||||
error: {
|
||||
variableDuplicate: 'Имя переменной уже существует. Пожалуйста, выберите другое название.',
|
||||
},
|
||||
addInputField: 'Добавить поле ввода',
|
||||
editInputField: 'Редактировать поле ввода',
|
||||
title: 'Поля ввода данных пользователем',
|
||||
description: 'Поля ввода данных пользователем используются для определения и сбора переменных, необходимых в процессе выполнения конвейера. Пользователи могут настраивать тип поля и гибко настраивать входное значение в соответствии с потребностями различных источников данных или этапов обработки документов.',
|
||||
},
|
||||
addDocuments: {
|
||||
steps: {
|
||||
processDocuments: 'Документы по процессу',
|
||||
chooseDatasource: 'Выбор источника данных',
|
||||
processingDocuments: 'Обработка документов',
|
||||
},
|
||||
stepOne: {
|
||||
preview: 'Предварительный просмотр',
|
||||
},
|
||||
stepTwo: {
|
||||
chunkSettings: 'Настройки чанка',
|
||||
previewChunks: 'Предварительный просмотр чанков',
|
||||
},
|
||||
stepThree: {
|
||||
learnMore: 'Подробнее',
|
||||
},
|
||||
characters: 'письмена',
|
||||
backToDataSource: 'Источник данных',
|
||||
title: 'Добавить документы',
|
||||
selectOnlineDocumentTip: 'Обработать до {{count}} страниц',
|
||||
selectOnlineDriveTip: 'Обрабатывайте до {{count}} файлов, максимум {{fileSize}} МБ каждый',
|
||||
},
|
||||
documentSettings: {
|
||||
title: 'Настройки документа',
|
||||
},
|
||||
onlineDocument: {
|
||||
pageSelectorTitle: '{{name}} страниц',
|
||||
},
|
||||
onlineDrive: {
|
||||
breadcrumbs: {
|
||||
allFiles: 'Все файлы',
|
||||
searchPlaceholder: 'Поиск файлов...',
|
||||
allBuckets: 'Все корзины облачного хранилища',
|
||||
searchResult: 'Найти {{searchResultsLength}} элементов в папке "{{folderName}}"',
|
||||
},
|
||||
resetKeywords: 'Сброс ключевых слов',
|
||||
emptyFolder: 'Эта папка пуста',
|
||||
emptySearchResult: 'Предметы не найдены',
|
||||
notSupportedFileType: 'Этот тип файлов не поддерживается',
|
||||
notConnected: '{{name}} не подключен',
|
||||
notConnectedTip: 'Чтобы синхронизироваться с {{name}}, сначала необходимо установить соединение с {{name}}.',
|
||||
},
|
||||
credentialSelector: {
|
||||
name: '{{credentialName}}\'s {{pluginName}}',
|
||||
},
|
||||
conversion: {
|
||||
confirm: {
|
||||
title: 'Подтверждение',
|
||||
content: 'Это действие является постоянным. Вы не сможете вернуться к предыдущему методу. Пожалуйста, подтвердите конвертацию.',
|
||||
},
|
||||
title: 'Конвертация в конвейер знаний',
|
||||
warning: 'Это действие нельзя отменить.',
|
||||
errorMessage: 'Не удалось преобразовать набор данных в конвейер',
|
||||
successMessage: 'Успешное преобразование набора данных в конвейер',
|
||||
descriptionChunk2: '— более открытый и гибкий подход с доступом к плагинам из нашего маркетплейса. Это позволит применить новый метод обработки ко всем будущим документам.',
|
||||
descriptionChunk1: 'Теперь вы можете преобразовать существующую базу знаний для использования конвейера знаний для обработки документов',
|
||||
},
|
||||
knowledgeDescription: 'Описание знаний',
|
||||
inputField: 'Поле ввода',
|
||||
knowledgePermissions: 'Разрешения',
|
||||
pipelineNameAndIcon: 'Имя и иконка конвейера',
|
||||
knowledgeNameAndIcon: 'Имя и значок базы знаний',
|
||||
knowledgeNameAndIconPlaceholder: 'Пожалуйста, введите название базы знаний',
|
||||
editPipelineInfo: 'Редактирование сведений о воронке продаж',
|
||||
knowledgeDescriptionPlaceholder: 'Опишите, что входит в эту базу знаний. Подробное описание позволяет ИИ более точно получать доступ к содержимому набора данных. Если значение пусто, Dify будет использовать стратегию попадания по умолчанию. (Дополнительный)',
|
||||
configurationTip: 'Настроить {{pluginName}}',
|
||||
}
|
||||
|
||||
export default translation
|
||||
51
dify/web/i18n/ru-RU/dataset-settings.ts
Normal file
51
dify/web/i18n/ru-RU/dataset-settings.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
const translation = {
|
||||
title: 'Настройки базы знаний',
|
||||
desc: 'Здесь вы можете изменить свойства и методы работы базы знаний.',
|
||||
form: {
|
||||
name: 'Название базы знаний',
|
||||
namePlaceholder: 'Пожалуйста, введите название базы знаний',
|
||||
nameError: 'Название не может быть пустым',
|
||||
desc: 'Описание базы знаний',
|
||||
descInfo: 'Пожалуйста, напишите четкое текстовое описание, чтобы обрисовать содержание базы знаний. Это описание будет использоваться в качестве основы для сопоставления при выборе из нескольких баз знаний для вывода.',
|
||||
descPlaceholder: 'Опишите, что находится в этой базе знаний. Подробное описание позволяет ИИ своевременно получать доступ к содержимому базы знаний. Если оставить пустым, Dify будет использовать стратегию поиска по умолчанию.',
|
||||
descWrite: 'Узнайте, как написать хорошее описание базы знаний.',
|
||||
permissions: 'Разрешения',
|
||||
permissionsOnlyMe: 'Только я',
|
||||
permissionsAllMember: 'Все участники команды',
|
||||
permissionsInvitedMembers: 'Отдельные участники команды',
|
||||
me: '(Вы)',
|
||||
indexMethod: 'Метод индексации',
|
||||
indexMethodHighQuality: 'Высокое качество',
|
||||
indexMethodHighQualityTip: 'Вызов модели встраивания для обработки, чтобы обеспечить более высокую точность при запросах пользователей.',
|
||||
indexMethodEconomy: 'Экономичный',
|
||||
indexMethodEconomyTip: 'Используйте автономные векторные движки, индексы ключевых слов и т. д., чтобы снизить точность, не тратя токены',
|
||||
embeddingModel: 'Модель встраивания',
|
||||
embeddingModelTip: 'Изменить встроенную модель, пожалуйста, перейдите в ',
|
||||
embeddingModelTipLink: 'Настройки',
|
||||
retrievalSetting: {
|
||||
title: 'Настройки поиска',
|
||||
learnMore: 'Узнать больше',
|
||||
description: ' о методе поиска.',
|
||||
longDescription: ' о методе поиска, вы можете изменить это в любое время в настройках базы знаний.',
|
||||
method: 'Метод извлечения',
|
||||
},
|
||||
save: 'Сохранить',
|
||||
externalKnowledgeAPI: 'API внешних знаний',
|
||||
retrievalSettings: 'Настройки извлечения',
|
||||
externalKnowledgeID: 'Внешний идентификатор базы знаний',
|
||||
helpText: 'Узнайте, как написать хорошее описание набора данных.',
|
||||
upgradeHighQualityTip: 'После обновления до режима «Высокое качество» возврат к экономичному режиму невозможен',
|
||||
indexMethodChangeToEconomyDisabledTip: 'Недоступно для понижения уровня с HQ до ECO',
|
||||
searchModel: 'Поиск модели',
|
||||
chunkStructure: {
|
||||
learnMore: 'Подробнее',
|
||||
title: 'Структура чанка',
|
||||
description: 'о структуре чанка.',
|
||||
},
|
||||
nameAndIcon: 'Имя и иконка',
|
||||
numberOfKeywords: 'Количество ключевых слов',
|
||||
onSearchResults: 'Ни один участник не соответствует вашему поисковому запросу.\nПовторите попытку поиска.',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
243
dify/web/i18n/ru-RU/dataset.ts
Normal file
243
dify/web/i18n/ru-RU/dataset.ts
Normal file
@@ -0,0 +1,243 @@
|
||||
const translation = {
|
||||
knowledge: 'База знаний',
|
||||
documentCount: ' документов',
|
||||
wordCount: ' тыс. слов',
|
||||
appCount: ' связанных приложений',
|
||||
createDataset: 'Создать базу знаний',
|
||||
createDatasetIntro: 'Импортируйте свои собственные текстовые данные или записывайте данные в режиме реального времени через Webhook для улучшения контекста LLM.',
|
||||
deleteDatasetConfirmTitle: 'Удалить эту базу знаний?',
|
||||
deleteDatasetConfirmContent:
|
||||
'Удаление базы знаний необратимо. Пользователи больше не смогут получить доступ к вашей базе знаний, и все настройки подсказок и журналы будут безвозвратно удалены.',
|
||||
datasetUsedByApp: 'База знаний используется некоторыми приложениями. Приложения больше не смогут использовать эту базу знаний, и все настройки подсказок и журналы будут безвозвратно удалены.',
|
||||
datasetDeleted: 'База знаний удалена',
|
||||
datasetDeleteFailed: 'Не удалось удалить базу знаний',
|
||||
didYouKnow: 'Знаете ли вы?',
|
||||
intro1: 'Базу знаний можно интегрировать в приложение Dify ',
|
||||
intro2: 'в качестве контекста',
|
||||
intro3: ',',
|
||||
intro4: 'или ее ',
|
||||
intro5: 'можно создать',
|
||||
intro6: ' как отдельный плагин индекса ChatGPT для публикации',
|
||||
unavailable: 'Недоступно',
|
||||
datasets: 'БАЗЫ ЗНАНИЙ',
|
||||
datasetsApi: 'ДОСТУП К API',
|
||||
retrieval: {
|
||||
semantic_search: {
|
||||
title: 'Векторный поиск',
|
||||
description: 'Создайте встраивания запросов и найдите фрагмент текста, наиболее похожий на его векторное представление.',
|
||||
},
|
||||
full_text_search: {
|
||||
title: 'Полнотекстовый поиск',
|
||||
description: 'Индексируйте все термины в документе, позволяя пользователям искать любой термин и извлекать соответствующий фрагмент текста, содержащий эти термины.',
|
||||
},
|
||||
hybrid_search: {
|
||||
title: 'Гибридный поиск',
|
||||
description: 'Выполняйте полнотекстовый поиск и векторный поиск одновременно, переранжируйте, чтобы выбрать наилучшее соответствие запросу пользователя. Пользователи могут выбрать установку весов или настройку модели переранжирования.',
|
||||
recommend: 'Рекомендуется',
|
||||
},
|
||||
invertedIndex: {
|
||||
},
|
||||
change: 'Изменить',
|
||||
changeRetrievalMethod: 'Изменить метод поиска',
|
||||
keyword_search: {
|
||||
title: 'Инвертированный индекс',
|
||||
description: 'Инвертированный индекс — это структура, используемая для эффективного извлечения. Каждый термин упорядочен по терминам и указывает на документы или веб-страницы, содержащие его.',
|
||||
},
|
||||
},
|
||||
docsFailedNotice: 'документов не удалось проиндексировать',
|
||||
retry: 'Повторить попытку',
|
||||
indexingTechnique: {
|
||||
high_quality: 'HQ',
|
||||
economy: 'ECO',
|
||||
},
|
||||
indexingMethod: {
|
||||
semantic_search: 'ВЕКТОР',
|
||||
full_text_search: 'ПОЛНЫЙ ТЕКСТ',
|
||||
hybrid_search: 'ГИБРИД',
|
||||
invertedIndex: 'ИНВЕРТИРОВАННЫЙ',
|
||||
},
|
||||
mixtureHighQualityAndEconomicTip: 'Для смешивания высококачественных и экономичных баз знаний требуется модель переранжирования.',
|
||||
inconsistentEmbeddingModelTip: 'Модель переранжирования требуется, если модели встраивания выбранных баз знаний несовместимы.',
|
||||
retrievalSettings: 'Настройки поиска',
|
||||
rerankSettings: 'Настройки переранжирования',
|
||||
weightedScore: {
|
||||
title: 'Взвешенная оценка',
|
||||
description: 'Регулируя назначенные веса, эта стратегия переранжирования определяет, следует ли отдавать приоритет семантическому или ключевому соответствию.',
|
||||
semanticFirst: 'Семантика в первую очередь',
|
||||
keywordFirst: 'Ключевые слова в первую очередь',
|
||||
customized: 'Настраиваемый',
|
||||
semantic: 'Семантика',
|
||||
keyword: 'Ключевые слова',
|
||||
},
|
||||
nTo1RetrievalLegacy: 'Поиск N-к-1 будет официально прекращен с сентября. Рекомендуется использовать новейший многопутный поиск для получения лучших результатов.',
|
||||
nTo1RetrievalLegacyLink: 'Узнать больше',
|
||||
nTo1RetrievalLegacyLinkText: ' Поиск N-к-1 будет официально прекращен в сентябре.',
|
||||
defaultRetrievalTip: 'По умолчанию используется многоканальная проверка. Знания извлекаются из нескольких баз знаний, а затем повторно ранжируются.',
|
||||
editExternalAPIConfirmWarningContent: {
|
||||
end: 'внешних знаний, и эта модификация будет применена ко всем им. Вы уверены, что хотите сохранить это изменение?',
|
||||
front: 'Этот API внешних знаний связан с',
|
||||
},
|
||||
editExternalAPIFormWarning: {
|
||||
end: 'Внешние знания',
|
||||
front: 'Этот внешний API связан с',
|
||||
},
|
||||
deleteExternalAPIConfirmWarningContent: {
|
||||
title: {
|
||||
end: '?',
|
||||
front: 'Удалить',
|
||||
},
|
||||
content: {
|
||||
front: 'Этот API внешних знаний связан с',
|
||||
end: 'внешнее знание. Удаление этого API сделает их все недействительными. Вы уверены, что хотите удалить этот API?',
|
||||
},
|
||||
noConnectionContent: 'Вы уверены, что удалите этот API?',
|
||||
},
|
||||
selectExternalKnowledgeAPI: {
|
||||
placeholder: 'Выбор API внешних знаний',
|
||||
},
|
||||
connectDatasetIntro: {
|
||||
content: {
|
||||
link: 'Узнайте, как создать внешний API',
|
||||
front: 'Чтобы подключиться к внешней базе знаний, необходимо сначала создать внешний API. Пожалуйста, внимательно прочтите и обратитесь к',
|
||||
end: '. Затем найдите соответствующий идентификатор знания и заполните его в форме слева. Если вся информация верна, он автоматически перейдет к тесту извлечения в базе знаний после нажатия кнопки подключения.',
|
||||
},
|
||||
learnMore: 'Подробнее',
|
||||
title: 'Как подключиться к внешней базе знаний',
|
||||
},
|
||||
connectHelper: {
|
||||
helper2: 'Поддерживается только функция извлечения',
|
||||
helper3: '. Мы настоятельно рекомендуем вам',
|
||||
helper4: 'Ознакомьтесь с справочной документацией',
|
||||
helper5: 'Будьте внимательны перед использованием этой функции.',
|
||||
helper1: 'Подключение к внешним базам знаний через API и идентификатор базы знаний. В настоящее время',
|
||||
},
|
||||
externalKnowledgeForm: {
|
||||
connect: 'Соединять',
|
||||
cancel: 'Отмена',
|
||||
},
|
||||
externalAPIForm: {
|
||||
encrypted: {
|
||||
end: 'Технологии.',
|
||||
front: 'Ваш токен API будет зашифрован и сохранен с помощью',
|
||||
},
|
||||
cancel: 'Отмена',
|
||||
endpoint: 'Конечная точка API',
|
||||
save: 'Спасать',
|
||||
edit: 'Редактировать',
|
||||
name: 'Имя',
|
||||
apiKey: 'Ключ API',
|
||||
},
|
||||
externalKnowledgeNamePlaceholder: 'Пожалуйста, введите название базы знаний',
|
||||
externalTag: 'Внешний',
|
||||
learnHowToWriteGoodKnowledgeDescription: 'Узнайте, как написать хорошее описание знаний',
|
||||
externalAPIPanelTitle: 'API внешних знаний',
|
||||
externalKnowledgeDescription: 'Описание знаний',
|
||||
editExternalAPITooltipTitle: 'СВЯЗАННЫЕ ЗНАНИЯ',
|
||||
externalKnowledgeName: 'Имя внешнего базы знаний',
|
||||
createExternalAPI: 'Добавление API внешних знаний',
|
||||
externalKnowledgeIdPlaceholder: 'Пожалуйста, введите идентификатор знаний',
|
||||
externalKnowledgeDescriptionPlaceholder: 'Опишите, что входит в эту базу знаний (необязательно)',
|
||||
noExternalKnowledge: 'У нас еще нет External Knowledge API, нажмите здесь, чтобы создать',
|
||||
externalAPI: 'Внешний API',
|
||||
externalKnowledgeId: 'Внешний идентификатор базы знаний',
|
||||
createNewExternalAPI: 'Создание нового API внешних знаний',
|
||||
editExternalAPIFormTitle: 'Редактирование API внешних знаний',
|
||||
connectDataset: 'Подключение к внешней базе знаний',
|
||||
mixtureInternalAndExternalTip: 'Модель Rerank необходима для смешивания внутренних и внешних знаний.',
|
||||
allExternalTip: 'При использовании только внешних знаний пользователь может выбрать, следует ли включать модель повторного ранжирования. Если этот параметр не включен, полученные фрагменты будут сортироваться на основе баллов. Когда стратегии извлечения из разных баз знаний несовместимы, они будут неточными.',
|
||||
externalAPIPanelDocumentation: 'Узнайте, как создать API внешних знаний',
|
||||
externalAPIPanelDescription: 'Внешний API базы знаний используется для подключения к базе знаний за пределами Dify и извлечения знаний из этой базы знаний.',
|
||||
chunkingMode: {
|
||||
general: 'Общее',
|
||||
parentChild: 'Родитель-дочерний',
|
||||
graph: 'График',
|
||||
qa: 'Вопросы и ответы',
|
||||
},
|
||||
parentMode: {
|
||||
fullDoc: 'Полный документ',
|
||||
paragraph: 'Параграф',
|
||||
},
|
||||
batchAction: {
|
||||
enable: 'Давать возможность',
|
||||
delete: 'Удалить',
|
||||
selected: 'Выбранный',
|
||||
disable: 'Отключить',
|
||||
cancel: 'Отмена',
|
||||
archive: 'Архив',
|
||||
},
|
||||
preprocessDocument: '{{число}} Предварительная обработка документов',
|
||||
documentsDisabled: 'Документы {{num}} отключены - неактивны более 30 дней',
|
||||
localDocs: 'Местная документация',
|
||||
enable: 'Давать возможность',
|
||||
allKnowledge: 'Все знания',
|
||||
allKnowledgeDescription: 'Выберите, чтобы отобразить все знания в этой рабочей области. Только владелец рабочего пространства может управлять всеми знаниями.',
|
||||
metadata: {
|
||||
createMetadata: {
|
||||
type: 'Тип',
|
||||
namePlaceholder: 'Добавьте имя метаданных',
|
||||
back: 'назад',
|
||||
name: 'Имя',
|
||||
title: 'Новые метаданные',
|
||||
},
|
||||
checkName: {
|
||||
empty: 'Имя метаданных не может быть пустым',
|
||||
invalid: 'Имя метаданных может содержать только строчные буквы, цифры и знаки нижнего подчеркивания и должно начинаться со строчной буквы.',
|
||||
tooLong: 'Имя метаданных не может превышать {{max}} символов',
|
||||
},
|
||||
batchEditMetadata: {
|
||||
applyToAllSelectDocumentTip: 'Автоматически создайте все вышеуказанные редактируемые и новые метаданные для всех выбранных документов, иначе редактирование метаданных будет применяться только к документам с ними.',
|
||||
applyToAllSelectDocument: 'Применить ко всем выбранным документам',
|
||||
editDocumentsNum: 'Редактирование {{num}} документов',
|
||||
multipleValue: 'Множественное значение',
|
||||
editMetadata: 'Редактировать метаданные',
|
||||
},
|
||||
selectMetadata: {
|
||||
manageAction: 'Управлять',
|
||||
newAction: 'Новые метаданные',
|
||||
search: 'Поиск метаданных',
|
||||
},
|
||||
datasetMetadata: {
|
||||
deleteContent: 'Вы уверены, что хотите удалить метаданные "{{name}}"?',
|
||||
values: '{{num}} Значений',
|
||||
builtIn: 'Встроенный',
|
||||
description: 'Вы можете управлять всеми метаданными в этих знаниях здесь. Изменения будут синхронизированы с каждым документом.',
|
||||
deleteTitle: 'Подтвердите удаление',
|
||||
builtInDescription: 'Встроенные метаданные автоматически извлекаются и генерируются. Их необходимо активировать перед использованием, и они не подлежат редактированию.',
|
||||
addMetaData: 'Добавить метаданные',
|
||||
rename: 'Переименовать',
|
||||
disabled: 'Отключено',
|
||||
name: 'Имя',
|
||||
namePlaceholder: 'Имя метаданных',
|
||||
},
|
||||
documentMetadata: {
|
||||
startLabeling: 'Начать маркировку',
|
||||
documentInformation: 'Информация о документе',
|
||||
metadataToolTip: 'Метаданные служат важным фильтром, который повышает точность и актуальность извлечения информации. Вы можете изменить и добавить метаданные для этого документа здесь.',
|
||||
technicalParameters: 'Технические параметры',
|
||||
},
|
||||
chooseTime: 'Выберите время...',
|
||||
metadata: 'Метаданные',
|
||||
addMetadata: 'Добавить метаданные',
|
||||
},
|
||||
embeddingModelNotAvailable: 'Модель встраивания недоступна.',
|
||||
updated: 'Обновлено',
|
||||
externalKnowledgeBase: 'Внешняя база знаний',
|
||||
createFromPipeline: 'Создание из конвейера знаний',
|
||||
serviceApi: {
|
||||
card: {
|
||||
apiReference: 'Справочник API',
|
||||
title: 'API бэкенд-сервиса',
|
||||
apiKey: 'API ключ',
|
||||
endpoint: 'Конечная точка API сервиса',
|
||||
},
|
||||
enabled: 'На службе',
|
||||
title: 'Сервисный API',
|
||||
disabled: 'Отключено',
|
||||
},
|
||||
docAllEnabled_one: 'Документ {{count}} включен',
|
||||
docAllEnabled_other: 'Все документы {{count}} включены',
|
||||
partialEnabled_one: 'Всего {{count}} документов, доступно {{num}}',
|
||||
partialEnabled_other: 'Всего {{count}} документов, доступно {{num}}',
|
||||
}
|
||||
|
||||
export default translation
|
||||
76
dify/web/i18n/ru-RU/education.ts
Normal file
76
dify/web/i18n/ru-RU/education.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
const translation = {
|
||||
toVerifiedTip: {
|
||||
end: 'для профессионального плана Dify.',
|
||||
front: 'Теперь вы имеете право на статус "Проверенное образование". Пожалуйста, введите свои образовательные данные ниже, чтобы завершить процесс и получить',
|
||||
coupon: 'эксклюзивный 100% купон',
|
||||
},
|
||||
form: {
|
||||
schoolName: {
|
||||
title: 'Название вашей школы',
|
||||
placeholder: 'Введите официальное, полное название вашей школы',
|
||||
},
|
||||
schoolRole: {
|
||||
option: {
|
||||
student: 'Студент',
|
||||
teacher: 'Учитель',
|
||||
administrator: 'Школьный администратор',
|
||||
},
|
||||
title: 'Ваша школьная роль',
|
||||
},
|
||||
terms: {
|
||||
desc: {
|
||||
termsOfService: 'Условия обслуживания',
|
||||
front: 'Ваша информация и использование статуса Проверенное образование подлежат нашим',
|
||||
privacyPolicy: 'Политика конфиденциальности',
|
||||
and: 'и',
|
||||
end: '. Отправляя:',
|
||||
},
|
||||
option: {
|
||||
age: 'Я подтверждаю, что мне не меньше 18 лет',
|
||||
inSchool: 'Я подтверждаю, что я зачислен или работаю в указанной учреждении. Dify может запросить подтверждение зачисления/трудоустройства. Если я неправильно укажу свою правообладанность, я согласен оплатить любые сборы, которые изначально были отменены на основании моего образовательного статуса.',
|
||||
},
|
||||
title: 'Условия и соглашения',
|
||||
},
|
||||
},
|
||||
submit: 'Отправить',
|
||||
rejectTitle: 'Ваша образовательная проверка Dify была отклонена',
|
||||
currentSigned: 'В ДАННЫЙ МОМЕНТ ВХОД В ПРОФИЛЬ КАК',
|
||||
toVerified: 'Получите подтверждение образования',
|
||||
learn: 'Узнайте, как получить подтверждение образования',
|
||||
submitError: 'Отправка формы не удалась. Пожалуйста, попробуйте позже.',
|
||||
successTitle: 'Вы получили подтвержденное образование Dify',
|
||||
emailLabel: 'Ваш текущий адрес электронной почты',
|
||||
rejectContent: 'К сожалению, вы не имеете права на статус Проверенного образованием и, следовательно, не можете получить эксклюзивный купон на 100% для профессионального плана Dify, если вы используете этот адрес электронной почты.',
|
||||
successContent: 'Мы выдали купон на 100% скидку на план Dify Professional для вашего аккаунта. Купон действителен в течение одного года, пожалуйста, используйте его в течение срока действия.',
|
||||
notice: {
|
||||
expired: {
|
||||
summary: {
|
||||
line1: 'Вы все еще можете получить доступ к Dify и использовать его.',
|
||||
line2: 'Однако вы больше не имеете права на новые купоны на скидку на образование.',
|
||||
},
|
||||
title: 'Ваш статус образования истек',
|
||||
},
|
||||
isAboutToExpire: {
|
||||
summary: 'Не волнуйся — это не повлияет на твою текущую подписку, но ты не получишь образовательную скидку при её продлении, если не подтвердишь свой статус снова.',
|
||||
title: 'Статус вашего образования истечет {{date}}',
|
||||
},
|
||||
stillInEducation: {
|
||||
title: 'Все еще учишься?',
|
||||
expired: 'Переутвердите сейчас, чтобы получить новый купон на предстоящий учебный год. Мы добавим его на ваш аккаунт, и вы сможете использовать его для следующего обновления.',
|
||||
isAboutToExpire: 'Проверьте еще раз, чтобы получить новый купон на предстоящий учебный год. Он будет сохранен в вашем аккаунте и готов к использованию при следующем продлении.',
|
||||
},
|
||||
alreadyGraduated: {
|
||||
title: 'Уже окончили?',
|
||||
expired: 'Не стесняйтесь обновить подписку в любое время, чтобы получить полный доступ к платным функциям.',
|
||||
isAboutToExpire: 'Ваша текущая подписка останется активной. Когда она закончится, вы перейдете на план Sandbox, или вы можете в любое время обновить подписку, чтобы восстановить полный доступ к платным функциям.',
|
||||
},
|
||||
action: {
|
||||
upgrade: 'Обновление',
|
||||
reVerify: 'Перепроверить',
|
||||
dismiss: 'Отклонить',
|
||||
},
|
||||
dateFormat: 'ДД/ММ/ГГГГ',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
44
dify/web/i18n/ru-RU/explore.ts
Normal file
44
dify/web/i18n/ru-RU/explore.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
const translation = {
|
||||
title: 'Обзор',
|
||||
sidebar: {
|
||||
discovery: 'Открытия',
|
||||
chat: 'Чат',
|
||||
workspace: 'Рабочее пространство',
|
||||
action: {
|
||||
pin: 'Закрепить',
|
||||
unpin: 'Открепить',
|
||||
rename: 'Переименовать',
|
||||
delete: 'Удалить',
|
||||
},
|
||||
delete: {
|
||||
title: 'Удалить приложение',
|
||||
content: 'Вы уверены, что хотите удалить это приложение?',
|
||||
},
|
||||
},
|
||||
apps: {
|
||||
title: 'Обзор приложений от Dify',
|
||||
description: 'Используйте эти шаблонные приложения мгновенно или настройте свои собственные приложения на основе шаблонов.',
|
||||
allCategories: 'Рекомендуемые',
|
||||
},
|
||||
appCard: {
|
||||
addToWorkspace: 'Добавить в рабочее пространство',
|
||||
customize: 'Настроить',
|
||||
},
|
||||
appCustomize: {
|
||||
title: 'Создать приложение из {{name}}',
|
||||
subTitle: 'Значок и название приложения',
|
||||
nameRequired: 'Название приложения обязательно',
|
||||
},
|
||||
category: {
|
||||
Assistant: 'Ассистент',
|
||||
Writing: 'Написание',
|
||||
Translate: 'Перевод',
|
||||
Programming: 'Программирование',
|
||||
HR: 'HR',
|
||||
Agent: 'Агент',
|
||||
Workflow: 'Рабочий процесс',
|
||||
Entertainment: 'Развлечение',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
8
dify/web/i18n/ru-RU/layout.ts
Normal file
8
dify/web/i18n/ru-RU/layout.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
const translation = {
|
||||
sidebar: {
|
||||
expandSidebar: 'Развернуть боковую панель',
|
||||
collapseSidebar: 'Свернуть боковую панель',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
126
dify/web/i18n/ru-RU/login.ts
Normal file
126
dify/web/i18n/ru-RU/login.ts
Normal file
@@ -0,0 +1,126 @@
|
||||
const translation = {
|
||||
pageTitle: 'Привет, давайте начнем!👋',
|
||||
welcome: 'Добро пожаловать в Dify, пожалуйста, войдите, чтобы продолжить.',
|
||||
email: 'Адрес электронной почты',
|
||||
emailPlaceholder: 'Ваш адрес электронной почты',
|
||||
password: 'Пароль',
|
||||
passwordPlaceholder: 'Ваш пароль',
|
||||
name: 'Имя пользователя',
|
||||
namePlaceholder: 'Ваше имя пользователя',
|
||||
forget: 'Забыли пароль?',
|
||||
signBtn: 'Войти',
|
||||
installBtn: 'Настроить',
|
||||
setAdminAccount: 'Настройка учетной записи администратора',
|
||||
setAdminAccountDesc: 'Максимальные привилегии для учетной записи администратора, которые можно использовать для создания приложений, управления поставщиками LLM и т. д.',
|
||||
createAndSignIn: 'Создать и войти',
|
||||
oneMoreStep: 'Еще один шаг',
|
||||
createSample: 'На основе этой информации мы создадим для вас пример приложения',
|
||||
invitationCode: 'Пригласительный код',
|
||||
invitationCodePlaceholder: 'Ваш пригласительный код',
|
||||
interfaceLanguage: 'Язык интерфейса',
|
||||
timezone: 'Часовой пояс',
|
||||
go: 'Перейти к Dify',
|
||||
sendUsMail: 'Отправьте нам по электронной почте свое представление, и мы обработаем запрос на приглашение.',
|
||||
acceptPP: 'Я прочитал и принимаю политику конфиденциальности',
|
||||
reset: 'Пожалуйста, выполните следующую команду, чтобы сбросить пароль',
|
||||
withGitHub: 'Продолжить с GitHub',
|
||||
withGoogle: 'Продолжить с Google',
|
||||
rightTitle: 'Раскройте весь потенциал LLM',
|
||||
rightDesc: 'Без труда создавайте визуально привлекательные, работоспособные и улучшаемые приложения ИИ.',
|
||||
tos: 'Условия обслуживания',
|
||||
pp: 'Политика конфиденциальности',
|
||||
tosDesc: 'Регистрируясь, вы соглашаетесь с нашими',
|
||||
goToInit: 'Если вы не инициализировали учетную запись, перейдите на страницу инициализации',
|
||||
dontHave: 'Нет?',
|
||||
invalidInvitationCode: 'Неверный пригласительный код',
|
||||
accountAlreadyInited: 'Учетная запись уже инициализирована',
|
||||
forgotPassword: 'Забыли пароль?',
|
||||
resetLinkSent: 'Ссылка для сброса отправлена',
|
||||
sendResetLink: 'Отправить ссылку для сброса',
|
||||
backToSignIn: 'Вернуться к входу',
|
||||
forgotPasswordDesc: 'Пожалуйста, введите свой адрес электронной почты, чтобы сбросить пароль. Мы отправим вам электронное письмо с инструкциями о том, как сбросить пароль.',
|
||||
checkEmailForResetLink: 'Пожалуйста, проверьте свою электронную почту на наличие ссылки для сброса пароля. Если она не появится в течение нескольких минут, обязательно проверьте папку со спамом.',
|
||||
passwordChanged: 'Войдите сейчас',
|
||||
changePassword: 'Изменить пароль',
|
||||
changePasswordTip: 'Пожалуйста, введите новый пароль для своей учетной записи',
|
||||
invalidToken: 'Неверный или просроченный токен',
|
||||
confirmPassword: 'Подтвердите пароль',
|
||||
confirmPasswordPlaceholder: 'Подтвердите свой новый пароль',
|
||||
passwordChangedTip: 'Ваш пароль был успешно изменен',
|
||||
error: {
|
||||
emailEmpty: 'Адрес электронной почты обязателен',
|
||||
emailInValid: 'Пожалуйста, введите действительный адрес электронной почты',
|
||||
nameEmpty: 'Имя обязательно',
|
||||
passwordEmpty: 'Пароль обязателен',
|
||||
passwordLengthInValid: 'Пароль должен содержать не менее 8 символов',
|
||||
passwordInvalid: 'Пароль должен содержать буквы и цифры, а длина должна быть больше 8',
|
||||
registrationNotAllowed: 'Аккаунт не найден. Пожалуйста, свяжитесь с системным администратором для регистрации.',
|
||||
invalidEmailOrPassword: 'Неверный адрес электронной почты или пароль.',
|
||||
},
|
||||
license: {
|
||||
tip: 'Перед запуском Dify Community Edition ознакомьтесь с лицензией GitHub',
|
||||
link: 'Лицензия с открытым исходным кодом',
|
||||
},
|
||||
join: 'Присоединиться',
|
||||
joinTipStart: 'Приглашаем вас присоединиться к',
|
||||
joinTipEnd: 'команде на Dify',
|
||||
invalid: 'Ссылка истекла',
|
||||
explore: 'Изучить Dify',
|
||||
activatedTipStart: 'Вы присоединились к команде',
|
||||
activatedTipEnd: '',
|
||||
activated: 'Войдите сейчас',
|
||||
adminInitPassword: 'Пароль инициализации администратора',
|
||||
validate: 'Проверить',
|
||||
checkCode: {
|
||||
verify: 'Проверять',
|
||||
resend: 'Отправить',
|
||||
invalidCode: 'Неверный код',
|
||||
didNotReceiveCode: 'Не получили код?',
|
||||
emptyCode: 'Код обязателен для заполнения',
|
||||
verificationCode: 'Проверочный код',
|
||||
checkYourEmail: 'Проверьте свою электронную почту',
|
||||
validTime: 'Имейте в виду, что код действителен в течение 5 минут',
|
||||
verificationCodePlaceholder: 'Введите 6-значный код',
|
||||
useAnotherMethod: 'Используйте другой метод',
|
||||
tipsPrefix: 'Мы отправляем код проверки на',
|
||||
},
|
||||
back: 'Назад',
|
||||
changePasswordBtn: 'Установите пароль',
|
||||
usePassword: 'Использовать пароль',
|
||||
continueWithCode: 'Продолжить с кодом',
|
||||
resetPassword: 'Сброс пароля',
|
||||
withSSO: 'Продолжение работы с SSO',
|
||||
noLoginMethod: 'Метод аутентификации не настроен',
|
||||
useVerificationCode: 'Используйте код подтверждения',
|
||||
sendVerificationCode: 'Отправить код подтверждения',
|
||||
setYourAccount: 'Настройте свою учетную запись',
|
||||
backToLogin: 'Вернуться к входу',
|
||||
enterYourName: 'Пожалуйста, введите свое имя пользователя',
|
||||
noLoginMethodTip: 'Обратитесь к системному администратору, чтобы добавить метод аутентификации.',
|
||||
resetPasswordDesc: 'Введите адрес электронной почты, который вы использовали для регистрации в Dify, и мы отправим вам электронное письмо для сброса пароля.',
|
||||
or: 'ИЛИ',
|
||||
licenseInactive: 'Лицензия неактивна',
|
||||
licenseLostTip: 'Не удалось подключить сервер лицензий Dify. Обратитесь к своему администратору, чтобы продолжить использование Dify.',
|
||||
licenseExpired: 'Срок действия лицензии истек',
|
||||
licenseLost: 'Утеряна лицензия',
|
||||
licenseInactiveTip: 'Лицензия Dify Enterprise для рабочего пространства неактивна. Обратитесь к своему администратору, чтобы продолжить использование Dify.',
|
||||
licenseExpiredTip: 'Срок действия лицензии Dify Enterprise для рабочего пространства истек. Обратитесь к своему администратору, чтобы продолжить использование Dify.',
|
||||
webapp: {
|
||||
noLoginMethod: 'Метод аутентификации не настроен для веб-приложения',
|
||||
noLoginMethodTip: 'Пожалуйста, свяжитесь с администратором системы, чтобы добавить метод аутентификации.',
|
||||
disabled: 'Аутентификация веб-приложения отключена. Пожалуйста, свяжитесь с администратором системы, чтобы включить ее. Вы можете попробовать использовать приложение напрямую.',
|
||||
login: 'Вход',
|
||||
},
|
||||
signup: {
|
||||
signIn: 'Войти',
|
||||
signUp: 'Зарегистрироваться',
|
||||
haveAccount: 'Уже есть учетная запись?',
|
||||
noAccount: 'Нет аккаунта?',
|
||||
createAccount: 'Создайте свою учетную запись',
|
||||
verifyMail: 'Продолжите с кодом проверки',
|
||||
welcome: '👋 Добро пожаловать! Пожалуйста, заполните данные, чтобы начать.',
|
||||
},
|
||||
pageTitleForE: 'Привет, давай начнем!',
|
||||
}
|
||||
|
||||
export default translation
|
||||
27
dify/web/i18n/ru-RU/oauth.ts
Normal file
27
dify/web/i18n/ru-RU/oauth.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
const translation = {
|
||||
tips: {
|
||||
needLogin: 'Пожалуйста, войдите, чтобы авторизоваться',
|
||||
notLoggedIn: 'Это приложение хочет получить доступ к вашей учетной записи Dify Cloud',
|
||||
loggedIn: 'Это приложение хочет получить следующую информацию из вашего аккаунта Dify Cloud.',
|
||||
common: 'Мы уважаем вашу конфиденциальность и будем использовать эту информацию только для улучшения вашего опыта с нашими инструментами разработчика.',
|
||||
},
|
||||
scopes: {
|
||||
languagePreference: 'Предпочтение языка',
|
||||
email: 'Электронная почта',
|
||||
avatar: 'Аватар',
|
||||
name: 'Имя',
|
||||
timezone: 'Часовой пояс',
|
||||
},
|
||||
error: {
|
||||
invalidParams: 'Неверные параметры',
|
||||
authorizeFailed: 'Авторизация не удалась',
|
||||
authAppInfoFetchFailed: 'Не удалось получить информацию об приложении для авторизации',
|
||||
},
|
||||
continue: 'Продолжить',
|
||||
connect: 'Подключиться к',
|
||||
switchAccount: 'Сменить аккаунт',
|
||||
unknownApp: 'Неизвестное приложение',
|
||||
login: 'Вход',
|
||||
}
|
||||
|
||||
export default translation
|
||||
40
dify/web/i18n/ru-RU/pipeline.ts
Normal file
40
dify/web/i18n/ru-RU/pipeline.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
const translation = {
|
||||
common: {
|
||||
publishAsPipeline: {
|
||||
description: 'Описание знаний',
|
||||
name: 'Имя и иконка конвейера',
|
||||
namePlaceholder: 'Пожалуйста, введите имя этого конвейера знаний. (Обязательно)',
|
||||
descriptionPlaceholder: 'Пожалуйста, введите описание этого конвейера знаний. (Дополнительный)',
|
||||
},
|
||||
processing: 'Обработка',
|
||||
reRun: 'Повторный запуск',
|
||||
testRun: 'Тестовый прогон',
|
||||
preparingDataSource: 'Подготовка источника данных',
|
||||
confirmPublish: 'Подтвердите публикацию',
|
||||
goToAddDocuments: 'Перейти к добавлению документов',
|
||||
publishAs: 'Публикация в качестве конвейера знаний',
|
||||
confirmPublishContent: 'После успешной публикации конвейера знаний структура блоков этой базы знаний не может быть изменена. Вы уверены, что хотите его опубликовать?',
|
||||
},
|
||||
inputField: {
|
||||
manage: 'Руководить',
|
||||
create: 'Создание поля ввода данных пользователем',
|
||||
},
|
||||
publishToast: {
|
||||
title: 'Этот пайплайн еще не опубликован',
|
||||
desc: 'Если конвейер не опубликован, вы можете изменить структуру блоков в узле базы знаний, а оркестрация конвейера и изменения будут автоматически сохранены в виде черновика.',
|
||||
},
|
||||
result: {
|
||||
resultPreview: {
|
||||
viewDetails: 'Подробнее',
|
||||
loading: 'Обработка... Подождите',
|
||||
error: 'Ошибка произошла во время выполнения',
|
||||
footerTip: 'В режиме тестового запуска предварительный просмотр до {{count}} фрагментов',
|
||||
},
|
||||
},
|
||||
ragToolSuggestions: {
|
||||
title: 'Предложения по КГР',
|
||||
noRecommendationPlugins: 'Рекомендуемые плагины отсутствуют, найдите больше на <CustomLink>Marketplace</CustomLink>',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
26
dify/web/i18n/ru-RU/plugin-tags.ts
Normal file
26
dify/web/i18n/ru-RU/plugin-tags.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
const translation = {
|
||||
tags: {
|
||||
business: 'Дело',
|
||||
videos: 'Видео',
|
||||
travel: 'Путешествовать',
|
||||
social: 'Общественный',
|
||||
agent: 'Агент',
|
||||
search: 'Искать',
|
||||
design: 'Проектировать',
|
||||
image: 'Образ',
|
||||
news: 'Новости',
|
||||
utilities: 'Коммунальные услуги',
|
||||
weather: 'Погода',
|
||||
medical: 'Медицинский',
|
||||
other: 'Другой',
|
||||
finance: 'Финансировать',
|
||||
education: 'Образование',
|
||||
productivity: 'Продуктивность',
|
||||
entertainment: 'Развлечение',
|
||||
rag: 'ТРЯПКА',
|
||||
},
|
||||
allTags: 'Все теги',
|
||||
searchTags: 'Поиск тегов',
|
||||
}
|
||||
|
||||
export default translation
|
||||
186
dify/web/i18n/ru-RU/plugin-trigger.ts
Normal file
186
dify/web/i18n/ru-RU/plugin-trigger.ts
Normal file
@@ -0,0 +1,186 @@
|
||||
const translation = {
|
||||
subscription: {
|
||||
title: 'Подписки',
|
||||
listNum: '{{num}} подписки',
|
||||
empty: {
|
||||
title: 'Нет подписок',
|
||||
button: 'Новая подписка',
|
||||
},
|
||||
createButton: {
|
||||
oauth: 'Новая подписка с OAuth',
|
||||
apiKey: 'Новая подписка с ключом API',
|
||||
manual: 'Вставьте URL для создания новой подписки',
|
||||
},
|
||||
createSuccess: 'Подписка успешно создана',
|
||||
createFailed: 'Не удалось создать подписку',
|
||||
maxCount: 'Макс {{num}} подписок',
|
||||
selectPlaceholder: 'Выберите подписку',
|
||||
noSubscriptionSelected: 'Подписка не выбрана',
|
||||
subscriptionRemoved: 'Подписка удалена',
|
||||
list: {
|
||||
title: 'Подписки',
|
||||
addButton: 'Добавить',
|
||||
tip: 'Получать события через подписку',
|
||||
item: {
|
||||
enabled: 'Включено',
|
||||
disabled: 'Отключено',
|
||||
credentialType: {
|
||||
api_key: 'API ключ',
|
||||
oauth2: 'OAuth',
|
||||
unauthorized: 'Руководство',
|
||||
},
|
||||
actions: {
|
||||
delete: 'Удалить',
|
||||
deleteConfirm: {
|
||||
title: 'Удалить {{name}}?',
|
||||
success: 'Подписка {{name}} успешно удалена',
|
||||
error: 'Не удалось удалить подписку {{name}}',
|
||||
content: 'После удаления эта подписка не может быть восстановлена. Пожалуйста, подтвердите.',
|
||||
contentWithApps: 'Текущая подписка используется {{count}} приложениями. Удаление подписки приведет к тому, что настроенные приложения перестанут получать события подписки.',
|
||||
confirm: 'Подтвердить удаление',
|
||||
cancel: 'Отмена',
|
||||
confirmInputWarning: 'Пожалуйста, введите правильное имя для подтверждения.',
|
||||
confirmInputPlaceholder: 'Введите "{{name}}", чтобы подтвердить.',
|
||||
confirmInputTip: 'Пожалуйста, введите «{{name}}», чтобы подтвердить.',
|
||||
},
|
||||
},
|
||||
status: {
|
||||
active: 'Активный',
|
||||
inactive: 'Неактивный',
|
||||
},
|
||||
usedByNum: 'Используется {{num}} рабочими процессами',
|
||||
noUsed: 'Рабочий процесс не используется',
|
||||
},
|
||||
},
|
||||
addType: {
|
||||
title: 'Добавить подписку',
|
||||
description: 'Выберите, как вы хотите создать подписку на триггер',
|
||||
options: {
|
||||
apikey: {
|
||||
title: 'Создать с помощью ключа API',
|
||||
description: 'Автоматически создавать подписку с использованием учетных данных API',
|
||||
},
|
||||
oauth: {
|
||||
title: 'Создать с помощью OAuth',
|
||||
description: 'Авторизуйтесь через стороннюю платформу, чтобы создать подписку',
|
||||
clientSettings: 'Настройки клиента OAuth',
|
||||
clientTitle: 'Клиент OAuth',
|
||||
default: 'По умолчанию',
|
||||
custom: 'Пользовательский',
|
||||
},
|
||||
manual: {
|
||||
title: 'Ручная настройка',
|
||||
description: 'Вставьте URL для создания новой подписки',
|
||||
tip: 'Настроить URL на сторонней платформе вручную',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
modal: {
|
||||
steps: {
|
||||
verify: 'Проверить',
|
||||
configuration: 'Конфигурация',
|
||||
},
|
||||
common: {
|
||||
cancel: 'Отмена',
|
||||
back: 'Назад',
|
||||
next: 'Далее',
|
||||
create: 'Создать',
|
||||
verify: 'Проверить',
|
||||
authorize: 'Авторизовать',
|
||||
creating: 'Создание...',
|
||||
verifying: 'Проверка...',
|
||||
authorizing: 'Авторизация...',
|
||||
},
|
||||
oauthRedirectInfo: 'Так как для этого поставщика инструментов не найдены клиентские секреты системы, необходимо настроить его вручную, для redirect_uri используйте',
|
||||
apiKey: {
|
||||
title: 'Создать с помощью ключа API',
|
||||
verify: {
|
||||
title: 'Проверить учетные данные',
|
||||
description: 'Пожалуйста, предоставьте свои учетные данные API для проверки доступа',
|
||||
error: 'Проверка учетных данных не удалась. Пожалуйста, проверьте ваш API-ключ.',
|
||||
success: 'Учётные данные успешно проверены',
|
||||
},
|
||||
configuration: {
|
||||
title: 'Настроить подписку',
|
||||
description: 'Настройте параметры подписки',
|
||||
},
|
||||
},
|
||||
oauth: {
|
||||
title: 'Создать с помощью OAuth',
|
||||
authorization: {
|
||||
title: 'Авторизация OAuth',
|
||||
description: 'Разрешить Dify доступ к вашему аккаунту',
|
||||
redirectUrl: 'URL перенаправления',
|
||||
redirectUrlHelp: 'Используйте этот URL в настройках вашего приложения OAuth',
|
||||
authorizeButton: 'Авторизоваться с {{provider}}',
|
||||
waitingAuth: 'Ожидание авторизации...',
|
||||
authSuccess: 'Авторизация прошла успешно',
|
||||
authFailed: 'Не удалось получить информацию об авторизации OAuth',
|
||||
waitingJump: 'Авторизовано, ожидаем прыжка',
|
||||
},
|
||||
configuration: {
|
||||
title: 'Настроить подписку',
|
||||
description: 'Настройте параметры подписки после авторизации',
|
||||
success: 'Настройка OAuth выполнена успешно',
|
||||
failed: 'Сбой настройки OAuth',
|
||||
},
|
||||
remove: {
|
||||
success: 'OAuth успешно удалён',
|
||||
failed: 'Сбой при удалении OAuth',
|
||||
},
|
||||
save: {
|
||||
success: 'Настройка OAuth успешно сохранена',
|
||||
},
|
||||
},
|
||||
manual: {
|
||||
title: 'Ручная настройка',
|
||||
description: 'Настройте подписку на вебхук вручную',
|
||||
logs: {
|
||||
title: 'Журналы запросов',
|
||||
request: 'Запрос',
|
||||
loading: 'Ожидание запроса от {{pluginName}}...',
|
||||
},
|
||||
},
|
||||
form: {
|
||||
subscriptionName: {
|
||||
label: 'Название подписки',
|
||||
placeholder: 'Введите название подписки',
|
||||
required: 'Требуется название подписки',
|
||||
},
|
||||
callbackUrl: {
|
||||
label: 'URL для обратного вызова',
|
||||
description: 'Этот URL будет получать события вебхука',
|
||||
tooltip: 'Предоставьте общедоступную точку доступа, которая может принимать обратные вызовы от поставщика триггеров.',
|
||||
placeholder: 'Генерация...',
|
||||
privateAddressWarning: 'Похоже, что этот URL является внутренним адресом, из-за чего запросы вебхука могут не выполняться. Вы можете изменить TRIGGER_URL на публичный адрес.',
|
||||
},
|
||||
},
|
||||
errors: {
|
||||
createFailed: 'Не удалось создать подписку',
|
||||
verifyFailed: 'Не удалось проверить учетные данные',
|
||||
authFailed: 'Авторизация не удалась',
|
||||
networkError: 'Ошибка сети, пожалуйста, попробуйте ещё раз',
|
||||
},
|
||||
},
|
||||
events: {
|
||||
title: 'Доступные события',
|
||||
description: 'События, на которые может подписываться этот плагин триггера',
|
||||
empty: 'События отсутствуют',
|
||||
event: 'Событие',
|
||||
events: 'События',
|
||||
actionNum: '{{num}} {{event}} ВКЛЮЧЕНО',
|
||||
item: {
|
||||
parameters: 'параметры {{count}}',
|
||||
noParameters: 'Нет параметров',
|
||||
},
|
||||
output: 'Вывод',
|
||||
},
|
||||
node: {
|
||||
status: {
|
||||
warning: 'Отключить',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
320
dify/web/i18n/ru-RU/plugin.ts
Normal file
320
dify/web/i18n/ru-RU/plugin.ts
Normal file
@@ -0,0 +1,320 @@
|
||||
const translation = {
|
||||
category: {
|
||||
extensions: 'Расширения',
|
||||
tools: 'Инструменты',
|
||||
models: 'Модели',
|
||||
all: 'Все',
|
||||
bundles: 'Пакеты',
|
||||
agents: 'Агентские стратегии',
|
||||
datasources: 'Источники данных',
|
||||
triggers: 'Триггеры',
|
||||
},
|
||||
categorySingle: {
|
||||
bundle: 'Связка',
|
||||
agent: 'Агентская стратегия',
|
||||
model: 'Модель',
|
||||
extension: 'Расширение',
|
||||
tool: 'Инструмент',
|
||||
datasource: 'Источник данных',
|
||||
trigger: 'Спусковой крючок',
|
||||
},
|
||||
list: {
|
||||
source: {
|
||||
github: 'Установка с GitHub',
|
||||
marketplace: 'Установка из Marketplace',
|
||||
local: 'Установка из локального файла пакета',
|
||||
},
|
||||
notFound: 'Плагины не найдены',
|
||||
noInstalled: 'Плагины не установлены',
|
||||
},
|
||||
source: {
|
||||
github: 'Сайт GitHub',
|
||||
marketplace: 'Рынок',
|
||||
local: 'Локальный файл пакета',
|
||||
},
|
||||
detailPanel: {
|
||||
categoryTip: {
|
||||
github: 'Установлено с Github',
|
||||
debugging: 'Плагин для отладки',
|
||||
local: 'Локальный плагин',
|
||||
marketplace: 'Установлено из Marketplace',
|
||||
},
|
||||
operation: {
|
||||
viewDetail: 'Подробнее',
|
||||
detail: 'Подробности',
|
||||
info: 'Информация о плагине',
|
||||
remove: 'Убирать',
|
||||
install: 'Устанавливать',
|
||||
update: 'Обновлять',
|
||||
checkUpdate: 'Проверить обновление',
|
||||
back: 'Назад',
|
||||
},
|
||||
toolSelector: {
|
||||
placeholder: 'Выберите инструмент...',
|
||||
auto: 'Автоматически',
|
||||
title: 'Добавить инструмент',
|
||||
uninstalledTitle: 'Инструмент не установлен',
|
||||
descriptionLabel: 'Описание инструмента',
|
||||
unsupportedTitle: 'Неподдерживаемое действие',
|
||||
settings: 'ПОЛЬЗОВАТЕЛЬСКИЕ НАСТРОЙКИ',
|
||||
unsupportedContent: 'Установленная версия плагина не предусматривает этого действия.',
|
||||
empty: 'Нажмите кнопку «+», чтобы добавить инструменты. Вы можете добавить несколько инструментов.',
|
||||
uninstalledContent: 'Этот плагин устанавливается из репозитория local/GitHub. Пожалуйста, используйте после установки.',
|
||||
paramsTip2: 'Когда параметр «Автоматически» выключен, используется значение по умолчанию.',
|
||||
toolLabel: 'Инструмент',
|
||||
paramsTip1: 'Управляет параметрами вывода LLM.',
|
||||
descriptionPlaceholder: 'Краткое описание назначения инструмента, например, получение температуры для конкретного места.',
|
||||
params: 'КОНФИГУРАЦИЯ РАССУЖДЕНИЙ',
|
||||
unsupportedContent2: 'Нажмите, чтобы переключить версию.',
|
||||
uninstalledLink: 'Управление в плагинах',
|
||||
toolSetting: 'Настройки инструмента',
|
||||
unsupportedMCPTool: 'В настоящее время выбранная версия плагина стратегий агента не поддерживает инструменты MCP.',
|
||||
},
|
||||
configureTool: 'Инструмент настройки',
|
||||
endpointsTip: 'Этот плагин предоставляет определенные функциональные возможности через конечные точки, и вы можете настроить несколько наборов конечных точек для текущей рабочей области.',
|
||||
endpointDeleteTip: 'Удалить конечную точку',
|
||||
disabled: 'Нетрудоспособный',
|
||||
serviceOk: 'Услуга ОК',
|
||||
configureApp: 'Настройка приложения',
|
||||
endpointDeleteContent: 'Хотели бы вы удалить {{name}}?',
|
||||
strategyNum: '{{число}} {{Стратегия}} ВКЛЮЧЕННЫЙ',
|
||||
endpoints: 'Конечные точки',
|
||||
modelNum: '{{число}} МОДЕЛИ В КОМПЛЕКТЕ',
|
||||
endpointDisableTip: 'Отключить конечную точку',
|
||||
configureModel: 'Настройка модели',
|
||||
endpointModalDesc: 'После настройки можно использовать функции, предоставляемые плагином через конечные точки API.',
|
||||
endpointModalTitle: 'Настройка конечной точки',
|
||||
actionNum: '{{число}} {{действие}} ВКЛЮЧЕННЫЙ',
|
||||
endpointDisableContent: 'Хотели бы вы отключить {{name}}?',
|
||||
endpointsEmpty: 'Нажмите кнопку «+», чтобы добавить конечную точку',
|
||||
switchVersion: 'Версия для переключателя',
|
||||
endpointsDocLink: 'Посмотреть документ',
|
||||
deprecation: {
|
||||
reason: {
|
||||
businessAdjustments: 'бизнес-правки',
|
||||
ownershipTransferred: 'передача права собственности',
|
||||
noMaintainer: 'нет сопровождающего',
|
||||
},
|
||||
noReason: 'Этот плагин был устаревшим и больше не будет обновляться.',
|
||||
onlyReason: 'Этот плагин был устаревшим из-за {{deprecatedReason}} и больше не будет обновляться.',
|
||||
fullMessage: 'Этот плагин больше не поддерживается по причине {{deprecatedReason}} и больше не будет обновляться. Пожалуйста, используйте <CustomLink href=\'https://example.com/\'>{{-alternativePluginId}}</CustomLink> вместо этого.',
|
||||
},
|
||||
},
|
||||
debugInfo: {
|
||||
title: 'Отладка',
|
||||
viewDocs: 'Просмотр документации',
|
||||
},
|
||||
privilege: {
|
||||
whoCanDebug: 'Кто может отлаживать плагины?',
|
||||
admins: 'Админы',
|
||||
noone: 'Никто',
|
||||
everyone: 'Каждый',
|
||||
title: 'Настройки плагина',
|
||||
whoCanInstall: 'Кто может устанавливать плагины и управлять ими?',
|
||||
},
|
||||
pluginInfoModal: {
|
||||
packageName: 'Пакет',
|
||||
title: 'Информация о плагине',
|
||||
repository: 'Хранилище',
|
||||
release: 'Отпускать',
|
||||
},
|
||||
action: {
|
||||
deleteContentLeft: 'Вы хотели бы удалить',
|
||||
pluginInfo: 'Информация о плагине',
|
||||
checkForUpdates: 'Проверка обновлений',
|
||||
delete: 'Удалить плагин',
|
||||
deleteContentRight: 'Плагин?',
|
||||
usedInApps: 'Этот плагин используется в приложениях {{num}}.',
|
||||
},
|
||||
installModal: {
|
||||
labels: {
|
||||
package: 'Пакет',
|
||||
version: 'Версия',
|
||||
repository: 'Хранилище',
|
||||
},
|
||||
readyToInstall: 'О программе установки следующего плагина',
|
||||
close: 'Закрывать',
|
||||
installedSuccessfully: 'Установка успешна',
|
||||
dropPluginToInstall: 'Перетащите пакет плагина сюда для установки',
|
||||
uploadFailed: 'Ошибка загрузки',
|
||||
cancel: 'Отмена',
|
||||
installFailed: 'Ошибка установки',
|
||||
readyToInstallPackages: 'О необходимости установки следующих плагинов {{num}}',
|
||||
installedSuccessfullyDesc: 'Плагин успешно установлен.',
|
||||
installComplete: 'Монтаж завершен',
|
||||
next: 'Следующий',
|
||||
fromTrustSource: 'Убедитесь, что вы устанавливаете плагины только из <trustSource>надежного источника</trustSource>.',
|
||||
install: 'Устанавливать',
|
||||
installPlugin: 'Установить плагин',
|
||||
installFailedDesc: 'Плагин был установлен не удалось.',
|
||||
back: 'Назад',
|
||||
pluginLoadErrorDesc: 'Этот плагин не будет установлен',
|
||||
installing: 'Установка...',
|
||||
uploadingPackage: 'Загрузка {{packageName}}...',
|
||||
pluginLoadError: 'Ошибка загрузки плагина',
|
||||
readyToInstallPackage: 'О программе установки следующего плагина',
|
||||
installWarning: 'Этот плагин не разрешено устанавливать.',
|
||||
},
|
||||
installFromGitHub: {
|
||||
gitHubRepo: 'Репозиторий GitHub',
|
||||
selectPackagePlaceholder: 'Пожалуйста, выберите пакет',
|
||||
installNote: 'Убедитесь, что вы устанавливаете плагины только из надежного источника.',
|
||||
selectPackage: 'Выбрать пакет',
|
||||
installedSuccessfully: 'Установка успешна',
|
||||
selectVersion: 'Выберите версию',
|
||||
updatePlugin: 'Обновление плагина с GitHub',
|
||||
installFailed: 'Ошибка установки',
|
||||
uploadFailed: 'Ошибка загрузки',
|
||||
installPlugin: 'Установка плагина с GitHub',
|
||||
selectVersionPlaceholder: 'Пожалуйста, выберите версию',
|
||||
},
|
||||
upgrade: {
|
||||
close: 'Закрывать',
|
||||
upgrading: 'Установка...',
|
||||
successfulTitle: 'Установка успешна',
|
||||
title: 'Установить плагин',
|
||||
upgrade: 'Устанавливать',
|
||||
usedInApps: 'Используется в приложениях {{num}}',
|
||||
description: 'О программе установки следующего плагина',
|
||||
},
|
||||
error: {
|
||||
inValidGitHubUrl: 'Недопустимый URL-адрес GitHub. Пожалуйста, введите действительный URL-адрес в формате: https://github.com/owner/repo',
|
||||
noReleasesFound: 'Релизы не найдены. Пожалуйста, проверьте репозиторий GitHub или входной URL.',
|
||||
fetchReleasesError: 'Не удается получить релизы. Пожалуйста, повторите попытку позже.',
|
||||
},
|
||||
marketplace: {
|
||||
sortOption: {
|
||||
newlyReleased: 'Недавно выпущенные',
|
||||
mostPopular: 'Самые популярные',
|
||||
firstReleased: 'Впервые выпущен',
|
||||
recentlyUpdated: 'Недавно обновленные',
|
||||
},
|
||||
pluginsResult: 'Результаты {{num}}',
|
||||
moreFrom: 'Больше из Marketplace',
|
||||
noPluginFound: 'Плагин не найден',
|
||||
sortBy: 'Черный город',
|
||||
empower: 'Расширьте возможности разработки ИИ',
|
||||
difyMarketplace: 'Торговая площадка Dify',
|
||||
viewMore: 'Подробнее',
|
||||
and: 'и',
|
||||
discover: 'Обнаруживать',
|
||||
verifiedTip: 'Подтверждено Dify',
|
||||
partnerTip: 'Подтверждено партнером Dify',
|
||||
},
|
||||
task: {
|
||||
installing: 'Установка плагинов {{installingLength}}, 0 готово.',
|
||||
installingWithError: 'Установка плагинов {{installingLength}}, {{successLength}} успех, {{errorLength}} неудачный',
|
||||
clearAll: 'Очистить все',
|
||||
installingWithSuccess: 'Установка плагинов {{installingLength}}, {{successLength}} успех.',
|
||||
installedError: 'плагины {{errorLength}} не удалось установить',
|
||||
installError: 'Плагины {{errorLength}} не удалось установить, нажмите для просмотра',
|
||||
},
|
||||
install: '{{num}} установок',
|
||||
searchCategories: 'Поиск категорий',
|
||||
search: 'Искать',
|
||||
searchInMarketplace: 'Поиск в маркетплейсе',
|
||||
searchTools: 'Инструменты поиска...',
|
||||
allCategories: 'Все категории',
|
||||
endpointsEnabled: '{{num}} наборы включенных конечных точек',
|
||||
installAction: 'Устанавливать',
|
||||
from: 'От',
|
||||
installFrom: 'УСТАНОВИТЬ С',
|
||||
findMoreInMarketplace: 'Узнайте больше в Marketplace',
|
||||
installPlugin: 'Установка плагина',
|
||||
searchPlugins: 'Плагины поиска',
|
||||
fromMarketplace: 'Из маркетплейса',
|
||||
metadata: {
|
||||
title: 'Плагины',
|
||||
},
|
||||
difyVersionNotCompatible: 'Текущая версия Dify не совместима с этим плагином, пожалуйста, обновите до минимально необходимой версии: {{minimalDifyVersion}}',
|
||||
requestAPlugin: 'Запросите плагин',
|
||||
publishPlugins: 'Публикация плагинов',
|
||||
auth: {
|
||||
oauthClient: 'OAuth клиент',
|
||||
oauthClientSettings: 'Настройки клиента OAuth',
|
||||
authorization: 'Авторизация',
|
||||
addOAuth: 'Добавить OAuth',
|
||||
custom: 'Пользовательский',
|
||||
setDefault: 'Установить по умолчанию',
|
||||
authRemoved: 'Авторы удалены',
|
||||
setupOAuth: 'Настройка клиента OAuth',
|
||||
useApi: 'Используйте API ключ',
|
||||
useOAuth: 'Используйте OAuth',
|
||||
authorizations: 'Авторизации',
|
||||
workspaceDefault: 'Рабочее пространство по умолчанию',
|
||||
authorizationName: 'Имя авторизации',
|
||||
default: 'По умолчанию',
|
||||
useOAuthAuth: 'Используйте авторизацию OAuth',
|
||||
addApi: 'Добавьте API-ключ',
|
||||
useApiAuth: 'Конфигурация авторизации ключа API',
|
||||
saveOnly: 'Сохранить только',
|
||||
saveAndAuth: 'Сохранить и авторизовать',
|
||||
useApiAuthDesc: 'После настройки учетных данных все члены рабочей области могут использовать этот инструмент при оркестрации приложений.',
|
||||
clientInfo: 'Поскольку не найдены секреты клиентской системы для этого поставщика инструментов, необходимо настроить его вручную, для redirect_uri, пожалуйста, используйте',
|
||||
unavailable: 'Недоступно',
|
||||
customCredentialUnavailable: 'Кастомные учетные данные в настоящее время недоступны',
|
||||
credentialUnavailable: 'Учетные данные в настоящее время недоступны. Пожалуйста, свяжитесь с администратором.',
|
||||
credentialUnavailableInButton: 'Учетные данные недоступны',
|
||||
emptyAuth: 'Пожалуйста, настройте аутентификацию',
|
||||
connectedWorkspace: 'Подключенное рабочее пространство',
|
||||
},
|
||||
deprecated: 'Устаревший',
|
||||
autoUpdate: {
|
||||
strategy: {
|
||||
disabled: {
|
||||
name: 'Отключен',
|
||||
description: 'Плагины не будут автоматически обновляться',
|
||||
},
|
||||
fixOnly: {
|
||||
name: 'Только исправить',
|
||||
selectedDescription: 'Автообновление только для версий патчей',
|
||||
description: 'Автообновление только для патч-версий (например, 1.0.1 → 1.0.2). Изменения в минорных версиях не вызовут обновления.',
|
||||
},
|
||||
latest: {
|
||||
name: 'Новости',
|
||||
selectedDescription: 'Всегда обновляйте до последней версии',
|
||||
description: 'Всегда обновляйте до последней версии',
|
||||
},
|
||||
},
|
||||
upgradeMode: {
|
||||
partial: 'Только выбрано',
|
||||
all: 'Обновить все',
|
||||
exclude: 'Исключить выбранное',
|
||||
},
|
||||
upgradeModePlaceholder: {
|
||||
partial: 'Только выбранные плагины будут автоматически обновляться. В данный момент плагины не выбраны, поэтому никакие плагины не будут автоматически обновляться.',
|
||||
exclude: 'Выбранные плагины не будут обновляться автоматически',
|
||||
},
|
||||
operation: {
|
||||
select: 'Выберите плагины',
|
||||
clearAll: 'Очистить все',
|
||||
},
|
||||
pluginDowngradeWarning: {
|
||||
exclude: 'Исключить из автообновления',
|
||||
title: 'Понижение версии плагина',
|
||||
downgrade: 'Все равно понизьте версию',
|
||||
description: 'Автообновление в данный момент включено для этого плагина. Понижение версии может привести к тому, что ваши изменения будут перезаписаны во время следующего автоматического обновления.',
|
||||
},
|
||||
noPluginPlaceholder: {
|
||||
noFound: 'Плагины не найдены',
|
||||
noInstalled: 'Нет установленных плагинов',
|
||||
},
|
||||
updateTimeTitle: 'Время обновления',
|
||||
updateTime: 'Время обновления',
|
||||
automaticUpdates: 'Автоматические обновления',
|
||||
updateSettings: 'Обновить настройки',
|
||||
nextUpdateTime: 'Следующее автообновление: {{time}}',
|
||||
specifyPluginsToUpdate: 'Укажите плагины для обновления',
|
||||
excludeUpdate: 'Следующие {{num}} плагины не будут обновляться автоматически',
|
||||
partialUPdate: 'Только следующие {{num}} плагины будут обновляться автоматически',
|
||||
changeTimezone: 'Чтобы изменить часовой пояс, перейдите в <setTimezone>Настройки</setTimezone>',
|
||||
},
|
||||
readmeInfo: {
|
||||
title: 'ПРОЧТИ_МЕНЯ',
|
||||
needHelpCheckReadme: 'Нужна помощь? Ознакомьтесь с файлом README.',
|
||||
noReadmeAvailable: 'README недоступен',
|
||||
failedToFetch: 'Не удалось получить README',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
4
dify/web/i18n/ru-RU/register.ts
Normal file
4
dify/web/i18n/ru-RU/register.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
const translation = {
|
||||
}
|
||||
|
||||
export default translation
|
||||
31
dify/web/i18n/ru-RU/run-log.ts
Normal file
31
dify/web/i18n/ru-RU/run-log.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
const translation = {
|
||||
input: 'ВВОД',
|
||||
result: 'РЕЗУЛЬТАТ',
|
||||
detail: 'ДЕТАЛИ',
|
||||
tracing: 'ТРАССИРОВКА',
|
||||
resultPanel: {
|
||||
status: 'СТАТУС',
|
||||
time: 'ПРОШЕДШЕЕ ВРЕМЯ',
|
||||
tokens: 'ВСЕГО ТОКЕНОВ',
|
||||
},
|
||||
meta: {
|
||||
title: 'МЕТАДАННЫЕ',
|
||||
status: 'Статус',
|
||||
version: 'Версия',
|
||||
executor: 'Исполнитель',
|
||||
startTime: 'Время начала',
|
||||
time: 'Прошедшее время',
|
||||
tokens: 'Всего токенов',
|
||||
steps: 'Шаги выполнения',
|
||||
},
|
||||
resultEmpty: {
|
||||
title: 'Этот запуск выводит только формат JSON,',
|
||||
tipLeft: 'пожалуйста, перейдите на ',
|
||||
link: 'панель деталей',
|
||||
tipRight: ' чтобы просмотреть его.',
|
||||
},
|
||||
circularInvocationTip: 'В текущем рабочем процессе существует циклический вызов инструментов/узлов.',
|
||||
actionLogs: 'Журналы действий',
|
||||
}
|
||||
|
||||
export default translation
|
||||
86
dify/web/i18n/ru-RU/share.ts
Normal file
86
dify/web/i18n/ru-RU/share.ts
Normal file
@@ -0,0 +1,86 @@
|
||||
const translation = {
|
||||
common: {
|
||||
welcome: '',
|
||||
appUnavailable: 'Приложение недоступно',
|
||||
appUnknownError: 'Приложение недоступно',
|
||||
},
|
||||
chat: {
|
||||
newChat: 'Новый чат',
|
||||
pinnedTitle: 'Закрепленные',
|
||||
unpinnedTitle: 'Чаты',
|
||||
newChatDefaultName: 'Новый разговор',
|
||||
resetChat: 'Сбросить разговор',
|
||||
poweredBy: 'Работает на',
|
||||
prompt: 'Подсказка',
|
||||
privatePromptConfigTitle: 'Настройки разговора',
|
||||
publicPromptConfigTitle: 'Начальная подсказка',
|
||||
configStatusDes: 'Перед началом вы можете изменить настройки разговора',
|
||||
configDisabled:
|
||||
'Для этого сеанса использовались настройки предыдущего сеанса.',
|
||||
startChat: 'Начать чат',
|
||||
privacyPolicyLeft:
|
||||
'Пожалуйста, ознакомьтесь с ',
|
||||
privacyPolicyMiddle:
|
||||
'политикой конфиденциальности',
|
||||
privacyPolicyRight:
|
||||
', предоставленной разработчиком приложения.',
|
||||
deleteConversation: {
|
||||
title: 'Удалить разговор',
|
||||
content: 'Вы уверены, что хотите удалить этот разговор?',
|
||||
},
|
||||
tryToSolve: 'Попробуйте решить',
|
||||
temporarySystemIssue: 'Извините, временная проблема с системой.',
|
||||
expand: 'Развернуть',
|
||||
collapse: 'Свернуть',
|
||||
viewChatSettings: 'Посмотреть настройки чата',
|
||||
chatSettingsTitle: 'Новая настройка чата',
|
||||
newChatTip: 'Уже в новом чате',
|
||||
chatFormTip: 'Настройки чата не могут быть изменены после его начала.',
|
||||
},
|
||||
generation: {
|
||||
tabs: {
|
||||
create: 'Запустить один раз',
|
||||
batch: 'Запустить пакетно',
|
||||
saved: 'Сохраненные',
|
||||
},
|
||||
savedNoData: {
|
||||
title: 'Вы еще не сохранили ни одного результата!',
|
||||
description: 'Начните генерировать контент, и вы найдете свои сохраненные результаты здесь.',
|
||||
startCreateContent: 'Начать создавать контент',
|
||||
},
|
||||
title: 'Завершение ИИ',
|
||||
queryTitle: 'Содержимое запроса',
|
||||
completionResult: 'Результат завершения',
|
||||
queryPlaceholder: 'Напишите содержимое вашего запроса...',
|
||||
run: 'Выполнить',
|
||||
copy: 'Копировать',
|
||||
resultTitle: 'Завершение ИИ',
|
||||
noData: 'ИИ даст вам то, что вы хотите, здесь.',
|
||||
csvUploadTitle: 'Перетащите сюда свой CSV-файл или ',
|
||||
browse: 'обзор',
|
||||
csvStructureTitle: 'CSV-файл должен соответствовать следующей структуре:',
|
||||
downloadTemplate: 'Скачать шаблон здесь',
|
||||
field: 'Поле',
|
||||
batchFailed: {
|
||||
info: '{{num}} неудачных выполнений',
|
||||
retry: 'Повторить попытку',
|
||||
outputPlaceholder: 'Нет выходного содержимого',
|
||||
},
|
||||
errorMsg: {
|
||||
empty: 'Пожалуйста, введите содержимое в загруженный файл.',
|
||||
fileStructNotMatch: 'Загруженный CSV-файл не соответствует структуре.',
|
||||
emptyLine: 'Строка {{rowIndex}} пуста',
|
||||
invalidLine: 'Строка {{rowIndex}}: значение {{varName}} не может быть пустым',
|
||||
moreThanMaxLengthLine: 'Строка {{rowIndex}}: значение {{varName}} не может превышать {{maxLength}} символов',
|
||||
atLeastOne: 'Пожалуйста, введите хотя бы одну строку в загруженный файл.',
|
||||
},
|
||||
execution: 'Запуск',
|
||||
executions: '{{num}} запусков',
|
||||
stopRun: 'Остановить выполнение',
|
||||
},
|
||||
login: {
|
||||
backToHome: 'Назад на главную',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
44
dify/web/i18n/ru-RU/time.ts
Normal file
44
dify/web/i18n/ru-RU/time.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
const translation = {
|
||||
daysInWeek: {
|
||||
Mon: 'Мой',
|
||||
Tue: 'Вторник',
|
||||
Sat: 'Суббота',
|
||||
Sun: 'Солнце',
|
||||
Thu: 'Четверг',
|
||||
Wed: 'Сряда',
|
||||
Fri: 'Свободно',
|
||||
},
|
||||
months: {
|
||||
March: 'Март',
|
||||
May: 'Май',
|
||||
April: 'Апрель',
|
||||
July: 'Июль',
|
||||
January: 'Январь',
|
||||
August: 'Август',
|
||||
December: 'Декабрь',
|
||||
February: 'Февраль',
|
||||
September: 'Сентябрь',
|
||||
October: 'Октябрь',
|
||||
June: 'Июнь',
|
||||
November: 'Ноябрь',
|
||||
},
|
||||
operation: {
|
||||
ok: 'Хорошо',
|
||||
pickDate: 'Выберите дату',
|
||||
now: 'Теперь',
|
||||
cancel: 'Отмена',
|
||||
},
|
||||
title: {
|
||||
pickTime: 'Выберите время',
|
||||
},
|
||||
defaultPlaceholder: 'Выберите время...',
|
||||
dateFormats: {
|
||||
display: 'MMMM D, YYYY',
|
||||
outputWithTime: 'YYYY-MM-DDTHH:mm:ss.SSSZ',
|
||||
displayWithTime: 'MMMM D, YYYY hh:mm A',
|
||||
output: 'ГГГГ-ММ-ДД',
|
||||
input: 'ГГГГ-ММ-ДД',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
257
dify/web/i18n/ru-RU/tools.ts
Normal file
257
dify/web/i18n/ru-RU/tools.ts
Normal file
@@ -0,0 +1,257 @@
|
||||
const translation = {
|
||||
title: 'Инструменты',
|
||||
createCustomTool: 'Создать пользовательский инструмент',
|
||||
customToolTip: 'Узнать больше о пользовательских инструментах Dify',
|
||||
type: {
|
||||
builtIn: 'Встроенные',
|
||||
custom: 'Пользовательские',
|
||||
workflow: 'Рабочий процесс',
|
||||
},
|
||||
contribute: {
|
||||
line1: 'Я заинтересован в',
|
||||
line2: 'внесении инструментов в Dify.',
|
||||
viewGuide: 'Посмотреть руководство',
|
||||
},
|
||||
author: 'Автор',
|
||||
auth: {
|
||||
authorized: 'Авторизовано',
|
||||
setup: 'Настроить авторизацию для использования',
|
||||
setupModalTitle: 'Настроить авторизацию',
|
||||
setupModalTitleDescription: 'После настройки учетных данных все участники рабочего пространства смогут использовать этот инструмент при оркестровке приложений.',
|
||||
},
|
||||
includeToolNum: 'Включено {{num}} инструментов',
|
||||
addToolModal: {
|
||||
type: 'тип',
|
||||
category: 'категория',
|
||||
added: 'добавлено',
|
||||
custom: {
|
||||
title: 'Нет доступного пользовательского инструмента',
|
||||
tip: 'Создать пользовательский инструмент',
|
||||
},
|
||||
workflow: {
|
||||
title: 'Нет доступного инструмента рабочего процесса',
|
||||
tip: 'Публиковать рабочие процессы как инструменты в Студии',
|
||||
},
|
||||
mcp: {
|
||||
title: 'Нет доступного инструмента MCP',
|
||||
tip: 'Добавить сервер MCP',
|
||||
},
|
||||
agent: {
|
||||
title: 'Нет доступной стратегии агента',
|
||||
},
|
||||
},
|
||||
createTool: {
|
||||
title: 'Создать пользовательский инструмент',
|
||||
editAction: 'Настроить',
|
||||
editTitle: 'Редактировать пользовательский инструмент',
|
||||
name: 'Название',
|
||||
toolNamePlaceHolder: 'Введите название инструмента',
|
||||
nameForToolCall: 'Название вызова инструмента',
|
||||
nameForToolCallPlaceHolder: 'Используется для машинного распознавания, например getCurrentWeather, list_pets',
|
||||
nameForToolCallTip: 'Поддерживаются только цифры, буквы и подчеркивания.',
|
||||
description: 'Описание',
|
||||
descriptionPlaceholder: 'Краткое описание назначения инструмента, например, получить температуру для определенного местоположения.',
|
||||
schema: 'Схема',
|
||||
schemaPlaceHolder: 'Введите свою схему OpenAPI здесь',
|
||||
viewSchemaSpec: 'Посмотреть спецификацию OpenAPI-Swagger',
|
||||
importFromUrl: 'Импортировать из URL',
|
||||
importFromUrlPlaceHolder: 'https://...',
|
||||
urlError: 'Пожалуйста, введите действительный URL',
|
||||
examples: 'Примеры',
|
||||
exampleOptions: {
|
||||
json: 'Погода (JSON)',
|
||||
yaml: 'Зоомагазин (YAML)',
|
||||
blankTemplate: 'Пустой шаблон',
|
||||
},
|
||||
availableTools: {
|
||||
title: 'Доступные инструменты',
|
||||
name: 'Название',
|
||||
description: 'Описание',
|
||||
method: 'Метод',
|
||||
path: 'Путь',
|
||||
action: 'Действия',
|
||||
test: 'Тест',
|
||||
},
|
||||
authMethod: {
|
||||
title: 'Метод авторизации',
|
||||
type: 'Тип авторизации',
|
||||
keyTooltip: 'Ключ заголовка HTTP, вы можете оставить его как "Authorization", если не знаете, что это такое, или установить его на пользовательское значение',
|
||||
types: {
|
||||
none: 'Нет',
|
||||
apiKeyPlaceholder: 'Название заголовка HTTP для ключа API',
|
||||
apiValuePlaceholder: 'Введите ключ API',
|
||||
api_key_header: 'Заголовок',
|
||||
queryParamPlaceholder: 'Имя параметра запроса для API-ключа',
|
||||
api_key_query: 'Параметр запроса',
|
||||
},
|
||||
key: 'Ключ',
|
||||
value: 'Значение',
|
||||
queryParam: 'Параметр запроса',
|
||||
queryParamTooltip: 'Название параметра запроса API-ключа, который нужно передать, например, "key" в "https://example.com/test?key=API_KEY".',
|
||||
},
|
||||
authHeaderPrefix: {
|
||||
title: 'Тип авторизации',
|
||||
types: {
|
||||
basic: 'Базовый',
|
||||
bearer: 'Bearer',
|
||||
custom: 'Пользовательский',
|
||||
},
|
||||
},
|
||||
privacyPolicy: 'Политика конфиденциальности',
|
||||
privacyPolicyPlaceholder: 'Пожалуйста, введите политику конфиденциальности',
|
||||
toolInput: {
|
||||
title: 'Входные данные инструмента',
|
||||
name: 'Название',
|
||||
required: 'Обязательно',
|
||||
method: 'Метод',
|
||||
methodSetting: 'Настройка',
|
||||
methodSettingTip: 'Пользователь заполняет конфигурацию инструмента',
|
||||
methodParameter: 'Параметр',
|
||||
methodParameterTip: 'LLM заполняет во время вывода',
|
||||
label: 'Теги',
|
||||
labelPlaceholder: 'Выберите теги (необязательно)',
|
||||
description: 'Описание',
|
||||
descriptionPlaceholder: 'Описание значения параметра',
|
||||
},
|
||||
customDisclaimer: 'Пользовательский отказ от ответственности',
|
||||
customDisclaimerPlaceholder: 'Пожалуйста, введите пользовательский отказ от ответственности',
|
||||
confirmTitle: 'Подтвердить сохранение?',
|
||||
confirmTip: 'Приложения, использующие этот инструмент, будут затронуты',
|
||||
deleteToolConfirmTitle: 'Удалить этот инструмент?',
|
||||
deleteToolConfirmContent: 'Удаление инструмента необратимо. Пользователи больше не смогут получить доступ к вашему инструменту.',
|
||||
},
|
||||
test: {
|
||||
title: 'Тест',
|
||||
parametersValue: 'Параметры и значение',
|
||||
parameters: 'Параметры',
|
||||
value: 'Значение',
|
||||
testResult: 'Результаты теста',
|
||||
testResultPlaceholder: 'Результат теста будет отображаться здесь',
|
||||
},
|
||||
thought: {
|
||||
using: 'Использование',
|
||||
used: 'Использовано',
|
||||
requestTitle: 'Запрос к',
|
||||
responseTitle: 'Ответ от',
|
||||
},
|
||||
setBuiltInTools: {
|
||||
info: 'Информация',
|
||||
setting: 'Настройка',
|
||||
toolDescription: 'Описание инструмента',
|
||||
parameters: 'параметры',
|
||||
string: 'строка',
|
||||
number: 'число',
|
||||
required: 'Обязательно',
|
||||
infoAndSetting: 'Информация и настройки',
|
||||
file: 'файл',
|
||||
},
|
||||
noCustomTool: {
|
||||
title: 'Нет пользовательских инструментов!',
|
||||
content: 'Добавьте и управляйте своими пользовательскими инструментами здесь для создания приложений ИИ.',
|
||||
createTool: 'Создать инструмент',
|
||||
},
|
||||
noSearchRes: {
|
||||
title: 'Извините, результаты не найдены!',
|
||||
content: 'Мы не смогли найти никаких инструментов, соответствующих вашему поиску.',
|
||||
reset: 'Сбросить поиск',
|
||||
},
|
||||
builtInPromptTitle: 'Подсказка',
|
||||
toolRemoved: 'Инструмент удален',
|
||||
notAuthorized: 'Инструмент не авторизован',
|
||||
howToGet: 'Как получить',
|
||||
openInStudio: 'Открыть в Studio',
|
||||
toolNameUsageTip: 'Название вызова инструмента для рассуждений агента и подсказок',
|
||||
copyToolName: 'Копировать имя',
|
||||
noTools: 'Инструменты не найдены',
|
||||
mcp: {
|
||||
create: {
|
||||
cardTitle: 'Добавить MCP сервер (HTTP)',
|
||||
cardLink: 'Узнайте больше об интеграции MCP сервера',
|
||||
},
|
||||
noConfigured: 'Неконфигурированный сервер',
|
||||
updateTime: 'Обновлено',
|
||||
toolsCount: '{count} инструментов',
|
||||
noTools: 'Нет доступных инструментов',
|
||||
modal: {
|
||||
title: 'Добавить MCP сервер (HTTP)',
|
||||
editTitle: 'Редактировать MCP сервер (HTTP)',
|
||||
name: 'Имя и иконка',
|
||||
namePlaceholder: 'Назовите ваш MCP сервер',
|
||||
serverUrl: 'URL сервера',
|
||||
serverUrlPlaceholder: 'URL конечной точки сервера',
|
||||
serverUrlWarning: 'Обновление адреса сервера может нарушить работу приложений, которые зависят от этого сервера',
|
||||
serverIdentifier: 'Идентификатор сервера',
|
||||
serverIdentifierTip: 'Уникальный идентификатор MCP сервера в рабочем пространстве. Только строчные буквы, цифры, подчеркивания и дефисы. Максимум 24 символа.',
|
||||
serverIdentifierPlaceholder: 'Уникальный идентификатор, например, мой-сервер-mcp',
|
||||
serverIdentifierWarning: 'Сервер не будет распознан существующими приложениями после изменения ID',
|
||||
cancel: 'Отмена',
|
||||
save: 'Сохранить',
|
||||
confirm: 'Добавить и авторизовать',
|
||||
timeout: 'Тайм-аут',
|
||||
sseReadTimeout: 'Таймаут чтения SSE',
|
||||
headerValuePlaceholder: 'например, Токен носителя 123',
|
||||
headers: 'Заголовки',
|
||||
headerKey: 'Название заголовка',
|
||||
timeoutPlaceholder: 'тридцать',
|
||||
addHeader: 'Добавить заголовок',
|
||||
headerValue: 'Значение заголовка',
|
||||
headerKeyPlaceholder: 'например, Авторизация',
|
||||
noHeaders: 'Нет настроенных пользовательских заголовков',
|
||||
maskedHeadersTip: 'Значения заголовков скрыты для безопасности. Изменения обновят фактические значения.',
|
||||
headersTip: 'Дополнительные HTTP заголовки для отправки с запросами к серверу MCP',
|
||||
configurations: 'Конфигурации',
|
||||
clientID: 'Идентификатор клиента',
|
||||
clientSecretPlaceholder: 'Секрет клиента',
|
||||
useDynamicClientRegistration: 'Использовать динамическую регистрацию клиентов',
|
||||
clientSecret: 'Секрет клиента',
|
||||
authentication: 'Аутентификация',
|
||||
redirectUrlWarning: 'Пожалуйста, настройте ваш URL перенаправления OAuth на:',
|
||||
},
|
||||
delete: 'Удалить MCP сервер',
|
||||
deleteConfirmTitle: 'Вы действительно хотите удалить {mcp}?',
|
||||
operation: {
|
||||
edit: 'Редактировать',
|
||||
remove: 'Удалить',
|
||||
},
|
||||
authorize: 'Авторизовать',
|
||||
authorizing: 'Авторизация...',
|
||||
authorizingRequired: 'Требуется авторизация',
|
||||
authorizeTip: 'После авторизации инструменты будут отображены здесь.',
|
||||
update: 'Обновить',
|
||||
updating: 'Обновление',
|
||||
gettingTools: 'Получение инструментов...',
|
||||
updateTools: 'Обновление инструментов...',
|
||||
toolsEmpty: 'Инструменты не загружены',
|
||||
getTools: 'Получить инструменты',
|
||||
toolUpdateConfirmTitle: 'Обновить список инструментов',
|
||||
toolUpdateConfirmContent: 'Обновление списка инструментов может повлиять на существующие приложения. Вы хотите продолжить?',
|
||||
toolsNum: '{count} инструментов включено',
|
||||
onlyTool: '1 инструмент включен',
|
||||
identifier: 'Идентификатор сервера (Нажмите, чтобы скопировать)',
|
||||
server: {
|
||||
title: 'MCP Сервер',
|
||||
url: 'URL сервера',
|
||||
reGen: 'Хотите регенерировать URL сервера?',
|
||||
addDescription: 'Добавить описание',
|
||||
edit: 'Редактировать описание',
|
||||
modal: {
|
||||
addTitle: 'Добавить описание, чтобы включить MCP сервер',
|
||||
editTitle: 'Редактировать описание',
|
||||
description: 'Описание',
|
||||
descriptionPlaceholder: 'Объясните, что делает этот инструмент и как его должен использовать LLM',
|
||||
parameters: 'Параметры',
|
||||
parametersTip: 'Добавьте описания для каждого параметра, чтобы помочь LLM понять их назначение и ограничения.',
|
||||
parametersPlaceholder: 'Назначение и ограничения параметра',
|
||||
confirm: 'Активировать MCP сервер',
|
||||
},
|
||||
publishTip: 'Приложение не опубликовано. Пожалуйста, сначала опубликуйте приложение.',
|
||||
},
|
||||
toolItem: {
|
||||
parameters: 'Параметры',
|
||||
noDescription: 'Нет описания',
|
||||
},
|
||||
},
|
||||
allTools: 'Все инструменты',
|
||||
}
|
||||
|
||||
export default translation
|
||||
1291
dify/web/i18n/ru-RU/workflow.ts
Normal file
1291
dify/web/i18n/ru-RU/workflow.ts
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user