Initial commit

This commit is contained in:
2025-10-14 14:17:21 +08:00
commit ac715a8b88
35011 changed files with 3834178 additions and 0 deletions

View 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: 'Бот-оповідач',
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

View File

@@ -0,0 +1,85 @@
const translation = {
apiServer: 'API сервер',
apiKey: 'Ключ API',
status: 'Статус',
disabled: 'Вимкнено',
ok: 'Працює',
copy: 'Копіювати',
copied: 'Скопійовано',
play: 'Відтворити',
pause: 'Пауза',
playing: 'Відтворення',
merMaid: {
rerender: 'Повторити рендер',
},
never: 'Ніколи',
apiKeyModal: {
apiSecretKey: 'Секретний ключ API',
apiSecretKeyTips: 'Щоб запобігти зловживанням API, захистіть свій ключ API. Уникайте його використання як звичайного тексту у front-end коді. :)',
createNewSecretKey: 'Створити новий секретний ключ',
secretKey: 'Секретний ключ',
created: 'СТВОРЕНО',
lastUsed: 'ОСТАННЄ ВИКОРИСТАННЯ',
generateTips: 'Зберігайте цей ключ у безпечному та доступному місці.',
},
actionMsg: {
deleteConfirmTitle: 'Видалити цей секретний ключ?',
deleteConfirmTips: 'Цю дію не можна скасувати.',
ok: 'Гаразд',
},
chatMode: {
title: 'API чат-додатку',
info: 'Для універсальних чат-ботів, що використовують формат запитання-відповіді, викличте API chat-messages, щоб розпочати діалог. Підтримуйте безперервні розмови, передаючи conversation_id, що повертається. Параметри відповідей і шаблони залежать від налаштувань Dify Prompt.',
createChatApi: 'Створити повідомлення чату',
createChatApiTip: 'Створіть нове повідомлення розмови або продовжте існуючий діалог.',
inputsTips: '(Необов’язково) Надайте поля введення користувача як пари ключ-значення, які відповідають змінним у Prompt. Ключ це ім’я змінної, Значення це значення параметра. Якщо тип поля Select, надіслане значення має бути одним із встановлених параметрів.',
queryTips: 'Вміст введення/запитання користувача',
blocking: 'Тип блокування, очікування завершення виконання та повернення результатів. (Запити можуть бути перервані, якщо процес тривалий)',
streaming: 'повернення потокового передавання. Реалізація повернення потокового передавання на основі SSE (Server-Sent Events).',
conversationIdTip: '(Опціонально) Ідентифікатор розмови: залиште порожнім для першої розмови; передайте conversation_id з контексту, щоб продовжити діалог.',
messageFeedbackApi: 'Фідбек із повідомленнями сеансу користувача, наприклад',
messageFeedbackApiTip: 'Оцінюйте отримані повідомлення від імені кінцевих користувачів за допомогою лайків або дизлайків. Ці дані відображаються на сторінці "Журнали та анотації" та використовуються для майбутнього точного налаштування моделі.',
messageIDTip: 'Ідентифікатор повідомлення',
ratingTip: 'подобається чи не подобається, null — скасувати',
chatMsgHistoryApi: 'Отримати повідомлення з історії чату',
chatMsgHistoryApiTip: 'Перша сторінка повертає останній `обмежений` рядок, який знаходиться у зворотному порядку',
chatMsgHistoryConversationIdTip: 'Ідентифікатор розмови',
chatMsgHistoryFirstId: 'Ідентифікатор першого запису чату на поточній сторінці. Типовим є відсутність.',
chatMsgHistoryLimit: 'Скільки чатів повертається в одному запиті',
conversationsListApi: 'Отримати список розмов',
conversationsListApiTip: 'Отримує список сеансів поточного користувача. За замовчуванням повертаються останні 20 сеансів.',
conversationsListFirstIdTip: 'Ідентифікатор останнього запису на поточній сторінці, значення за замовчуванням відсутнє.',
conversationsListLimitTip: 'Скільки чатів повертається в одному запиті',
conversationRenamingApi: 'Перейменування розмови',
conversationRenamingApiTip: 'Перейменуйте розмови; ім’я відображається в інтерфейсах клієнтів із кількома сеансами.',
conversationRenamingNameTip: 'Нове ім’я',
parametersApi: 'Отримання інформації про параметри програми',
parametersApiTip: 'Отримати налаштовані вхідні параметри, включаючи імена змінних, імена полів, типи та значення за замовчуванням. Зазвичай використовується для відображення цих полів у формі або заповнення значень за замовчуванням після завантаження клієнта.',
},
develop: {
requestBody: 'Тіло запиту',
pathParams: 'Параметри шляху',
query: 'Запит',
toc: 'Вміст',
},
completionMode: {
messageIDTip: 'Ідентифікатор повідомлення',
streaming: 'Потокове передавання повертається. Реалізація повернення потокового мовлення на основі SSE (Server-Sent Events).',
blocking: 'Тип блокування, очікування завершення виконання та повернення результатів. (Запити можуть бути перервані, якщо процес тривалий)',
title: 'API програми для завершення',
ratingTip: 'Подобається чи не подобається, null це скасувати',
createCompletionApiTip: 'Створіть повідомлення про завершення, щоб підтримувати режим запитань і відповідей.',
parametersApi: 'Отримання інформації про параметри програми',
queryTips: 'Текстовий контент, що вводиться користувачем.',
createCompletionApi: 'Створити повідомлення про завершення',
messageFeedbackApi: 'Відгук у повідомленні (подобається)',
messageFeedbackApiTip: 'Оцінюйте отримані повідомлення від імені кінцевих користувачів з лайками або дизлайками. Ці дані відображаються на сторінці «Журнали та анотації» та використовуються для доопрацювання майбутньої моделі.',
info: 'Для створення високоякісного тексту, такого як статті, резюме та переклади, використовуйте API повідомлень про завершення з введенням користувачем. Генерація тексту залежить від параметрів моделі та шаблонів підказок, встановлених у Dify Prompt Engineering.',
inputsTips: '(Необов\'язково.) Надайте поля введення користувача у вигляді пар ключ-значення, що відповідають змінним у Prompt Eng. Key — це ім\'я змінної, Value — значення параметра. Якщо вибрано тип поля Вибір, надіслане значення має бути одним із попередньо встановлених варіантів.',
parametersApiTip: 'Отримання налаштованих вхідних параметрів, включаючи імена змінних, імена полів, типи та значення за замовчуванням. Зазвичай використовується для відображення цих полів у формі або заповнення значень за замовчуванням після завантаження клієнта.',
},
loading: 'Завантаження',
regenerate: 'Відновити',
}
export default translation

View File

@@ -0,0 +1,418 @@
const translation = {
pageTitle: {
line1: 'PROMPT',
line2: 'Engineering', // Or 'інженерія'
},
orchestrate: 'Диригувати',
promptMode: {
simple: 'Перейти в експертний режим, щоб редагувати весь запрос PROMPT',
advanced: 'Експертний режим',
switchBack: 'Змінити налаштування',
advancedWarning: {
title: 'Ви перейшли в експертний режим, і після того, як ви зміните PROMPT, ви НЕ можете повернутися назад в базовий режим.',
description: 'В експертному режимі ви можете редагувати весь PROMPT.',
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: 'Цитати та Атрибуції', // Citations and Attributions
description: 'Після активації показувати вихідний документ та атрибутований розділ згенерованого вмісту.',
resDes: 'Цитати та Атрибуції активовано',
},
annotation: {
title: 'Відповідь-Анотація', // Annotation Reply
description: 'Ви можете вручну додати високоякісну відповідь до кешу для пріоритетного порівняння з подібними запитаннями користувачів.',
resDes: 'Відповідь-Анотація увімкнена',
scoreThreshold: {
title: 'Поріг оцінки', // Score Threshold
description: 'Використовується для встановлення порогу схожості для відповіді-анотації.',
easyMatch: 'Легке співпадіння', // Easy Match
accurateMatch: 'Точне співпадіння', // Accurate Match
},
matchVariable: {
title: 'Збіг змінних', // Match Variable
choosePlaceholder: 'Виберіть змінну відповідності', // Choose match variable
},
cacheManagement: 'Анотації', // Annotations
cached: 'Анотовано', // Annotated
remove: 'Видалити', // Remove
removeConfirm: 'Видалити цю анотацію?',
add: 'Додати анотацію', // Add annotation
edit: 'Редагувати анотацію', // Edit annotation
},
dataSet: {
title: 'Контекст', // Context
noData: 'Ви можете імпортувати знання як контекст', // You can import Knowledge as context
words: 'Слова', // Words
textBlocks: 'Текстові блоки', // Text Blocks
selectTitle: 'Виберіть довідкові знання', // Select reference Knowledge
selected: 'Знання обрані', // Knowledge selected
noDataSet: 'Знання не знайдені', // No Knowledge found
toCreate: 'Перейти до створення', // Go to create
notSupportSelectMulti: 'Наразі підтримується лише одне знання', // Currently only support one Knowledge
queryVariable: {
title: 'Змінна запиту', // Query variable
tip: 'Ця змінна буде використовуватися як вхідний запит для отримання контексту, отримання контекстної інформації, пов’язаної з введенням цієї змінної.',
choosePlaceholder: 'Виберіть змінну для запиту', // Choose query variable
noVar: 'Змінних немає', // No variables
noVarTip: 'будь ласка, створіть змінну в розділі Змінні', // please create a variable under the Variables section
unableToQueryDataSet: 'Неможливо виконати запит до Знань', // Unable to query the Knowledge
unableToQueryDataSetTip: 'Не вдалося успішно виконати запит до Бази Знань, будь ласка, виберіть змінну контекстного запиту в розділі контексту.',
ok: 'ОК', // OK
contextVarNotEmpty: 'змінна контекстного запиту не може бути порожньою', // context query variable can not be empty
deleteContextVarTitle: 'Видалити змінну “{{varName}}”?', // Delete variable “{{varName}}”?
deleteContextVarTip: 'Ця змінна була встановлена ​​як змінна контекстного запиту, і її видалення вплине на нормальне використання Знань. Якщо вам все ще потрібно її видалити, будь ласка, виберіть її повторно в розділі контексту.',
},
},
tools: {
title: 'Інструменти', // Tools
tips: 'Інструменти надають стандартний метод виклику API, приймаючи вхідні дані користувача або змінні як параметри запиту для запиту зовнішніх даних як контексту.',
toolsInUse: 'Використовується інструментів: {{count}}', // {{count}} tools in use
modal: {
title: 'Інструмент', // Tool
toolType: {
title: 'Тип інструменту', // Tool Type
placeholder: 'Будь ласка, виберіть тип інструменту', // Please select the tool type
},
name: {
title: 'Назва', // Name
placeholder: 'Будь ласка, введіть назву', // Please enter the name
},
variableName: {
title: 'Назва змінної', // Variable Name
placeholder: 'Будь ласка, введіть назву змінної', // Please enter the variable name
},
},
},
conversationHistory: {
title: 'Історія розмов', // Conversation History
description: 'Встановіть префікси для ролей у розмові', // Set prefix names for conversation roles
tip: 'Історію розмов не ввімкнено, додайте <histories> у запит вище.', // The Conversation History is not enabled, please add <histories> in the prompt above.
learnMore: 'Дізнатися більше', // Learn more
editModal: {
title: 'Редагувати назви ролей у розмові', // Edit Conversation Role Names
userPrefix: 'Префікс користувача', // User prefix
assistantPrefix: 'Префікс помічника', // Assistant prefix
},
},
toolbox: {
title: 'ІНСТРУМЕНТИ', // TOOLBOX (all caps to convey its section title nature)
},
moderation: {
title: 'Модерація контенту', // Content moderation
description: 'Захистіть вивід моделі, використовуючи API модерації або список конфіденційних слів.', // Secure model output...
allEnabled: 'Вміст ВВЕДЕННЯ/ВИВЕДЕННЯ ввімкнено', // INPUT/OUTPUT Content Enabled
inputEnabled: 'Вміст ВВЕДЕННЯ ввімкнено', // INPUT Content Enabled
outputEnabled: 'Вміст ВИВЕДЕННЯ ввімкнено', // OUTPUT Content Enabled
modal: {
title: 'Налаштування модерації вмісту', // Content moderation settings
provider: {
title: 'Провайдер', // Provider
openai: 'Модерація OpenAI', // OpenAI Moderation
openaiTip: {
prefix: 'Для модерації OpenAI потрібен ключ API OpenAI, налаштований у ',
suffix: '.',
},
keywords: 'Ключові слова', // Keywords
},
keywords: {
tip: 'По одному на рядок, розділені розривами рядків. До 100 символів у рядку.',
placeholder: 'По одному на рядок, розділені розривами рядків',
line: 'Рядок',
},
content: {
input: 'Помірне ВВЕДЕННЯ Вмісту',
output: 'Помірне ВИВЕДЕННЯ Вмісту',
preset: 'Попередньо встановлені відповіді', // Preset replies
placeholder: 'Попередньо встановлені відповіді тут',
condition: 'Увімкнено принаймні одне: «Модерувати ВВЕДЕННЯ ТА ВИВЕДЕННЯ Вмісту»',
fromApi: 'Попередньо встановлені відповіді повертаються через API', // Preset replies are returned by API
errorMessage: 'Попередньо встановлені відповіді не можуть бути порожніми',
supportMarkdown: 'Підтримка Markdown', // Markdown supported
},
openaiNotConfig: {
before: 'Модерація OpenAI вимагає, щоб ключ API OpenAI був налаштований у ',
after: '',
},
},
},
},
automatic: {
title: 'Автоматизована оркестрація застосунків',
description: 'Опишіть свій сценарій, Dify збере для вас застосунок.',
intendedAudience: 'Хто є цільовою аудиторією?',
intendedAudiencePlaceHolder: 'напр. Студент',
solveProblem: 'Які проблеми вони сподіваються вирішити за допомогою AI?',
solveProblemPlaceHolder: 'напр. Оцінка успішності',
generate: 'Генерувати',
audiencesRequired: 'Необхідна аудиторія',
problemRequired: 'Необхідна проблема',
resTitle: 'Ми створили для вас такий застосунок.',
apply: 'Застосувати цю оркестрацію',
noData: 'Опишіть свій випадок використання зліва, тут буде показано попередній перегляд оркестрації.',
loading: 'Оркестрація програми для вас...',
overwriteTitle: 'Перезаписати існуючу конфігурацію?',
overwriteMessage: 'Застосування цієї оркестрації призведе до перезапису існуючої конфігурації.',
},
resetConfig: {
title: 'Підтвердіть скидання?',
message: 'Скидання призводить до скасування змін, відновлюючи останню опубліковану конфігурацію.',
},
errorMessage: {
nameOfKeyRequired: 'назва ключа: {{key}} обов’язкова', // name of the key: {{key}} required
valueOfVarRequired: 'значення {{key}} не може бути порожнім', // {{key}} value can not be empty
queryRequired: 'Текст запиту обов’язковий.', // Request text is required.
waitForResponse: 'Будь ласка, зачекайте, доки буде завершено відповідь на попереднє повідомлення.', // Please wait for the response to the previous message to complete.
waitForBatchResponse: 'Будь ласка, дочекайтеся завершення відповіді на пакетне завдання.', // Please wait for the response to the batch task to complete.
notSelectModel: 'Будь ласка, виберіть модель', // Please choose a model
waitForImgUpload: 'Будь ласка, зачекайте, поки зображення завантажиться', // Please wait for the image to upload
},
chatSubTitle: 'Інструкції', // Instructions
completionSubTitle: 'Префікс команди', // Prefix Prompt
promptTip: 'Запити керують відповідями ШІ, надаючи інструкції та обмеження. Вставте змінні, як-от {{input}}. Цей запит не буде видно користувачам.',
formattingChangedTitle: 'Змінено форматування', // Formatting changed
formattingChangedText: 'Змінення форматування призведе до скидання області налагодження. Ви впевнені?', // Modifying the formatting will reset the debug area, are you sure?
variableTitle: 'Змінні', // Variables
variableTip: 'Користувачі заповнюють змінні у формі, автоматично замінюючи змінні в команді.',
notSetVar: 'Змінні дозволяють користувачам вводити підказки або вступні зауваження під час заповнення форм. Ви можете спробувати ввести "{{input}}" у слова підказки.',
autoAddVar: 'На невизначені змінні, на які посилаються в попередньому запиті, є посилання. Ви хочете додати їх у форму вводу користувача?', // Undefined variables referenced in pre-prompt, are you want to add them in user input form?
variableTable: {
key: 'Ключ змінної', // Variable Key
name: 'Назва поля для введення користувача', // User Input Field Name
optional: 'Додатково', // Optional
type: 'Тип введення', // Input Type
action: 'Дії', // Actions
typeString: 'Рядок', // String
typeSelect: 'Вибрати', // Select
},
varKeyError: {
canNoBeEmpty: 'Потрібен {{key}}', // Variable key can not be empty
tooLong: '{{key}} занадто довгий. Не може бути більше 30 символів', // Variable key: {{key}} too length. Can not be longer then 30 characters
notValid: '{{key}} недійсний. Може містити лише літери, цифри та підкреслення', // Variable key: {{key}} is invalid. Can only contain letters, numbers, and underscores
notStartWithNumber: '{{key}} не може починатися з цифри', // Variable key: {{key}} can not start with a number
keyAlreadyExists: ':{{key}} вже існує', // Variable key: :{{key}} already exists
},
otherError: {
promptNoBeEmpty: 'Команда не може бути порожньою', // Prompt can not be empty
historyNoBeEmpty: 'Історію розмови необхідно встановити у підказці', // Conversation history must be set in the prompt
queryNoBeEmpty: 'Запит має бути встановлений у підказці', // Query must be set in the prompt
},
variableConfig: {
'addModalTitle': 'Додати Поле Введення',
'editModalTitle': 'Редагувати Поле Введення',
'description': 'Налаштування для змінної {{varName}}',
'fieldType': 'Тип поля',
'string': 'Короткий текст',
'text-input': 'Короткий текст',
'paragraph': 'Параграф',
'select': 'Вибрати',
'number': 'Число',
'notSet': 'Не встановлено, спробуйте ввести {{input}} у префіксній підказці',
'stringTitle': 'Параметри поля введення форми',
'maxLength': 'Максимальна довжина',
'options': 'Опції',
'addOption': 'Додати опцію',
'apiBasedVar': 'Змінна на основі API',
'varName': 'Назва змінної',
'labelName': 'Назва мітки',
'inputPlaceholder': 'Будь ласка, введіть',
'required': 'Обов\'язково',
'errorMsg': {
varNameRequired: 'Потрібно вказати назву змінної',
labelNameRequired: 'Потрібно вказати назву мітки',
varNameCanBeRepeat: 'Назва змінної не може повторюватися',
atLeastOneOption: 'Потрібно щонайменше одну опцію',
optionRepeat: 'Є повторні опції',
},
},
vision: {
name: 'Зображення', // Vision
description: 'Увімкнення функції "Зображення" дозволить моделі приймати зображення та відповідати на запитання про них.',
settings: 'Налаштування', // Settings
visionSettings: {
title: 'Налаштування зображень', // Vision Settings
resolution: 'Роздільна здатність', // Resolution
resolutionTooltip: `низька роздільна здатність дозволить моделі отримати зображення з низькою роздільною здатністю 512 x 512 пікселів і представити зображення з обмеженням у 65 токенів. Це дозволяє API швидше повертати відповіді та споживати менше вхідних токенів для випадків використання, які не потребують високої деталізації.
\n
висока роздільна здатність спочатку дозволить моделі побачити зображення з низькою роздільною здатністю, а потім створити детальні фрагменти вхідних зображень у вигляді квадратів 512px на основі розміру вхідного зображення. Кожен із детальних фрагментів використовує подвійний запас токенів, загалом 129 токенів.`,
high: 'Висока', // High
low: 'Низька', // Low
uploadMethod: 'Спосіб завантаження', // Upload Method
both: 'Обидва', // Both
localUpload: 'Локальне завантаження', // Local Upload
url: 'URL-адреса', // URL
uploadLimit: 'Ліміт завантаження', // Upload Limit
},
},
voice: {
name: 'Голос', // Voice
defaultDisplay: 'Голос за замовчуванням', // Default Voice
description: 'Налаштування синтезу мовлення', // Text to speech voice Settings
settings: 'Налаштування', // Settings
voiceSettings: {
title: 'Налаштування голосу', // Voice Settings
language: 'Мова', // Language
resolutionTooltip: 'Мовна підтримка для синтезу мовлення.', // Text-to-speech voice support language。
voice: 'Голос', // Voice
autoPlay: 'Автоматичне відтворення',
autoPlayEnabled: 'ВІДЧИНЕНО',
autoPlayDisabled: 'закриття',
},
},
openingStatement: {
title: 'Вступ до розмови', // Conversation Opener
add: 'Додати', // Add
writeOpener: 'Напишіть вступне повідомлення', // Write opener
placeholder: 'Напишіть тут своє вступне повідомлення, ви можете використовувати змінні, спробуйте ввести {{variable}}.', // Write your opener message here...
openingQuestion: 'Відкриваючі питання', // Opening Questions
noDataPlaceHolder: 'Початок розмови з користувачем може допомогти ШІ встановити більш тісний зв’язок з ним у розмовних застосунках.', // ... conversational applications.
varTip: 'Ви можете використовувати змінні, спробуйте ввести {{variable}}', // You can use variables, try type {{variable}}
tooShort: 'Для створення вступних зауважень для розмови потрібно принаймні 20 слів вступного запиту.', // ... are required to generate an opening remarks for the conversation.
notIncludeKey: 'Початковий запит не включає змінну: {{key}}. Будь ласка, додайте її до початкового запиту.', // ... does not include the variable ...
},
modelConfig: {
model: 'Модель', // Model
setTone: 'Встановити тон відповідей', // Set tone of responses
title: 'Модель і параметри', // Model and Parameters
modeType: {
chat: 'Чат', // Chat
completion: 'Завершення', // Complete
},
},
inputs: {
title: 'Налагодження та попередній перегляд', // Debug and Preview
noPrompt: 'Спробуйте написати якийсь запит у полі введення префіксу команди', // Try write some prompt in pre-prompt input
userInputField: 'Поле введення користувача', // User Input Field
noVar: 'Заповніть значення змінної, яка буде автоматично замінена в слові-підказці під час кожного запуску нового сеансу.', // Fill in the value of the variable...
chatVarTip: 'Заповніть значення змінної, яка буде автоматично замінена в слові-підказці під час кожного запуску нового сеансу.', // Fill in the value of the variable...
completionVarTip: 'Заповніть значення змінної, яка буде автоматично замінена в словах-підказках під час кожного відправлення запиту.', // Fill in the value of the variable...
previewTitle: 'Попередній перегляд підказки', // Prompt preview
queryTitle: 'Вміст запиту', // Query content
queryPlaceholder: 'Будь ласка, введіть текст запиту', // Please enter the request text.
run: 'ЗАПУСТИТИ', // RUN
},
result: 'Вихідний текст', // Output Text
datasetConfig: {
settingTitle: 'Налаштування пошуку', // Retrieval settings
knowledgeTip: 'Клацніть кнопку “+”, щоб додати знання',
retrieveOneWay: {
title: 'Односторонній пошук', // N-to-1 retrieval
description: 'На основі намірів користувача та описів Знань Агент самостійно вибирає найкращі Знання для запитів. Найкраще підходить для застосунків з окремими, обмеженими Знаннями.',
},
retrieveMultiWay: {
title: 'Багатосторонній пошук', // Multi-path retrieval
description: 'На основі намірів користувача запитує по всіх Базах Знань, отримує релевантний текст із кількох джерел і вибирає найкращі результати, що відповідають запиту користувача, після переранжування. Необхідна конфігурація API моделі переранжування.',
},
rerankModelRequired: 'Необхідна модель переранжування', // Rerank model is required
params: 'Параметри', // Params
top_k: 'Найкращих K', // Top K
top_kTip: 'Використовується для фільтрації фрагментів, найбільш схожих на запитання користувачів. Система також динамічно регулюватиме значення K у відповідності з max_tokens обраної моделі.',
score_threshold: 'Поріг оцінки', // Score Threshold
score_thresholdTip: 'Використовується для встановлення порогу схожості для фільтрації фрагментів.',
retrieveChangeTip: 'Зміна режиму індексування та режиму отримання може вплинути на застосунки, пов’язані з цими знаннями.', // Modifying...
},
debugAsSingleModel: 'Налагодження як одна модель', // Debug as Single Model
debugAsMultipleModel: 'Налагодження як багато моделей', // Debug as Multiple Models
duplicateModel: 'Дублювання', // Duplicate
publishAs: 'Опублікувати як', // Publish as
assistantType: {
name: 'Тип Асистента', // Assistant Type
chatAssistant: {
name: 'Базовий помічник', // Basic Assistant
description: 'Створіть помічника на базі чату за допомогою великої мовної моделі', // Build a chat-based...
},
agentAssistant: {
name: 'Інтелектуальний помічник', // Agent Assistant
description: 'Створіть інтелектуального агента, який може самостійно вибирати інструменти для виконання завдань', // Build an intelligent Agent...
},
},
agent: {
agentMode: 'Режим агента', // Agent Mode
agentModeDes: 'Встановіть тип режиму висновку для агента', // Set the type of inference mode...
agentModeType: {
ReACT: 'ReACT',
functionCall: 'Виклик функції', // Function Calling
},
setting: {
name: 'Налаштування агента', // Agent Settings
description: 'Налаштування агента дозволяють встановити режим агента та розширені функції, наприклад вбудовані команди, доступні тільки для типу агента.', // Agent Assistant settings allow...
maximumIterations: {
name: 'Максимальна кількість ітерацій', // Maximum Iterations
description: 'Обмежте кількість ітерацій, які може виконати помічник агента', // Limit the number of iterations...
},
},
buildInPrompt: 'Вбудована команда', // Build-In Prompt
firstPrompt: 'Перша команда', // First Prompt
nextIteration: 'Наступна ітерація', // Next Iteration
promptPlaceholder: 'Напишіть тут своє запрошення', // Write your prompt here
tools: {
name: 'Інструменти', // Tools
description: 'Використання інструментів може розширити можливості LLM, наприклад, пошук в Інтернеті або виконання наукових розрахунків', // Using tools can extend...
enabled: 'Увімкнено', // Enabled
},
},
}
export default translation

