mirror of
https://github.com/langgenius/dify.git
synced 2024-11-16 11:42:29 +08:00
Add Russian language (#7860)
Co-authored-by: d8rt8v <alex@ydertev.ru> Co-authored-by: crazywoola <427733928@qq.com>
This commit is contained in:
parent
a8b9e01b3e
commit
35f13c7327
|
@ -49,6 +49,7 @@ export const NOTICE_I18N = {
|
|||
ko_KR: '중요 공지',
|
||||
pl_PL: 'Ważne ogłoszenie',
|
||||
uk_UA: 'Важливе повідомлення',
|
||||
ru_RU: 'Важное Уведомление',
|
||||
vi_VN: 'Thông báo quan trọng',
|
||||
it_IT: 'Avviso Importante',
|
||||
fa_IR: 'هشدار مهم',
|
||||
|
@ -74,6 +75,8 @@ export const NOTICE_I18N = {
|
|||
'Nasz system będzie niedostępny od 19:00 do 24:00 UTC 28 sierpnia w celu aktualizacji. W przypadku pytań prosimy o kontakt z naszym zespołem wsparcia (support@dify.ai). Doceniamy Twoją cierpliwość.',
|
||||
uk_UA:
|
||||
'Наша система буде недоступна з 19:00 до 24:00 UTC 28 серпня для оновлення. Якщо у вас виникнуть запитання, будь ласка, зв’яжіться з нашою службою підтримки (support@dify.ai). Дякуємо за терпіння.',
|
||||
ru_RU:
|
||||
'Наша система будет недоступна с 19:00 до 24:00 UTC 28 августа для обновления. По вопросам, пожалуйста, обращайтесь в нашу службу поддержки (support@dify.ai). Спасибо за ваше терпение',
|
||||
vi_VN:
|
||||
'Hệ thống của chúng tôi sẽ ngừng hoạt động từ 19:00 đến 24:00 UTC vào ngày 28 tháng 8 để nâng cấp. Nếu có thắc mắc, vui lòng liên hệ với nhóm hỗ trợ của chúng tôi (support@dify.ai). Chúng tôi đánh giá cao sự kiên nhẫn của bạn.',
|
||||
tr_TR:
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
"name": "Русский (Россия)",
|
||||
"prompt_name": "Russian",
|
||||
"example": " Привет, Dify!",
|
||||
"supported": false
|
||||
"supported": true
|
||||
},
|
||||
{
|
||||
"value": "it-IT",
|
||||
|
|
87
web/i18n/ru-RU/app-annotation.ts
Normal file
87
web/i18n/ru-RU/app-annotation.ts
Normal file
|
@ -0,0 +1,87 @@
|
|||
const translation = {
|
||||
title: 'Аннотации',
|
||||
name: 'Ответить на аннотацию',
|
||||
editBy: 'Ответ отредактирован {{author}}',
|
||||
noData: {
|
||||
title: 'Нет аннотаций',
|
||||
description: 'Вы можете редактировать аннотации во время отладки приложения или импортировать их массово здесь для получения качественного ответа.',
|
||||
},
|
||||
table: {
|
||||
header: {
|
||||
question: 'вопрос',
|
||||
answer: 'ответ',
|
||||
createdAt: 'создано',
|
||||
hits: 'попаданий',
|
||||
actions: 'действия',
|
||||
addAnnotation: 'Добавить аннотацию',
|
||||
bulkImport: 'Массовый импорт',
|
||||
bulkExport: 'Массовый экспорт',
|
||||
clearAll: 'Очистить все аннотации',
|
||||
},
|
||||
},
|
||||
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: 'Модель векторизации текста аннотаций, переключение между моделями будет осуществлено повторно, что приведет к дополнительным затратам.',
|
||||
}
|
||||
|
||||
export default translation
|
83
web/i18n/ru-RU/app-api.ts
Normal file
83
web/i18n/ru-RU/app-api.ts
Normal file
|
@ -0,0 +1,83 @@
|
|||
const translation = {
|
||||
apiServer: 'API Сервер',
|
||||
apiKey: 'API Ключ',
|
||||
status: 'Статус',
|
||||
disabled: 'Отключено',
|
||||
ok: 'В работе',
|
||||
copy: 'Копировать',
|
||||
copied: 'Скопировано',
|
||||
play: 'Запустить',
|
||||
pause: 'Приостановить',
|
||||
playing: 'Запущено',
|
||||
loading: 'Загрузка',
|
||||
merMaind: {
|
||||
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: 'Запрос',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
463
web/i18n/ru-RU/app-debug.ts
Normal file
463
web/i18n/ru-RU/app-debug.ts
Normal file
|
@ -0,0 +1,463 @@
|
|||
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: 'Вы можете импортировать знания в качестве контекста',
|
||||
words: 'Слова',
|
||||
textBlocks: 'Текстовые блоки',
|
||||
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: '',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
generate: {
|
||||
title: 'Генератор промпта',
|
||||
description: 'Генератор промпта использует настроенную модель для оптимизации промпта для повышения качества и улучшения структуры. Пожалуйста, напишите четкие и подробные инструкции.',
|
||||
tryIt: 'Попробуйте',
|
||||
instruction: 'Инструкции',
|
||||
instructionPlaceHolder: 'Напишите четкие и конкретные инструкции.',
|
||||
generate: 'Сгенерировать',
|
||||
resTitle: 'Сгенерированный промпт',
|
||||
noDataLine1: 'Опишите свой случай использования слева,',
|
||||
noDataLine2: 'предварительный просмотр оркестрации будет показан здесь.',
|
||||
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, чтобы улучшить свои письменные работы',
|
||||
},
|
||||
},
|
||||
},
|
||||
resetConfig: {
|
||||
title: 'Подтвердить сброс?',
|
||||
message:
|
||||
'Сброс отменяет изменения, восстанавливая последнюю опубликованную конфигурацию.',
|
||||
},
|
||||
errorMessage: {
|
||||
nameOfKeyRequired: 'имя ключа: {{key}} обязательно',
|
||||
valueOfVarRequired: 'значение {{key}} не может быть пустым',
|
||||
queryRequired: 'Требуется текст запроса.',
|
||||
waitForResponse:
|
||||
'Пожалуйста, дождитесь завершения ответа на предыдущее сообщение.',
|
||||
waitForBatchResponse:
|
||||
'Пожалуйста, дождитесь завершения ответа на пакетное задание.',
|
||||
notSelectModel: 'Пожалуйста, выберите модель',
|
||||
waitForImgUpload: 'Пожалуйста, дождитесь загрузки изображения',
|
||||
},
|
||||
chatSubTitle: 'Инструкции',
|
||||
completionSubTitle: 'Префикс Промпта',
|
||||
promptTip:
|
||||
'Промпт направляют ответы ИИ с помощью инструкций и ограничений. Вставьте переменные, такие как {{input}}. Этот Промпт не будет видна пользователям.',
|
||||
formattingChangedTitle: 'Форматирование изменено',
|
||||
formattingChangedText:
|
||||
'Изменение форматирования приведет к сбросу области отладки, вы уверены?',
|
||||
variableTitle: 'Переменные',
|
||||
variableTip:
|
||||
'Пользователи заполняют переменные в форме, автоматически заменяя переменные в промпте.',
|
||||
notSetVar: 'Переменные позволяют пользователям вводить промпты или вступительные замечания при заполнении форм. Вы можете попробовать ввести "{{input}}" в промптах.',
|
||||
autoAddVar: 'В предварительной промпте упоминаются неопределенные переменные, хотите ли вы добавить их в форму пользовательского ввода?',
|
||||
variableTable: {
|
||||
key: 'Ключ переменной',
|
||||
name: 'Имя поля пользовательского ввода',
|
||||
optional: 'Необязательно',
|
||||
type: 'Тип ввода',
|
||||
action: 'Действия',
|
||||
typeString: 'Строка',
|
||||
typeSelect: 'Выбор',
|
||||
},
|
||||
varKeyError: {
|
||||
canNoBeEmpty: '{{key}} обязательно',
|
||||
tooLong: '{{key}} слишком длинное. Не может быть длиннее 30 символов',
|
||||
notValid: '{{key}} недействительно. Может содержать только буквы, цифры и подчеркивания',
|
||||
notStartWithNumber: '{{key}} не может начинаться с цифры',
|
||||
keyAlreadyExists: '{{key}} уже существует',
|
||||
},
|
||||
otherError: {
|
||||
promptNoBeEmpty: 'Промпт не может быть пустой',
|
||||
historyNoBeEmpty: 'История разговоров должна быть установлена в промпте',
|
||||
queryNoBeEmpty: 'Запрос должен быть установлен в промпте',
|
||||
},
|
||||
variableConig: {
|
||||
'addModalTitle': 'Добавить поле ввода',
|
||||
'editModalTitle': 'Редактировать поле ввода',
|
||||
'description': 'Настройка для переменной {{varName}}',
|
||||
'fieldType': 'Тип поля',
|
||||
'string': 'Короткий текст',
|
||||
'text-input': 'Короткий текст',
|
||||
'paragraph': 'Абзац',
|
||||
'select': 'Выбор',
|
||||
'number': 'Число',
|
||||
'notSet': 'Не задано, попробуйте ввести {{input}} в префикс промпта',
|
||||
'stringTitle': 'Параметры текстового поля формы',
|
||||
'maxLength': 'Максимальная длина',
|
||||
'options': 'Варианты',
|
||||
'addOption': 'Добавить вариант',
|
||||
'apiBasedVar': 'Переменная на основе API',
|
||||
'varName': 'Имя переменной',
|
||||
'labelName': 'Имя метки',
|
||||
'inputPlaceholder': 'Пожалуйста, введите',
|
||||
'content': 'Содержимое',
|
||||
'required': 'Обязательно',
|
||||
'errorMsg': {
|
||||
labelNameRequired: 'Имя метки обязательно',
|
||||
varNameCanBeRepeat: 'Имя переменной не может повторяться',
|
||||
atLeastOneOption: 'Требуется хотя бы один вариант',
|
||||
optionRepeat: 'Есть повторяющиеся варианты',
|
||||
},
|
||||
},
|
||||
vision: {
|
||||
name: 'Зрение',
|
||||
description: 'Включение зрения позволит модели принимать изображения и отвечать на вопросы о них.',
|
||||
settings: 'Настройки',
|
||||
visionSettings: {
|
||||
title: 'Настройки зрения',
|
||||
resolution: 'Разрешение',
|
||||
resolutionTooltip: `Низкое разрешение позволит модели получать версию изображения с низким разрешением 512 x 512 и представлять изображение с бюджетом 65 токенов. Это позволяет API возвращать ответы быстрее и потреблять меньше входных токенов для случаев использования, не требующих высокой детализации.
|
||||
\n
|
||||
Высокое разрешение сначала позволит модели увидеть изображение с низким разрешением, а затем создаст детальные фрагменты входных изображений в виде квадратов 512 пикселей на основе размера входного изображения. Каждый из детальных фрагментов использует вдвое больший бюджет токенов, в общей сложности 129 токенов.`,
|
||||
high: 'Высокое',
|
||||
low: 'Низкое',
|
||||
uploadMethod: 'Метод загрузки',
|
||||
both: 'Оба',
|
||||
localUpload: 'Локальная загрузка',
|
||||
url: 'URL',
|
||||
uploadLimit: 'Лимит загрузки',
|
||||
},
|
||||
},
|
||||
voice: {
|
||||
name: 'Голос',
|
||||
defaultDisplay: 'Голос по умолчанию',
|
||||
description: 'Настройки преобразования текста в речь',
|
||||
settings: 'Настройки',
|
||||
voiceSettings: {
|
||||
title: 'Настройки голоса',
|
||||
language: 'Язык',
|
||||
resolutionTooltip: 'Язык, поддерживаемый преобразованием текста в речь.',
|
||||
voice: 'Голос',
|
||||
autoPlay: 'Автовоспроизведение',
|
||||
autoPlayEnabled: 'Включить',
|
||||
autoPlayDisabled: 'Выключить',
|
||||
},
|
||||
},
|
||||
openingStatement: {
|
||||
title: 'Начальное сообщение',
|
||||
add: 'Добавить',
|
||||
writeOpener: 'Написать начальное сообщение',
|
||||
placeholder: 'Напишите здесь свое начальное сообщение, вы можете использовать переменные, попробуйте ввести {{variable}}.',
|
||||
openingQuestion: 'Начальные вопросы',
|
||||
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: 'Изменение режима индексации и режима поиска может повлиять на приложения, связанные с этими знаниями.',
|
||||
},
|
||||
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: 'Включено',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
95
web/i18n/ru-RU/app-log.ts
Normal file
95
web/i18n/ru-RU/app-log.ts
Normal file
|
@ -0,0 +1,95 @@
|
|||
const translation = {
|
||||
title: 'Логирование',
|
||||
description: 'В логах записывается состояние работы приложения, включая пользовательский ввод и ответы ИИ.',
|
||||
dateTimeFormat: 'DD.MM.YYYY HH:mm',
|
||||
table: {
|
||||
header: {
|
||||
updatedTime: 'Время обновления',
|
||||
time: 'Время создания',
|
||||
endUser: 'Конечный пользователь или аккаунт',
|
||||
input: 'Ввод',
|
||||
output: 'Вывод',
|
||||
summary: 'Заголовок',
|
||||
messageCount: 'Количество сообщений',
|
||||
userRate: 'Оценка пользователя',
|
||||
adminRate: 'Оценка оп.',
|
||||
startTime: 'ВРЕМЯ НАЧАЛА',
|
||||
status: 'СТАТУС',
|
||||
runtime: 'ВРЕМЯ ВЫПОЛНЕНИЯ',
|
||||
tokens: 'ТОКЕНЫ',
|
||||
user: 'Конечный пользователь или аккаунт',
|
||||
version: 'ВЕРСИЯ',
|
||||
},
|
||||
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: 'Загруженные изображения',
|
||||
},
|
||||
filter: {
|
||||
period: {
|
||||
today: 'Сегодня',
|
||||
last7days: 'Последние 7 дней',
|
||||
last4weeks: 'Последние 4 недели',
|
||||
last3months: 'Последние 3 месяца',
|
||||
last12months: 'Последние 12 месяцев',
|
||||
monthToDate: 'С начала месяца',
|
||||
quarterToDate: 'С начала квартала',
|
||||
yearToDate: 'С начала года',
|
||||
allTime: 'Все время',
|
||||
},
|
||||
annotation: {
|
||||
all: 'Все',
|
||||
annotated: 'Аннотированные улучшения ({{count}} элементов)',
|
||||
not_annotated: 'Не аннотировано',
|
||||
},
|
||||
sortBy: 'Сортировать по:',
|
||||
descending: 'по убыванию',
|
||||
ascending: 'по возрастанию',
|
||||
},
|
||||
workflowTitle: 'Журналы рабочих процессов',
|
||||
workflowSubtitle: 'Журнал записал работу Automate.',
|
||||
runDetail: {
|
||||
title: 'Журнал разговоров',
|
||||
workflowTitle: 'Подробная информация о журнале',
|
||||
},
|
||||
promptLog: 'Журнал подсказок',
|
||||
agentLog: 'Журнал агента',
|
||||
viewLog: 'Просмотреть журнал',
|
||||
agentLogDetail: {
|
||||
agentMode: 'Режим агента',
|
||||
toolUsed: 'Использованный инструмент',
|
||||
iterations: 'Итерации',
|
||||
iteration: 'Итерация',
|
||||
finalProcessing: 'Окончательная обработка',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
168
web/i18n/ru-RU/app-overview.ts
Normal file
168
web/i18n/ru-RU/app-overview.ts
Normal file
|
@ -0,0 +1,168 @@
|
|||
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-значение',
|
||||
sso: {
|
||||
label: 'SSO аутентификация',
|
||||
title: 'WebApp SSO',
|
||||
description: 'Все пользователи должны войти в систему с помощью SSO перед использованием WebApp',
|
||||
tooltip: 'Обратитесь к администратору, чтобы включить WebApp SSO',
|
||||
},
|
||||
more: {
|
||||
entry: 'Показать больше настроек',
|
||||
copyright: 'Авторские права',
|
||||
copyRightPlaceholder: 'Введите имя автора или организации',
|
||||
privacyPolicy: 'Политика конфиденциальности',
|
||||
privacyPolicyPlaceholder: 'Введите ссылку на политику конфиденциальности',
|
||||
privacyPolicyTip: 'Помогает посетителям понять, какие данные собирает приложение, см. <privacyPolicyLink>Политику конфиденциальности</privacyPolicyLink> Dify.',
|
||||
customDisclaimer: 'Пользовательский отказ от ответственности',
|
||||
customDisclaimerPlaceholder: 'Введите текст пользовательского отказа от ответственности',
|
||||
customDisclaimerTip: 'Текст пользовательского отказа от ответственности будет отображаться на стороне клиента, предоставляя дополнительную информацию о приложении',
|
||||
},
|
||||
},
|
||||
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: 'Документация',
|
||||
},
|
||||
},
|
||||
},
|
||||
apiInfo: {
|
||||
title: 'API серверной части',
|
||||
explanation: 'Легко интегрируется в ваше приложение',
|
||||
accessibleAddress: 'Конечная точка API сервиса',
|
||||
doc: 'Справочник по API',
|
||||
},
|
||||
status: {
|
||||
running: 'В работе',
|
||||
disable: 'Отключено',
|
||||
},
|
||||
},
|
||||
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
|
133
web/i18n/ru-RU/app.ts
Normal file
133
web/i18n/ru-RU/app.ts
Normal file
|
@ -0,0 +1,133 @@
|
|||
const translation = {
|
||||
createApp: 'СОЗДАТЬ ПРИЛОЖЕНИЕ',
|
||||
types: {
|
||||
all: 'Все',
|
||||
chatbot: 'Чат-бот',
|
||||
agent: 'Агент',
|
||||
workflow: 'Рабочий процесс',
|
||||
completion: 'Завершение',
|
||||
},
|
||||
duplicate: 'Дублировать',
|
||||
duplicateTitle: 'Дублировать приложение',
|
||||
export: 'Экспортировать DSL',
|
||||
exportFailed: 'Ошибка экспорта DSL.',
|
||||
importDSL: 'Импортировать файл DSL',
|
||||
createFromConfigFile: 'Создать из файла DSL',
|
||||
importFromDSL: 'Импортировать из DSL',
|
||||
importFromDSLFile: 'Из файла DSL',
|
||||
importFromDSLUrl: 'Из URL',
|
||||
importFromDSLUrlPlaceholder: 'Вставьте ссылку DSL сюда',
|
||||
deleteAppConfirmTitle: 'Удалить это приложение?',
|
||||
deleteAppConfirmContent:
|
||||
'Удаление приложения необратимо. Пользователи больше не смогут получить доступ к вашему приложению, и все настройки подсказок и журналы будут безвозвратно удалены.',
|
||||
appDeleted: 'Приложение удалено',
|
||||
appDeleteFailed: 'Не удалось удалить приложение',
|
||||
join: 'Присоединяйтесь к сообществу',
|
||||
communityIntro:
|
||||
'Общайтесь с членами команды, участниками и разработчиками на разных каналах.',
|
||||
roadmap: 'Посмотреть наш roadmap',
|
||||
newApp: {
|
||||
startFromBlank: 'Создать с нуля',
|
||||
startFromTemplate: 'Создать из шаблона',
|
||||
captionAppType: 'Какой тип приложения вы хотите создать?',
|
||||
chatbotDescription: 'Создайте приложение на основе чата. Это приложение использует формат вопросов и ответов, позволяя общаться непрерывно.',
|
||||
completionDescription: 'Создайте приложение, которое генерирует высококачественный текст на основе подсказок, например, генерирует статьи, резюме, переводы и многое другое.',
|
||||
completionWarning: 'Этот тип приложения больше не будет поддерживаться.',
|
||||
agentDescription: 'Создайте интеллектуального агента, который может автономно выбирать инструменты для выполнения задач',
|
||||
workflowDescription: 'Создайте приложение, которое генерирует высококачественный текст на основе рабочего процесса, организованного с высокой степенью настройки. Подходит для опытных пользователей.',
|
||||
workflowWarning: 'В настоящее время находится в бета-версии',
|
||||
chatbotType: 'Метод организации чат-бота',
|
||||
basic: 'Базовый',
|
||||
basicTip: 'Для начинающих, можно переключиться на Chatflow позже',
|
||||
basicFor: 'ДЛЯ НАЧИНАЮЩИХ',
|
||||
basicDescription: 'Базовый конструктор позволяет создать приложение чат-бота с помощью простых настроек, без возможности изменять встроенные подсказки. Подходит для начинающих.',
|
||||
advanced: 'Chatflow',
|
||||
advancedFor: 'Для продвинутых пользователей',
|
||||
advancedDescription: 'Организация рабочего процесса организует чат-ботов в виде рабочих процессов, предлагая высокую степень настройки, включая возможность редактирования встроенных подсказок. Подходит для опытных пользователей.',
|
||||
captionName: 'Значок и название приложения',
|
||||
appNamePlaceholder: 'Дайте вашему приложению имя',
|
||||
captionDescription: 'Описание',
|
||||
appDescriptionPlaceholder: 'Введите описание приложения',
|
||||
useTemplate: 'Использовать этот шаблон',
|
||||
previewDemo: 'Предварительный просмотр',
|
||||
chatApp: 'Ассистент',
|
||||
chatAppIntro:
|
||||
'Я хочу создать приложение на основе чата. Это приложение использует формат вопросов и ответов, позволяя общаться непрерывно.',
|
||||
agentAssistant: 'Новый Ассистент Агента',
|
||||
completeApp: 'Генератор текста',
|
||||
completeAppIntro:
|
||||
'Я хочу создать приложение, которое генерирует высококачественный текст на основе подсказок, например, генерирует статьи, резюме, переводы и многое другое.',
|
||||
showTemplates: 'Я хочу выбрать из шаблона',
|
||||
hideTemplates: 'Вернуться к выбору режима',
|
||||
Create: 'Создать',
|
||||
Cancel: 'Отмена',
|
||||
nameNotEmpty: 'Имя не может быть пустым',
|
||||
appTemplateNotSelected: 'Пожалуйста, выберите шаблон',
|
||||
appTypeRequired: 'Пожалуйста, выберите тип приложения',
|
||||
appCreated: 'Приложение создано',
|
||||
appCreateFailed: 'Не удалось создать приложение',
|
||||
},
|
||||
editApp: 'Редактировать информацию',
|
||||
editAppTitle: 'Редактировать информацию о приложении',
|
||||
editDone: 'Информация о приложении обновлена',
|
||||
editFailed: 'Не удалось обновить информацию о приложении',
|
||||
iconPicker: {
|
||||
ok: 'ОК',
|
||||
cancel: 'Отмена',
|
||||
emoji: 'Эмодзи',
|
||||
image: 'Изображение',
|
||||
},
|
||||
switch: 'Переключиться на Workflow',
|
||||
switchTipStart: 'Для вас будет создана новая копия Workflow. Новая копия ',
|
||||
switchTip: 'не позволит',
|
||||
switchTipEnd: ' переключиться обратно на базовую организацию.',
|
||||
switchLabel: 'Копия приложения, которая будет создана',
|
||||
removeOriginal: 'Удалить исходное приложение',
|
||||
switchStart: 'Переключиться',
|
||||
typeSelector: {
|
||||
all: 'ВСЕ типы',
|
||||
chatbot: 'Чат-бот',
|
||||
agent: 'Агент',
|
||||
workflow: 'Рабочий процесс',
|
||||
completion: 'Завершение',
|
||||
},
|
||||
tracing: {
|
||||
title: 'Отслеживание производительности приложения',
|
||||
description: 'Настройка стороннего поставщика LLMOps и отслеживание производительности приложения.',
|
||||
config: 'Настройка',
|
||||
view: 'Просмотр',
|
||||
collapse: 'Свернуть',
|
||||
expand: 'Развернуть',
|
||||
tracing: 'Отслеживание',
|
||||
disabled: 'Отключено',
|
||||
disabledTip: 'Пожалуйста, сначала настройте провайдера LLM',
|
||||
enabled: 'В работе',
|
||||
tracingDescription: 'Запись полного контекста выполнения приложения, включая вызовы LLM, контекст, подсказки, HTTP-запросы и многое другое, на стороннюю платформу трассировки.',
|
||||
configProviderTitle: {
|
||||
configured: 'Настроено',
|
||||
notConfigured: 'Настройте провайдера, чтобы включить трассировку',
|
||||
moreProvider: 'Больше провайдеров',
|
||||
},
|
||||
langsmith: {
|
||||
title: 'LangSmith',
|
||||
description: 'Универсальная платформа для разработчиков для каждого этапа жизненного цикла приложения на базе LLM.',
|
||||
},
|
||||
langfuse: {
|
||||
title: 'Langfuse',
|
||||
description: 'Трассировка, оценка, управление подсказками и метрики для отладки и улучшения вашего приложения LLM.',
|
||||
},
|
||||
inUse: 'Используется',
|
||||
configProvider: {
|
||||
title: 'Настройка ',
|
||||
placeholder: 'Введите ваш {{key}}',
|
||||
project: 'Проект',
|
||||
publicKey: 'Публичный ключ',
|
||||
secretKey: 'Секретный ключ',
|
||||
viewDocsLink: 'Посмотреть документацию {{key}}',
|
||||
removeConfirmTitle: 'Удалить конфигурацию {{key}}?',
|
||||
removeConfirmContent: 'Текущая конфигурация используется, ее удаление отключит функцию трассировки.',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
118
web/i18n/ru-RU/billing.ts
Normal file
118
web/i18n/ru-RU/billing.ts
Normal file
|
@ -0,0 +1,118 @@
|
|||
const translation = {
|
||||
currentPlan: 'Текущий тарифный план',
|
||||
upgradeBtn: {
|
||||
plain: 'Обновить тарифный план',
|
||||
encourage: 'Обновить сейчас',
|
||||
encourageShort: 'Обновить',
|
||||
},
|
||||
viewBilling: 'Управление счетами и подписками',
|
||||
buyPermissionDeniedTip: 'Пожалуйста, свяжитесь с администратором вашей организации, чтобы подписаться',
|
||||
plansCommon: {
|
||||
title: 'Выберите тарифный план, который подходит именно вам',
|
||||
yearlyTip: 'Получите 2 месяца бесплатно, подписавшись на год!',
|
||||
mostPopular: 'Самый популярный',
|
||||
planRange: {
|
||||
monthly: 'Ежемесячно',
|
||||
yearly: 'Ежегодно',
|
||||
},
|
||||
month: 'месяц',
|
||||
year: 'год',
|
||||
save: 'Сэкономить ',
|
||||
free: 'Бесплатно',
|
||||
currentPlan: 'Текущий тарифный план',
|
||||
contractSales: 'Связаться с отделом продаж',
|
||||
contractOwner: 'Связаться с руководителем команды',
|
||||
startForFree: 'Начать бесплатно',
|
||||
getStartedWith: 'Начать с ',
|
||||
contactSales: 'Связаться с отделом продаж',
|
||||
talkToSales: 'Поговорить с отделом продаж',
|
||||
modelProviders: 'Поставщики моделей',
|
||||
teamMembers: 'Участники команды',
|
||||
annotationQuota: 'Квота аннотаций',
|
||||
buildApps: 'Создать приложения',
|
||||
vectorSpace: 'Векторное пространство',
|
||||
vectorSpaceBillingTooltip: 'Каждый 1 МБ может хранить около 1,2 миллиона символов векторизованных данных (оценка с использованием Embeddings OpenAI, варьируется в зависимости от модели).',
|
||||
vectorSpaceTooltip: 'Векторное пространство - это система долговременной памяти, необходимая LLM для понимания ваших данных.',
|
||||
documentsUploadQuota: 'Квота загрузки документов',
|
||||
documentProcessingPriority: 'Приоритет обработки документов',
|
||||
documentProcessingPriorityTip: 'Для более высокого приоритета обработки документов, пожалуйста, обновите свой тарифный план.',
|
||||
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.',
|
||||
},
|
||||
annotatedResponse: {
|
||||
title: 'Ограничения квоты аннотаций',
|
||||
tooltip: 'Ручное редактирование и аннотирование ответов обеспечивает настраиваемые высококачественные возможности ответов на вопросы для приложений. (Применимо только в чат-приложениях)',
|
||||
},
|
||||
ragAPIRequestTooltip: 'Относится к количеству вызовов API, вызывающих только возможности обработки базы знаний Dify.',
|
||||
receiptInfo: 'Только владелец команды и администратор команды могут подписываться и просматривать информацию о выставлении счетов',
|
||||
},
|
||||
plans: {
|
||||
sandbox: {
|
||||
name: 'Песочница',
|
||||
description: '200 бесплатных пробных использований GPT',
|
||||
includesTitle: 'Включает:',
|
||||
},
|
||||
professional: {
|
||||
name: 'Профессиональный',
|
||||
description: 'Для частных лиц и небольших команд, чтобы разблокировать больше возможностей по доступной цене.',
|
||||
includesTitle: 'Все в бесплатном плане, плюс:',
|
||||
},
|
||||
team: {
|
||||
name: 'Команда',
|
||||
description: 'Сотрудничайте без ограничений и наслаждайтесь высочайшей производительностью.',
|
||||
includesTitle: 'Все в профессиональном плане, плюс:',
|
||||
},
|
||||
enterprise: {
|
||||
name: 'Корпоративный',
|
||||
description: 'Получите полный набор возможностей и поддержку для крупномасштабных критически важных систем.',
|
||||
includesTitle: 'Все в командном плане, плюс:',
|
||||
},
|
||||
},
|
||||
vectorSpace: {
|
||||
fullTip: 'Векторное пространство заполнено.',
|
||||
fullSolution: 'Обновите свой тарифный план, чтобы получить больше места.',
|
||||
},
|
||||
apps: {
|
||||
fullTipLine1: 'Обновите свой тарифный план, чтобы',
|
||||
fullTipLine2: 'создавать больше приложений.',
|
||||
},
|
||||
annotatedResponse: {
|
||||
fullTipLine1: 'Обновите свой тарифный план, чтобы',
|
||||
fullTipLine2: 'аннотировать больше разговоров.',
|
||||
quotaTitle: 'Квота ответов аннотаций',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
576
web/i18n/ru-RU/common.ts
Normal file
576
web/i18n/ru-RU/common.ts
Normal file
|
@ -0,0 +1,576 @@
|
|||
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: 'Переименовать',
|
||||
},
|
||||
errorMsg: {
|
||||
fieldRequired: '{{field}} обязательно',
|
||||
urlError: 'URL должен начинаться с http:// или https://',
|
||||
},
|
||||
placeholder: {
|
||||
input: 'Пожалуйста, введите',
|
||||
select: 'Пожалуйста, выберите',
|
||||
},
|
||||
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: 'Перейдите в настройки, чтобы добавить больше моделей',
|
||||
},
|
||||
menus: {
|
||||
status: 'бета',
|
||||
explore: 'Исследовать',
|
||||
apps: 'Студия',
|
||||
plugins: 'Плагины',
|
||||
pluginsTips: 'Интегрируйте сторонние плагины или создавайте совместимые с ChatGPT AI-плагины.',
|
||||
datasets: 'Знания',
|
||||
datasetsTips: 'СКОРО: Импортируйте свои собственные текстовые данные или записывайте данные в режиме реального времени через Webhook для улучшения контекста LLM.',
|
||||
newApp: 'Новое приложение',
|
||||
newDataset: 'Создать знания',
|
||||
tools: 'Инструменты',
|
||||
},
|
||||
userProfile: {
|
||||
settings: 'Настройки',
|
||||
emailSupport: 'Поддержка по электронной почте',
|
||||
workspace: 'Рабочее пространство',
|
||||
createWorkspace: 'Создать рабочее пространство',
|
||||
helpCenter: 'Помощь',
|
||||
roadmapAndFeedback: 'Обратная связь',
|
||||
community: 'Сообщество',
|
||||
about: 'О нас',
|
||||
logout: 'Выйти',
|
||||
},
|
||||
settings: {
|
||||
accountGroup: 'АККАУНТ',
|
||||
workplaceGroup: 'РАБОЧЕЕ ПРОСТРАНСТВО',
|
||||
account: 'Моя учетная запись',
|
||||
members: 'Участники',
|
||||
billing: 'Оплата',
|
||||
integrations: 'Интеграции',
|
||||
language: 'Язык',
|
||||
provider: 'Поставщик модели',
|
||||
dataSource: 'Источник данных',
|
||||
plugin: 'Плагины',
|
||||
apiBasedExtension: 'API расширение',
|
||||
},
|
||||
account: {
|
||||
avatar: 'Аватар',
|
||||
name: 'Имя',
|
||||
email: 'Электронная почта',
|
||||
password: 'Пароль',
|
||||
passwordTip: 'Вы можете установить постоянный пароль, если не хотите использовать временные коды входа',
|
||||
setPassword: 'Установить пароль',
|
||||
resetPassword: 'Сбросить пароль',
|
||||
currentPassword: 'Текущий пароль',
|
||||
newPassword: 'Новый пароль',
|
||||
confirmPassword: 'Подтвердите пароль',
|
||||
notEqual: 'Два пароля различаются.',
|
||||
langGeniusAccount: 'Учетная запись Dify',
|
||||
langGeniusAccountTip: 'Ваша учетная запись Dify и связанные с ней пользовательские данные.',
|
||||
editName: 'Редактировать имя',
|
||||
showAppLength: 'Показать {{length}} приложений',
|
||||
delete: 'Удалить учетную запись',
|
||||
deleteTip: 'Удаление вашей учетной записи приведет к безвозвратному удалению всех ваших данных, и их невозможно будет восстановить.',
|
||||
deleteConfirmTip: 'Для подтверждения, пожалуйста, отправьте следующее с вашего зарегистрированного адреса электронной почты на ',
|
||||
},
|
||||
members: {
|
||||
team: 'Команда',
|
||||
invite: 'Добавить',
|
||||
name: 'ИМЯ',
|
||||
lastActive: 'ПОСЛЕДНЯЯ АКТИВНОСТЬ',
|
||||
role: 'РОЛИ',
|
||||
pending: 'Ожидание...',
|
||||
owner: 'Владелец',
|
||||
admin: 'Администратор',
|
||||
adminTip: 'Может создавать приложения и управлять настройками команды',
|
||||
normal: 'Обычный',
|
||||
normalTip: 'Может только использовать приложения, не может создавать приложения',
|
||||
builder: 'Разработчик',
|
||||
builderTip: 'Может создавать и редактировать собственные приложения',
|
||||
editor: 'Редактор',
|
||||
editorTip: 'Может создавать и редактировать приложения',
|
||||
datasetOperator: 'Администратор знаний',
|
||||
datasetOperatorTip: 'Может управлять только базой знаний',
|
||||
inviteTeamMember: 'Добавить участника команды',
|
||||
inviteTeamMemberTip: 'Они могут получить доступ к данным вашей команды сразу после входа в систему.',
|
||||
email: 'Электронная почта',
|
||||
emailInvalid: 'Неверный формат электронной почты',
|
||||
emailPlaceholder: 'Пожалуйста, введите адреса электронной почты',
|
||||
sendInvite: 'Отправить приглашение',
|
||||
invitedAsRole: 'Приглашен как пользователь с ролью {{role}}',
|
||||
invitationSent: 'Приглашение отправлено',
|
||||
invitationSentTip: 'Приглашение отправлено, и они могут войти в Dify, чтобы получить доступ к данным вашей команды.',
|
||||
invitationLink: 'Ссылка для приглашения',
|
||||
failedinvitationEmails: 'Следующие пользователи не были успешно приглашены',
|
||||
ok: 'ОК',
|
||||
removeFromTeam: 'Удалить из команды',
|
||||
removeFromTeamTip: 'Удалить доступ к команде',
|
||||
setAdmin: 'Назначить администратором',
|
||||
setMember: 'Назначить обычным участником',
|
||||
setBuilder: 'Назначить разработчиком',
|
||||
setEditor: 'Назначить редактором',
|
||||
disinvite: 'Отменить приглашение',
|
||||
deleteMember: 'Удалить участника',
|
||||
you: '(Вы)',
|
||||
},
|
||||
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: 'Закрыть',
|
||||
},
|
||||
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: 'Обновите свой тарифный план, чтобы включить балансировку нагрузки.',
|
||||
},
|
||||
dataSource: {
|
||||
add: 'Добавить источник данных',
|
||||
connect: 'Подключить',
|
||||
configure: 'Настроить',
|
||||
notion: {
|
||||
title: 'Notion',
|
||||
description: 'Использование Notion в качестве источника данных для знаний.',
|
||||
connectedWorkspace: 'Подключенное рабочее пространство',
|
||||
addWorkspace: 'Добавить рабочее пространство',
|
||||
connected: 'Подключено',
|
||||
disconnected: 'Отключено',
|
||||
changeAuthorizedPages: 'Изменить авторизованные страницы',
|
||||
pagesAuthorized: 'Авторизованные страницы',
|
||||
sync: 'Синхронизировать',
|
||||
remove: 'Удалить',
|
||||
selector: {
|
||||
pageSelected: 'Выбранные страницы',
|
||||
searchPages: 'Поиск страниц...',
|
||||
noSearchResult: 'Нет результатов поиска',
|
||||
addPages: 'Добавить страницы',
|
||||
preview: 'ПРЕДПРОСМОТР',
|
||||
},
|
||||
},
|
||||
website: {
|
||||
title: 'Веб-сайт',
|
||||
description: 'Импортировать контент с веб-сайтов с помощью веб-краулера.',
|
||||
with: 'С',
|
||||
configuredCrawlers: 'Настроенные краулеры',
|
||||
active: 'Активный',
|
||||
inactive: 'Неактивный',
|
||||
},
|
||||
},
|
||||
plugin: {
|
||||
serpapi: {
|
||||
apiKey: 'Ключ API',
|
||||
apiKeyPlaceholder: 'Введите свой ключ API',
|
||||
keyFrom: 'Получите свой ключ SerpAPI на странице учетной записи SerpAPI',
|
||||
},
|
||||
},
|
||||
apiBasedExtension: {
|
||||
title: 'API-расширения обеспечивают централизованное управление API, упрощая настройку для удобного использования в приложениях Dify.',
|
||||
link: 'Узнайте, как разработать собственное API-расширение.',
|
||||
linkUrl: 'https://docs.dify.ai/features/extension/api_based_extension',
|
||||
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: 'связанные приложения',
|
||||
},
|
||||
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: 'Оценка совпадения:',
|
||||
},
|
||||
},
|
||||
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: 'Ошибка создания тега',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
30
web/i18n/ru-RU/custom.ts
Normal file
30
web/i18n/ru-RU/custom.ts
Normal file
|
@ -0,0 +1,30 @@
|
|||
const translation = {
|
||||
custom: 'Настройка',
|
||||
upgradeTip: {
|
||||
prefix: 'Обновите свой тарифный план, чтобы',
|
||||
suffix: 'настроить свой бренд.',
|
||||
},
|
||||
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
|
161
web/i18n/ru-RU/dataset-creation.ts
Normal file
161
web/i18n/ru-RU/dataset-creation.ts
Normal file
|
@ -0,0 +1,161 @@
|
|||
const translation = {
|
||||
steps: {
|
||||
header: {
|
||||
creation: 'Создать базу знаний',
|
||||
update: 'Добавить данные',
|
||||
},
|
||||
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: 'Перетащите файл или',
|
||||
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: 'Название не может быть пустым',
|
||||
nameLengthInvaild: 'Название должно быть от 1 до 40 символов',
|
||||
cancelButton: 'Отмена',
|
||||
confirmButton: 'Создать',
|
||||
failed: 'Ошибка создания',
|
||||
},
|
||||
website: {
|
||||
fireCrawlNotConfigured: 'Firecrawl не настроен',
|
||||
fireCrawlNotConfiguredDescription: 'Настройте Firecrawl с API-ключом.',
|
||||
configure: 'Настроить',
|
||||
run: 'Запустить',
|
||||
firecrawlTitle: 'Извлечь веб-контент с помощью 🔥Firecrawl',
|
||||
firecrawlDoc: 'Документация Firecrawl',
|
||||
firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
|
||||
options: 'Опции',
|
||||
crawlSubPage: 'Сканировать подстраницы',
|
||||
limit: 'Лимит',
|
||||
maxDepth: 'Максимальная глубина',
|
||||
excludePaths: 'Исключить пути',
|
||||
includeOnlyPaths: 'Включить только пути',
|
||||
extractOnlyMainContent: 'Извлекать только основной контент (без заголовков, навигации, футеров и т. д.)',
|
||||
exceptionErrorTitle: 'Произошло исключение при запуске задания Firecrawl:',
|
||||
unknownError: 'Неизвестная ошибка',
|
||||
totalPageScraped: 'Всего просканировано страниц:',
|
||||
selectAll: 'Выбрать все',
|
||||
resetAll: 'Сбросить все',
|
||||
scrapTimeInfo: 'Всего просканировано {{total}} страниц за {{time}} секунд',
|
||||
preview: 'Предварительный просмотр',
|
||||
maxDepthTooltip: 'Максимальная глубина сканирования относительно введенного URL. Глубина 0 сканирует только страницу введенного URL, глубина 1 сканирует URL и все, что находится после введенного URL + один /, и так далее.',
|
||||
},
|
||||
},
|
||||
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: 'Сегментировать с помощью',
|
||||
emstimateCost: 'Оценка',
|
||||
emstimateSegment: 'Оценочное количество фрагментов',
|
||||
segmentCount: 'фрагментов',
|
||||
calculating: 'Вычисление...',
|
||||
fileSource: 'Предварительная обработка документов',
|
||||
notionSource: 'Предварительная обработка страниц',
|
||||
websiteSource: 'Предварительная обработка веб-сайта',
|
||||
other: 'и другие ',
|
||||
fileUnit: ' файлов',
|
||||
notionUnit: ' страниц',
|
||||
webpageUnit: ' страниц',
|
||||
previousStep: 'Предыдущий шаг',
|
||||
nextStep: 'Сохранить и обработать',
|
||||
save: 'Сохранить и обработать',
|
||||
cancel: 'Отмена',
|
||||
sideTipTitle: 'Зачем нужна фрагментация и предварительная обработка?',
|
||||
sideTipP1: 'При обработке текстовых данных фрагментация и очистка являются двумя важными этапами предварительной обработки.',
|
||||
sideTipP2: 'Сегментация разбивает длинный текст на абзацы, чтобы модели могли лучше его понимать. Это улучшает качество и релевантность результатов модели.',
|
||||
sideTipP3: 'Очистка удаляет ненужные символы и форматы, делая знания более чистыми и легкими для анализа.',
|
||||
sideTipP4: 'Правильная фрагментация и очистка улучшают производительность модели, обеспечивая более точные и ценные результаты.',
|
||||
previewTitle: 'Предварительный просмотр',
|
||||
previewTitleButton: 'Предварительный просмотр',
|
||||
previewButton: 'Переключение в формат вопрос-ответ',
|
||||
previewSwitchTipStart: 'Текущий предварительный просмотр фрагмента находится в текстовом формате, переключение на предварительный просмотр в формате вопрос-ответ',
|
||||
previewSwitchTipEnd: ' потребляет дополнительные токены',
|
||||
characters: 'символов',
|
||||
indexSettedTip: 'Чтобы изменить метод индексации, пожалуйста, перейдите в ',
|
||||
retrivalSettedTip: 'Чтобы изменить метод индексации, пожалуйста, перейдите в ',
|
||||
datasetSettingLink: 'настройки базы знаний.',
|
||||
},
|
||||
stepThree: {
|
||||
creationTitle: '🎉 База знаний создана',
|
||||
creationContent: 'Мы автоматически назвали базу знаний, вы можете изменить ее в любое время',
|
||||
label: 'Название базы знаний',
|
||||
additionTitle: '🎉 Документ загружен',
|
||||
additionP1: 'Документ был загружен в базу знаний',
|
||||
additionP2: ', вы можете найти его в списке документов базы знаний.',
|
||||
stop: 'Остановить обработку',
|
||||
resume: 'Возобновить обработку',
|
||||
navTo: 'Перейти к документу',
|
||||
sideTipTitle: 'Что дальше',
|
||||
sideTipContent: 'После завершения индексации документа база знаний может быть интегрирована в приложение в качестве контекста, вы можете найти настройку контекста на странице prompt orchestration. Вы также можете создать-workflow приложение как отдельный как независимый плагин.',
|
||||
modelTitle: 'Вы уверены, что хотите остановить встраивание?',
|
||||
modelContent: 'Если вам нужно будет возобновить обработку позже, вы продолжите с того места, где остановились.',
|
||||
modelButtonConfirm: 'Подтвердить',
|
||||
modelButtonCancel: 'Отмена',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
352
web/i18n/ru-RU/dataset-documents.ts
Normal file
352
web/i18n/ru-RU/dataset-documents.ts
Normal file
|
@ -0,0 +1,352 @@
|
|||
const translation = {
|
||||
list: {
|
||||
title: 'Документы',
|
||||
desc: 'Здесь отображаются все файлы базы знаний, и вся база знаний может быть связана с цитатами Dify или проиндексирована с помощью чата.',
|
||||
addFile: 'Добавить файл',
|
||||
addPages: 'Добавить страницы',
|
||||
addUrl: 'Добавить URL',
|
||||
table: {
|
||||
header: {
|
||||
fileName: 'НАЗВАНИЕ ФАЙЛА',
|
||||
words: 'СЛОВА',
|
||||
hitCount: 'КОЛИЧЕСТВО ОБРАЩЕНИЙ',
|
||||
uploadTime: 'ВРЕМЯ ЗАГРУЗКИ',
|
||||
status: 'СТАТУС',
|
||||
action: 'ДЕЙСТВИЕ',
|
||||
},
|
||||
rename: 'Переименовать',
|
||||
name: 'Название',
|
||||
},
|
||||
action: {
|
||||
uploadFile: 'Загрузить новый файл',
|
||||
settings: 'Настройки сегментации',
|
||||
addButton: 'Добавить фрагмент',
|
||||
add: 'Добавить фрагмент',
|
||||
batchAdd: 'Пакетное добавление',
|
||||
archive: 'Архивировать',
|
||||
unarchive: 'Разархивировать',
|
||||
delete: 'Удалить',
|
||||
enableWarning: 'Архивный файл не может быть включен',
|
||||
sync: 'Синхронизировать',
|
||||
},
|
||||
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: 'ОК',
|
||||
},
|
||||
},
|
||||
metadata: {
|
||||
title: 'Метаданные',
|
||||
desc: 'Маркировка метаданных для документов позволяет ИИ своевременно получать к ним доступ и раскрывать источник ссылок для пользователей.',
|
||||
dateTimeFormat: 'D MMMM YYYY, HH:mm',
|
||||
docTypeSelectTitle: 'Пожалуйста, выберите тип документа',
|
||||
docTypeChangeTitle: 'Изменить тип документа',
|
||||
docTypeSelectWarning:
|
||||
'Если тип документа будет изменен, заполненные сейчас метаданные больше не будут сохранены',
|
||||
firstMetaAction: 'Поехали',
|
||||
placeholder: {
|
||||
add: 'Добавить ',
|
||||
select: 'Выбрать ',
|
||||
},
|
||||
source: {
|
||||
upload_file: 'Загрузить файл',
|
||||
notion: 'Синхронизировать из Notion',
|
||||
github: 'Синхронизировать из Github',
|
||||
},
|
||||
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: 'Дата публикации',
|
||||
topicsKeywords: 'Темы/Ключевые слова',
|
||||
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: 'Предварительный просмотр абзацев будет доступен после завершения расчета эмбеддингов',
|
||||
},
|
||||
segment: {
|
||||
paragraphs: 'Абзацы',
|
||||
keywords: 'Ключевые слова',
|
||||
addKeyWord: 'Добавить ключевое слово',
|
||||
keywordError: 'Максимальная длина ключевого слова - 20',
|
||||
characters: 'символов',
|
||||
hitCount: 'Количество обращений',
|
||||
vectorHash: 'Векторный хэш: ',
|
||||
questionPlaceholder: 'добавьте вопрос здесь',
|
||||
questionEmpty: 'Вопрос не может быть пустым',
|
||||
answerPlaceholder: 'добавьте ответ здесь',
|
||||
answerEmpty: 'Ответ не может быть пустым',
|
||||
contentPlaceholder: 'добавьте содержимое здесь',
|
||||
contentEmpty: 'Содержимое не может быть пустым',
|
||||
newTextSegment: 'Новый текстовый сегмент',
|
||||
newQaSegment: 'Новый сегмент вопрос-ответ',
|
||||
delete: 'Удалить этот фрагмент?',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
28
web/i18n/ru-RU/dataset-hit-testing.ts
Normal file
28
web/i18n/ru-RU/dataset-hit-testing.ts
Normal file
|
@ -0,0 +1,28 @@
|
|||
const translation = {
|
||||
title: 'Тестирование поиска',
|
||||
desc: 'Проверьте эффективность поиска в базе знаний на основе заданного текста запроса.',
|
||||
dateTimeFormat: 'DD.MM.YYYY HH:mm',
|
||||
recents: 'Недавние',
|
||||
table: {
|
||||
header: {
|
||||
source: 'Источник',
|
||||
text: 'Текст',
|
||||
time: 'Время',
|
||||
},
|
||||
},
|
||||
input: {
|
||||
title: 'Исходный текст',
|
||||
placeholder: 'Пожалуйста, введите текст, рекомендуется использовать короткое повествовательное предложение.',
|
||||
countWarning: 'До 200 символов.',
|
||||
indexWarning: 'Только база знаний высокого качества.',
|
||||
testing: 'Тестирование',
|
||||
},
|
||||
hit: {
|
||||
title: 'НАЙДЕННЫЕ АБЗАЦЫ',
|
||||
emptyTip: 'Результаты тестирования поиска будут отображаться здесь',
|
||||
},
|
||||
noRecentTip: 'Здесь нет результатов недавних запросов',
|
||||
viewChart: 'Посмотреть ВЕКТОРНУЮ ДИАГРАММУ',
|
||||
}
|
||||
|
||||
export default translation
|
35
web/i18n/ru-RU/dataset-settings.ts
Normal file
35
web/i18n/ru-RU/dataset-settings.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
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: ' о методе поиска, вы можете изменить это в любое время в настройках базы знаний.',
|
||||
},
|
||||
save: 'Сохранить',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
76
web/i18n/ru-RU/dataset.ts
Normal file
76
web/i18n/ru-RU/dataset.ts
Normal file
|
@ -0,0 +1,76 @@
|
|||
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: 'Недоступно',
|
||||
unavailableTip: 'Модель встраивания недоступна, необходимо настроить модель встраивания по умолчанию',
|
||||
datasets: 'БАЗЫ ЗНАНИЙ',
|
||||
datasetsApi: 'ДОСТУП К API',
|
||||
retrieval: {
|
||||
semantic_search: {
|
||||
title: 'Векторный поиск',
|
||||
description: 'Создайте встраивания запросов и найдите фрагмент текста, наиболее похожий на его векторное представление.',
|
||||
},
|
||||
full_text_search: {
|
||||
title: 'Полнотекстовый поиск',
|
||||
description: 'Индексируйте все термины в документе, позволяя пользователям искать любой термин и извлекать соответствующий фрагмент текста, содержащий эти термины.',
|
||||
},
|
||||
hybrid_search: {
|
||||
title: 'Гибридный поиск',
|
||||
description: 'Выполняйте полнотекстовый поиск и векторный поиск одновременно, переранжируйте, чтобы выбрать наилучшее соответствие запросу пользователя. Пользователи могут выбрать установку весов или настройку модели переранжирования.',
|
||||
recommend: 'Рекомендуется',
|
||||
},
|
||||
invertedIndex: {
|
||||
title: 'Инвертированный индекс',
|
||||
description: 'Инвертированный индекс - это структура, используемая для эффективного поиска. Организованный по терминам, каждый термин указывает на документы или веб-страницы, содержащие его.',
|
||||
},
|
||||
change: 'Изменить',
|
||||
changeRetrievalMethod: 'Изменить метод поиска',
|
||||
},
|
||||
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 будет официально прекращен в сентябре.',
|
||||
}
|
||||
|
||||
export default translation
|
41
web/i18n/ru-RU/explore.ts
Normal file
41
web/i18n/ru-RU/explore.ts
Normal file
|
@ -0,0 +1,41 @@
|
|||
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',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
4
web/i18n/ru-RU/layout.ts
Normal file
4
web/i18n/ru-RU/layout.ts
Normal file
|
@ -0,0 +1,4 @@
|
|||
const translation = {
|
||||
}
|
||||
|
||||
export default translation
|
75
web/i18n/ru-RU/login.ts
Normal file
75
web/i18n/ru-RU/login.ts
Normal file
|
@ -0,0 +1,75 @@
|
|||
const translation = {
|
||||
pageTitle: 'Привет, давайте начнем!👋',
|
||||
welcome: 'Добро пожаловать в Dify, пожалуйста, войдите, чтобы продолжить.',
|
||||
email: 'Адрес электронной почты',
|
||||
emailPlaceholder: 'Ваш адрес электронной почты',
|
||||
password: 'Пароль',
|
||||
passwordPlaceholder: 'Ваш пароль',
|
||||
name: 'Имя пользователя',
|
||||
namePlaceholder: 'Ваше имя пользователя',
|
||||
forget: 'Забыли пароль?',
|
||||
signBtn: 'Войти',
|
||||
sso: 'Продолжить с SSO',
|
||||
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',
|
||||
},
|
||||
license: {
|
||||
tip: 'Перед запуском Dify Community Edition ознакомьтесь с лицензией GitHub',
|
||||
link: 'Лицензия с открытым исходным кодом',
|
||||
},
|
||||
join: 'Присоединиться',
|
||||
joinTipStart: 'Приглашаем вас присоединиться к',
|
||||
joinTipEnd: 'команде на Dify',
|
||||
invalid: 'Ссылка истекла',
|
||||
explore: 'Изучить Dify',
|
||||
activatedTipStart: 'Вы присоединились к команде',
|
||||
activatedTipEnd: '',
|
||||
activated: 'Войдите сейчас',
|
||||
adminInitPassword: 'Пароль инициализации администратора',
|
||||
validate: 'Проверить',
|
||||
}
|
||||
|
||||
export default translation
|
4
web/i18n/ru-RU/register.ts
Normal file
4
web/i18n/ru-RU/register.ts
Normal file
|
@ -0,0 +1,4 @@
|
|||
const translation = {
|
||||
}
|
||||
|
||||
export default translation
|
29
web/i18n/ru-RU/run-log.ts
Normal file
29
web/i18n/ru-RU/run-log.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
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: ' чтобы просмотреть его.',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
74
web/i18n/ru-RU/share-app.ts
Normal file
74
web/i18n/ru-RU/share-app.ts
Normal file
|
@ -0,0 +1,74 @@
|
|||
const translation = {
|
||||
common: {
|
||||
welcome: '',
|
||||
appUnavailable: 'Приложение недоступно',
|
||||
appUnkonwError: 'Приложение недоступно',
|
||||
},
|
||||
chat: {
|
||||
newChat: 'Новый чат',
|
||||
pinnedTitle: 'Закрепленные',
|
||||
unpinnedTitle: 'Чаты',
|
||||
newChatDefaultName: 'Новый разговор',
|
||||
resetChat: 'Сбросить разговор',
|
||||
powerBy: 'Работает на',
|
||||
prompt: 'Подсказка',
|
||||
privatePromptConfigTitle: 'Настройки разговора',
|
||||
publicPromptConfigTitle: 'Начальная подсказка',
|
||||
configStatusDes: 'Перед началом вы можете изменить настройки разговора',
|
||||
configDisabled:
|
||||
'Для этого сеанса использовались настройки предыдущего сеанса.',
|
||||
startChat: 'Начать чат',
|
||||
privacyPolicyLeft:
|
||||
'Пожалуйста, ознакомьтесь с ',
|
||||
privacyPolicyMiddle:
|
||||
'политикой конфиденциальности',
|
||||
privacyPolicyRight:
|
||||
', предоставленной разработчиком приложения.',
|
||||
deleteConversation: {
|
||||
title: 'Удалить разговор',
|
||||
content: 'Вы уверены, что хотите удалить этот разговор?',
|
||||
},
|
||||
tryToSolve: 'Попробуйте решить',
|
||||
temporarySystemIssue: 'Извините, временная проблема с системой.',
|
||||
},
|
||||
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: 'Пожалуйста, введите хотя бы одну строку в загруженный файл.',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
153
web/i18n/ru-RU/tools.ts
Normal file
153
web/i18n/ru-RU/tools.ts
Normal file
|
@ -0,0 +1,153 @@
|
|||
const translation = {
|
||||
title: 'Инструменты',
|
||||
createCustomTool: 'Создать пользовательский инструмент',
|
||||
customToolTip: 'Узнать больше о пользовательских инструментах Dify',
|
||||
type: {
|
||||
all: 'Все',
|
||||
builtIn: 'Встроенные',
|
||||
custom: 'Пользовательские',
|
||||
workflow: 'Рабочий процесс',
|
||||
},
|
||||
contribute: {
|
||||
line1: 'Я заинтересован в',
|
||||
line2: 'внесении инструментов в Dify.',
|
||||
viewGuide: 'Посмотреть руководство',
|
||||
},
|
||||
author: 'Автор',
|
||||
auth: {
|
||||
unauthorized: 'Авторизовать',
|
||||
authorized: 'Авторизовано',
|
||||
setup: 'Настроить авторизацию для использования',
|
||||
setupModalTitle: 'Настроить авторизацию',
|
||||
setupModalTitleDescription: 'После настройки учетных данных все участники рабочего пространства смогут использовать этот инструмент при оркестровке приложений.',
|
||||
},
|
||||
includeToolNum: 'Включено {{num}} инструментов',
|
||||
addTool: 'Добавить инструмент',
|
||||
addToolModal: {
|
||||
type: 'тип',
|
||||
category: 'категория',
|
||||
add: 'добавить',
|
||||
added: 'добавлено',
|
||||
manageInTools: 'Управлять в инструментах',
|
||||
emptyTitle: 'Нет доступных инструментов рабочего процесса',
|
||||
emptyTip: 'Перейдите в "Рабочий процесс -> Опубликовать как инструмент"',
|
||||
},
|
||||
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: 'Нет',
|
||||
api_key: 'Ключ API',
|
||||
apiKeyPlaceholder: 'Название заголовка HTTP для ключа API',
|
||||
apiValuePlaceholder: 'Введите ключ API',
|
||||
},
|
||||
key: 'Ключ',
|
||||
value: 'Значение',
|
||||
},
|
||||
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: 'Информация и настройки',
|
||||
},
|
||||
noCustomTool: {
|
||||
title: 'Нет пользовательских инструментов!',
|
||||
content: 'Добавьте и управляйте своими пользовательскими инструментами здесь для создания приложений ИИ.',
|
||||
createTool: 'Создать инструмент',
|
||||
},
|
||||
noSearchRes: {
|
||||
title: 'Извините, результаты не найдены!',
|
||||
content: 'Мы не смогли найти никаких инструментов, соответствующих вашему поиску.',
|
||||
reset: 'Сбросить поиск',
|
||||
},
|
||||
builtInPromptTitle: 'Подсказка',
|
||||
toolRemoved: 'Инструмент удален',
|
||||
notAuthorized: 'Инструмент не авторизован',
|
||||
howToGet: 'Как получить',
|
||||
openInStudio: 'Открыть в Studio',
|
||||
toolNameUsageTip: 'Название вызова инструмента для рассуждений агента и подсказок',
|
||||
}
|
||||
|
||||
export default translation
|
540
web/i18n/ru-RU/workflow.ts
Normal file
540
web/i18n/ru-RU/workflow.ts
Normal file
|
@ -0,0 +1,540 @@
|
|||
const translation = {
|
||||
common: {
|
||||
undo: 'Отменить',
|
||||
redo: 'Повторить',
|
||||
editing: 'Редактирование',
|
||||
autoSaved: 'Автосохранено',
|
||||
unpublished: 'Не опубликовано',
|
||||
published: 'Опубликовано',
|
||||
publish: 'Опубликовать',
|
||||
update: 'Обновить',
|
||||
run: 'Запустить',
|
||||
running: 'Выполняется',
|
||||
inRunMode: 'В режиме выполнения',
|
||||
inPreview: 'В режиме предпросмотра',
|
||||
inPreviewMode: 'В режиме предпросмотра',
|
||||
preview: 'Предпросмотр',
|
||||
viewRunHistory: 'Посмотреть историю запусков',
|
||||
runHistory: 'История запусков',
|
||||
goBackToEdit: 'Вернуться к редактору',
|
||||
conversationLog: 'Журнал разговоров',
|
||||
features: 'Функции',
|
||||
debugAndPreview: 'Предпросмотр',
|
||||
restart: 'Перезапустить',
|
||||
currentDraft: 'Текущий черновик',
|
||||
currentDraftUnpublished: 'Текущий черновик не опубликован',
|
||||
latestPublished: 'Последняя опубликованная версия',
|
||||
publishedAt: 'Опубликовано',
|
||||
restore: 'Восстановить',
|
||||
runApp: 'Запустить приложение',
|
||||
batchRunApp: 'Пакетный запуск приложения',
|
||||
accessAPIReference: 'Доступ к справочнику API',
|
||||
embedIntoSite: 'Встроить на сайт',
|
||||
addTitle: 'Добавить заголовок...',
|
||||
addDescription: 'Добавить описание...',
|
||||
noVar: 'Нет переменной',
|
||||
searchVar: 'Поиск переменной',
|
||||
variableNamePlaceholder: 'Имя переменной',
|
||||
setVarValuePlaceholder: 'Установить значение переменной',
|
||||
needConnecttip: 'Этот шаг ни к чему не подключен',
|
||||
maxTreeDepth: 'Максимальный предел {{depth}} узлов на ветку',
|
||||
needEndNode: 'Необходимо добавить блок "Конец"',
|
||||
needAnswerNode: 'Необходимо добавить блок "Ответ"',
|
||||
workflowProcess: 'Процесс рабочего процесса',
|
||||
notRunning: 'Еще не запущено',
|
||||
previewPlaceholder: 'Введите текст в поле ниже, чтобы начать отладку чат-бота',
|
||||
effectVarConfirm: {
|
||||
title: 'Удалить переменную',
|
||||
content: 'Переменная используется в других узлах. Вы все еще хотите удалить ее?',
|
||||
},
|
||||
insertVarTip: 'Нажмите клавишу "/" чтобы быстро вставить',
|
||||
processData: 'Обработка данных',
|
||||
input: 'Вход',
|
||||
output: 'Выход',
|
||||
jinjaEditorPlaceholder: 'Введите "/" или "{" для вставки переменной',
|
||||
viewOnly: 'Только просмотр',
|
||||
showRunHistory: 'Показать историю запусков',
|
||||
enableJinja: 'Включить поддержку шаблонов Jinja',
|
||||
learnMore: 'Узнать больше',
|
||||
copy: 'Копировать',
|
||||
duplicate: 'Дублировать',
|
||||
addBlock: 'Добавить блок',
|
||||
pasteHere: 'Вставить сюда',
|
||||
pointerMode: 'Режим указателя',
|
||||
handMode: 'Режим руки',
|
||||
model: 'Модель',
|
||||
workflowAsTool: 'Рабочий процесс как инструмент',
|
||||
configureRequired: 'Требуется настройка',
|
||||
configure: 'Настроить',
|
||||
manageInTools: 'Управление в инструментах',
|
||||
workflowAsToolTip: 'После обновления рабочего процесса требуется перенастройка инструмента.',
|
||||
viewDetailInTracingPanel: 'Посмотреть подробности',
|
||||
syncingData: 'Синхронизация данных, всего несколько секунд.',
|
||||
importDSL: 'Импортировать DSL',
|
||||
importDSLTip: 'Текущий черновик будет перезаписан. Экспортируйте рабочий процесс в качестве резервной копии перед импортом.',
|
||||
backupCurrentDraft: 'Резервное копирование текущего черновика',
|
||||
chooseDSL: 'Выберите файл DSL(yml)',
|
||||
overwriteAndImport: 'Перезаписать и импортировать',
|
||||
importFailure: 'Ошибка импорта',
|
||||
importSuccess: 'Импорт успешно завершен',
|
||||
},
|
||||
env: {
|
||||
envPanelTitle: 'Переменные среды',
|
||||
envDescription: 'Переменные среды могут использоваться для хранения конфиденциальной информации и учетных данных. Они доступны только для чтения и могут быть отделены от файла DSL во время экспорта.',
|
||||
envPanelButton: 'Добавить переменную',
|
||||
modal: {
|
||||
title: 'Добавить переменную среды',
|
||||
editTitle: 'Редактировать переменную среды',
|
||||
type: 'Тип',
|
||||
name: 'Имя',
|
||||
namePlaceholder: 'Имя переменной среды',
|
||||
value: 'Значение',
|
||||
valuePlaceholder: 'Значение переменной среды',
|
||||
secretTip: 'Используется для определения конфиденциальной информации или данных, с настройками DSL, настроенными для предотвращения утечки.',
|
||||
},
|
||||
export: {
|
||||
title: 'Экспортировать секретные переменные среды?',
|
||||
checkbox: 'Экспортировать секретные значения',
|
||||
ignore: 'Экспортировать DSL',
|
||||
export: 'Экспортировать DSL с секретными значениями ',
|
||||
},
|
||||
},
|
||||
chatVariable: {
|
||||
panelTitle: 'Переменные разговора',
|
||||
panelDescription: 'Переменные разговора используются для хранения интерактивной информации, которую LLM необходимо запомнить, включая историю разговоров, загруженные файлы, пользовательские настройки. Они доступны для чтения и записи. ',
|
||||
docLink: 'Посетите нашу документацию, чтобы узнать больше.',
|
||||
button: 'Добавить переменную',
|
||||
modal: {
|
||||
title: 'Добавить переменную разговора',
|
||||
editTitle: 'Редактировать переменную разговора',
|
||||
name: 'Имя',
|
||||
namePlaceholder: 'Имя переменной',
|
||||
type: 'Тип',
|
||||
value: 'Значение по умолчанию',
|
||||
valuePlaceholder: 'Значение по умолчанию, оставьте пустым, чтобы не устанавливать',
|
||||
description: 'Описание',
|
||||
descriptionPlaceholder: 'Опишите переменную',
|
||||
editInJSON: 'Редактировать в JSON',
|
||||
oneByOne: 'Добавлять по одному',
|
||||
editInForm: 'Редактировать в форме',
|
||||
arrayValue: 'Значение',
|
||||
addArrayValue: 'Добавить значение',
|
||||
objectKey: 'Ключ',
|
||||
objectType: 'Тип',
|
||||
objectValue: 'Значение по умолчанию',
|
||||
},
|
||||
storedContent: 'Сохраненный контент',
|
||||
updatedAt: 'Обновлено в ',
|
||||
},
|
||||
changeHistory: {
|
||||
title: 'История изменений',
|
||||
placeholder: 'Вы еще ничего не изменили',
|
||||
clearHistory: 'Очистить историю',
|
||||
hint: 'Подсказка',
|
||||
hintText: 'Ваши действия по редактированию отслеживаются в истории изменений, которая хранится на вашем устройстве в течение этого сеанса. Эта история будет очищена, когда вы покинете редактор.',
|
||||
stepBackward_one: '{{count}} шаг назад',
|
||||
stepBackward_other: '{{count}} шагов назад',
|
||||
stepForward_one: '{{count}} шаг вперед',
|
||||
stepForward_other: '{{count}} шагов вперед',
|
||||
sessionStart: 'Начало сеанса',
|
||||
currentState: 'Текущее состояние',
|
||||
nodeTitleChange: 'Изменено название блока',
|
||||
nodeDescriptionChange: 'Изменено описание блока',
|
||||
nodeDragStop: 'Блок перемещен',
|
||||
nodeChange: 'Блок изменен',
|
||||
nodeConnect: 'Блок подключен',
|
||||
nodePaste: 'Блок вставлен',
|
||||
nodeDelete: 'Блок удален',
|
||||
nodeAdd: 'Блок добавлен',
|
||||
nodeResize: 'Размер блока изменен',
|
||||
noteAdd: 'Заметка добавлена',
|
||||
noteChange: 'Заметка изменена',
|
||||
noteDelete: 'Заметка удалена',
|
||||
edgeDelete: 'Блок отключен',
|
||||
},
|
||||
errorMsg: {
|
||||
fieldRequired: '{{field}} обязательно для заполнения',
|
||||
authRequired: 'Требуется авторизация',
|
||||
invalidJson: '{{field}} неверный JSON',
|
||||
fields: {
|
||||
variable: 'Имя переменной',
|
||||
variableValue: 'Значение переменной',
|
||||
code: 'Код',
|
||||
model: 'Модель',
|
||||
rerankModel: 'Модель переранжирования',
|
||||
},
|
||||
invalidVariable: 'Неверная переменная',
|
||||
},
|
||||
singleRun: {
|
||||
testRun: 'Тестовый запуск ',
|
||||
startRun: 'Начать запуск',
|
||||
running: 'Выполняется',
|
||||
testRunIteration: 'Итерация тестового запуска',
|
||||
back: 'Назад',
|
||||
iteration: 'Итерация',
|
||||
},
|
||||
tabs: {
|
||||
'searchBlock': 'Поиск блока',
|
||||
'blocks': 'Блоки',
|
||||
'searchTool': 'Поиск инструмента',
|
||||
'tools': 'Инструменты',
|
||||
'allTool': 'Все',
|
||||
'builtInTool': 'Встроенные',
|
||||
'customTool': 'Пользовательские',
|
||||
'workflowTool': 'Рабочий процесс',
|
||||
'question-understand': 'Понимание вопроса',
|
||||
'logic': 'Логика',
|
||||
'transform': 'Преобразование',
|
||||
'utilities': 'Утилиты',
|
||||
'noResult': 'Ничего не найдено',
|
||||
},
|
||||
blocks: {
|
||||
'start': 'Начало',
|
||||
'end': 'Конец',
|
||||
'answer': 'Ответ',
|
||||
'llm': 'LLM',
|
||||
'knowledge-retrieval': 'Поиск знаний',
|
||||
'question-classifier': 'Классификатор вопросов',
|
||||
'if-else': 'ЕСЛИ/ИНАЧЕ',
|
||||
'code': 'Код',
|
||||
'template-transform': 'Шаблон',
|
||||
'http-request': 'HTTP-запрос',
|
||||
'variable-assigner': 'Агрегатор переменных',
|
||||
'variable-aggregator': 'Агрегатор переменных',
|
||||
'assigner': 'Назначение переменной',
|
||||
'iteration-start': 'Начало итерации',
|
||||
'iteration': 'Итерация',
|
||||
'parameter-extractor': 'Извлечение параметров',
|
||||
},
|
||||
blocksAbout: {
|
||||
'start': 'Определите начальные параметры для запуска рабочего процесса',
|
||||
'end': 'Определите конец и тип результата рабочего процесса',
|
||||
'answer': 'Определите содержимое ответа в чате',
|
||||
'llm': 'Вызов больших языковых моделей для ответа на вопросы или обработки естественного языка',
|
||||
'knowledge-retrieval': 'Позволяет запрашивать текстовый контент, связанный с вопросами пользователей, из базы знаний',
|
||||
'question-classifier': 'Определите условия классификации вопросов пользователей, LLM может определить, как будет развиваться разговор на основе описания классификации',
|
||||
'if-else': 'Позволяет разделить рабочий процесс на две ветки на основе условий if/else',
|
||||
'code': 'Выполните фрагмент кода Python или NodeJS для реализации пользовательской логики',
|
||||
'template-transform': 'Преобразование данных в строку с использованием синтаксиса шаблонов Jinja',
|
||||
'http-request': 'Разрешить отправку запросов на сервер по протоколу HTTP',
|
||||
'variable-assigner': 'Объединение переменных из нескольких ветвей в одну переменную для унифицированной настройки подчиненных узлов.',
|
||||
'assigner': 'Узел назначения переменной используется для назначения значений записываемым переменным (например, переменным разговора).',
|
||||
'variable-aggregator': 'Объединение переменных из нескольких ветвей в одну переменную для унифицированной настройки подчиненных узлов.',
|
||||
'iteration': 'Выполнение нескольких шагов над объектом списка до тех пор, пока не будут выведены все результаты.',
|
||||
'parameter-extractor': 'Используйте LLM для извлечения структурированных параметров из естественного языка для вызова инструментов или HTTP-запросов.',
|
||||
},
|
||||
operator: {
|
||||
zoomIn: 'Увеличить',
|
||||
zoomOut: 'Уменьшить',
|
||||
zoomTo50: 'Масштаб 50%',
|
||||
zoomTo100: 'Масштаб 100%',
|
||||
zoomToFit: 'По размеру',
|
||||
},
|
||||
panel: {
|
||||
userInputField: 'Поле ввода пользователя',
|
||||
changeBlock: 'Изменить блок',
|
||||
helpLink: 'Ссылка на справку',
|
||||
about: 'О программе',
|
||||
createdBy: 'Создано ',
|
||||
nextStep: 'Следующий шаг',
|
||||
addNextStep: 'Добавить следующий блок в этот рабочий процесс',
|
||||
selectNextStep: 'Выбрать следующий блок',
|
||||
runThisStep: 'Выполнить этот шаг',
|
||||
checklist: 'Контрольный список',
|
||||
checklistTip: 'Убедитесь, что все проблемы решены перед публикацией',
|
||||
checklistResolved: 'Все проблемы решены',
|
||||
organizeBlocks: 'Организовать блоки',
|
||||
change: 'Изменить',
|
||||
optional: '(необязательно)',
|
||||
},
|
||||
nodes: {
|
||||
common: {
|
||||
outputVars: 'Выходные переменные',
|
||||
insertVarTip: 'Вставить переменную',
|
||||
memory: {
|
||||
memory: 'Память',
|
||||
memoryTip: 'Настройки памяти чата',
|
||||
windowSize: 'Размер окна',
|
||||
conversationRoleName: 'Имя роли разговора',
|
||||
user: 'Префикс пользователя',
|
||||
assistant: 'Префикс помощника',
|
||||
},
|
||||
memories: {
|
||||
title: 'Воспоминания',
|
||||
tip: 'Память чата',
|
||||
builtIn: 'Встроенные',
|
||||
},
|
||||
},
|
||||
start: {
|
||||
required: 'обязательно',
|
||||
inputField: 'Поле ввода',
|
||||
builtInVar: 'Встроенные переменные',
|
||||
outputVars: {
|
||||
query: 'Ввод пользователя',
|
||||
memories: {
|
||||
des: 'История разговоров',
|
||||
type: 'тип сообщения',
|
||||
content: 'содержимое сообщения',
|
||||
},
|
||||
files: 'Список файлов',
|
||||
},
|
||||
noVarTip: 'Установите входные данные, которые можно использовать в рабочем процессе',
|
||||
},
|
||||
end: {
|
||||
outputs: 'Выходы',
|
||||
output: {
|
||||
type: 'тип вывода',
|
||||
variable: 'выходная переменная',
|
||||
},
|
||||
type: {
|
||||
'none': 'Нет',
|
||||
'plain-text': 'Простой текст',
|
||||
'structured': 'Структурированный',
|
||||
},
|
||||
},
|
||||
answer: {
|
||||
answer: 'Ответ',
|
||||
outputVars: 'Выходные переменные',
|
||||
},
|
||||
llm: {
|
||||
model: 'модель',
|
||||
variables: 'переменные',
|
||||
context: 'контекст',
|
||||
contextTooltip: 'Вы можете импортировать знания как контекст',
|
||||
notSetContextInPromptTip: 'Чтобы включить функцию контекста, пожалуйста, заполните переменную контекста в PROMPT.',
|
||||
prompt: 'подсказка',
|
||||
roleDescription: {
|
||||
system: 'Дайте высокоуровневые инструкции для разговора',
|
||||
user: 'Предоставьте инструкции, запросы или любой текстовый ввод для модели',
|
||||
assistant: 'Ответы модели на основе сообщений пользователя',
|
||||
},
|
||||
addMessage: 'Добавить сообщение',
|
||||
vision: 'зрение',
|
||||
files: 'Файлы',
|
||||
resolution: {
|
||||
name: 'Разрешение',
|
||||
high: 'Высокое',
|
||||
low: 'Низкое',
|
||||
},
|
||||
outputVars: {
|
||||
output: 'Создать контент',
|
||||
usage: 'Информация об использовании модели',
|
||||
},
|
||||
singleRun: {
|
||||
variable: 'Переменная',
|
||||
},
|
||||
sysQueryInUser: 'sys.query в сообщении пользователя обязателен',
|
||||
},
|
||||
knowledgeRetrieval: {
|
||||
queryVariable: 'Переменная запроса',
|
||||
knowledge: 'Знания',
|
||||
outputVars: {
|
||||
output: 'Извлеченные сегментированные данные',
|
||||
content: 'Сегментированный контент',
|
||||
title: 'Сегментированный заголовок',
|
||||
icon: 'Сегментированный значок',
|
||||
url: 'Сегментированный URL',
|
||||
metadata: 'Другие метаданные',
|
||||
},
|
||||
},
|
||||
http: {
|
||||
inputVars: 'Входные переменные',
|
||||
api: 'API',
|
||||
apiPlaceholder: 'Введите URL, введите "/" для вставки переменной',
|
||||
notStartWithHttp: 'API должен начинаться с http:// или https://',
|
||||
key: 'Ключ',
|
||||
value: 'Значение',
|
||||
bulkEdit: 'Массовое редактирование',
|
||||
keyValueEdit: 'Редактирование ключа-значения',
|
||||
headers: 'Заголовки',
|
||||
params: 'Параметры',
|
||||
body: 'Тело',
|
||||
outputVars: {
|
||||
body: 'Содержимое ответа',
|
||||
statusCode: 'Код состояния ответа',
|
||||
headers: 'Список заголовков ответа JSON',
|
||||
files: 'Список файлов',
|
||||
},
|
||||
authorization: {
|
||||
'authorization': 'Авторизация',
|
||||
'authorizationType': 'Тип авторизации',
|
||||
'no-auth': 'Нет',
|
||||
'api-key': 'API-ключ',
|
||||
'auth-type': 'Тип аутентификации',
|
||||
'basic': 'Базовая',
|
||||
'bearer': 'Bearer',
|
||||
'custom': 'Пользовательская',
|
||||
'api-key-title': 'API-ключ',
|
||||
'header': 'Заголовок',
|
||||
},
|
||||
insertVarPlaceholder: 'введите "/" для вставки переменной',
|
||||
timeout: {
|
||||
title: 'Тайм-аут',
|
||||
connectLabel: 'Тайм-аут подключения',
|
||||
connectPlaceholder: 'Введите тайм-аут подключения в секундах',
|
||||
readLabel: 'Тайм-аут чтения',
|
||||
readPlaceholder: 'Введите тайм-аут чтения в секундах',
|
||||
writeLabel: 'Тайм-аут записи',
|
||||
writePlaceholder: 'Введите тайм-аут записи в секундах',
|
||||
},
|
||||
},
|
||||
code: {
|
||||
inputVars: 'Входные переменные',
|
||||
outputVars: 'Выходные переменные',
|
||||
advancedDependencies: 'Расширенные зависимости',
|
||||
advancedDependenciesTip: 'Добавьте сюда некоторые предварительно загруженные зависимости, которые занимают больше времени для потребления или не являются встроенными по умолчанию',
|
||||
searchDependencies: 'Поиск зависимостей',
|
||||
},
|
||||
templateTransform: {
|
||||
inputVars: 'Входные переменные',
|
||||
code: 'Код',
|
||||
codeSupportTip: 'Поддерживает только Jinja2',
|
||||
outputVars: {
|
||||
output: 'Преобразованный контент',
|
||||
},
|
||||
},
|
||||
ifElse: {
|
||||
if: 'Если',
|
||||
else: 'Иначе',
|
||||
elseDescription: 'Используется для определения логики, которая должна быть выполнена, когда условие if не выполняется.',
|
||||
and: 'и',
|
||||
or: 'или',
|
||||
operator: 'Оператор',
|
||||
notSetVariable: 'Пожалуйста, сначала установите переменную',
|
||||
comparisonOperator: {
|
||||
'contains': 'содержит',
|
||||
'not contains': 'не содержит',
|
||||
'start with': 'начинается с',
|
||||
'end with': 'заканчивается на',
|
||||
'is': 'равно',
|
||||
'is not': 'не равно',
|
||||
'empty': 'пусто',
|
||||
'not empty': 'не пусто',
|
||||
'null': 'null',
|
||||
'not null': 'не null',
|
||||
},
|
||||
enterValue: 'Введите значение',
|
||||
addCondition: 'Добавить условие',
|
||||
conditionNotSetup: 'Условие НЕ настроено',
|
||||
selectVariable: 'Выберите переменную...',
|
||||
},
|
||||
variableAssigner: {
|
||||
title: 'Назначить переменные',
|
||||
outputType: 'Тип вывода',
|
||||
varNotSet: 'Переменная не установлена',
|
||||
noVarTip: 'Добавьте переменные, которые нужно назначить',
|
||||
type: {
|
||||
string: 'Строка',
|
||||
number: 'Число',
|
||||
object: 'Объект',
|
||||
array: 'Массив',
|
||||
},
|
||||
aggregationGroup: 'Группа агрегации',
|
||||
aggregationGroupTip: 'Включение этой функции позволяет агрегатору переменных агрегировать несколько наборов переменных.',
|
||||
addGroup: 'Добавить группу',
|
||||
outputVars: {
|
||||
varDescribe: 'Вывод {{groupName}}',
|
||||
},
|
||||
setAssignVariable: 'Установить переменную назначения',
|
||||
},
|
||||
assigner: {
|
||||
'assignedVariable': 'Назначенная переменная',
|
||||
'writeMode': 'Режим записи',
|
||||
'writeModeTip': 'Режим добавления: доступен только для переменных массива.',
|
||||
'over-write': 'Перезаписать',
|
||||
'append': 'Добавить',
|
||||
'plus': 'Плюс',
|
||||
'clear': 'Очистить',
|
||||
'setVariable': 'Установить переменную',
|
||||
'variable': 'Переменная',
|
||||
},
|
||||
tool: {
|
||||
toAuthorize: 'Авторизовать',
|
||||
inputVars: 'Входные переменные',
|
||||
outputVars: {
|
||||
text: 'контент, сгенерированный инструментом',
|
||||
files: {
|
||||
title: 'файлы, сгенерированные инструментом',
|
||||
type: 'Поддерживаемый тип. Сейчас поддерживаются только изображения',
|
||||
transfer_method: 'Метод передачи. Значение - remote_url или local_file',
|
||||
url: 'URL изображения',
|
||||
upload_file_id: 'Идентификатор загруженного файла',
|
||||
},
|
||||
json: 'json, сгенерированный инструментом',
|
||||
},
|
||||
},
|
||||
questionClassifiers: {
|
||||
model: 'модель',
|
||||
inputVars: 'Входные переменные',
|
||||
outputVars: {
|
||||
className: 'Имя класса',
|
||||
},
|
||||
class: 'Класс',
|
||||
classNamePlaceholder: 'Введите имя вашего класса',
|
||||
advancedSetting: 'Расширенные настройки',
|
||||
topicName: 'Название темы',
|
||||
topicPlaceholder: 'Введите название вашей темы',
|
||||
addClass: 'Добавить класс',
|
||||
instruction: 'Инструкция',
|
||||
instructionTip: 'Введите дополнительные инструкции, чтобы помочь классификатору вопросов лучше понять, как классифицировать вопросы.',
|
||||
instructionPlaceholder: 'Введите вашу инструкцию',
|
||||
},
|
||||
parameterExtractor: {
|
||||
inputVar: 'Входная переменная',
|
||||
extractParameters: 'Извлечь параметры',
|
||||
importFromTool: 'Импортировать из инструментов',
|
||||
addExtractParameter: 'Добавить параметр для извлечения',
|
||||
addExtractParameterContent: {
|
||||
name: 'Имя',
|
||||
namePlaceholder: 'Имя извлекаемого параметра',
|
||||
type: 'Тип',
|
||||
typePlaceholder: 'Тип извлекаемого параметра',
|
||||
description: 'Описание',
|
||||
descriptionPlaceholder: 'Описание извлекаемого параметра',
|
||||
required: 'Обязательный',
|
||||
requiredContent: 'Обязательный используется только в качестве ссылки для вывода модели, а не для обязательной проверки вывода параметра.',
|
||||
},
|
||||
extractParametersNotSet: 'Параметры для извлечения не настроены',
|
||||
instruction: 'Инструкция',
|
||||
instructionTip: 'Введите дополнительные инструкции, чтобы помочь извлекателю параметров понять, как извлекать параметры.',
|
||||
advancedSetting: 'Расширенные настройки',
|
||||
reasoningMode: 'Режим рассуждения',
|
||||
reasoningModeTip: 'Вы можете выбрать соответствующий режим рассуждения, основываясь на способности модели реагировать на инструкции для вызова функций или подсказки.',
|
||||
isSuccess: 'Успешно. В случае успеха значение равно 1, в случае сбоя - 0.',
|
||||
errorReason: 'Причина ошибки',
|
||||
},
|
||||
iteration: {
|
||||
deleteTitle: 'Удалить узел итерации?',
|
||||
deleteDesc: 'Удаление узла итерации приведет к удалению всех дочерних узлов',
|
||||
input: 'Вход',
|
||||
output: 'Выходные переменные',
|
||||
iteration_one: '{{count}} Итерация',
|
||||
iteration_other: '{{count}} Итераций',
|
||||
currentIteration: 'Текущая итерация',
|
||||
},
|
||||
note: {
|
||||
addNote: 'Добавить заметку',
|
||||
editor: {
|
||||
placeholder: 'Напишите свою заметку...',
|
||||
small: 'Маленький',
|
||||
medium: 'Средний',
|
||||
large: 'Большой',
|
||||
bold: 'Жирный',
|
||||
italic: 'Курсив',
|
||||
strikethrough: 'Зачеркнутый',
|
||||
link: 'Ссылка',
|
||||
openLink: 'Открыть',
|
||||
unlink: 'Удалить ссылку',
|
||||
enterUrl: 'Введите URL...',
|
||||
invalidUrl: 'Неверный URL',
|
||||
bulletList: 'Маркированный список',
|
||||
showAuthor: 'Показать автора',
|
||||
},
|
||||
},
|
||||
},
|
||||
tracing: {
|
||||
stopBy: 'Остановлено {{user}}',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
Loading…
Reference in New Issue
Block a user