feat: translations (#3176)

This commit is contained in:
crazywoola 2024-04-08 23:17:16 +08:00 • committed by GitHub
commit 1382f10433
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
40 changed files with 2595 additions and 696 deletions

View file

@ -260,19 +260,32 @@ const translation = {
queryNoBeEmpty: 'Запит має бути встановлений у підказці', // Query must be set in the prompt
},
variableConig: {
'addModalTitle': 'Налаштування поля', // Field settings
'description': 'Налаштування для змінної {{varName}}', // Setting for variable {{varName}}
'fieldType': 'Тип поля', // Field type
'string': 'Короткий текст', // Short Text
'text-input': 'Короткий текст', // Short Text
'paragraph': 'Абзац', // Paragraph
'select': 'Вибрати', // Select
'notSet': 'Не налаштовано, спробуйте ввести {{input}} у префіксну підказку', // Not set, try typing {{input}} in the prefix prompt
'stringTitle': 'Опції текстового поля форми', // Form text box options
'maxLength': 'Максимальна довжина', // Max length
'options': 'Опції', // Options
'addOption': 'Додати опцію', // Add option
'apiBasedVar': 'Змінна на основі API', // API-based Variable
'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
@ -340,6 +353,7 @@ const translation = {
result: 'Вихідний текст', // Output Text
datasetConfig: {
settingTitle: 'Налаштування пошуку', // Retrieval settings
knowledgeTip: 'Клацніть кнопку “+”, щоб додати знання',
retrieveOneWay: {
title: 'Односторонній пошук', // N-to-1 retrieval
description: 'На основі намірів користувача та описів Знань Агент самостійно вибирає найкращі Знання для запитів. Найкраще підходить для застосунків з окремими, обмеженими Знаннями.',

View file

@ -1,69 +1,83 @@
const translation = {
title: 'Журнали', // Logs
description: 'Журнали фіксують стан роботи застосунку, включаючи введення користувача та відповіді ШІ.', // The logs record...
dateTimeFormat: 'MM/DD/YYYY hh:mm A', // (Keep date format as is)
title: 'Журнали',
description: 'Журнали фіксують робочий статус додатка, включаючи введення користувачів та відповіді штучного інтелекту.',
dateTimeFormat: 'MM/DD/YYYY hh:mm A',
table: {
header: {
time: 'Час', // Time
endUser: 'Кінцевий користувач', // End User
input: 'Введення', // Input
output: 'Виведення', // Output
summary: 'Заголовок', // Title
messageCount: 'Кількість повідомлень', // Message Count
userRate: 'Оцінка користувача', // User Rate
adminRate: 'Оцінка адміністратора', // Op. Rate
time: 'Час',
endUser: 'Кінцевий Користувач',
input: 'Введення',
output: 'Виведення',
summary: 'Заголовок',
messageCount: 'Кількість Повідомлень',
userRate: 'Рейтинг Користувача',
adminRate: 'Рейтинг Оператора',
startTime: 'ЧАС ПОЧАТКУ',
status: 'СТАТУС',
runtime: 'ЧАС ВИКОНАННЯ',
tokens: 'ТОКЕНИ',
user: 'КІНЦЕВИЙ КОРИСТУВАЧ',
version: 'ВЕРСІЯ',
},
pagination: {
previous: 'Назад', // Prev
next: 'Далі', // Next
previous: 'Попередня',
next: 'Наступна',
},
empty: {
noChat: 'Ще немає розмови', // No conversation yet
noOutput: 'Відповіді немає', // No output
noChat: 'Ще немає розмов',
noOutput: 'Немає виводу',
element: {
title: 'Хто-небудь тут є?', // Is anyone there?
content: 'Спостерігайте й коментуйте взаємодію між кінцевими користувачами та програмами штучного інтелекту, щоб постійно покращувати точність ШІ. Ви можете спробувати <shareLink>поділитися</shareLink> або <testLink>тестувати</testLink> веб-програму самостійно, а потім повернутися на цю сторінку.',
title: 'Хтось тут?',
content: 'Спостерігайте та анотуйте взаємодії між кінцевими користувачами та додатками штучного інтелекту тут, щоб постійно покращувати точність штучного інтелекту. Ви можете спробувати <shareLink>поділитися</shareLink> або <testLink>протестувати</testLink> веб-додаток самостійно, а потім повернутися на цю сторінку.',
},
},
},
detail: {
time: 'Час', // Time
conversationId: 'Ідентифікатор розмови', // Conversation ID
promptTemplate: 'Шаблон підказки', // Prompt Template
promptTemplateBeforeChat: 'Шаблон підказки перед чатом · як системне повідомлення', // Prompt Template Before Chat...
annotationTip: 'Покращення, позначені {{user}}', // Improvements Marked by {{user}}
time: 'Час',
conversationId: 'ID Розмови',
promptTemplate: 'Шаблон Запитання',
promptTemplateBeforeChat: 'Шаблон Запитання Перед Чатом · Як Системне Повідомлення',
annotationTip: 'Покращення Позначені Користувачем {{user}}',
timeConsuming: '',
second: 'с', // s (seconds)
tokenCost: 'Витрачені токени', // Token spent
loading: 'Завантаження', // loading
second: 'с',
tokenCost: 'Витрати Токенів',
loading: 'завантаження',
operation: {
like: 'Вподобати', // like
dislike: 'Не вподобати', // dislike
addAnnotation: 'Додати покращення', // Add Improvement
editAnnotation: 'Редагувати покращення', // Edit Improvement
annotationPlaceholder: 'Введіть очікувану відповідь, яку ви хочете, щоб відповів ШІ. ',
like: 'подобається',
dislike: 'не подобається',
addAnnotation: 'Додати Покращення',
editAnnotation: 'Редагувати Покращення',
annotationPlaceholder: 'Введіть очікувану відповідь, яку ви хочете, щоб штучний інтелект повертав, це може бути використано для налаштування моделі та постійного покращення якості генерації тексту в майбутньому.',
},
variables: 'Змінні', // Variables
uploadImages: 'Завантажені зображення', // Uploaded Images
variables: 'Змінні',
uploadImages: 'Завантажені Зображення',
},
filter: {
period: {
today: 'Сьогодні', // Today
last7days: 'Останні 7 днів', // Last 7 Days
last4weeks: 'Останні 4 тижні', // Last 4 weeks
last3months: 'Останні 3 місяці', // Last 3 months
last12months: 'Останні 12 місяців', // Last 12 months
monthToDate: 'Місяць до дати', // Month to date
quarterToDate: 'Квартал до дати', // Quarter to date
yearToDate: 'Рік до дати', // Year to date
allTime: 'Увесь час', // All time
today: 'Сьогодні',
last7days: 'Останні 7 днів',
last4weeks: 'Останні 4 тижні',
last3months: 'Останні 3 місяці',
last12months: 'Останні 12 місяців',
monthToDate: 'Місяць до сьогодні',
quarterToDate: 'Квартал до сьогодні',
yearToDate: 'Рік до сьогодні',
allTime: 'За весь час',
},
annotation: {
all: 'Усі', // All
annotated: 'Анотовані покращення ({{count}} елементів)', // Annotated Improvements...
not_annotated: 'Не анотований', // Not Annotated
all: 'Всі',
annotated: 'Покращення з Анотацією ({{count}} елементів)',
not_annotated: 'Без Анотації',
},
},
workflowTitle: 'Журнали Робочого Процесу',
workflowSubtitle: 'Журнал зареєстрував роботу Автоматизації.',
runDetail: {
title: 'Журнал Розмови',
workflowTitle: 'Деталі Журналу',
},
promptLog: 'Журнал Запитань',
viewLog: 'Переглянути Журнал',
}
export default translation

View file

@ -1,137 +1,141 @@
const translation = {
welcome: {
firstStepTip: 'Щоб розпочати,',
firstStepTip: 'Для початку,',
enterKeyTip: 'введіть свій ключ API OpenAI нижче',
getKeyTip: 'Отримайте свій ключ API з панелі керування OpenAI',
placeholder: 'Ваш ключ API OpenAI (наприклад, sk-xxxx)',
getKeyTip: 'Отримайте свій ключ API з панелі OpenAI',
placeholder: 'Ваш ключ API OpenAI (напр. sk-xxxx)',
},
apiKeyInfo: {
cloud: {
trial: {
title: 'Ви використовуєте пробну квоту {{providerName}}.', // You are using...
description: 'Пробна квота надається для використання під час тестування. Перш ніж вичерпається пробна квота, будь ласка, налаштуйте свого постачальника моделі або придбайте додаткову квоту.',
title: 'Ви використовуєте квоту пробного періоду {{providerName}}.',
description: 'Квота пробного періоду надається для вашого тестувального використання. Перш ніж будуть вичерпані виклики квоти пробного періоду, налаштуйте свого власного постачальника моделей або придбайте додаткову квоту.',
},
exhausted: {
title: 'Ваша пробна квота використана, будь ласка, налаштуйте свій APIKey.',
description: 'Ваша пробна квота вичерпана. Будь ласка, налаштуйте свого постачальника моделі або придбайте додаткову квоту.',
title: 'Вашу квоту пробного періоду вичерпано, налаштуйте свій ключ API.',
description: 'Вашу квоту пробного періоду вичерпано. Налаштуйте свого власного постачальника моделей або придбайте додаткову квоту.',
},
},
selfHost: {
title: {
row1: 'Щоб розпочати,',
row2: 'спочатку налаштуйте свого постачальника моделі.',
row1: 'Для початку,',
row2: 'спочатку налаштуйте постачальника моделей.',
},
},
callTimes: 'Кількість викликів', // Call times
usedToken: 'Використано токенів', // Used token
setAPIBtn: 'Перейти до налаштування постачальника моделі', // Go to setup model provider
tryCloud: 'Або спробуйте хмарну версію Dify з безкоштовною квотою', // Or try the cloud version ...
callTimes: 'Кількість викликів',
usedToken: 'Використані токени',
setAPIBtn: 'Перейти до налаштування постачальника моделей',
tryCloud: 'Або спробуйте хмарну версію Dify з безкоштовним цитатою',
},
overview: {
title: 'Огляд', // Overview
title: 'Огляд',
appInfo: {
explanation: 'Готовий до використання AI WebApp',
accessibleAddress: 'Публічна URL-адреса', // Public URL
preview: 'Попередній перегляд', // Preview
regenerate: 'Регенерувати', // Regenerate
preUseReminder: 'Будь ласка, увімкніть WebApp, перш ніж продовжувати.', // Please enable WebApp...
explanation: 'Готовий до використання веб-додаток зі штучним інтелектом',
accessibleAddress: 'Публічний URL',
preview: 'Попередній перегляд',
regenerate: 'Відновити',
preUseReminder: 'Будь ласка, активуйте веб-додаток перед продовженням.',
settings: {
entry: 'Налаштування', // Settings
title: 'Налаштування веб-програми', // WebApp Settings
webName: 'Ім’я веб-програми', // WebApp Name
webDesc: 'Опис веб-програми', // WebApp Description
webDescTip: 'Цей текст відображатиметься на стороні клієнта, надаючи базові вказівки щодо використання програми',
webDescPlaceholder: 'Введіть опис WebApp',
language: 'Мова', // Language
entry: 'Налаштування',
title: 'Налаштування веб-додатку',
webName: 'Назва веб-додатку',
webDesc: 'Опис веб-додатку',
webDescTip: 'Цей текст буде відображений на клієнтському боці, надаючи базові вказівки щодо використання додатка',
webDescPlaceholder: 'Введіть опис веб-додатку',
language: 'Мова',
more: {
entry: 'Показати більше налаштувань', // Show more settings
copyright: 'Авторські права', // Copyright
copyRightPlaceholder: 'Введіть ім’я автора або організації',
privacyPolicy: 'Політика конфіденційності', // Privacy Policy
entry: 'Показати додаткові налаштування',
copyright: 'Авторське право',
copyRightPlaceholder: 'Введіть ім\'я автора або організації',
privacyPolicy: 'Політика конфіденційності',
privacyPolicyPlaceholder: 'Введіть посилання на політику конфіденційності',
privacyPolicyTip: 'Допомагає відвідувачам зрозуміти, які дані збирає програма. Дивіться <privacyPolicyLink>Політику конфіденційності</privacyPolicyLink> Dify.',
privacyPolicyTip: 'Допомагає відвідувачам зрозуміти дані, зібрані додатком, див. <privacyPolicyLink>Політику конфіденційності</privacyPolicyLink> Dify.',
},
},
embedded: {
entry: 'Вбудований', // Embedded
title: 'Вбудувати на веб-сайт', // Embed on website
explanation: 'Виберіть спосіб вбудувати чат-програму на свій веб-сайт',
iframe: 'Щоб додати чат-програму будь-де на своєму веб-сайті, додайте цей iframe у свій код html.',
scripts: 'Щоб додати програму чату у правий нижній кут свого веб-сайту, додайте цей код до свого html.',
chromePlugin: 'Встановити розширення Dify Chatbot для Chrome',
copied: 'Скопійовано', // Copied
copy: 'Копіювати', // Copy
entry: 'Вбудоване',
title: 'Вбудувати на веб-сайт',
explanation: 'Виберіть спосіб вбудування чат-додатка на ваш веб-сайт',
iframe: 'Для додавання чат-додатка в будь-яке місце на вашому веб-сайті, додайте цей iframe до вашого HTML-коду.',
scripts: 'Для додавання чат-додатка в правий нижній кут вашого веб-сайту додайте цей код до вашого HTML.',
chromePlugin: 'Встановити розширення Chrome Dify Chatbot',
copied: 'Скопійовано',
copy: 'Скопіювати',
},
qrcode: {
title: 'QR-код для спільного доступу',
scan: 'Відсканувати програму спільного доступу',
title: 'QR-код для обміну',
scan: 'Сканувати та обмінюватися додатком',
download: 'Завантажити QR-код',
},
customize: {
way: 'спосіб', // way
entry: 'Налаштувати', // Customize
title: 'Налаштувати веб-додаток AI',
explanation: 'Ви можете налаштувати зовнішній вигляд WebApp відповідно до вашого сценарію та стилю.',
way: 'спосіб',
entry: 'Налаштувати',
title: 'Налаштування веб-додатку зі штучним інтелектом',
explanation: 'Ви можете налаштувати інтерфейс користувача веб-додатка, щоб він відповідав вашим потребам у сценаріях та стилі.',
way1: {
name: 'Розгалужити код клієнта, змінити його та розгорнути у Vercel (рекомендовано)',
step1: 'Розгалужити код клієнта та модифікувати його',
step1Tip: 'Натисніть тут, щоб розгалужити вихідний код у свій обліковий запис GitHub і змінити код',
step1Operation: 'Dify-WebClient',
step2: 'Розгорнути у Vercel',
step2Tip: 'Натисніть тут, щоб імпортувати репозиторій до Vercel та виконати розгортання',
step2Operation: 'Імпортувати репозиторій',
step3: 'Налаштувати змінні середовища',
step3Tip: 'Додайте такі змінні середовища у Vercel',
name: 'Склонуйте клієнтський код, відредагуйте його та розгорніть на Vercel (рекомендовано)',
step1: 'Склонуйте клієнтський код та відредагуйте його',
step1Tip: 'Натисніть тут, щоб склонувати вихідний код у ваш обліковий запис GitHub та відредагувати код',
step1Operation: 'Клієнт-Web-Dify',
step2: 'Розгорніть на Vercel',
step2Tip: 'Натисніть тут, щоб імпортувати репозиторій у Vercel та розгорнути',
step2Operation: 'Імпорт репозиторію',
step3: 'Налаштуйте змінні середовища',
step3Tip: 'Додайте наступні змінні середовища у Vercel',
},
way2: {
name: 'Напишіть код на клієнтській стороні, щоб викликати API та розгорнути його на сервері',
name: 'Напишіть клієнтський код для виклику API та розгорніть його на сервері',
operation: 'Документація',
},
},
},
apiInfo: {
title: 'API бекенд-сервісу', // Backend service API
explanation: 'Легко інтегрується в вашу програму',
accessibleAddress: 'Кінцевий ресурс сервісу API', // Service API Endpoint
doc: 'API довідка', // API Reference
title: 'API сервісу Backend',
explanation: 'Легко інтегрований у вашу програму',
accessibleAddress: 'Кінцева точка API сервісу',
doc: 'Довідка з API',
},
status: {
running: 'Працює', // In service
disable: 'Вимкнути', // Disable
running: 'У роботі',
disable: 'Вимкнути',
},
},
analysis: {
title: 'Аналіз', // Analysis
ms: 'мс', // ms
tokenPS: 'Токен/с', // Token/s
title: 'Аналіз',
ms: 'мс',
tokenPS: 'Токени/с',
totalMessages: {
title: 'Загалом повідомлень', // Total Messages
explanation: 'Щоденна кількість взаємодій зі ШІ; виключено проектування запитань або налагодження.',
title: 'Загальна кількість повідомлень',
explanation: 'Щоденна кількість взаємодій з штучним інтелектом; інженерія/налагодження запитів виключено.',
},
activeUsers: {
title: 'Активні користувачі', // Active Users
explanation: 'Унікальні користувачі, які беруть участь у запитах/відповідях зі ШІ; виключено інженерію запитань або налагодження.',
title: 'Активні користувачі',
explanation: 'Унікальні користувачі, які взаємодіють з AI; інженерія/налагодження запитів виключено.',
},
tokenUsage: {
title: 'Використання токенів', // Token Usage
explanation: 'Відображає щоденне використання токенів мовної моделі для програми, корисно для контролю витрат.',
consumed: 'Спожито', // Consumed
title: 'Використання токенів',
explanation: 'Відображає щоденне використання токенів мовної моделі для додатка, корисно для контролю витрат.',
consumed: 'Спожито',
},
avgSessionInteractions: {
title: 'Середня кількість взаємодій під час сеансу', // Avg. Session Interactions
explanation: 'Кількість безперервних комунікацій між користувачем і ШІ; для програм, що базуються на розмовах.',
title: 'Середня кількість взаємодій за сесію',
explanation: 'Кількість продовжуючихся спілкувань користувача з AI; для програм, що базуються на розмові.',
},
avgUserInteractions: {
title: 'Середня кількість взаємодій на користувача',
explanation: 'Відображає щоденну частоту використання користувачами. Ця метрика відображає лояльність користувачів.',
},
userSatisfactionRate: {
title: 'Рівень задоволеності користувачів',
explanation: 'Кількість лайків на 1000 повідомлень. Це означає частку відповідей, якими користувачі дуже задоволені.',
title: 'Показник задоволення користувача',
explanation: 'Кількість лайків на 1000 повідомлень. Це вказує на те, наскільки задоволені користувачі відповідями.',
},
avgResponseTime: {
title: 'Середній час відповіді',
explanation: 'Час (мс) для обробки/відповіді ШІ; для текстових програм.',
explanation: 'Час (мс) для обробки/відповіді AI; для текстових програм.',
},
tps: {
title: 'Швидкість виведення токенів',
explanation: 'Виміряйте продуктивність LLM. Підрахуйте швидкість виведення токенів LLM від початку запиту до завершення виведення.',
explanation: 'Вимірює продуктивність LLM. Підраховує швидкість виведення токенів LLM від початку запиту до завершення виведення.',
},
},
}

View file

@ -1,62 +1,90 @@
const translation = { // Add the Ukrainian translation object
const translation = {
createApp: 'Створити додаток',
types: {
all: 'Все',
all: 'Усе',
chatbot: 'Чатбот',
agent: 'Агент',
workflow: 'Робочий Процес',
completion: 'Автодоповнення',
workflow: 'Робочий процес',
completion: 'Завершення',
},
duplicate: 'Дублювати',
duplicateTitle: 'Дублювати додаток',
export: 'Експортувати DSL',
createFromConfigFile: 'Створити через файл DSL',
exportFailed: 'Не вдалося експортувати DSL.',
importDSL: 'Імпортувати файл DSL',
createFromConfigFile: 'Створити з файлу DSL',
deleteAppConfirmTitle: 'Видалити цей додаток?',
deleteAppConfirmContent:
'Видалення додатка є незворотнім. Користувачі більше не матимуть доступ до вашого додатка, всі конфігурації підказок та журнали будуть видалені назавжди.',
'Видалення додатка незворотнє. Користувачі більше не зможуть отримати доступ до вашого додатка, і всі налаштування запитів та журнали будуть остаточно видалені.',
appDeleted: 'Додаток видалено',
appDeleteFailed: 'Не вдалося видалити додаток',
join: 'Приєднуйтесь до спільноти',
communityIntro:
'Обговорюйте різні питання з членами команди, учасниками та розробниками на різних каналах.',
roadmap: 'Ознайомтеся з нашою дорожньою картою',
'Обговорюйте з членами команди, співавторами та розробниками на різних каналах.',
roadmap: 'Переглянути наш план розвитку',
newApp: {
startFromBlank: 'Розпочати з порожнього додатку',
startFromTemplate: 'Розпочати з шаблону',
captionAppType: 'Який тип додатка Ви бажаєте створити?',
chatbotDescription: 'Побудувати чат-асистента, використовуючи Модель Великої Мови',
agentDescription: 'Побудувати розумного Агента, який може автономно обирати інструменти для виконання завдань',
workflowDescription: 'Description text here',
captionName: 'Значок та назва додатка',
appNamePlaceholder: 'Назвіть свій додаток',
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: 'Попередній перегляд демо',
appDescriptionPlaceholder: 'Введіть опис додатка',
useTemplate: 'Використовуйте цей шаблон',
previewDemo: 'Попередній перегляд демонстрації',
chatApp: 'Асистент',
chatAppIntro:
'Я хочу створити чат-додаток. Цей додаток використовує формат запитань та відповідей, що дозволяє проводити кілька раундів безперервної розмови.',
agentAssistant: 'Новий агент-асистент',
'Я хочу побудувати додаток на основі чату. Цей додаток використовує формат запитань та відповідей, що дозволяє проводити кілька раундів безперервного спілкування.',
agentAssistant: 'Новий помічник агента',
completeApp: 'Генератор тексту',
completeAppIntro:
'Я хочу створити додаток, який генерує високоякісний текст на основі підказок, наприклад, створення статей, резюме, перекладів тощо.',
'Я хочу створити додаток, який генерує текст високої якості на основі підказок, таких як генерація статей, резюме, перекладів тощо.',
showTemplates: 'Я хочу вибрати з шаблону',
hideTemplates: 'Повернутися до вибору режиму',
Create: 'Створити',
Cancel: 'Скасувати',
nameNotEmpty: 'Назва не може бути пустою',
nameNotEmpty: 'Назва не може бути порожньою',
appTemplateNotSelected: 'Будь ласка, виберіть шаблон',
appTypeRequired: 'Будь ласка, виберіть тип додатка',
appCreated: 'Додаток створено',
appCreateFailed: 'Не вдалося створити додаток',
},
editApp: {
startToEdit: 'Редагувати додаток',
},
editApp: 'Редагувати інформацію',
editAppTitle: 'Редагувати інформацію про додаток',
editDone: 'Інформація про додаток оновлена',
editFailed: 'Не вдалося оновити інформацію про додаток',
emoji: {
ok: 'OK',
cancel: 'Скасувати',
},
switch: 'Перейти до оркестрації робочого процесу',
switchTipStart: 'Для вас буде створена нова копія додатка, і нова копія перейде до оркестрації робочого процесу. Нова копія не дозволить ',
switchTip: 'повернутися',
switchTipEnd: ' до базової оркестрації.',
switchLabel: 'Копія додатка, яка буде створена',
removeOriginal: 'Видалити початковий додаток',
switchStart: 'Почати перемикання',
typeSelector: {
all: 'Усі типи',
chatbot: 'Чатбот',
agent: 'Агент',
workflow: 'Робочий процес',
completion: 'Завершення',
},
}
export default translation

View file

@ -478,6 +478,10 @@ const translation = {
title: 'Змінні та зовнішні інструменти',
desc: 'Вставити змінні та зовнішні інструменти',
},
outputToolDisabledItem: {
title: 'Змінні',
desc: 'Вставити змінні',
},
modal: {
add: 'Нова змінна',
addTool: 'Новий інструмент',

View file

@ -18,7 +18,7 @@ const translation = {
apps: {
title: 'Вивчайте програми від Dify',
description: 'Використовуйте ці шаблони миттєво або налаштуйте власні програми на основі шаблонів.',
allCategories: 'Усі категорії',
allCategories: 'Рекомендовані',
},
appCard: {
addToWorkspace: 'Додати до робочого простору',

View file

@ -1,10 +1,22 @@
const translation = {
result: 'RESULT',
tracing: 'TRACING',
input: 'ВВЕДЕННЯ',
result: 'РЕЗУЛЬТАТ',
detail: 'ДЕТАЛІ',
tracing: 'ВІДСЛІДКУВАННЯ',
resultPanel: {
status: 'STATUS',
time: 'ELAPSED TIME',
tokens: 'TOTAL TOKENS',
status: 'СТАТУС',
time: 'ЧАС ВИКОНАННЯ',
tokens: 'ЗАГАЛЬНА КІЛЬКІСТЬ ТОКЕНІВ',
},
meta: {
title: 'МЕТАДАНІ',
status: 'Статус',
version: 'Версія',
executor: 'Виконавець',
startTime: 'Час початку',
time: 'Час виконання',
tokens: 'Загальна кількість токенів',
steps: 'Кроки виконання',
},
}

View file

@ -1,90 +1,332 @@
const translation = {
common: {
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: 'Натисніть клавішу "/" для швидкого вставлення',
},
errorMsg: {
fieldRequired: '{{field}} є обов\'язковим',
authRequired: 'Потрібна авторизація',
invalidJson: '{{field}} недійсний JSON',
fields: {
variable: 'Назва змінної',
variableValue: 'Значення змінної',
code: 'Код',
model: 'Модель',
rerankModel: 'Модель пересортування',
},
invalidVariable: 'Недійсна змінна',
},
singleRun: {
testRun: 'Тестовий запуск ',
startRun: 'Почати запуск',
running: 'Виконується',
},
tabs: {
'searchBlock': 'Пошук блоку',
'blocks': 'Блоки',
'builtInTool': 'Вбудований інструмент',
'customTool': 'Спеціальний інструмент',
'question-understand': 'Розуміння питань',
'logic': 'Логіка',
'transform': 'Трансформація',
'utilities': 'Утиліти',
'noResult': 'Співпадінь не знайдено',
},
blocks: {
'start': 'Початок',
'end': 'Кінець',
'answer': 'Відповідь',
'llm': 'LLM',
'knowledge-retrieval': 'Пошук знань',
'question-classifier': 'Класифікатор питань',
'if-else': 'Якщо / Інакше',
'code': 'Код',
'template-transform': 'Шаблон',
'http-request': 'HTTP-запит',
'variable-assigner': 'Призначення змінних',
},
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': 'Призначте змінні в різних гілках тієї самої змінної, щоб забезпечити єдину конфігурацію після-вузлів',
},
operator: {
zoomIn: 'Збільшити',
zoomOut: 'Зменшити',
zoomTo50: 'Масштабувати до 50%',
zoomTo100: 'Масштабувати до 100%',
zoomToFit: 'Підігнати по ширині',
},
panel: {
userInputField: 'Поле введення користувача',
changeBlock: 'Змінити блок',
helpLink: 'Посилання на довідку',
about: 'Про',
createdBy: 'Створено ',
nextStep: 'Наступний крок',
addNextStep: 'Додати наступний блок у цей робочий процес',
selectNextStep: 'Виберіть наступний блок',
runThisStep: 'Запустити цей крок',
checklist: 'Перелік',
checklistTip: 'Переконайтеся, що всі питання вирішено перед публікацією',
checklistResolved: 'Всі питання вирішено',
organizeBlocks: 'Організувати блоки',
change: 'Змінити',
},
nodes: {
common: {
outputVars: 'Output Variables',
insertVarTip: 'Insert Variable',
},
start: {
required: 'required',
inputField: 'Input Field',
builtInVar: 'Built-in Variables',
outputVars: {
query: 'User input',
memories: {
des: 'Conversation history',
type: 'message type',
content: 'message content',
},
files: 'File list',
outputVars: 'Вихідні змінні',
insertVarTip: 'Вставити змінну',
memory: {
memory: 'Пам\'ять',
memoryTip: 'Налаштування чат-пам\'яті',
windowSize: 'Розмір вікна',
conversationRoleName: 'Назва ролі розмови',
user: 'Префікс користувача',
assistant: 'Префікс помічника',
},
memories: {
title: 'Пам\'яті',
tip: 'Чат-пам\'ять',
builtIn: 'Вбудований',
},
},
start: {
required: 'обов\'язково',
inputField: 'Поле введення',
builtInVar: 'Вбудовані змінні',
outputVars: {
query: 'Вхід користувача',
memories: {
des: 'Історія розмов',
type: 'тип повідомлення',
content: 'вміст повідомлення',
},
files: 'Список файлів',
},
noVarTip: 'Встановіть вхідні дані, які можна використовувати в робочому процесі',
},
end: {
outputs: 'Outputs',
outputs: 'Вихідні дані',
output: {
type: 'тип виходу',
variable: 'вихідна змінна',
},
type: {
'none': 'None',
'plain-text': 'Plain Text',
'structured': 'Structured',
'none': 'Нічого',
'plain-text': 'Звичайний текст',
'structured': 'Структурований',
},
},
answer: {
answer: 'Answer',
inputVars: 'Input Variables',
answer: 'Відповідь',
outputVars: 'Вихідні змінні',
},
llm: {
model: 'model',
variables: 'variables',
context: 'context',
prompt: 'prompt',
vision: 'vision',
model: 'модель',
variables: 'змінні',
context: 'контекст',
contextTooltip: 'Ви можете імпортувати знання як контекст',
notSetContextInPromptTip: 'Щоб увімкнути функцію контексту, будь ласка, заповніть змінну контексту в PROMPT.',
prompt: 'підказка',
roleDescription: {
system: 'Надати високорівневі інструкції для розмови',
user: 'Надати інструкції, запити або будь-який текстовий ввід для моделі',
assistant: 'Відповіді моделі на основі повідомлень користувача',
},
addMessage: 'Додати повідомлення',
vision: 'візія',
files: 'Файли',
resolution: {
name: 'Роздільна здатність',
high: 'Висока',
low: 'Низька',
},
outputVars: {
output: 'Generate content',
usage: 'Model Usage Information',
output: 'Створення вмісту',
usage: 'Інформація про використання моделі',
},
singleRun: {
variable: 'Змінна',
},
},
knowledgeRetrieval: {
queryVariable: 'Запит змінної',
knowledge: 'Знання',
outputVars: {
output: 'Вилучені сегментовані дані',
content: 'Сегментований вміст',
title: 'Сегментований заголовок',
icon: 'Сегментована іконка',
url: 'Сегментований URL',
metadata: 'Інша метадані',
},
},
http: {
inputVars: 'Input Variables',
inputVars: 'Вхідні змінні',
api: 'API',
headers: 'Headers',
params: 'Params',
body: 'Body',
apiPlaceholder: 'Введіть URL, наберіть «/» для вставки змінної',
notStartWithHttp: 'API повинно починатися з http:// або https://',
key: 'Ключ',
value: 'Значення',
bulkEdit: 'Масове редагування',
keyValueEdit: 'Редагування Ключ-Значення',
headers: 'Заголовки',
params: 'Параметри',
body: 'Тіло',
outputVars: {
body: 'Response Content',
statusCode: 'Response Status Code',
headers: 'Response Header List JSON',
body: 'Вміст відповіді',
statusCode: 'Код статусу відповіді',
headers: 'Список заголовків відповіді JSON',
files: 'Список файлів',
},
authorization: {
'authorization': 'Авторизація',
'authorizationType': 'Тип авторизації',
'no-auth': 'Немає',
'api-key': 'API-Key',
'auth-type': 'Тип авторизації',
'basic': 'Базова',
'bearer': 'Bearer',
'custom': 'Користувацька',
'api-key-title': 'Ключ API',
'header': 'Заголовок',
},
insertVarPlaceholder: 'наберіть \'/\' для вставки змінної',
},
code: {
inputVars: 'Input Variables',
outputVars: 'Output Variables',
inputVars: 'Вхідні змінні',
outputVars: 'Вихідні змінні',
},
templateTransform: {
inputVars: 'Input Variables',
code: 'Code',
codeSupportTip: 'Only supports Jinja2',
inputVars: 'Вхідні змінні',
code: 'Код',
codeSupportTip: 'Підтримується лише Jinja2',
outputVars: {
output: 'Transformed content',
output: 'Перетворений вміст',
},
},
ifElse: {
conditions: 'Conditions',
and: 'and',
or: 'or',
if: 'Якщо',
else: 'Інакше',
elseDescription: 'Використовується для визначення логіки, яка має виконуватися, коли умова if не виконується.',
and: 'і',
or: 'або',
operator: 'Оператор',
notSetVariable: 'Спочатку встановіть змінну',
comparisonOperator: {
'contains': 'contains',
'not contains': 'not contains',
'start with': 'start with',
'end with': 'end with',
'is': 'is',
'is not': 'is not',
'empty': 'empty',
'not empty': 'not empty',
'null': 'is null',
'not null': 'is not null',
'contains': 'містить',
'not contains': 'не містить',
'start with': 'починається з',
'end with': 'закінчується на',
'is': 'є',
'is not': 'не є',
'empty': 'порожній',
'not empty': 'не порожній',
'null': 'нуль',
'not null': 'не нуль',
},
enterValue: 'Введіть значення',
addCondition: 'Додати умову',
conditionNotSetup: 'Умова НЕ налаштована',
},
variableAssigner: {
title: 'Assign variables',
title: 'Призначення змінних',
outputType: 'Тип виходу',
outputVarType: 'Тип вихідної змінної',
varNotSet: 'Змінна не встановлена',
noVarTip: 'Додайте змінні для призначення',
type: {
string: 'Рядок',
number: 'Число',
object: 'Об’єкт',
array: 'Масив',
},
outputVars: {
output: 'Значення призначеної змінної',
},
},
tool: {
toAuthorize: 'Авторизуватися',
inputVars: 'Вхідні змінні',
outputVars: {
text: 'вміст, згенерований інструментом',
files: {
title: 'файли, згенеровані інструментом',
type: 'Тип підтримки. Тепер підтримується лише зображення',
transfer_method: 'Метод передачі. Значення - віддалений URL або локальний файл',
url: 'URL зображення',
upload_file_id: 'Ідентифікатор завантаженого файлу',
},
},
},
questionClassifiers: {
model: 'модель',
inputVars: 'Вхідні змінні',
class: 'Клас',
classNamePlaceholder: 'Напишіть назву вашого класу',
advancedSetting: 'Розширена настройка',
topicName: 'Назва теми',
topicPlaceholder: 'Напишіть назву вашої теми',
addClass: 'Додати клас',
instruction: 'Інструкція',
instructionPlaceholder: 'Напишіть вашу інструкцію',
},
},
tracing: {
stopBy: 'Зупинено користувачем {{user}}',
},
}