View File

@@ -0,0 +1,98 @@
const translation = {
title: 'Журнали',
description: 'Журнали фіксують робочий статус додатка, включаючи введення користувачів та відповіді штучного інтелекту.',
dateTimeFormat: 'MM/DD/YYYY hh:mm A',
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: 'ID Розмови',
promptTemplate: 'Шаблон Запитання',
promptTemplateBeforeChat: 'Шаблон Запитання Перед Чатом · Як Системне Повідомлення',
annotationTip: 'Покращення Позначені Користувачем {{user}}',
timeConsuming: '',
second: 'с',
tokenCost: 'Витрати Токенів',
loading: 'завантаження',
operation: {
like: 'подобається',
dislike: 'не подобається',
addAnnotation: 'Додати Покращення',
editAnnotation: 'Редагувати Покращення',
annotationPlaceholder: 'Введіть очікувану відповідь, яку ви хочете, щоб штучний інтелект повертав, це може бути використано для налаштування моделі та постійного покращення якості генерації тексту в майбутньому.',
},
variables: 'Змінні',
uploadImages: 'Завантажені Зображення',
modelParams: 'Параметри моделі',
},
filter: {
period: {
today: 'Сьогодні',
last7days: 'Останні 7 днів',
last4weeks: 'Останні 4 тижні',
last3months: 'Останні 3 місяці',
last12months: 'Останні 12 місяців',
monthToDate: 'Місяць до сьогодні',
quarterToDate: 'Квартал до сьогодні',
yearToDate: 'Рік до сьогодні',
allTime: 'За весь час',
},
annotation: {
all: 'Всі',
annotated: 'Покращення з Анотацією ({{count}} елементів)',
not_annotated: 'Без Анотації',
},
sortBy: 'Сортувати за:',
descending: 'спадаючий',
ascending: 'зростаючий',
},
workflowTitle: 'Журнали Робочого Процесу',
workflowSubtitle: 'Журнал зареєстрував роботу Автоматизації.',
runDetail: {
title: 'Журнал Розмови',
workflowTitle: 'Деталі Журналу',
fileListDetail: 'Деталь',
fileListLabel: 'Подробиці файлу',
},
promptLog: 'Журнал Запитань',
agentLog: 'Журнал агента',
viewLog: 'Переглянути журнал',
agentLogDetail: {
agentMode: 'Режим агента',
toolUsed: 'Використаний інструмент',
iterations: 'Ітерації',
iteration: 'Ітерація',
finalProcessing: 'Остаточна обробка',
},
}
export default translation

View File

@@ -0,0 +1,172 @@
const translation = {
welcome: {
firstStepTip: 'Для початку,',
enterKeyTip: 'введіть свій ключ API OpenAI нижче',
getKeyTip: 'Отримайте свій ключ API з панелі OpenAI',
placeholder: 'Ваш ключ API OpenAI (напр. sk-xxxx)',
},
apiKeyInfo: {
cloud: {
trial: {
title: 'Ви використовуєте квоту пробного періоду {{providerName}}.',
description: 'Квота пробного періоду надається для вашого тестувального використання. Перш ніж будуть вичерпані виклики квоти пробного періоду, налаштуйте свого власного постачальника моделей або придбайте додаткову квоту.',
},
exhausted: {
title: 'Вашу квоту пробного періоду вичерпано, налаштуйте свій ключ API.',
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: 'Кроки робочого процесу',
show: 'Показати',
hide: 'Приховати',
subTitle: 'Деталі робочого процесу',
showDesc: 'Відображення або приховування відомостей про робочий процес у веб-програмі',
},
chatColorTheme: 'Тема кольору чату',
chatColorThemeDesc: 'Встановіть тему кольору чат-бота',
chatColorThemeInverted: 'Інвертовано',
invalidHexMessage: 'Недійсне шістнадцяткове значення',
more: {
entry: 'Показати додаткові налаштування',
copyright: 'Авторське право',
copyRightPlaceholder: 'Введіть ім\'я автора або організації',
privacyPolicy: 'Політика конфіденційності',
privacyPolicyPlaceholder: 'Введіть посилання на політику конфіденційності',
privacyPolicyTip: 'Допомагає відвідувачам зрозуміти дані, зібрані додатком, див. <privacyPolicyLink>Політику конфіденційності</privacyPolicyLink> Dify.',
customDisclaimer: 'Відмова від відповідальності',
customDisclaimerPlaceholder: 'Введіть відмову від відповідальності',
customDisclaimerTip: 'Відображається на клієнтському боці, щоб визначити відповідальність за використання додатка',
copyrightTip: 'Відображення інформації про авторські права у веб-програмі',
copyrightTooltip: 'Будь ласка, перейдіть на тарифний план «Professional» або вище',
},
sso: {
title: 'Єдиний вхід для WebApp',
description: 'Усі користувачі повинні увійти в систему за допомогою єдиного входу перед використанням WebApp',
tooltip: 'Зверніться до адміністратора, щоб увімкнути єдиний вхід WebApp',
label: 'Автентифікація за допомогою єдиного входу',
},
modalTip: 'Налаштування веб-додатку на стороні клієнта.',
},
embedded: {
entry: 'Вбудоване',
title: 'Вбудувати на веб-сайт',
explanation: 'Виберіть спосіб вбудування чат-додатка на ваш веб-сайт',
iframe: 'Для додавання чат-додатка в будь-яке місце на вашому веб-сайті, додайте цей iframe до вашого HTML-коду.',
scripts: 'Для додавання чат-додатка в правий нижній кут вашого веб-сайту додайте цей код до вашого HTML.',
chromePlugin: 'Встановити розширення Chrome Dify Chatbot',
copied: 'Скопійовано',
copy: 'Скопіювати',
},
qrcode: {
title: 'QR-код для обміну',
scan: 'Сканувати та обмінюватися додатком',
download: 'Завантажити QR-код',
},
customize: {
way: 'спосіб',
entry: 'Налаштувати',
title: 'Налаштування веб-додатку зі штучним інтелектом',
explanation: 'Ви можете налаштувати інтерфейс користувача веб-додатка, щоб він відповідав вашим потребам у сценаріях та стилі.',
way1: {
name: 'Склонуйте клієнтський код, відредагуйте його та розгорніть на Vercel (рекомендовано)',
step1: 'Склонуйте клієнтський код та відредагуйте його',
step1Tip: 'Натисніть тут, щоб склонувати вихідний код у ваш обліковий запис GitHub та відредагувати код',
step1Operation: 'Клієнт-Web-Dify',
step2: 'Розгорніть на Vercel',
step2Tip: 'Натисніть тут, щоб імпортувати репозиторій у Vercel та розгорнути',
step2Operation: 'Імпорт репозиторію',
step3: 'Налаштуйте змінні середовища',
step3Tip: 'Додайте наступні змінні середовища у Vercel',
},
way2: {
name: 'Напишіть клієнтський код для виклику API та розгорніть його на сервері',
operation: 'Документація',
},
},
launch: 'Запуску',
},
apiInfo: {
title: 'API сервісу Backend',
explanation: 'Легко інтегрований у вашу програму',
accessibleAddress: 'Кінцева точка API сервісу',
doc: 'Довідка з API',
},
status: {
running: 'У роботі',
disable: 'Вимкнути',
},
},
analysis: {
title: 'Аналіз',
ms: 'мс',
tokenPS: 'Токени/с',
totalMessages: {
title: 'Загальна кількість повідомлень',
explanation: 'Кількість щоденних взаємодій з ШІ.',
},
totalConversations: {
title: 'Загальна кількість розмов',
explanation: 'Кількість щоденних розмов з ШІ; інженерія/налагодження промптів виключено.',
},
activeUsers: {
title: 'Активні користувачі',
explanation: 'Унікальні користувачі, які взаємодіють з AI; інженерія/налагодження запитів виключено.',
},
tokenUsage: {
title: 'Використання токенів',
explanation: 'Відображає щоденне використання токенів мовної моделі для додатка, корисно для контролю витрат.',
consumed: 'Спожито',
},
avgSessionInteractions: {
title: 'Середня кількість взаємодій за сесію',
explanation: 'Кількість продовжуючихся спілкувань користувача з AI; для програм, що базуються на розмові.',
},
avgUserInteractions: {
title: 'Середня кількість взаємодій на користувача',
explanation: 'Відображає щоденну частоту використання користувачами. Ця метрика відображає лояльність користувачів.',
},
userSatisfactionRate: {
title: 'Показник задоволення користувача',
explanation: 'Кількість лайків на 1000 повідомлень. Це вказує на те, наскільки задоволені користувачі відповідями.',
},
avgResponseTime: {
title: 'Середній час відповіді',
explanation: 'Час (мс) для обробки/відповіді AI; для текстових програм.',
},
tps: {
title: 'Швидкість виведення токенів',
explanation: 'Вимірює продуктивність LLM. Підраховує швидкість виведення токенів LLM від початку запиту до завершення виведення.',
},
},
}
export default translation

View File

@@ -0,0 +1,199 @@
const translation = {
createApp: 'Створити додаток',
types: {
all: 'Усе',
chatbot: 'Чатбот',
agent: 'Агент',
workflow: 'Робочий процес',
completion: 'Завершення',
advanced: 'Чат',
basic: 'Основні',
},
duplicate: 'Дублювати',
duplicateTitle: 'Дублювати додаток',
export: 'Експортувати DSL',
exportFailed: 'Не вдалося експортувати DSL.',
importDSL: 'Імпортувати файл DSL',
createFromConfigFile: 'Створити з файлу DSL',
deleteAppConfirmTitle: 'Видалити цей додаток?',
deleteAppConfirmContent:
'Видалення додатка незворотнє. Користувачі більше не зможуть отримати доступ до вашого додатка, і всі налаштування запитів та журнали будуть остаточно видалені.',
appDeleted: 'Додаток видалено',
appDeleteFailed: 'Не вдалося видалити додаток',
join: 'Приєднуйтесь до спільноти',
communityIntro:
'Обговорюйте з членами команди, співавторами та розробниками на різних каналах.',
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: 'Не вдалося створити додаток',
caution: 'Обережність',
Confirm: 'Підтвердити',
appCreateDSLErrorPart3: 'Поточна версія DSL програми:',
appCreateDSLErrorPart4: 'Версія DSL з підтримкою системи:',
appCreateDSLErrorPart2: 'Хочете продовжити?',
appCreateDSLErrorTitle: 'Несумісність версій',
appCreateDSLErrorPart1: 'Виявлено суттєву різницю у версіях DSL. Примусовий імпорт може призвести до неправильної роботи програми.',
appCreateDSLWarning: 'Увага: різниця у версіях DSL може вплинути на певні функції',
chooseAppType: 'Виберіть тип програми',
noIdeaTip: 'Немає ідей? Перегляньте наші шаблони',
noTemplateFoundTip: 'Спробуйте шукати за різними ключовими словами.',
foundResult: '{{count}} Результат',
foundResults: '{{count}} Результатів',
optional: 'Необов\'язково',
completionShortDescription: 'AI-помічник для завдань генерації тексту',
forAdvanced: 'ДЛЯ ДОСВІДЧЕНИХ КОРИСТУВАЧІВ',
noTemplateFound: 'Не знайдено шаблонів',
agentUserDescription: 'Інтелектуальний агент, здатний до ітеративного міркування і автономного використання інструменту для досягнення поставлених цілей.',
advancedUserDescription: 'Оркестрація робочих процесів для багатораундових складних діалогових завдань з можливостями пам\'яті.',
agentShortDescription: 'Інтелектуальний агент з міркуваннями та автономним використанням інструментів',
noAppsFound: 'Не знайдено додатків',
forBeginners: 'ДЛЯ ПОЧАТКІВЦІВ',
workflowShortDescription: 'Оркестрування для однотактних завдань автоматизації',
learnMore: 'Дізнатися більше',
chatbotUserDescription: 'Швидко створюйте чат-бота на базі LLM за допомогою простої конфігурації. Ви можете переключитися на Chatflow пізніше.',
chatbotShortDescription: 'Чат-бот на базі LLM з простим налаштуванням',
advancedShortDescription: 'Робочий процес для складних багатоходових діалогів з пам\'яттю',
completionUserDescription: 'Швидко створюйте помічника зі штучним інтелектом для завдань із генерації тексту за допомогою простої конфігурації.',
workflowUserDescription: 'Оркестрація робочих процесів для однокомпонентних завдань, таких як автоматизація та пакетна обробка.',
},
editApp: 'Редагувати інформацію',
editAppTitle: 'Редагувати інформацію про додаток',
editDone: 'Інформація про додаток оновлена',
editFailed: 'Не вдалося оновити інформацію про додаток',
iconPicker: {
ok: 'OK',
cancel: 'Скасувати',
emoji: 'Емодзі',
image: 'Зображення',
},
switch: 'Перейти до оркестрації робочого процесу',
switchTipStart: 'Для вас буде створена нова копія додатка, і нова копія перейде до оркестрації робочого процесу. Нова копія не дозволить ',
switchTip: 'повернутися',
switchTipEnd: ' до базової оркестрації.',
switchLabel: 'Копія додатка, яка буде створена',
removeOriginal: 'Видалити початковий додаток',
switchStart: 'Почати перемикання',
typeSelector: {
all: 'Усі типи',
chatbot: 'Чатбот',
agent: 'Агент',
workflow: 'Робочий процес',
completion: 'Завершення',
advanced: 'Чат',
},
tracing: {
title: 'Відстеження продуктивності додатку',
description: 'Налаштування стороннього провайдера LLMOps та відстеження продуктивності додатку.',
config: 'Налаштувати',
collapse: 'Згорнути',
expand: 'Розгорнути',
tracing: 'Відстеження',
disabled: 'Вимкнено',
disabledTip: 'Спочатку налаштуйте провайдера',
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: 'Поточне налаштування використовується, його видалення вимкне функцію Відстеження.',
},
view: 'Вид',
opik: {
title: 'Опік',
description: 'Opik — це платформа з відкритим вихідним кодом для оцінки, тестування та моніторингу додатків LLM.',
},
},
answerIcon: {
title: 'Використовуйте піктограму WebApp для заміни 🤖',
description: 'Чи слід використовувати піктограму WebApp для заміни 🤖 у спільній програмі',
descriptionInExplore: 'Чи використовувати піктограму веб-програми для заміни 🤖 в Огляді',
},
importFromDSLUrl: 'З URL',
importFromDSL: 'Імпорт з DSL',
importFromDSLUrlPlaceholder: 'Вставте посилання на DSL тут',
importFromDSLFile: 'З DSL-файлу',
mermaid: {
handDrawn: 'Намальовані від руки',
classic: 'Класичний',
},
openInExplore: 'Відкрити в Огляді',
newAppFromTemplate: {
sidebar: {
Writing: 'Написання',
Assistant: 'Асистент',
Workflow: 'Робочий процес',
Agent: 'Агент',
Recommended: 'Рекомендується',
HR: 'Управління персоналом',
Programming: 'Програмування',
},
byCategories: 'ЗА КАТЕГОРІЯМИ',
searchAllTemplate: 'Пошук по всіх шаблонах...',
},
showMyCreatedAppsOnly: 'Показати лише створені мною додатки',
appSelector: {
noParams: 'Параметри не потрібні',
label: 'ДОДАТОК',
params: 'ПАРАМЕТРИ ПРОГРАМИ',
placeholder: 'Виберіть програму...',
},
}
export default translation

View 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: 'Члени команди',
buildApps: 'Створювати додатки',
vectorSpace: 'Векторний простір',
vectorSpaceBillingTooltip: 'Кожен 1 МБ може зберігати близько 1,2 мільйона символів векторизованих даних (оцінка з використанням OpenAI Embeddings, відрізняється в залежності від моделей).',
vectorSpaceTooltip: 'Векторний простір це система довгострокової пам\'яті, необхідна LLM для розуміння ваших даних.',
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 запити',
agentMode: 'Режим агента',
workflow: 'Робочий процес',
bulkUpload: 'Масове завантаження документів',
llmLoadingBalancing: 'Балансування навантаження LLM',
llmLoadingBalancingTooltip: 'Додавайте кілька ключів API до моделей, ефективно обходячи обмеження швидкості API.',
},
comingSoon: 'Скоро',
member: 'Учасник',
memberAfter: 'учасника',
messageRequest: {
title: 'Кредити повідомлень',
tooltip: 'Квоти на виклик повідомлень для різних планів з використанням моделей OpenAI (крім gpt4). Повідомлення понад ліміт використовуватимуть ваш ключ API OpenAI.',
},
annotatedResponse: {
title: 'Ліміти квоти відповідей з анотаціями',
tooltip: 'Ручне редагування та анотування відповідей забезпечує налаштовувані високоякісні можливості відповідей на запитання для програм. (Застосовується лише в чат-програмах)',
},
ragAPIRequestTooltip: 'Відноситься до кількості викликів API, що викликають лише можливості обробки бази знань Dify.',
receiptInfo: 'Лише власник команди та адміністратор команди можуть підписуватися та переглядати інформацію про виставлення рахунків',
annotationQuota: 'Квота анотацій',
documentsUploadQuota: 'Квота завантаження документів',
},
plans: {
sandbox: {
name: 'Пісочниця',
description: '200 безкоштовних пробних версій GPT',
includesTitle: 'Включає в себе:',
},
professional: {
name: 'Професійний',
description: 'Щоб окремі особи та невеликі команди могли отримати більше можливостей за доступною ціною.',
includesTitle: 'Все у безкоштовному плані, плюс:',
},
team: {
name: 'Команда',
description: 'Співпрацюйте без обмежень і користуйтеся продуктивністю найвищого рівня.',
includesTitle: 'Все, що входить до плану Professional, плюс:',
},
enterprise: {
name: 'Ентерпрайз',
description: 'Отримайте повні можливості та підтримку для масштабних критично важливих систем.',
includesTitle: 'Все, що входить до плану Team, плюс:',
},
},
vectorSpace: {
fullTip: 'Векторний простір заповнений.',
fullSolution: 'Оновіть свій план, щоб отримати більше місця.',
},
apps: {
fullTipLine1: 'Оновіть свій план, щоб',
fullTipLine2: 'створити більше програм.',
},
annotatedResponse: {
fullTipLine1: 'Оновіть свій план, щоб',
fullTipLine2: 'анотувати більше розмов.',
quotaTitle: 'Квота на анотовані відповіді',
},
}
export default translation

View File

@@ -0,0 +1,643 @@
const translation = {
api: {
success: 'Успіх',
actionSuccess: 'Дію виконано успішно',
saved: 'Збережено',
create: 'Створено',
remove: 'Видалено',
},
operation: {
create: 'Створити',
confirm: 'Підтвердити',
cancel: 'Скасувати',
clear: 'Очистити',
save: 'Зберегти',
saveAndEnable: 'Зберегти та Увімкнути',
edit: 'Редагувати',
add: 'Додати',
added: 'Додано',
refresh: 'Перезапустити',
reset: 'Скинути',
search: 'Пошук',
change: 'Змінити',
remove: 'Видалити',
send: 'Надіслати',
copy: 'Копіювати',
lineBreak: 'Перенесення рядка',
sure: 'Я впевнений',
download: 'Завантажити',
delete: 'Видалити',
settings: 'Налаштування',
setup: 'Налаштувати',
getForFree: 'Отримати безкоштовно',
reload: 'Перезавантажити',
ok: 'ОК',
log: 'Журнал',
learnMore: 'Дізнатися більше',
params: 'Параметри',
duplicate: 'дублікат',
rename: 'Перейменувати',
audioSourceUnavailable: 'AudioSource недоступний',
copyImage: 'Скопіювати зображення',
openInNewTab: 'Відкрити в новій вкладці',
zoomOut: 'Зменшити масштаб',
zoomIn: 'Збільшити масштаб',
close: 'Закрити',
regenerate: 'Відновити',
view: 'Вид',
viewMore: 'ДИВИТИСЬ БІЛЬШЕ',
saveAndRegenerate: 'Збереження та регенерація дочірніх фрагментів',
submit: 'Представити',
skip: 'Корабель',
imageCopied: 'Скопійоване зображення',
deleteApp: 'Видалити програму',
viewDetails: 'Перегляд докладних відомостей',
copied: 'Скопійовані',
in: 'В',
},
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: 'Температура',
temperatureTip:
'Контролює випадковість: зменшення призводить до менш випадкових завершень. Коли температура наближається до нуля, модель стане детермінованою та повторюваною.',
top_p: 'Топ P',
top_pTip:
'Контролює різноманітність за допомогою вибірки ядра: 0,5 означає, що розглядається половина всіх зважених за ймовірністю варіантів.',
presence_penalty: 'Штраф за присутність',
presence_penaltyTip:
'Наскільки штрафувати нові токени залежно від того, чи з\'являються вони в тексті поки що.\nЗбільшує ймовірність того, що модель говоритиме про нові теми.',
frequency_penalty: 'Штраф за частоту',
frequency_penaltyTip:
'Наскільки штрафувати нові токени на основі їхньої існуючої частоти в тексті.\nЗменшує ймовірність того, що модель повторюватиме той самий рядок дослівно.',
max_tokens: 'Макс. токенів',
max_tokensTip:
'Використовується для обмеження максимальної довжини відповіді в токенах.\nБільші значення можуть обмежити простір, залишений для підказок, журналів чатів і знань.\nРекомендується встановити значення нижче двох третин\ngpt-4-1106-preview, gpt-4-vision-preview max token (вхід 128k, вихід 4k)',
maxTokenSettingTip: 'Ваше максимальне значення токена велике, що може обмежувати простір для запитів, даних тощо. Краще налаштувати його менш як 2/3.',
setToCurrentModelMaxTokenTip: 'Максимальний токен оновлено до максимуму токена поточної моделі {{maxToken}}.',
stop_sequences: 'Зупинити послідовності',
stop_sequencesTip: 'До чотирьох послідовностей, у яких API припинить генерацію подальших токенів. Повернений текст не міститиме зупинку послідовності.',
stop_sequencesPlaceholder: 'Введіть послідовність і натисніть Tab',
},
tone: {
Creative: 'Креативний',
Balanced: 'Збалансований',
Precise: 'Точний',
Custom: 'Користувацький',
},
addMoreModel: 'Перейдіть до налаштувань, щоб додати більше моделей',
settingsLink: 'Налаштування постачальника моделі',
capabilities: 'Можливості MultiModal',
},
menus: {
status: 'бета',
explore: 'Досліджувати',
apps: 'Студія',
plugins: 'Плагіни',
pluginsTips: 'Інтегруйте сторонні плагіни або створіть AI-сумісні плагіни.',
datasets: 'Знання',
datasetsTips: 'СКОРО: імпортуйте власні текстові дані або пишіть дані в реальному часі через Webhook для покращення контексту LLM.',
newApp: 'Нова програма',
newDataset: 'Створити знання',
tools: 'Інструменти',
exploreMarketplace: 'Дізнайтеся більше про Marketplace',
},
userProfile: {
settings: 'Налаштування',
emailSupport: 'Підтримка по електронній пошті',
workspace: 'Робочий простір',
createWorkspace: 'Створити робочий простір',
helpCenter: 'Довідковий центр',
communityFeedback: 'відгуки',
roadmap: 'Дорожня карта',
community: 'Спільнота',
about: 'Про нас',
logout: 'Вийти',
},
settings: {
accountGroup: 'ОБЛІКОВИЙ ЗАПИС',
workplaceGroup: 'РОБОЧИЙ ПРОСТІР',
account: 'Мій обліковий запис',
members: 'Учасники',
billing: 'Виставлення рахунків',
integrations: 'Інтеграції',
language: 'Мова',
provider: 'Постачальник моделі',
dataSource: 'Джерело даних',
plugin: 'Плагіни',
apiBasedExtension: 'Розширення API',
generalGroup: 'ЗАГАЛЬНЕ',
},
account: {
avatar: 'Аватар',
name: 'Ім\'я',
email: 'Електронна пошта',
password: 'Пароль',
passwordTip: 'Ви можете встановити постійний пароль, якщо не хочете використовувати тимчасові коди для входу',
setPassword: 'Встановити пароль',
resetPassword: 'Скинути пароль',
currentPassword: 'Поточний пароль',
newPassword: 'Новий пароль',
confirmPassword: 'Підтвердіть пароль',
notEqual: 'Два паролі різняться.',
langGeniusAccount: 'Обліковий запис Dify',
langGeniusAccountTip: 'Ваш обліковий запис Dify та пов’язані з ним дані користувача.',
editName: 'Редагувати ім\'я',
showAppLength: 'Показати {{length}} програм',
delete: 'Видалити обліковий запис',
deleteTip: 'Видалення вашого облікового запису призведе до остаточного видалення всіх ваших даних, і їх неможливо буде відновити.',
deleteConfirmTip: 'Щоб підтвердити, будь ласка, надішліть наступне з вашої зареєстрованої електронної пошти на ',
account: 'Рахунок',
studio: 'Студія Dify',
myAccount: 'Особистий кабінет',
deletePrivacyLink: 'Політика конфіденційності.',
sendVerificationButton: 'Надішліть код підтвердження',
verificationLabel: 'Код підтвердження',
verificationPlaceholder: 'Вставте 6-значний код',
permanentlyDeleteButton: 'Назавжди видалити обліковий запис',
feedbackTitle: 'Зворотний зв\'язок',
feedbackLabel: 'Розкажіть, чому ви видалили свій обліковий запис?',
feedbackPlaceholder: 'Необов\'язково',
deletePrivacyLinkTip: 'Для отримання додаткової інформації про те, як ми обробляємо ваші дані, будь ласка, перегляньте наш',
deleteSuccessTip: 'Вашому обліковому запису потрібен час, щоб завершити видалення. Ми надішлемо вам електронного листа, коли все буде готово.',
deleteLabel: 'Для підтвердження, будь ласка, введіть свою електронну пошту нижче',
deletePlaceholder: 'Будь ласка, введіть свою електронну пошту',
},
members: {
team: 'Команда',
invite: 'Додати',
name: 'ІМ\'Я',
lastActive: 'ОСТАННЯ АКТИВНІСТЬ',
role: 'РОЛІ',
pending: 'В очікуванні...',
owner: 'Власник',
admin: 'Адміністратор',
adminTip: 'Може створювати програми та керувати налаштуваннями команди',
normal: 'Звичайний',
normalTip: 'Може лише використовувати програми, не може створювати програми',
editor: 'Редактор',
editorTip: 'Може створювати програми, але не може керувати налаштуваннями команди',
inviteTeamMember: 'Додати учасника команди',
inviteTeamMemberTip: 'Вони зможуть отримати доступ до даних вашої команди безпосередньо після входу.',
emailNotSetup: 'Поштовий сервер не налаштований, тому запрошення електронною поштою не можуть бути надіслані. Будь ласка, повідомте користувачів про посилання для запрошення, яке буде видано після запрошення.',
email: 'Електронна пошта',
emailInvalid: 'Недійсний формат електронної пошти',
emailPlaceholder: 'Будь ласка, введіть адресу електронної пошти',
sendInvite: 'Надіслати запрошення',
invitedAsRole: 'Запрошено як користувача {{role}}',
invitationSent: 'Запрошення надіслано',
invitationSentTip: 'Запрошення надіслано, і вони можуть увійти в Dify, щоб отримати доступ до даних вашої команди.',
invitationLink: 'Посилання на запрошення',
failedInvitationEmails: 'Наступних користувачів не було успішно запрошено',
ok: 'ОК',
removeFromTeam: 'Видалити з команди',
removeFromTeamTip: 'Буде видалено доступ до команди',
setAdmin: 'Призначити адміністратором',
setMember: 'Встановити як звичайного члена',
setEditor: 'Встановити як Редактор',
disInvite: 'Скасувати запрошення',
deleteMember: 'Видалити учасника',
you: '(Ви)',
builder: 'Будівник',
datasetOperatorTip: 'Тільки може управляти базою знань',
datasetOperator: 'Адміністратор знань',
setBuilder: 'Встановити як будівельник',
builderTip: 'Може створювати та редагувати власні програми',
},
integrations: {
connected: 'Підключено',
google: 'Google',
googleAccount: 'Увійти за допомогою облікового запису Google',
github: 'GitHub',
githubAccount: 'Увійти за допомогою облікового запису GitHub',
connect: 'Підключити',
},
language: {
displayLanguage: 'Мова інтерфейсу',
timezone: 'Часовий пояс',
},
provider: {
apiKey: 'Ключ API',
enterYourKey: 'Введіть свій ключ API тут',
invalidKey: 'Недійсний ключ OpenAI API',
validatedError: 'Не вдалося підтвердити: ',
validating: 'Перевірка ключа...',
saveFailed: 'Не вдалося зберегти ключ API',
apiKeyExceedBill: 'У цього ключа API немає доступної квоти, будь ласка, прочитайте',
addKey: 'Додати ключ',
comingSoon: 'Скоро',
editKey: 'Редагувати',
invalidApiKey: 'Недійсний API ключ',
azure: {
apiBase: 'API-шлях',
apiBasePlaceholder: 'Базовий URL-адреса API вашої кінцевої точки Azure OpenAI.',
apiKey: 'Ключ API',
apiKeyPlaceholder: 'Введіть свій ключ API тут',
helpTip: 'Дізнайтеся про послугу Azure OpenAI',
},
openaiHosted: {
openaiHosted: 'Розміщений OpenAI',
onTrial: 'НА ПРОБНОМУ ПЕРІОДІ',
exhausted: 'КВОТА ВИЧЕРПАНА',
desc: 'Служба хостингу OpenAI, надана Dify, дозволяє використовувати такі моделі, як GPT-3.5. Перш ніж ваша пробна квота буде використана, вам потрібно налаштувати інші постачальники моделі.',
callTimes: 'Кількість викликів',
usedUp: 'Пробна квота використана. Додайте власного постачальника моделі.',
useYourModel: 'Наразі використовується власний постачальник моделі.',
close: 'Закрити',
},
anthropicHosted: {
anthropicHosted: 'Anthropic Claude',
onTrial: 'НА ПРОБНОМУ ПЕРІОДІ',
exhausted: 'КВОТА ВИЧЕРПАНА',
desc: 'Ця потужна модель чудово справляється з широким спектром завдань: від складних діалогів і створення креативного контенту до докладних інструкцій.',
callTimes: 'Кількість викликів',
usedUp: 'Пробна квота використана. Додайте власного постачальника моделі.',
useYourModel: 'Наразі використовується власний постачальника моделі.',
close: 'Закрити',
trialQuotaTip: 'Ваша квота на антропічні пробні випробування закінчується 11.03.2025 і після цього більше не буде доступна. Будь ласка, скористайтеся ним вчасно.',
},
anthropic: {
using: 'Функція вбудовування використовує',
enableTip: 'Щоб активувати модель Anthropic, спочатку потрібно прив’язатись до OpenAI або Azure OpenAI Service.',
notEnabled: 'Не активовано',
keyFrom: 'Отримайте ключ API від Anthropic',
},
encrypted: {
front: 'Ваш API-ключ буде зашифрований та збережений за допомогою',
back: ' технології.',
},
},
modelProvider: {
notConfigured: 'Системну модель ще не повністю налаштовано, і деякі функції можуть бути недоступні.',
systemModelSettings: 'Налаштування системної моделі',
systemModelSettingsLink: 'Чому необхідно налаштовувати системну модель?',
selectModel: 'Виберіть свою модель',
setupModelFirst: 'Будь ласка, спочатку налаштуйте свою модель',
systemReasoningModel: {
key: 'Системна модель міркування',
tip: 'Встановіть модель висновку за замовчуванням, яка буде використовуватися для створення програм, а також для таких функцій, як генерація імені діалогу та пропозиція наступного питання також використовуватимуть модель висновку за замовчуванням.',
},
embeddingModel: {
key: 'Модель вбудовування',
tip: 'Встановіть модель за замовчуванням для обробки вбудовування документа у Знання, як пошук, так і імпорт Знань використовують цю модель вбудовування для векторизації. Перемикання призведе до невідповідності розмірності вектора між імпортованими Знаннями та запитанням, що призведе до збою пошуку. Щоб уникнути збоїв пошуку, не перемикайте цю модель без підстав.',
required: 'Модель вбудовування обов’язкова',
},
speechToTextModel: {
key: 'Модель перетворення мовлення в текст',
tip: 'Встановіть модель за замовчуванням для введення мовлення в текст під час розмови.',
},
ttsModel: {
key: 'Модель перетворення тексту в мовлення',
tip: 'Встановіть модель за замовчуванням для введення тексту в мовлення в розмові.',
},
rerankModel: {
key: 'Модель повторного ранжування',
tip: 'Модель повторного ранжування змінить порядок списку документів-кандидатів на основі семантичної відповідності запиту користувача, покращуючи результати семантичного ранжування.',
},
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: 'Залишилося доступних безкоштовних токенів',
// If need adjustment, provide more context on 'Load Presets' function
loadPresets: 'Завантажити',
parameters: 'ПАРАМЕТРИ',
apiKeyStatusNormal: 'Статус APIKey нормальний',
loadBalancing: 'Балансування навантаження',
editConfig: 'Редагувати конфігурацію',
loadBalancingHeadline: 'Балансування навантаження',
apiKey: 'API-КЛЮЧ',
defaultConfig: 'Конфігурація за замовчуванням',
providerManaged: 'Під управлінням провайдера',
loadBalancingDescription: 'Зменшіть тиск за допомогою кількох наборів облікових даних.',
modelHasBeenDeprecated: 'Ця модель вважається застарілою',
addConfig: 'Додати конфігурацію',
configLoadBalancing: 'Балансування навантаження конфігурації',
upgradeForLoadBalancing: 'Оновіть свій план, щоб увімкнути балансування навантаження.',
apiKeyRateLimit: 'Було досягнуто ліміту швидкості, доступного після {{seconds}}',
providerManagedDescription: 'Використовуйте єдиний набір облікових даних, наданий постачальником моделі.',
loadBalancingLeastKeyWarning: 'Щоб увімкнути балансування навантаження, має бути ввімкнено щонайменше 2 клавіші.',
loadBalancingInfo: 'За замовчуванням для балансування навантаження використовується стратегія кругової системи. Якщо спрацьовує обмеження швидкості, буде застосовано період перезарядки тривалістю 1 хвилина.',
emptyProviderTip: 'Спочатку встановіть постачальника моделі.',
installProvider: 'Встановлення постачальників моделей',
toBeConfigured: 'Підлягає налаштуванню',
emptyProviderTitle: 'Постачальника моделі не налаштовано',
configureTip: 'Налаштуйте api-ключ або додайте модель для використання',
discoverMore: 'Відкрийте для себе більше в',
},
dataSource: {
add: 'Додати джерело даних',
connect: 'Підключити',
notion: {
title: 'Notion',
description: 'Використання Notion як джерела даних для Знань.',
connectedWorkspace: 'Підключений робочий простір',
addWorkspace: 'Додати робочий простір',
connected: 'Підключено',
disconnected: 'Відключено',
changeAuthorizedPages: 'Змінити авторизовані сторінки',
pagesAuthorized: 'Авторизовані сторінки',
sync: 'Синхронізувати',
remove: 'Видалити',
selector: {
pageSelected: 'Сторінки вибрано',
searchPages: 'Пошук сторінок ...',
noSearchResult: 'Результатів пошуку немає',
addPages: 'Додати сторінки',
preview: 'ПЕРЕДПЕРЕГЛЯД',
},
},
website: {
with: 'З',
active: 'Активний',
inactive: 'Неактивні',
configuredCrawlers: 'Налаштовані обхідні роботи',
title: 'Веб-сторінка',
description: 'Імпортуйте вміст із веб-сайтів за допомогою веб-сканера.',
},
configure: 'Настроїти',
},
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',
selector: {
title: 'Розширення API',
placeholder: 'Виберіть API розширення',
manage: 'Керувати розширеннями API',
},
modal: {
title: 'Додати розширення API',
editTitle: 'Редагувати розширення API',
name: {
title: 'Ім\'я',
placeholder: 'Введіть ім\'я',
},
apiEndpoint: {
title: 'Кінцева точка API',
placeholder: 'Будь ласка, введіть кінцеву точку API',
},
apiKey: {
title: 'Ключ API',
placeholder: 'Будь ласка, введіть ключ API',
lengthError: 'Довжина API-ключа не може бути меньше 5 символів',
},
},
type: 'Тип',
},
about: {
changeLog: 'Журнал змін',
updateNow: 'Оновити зараз',
nowAvailable: 'Dify {{version}} тепер доступна.',
latestAvailable: 'Dify {{version}} це найновіша доступна версія.',
},
appMenus: {
overview: 'Моніторинг',
promptEng: 'Налаштування',
apiAccess: 'Доступ до API',
logAndAnn: 'Журнали та Повідомлення.',
logs: 'Журнали',
},
environment: {
testing: 'ТЕСТУВАННЯ',
development: 'РОЗРОБКА',
},
appModes: {
completionApp: 'Генератор тексту',
chatApp: 'Чат-додаток',
},
datasetMenus: {
documents: 'Документи',
hitTesting: 'Тестування пошуку',
settings: 'Налаштування',
emptyTip: 'Знання не пов’язані, будь ласка, перейдіть до програми або плагіна, щоб завершити зв’язок.',
viewDoc: 'Переглянути документацію',
relatedApp: 'пов\'язані програми',
noRelatedApp: 'Немає пов\'язаних додатків',
},
voiceInput: {
speaking: 'Говоріть зараз...',
converting: 'Перетворення на текст...',
notAllow: 'мікрофон не авторизований',
},
modelName: {
'gpt-3.5-turbo': 'GPT-3.5-Turbo',
'gpt-3.5-turbo-16k': 'GPT-3.5-Turbo-16K',
'gpt-4': 'GPT-4',
'gpt-4-32k': 'GPT-4-32K',
'text-davinci-003': 'Text-Davinci-003',
'text-embedding-ada-002': 'Text-Embedding-Ada-002',
'whisper-1': 'Whisper-1',
'claude-instant-1': 'Claude-Instant',
'claude-2': 'Claude-2',
},
chat: {
renameConversation: 'Перейменувати розмову',
conversationName: 'Назва розмови',
conversationNamePlaceholder: 'Будь ласка, введіть назву розмови',
conversationNameCanNotEmpty: 'Потрібна назва розмови',
citation: {
title: 'ЦИТАТИ',
linkToDataset: 'Посилання на Знання',
characters: 'Символів:',
hitCount: 'Кількість звернень:',
vectorHash: 'Хеш вектора:',
hitScore: 'Оцінка звернення:',
},
inputPlaceholder: 'Поговоріть з ботом',
thought: 'Думка',
thinking: 'Мислення...',
},
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: 'Не вдалося створити тег',
},
errorMsg: {
fieldRequired: '{{field}} є обов\'язковим',
urlError: 'URL-адреса повинна починатися з http:// або https://',
},
fileUploader: {
pasteFileLink: 'Вставити посилання на файл',
pasteFileLinkInvalid: 'Неприпустиме посилання на файл',
uploadFromComputer: 'Локальне завантаження',
uploadFromComputerLimit: 'Файл завантаження не може перевищувати {{size}}',
pasteFileLinkInputPlaceholder: 'Введіть URL-адресу...',
fileExtensionNotSupport: 'Розширення файлу не підтримується',
uploadFromComputerReadError: 'Не вдалося прочитати файл, будь ласка, спробуйте ще раз.',
uploadFromComputerUploadError: 'Не вдалося завантажити файл, будь ласка, завантажте ще раз.',
},
license: {
expiring: 'Термін дії закінчується за один день',
expiring_plural: 'Термін дії закінчується за {{count}} днів',
},
pagination: {
perPage: 'Елементів на сторінці',
},
}
export default translation

View File

@@ -0,0 +1,30 @@
const translation = {
custom: 'Налаштування',
upgradeTip: {
prefix: 'Оновіть свій план до ',
suffix: ', щоб налаштувати свій бренд.',
},
webapp: {
title: 'Налаштувати бренд для WebApp',
removeBrand: 'Видалити Powered by Dify',
changeLogo: 'Змінити зображення бренду "Powered by"',
changeLogoTip: 'Формат SVG або PNG з мінімальним розміром 40x40 пікселів',
},
app: {
title: 'Налаштувати бренд заголовка програми app',
changeLogoTip: 'Формат SVG або PNG з мінімальним розміром 80x80 пікселів',
},
upload: 'Завантажити',
uploading: 'Завантаження',
uploadedFail: 'Помилка завантаження зображення, будь ласка, завантажте ще раз.',
change: 'Змінити',
apply: 'Застосувати',
restore: 'Відновити значення за замовчуванням',
customize: {
contactUs: 'зв\'яжіться з нами',
prefix: 'Щоб налаштувати логотип бренду в програмі, будь ласка,',
suffix: 'щоб перейти на корпоративне видання.',
},
}
export default translation

View File

@@ -0,0 +1,205 @@
const translation = {
steps: {
header: {
creation: 'Створити Знання',
update: 'Додати дані',
fallbackRoute: 'Знання',
},
one: 'Виберіть джерело даних',
two: 'Попередня обробка та очищення тексту',
three: 'Виконати та завершити',
},
error: {
unavailable: 'Ці Знання недоступні',
},
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: 'Ім’я не може бути порожнім',
nameLengthInvalid: 'Ім’я має бути від 1 до 40 символів',
cancelButton: 'Скасувати',
confirmButton: 'Створити',
failed: 'Створення не вдалося',
},
website: {
totalPageScraped: 'Всього вискоблених сторінок:',
run: 'Бігти',
configure: 'Настроїти',
limit: 'Межа',
selectAll: 'Вибрати все',
unknownError: 'Невідома помилка',
maxDepth: 'Максимальна глибина',
crawlSubPage: 'Сканування підсторінок',
firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
preview: 'Попередній перегляд',
fireCrawlNotConfigured: 'Firecrawl не налаштовано',
includeOnlyPaths: 'Включати лише контури',
options: 'Параметри',
resetAll: 'Скинути все',
excludePaths: 'Виключення контурів',
firecrawlDoc: 'Документація Firecrawl',
exceptionErrorTitle: 'Виняток стався під час виконання завдання Firecrawl:',
firecrawlTitle: 'Видобування веб-вмісту за допомогою 🔥Firecrawl',
scrapTimeInfo: 'Викрадено {{total}} сторінок загалом протягом {{time}}s',
fireCrawlNotConfiguredDescription: 'Налаштуйте Firecrawl за допомогою ключа API, щоб використовувати його.',
extractOnlyMainContent: 'Витягуйте лише основний контент (без заголовків, навігаторів, нижніх колонтитулів тощо)',
maxDepthTooltip: 'Максимальна глибина для сканування щодо введеної URL-адреси. Глибина 0 просто зішкрібає сторінку введеного url, глибина 1 шкребе url і все після введеногоURL + один /, і так далі.',
jinaReaderDocLink: 'https://jina.ai/reader',
chooseProvider: 'Оберіть провайдера',
jinaReaderNotConfiguredDescription: 'Налаштуйте Jina Reader, ввівши безкоштовний API-ключ для доступу.',
jinaReaderDoc: 'Дізнайтеся більше про Jina Reader',
useSitemapTooltip: 'Дотримуйтесь карти сайту, щоб просканувати сайт. Якщо ні, Jina Reader скануватиметься ітеративно залежно від релевантності сторінки, отримуючи менше, але якісніших сторінок.',
jinaReaderNotConfigured: 'Jina Reader не налаштована',
jinaReaderTitle: 'Перетворіть весь сайт на Markdown',
useSitemap: 'Використовуйте карту сайту',
},
cancel: 'Скасувати',
},
stepTwo: {
segmentation: 'Налаштування фрагментації',
auto: 'Автоматично',
autoDescription: 'Автоматично встановлює правила фрагментації та попередньої обробки. Незнайомим користувачам рекомендується обрати цей пункт.',
custom: 'Вручну',
customDescription: 'Налаштуйте власні правила фрагментації, довжину фрагментів, правила попередньої обробки тощо.',
separator: 'Ідентифікатор фрагмента',
separatorPlaceholder: 'Наприклад, новий рядок (\\\\n) або спеціальний роздільник (наприклад, "***")',
maxLength: 'Максимальна довжина фрагмента',
overlap: 'Перекриття фрагмента',
overlapTip: 'Налаштування перекриття фрагментів може підтримувати семантичний зв’язок між ними, покращуючи ефект отримання даних. Рекомендується встановити 10%-25% від максимального розміру фрагмента.',
overlapCheck: 'перекриття фрагмента не повинно бути більшим за максимальну довжину фрагмента',
rules: 'Правила попередньої обробки тексту',
removeExtraSpaces: 'Замінити послідовні пробіли, нові рядки й табуляції',
removeUrlEmails: 'Видалити всі URL-адреси та адреси електронної пошти',
removeStopwords: 'Видалити стоп-слова, наприклад, такі як "a", "an", "the"',
preview: 'Підтвердити та попередньо переглянути',
reset: 'Скинути',
indexMode: 'Режим індексації',
qualified: 'Високоякісний',
recommend: 'Рекомендовано',
qualifiedTip: 'Виклик стандартного інтерфейсу системного вбудовування для обробки, щоб забезпечити більш високу точність, коли користувачі подають запит.',
warning: 'Будь ласка, спочатку налаштуйте ключ API постачальника моделі.',
click: 'Перейти до налаштувань',
economical: 'Економний',
economicalTip: 'Використовуйте автономні векторизатори, індекси ключових слів тощо, щоб знизити точність без використання токенів',
QATitle: 'Сегментація у форматі "питання та відповідь"',
QATip: 'Увімкнення цієї опції споживатиме більше токенів',
QALanguage: 'Сегментація з використанням',
estimateCost: 'Оцінка',
estimateSegment: 'Орієнтовні фрагменти',
segmentCount: 'фрагментів',
calculating: 'Розраховується...',
fileSource: 'Попередня обробка документа',
notionSource: 'Попередня обробка сторінок',
other: ' та інші ',
fileUnit: ' файли',
notionUnit: ' сторінки',
previousStep: 'Попередній крок',
nextStep: 'Зберегти та обробити',
save: 'Зберегти та обробити',
cancel: 'Скасувати',
sideTipTitle: 'Навіщо розбивати на фрагменти та попередньо обробляти?',
sideTipP1: 'При роботі з текстовими даними фрагментація та очищення є двома важливими етапами попередньої обробки.',
sideTipP2: 'Сегментація розбиває довгий текст на абзаци для кращого сприйняття моделями. Це підвищує якість і релевантність результатів роботи моделей.',
sideTipP3: 'Очищення видаляє непотрібні символи та форматування, роблячи Знання чистішими та легшими для аналізу.',
sideTipP4: 'Правильна фрагментація та очищення покращують продуктивність моделі, забезпечуючи більш точні та цінні результати.',
previewTitle: 'Попередній перегляд',
previewTitleButton: 'Попередній перегляд',
previewButton: 'Зміна вмісту на формат Q&A',
previewSwitchTipStart: 'Поточний попередній перегляд має текстовий формат, зміна способу подання на формат запитань та відповідей ',
previewSwitchTipEnd: ' потребує додаткових токенів',
characters: 'символів',
indexSettingTip: 'Щоб змінити метод індексування, будь ласка, перейдіть до ',
retrievalSettingTip: 'Щоб змінити метод індексування, будь ласка, перейдіть до ',
datasetSettingLink: 'Налаштування знань.',
webpageUnit: 'Сторінок',
websiteSource: 'Веб-сайт попередньої обробки',
separatorTip: 'Роздільник це символ, який використовується для поділу тексту. \\n\\n та \\n є часто використовуваними роздільниками для відокремлення абзаців та рядків. У поєднанні з комами (\\n\\n,\\n) абзаци будуть розділені лініями, якщо вони перевищують максимальну довжину фрагмента. Ви також можете використовувати спеціальні роздільники, визначені вами (наприклад, ***).',
maxLengthCheck: 'Максимальна довжина шматка має бути меншою за {{limit}}',
parentChild: 'Батьки-діти',
childChunkForRetrieval: 'Дочірній шматок для пошуку',
notAvailableForQA: 'Недоступно для Індексу запитань і відповідей',
parentChunkForContext: 'Parent-chunk для контексту',
paragraph: 'Абзац',
general: 'Загальне',
highQualityTip: 'Після завершення вбудовування в режимі високої якості повернення до економного режиму недоступне.',
generalTip: 'Загальний режим фрагментації тексту, отримані та викликані фрагменти однакові.',
previewChunk: 'Фрагмент попереднього перегляду',
fullDoc: 'Повний документ',
useQALanguage: 'Фрагмент у форматі запитань і відповідей у',
notAvailableForParentChild: 'Недоступно для Батьківсько-дочірнього індексу',
qaSwitchHighQualityTipContent: 'В даний час тільки високоякісний метод індексу підтримує фрагментацію формату запитань і відповідей. Чи хотіли б ви перейти в якісний режим?',
previewChunkTip: 'Натисніть кнопку «Фрагмент попереднього перегляду» ліворуч, щоб завантажити попередній перегляд',
previewChunkCount: '{{count}} Приблизні шматки',
fullDocTip: 'Увесь документ використовується як батьківський фрагмент і отримується безпосередньо. Зверніть увагу, що з міркувань продуктивності текст, що перевищує 10000 токенів, буде автоматично обрізаний.',
parentChildDelimiterTip: 'Роздільник це символ, який використовується для поділу тексту. \\n\\n рекомендується для поділу оригінального документа на великі батьківські фрагменти. Ви також можете використовувати спеціальні роздільники, визначені самостійно.',
parentChildChunkDelimiterTip: 'Роздільник це символ, який використовується для поділу тексту. \\n рекомендується для поділу батьківських фрагментів на маленькі дочірні частини. Ви також можете використовувати спеціальні роздільники, визначені самостійно.',
parentChildTip: 'При використанні режиму батьків-дочірній елемент використовується для пошуку, а батьківський фрагмент використовується для виклику як контекст.',
switch: 'Комутатор',
qaSwitchHighQualityTipTitle: 'Формат запитань і відповідей вимагає якісного методу індексації',
paragraphTip: 'Цей режим розбиває текст на абзаци на основі роздільників і максимальної довжини фрагмента, використовуючи розділений текст як батьківський фрагмент для пошуку.',
},
stepThree: {
creationTitle: '🎉 Знання створено',
creationContent: 'Ми автоматично назвали Знання, ви можете змінити його в будь-який час',
label: 'Назва знань',
additionTitle: '🎉 Документ завантажено',
additionP1: 'Документ було завантажено до Знання',
additionP2: ', ви можете знайти його в списку документів Знання.',
stop: 'Зупинити обробку',
resume: 'Відновити обробку',
navTo: 'Перейти до документа',
sideTipTitle: 'Що далі',
sideTipContent: 'Після завершення індексування документа Знання можна інтегрувати в додаток як контекст. Налаштування контексту можна знайти на сторінці оркестрації підказок. Ви також можете створити його як незалежний плагін індексування ChatGPT для релізу.',
modelTitle: 'Ви впевнені, що хочете зупинити вбудовування?',
modelContent: 'Якщо вам потрібно буде відновити обробку пізніше, ви продовжите з того місця, де зупинилися.',
modelButtonConfirm: 'Підтвердити',
modelButtonCancel: 'Скасувати',
},
firecrawl: {
getApiKeyLinkText: 'Отримайте свій API-ключ від firecrawl.dev',
configFirecrawl: 'Налаштування 🔥Firecrawl',
apiKeyPlaceholder: 'Ключ API від firecrawl.dev',
},
jinaReader: {
apiKeyPlaceholder: 'Ключ API від jina.ai',
configJinaReader: 'Налаштування Jina Reader',
getApiKeyLinkText: 'Отримайте безкоштовний API-ключ за адресою jina.ai',
},
otherDataSource: {
learnMore: 'Дізнатися більше',
title: 'Підключитися до інших джерел даних?',
description: 'Наразі база знань Dify має лише обмежені джерела даних. Додавання джерела даних до бази знань Dify це фантастичний спосіб підвищити гнучкість і потужність платформи для всіх користувачів. Наш посібник із внеску спрощує початок роботи. Будь ласка, натисніть на посилання нижче, щоб дізнатися більше.',
},
}
export default translation

View File

@@ -0,0 +1,395 @@
const translation = {
list: {
title: 'Документи',
desc: 'Тут відображаються всі файли Знання, і все Знання можна зв’язати з цитатами Dify або проіндексувати за допомогою плагіна Chat.',
addFile: 'додати файл',
addPages: 'Додати сторінки',
table: {
header: {
fileName: 'НАЗВА ФАЙЛУ',
words: 'КІЛЬКІСТЬ СЛІВ',
hitCount: 'КІЛЬКІСТЬ ВИЛУЧЕНЬ',
uploadTime: 'ЧАС ЗАВАНТАЖЕННЯ',
status: 'СТАТУС',
action: 'ДІЯ',
chunkingMode: 'РЕЖИМ ФРАГМЕНТАЦІЇ',
},
name: 'Ім\'я',
rename: 'Перейменувати',
},
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: 'ОК',
},
addUrl: 'Додати URL-адресу',
learnMore: 'Дізнатися більше',
},
metadata: {
title: 'Метадані',
desc: 'Маркування метаданих для документів дозволяє штучному інтелекту своєчасно отримувати до них доступ і викриває джерело посилань для користувачів.',
dateTimeFormat: 'MMMM D, YYYY hh:mm A',
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: 'Дата публікації',
topicKeywords: 'Теми/ключові слова',
description: 'Опис',
},
paper: {
title: 'Назва',
language: 'Мова',
author: 'Автор',
publishDate: 'Дата публікації',
journalConferenceName: 'Назва журналу/конференції',
volumeIssuePage: 'Випуск/номер/сторінка',
DOI: 'DOI',
topicsKeywords: 'Теми/ключові слова',
abstract: 'Анотація',
},
socialMediaPost: {
platform: 'Платформа',
authorUsername: 'Автор/ім’я користувача',
publishDate: 'Дата публікації',
postURL: 'URL-адреса посту',
topicsTags: 'Теми/теги',
},
personalDocument: {
title: 'Назва',
author: 'Автор',
creationDate: 'Дата створення',
lastModifiedDate: 'Дата останньої зміни',
documentType: 'Тип документа',
tagsCategory: 'Теги/категорії',
},
businessDocument: {
title: 'Назва',
author: 'Автор',
creationDate: 'Дата створення',
lastModifiedDate: 'Дата останньої зміни',
documentType: 'Тип документа',
departmentTeam: 'Відділ/команда',
},
IMChat: {
chatPlatform: 'Платформа чату',
chatPartiesGroupName: 'Сторони чату/назва групи',
participants: 'Учасники',
startDate: 'Дата початку',
endDate: 'Дата завершення',
topicsKeywords: 'Теми/ключові слова',
fileType: 'Тип файлу',
},
wikipediaEntry: {
title: 'Назва',
language: 'Мова',
webpageURL: 'URL-адреса вебсторінки',
editorContributor: 'Редактор/автор',
lastEditDate: 'Дата останнього редагування',
summaryIntroduction: 'Резюме/вступ',
},
notion: {
title: 'Назва',
language: 'Мова',
author: 'Автор',
createdTime: 'Час створення',
lastModifiedTime: 'Час останньої зміни',
url: 'URL',
tag: 'Тег',
description: 'Опис',
},
github: {
repoName: 'Назва репозиторію',
repoDesc: 'Опис репозиторію',
repoOwner: 'Власник репозиторію',
fileName: 'Назва файлу',
filePath: 'Шлях до файлу',
programmingLang: 'Мова програмування',
url: 'URL',
license: 'Ліцензія',
lastCommitTime: 'Час останнього коміту',
lastCommitAuthor: 'Автор останнього коміту',
},
originInfo: {
originalFilename: 'Оригінальна назва файлу',
originalFileSize: 'Оригінальний розмір файлу',
uploadDate: 'Дата завантаження',
lastUpdateDate: 'Дата останнього оновлення',
source: 'Джерело',
},
technicalParameters: {
segmentSpecification: 'Специфікація фрагментів',
segmentLength: 'Довжина фрагментів',
avgParagraphLength: 'Середня довжина абзаців',
paragraphs: 'Абзаци',
hitCount: 'Кількість вилучень',
embeddingTime: 'Час вбудовування',
embeddedSpend: 'Витрачено на вбудовування',
},
},
languageMap: {
zh: 'Китайська',
en: 'Англійська',
es: 'Іспанська',
fr: 'Французька',
de: 'Німецька',
ja: 'Японська',
ko: 'Корейська',
ru: 'Російська',
ar: 'Арабська',
pt: 'Португальська',
it: 'Італійська',
nl: 'Голландська',
pl: 'Польська',
sv: 'Шведська',
tr: 'Турецька',
he: 'Іврит',
hi: 'Гінді',
da: 'Данська',
fi: 'Фінська',
no: 'Норвезька',
hu: 'Угорська',
el: 'Грецька',
cs: 'Чеська',
th: 'Тайська',
id: 'Індонезійська',
uk: 'Українська',
},
categoryMap: {
book: {
fiction: 'Фантастика',
biography: 'Біографія',
history: 'Історія',
science: 'Наука',
technology: 'Технології',
education: 'Навчальна література',
philosophy: 'Філософія',
religion: 'Релігія',
socialSciences: 'Соціальні науки',
art: 'Мистецтво',
travel: 'Подорожі',
health: 'Здоровʼя',
selfHelp: 'Самодопомога',
businessEconomics: 'Бізнес-економіка',
cooking: 'Куховаріння',
childrenYoungAdults: 'Книги з виховання',
comicsGraphicNovels: 'Комікси',
poetry: 'Поезія',
drama: 'Драма',
other: 'Інше',
},
personalDoc: {
notes: 'Замітки', // General notes or memos
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: 'Попередній перегляд параграфа буде доступний після завершення побудови векторів',
childMaxTokens: 'Дитина',
pause: 'Пауза',
parentMaxTokens: 'Родитель',
hierarchical: 'Батьки-діти',
},
segment: {
paragraphs: 'Параграфи',
keywords: 'Ключові слова',
addKeyWord: 'Додати ключове слово',
keywordError: 'Максимальна довжина ключового слова 20 символів',
characters: 'символів',
hitCount: 'Кількість пошуку',
vectorHash: 'Векторний хеш: ',
questionPlaceholder: 'додайте запитання тут',
questionEmpty: 'Питання не може бути порожнім',
answerPlaceholder: 'додайте відповідь тут',
answerEmpty: 'Відповідь не може бути порожньою',
contentPlaceholder: 'додайте вміст тут',
contentEmpty: 'Вміст не може бути порожнім',
newTextSegment: 'Новий текстовий сегмент',
newQaSegment: 'Новий сегмент запитань та відповідей',
delete: 'Видалити цей фрагмент?',
chunks_one: 'ШМАТОК',
childChunk: 'Дочірній шматок',
clearFilter: 'Очистити фільтр',
addAnother: 'Додати ще один',
newChunk: 'Новий шматок',
searchResults_other: 'РЕЗУЛЬТАТІВ',
parentChunks_other: 'БАТЬКІВСЬКІ ФРАГМЕНТИ',
childChunks_other: 'ДОЧІРНІ ШМАТКИ',
chunkDetail: 'Деталізація фрагмента',
regeneratingTitle: 'Регенерація дочірніх фрагментів',
chunkAdded: 'Додано 1 фрагмент',
addChildChunk: 'Додати дочірній фрагмент',
empty: 'Шматок не знайдено',
chunks_other: 'ШМАТКИ',
editedAt: 'За редакцією',
searchResults_zero: 'РЕЗУЛЬТАТ',
collapseChunks: 'Згортання шматків',
childChunkAdded: 'Додано 1 дочірній фрагмент',
editParentChunk: 'Редагувати батьківський фрагмент',
newChildChunk: 'Новий дочірній шматок',
editChunk: 'Редагувати фрагмент',
regenerationSuccessTitle: 'Регенерація завершена',
edited: 'РЕДАГУВАТИ',
regenerationConfirmMessage: 'Регенерація дочірніх фрагментів перезаписує поточні дочірні фрагменти, включаючи відредаговані фрагменти та нещодавно додані фрагменти. Регенерація не може бути скасована.',
chunk: 'Шматок',
childChunks_one: 'ДОЧІРНЯ ЧАСТИНА',
parentChunk: 'Батьківський чанк',
parentChunks_one: 'БАТЬКІВСЬКИЙ ФРАГМЕНТ',
characters_other: 'Символів',
searchResults_one: 'РЕЗУЛЬТАТ',
regeneratingMessage: 'Це може зайняти мить, будь ласка, зачекайте...',
characters_one: 'знак',
addChunk: 'Додати шматок',
editChildChunk: 'Редагувати дочірній фрагмент',
regenerationSuccessMessage: 'Ви можете закрити це вікно.',
expandChunks: 'Розгортання фрагментів',
regenerationConfirmTitle: 'Хочете регенерувати дитячі шматки?',
},
}
export default translation

View File

@@ -0,0 +1,35 @@
const translation = {
title: 'Тестування вибірки',
desc: 'Тестування ефективності пошуку знань на основі наданого текстового запиту.',
dateTimeFormat: 'DD/MM/YYYY HH:mm A',
recents: 'Останні',
table: {
header: {
source: 'Джерело',
text: 'Текст',
time: 'Час',
},
},
input: {
title: 'Вихідний текст',
placeholder: 'Будь ласка, введіть текст, рекомендується коротке декларативне речення.',
countWarning: 'До 200 символів.',
indexWarning: 'Тільки високоякісні знання.',
testing: 'Тестування',
},
hit: {
title: 'ВИБРАНІ АБЗАЦИ',
emptyTip: 'Результати тестування вибірки відобразяться тут',
},
noRecentTip: 'Тут немає результатів останніх запитів',
viewChart: 'ПЕРЕГЛЯНУТИ ВЕКТОРНУ ДІАГРАМУ',
settingTitle: 'Налаштування отримання',
viewDetail: 'Переглянути деталі',
chunkDetail: 'Деталізація фрагмента',
hitChunks: 'Натисніть {{num}} на дочірні шматки',
open: 'Відкривати',
keyword: 'Ключові слова',
records: 'Записи',
}
export default translation

View File

@@ -0,0 +1,41 @@
const translation = {
title: 'Налаштування бази знань',
desc: 'Тут ви можете змінити властивості та методи роботи бази знань.',
form: {
name: 'Назва бази знань',
namePlaceholder: 'Введіть назву бази знань',
nameError: 'Назва не може бути порожньою',
desc: 'Опис бази знань',
descInfo: 'Напишіть зрозумілий текстовий опис, щоб окреслити вміст бази знань. Цей опис використовуватиметься як основа для узгодження під час вибору з кількох баз знань для висновку.',
descPlaceholder: 'Опишіть, що міститься в цій базі знань. Детальний опис дозволяє AI своєчасно отримати доступ до вмісту бази знань. Якщо значення порожнє, Dify використовуватиме стратегію влучань за умовчанням.',
descWrite: 'Дізнайтеся, як написати хороший опис бази знань.',
permissions: 'Дозволи',
permissionsOnlyMe: 'Тільки я',
permissionsAllMember: 'Усі члени команди',
indexMethod: 'Метод індексації',
indexMethodHighQuality: 'Висока якість',
indexMethodHighQualityTip: 'Викликати модель Embedding для обробки, щоб забезпечити вищу точність під час запитів користувачів.',
indexMethodEconomy: 'Економний',
indexMethodEconomyTip: 'Використовуйте автономні векторні двигуни, індекси ключових слів тощо, щоб зменшити точність без використання токенів.',
embeddingModel: 'Модель вбудовування',
embeddingModelTip: 'Змінити вбудовану модель, будь ласка, перейдіть до ',
embeddingModelTipLink: 'Налаштування',
retrievalSetting: {
title: 'Налаштування вибірки',
learnMore: 'Дізнатися більше',
description: ' про метод вибірки.',
longDescription: ' про метод вибірки, ви можете змінити це будь-коли в налаштуваннях бази знань.',
},
save: 'Зберегти',
me: '(Ви)',
permissionsInvitedMembers: 'Часткові члени команди',
externalKnowledgeAPI: 'API зовнішніх знань',
externalKnowledgeID: 'Зовнішній ідентифікатор знань',
retrievalSettings: 'Налаштування отримання',
helpText: 'Дізнайтеся, як написати хороший опис набору даних.',
indexMethodChangeToEconomyDisabledTip: 'Недоступно для пониження з HQ до ECO',
upgradeHighQualityTip: 'Після оновлення до режиму високої якості повернення до економного режиму недоступне',
},
}
export default translation

View File

@@ -0,0 +1,174 @@
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: 'Виконуйте повнотекстовий пошук і векторний пошук одночасно, повторно ранжуючи, щоб вибрати найкращу відповідність на запит користувача. Необхідна конфігурація Rerank model API.',
recommend: 'Рекомендовано',
},
invertedIndex: {
title: 'Інвертований індекс',
description: 'Інвертований індекс це структура, яка використовується для ефективного пошуку. Організований за термінами, кожен термін вказує на документи або веб-сторінки, що його містять.',
},
change: 'Змінити',
changeRetrievalMethod: 'Змінити метод пошуку',
},
docsFailedNotice: 'документи не вдалося проіндексувати',
retry: 'Повторити спробу',
indexingTechnique: {
high_quality: 'ВЯ',
economy: 'ЕКО',
},
indexingMethod: {
semantic_search: 'ВЕКТОР',
full_text_search: 'ПОВНИЙ ТЕКСТ',
hybrid_search: 'ГІБРИД',
invertedIndex: 'ІНВЕРТОВАНИЙ',
},
mixtureHighQualityAndEconomicTip: 'Модель перерангування потрібна для суміші високоякісних та економічних баз знань.',
inconsistentEmbeddingModelTip: 'Модель перерангування потрібна, якщо моделі вбудовування вибраних баз знань є несумісними.',
retrievalSettings: 'Налаштування пошуку',
rerankSettings: 'Налаштування перерангування',
weightedScore: {
title: 'Зважена оцінка',
description: 'Регулюючи призначені ваги, ця стратегія перерангування визначає, чи надавати пріоритет семантичному чи ключовому відповідності.',
semanticFirst: 'Спочатку семантичний',
keywordFirst: 'Спочатку ключове слово',
customized: 'Налаштований',
semantic: 'Семантичний',
keyword: 'Ключове слово',
},
nTo1RetrievalLegacy: 'N-до-1 пошук буде офіційно застарілим з вересня. Рекомендується використовувати найновіший багатошляховий пошук для отримання кращих результатів.',
nTo1RetrievalLegacyLink: 'Дізнатися більше',
nTo1RetrievalLegacyLinkText: 'N-до-1 пошук буде офіційно застарілим у вересні.',
defaultRetrievalTip: 'За замовчуванням використовується отримання кількома шляхами. Знання витягуються з кількох баз знань, а потім заново ранжуються.',
editExternalAPIConfirmWarningContent: {
front: 'Цей API зовнішніх знань пов\'язаний з',
end: 'зовнішні знання, і ця модифікація буде застосована до всіх них. Ви впевнені, що хочете зберегти цю зміну?',
},
editExternalAPIFormWarning: {
end: 'Зовнішні знання',
front: 'Цей зовнішній API пов\'язаний з',
},
deleteExternalAPIConfirmWarningContent: {
title: {
front: 'Видалити',
end: '?',
},
content: {
front: 'Цей API зовнішніх знань пов\'язаний з',
end: 'зовнішні знання. Видалення цього API призведе до втрати чинності всіх з них. Ви впевнені, що хочете видалити цей API?',
},
noConnectionContent: 'Ви впевнені, що видалили цей API?',
},
selectExternalKnowledgeAPI: {
placeholder: 'Виберіть API зовнішніх знань',
},
connectDatasetIntro: {
content: {
link: 'Дізнайтеся, як створити зовнішній API',
front: 'Щоб підключитися до зовнішньої бази знань, спочатку потрібно створити зовнішній API. Будь ласка, уважно прочитайте та зверніться до',
end: '. Потім знайдіть відповідний ідентифікатор знань і заповніть його у формі зліва. Якщо вся інформація вірна, він автоматично перейде до пошукового тесту в базі знань після натискання кнопки підключення.',
},
title: 'Як підключитися до зовнішньої бази знань',
learnMore: 'Дізнатися більше',
},
connectHelper: {
helper2: 'Підтримується лише функція пошуку',
helper4: 'Прочитайте довідкову документацію',
helper3: '. Ми настійно рекомендуємо вам',
helper5: 'Уважно перед використанням цієї функції.',
helper1: 'Підключайтеся до зовнішніх баз знань через API та ідентифікатор бази знань. Наразі',
},
externalKnowledgeForm: {
cancel: 'Скасувати',
connect: 'Підключатися',
},
externalAPIForm: {
encrypted: {
end: 'Технології.',
front: 'Ваш токен API буде зашифровано та збережено за допомогою',
},
name: 'Ім\'я',
edit: 'Редагувати',
apiKey: 'Ключ API',
cancel: 'Скасувати',
save: 'Рятувати',
endpoint: 'Кінцева точка API',
},
externalKnowledgeDescriptionPlaceholder: 'Опишіть, що міститься в цій базі знань (необов\'язково)',
externalAPIPanelDocumentation: 'Дізнайтеся, як створити API зовнішніх знань',
externalAPIPanelTitle: 'API зовнішніх знань',
externalKnowledgeDescription: 'Опис знань',
noExternalKnowledge: 'API зовнішніх знань поки що не існує, натисніть тут, щоб створити',
externalTag: 'Зовнішній',
externalKnowledgeId: 'Зовнішній ідентифікатор знань',
externalAPI: 'Зовнішній API',
createExternalAPI: 'Додавання зовнішнього API знань',
createNewExternalAPI: 'Створення нового API зовнішніх знань',
externalKnowledgeName: 'Зовнішнє найменування знань',
externalKnowledgeNamePlaceholder: 'Будь ласка, введіть назву бази знань',
editExternalAPITooltipTitle: 'ПОВ\'ЯЗАНІ ЗНАННЯ',
editExternalAPIFormTitle: 'Редагування API зовнішніх знань',
connectDataset: 'Підключення до зовнішньої бази знань',
learnHowToWriteGoodKnowledgeDescription: 'Навчіться писати хороший опис знань',
allExternalTip: 'При використанні тільки зовнішніх знань користувач може вибрати, чи включати модель Rerank. Якщо цей параметр не увімкнено, отримані фрагменти будуть відсортовані на основі оцінок. Коли стратегії пошуку різних баз знань несумісні, це буде неточно.',
mixtureInternalAndExternalTip: 'Модель Rerank необхідна для поєднання внутрішніх і зовнішніх знань.',
externalKnowledgeIdPlaceholder: 'Будь ласка, введіть Knowledge ID',
externalAPIPanelDescription: 'API зовнішніх знань використовується для підключення до бази знань за межами Dify і отримання знань із цієї бази знань.',
chunkingMode: {
parentChild: 'Батьки-діти',
general: 'Загальне',
},
parentMode: {
fullDoc: 'Повний документ',
paragraph: 'Абзац',
},
batchAction: {
delete: 'Видалити',
enable: 'Вмикати',
disable: 'Вимкнути',
archive: 'Архів',
selected: 'Вибрані',
cancel: 'Скасувати',
},
preprocessDocument: '{{num}} Попередня обробка документів',
documentsDisabled: 'Документи {{num}} вимкнені - неактивні понад 30 днів',
localDocs: 'Локальні документи',
enable: 'Вмикати',
allKnowledge: 'Всі знання',
allKnowledgeDescription: 'Виберіть, щоб відобразити всі знання в цій робочій області. Тільки власник робочої області може керувати всіма знаннями.',
}
export default translation

View File

@@ -0,0 +1,43 @@
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',
Workflow: 'Робочий процес',
Agent: 'Агент',
},
}
export default translation

View File

@@ -0,0 +1,4 @@
const translation = {
}
export default translation

View File

@@ -0,0 +1,110 @@
const translation = {
pageTitle: 'Привіт, почнемо!👋',
welcome: 'Ласкаво просимо до Dify, будь ласка, увійдіть, щоб продовжити.',
email: 'Адреса електронної пошти',
emailPlaceholder: 'Ваша електронна пошта',
password: 'Пароль',
passwordPlaceholder: 'Ваш пароль',
name: 'Ім\'я користувача',
namePlaceholder: 'Ваше ім\'я користувача',
forget: 'Забули пароль?',
signBtn: 'Вхід',
installBtn: 'Налаштувати',
setAdminAccount: 'Налаштування облікового запису адміністратора',
setAdminAccountDesc: 'Максимальні привілеї для облікового запису адміністратора, які можна використовувати для створення програм, керування постачальниками LLM тощо.',
createAndSignIn: 'Створити та увійти',
oneMoreStep: 'Ще один крок',
createSample: 'На основі цієї інформації ми створимо для вас зразок програми',
invitationCode: 'Код запрошення',
invitationCodePlaceholder: 'Ваш код запрошення',
interfaceLanguage: 'Мова інтерфейсу',
timezone: 'Часовий пояс',
go: 'Перейти до Dify',
sendUsMail: 'Надішліть нам своє представлення, і ми обробимо запит на запрошення.',
acceptPP: 'Я прочитав і приймаю політику конфіденційності',
reset: 'Будь ласка, виконайте таку команду, щоб скинути пароль',
withGitHub: 'Продовжити з GitHub',
withGoogle: 'Продовжити з Google',
rightTitle: 'Розкрийте весь потенціал LLM',
rightDesc: 'З легкістю створюйте візуально привабливі, функціональні та вдосконалювані програми зі штучним інтелектом.',
tos: 'Умови обслуговування',
pp: 'Політика конфіденційності',
tosDesc: 'Реєструючись, ви приймаєте наші',
goToInit: 'Якщо ви ще не ініціалізували обліковий запис, перейдіть на сторінку ініціалізації',
dontHave: 'Не маєте?',
invalidInvitationCode: 'Недійсний код запрошення',
accountAlreadyInited: 'Обліковий запис уже ініціалізовано',
forgotPassword: 'Забули пароль?',
resetLinkSent: 'Посилання для скидання надіслано',
sendResetLink: 'Надіслати посилання для скидання',
backToSignIn: 'Повернутися до входу',
forgotPasswordDesc: 'Будь ласка, введіть свою електронну адресу, щоб скинути пароль. Ми надішлемо вам електронного листа з інструкціями щодо скидання пароля.',
checkEmailForResetLink: 'Будь ласка, перевірте свою електронну пошту на наявність посилання для скидання пароля. Якщо протягом кількох хвилин не з’явиться, перевірте папку зі спамом.',
passwordChanged: 'Увійдіть зараз',
changePassword: 'Змінити пароль',
changePasswordTip: 'Будь ласка, введіть новий пароль для свого облікового запису',
invalidToken: 'Недійсний або прострочений токен',
confirmPassword: 'Підтвердити пароль',
confirmPasswordPlaceholder: 'Підтвердьте новий пароль',
passwordChangedTip: 'Ваш пароль було успішно змінено',
error: {
emailEmpty: 'Адреса електронної пошти обов\'язкова',
emailInValid: 'Введіть дійсну адресу електронної пошти',
nameEmpty: 'Ім\'я обов\'язкове',
passwordEmpty: 'Пароль є обов’язковим',
passwordInvalid: 'Пароль повинен містити літери та цифри, а довжина повинна бути більшою за 8',
passwordLengthInValid: 'Пароль повинен бути не менше 8 символів',
registrationNotAllowed: 'Аккаунт не знайдено. Будь ласка, зверніться до адміністратора системи для реєстрації.',
},
license: {
tip: 'Перед запуском Dify Community Edition ознайомтеся з ліцензією з відкритим кодом на GitHub',
link: 'Ліцензія з відкритим кодом',
},
join: 'Приєднуйтесь',
joinTipStart: 'Запрошуємо вас приєднатися',
joinTipEnd: 'команда Dify',
invalid: 'Посилання застаріло',
explore: 'Досліджуйте Dify',
activatedTipStart: 'Ви приєдналися до',
activatedTipEnd: 'команда',
activated: 'Увійти зараз',
adminInitPassword: 'Пароль ініціалізації адміністратора',
validate: 'Перевірити',
sso: 'Продовжуйте працювати з SSW',
checkCode: {
didNotReceiveCode: 'Не отримали код?',
invalidCode: 'Невірний код',
resend: 'Відправити',
verificationCodePlaceholder: 'Введіть 6-значний код',
emptyCode: 'Код обов\'язковий',
checkYourEmail: 'Перевірте свою електронну пошту',
verify: 'Перевірити',
verificationCode: 'Код підтвердження',
useAnotherMethod: 'Використовуйте інший спосіб',
tips: 'Ми надсилаємо код підтвердження на <strong>адресу {{email}}</strong>',
validTime: 'Майте на увазі, що код дійсний протягом 5 хвилин',
},
back: 'Задній',
backToLogin: 'Назад до входу',
or: 'АБО',
usePassword: 'Використовуйте пароль',
sendVerificationCode: 'Надішліть код підтвердження',
changePasswordBtn: 'Встановіть пароль',
noLoginMethod: 'Метод автентифікації не налаштовано',
withSSO: 'Продовжуйте працювати з SSW',
useVerificationCode: 'Використовуйте код підтвердження',
setYourAccount: 'Налаштуйте свій обліковий запис',
enterYourName: 'Будь ласка, введіть своє ім\'я користувача',
continueWithCode: 'Продовжити з кодом',
noLoginMethodTip: 'Будь ласка, зверніться до адміністратора системи, щоб додати метод автентифікації.',
resetPasswordDesc: 'Введіть адресу електронної пошти, яку ви використовували для реєстрації на Dify, і ми надішлемо вам електронний лист для скидання пароля.',
resetPassword: 'Скинути пароль',
licenseLostTip: 'Не вдалося підключити сервер ліцензій Dify. Будь ласка, зверніться до свого адміністратора, щоб продовжити користуватися Dify.',
licenseExpired: 'Термін дії ліцензії минув',
licenseInactive: 'Ліцензія неактивна',
licenseLost: 'Ліцензію втрачено',
licenseInactiveTip: 'Ліцензія Dify Enterprise для вашої робочої області неактивна. Будь ласка, зверніться до свого адміністратора, щоб продовжити користуватися Dify.',
licenseExpiredTip: 'Термін дії ліцензії Dify Enterprise для вашого робочого простору закінчився. Будь ласка, зверніться до свого адміністратора, щоб продовжити користуватися Dify.',
}
export default translation

View File

@@ -0,0 +1,25 @@
const translation = {
tags: {
other: 'Інший',
utilities: 'Утиліти',
education: 'Освіта',
social: 'Соціальний',
videos: 'Відео',
business: 'Бізнес',
news: 'Вісті',
design: 'Проект',
search: 'Шукати',
medical: 'Медичний',
productivity: 'Продуктивність',
finance: 'Фінанси',
travel: 'Подорожувати',
image: 'Образ',
agent: 'Агент',
weather: 'Погода',
entertainment: 'Розваги',
},
allTags: 'Всі теги',
searchTags: 'Пошукові теги',
}
export default translation

View File

@@ -0,0 +1,209 @@
const translation = {
category: {
tools: 'Інструмент',
all: 'Увесь',
bundles: 'Пакети',
models: 'Моделі',
extensions: 'Розширення',
agents: 'Стратегії агентів',
},
categorySingle: {
agent: 'Стратегія агента',
bundle: 'Комплектація',
tool: 'Інструмент',
extension: 'Збільшення',
model: 'Модель',
},
list: {
source: {
local: 'Інсталяція з локального файлу пакета',
marketplace: 'Інсталяція з Marketplace',
github: 'Встановлення з GitHub',
},
noInstalled: 'Плагіни не встановлено',
notFound: 'Плагінів не знайдено',
},
source: {
marketplace: 'Ринку',
local: 'Файл локального пакета',
github: 'Гітхаб',
},
detailPanel: {
categoryTip: {
github: 'Встановлено з Github',
debugging: 'Плагін налагодження',
local: 'Локальний плагін',
marketplace: 'Інстальовано з Marketplace',
},
operation: {
viewDetail: 'Переглянути деталі',
detail: 'Деталі',
remove: 'Видалити',
install: 'Інсталювати',
checkUpdate: 'Перевірити Оновлення',
update: 'Оновлювати',
info: 'Інформація про плагін',
},
toolSelector: {
placeholder: 'Виберіть інструмент...',
descriptionLabel: 'Опис засобу',
paramsTip1: 'Контролює параметри логічного висновку LLM.',
toolLabel: 'Інструмент',
params: 'КОНФІГУРАЦІЯ МІРКУВАНЬ',
settings: 'НАЛАШТУВАННЯ КОРИСТУВАЧА',
uninstalledLink: 'Керування в плагінах',
title: 'Додати інструмент',
paramsTip2: 'Коли параметр "Автоматично" вимкнено, використовується значення за замовчуванням.',
empty: 'Натисніть кнопку «+», щоб додати інструменти. Ви можете додати кілька інструментів.',
uninstalledTitle: 'Інструмент не встановлено',
descriptionPlaceholder: 'Короткий опис призначення інструменту, наприклад, отримання температури для конкретного місця.',
unsupportedTitle: 'Непідтримувані дії',
unsupportedContent2: 'Натисніть, щоб змінити версію.',
auto: 'Автоматичний',
uninstalledContent: 'Цей плагін встановлюється з локального/GitHub репозиторію. Будь ласка, використовуйте після встановлення.',
unsupportedContent: 'Встановлена версія плагіна не передбачає цієї дії.',
},
modelNum: '{{num}} МОДЕЛІ В КОМПЛЕКТІ',
switchVersion: 'Версія перемикача',
configureApp: 'Налаштуйте додаток',
endpointDeleteTip: 'Видалити кінцеву точку',
endpoints: 'Кінцеві точки',
endpointsDocLink: 'Переглянути документ',
configureModel: 'Налаштування моделі',
endpointDisableTip: 'Вимкніть кінцеву точку',
endpointsEmpty: 'Натисніть кнопку «+», щоб додати кінцеву точку',
actionNum: '{{num}} {{дія}} ВКЛЮЧЕНІ',
disabled: 'Вимкнуто',
endpointModalTitle: 'Налаштування кінцевої точки',
endpointDisableContent: 'Чи хотіли б ви вимкнути {{name}}?',
endpointDeleteContent: 'Чи хотіли б ви видалити {{name}}?',
endpointsTip: 'Цей плагін надає конкретні функції через кінцеві точки, і ви можете налаштувати кілька наборів кінцевих точок для поточного робочого простору.',
strategyNum: '{{num}} {{стратегія}} ВКЛЮЧЕНІ',
endpointModalDesc: 'Після налаштування можна використовувати функції, що надаються плагіном через кінцеві точки API.',
configureTool: 'Інструмент налаштування',
serviceOk: 'Сервіс працює',
},
debugInfo: {
title: 'Налагодження',
viewDocs: 'Переглянути документи',
},
privilege: {
whoCanDebug: 'Хто може налагоджувати плагіни?',
admins: 'Адміни',
noone: 'Ніхто',
whoCanInstall: 'Хто може встановлювати плагіни та керувати ними?',
everyone: 'Кожен',
title: 'Налаштування плагіна',
},
pluginInfoModal: {
repository: 'Сховище',
release: 'Реліз',
title: 'Інформація про плагін',
packageName: 'Пакунок',
},
action: {
deleteContentLeft: 'Чи хотіли б ви видалити',
usedInApps: 'Цей плагін використовується в додатках {{num}}.',
deleteContentRight: 'плагін?',
checkForUpdates: 'Перевірте наявність оновлень',
delete: 'Видалити плагін',
pluginInfo: 'Інформація про плагін',
},
installModal: {
labels: {
package: 'Пакунок',
repository: 'Сховище',
version: 'Версія',
},
uploadFailed: 'Не вдалося завантажити файл',
close: 'Закрити',
installedSuccessfullyDesc: 'Плагін успішно встановлено.',
readyToInstallPackages: 'Про встановлення наступних плагінів {{num}}',
install: 'Інсталювати',
cancel: 'Скасувати',
readyToInstall: 'Про встановлення наступного плагіна',
pluginLoadErrorDesc: 'Цей плагін не буде встановлено',
installComplete: 'Інсталяцію завершено',
installing: 'Установки...',
installPlugin: 'Встановити плагін',
dropPluginToInstall: 'Перетягніть пакет плагіна сюди, щоб встановити',
uploadingPackage: 'Завантаження {{packageName}}...',
readyToInstallPackage: 'Про встановлення наступного плагіна',
pluginLoadError: 'Помилка завантаження плагіна',
fromTrustSource: 'Будь ласка, переконайтеся, що ви встановлюєте плагіни лише з <trustSource>надійного джерела</trustSource>.',
back: 'Задній',
installFailedDesc: 'Плагін був встановлений не вдалося.',
installFailed: 'Не вдалося встановити',
installedSuccessfully: 'Монтаж успішний',
next: 'Наступний',
},
installFromGitHub: {
selectVersionPlaceholder: 'Будь ласка, оберіть версію',
uploadFailed: 'Не вдалося завантажити файл',
selectVersion: 'Оберіть версію',
installNote: 'Будь ласка, переконайтеся, що ви встановлюєте плагіни лише з надійного джерела.',
gitHubRepo: 'Репозиторій GitHub',
installFailed: 'Не вдалося встановити',
installPlugin: 'Встановити плагін з GitHub',
updatePlugin: 'Оновити плагін з GitHub',
installedSuccessfully: 'Монтаж успішний',
selectPackage: 'Оберіть пакет',
selectPackagePlaceholder: 'Будь ласка, оберіть пакет',
},
upgrade: {
description: 'Про встановлення наступного плагіна',
close: 'Закрити',
successfulTitle: 'Установка успішна',
upgrade: 'Інсталювати',
usedInApps: 'Використовується в додатках {{num}}',
upgrading: 'Установки...',
title: 'Встановити плагін',
},
error: {
noReleasesFound: 'Релізів не знайдено. Будь ласка, перевірте репозиторій GitHub або URL-адресу введення.',
fetchReleasesError: 'Не вдається отримати згоди. Повторіть спробу пізніше.',
inValidGitHubUrl: 'Невірна URL-адреса GitHub. Будь ласка, введіть дійсну URL-адресу у форматі: https://github.com/owner/repo',
},
marketplace: {
sortOption: {
mostPopular: 'Найпопулярніших',
newlyReleased: 'Новий реліз',
recentlyUpdated: 'Нещодавно оновлено',
firstReleased: 'Перший реліз',
},
and: 'і',
discover: 'Виявити',
moreFrom: 'Більше від Marketplace',
sortBy: 'Чорне місто',
pluginsResult: 'Результати {{num}}',
empower: 'Розширюйте можливості розробки штучного інтелекту',
difyMarketplace: 'Dify Marketplace',
viewMore: 'Дивитись більше',
noPluginFound: 'Плагін не знайдено',
},
task: {
installingWithError: 'Не вдалося встановити плагіни {{installingLength}}, успіх {{successLength}}, {{errorLength}}',
clearAll: 'Очистити все',
installedError: 'Плагіни {{errorLength}} не вдалося встановити',
installError: 'Плагіни {{errorLength}} не вдалося встановити, натисніть, щоб переглянути',
installing: 'Встановлення плагінів {{installingLength}}, 0 виконано.',
installingWithSuccess: 'Встановлення плагінів {{installingLength}}, успіх {{successLength}}.',
},
submitPlugin: 'Надіслати плагін',
from: 'Від',
searchInMarketplace: 'Пошук у Marketplace',
endpointsEnabled: '{{num}} наборів кінцевих точок увімкнено',
installAction: 'Інсталювати',
findMoreInMarketplace: 'Дізнайтеся більше в Marketplace',
installFrom: 'ВСТАНОВИТИ З',
install: '{{num}} встановлює',
fromMarketplace: 'Від Marketplace',
searchCategories: 'Категорії пошуку',
installPlugin: 'Встановити плагін',
searchTools: 'Інструменти пошуку...',
search: 'Шукати',
searchPlugins: 'Плагіни пошуку',
allCategories: 'Всі категорії',
}
export default translation

View File

@@ -0,0 +1,4 @@
const translation = {
}
export default translation

View File

@@ -0,0 +1,31 @@
const translation = {
input: 'ВВЕДЕННЯ',
result: 'РЕЗУЛЬТАТ',
detail: 'ДЕТАЛІ',
tracing: 'ВІДСЛІДКУВАННЯ',
resultPanel: {
status: 'СТАТУС',
time: 'ЧАС ВИКОНАННЯ',
tokens: 'ЗАГАЛЬНА КІЛЬКІСТЬ ТОКЕНІВ',
},
meta: {
title: 'МЕТАДАНІ',
status: 'Статус',
version: 'Версія',
executor: 'Виконавець',
startTime: 'Час початку',
time: 'Час виконання',
tokens: 'Загальна кількість токенів',
steps: 'Кроки виконання',
},
resultEmpty: {
title: 'Цей запуск лише вихідного формату JSON,',
tipLeft: 'будь ласка, перейдіть до ',
link: 'панель деталей',
tipRight: ' переглянути.',
},
circularInvocationTip: 'У поточному робочому процесі існує круговий виклик інструментів/вузлів.',
actionLogs: 'Журнали дій',
}
export default translation

View File

@@ -0,0 +1,70 @@
const translation = {
common: {
welcome: '',
appUnavailable: 'Додаток недоступний',
appUnknownError: 'Додаток недоступний',
},
chat: {
newChat: 'Новий чат',
pinnedTitle: 'Закріплені',
unpinnedTitle: 'Чати',
newChatDefaultName: 'Нова розмова',
resetChat: 'Очистити розмову',
poweredBy: 'Забезпечується',
prompt: 'Підказка',
privatePromptConfigTitle: 'Налаштування розмови',
publicPromptConfigTitle: 'Початкова підказка',
configStatusDes: 'Перед початком ви можете змінити налаштування розмови',
configDisabled: 'Для цього сеансу було використано налаштування попереднього сеансу.',
startChat: 'Почати чат',
privacyPolicyLeft: 'Будь ласка, ознайомтеся з ',
privacyPolicyMiddle: 'політикою конфіденційності',
privacyPolicyRight: ', наданою розробником програми.',
deleteConversation: {
title: 'Видалити розмову',
content: 'Ви впевнені, що хочете видалити цю розмову?',
},
tryToSolve: 'Спробувати вирішити',
temporarySystemIssue: 'Вибачте, тимчасова системна проблема.',
},
generation: {
tabs: {
create: 'Запустити один раз',
batch: 'Запустити пакет',
saved: 'Збережено',
},
savedNoData: {
title: 'Ви ще не зберегли результат!',
description: 'Почніть генерувати вміст і знайдіть збережені результати тут.',
startCreateContent: 'Почати створювати вміст',
},
title: 'Доповнення AI',
queryTitle: 'Вміст запиту',
completionResult: 'Результат завершення',
queryPlaceholder: 'Напишіть вміст свого запиту...',
run: 'Виконати',
copy: 'Копіювати',
resultTitle: 'Доповнення AI',
noData: 'AI дасть вам те, що ви хочете тут.',
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

View File

@@ -0,0 +1,3 @@
const translation = {}
export default translation

View File

@@ -0,0 +1,158 @@
const translation = {
title: 'Інструменти',
createCustomTool: 'Створити власний інструмент',
type: {
all: 'Усі',
builtIn: 'Вбудовані',
custom: 'Користувацькі',
workflow: 'Робочий процес',
},
contribute: {
line1: 'Мені цікаво зробити свій внесок',
line2: 'створення інструментів для Dify.',
viewGuide: 'Переглянути інструкцію',
},
author: 'Автор',
auth: {
unauthorized: 'Авторизуватися',
authorized: 'Авторизовано',
setup: 'Налаштувати авторизацію, щоб використовувати',
setupModalTitle: 'Налаштування авторизації',
setupModalTitleDescription: 'Після налаштування облікових даних усі члени робочого простору можуть використовувати цей інструмент під час оркестрування програм.',
},
includeToolNum: '{{num}} інструмент(ів) включено',
addTool: 'Додати інструмент ',
createTool: {
title: 'Створити власний інструмент',
editAction: 'Налаштування',
editTitle: 'Редагувати настроюваний інструмент',
name: 'Назва',
toolNamePlaceHolder: 'Введіть назву інструменту',
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: {
types: {
basic: 'Basic',
bearer: 'Bearer',
custom: 'Custom',
},
title: 'Тип аутентифікації',
},
privacyPolicy: 'Політика конфіденційності',
privacyPolicyPlaceholder: 'Введіть політику конфіденційності',
customDisclaimer: 'Власний відомості',
customDisclaimerPlaceholder: 'Введіть власні відомості',
deleteToolConfirmTitle: 'Видалити цей інструмент?',
deleteToolConfirmContent: 'Видалення інструменту є незворотнім. Користувачі більше не зможуть отримати доступ до вашого інструменту.',
toolInput: {
label: 'Мітки',
name: 'Ім\'я',
required: 'Необхідний',
method: 'Метод',
title: 'Введення інструменту',
methodSetting: 'Параметр',
description: 'Опис',
methodParameter: 'Параметр',
labelPlaceholder: 'Виберіть теги (необов\'язково)',
descriptionPlaceholder: 'Опис значення параметра',
methodSettingTip: 'Користувач заповнює конфігурацію інструменту',
methodParameterTip: 'LLM заповнюється під час логічного висновку',
},
description: 'Опис',
nameForToolCall: 'Ім\'я виклику інструменту',
confirmTitle: 'Підтвердьте, щоб зберегти?',
nameForToolCallTip: 'Підтримує лише цифри, літери та підкреслення.',
confirmTip: 'Це вплине на програми, які використовують цей інструмент',
nameForToolCallPlaceHolder: 'Використовується для розпізнавання машин, таких як getCurrentWeather, list_pets',
descriptionPlaceholder: 'Короткий опис призначення інструменту, наприклад, отримання температури для конкретного місця.',
},
test: {
title: 'Тест',
parametersValue: 'Параметри та значення',
parameters: 'Параметри',
value: 'Значення',
testResult: 'Результати тесту',
testResultPlaceholder: 'Результат тесту буде відображатися тут',
},
thought: {
using: 'Використання',
used: 'Використано',
requestTitle: 'Запит до',
responseTitle: 'Відповідь від',
},
setBuiltInTools: {
info: 'Інформація',
setting: 'Налаштування',
toolDescription: 'Опис інструменту',
parameters: 'Параметри',
string: 'Рядок',
number: 'Число',
required: 'Обов’язково',
infoAndSetting: 'Інформація та налаштування',
file: 'файл',
},
noCustomTool: {
title: 'Немає користувацьких інструментів!',
content: 'Додавайте та керуйте своїми власними інструментами тут для створення програм зі штучним інтелектом.',
createTool: 'Створити інструмент',
},
noSearchRes: {
title: 'Вибачте, немає результатів!',
content: 'Ми не знайшли жодних інструментів, які б відповідали вашому пошуку.',
reset: 'Скинути пошук',
},
builtInPromptTitle: 'Підказка',
toolRemoved: 'Інструмент видалено',
notAuthorized: 'Інструмент не авторизовано',
howToGet: 'Як отримати',
addToolModal: {
category: 'категорія',
add: 'Додати',
added: 'Додано',
type: 'тип',
manageInTools: 'Керування в інструментах',
emptyTip: 'Перейдіть до розділу "Робочий процес -> Опублікувати як інструмент"',
emptyTitle: 'Немає доступного інструменту для роботи з робочими процесами',
emptyTitleCustom: 'Немає доступного спеціального інструменту',
emptyTipCustom: 'Створення власного інструмента',
},
openInStudio: 'Відкрити в Студії',
customToolTip: 'Дізнайтеся більше про користувацькі інструменти Dify',
toolNameUsageTip: 'Ім\'я виклику інструменту для міркувань і підказок агента',
copyToolName: 'Ім\'я копії',
noTools: 'Інструментів не знайдено',
}
export default translation

View File

@@ -0,0 +1,782 @@
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: 'Переглянути деталі',
importSuccess: 'Успіх імпорту',
overwriteAndImport: 'Перезапис та імпорт',
importFailure: 'Помилка імпорту',
importDSL: 'Імпорт DSL',
syncingData: 'Синхронізація даних, всього за кілька секунд.',
chooseDSL: 'Виберіть файл DSL(yml)',
backupCurrentDraft: 'Резервна поточна чернетка',
importDSLTip: 'Поточна чернетка буде перезаписана. Експортуйте робочий процес як резервну копію перед імпортом.',
parallelTip: {
click: {
title: 'Натисніть',
desc: 'щоб додати',
},
drag: {
title: 'Перетягувати',
desc: 'Щоб підключити',
},
limit: 'Паралелізм обмежується {{num}} гілками.',
depthLimit: 'Обмеження рівня паралельного вкладеності шарів {{num}}',
},
disconnect: 'Відключити',
parallelRun: 'Паралельний біг',
jumpToNode: 'Перейти до цього вузла',
addParallelNode: 'Додати паралельний вузол',
parallel: 'ПАРАЛЕЛЬНИЙ',
branch: 'ГІЛКА',
featuresDocLink: 'Дізнатися більше',
featuresDescription: 'Покращення взаємодії з користувачем веб-додатку',
fileUploadTip: 'Функції завантаження зображень були оновлені для завантаження файлів.',
ImageUploadLegacyTip: 'Тепер ви можете створювати змінні типу файлу у початковій формі. У майбутньому ми більше не підтримуватимемо функцію завантаження зображень.',
importWarning: 'Обережність',
importWarningDetails: 'Різниця у версіях DSL може впливати на певні функції',
openInExplore: 'Відкрити в Огляді',
onFailure: 'Про невдачу',
addFailureBranch: 'Додано гілку помилки',
noHistory: 'Без історії',
loadMore: 'Завантажте більше робочих процесів',
},
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: 'Модель повторного ранжування',
visionVariable: 'Змінна зору',
},
invalidVariable: 'Недійсна змінна',
rerankModelRequired: 'Перед увімкненням Rerank Model, будь ласка, підтвердьте, що модель успішно налаштована в налаштуваннях.',
noValidTool: '{{field}} не вибрано дійсного інструменту',
toolParameterRequired: '{{field}}: параметр [{{param}}] обов\'язковий',
},
singleRun: {
testRun: 'Тестовий запуск',
startRun: 'Почати запуск',
running: 'Запущено',
testRunIteration: 'Ітерація тестового запуску',
back: 'Назад',
iteration: 'Ітерація',
},
tabs: {
'searchBlock': 'Пошук блоку',
'blocks': 'Блоки',
'tools': 'Інструменти',
'allTool': 'Усі',
'builtInTool': 'Вбудовані',
'customTool': 'Користувацькі',
'workflowTool': 'Робочий потік',
'question-understand': 'Розуміння питань',
'logic': 'Логіка',
'transform': 'Трансформація',
'utilities': 'Утиліти',
'noResult': 'Нічого не знайдено',
'searchTool': 'Інструмент пошуку',
'plugin': 'Плагін',
'agent': 'Стратегія агента',
},
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': 'Екстрактор параметрів',
'document-extractor': 'Екстрактор документів',
'list-operator': 'Оператор списку',
'agent': 'Агент',
},
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-запитів.',
'document-extractor': 'Використовується для аналізу завантажених документів у текстовий контент, який легко зрозумілий LLM.',
'list-operator': 'Використовується для фільтрації або сортування вмісту масиву.',
'agent': 'Виклик великих мовних моделей для відповідей на запитання або обробки природної мови',
},
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: 'Вбудовано',
},
errorHandle: {
none: {
title: 'Ніхто',
desc: 'Вузол припинить роботу, якщо виникне виняток і не буде оброблений',
},
defaultValue: {
title: 'Значення за замовчуванням',
desc: 'При виникненні помилки вкажіть статичний вміст виводу.',
tip: 'У разі помилки поверне нижче значення.',
output: 'Вивести значення за замовчуванням',
inLog: 'Виняток вузла, що виводить відповідно до значень за замовчуванням.',
},
failBranch: {
desc: 'Коли виникає помилка, він виконає гілку винятку',
customize: 'Перейдіть до полотна, щоб налаштувати логіку fail branch.',
inLog: 'Виняток вузла, автоматично виконає гілку fail. Вихідні дані вузла повернуть тип помилки та повідомлення про помилку та передадуть їх до низхідного потоку.',
title: 'Гілка невдачі',
customizeTip: 'Коли гілка fail активована, винятки, викликані вузлами, не завершать процес. Замість цього він автоматично виконає попередньо визначену гілку помилки, дозволяючи вам гнучко надавати повідомлення про помилки, звіти, виправлення або пропускати дії.',
},
partialSucceeded: {
tip: 'У процесі є вузли {{num}}, які працюють ненормально, будь ласка, перейдіть до трасування, щоб перевірити логи.',
},
title: 'Обробка помилок',
tip: 'Стратегія обробки винятків, що спрацьовує, коли вузол стикається з винятком.',
},
retry: {
retry: 'Повторити',
retryOnFailure: 'повторити спробу в разі невдачі',
retryInterval: 'Інтервал повторних спроб',
retrying: 'Спроби...',
retryFailed: 'Повторна спроба не вдалася',
times: 'Разів',
ms: 'МС',
retries: '{{num}} Спроб',
maxRetries: 'Максимальна кількість повторних спроб',
retrySuccessful: 'Повторна спроба успішна',
retryFailedTimes: '{{times}} повторні спроби не вдалися',
retryTimes: 'Повторіть спробу {{times}} у разі невдачі',
},
},
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: '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: 'Введіть тайм-аут запису в секундах',
},
type: 'Тип',
binaryFileVariable: 'Змінна двійкового файлу',
extractListPlaceholder: 'Введіть індекс елемента списку, введіть \'/\' вставити змінну',
curl: {
title: 'Імпорт з cURL',
placeholder: 'Вставте сюди рядок cURL',
},
},
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',
'regex match': 'Регулярний вираз збігу',
'in': 'В',
'all of': 'Всі з',
'exists': 'Існує',
'not exists': 'не існує',
'not in': 'Не в',
},
enterValue: 'Введіть значення',
addCondition: 'Додати умову',
conditionNotSetup: 'Умова НЕ налаштована',
selectVariable: 'Виберіть змінну...',
optionName: {
audio: 'Аудіо',
doc: 'Док',
video: 'Відео',
localUpload: 'Локальне завантаження',
image: 'Образ',
url: 'URL-адреса',
},
select: 'Виберіть',
addSubVariable: 'Підзмінна',
},
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': 'Змінна',
'operations': {
'clear': 'Ясний',
'set': 'Встановити',
'title': 'Операція',
'append': 'Додати',
'-=': '-=',
'over-write': 'Перезаписати',
'overwrite': 'Перезаписати',
'/=': '/=',
'+=': '+=',
'*=': '*=',
'extend': 'Розширити',
},
'selectAssignedVariable': 'Виберіть призначену змінну...',
'noAssignedVars': 'Немає доступних призначених змінних',
'noVarTip': 'Натисніть кнопку «+», щоб додати змінні',
'assignedVarsDescription': 'Призначені змінні мають бути доступними для запису, такими як змінні розмови.',
'variables': 'Змінні',
'varNotSet': 'Змінна НЕ встановлена',
'setParameter': 'Встановити параметр...',
},
tool: {
toAuthorize: 'Авторизувати',
inputVars: 'Вхідні змінні',
outputVars: {
text: 'генерований вміст інструменту',
files: {
title: 'файли, генеровані інструментом',
type: 'Тип підтримки. Наразі підтримуються лише зображення',
transfer_method: 'Метод передачі. Значення - remote_url або local_file',
url: 'URL зображення',
upload_file_id: '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: 'Поточна ітерація',
ErrorMethod: {
operationTerminated: 'Припинено',
continueOnError: 'Продовжити після помилки',
removeAbnormalOutput: 'видалити-ненормальний-вивід',
},
error_one: '{{count}} Помилка',
comma: ',',
MaxParallelismTitle: 'Максимальна паралельність',
parallelModeUpper: 'ПАРАЛЕЛЬНИЙ РЕЖИМ',
error_other: '{{count}} Помилки',
parallelMode: 'Паралельний режим',
parallelModeEnableTitle: 'Увімкнено паралельний режим',
errorResponseMethod: 'Метод реагування на помилку',
parallelPanelDesc: 'У паралельному режимі завдання в ітерації підтримують паралельне виконання.',
parallelModeEnableDesc: 'У паралельному режимі завдання всередині ітерацій підтримують паралельне виконання. Ви можете налаштувати це на панелі властивостей праворуч.',
MaxParallelismDesc: 'Максимальний паралелізм використовується для контролю числа завдань, що виконуються одночасно за одну ітерацію.',
answerNodeWarningDesc: 'Попередження в паралельному режимі: вузли відповідей, призначення змінних розмови та постійні операції читання/запису в межах ітерацій можуть спричинити винятки.',
},
note: {
editor: {
large: 'Великий',
bold: 'Жирний',
openLink: 'Відкривати',
small: 'Малий',
link: 'Посилання',
italic: 'Курсив',
placeholder: 'Напишіть свою замітку...',
strikethrough: 'Закреслені',
medium: 'Середнє',
showAuthor: 'Показати автора',
bulletList: 'Маркований список',
enterUrl: 'Введіть URL-адресу...',
unlink: 'Від\'єднати',
invalidUrl: 'Невірна URL-адреса',
},
addNote: 'Додати примітку',
},
docExtractor: {
outputVars: {
text: 'Витягнутий текст',
},
learnMore: 'Дізнатися більше',
inputVar: 'Вхідна змінна',
supportFileTypes: 'Типи файлів підтримки: {{types}}.',
},
listFilter: {
outputVars: {
last_record: 'Останній запис',
first_record: 'Перший запис',
result: 'Результат фільтра',
},
desc: 'СПАДАННЯМ',
filterCondition: 'Стан фільтра',
inputVar: 'Вхідна змінна',
asc: 'ЦНАП',
filterConditionKey: 'Клавіша умови фільтра',
limit: 'Зверху N',
selectVariableKeyPlaceholder: 'Виберіть ключ підзмінної',
orderBy: 'Замовити по',
filterConditionComparisonOperator: 'Оператор порівняння умов фільтра',
filterConditionComparisonValue: 'Значення умови фільтра',
extractsCondition: 'Витягніть елемент N',
},
agent: {
strategy: {
selectTip: 'Виберіть агентську стратегію',
tooltip: 'Різні агентські стратегії визначають, як система планує та виконує багатоетапні виклики інструментів',
configureTipDesc: 'Після налаштування агентної стратегії цей вузол автоматично завантажить решту конфігурацій. Стратегія вплине на механізм багатоступінчастого інструментального міркування.',
label: 'Агентична стратегія',
configureTip: 'Будь ласка, налаштуйте агентичну стратегію.',
searchPlaceholder: 'Стратегія пошукового агента',
shortLabel: 'Стратегія',
},
pluginInstaller: {
install: 'Інсталювати',
installing: 'Установки',
},
modelNotInMarketplace: {
desc: 'Ця модель встановлюється з локального репозиторію або репозиторію GitHub. Будь ласка, використовуйте після встановлення.',
title: 'Модель не встановлена',
manageInPlugins: 'Керування в плагінах',
},
modelNotSupport: {
title: 'Непідтримувана модель',
desc: 'Встановлена версія плагіна не передбачає цю модель.',
descForVersionSwitch: 'Встановлена версія плагіна не передбачає цю модель. Натисніть, щоб змінити версію.',
},
modelSelectorTooltips: {
deprecated: 'Ця модель вважається застарілою',
},
outputVars: {
files: {
upload_file_id: 'Завантажити ідентифікатор файлу',
transfer_method: 'Спосіб переказу. Цінність remote_url або local_file',
type: 'Тип підтримки. Тепер підтримка тільки зображення',
url: 'URL-адреса зображення',
title: 'Файли, створені агентом',
},
text: 'Контент, створений агентом',
json: 'Агент згенерував JSON',
},
checkList: {
strategyNotSelected: 'Стратегію не обрано',
},
installPlugin: {
cancel: 'Скасувати',
title: 'Встановити плагін',
desc: 'Про встановлення наступного плагіна',
changelog: 'Журнал змін',
install: 'Інсталювати',
},
strategyNotSet: 'Агентська стратегія Не встановлено',
strategyNotFoundDesc: 'Встановлена версія плагіна не забезпечує цю стратегію.',
notAuthorized: 'Не авторизовано',
pluginNotInstalled: 'Цей плагін не встановлено',
linkToPlugin: 'Посилання на плагіни',
configureModel: 'Налаштуйте модель',
toolNotInstallTooltip: '{{tool}} не встановлено',
maxIterations: 'Максимальна кількість ітерацій',
pluginNotFoundDesc: 'Цей плагін встановлюється з GitHub. Будь ласка, перейдіть до Плагіни для перевстановлення',
modelNotInstallTooltip: 'Дана модель не встановлена',
unsupportedStrategy: 'Стратегія без підтримки',
learnMore: 'Дізнатися більше',
tools: 'Інструмент',
strategyNotInstallTooltip: '{{strategy}} не встановлено',
toolbox: 'ящик для інструментів',
toolNotAuthorizedTooltip: '{{tool}} Не авторизовано',
model: 'модель',
pluginNotInstalledDesc: 'Цей плагін встановлюється з GitHub. Будь ласка, перейдіть до Плагіни для перевстановлення',
modelNotSelected: 'Модель не обрана',
strategyNotFoundDescAndSwitchVersion: 'Встановлена версія плагіна не забезпечує цю стратегію. Натисніть, щоб змінити версію.',
},
},
tracing: {
stopBy: 'Зупинено користувачем {{user}}',
},
variableReference: {
conversationVars: 'Змінні розмови',
noVarsForOperation: 'Немає доступних змінних для призначення з обраною операцією.',
assignedVarsDescription: 'Призначені змінні мають бути доступними для запису, такими як',
noAssignedVars: 'Немає доступних призначених змінних',
noAvailableVars: 'Немає доступних змінних',
},
}
export default translation