diff --git a/messages/uk.json b/messages/uk.json new file mode 100644 index 000000000..ea6d0ce49 --- /dev/null +++ b/messages/uk.json @@ -0,0 +1,799 @@ +{ + "Common": { + "cancel": "Відмінити", + "update": "Оновити", + "continue": "Продовжити", + "success": "Успішно", + "delete": "Видалити", + "save": "Зберегти", + "back": "Назад", + "next": "Далі", + "create": "Створити", + "showLess": "Показати менше", + "showMore": "Показати більше", + "generate": "Згенерувати", + "edit": "Редагувати", + "editAgent": "Редагувати агента", + "search": "Пошук...", + "approve": "Підтвердити", + "reject": "Відхилити", + "saving": "Збереження...", + "optional": "Необов'язково", + "deleting": "Видалення...", + "run": "Старт", + "description": "Опис", + "defaultValue": "Значення за замовчуванням", + "empty": "Немає", + "required": "Обов'язково", + "options": "Опції", + "status": "Статус", + "result": "Результат", + "startedAt": "Початок", + "duration": "Тривалість", + "addOption": "Додати опцію", + "tool": "Інструмент", + "selectTool": "Вибрати інструмент...", + "noResults": "Немає результатів.", + "generateWithAI": "Створити за допомогою ШІ", + "generateInputWithAI": "Створити вхідні дані за допомогою ШІ", + "generatingInputWithAI": "Створення вхідних даних за допомогою ШІ...", + "inputGeneratedSuccessfully": "Вхідні дані успішно створені", + "failedToGenerateInput": "Не вдалося створити вхідні дані", + "createWithExample": "Створити з прикладом", + "resultsFound": "Знайдено {count} результатів", + "youAreAnExpertIn": "Ви експерт у {role}", + "sharedBy": "Поділився {userName}", + "searchModels": "Пошук" + }, + "Error": {}, + "Info": { + "mcpAddingDisabled": "MCP server addition has been disabled by the administrator.", + "vercelSyncDelay": "Running on Vercel\n\nMCP changes may take 10-15 seconds to sync. Please wait a moment after adding, editing, or deleting servers if changes don't appear immediately." + }, + "Workflow": { + "title": "Workflow", + "whatIsWorkflow": "What is a Workflow?", + "myWorkflows": "My Workflows", + "sharedWorkflows": "Shared Workflows", + "availableWorkflows": "Available Workflows", + "noAvailableWorkflows": "No workflows available", + "noAvailableWorkflowsDescription": "Ask your admin to share workflows with you", + "createWorkflow": "Create Workflow", + "draft": "Draft", + "publish": "Publish", + "createWorkflowDescription": "Create workflows as powerful tools for your chatbot.", + "workflowDescription": "These can be triggered during conversations to automate complex tasks.", + "nameAndIcon": "Name And Icon", + "workflowNamePlaceholder": "Chatbot will recognize this as tool name", + "description": "Description", + "descriptionPlaceholder": "Chatbot will see this as tool description", + "inputNodeCannotBeDeleted": "Input node cannot be deleted", + "autoSaveDescription": "Auto saved every 10 seconds", + "draftDescription": "Currently in Draft.\n\nClick Publish to make it available to chatbot\n(but no longer editable).", + "publishedDescription": "Currently Published and available to chatbot.\n\nClick Draft to make it editable\n(but unavailable to chatbot).", + "private": "Private", + "readonly": "Read Only", + "public": "Public", + "privateDescription": "Only you can view, edit, and use this workflow as a tool.", + "readonlyDescription": "Others can view and use as a tool, but only you can edit.", + "publicDescription": "Anyone can view, edit, and use this workflow as a tool.", + "visibilityDescription": "Control who can access and modify this workflow", + "nodeDescriptionPlaceholder": "node description...", + "nextNode": "Next Node", + "nextNodeDescription": "Add a next node to this workflow.", + "addNextNode": "Add Next Node", + "inputFields": "Input Fields", + "addInputField": "Add Input Field", + "inputFieldsDescription": "Define the parameter schema for this workflow.\n\nWhen the chatbot uses this as a tool,\nit will provide values according to this schema.", + "fieldEditor": "Field Editor", + "variableName": "Variable Name", + "variableNamePlaceholder": "Enter variable name...", + "fieldDescriptionPlaceholder": "Enter field description...", + "defaultValuePlaceholder": "Enter default {type} value...", + "selectOptionPlaceholder": "Select option...", + "unlink": "Unlink Node", + "elseIfDescription": "If the condition is not met, the logic to be executed is defined.", + "elseDescription": "If the condition is not met, the logic to be executed is defined.", + "addCondition": "Add Condition", + "noVariablesFound": "No variables found", + "outputVariables": "Output Variables", + "outputVariablesDescription": "Output variables are the variables that are output from the workflow.", + "addOutputVariable": "Add Output Variable", + "outputSchema": "Output Schema", + "addMessage": "Add Message", + "messagesDescription": "Generate data through LLM processing.\n\nUse '/' to mention and reference data from previous nodes as input.\n\nWith Structured Output enabled, perfect for data transformation, formatting, and validation.", + "descriptionAndSchema": "Description & Schema", + "noDescriptionAndSchema": "No description and schema", + "toolDescription": "Provide information needed for LLM to generate tool parameters.\n\nUse '/' to mention data from previous nodes.", + "generateInputWithAIDescription": "Write a prompt to generate input for the workflow", + "selectVariable": "Select Variable", + "structuredOutput": "Structured Output", + "structuredOutputDescription": "Generate response as JSON object with defined schema", + "outputSchemaEditor": "Output Schema Editor", + "addField": "Add Field", + "saveSchema": "Save Schema", + "generateSchemaWithAI": "Generate Schema with AI", + "describeOutputDataRequest": "Provide example JSON data that represents what this node should output\n\nExample: {eg}", + "generatingJsonSchemaWithAI": "Generating JSON Schema with AI...", + "jsonSchemaGeneratedSuccessfully": "JSON Schema generated successfully!", + "failedToGenerateSchema": "Failed to generate schema", + "jsonSchemaEditorDescription": "Direct JSON Schema editing with AI assistance. Supports complex nested structures and arrays.", + "template": "Template", + "templateDescription": "Generate template documents.\n\nUse '/' to reference and use output values from other nodes.", + "greeting": { + "buildAutomationTitle": "Build Automation by Connecting Nodes", + "buildAutomationDescription": "Connect various nodes to automate complex tasks. Each node handles specific functions, and data flows sequentially for processing.", + "chatbotToolTitle": "Use as Chatbot Tools", + "chatbotToolDescription": "The main purpose of workflows is to use them as tools in chatbot conversations. Turn repetitive tasks into workflows for easy execution during chats.", + "parameterBasedTitle": "Parameter-Based Start", + "parameterBasedDescription": "Input nodes define parameter structures, not triggers. They specify the data format needed when chatbot calls this workflow as a tool.", + "exampleTitle": "Usage Example", + "exampleDescription": "Create an \"Email Writing → Translation → Send\" workflow, then easily execute it in chatbot conversations with \"@email_workflow\".", + "availableNodesTitle": "Available Nodes", + "upcomingNodesTitle": "Upcoming Nodes", + "ctaMessage": "Start creating workflows now to expand your chatbot's capabilities!", + "soonMessage": "Coming soon." + }, + "example": { + "babyResearch": "Baby Research", + "getWeather": "Get Weather" + }, + "kindsDescription": { + "input": "Define input parameters that the chatbot will provide when using this workflow as a tool.\n\nSpecify the data structure and validation rules for tool execution.", + "output": "Collect and return the final results from your workflow execution.\n\nCombine data from multiple nodes into the final tool response.", + "llm": "Generate text or structured data using AI models.\n\nReference previous node outputs with '/' mentions to create context-aware responses.\n\nUse Structured Output to transform, format, and validate data - not just for text generation.", + "tool": "Execute MCP tools or external services.\n\nWrite instructions in messages, and LLM will generate the required tool parameters from your context.", + "note": "Add documentation and comments to organize your workflow logic.\n\nHelp team members understand complex workflow processes.", + "code": "Execute custom code scripts with access to previous node data.\n\nRun JavaScript, Python, or other languages within your workflow (coming soon).", + "http": "Fetch data from external APIs and web services via HTTP requests.\n\nIntegrate with REST APIs, webhooks, and third-party services.", + "template": "Create dynamic documents by combining text with data from previous nodes.\n\nGenerate emails, reports, or formatted content using variable substitution.", + "condition": "Add conditional logic to branch your workflow based on data evaluation.\n\nCreate if-else logic to handle different scenarios and data conditions." + }, + "structuredOutputSwitchConfirm": "You currently have structured output enabled.\n What would you like to do?", + "structuredOutputSwitchConfirmOk": "Edit Structured Output", + "structuredOutputSwitchConfirmCancel": "Change to Text Output", + "noTools": "No published workflows available.\nCreate workflows to build custom tools.", + "arrangeNodes": "Auto Layout", + "nodesArranged": "Layout applied successfully", + "visibilityUpdated": "Visibility updated successfully" + }, + "Auth": { + "SignIn": { + "title": "Привіт", + "description": "Увійдіть в ваш обліковий запис, щоб продовжити", + "oauthClientIdNotSet": "{provider} client ID is not set", + "noAccount": "Ще немає аккаунту? ", + "signUp": "Зареєструватися", + "signIn": "Увійти", + "orContinueWith": "АБО ПРОДОВЖИТИ З" + }, + "SignUp": { + "title": "Створити акаунт", + "titleAdmin": "Create an Admin Account", + "signIn": "Увійти", + "email": "Email", + "description": "Створіть обліковий запис, щоб почати", + "signUpDescription": "Давай знайомитись", + "signUpDescriptionAdmin": "Welcome first user! You will be the admin of the system.", + "signUpInstructionsEmailOnly": "Зареєструйтеся за допомогою електронної пошти", + "signUpInstructionsEmailAndSocial": "Виберіть між реєстрацією за допомогою електронної пошти або соціальних мереж", + "signUpSocialOnly": "Використовуйте соціальні мережі для реєстрації", + "step1": "Почніть вашу подорож з нами, ввівши вашу електронну адресу", + "step2": "Я використовуватиму це ім'я, коли ми спілкуватимемося", + "step3": "Створіть надійний пароль для захисту вашого облікового запису", + "signUp": "Зареєструватися", + "invalidEmail": "Неправильна електронна адреса", + "emailAlreadyExists": "Електронна адреса вже існує", + "nameRequired": "Ім'я обов'язкове", + "passwordRequired": "Пароль обов'язковий", + "createAccount": "Створити акаунт" + }, + "Intro": { + "description": "Чат, картинки, Workflow та інші інструменти ШІ. Увійдіть, щоб почати." + } + }, + "Chat": { + "Error": "Помилка чату", + "thisMessageWasNotSavedPleaseTryTheChatAgain": "Це повідомлення не було збережено. Будь ласка, спробуйте ще раз.", + "uploadImage": "Завантажити файл", + "generateImage": "Створити зображення", + "imageUploadedSuccessfully": "Файл додано", + "pleaseUploadImageFile": "Будь ласка, завантажте файл", + "imageSizeMustBeLessThan10MB": "Розмір файлу повинен бути меншим за 10 МБ", + "failedToUploadImage": "Не вдалося завантажити файл", + "imageUploadFailedUsingBase64": "Не вдалося завантажити файл. Використовується кодування base64 як запасний варіант.", + "Greeting": { + "goodMorning": "Доброго ранку, {name}.", + "goodAfternoon": "Доброго дня, {name}.", + "goodEvening": "Доброго вечора, {name}.", + "niceToSeeYouAgain": "Радий бачити, {name}.", + "whatAreYouWorkingOnToday": "Над чим сьогодні попрацюємо?", + "letMeKnowWhenYoureReadyToBegin": "Я тут, коли будете готові.", + "whatAreYourThoughtsToday": "Чим можу бути корисний?", + "whereWouldYouLikeToStart": "З чого почнемо?", + "whatAreYouThinking": "До ваших послуг." + }, + "TemporaryChat": { + "toggleTemporaryChat": "Перемкнути тимчасовий чат", + "temporaryChat": "Тимчасовий чат", + "resetChat": "Скинути чат", + "thisChatWontBeSaved": "Цей чат не буде збережено.", + "feelFreeToAskAnythingTemporarily": "Не соромтеся знань - це тимчасовий чат.", + "temporaryChatInstructions": "Інструкції для тимчасового чату", + "temporaryChatInstructionsPlaceholder": "Введіть ваші інструкції тут", + "temporaryChatInstructionsDescription": "Ви можете встановити інструкції для тимчасового чату. Вони будуть використовуватися як системний промт." + }, + "placeholder": "Запитайте будь що...", + "Tool": { + "webSearching": "Пошук в інтернеті...", + "searchedTheWeb": "Знайдено в інтернеті", + "toolsSetupDescription": "Виберіть інструменти, які може використовувати чат-бот.\nЧат-бот буде використовувати вибрані інструменти на основі власного розсуду.\n\nВи також можете використовувати конкретні інструменти через @згадування.", + "selectToolMode": "Режим інструментів", + "autoToolModeDescription": "Дозволяти використовувати всі інструменти автоматично", + "manualToolModeDescription": "Питати дозвіл перед використанням будь-яких інструментів", + "noneToolModeDescription": "Не використовувати інструменти. Тільки @згадування.", + "toolsSetup": "Налаштування інструментів", + "preset": "Шаблон", + "toolPresets": "Шаблони інструментів", + "saveAsPreset": "Зберегти як шаблон", + "saveAsPresetDescription": "Зберегти поточну конфігурацію інструментів як шаблон.", + "noPresetsAvailableYet": "Шаблони ще недоступні", + "presetNameCannotBeEmpty": "Назва шаблону не може бути порожньою", + "presetNameAlreadyExists": "Такий шаблон вже існує", + "presetSaved": "Шаблон збережено", + "clickSaveAsPresetToGetStarted": "Натисніть Зберегти як шаблон, щоб почати.", + "searchOptions": "Параметри пошуку", + "searchOptionsDescription": "Ви можете передавати параметри пошуку чат-боту, такі як максимальна кількість результатів пошуку, дата пошуку тощо.", + "defaultToolKit": { + "visualization": "Візуалізація даних", + "webSearch": "Пошук в інтернеті", + "http": "Довільні запити в інтернеті", + "code": "Виконання коду" + } + }, + "VoiceChat": { + "title": "Голосовий режим", + "compactDisplayMode": "Компактнте відображення", + "conversationDisplayMode": "Повне відображення", + "pleaseCloseTheVoiceChatAndTryAgain": "Будь ласка, закрийте голосовий чат і спробуйте знову.", + "startConversation": "Почати розмову", + "closeMic": "Вимкнути мікрофон", + "openMic": "Увімкнути мікрофон", + "endConversation": "Завершити розмову", + "toggleVoiceChat": "Перемкнути голосовий чат", + "readyWhenYouAreJustStartTalking": "Готовий, коли ви будете — просто починайте говорити.", + "yourMicIsOff": "Ваш мікрофон вимкнено.", + "preparing": "Підготовка...", + "startVoiceChat": "Почати голосовий чат?" + }, + "Thread": { + "chat": "Чат", + "renameChat": "Перейменувати", + "exportChat": "Поширити", + "deleteChat": "Видалити", + "deleteUnarchivedChats": "Видалити всі неархівовані чати", + "confirmDeleteUnarchivedChats": "Ви впевнені, що хочете видалити всі неархівовані чати?", + "thisActionCannotBeUndone": "Цю дію неможливо скасувати.", + "unarchivedChatsDeleted": "Неархівовані чати видалено", + "failedToDeleteUnarchivedChats": "Не вдалося видалити неархівовані чати", + "failedToDeleteThread": "Не вдалося видалити чат", + "threadDeleted": "Чат видалено", + "failedToUpdateThread": "Не вдалося оновити чат", + "titleRequired": "Потрібна назва", + "threadUpdated": "Чат оновлено", + "areYouSureYouWantToDeleteThisChatThread": "Ви впевнені, що хочете видалити цей чат?", + "sharePublicLink": "Поширити публічне посилання", + "sharePublicLinkDescription": "Всі повідомлення, додані після поширення, залишаться приватними.", + "creatingLink": "Обробка посилання...", + "createLink": "Створити посилання", + "linkCopied": "Посилання скопійовано" + }, + "ChatPreferences": { + "title": "Налаштування чату", + "whatShouldWeCallYou": "Як мені вас називати?", + "botName": "Ім'я асистента", + "whatBestDescribesYourWork": "Що найкраще описує вашу роботу?", + "whatPersonalPreferencesShouldBeTakenIntoAccountInResponses": "Які особисті вподобання слід враховувати у відповідях?", + "responseStyleExample1": "напр., роби пояснення короткими та по суті", + "responseStyleExample2": "напр., під час вивчення нових понять мені особливо допомагають аналогії", + "responseStyleExample3": "напр., став уточнювальні запитання перед тим, як давати детальні відповіді", + "responseStyleExample4": "напр., пам'ятай, що я переважно пишу код на Python (сіньйор)", + "professionExample1": "напр., програміст", + "professionExample2": "напр., продакт-менеджер", + "professionExample3": "напр., маркетинг-менеджер", + "professionExample4": "напр., менеджер з продажу", + "professionExample5": "напр., бізнес-аналітик", + "preferencesSaved": "Налаштування збережено", + "failedToSavePreferences": "Не вдалося зберегти налаштування", + "userInstructions": "Інструкції користувача", + "userInstructionsDescription": "Персоналізуйте відповіді ШІ під свої вподобання.", + "mcpInstructions": "Інструкції MCP", + "mcpInstructionsDescription": "Налаштуйте інструкції для сервера MCP.", + "userSettings": "Налаштування користувача", + "myExports": "Мої поширені чати", + "myExportsDescription": "Керуйте та впорядковуйте свої поширені чати.", + "noExportsYet": "Ще немає поширених чатів", + "exportHint": "Поширте чат щоб побачити його тут.", + "exported": "Поширенко", + "expires": "Строк дії", + "messages": "повідомлення", + "comments": "коментарі", + "copyLink": "Копіювати посилання", + "openInNewTab": "Відкрити в новій вкладці", + "linkCopied": "Посилання скопійовано в буфер обміну", + "confirmDeleteExport": "Ви впевнені, що хочете видалити це посилання? Цю дію не можна скасувати.", + "exportDeleted": "Посилання успішно видалено", + "failedToDeleteExport": "Не вдалося видалити посилання" + } + }, + "Layout": { + "workflow": "Workflow", + "admin": "Admin", + "users": "Users", + "toggleSidebar": "Перемкнути", + "newChat": "Новий чат", + "mcpConfiguration": "MCP Configuration", + "agents": "Agents", + "newAgent": "Create Agent", + "createAgent": "Create an agent", + "createYourOwnAgent": "Create your own specialized AI agent with unique features and personality", + "createYourOwnAgentOrSelectShared": "Create your own specialized AI agent or select from shared agents in the Agents page", + "availableAgents": "Available Agents", + "noAgentsAvailable": "No Agents Available", + "browseAgentsToBookmark": "Browse available agents to bookmark your favorites", + "askAdminToShareAgents": "No agents available yet. Ask your admin to share agents with you", + "whatIsAgent": "What is Agent?", + "agentDescription": "Agents are specialized AI assistants that can be customized with specific roles, instructions, and tools to help you with various tasks.", + "specializedAIAssistant": "Specialized AI Assistant", + "specializedAIAssistantDescription": "Each agent can be customized with specific roles, personalities, and expertise areas to provide focused assistance for your unique needs.", + "customInstructions": "Custom Instructions", + "customInstructionsDescription": "Define detailed system prompts and behavioral guidelines to shape how your agent responds and interacts with you.", + "toolIntegration": "Tool Integration", + "toolIntegrationDescription": "Connect your agents to MCP servers, workflows, and other tools to extend their capabilities beyond conversation.", + "agentExamples": "Agent Examples", + "businessAssistant": "Business Assistant", + "businessAssistantDescription": "Specialized in business analysis, report generation, and professional communication.", + "creativeWriter": "Creative Writer", + "creativeWriterDescription": "Focused on storytelling, content creation, and creative brainstorming.", + "technicalExpert": "Technical Expert", + "technicalExpertDescription": "Equipped with development tools and coding expertise for technical tasks.", + "createFirstAgentToStart": "Create your first agent to get started!", + "today": "Сьогодні", + "yesterday": "Вчора", + "lastWeek": "Минулого тижня", + "older": "Старші", + "recentChats": "Недавні чати", + "deleteAllChats": "Видалити всі", + "deleteUnarchivedChats": "Видалити всі поза папками", + "noConversationsYet": "Ще нема", + "deletingAllChats": "Видаляємо все...", + "deletingUnarchivedChats": "Видаляємо всі поза папками...", + "allChatsDeleted": "Всі чати видалено", + "unarchivedChatsDeleted": "Чати поза папками видалено", + "failedToDeleteAllChats": "Не вдалося видалити чати", + "failedToDeleteUnarchivedChats": "Не вдалося видалити чати", + "chatPreferences": "Налаштування", + "keyboardShortcuts": "Скорочення клавіш", + "theme": "Тема", + "signOut": "Вийти", + "language": "Мова", + "showAllChats": "Показати всі", + "showLessChats": "Показати менше", + "reportAnIssue": "Report an issue", + "joinCommunity": "Join Community" + }, + "Archive": { + "title": "Папки", + "addArchive": "Додати папку", + "archiveName": "Назва папки", + "archiveDescription": "Опис папки", + "archiveDescriptionPlaceholder": "Папки - це простори для сортування чатів.", + "noArchives": "Немає папок", + "createFirstArchive": "Створіть свою першу папку", + "archiveCreated": "Папку збережено", + "archiveUpdated": "Папку збережено", + "archiveDeleted": "Папку видалено", + "failedToCreateArchive": "Не вдалося створити папку", + "failedToUpdateArchive": "Не вдалося зберегти папку", + "failedToDeleteArchive": "Не вдалося видалити папку", + "editArchive": "Редагувати папку", + "editArchiveDescription": "Редагувати інформацію про папку", + "deleteArchive": "Видалити папку", + "confirmDeleteArchive": "Ви впевнені, що хочете видалити папку?", + "deleteArchiveDescription": "Ця папка та всі її чати будуть остаточно видалені. Цю дію не можна скасувати.", + "addToArchive": "В папку", + "removeFromArchive": "Видалити з папки", + "itemAddedToArchive": "Чат додано до папки", + "itemRemovedFromArchive": "Чат видалено з папки" + }, + "Agent": { + "title": "Agent", + "newAgent": "Create Agent", + "generatingAgent": "Generating Agent...", + "agentNameAndIconLabel": "Give your agent a name and icon.", + "agentDescriptionLabel": "Add a brief description of what this agent does.", + "agentDescriptionPlaceholder": "This is just a description of the agent, it's not critical.", + "agentSettingsDescription": "From here, these are settings that can affect the agent.", + "thisAgentIs": "This agent is an expert in", + "expertIn": "", + "agentRolePlaceholder": "stock analysis", + "agentInstructionsLabel": "Feel free to write the agent's role, personality, guidelines, knowledge, etc.", + "agentInstructionsPlaceholder": "This agent helps with stock analysis. It uses web search tools to obtain stock information...", + "agentToolsLabel": "Add tools that this agent can use.", + "loadingTools": "Loading tools...", + "addTools": "Please add tools.", + "generateAgentGreeting": "Hello! I'll help you create your own agent. What would you like to create?", + "generateAgentDetailedGreeting": "Hello! I'll help you create your own agent. What would you like to create? You can write briefly or in detail.", + "inputPromptHere": "input prompt here...", + "agentNamePlaceholder": "better-agent", + "myAgents": "My Agents", + "bookmarkedAgents": "Bookmarked Agents", + "sharedAgents": "Shared Agents", + "availableAgents": "Available Agents", + "noAgents": "No agents yet", + "createFirst": "Create your first agent to get started", + "noSharedAgents": "No shared agents", + "noSharedAgentsDescription": "No public agents are available to bookmark", + "noAvailableAgents": "No available agents", + "noAvailableAgentsDescription": "Ask your admin to share agents with you", + "noDescription": "No description provided", + "bookmarkAdded": "Agent bookmarked", + "bookmarkRemoved": "Bookmark removed", + "bookmarkedAgent": "Bookmarked agent", + "addBookmark": "Bookmark agent", + "removeBookmark": "Remove bookmark", + "visibilityUpdated": "Visibility updated", + "deleted": "Agent deleted", + "created": "Agent created successfully", + "updated": "Agent updated successfully", + "deleteConfirm": "Are you sure you want to delete this agent?", + "makePrivate": "Make Private", + "makeReadonly": "Make Read Only", + "makePublic": "Make Public", + "visibility": "Visibility", + "private": "Private", + "readOnly": "Read Only", + "public": "Public", + "privateDescription": "Only you can view, edit, and use this agent.", + "readOnlyDescription": "Others can view and use as a tool, but only you can edit.", + "publicDescription": "Anyone can view, edit, and use this agent as a tool." + }, + "KeyboardShortcuts": { + "title": "Keyboard Shortcuts", + "newChat": "New Chat", + "toggleTemporaryChat": "Toggle Temporary Chat", + "toggleSidebar": "Toggle Sidebar", + "toolMode": "Tool Mode", + "lastMessageCopy": "Copy Last Message", + "openChatPreferences": "Open Chat Preferences", + "deleteThread": "Delete Chat", + "openShortcutsPopup": "Open Shortcuts Popup", + "toggleVoiceChat": "Toggle Voice Chat" + }, + "User": { + "Profile": { + "admin": { + "pageTitle": "User Management", + "pageDescription": "Manage user accounts and permissions", + "sectionTitle": "User Information", + "sectionDescription": "Update user details and manage their account", + "roles": "Roles", + "changeRole": "Change Role", + "accountStatus": "Account Status", + "updatePassword": "Reset Password", + "saveChanges": "Save Changes", + "deleteUser": "Delete User", + "dangerZoneDescription": "Irreversible actions for this user account", + "updateSuccess": "User details updated successfully", + "updateError": "Failed to update user details", + "cannotModifyOwnRole": "You cannot modify your own role", + "emailCannotBeModifiedSSO": "Email cannot be modified for SSO users", + "userDetailDescription": "Manage user information, permissions, and account settings", + "accessCardDescription": "Manage user permissions, account status, and security settings", + "userDetailsCardDescription": "Update user information and view account details", + "aiModelUsageFor": "AI model usage for {period}", + "noAiActivityDescription": "This user hasn't interacted with AI models in the last 30 days.", + "usageStatsWillAppear": "Usage statistics will appear here once they start chatting with AI assistants.", + "emailCannotBeModifiedOAuth": "Email cannot be modified for OAuth users", + "deleteUserPermanently": "Permanently remove this user and all associated data", + "userBannedDescription": "User is currently banned from accessing the application", + "clickToChangeUserRole": "Click to change user role", + "userHasPassword": "User has a password set", + "userOAuthOnly": "User signs in with OAuth only", + "clickToEdit": "Click to edit {field}", + "changeUserPassword": "This will change the user's password.", + "viewUserSessionsAndAccess": "View user sessions and access", + "deleteUserTitle": "Delete User Account", + "deleteUserDescription": "You are about to permanently delete {name}'s account. This action cannot be undone.", + "actionWillPermanently": "This action will permanently:", + "deleteAllUserData": "Delete all user data and conversations", + "removeAllFiles": "Remove all associated files and preferences", + "revokeAllAccess": "Revoke all access permissions", + "cannotBeUndone": "Cannot be undone or recovered", + "typeNameToConfirm": "Please type the user's name to confirm: {name}", + "typeToConfirm": "Type \"{name}\" to confirm", + "roleUpdatedSuccessfully": "Role updated successfully", + "failedToUpdateRole": "Failed to update role", + "changeUserRoles": "Change User Role", + "selectRolesFor": "Select roles for {name}", + "banUser": "Ban User", + "unbanUser": "Unban User", + "banning": "Banning...", + "unbanning": "Unbanning...", + "banUserConfirmation": "Are you sure you want to ban {name}? They will lose access to the application.", + "unbanUserConfirmation": "Are you sure you want to unban {name}? They will regain access to the application.", + "clickToBanUser": "Click to ban user", + "clickToUnbanUser": "Click to unban user", + "failedToUpdateUserStatus": "Failed to update user status", + "updatePasswordTitle": "Update User Password", + "passwordUpdatedSuccessfully": "User password updated successfully", + "failedToUpdatePassword": "Failed to update user password", + "newPasswordPlaceholder": "New password for user", + "currentPassword": "Current password", + "confirmPassword": "Confirm new password", + "updatePasswordButton": "Update Password", + "updateRole": "Update Role", + "userDeletedSuccessfully": "User deleted successfully", + "failedToDeleteUser": "Failed to delete user" + }, + "user": { + "pageTitle": "My Profile", + "pageDescription": "Manage your account settings", + "sectionTitle": "Profile Information", + "sectionDescription": "Update your personal information", + "roles": "My Roles", + "changeRole": "Request Role Change", + "accountStatus": "My Account Status", + "updatePassword": "Change Password", + "saveChanges": "Save Profile", + "deleteUser": "Delete My Account", + "dangerZoneDescription": "Permanent actions for your account", + "updateSuccess": "Your profile has been updated", + "updateError": "Failed to update your profile", + "cannotModifyOwnRole": "Contact an admin to change your role", + "emailCannotBeModifiedSSO": "Your email is managed by your SSO provider", + "userDetailDescription": "Manage your information, permissions, and account settings", + "accessCardDescription": "Manage your permissions, account status, and security settings", + "userDetailsCardDescription": "Update your information and view account details", + "aiModelUsageFor": "Your AI model usage for {period}", + "noAiActivityDescription": "You haven't interacted with AI models in the last 30 days.", + "usageStatsWillAppear": "Usage statistics will appear here once you start chatting with AI assistants.", + "emailCannotBeModifiedOAuth": "Your email cannot be modified for OAuth accounts", + "deleteUserPermanently": "Permanently remove your account and all associated data", + "userBannedDescription": "Your account is currently banned from accessing the application", + "clickToChangeUserRole": "Contact an admin to change your role", + "userHasPassword": "You have a password set", + "userOAuthOnly": "You only sign in with OAuth", + "clickToEdit": "Click to edit your {field}", + "changeUserPassword": "This will change your password.", + "viewUserSessionsAndAccess": "View your sessions and access", + "deleteUserTitle": "Delete My Account", + "deleteUserDescription": "You are about to permanently delete your account. This action cannot be undone.", + "actionWillPermanently": "This action will permanently:", + "deleteAllUserData": "Delete all your data and conversations", + "removeAllFiles": "Remove all your associated files and preferences", + "revokeAllAccess": "Revoke all your access permissions", + "cannotBeUndone": "Cannot be undone or recovered", + "typeNameToConfirm": "Please type your name to confirm: {name}", + "typeToConfirm": "Type \"{name}\" to confirm", + "roleUpdatedSuccessfully": "Your role has been updated successfully", + "failedToUpdateRole": "Failed to update your role", + "changeUserRoles": "Request Role Change", + "selectRolesFor": "Select your new role", + "banUser": "Ban My Account", + "unbanUser": "Unban My Account", + "banning": "Banning...", + "unbanning": "Unbanning...", + "banUserConfirmation": "Are you sure you want to ban your account? You will lose access to the application.", + "unbanUserConfirmation": "Are you sure you want to unban your account? You will regain access to the application.", + "clickToBanUser": "Click to ban your account", + "clickToUnbanUser": "Click to unban your account", + "failedToUpdateUserStatus": "Failed to update your account status", + "updatePasswordTitle": "Change My Password", + "passwordUpdatedSuccessfully": "Your password has been updated successfully", + "failedToUpdatePassword": "Failed to update your password", + "newPasswordPlaceholder": "New password", + "currentPassword": "Current password", + "confirmPassword": "Confirm new password", + "updatePasswordButton": "Change Password", + "updateRole": "Update Role", + "userDeletedSuccessfully": "User deleted successfully", + "failedToDeleteUser": "Failed to delete user" + }, + "common": { + "details": "Details", + "statistics": "Statistics", + "dangerZone": "Danger Zone", + "joined": "Joined", + "lastUpdated": "Last Updated", + "active": "Active", + "banned": "Banned", + "name": "Name", + "email": "Email", + "required": "Required", + "you": "You", + "saving": "Saving...", + "accessAndAccount": "Access & Account", + "editRoles": "Edit Roles", + "security": "Security", + "passwordManagement": "Password Management", + "userDetailsCardTitle": "User Details", + "usageStatistics": "Usage Statistics", + "noAiActivityYet": "No AI Activity Yet", + "totalTokens": "Total Tokens", + "models": "Models", + "messages": "Messages", + "topModelsByTokenUsage": "Top Models by Token Usage", + "conversations": "Conversations", + "avgTokensPerMessage": "Avg Tokens/Message", + "topModel": "Top Model", + "summary": "Summary", + "tokensAcross": "{tokens} tokens across {count} model{count, plural, =1 {} other {s}} in {period}.", + "mostActive": "Most active: {model} ({tokens} tokens).", + "summaryPrefix": "📊 Summary: ", + "uploadPhoto": "Upload Photo", + "chooseDefault": "Choose Default", + "useEmoji": "Use Emoji", + "generateWithAI": "Generate with AI", + "changeProfilePhoto": "Change Profile Photo", + "selectDefaultAvatar": "Choose Default Avatar", + "selectDefaultAvatarDescription": "Select one of the default avatars below", + "chooseEmojiAvatar": "Choose Emoji Avatar", + "chooseEmojiAvatarDescription": "Select an emoji to use as your profile photo", + "generateAvatarWithAI": "Generate Avatar with AI", + "generateAvatarWithAIDescription": "Describe your ideal profile picture and let AI create it", + "aiProvider": "AI Provider", + "describeYourAvatar": "Describe your avatar", + "avatarPromptPlaceholder": "e.g., A cute puppy in Studio Ghibli style", + "generating": "Generating...", + "regenerate": "Regenerate", + "useThisAvatar": "Use This Avatar", + "profilePhotoUpdatedSuccessfully": "Profile photo updated successfully", + "failedToUpdateProfilePhoto": "Failed to update profile photo", + "pleaseEnterPrompt": "Please enter a prompt", + "imageGeneratedSuccessfully": "Image generated successfully!", + "failedToGenerateImage": "Failed to generate image", + "failedToSaveImage": "Failed to save image", + "pleaseUploadValidImage": "Please upload a valid image (JPEG, PNG, or WebP)", + "imageSizeMustBeLessThan": "Image size must be less than 5MB", + "select": "Select", + "msgs": "msgs", + "unknown": "Unknown", + "passwordUpdatedSuccessfully": "Password updated successfully", + "failedToUpdatePassword": "Failed to update password", + "confirmPassword": "Confirm Password", + "failedToUpdateUserStatus": "Failed to update user status", + "clickToBanUser": "Click to ban user", + "clickToUnbanUser": "Click to unban user", + "banUser": "Ban User", + "unbanUser": "Unban User", + "banUserConfirmation": "Are you sure you want to ban {name}? This will prevent them from accessing the application.", + "unbanUserConfirmation": "Are you sure you want to unban {name}? They will regain access to the application.", + "banning": "Banning...", + "unbanning": "Unbanning...", + "areYouSure": "Are you sure?", + "changeUserPassword": "This will change the user's password.", + "currentPassword": "Current password", + "newPasswordPlaceholder": "New Password (8-20 chars, uppercase, lowercase, number, special char)", + "updatePasswordButton": "Update Password", + "activeSessions": "Active Sessions", + "viewUserSessionsAndAccess": "View user sessions and access", + "deleteUserDescription": "You are about to permanently delete your account. This action cannot be undone.", + "noActiveSessions": "No active sessions", + "created": "Created", + "expires": "Expires", + "ipAddress": "IP Address", + "userAgent": "User Agent", + "notAvailable": "N/A", + "userNotFound": "User not found", + "userDetailsUpdatedSuccessfully": "User details updated successfully", + "failedToUpdateUserDetails": "Failed to update user details", + "userHasNoPasswordAccount": "User has no password based account", + "cannotBanUnbanYourself": "You cannot ban/unban yourself", + "userBannedSuccessfully": "User banned successfully", + "userUnbannedSuccessfully": "User unbanned successfully", + "bannedByAdmin": "Banned by admin", + "unknownError": "Unknown error", + "userDeletedSuccessfully": "User deleted successfully", + "failedToDeleteUser": "Failed to delete user" + } + } + }, + "Admin": { + "title": "Admin", + "Sidebar": { + "users": "Users", + "toggleSidebar": "Toggle Sidebar", + "adminPanel": "Admin Panel", + "backToApp": "Back to App" + }, + "Users": { + "title": "Users", + "allUsers": "All Users", + "viewAndManageUsers": "View and manage user accounts", + "searchPlaceholder": "Search by name or email...", + "clear": "Clear", + "noUsersFound": "No users found", + "youBadge": "You", + "totalCount": "{count} user{count, plural, =1 {} other {s}} total", + "user": "User", + "role": "Role", + "status": "Status", + "joined": "Joined", + "backToUsers": "Back to Users" + }, + "UserDelete": { + "title": "Delete User Account", + "description": "You are about to permanently delete {name}'s account. This action cannot be undone.", + "actionWillPermanently": "This action will permanently:", + "deleteAllUserData": "Delete all user data and conversations", + "removeAllFiles": "Remove all associated files and preferences", + "revokeAllAccess": "Revoke all access permissions", + "cannotBeUndone": "Cannot be undone or recovered", + "typeNameToConfirm": "Please type the user's name to confirm: {name}", + "typeToConfirm": "Type \"{name}\" to confirm", + "userDeletedSuccessfully": "User deleted successfully", + "failedToDeleteUser": "Failed to delete user" + }, + "UserRoles": { + "changeUserRoles": "Change User Roles", + "selectRolesFor": "Select roles for {name}. At this time, users can only have one role.", + "updateRole": "Update Role", + "roleUpdatedSuccessfully": "Role updated successfully", + "failedToUpdateRole": "Failed to update role", + "cannotUpdateOwnRole": "You cannot update your own role", + "roleUpdatedSuccessfullyTo": "User role updated successfully to {role}" + } + }, + "MCP": { + "marketplace": "Marketplace", + "addMcpServer": "Add Server", + "configureYourMcpServerConnectionSettings": "Configure your MCP server connection settings", + "mcpConfiguration": "MCP Configuration", + "nameMustContainOnlyAlphanumericCharactersAndHyphens": "Name must contain only alphanumeric characters (A-Z, a-z, 0-9) and hyphens (-)", + "nameIsRequired": "Name is required", + "configurationSavedSuccessfully": "Configuration saved successfully", + "enterMcpServerName": "Enter MCP server name", + "saveConfiguration": "Save Configuration", + "toolsTest": "Tools Test", + "refresh": "Refresh", + "delete": "Delete", + "edit": "Edit", + "configuration": "Configuration", + "availableTools": "Available Tools", + "noToolsAvailable": "No tools available", + "overviewTitle": "Connect Your First Server", + "overviewDescription": "Add MCP servers to unlock powerful AI integrations", + "mcpServers": "MCP Servers", + "availableMcpServers": "Available MCP Servers", + "noMcpServersAvailable": "No MCP Servers Available", + "noMcpServersAvailableDescription": "Ask your admin to configure MCP servers for you to use", + "myMcpServers": "My MCP Servers", + "featuredMcpServers": "Featured MCP Servers", + "searchTools": "Search tools", + "detail": "Detail", + "noSchemaPropertiesAvailable": "No schema properties available", + "createInputWithAI": "Create Input with AI", + "generateExampleInputJSON": "Generate Example Input JSON", + "enterPromptToGenerateExampleInputJSON": "Enter a prompt to generate example input JSON for the selected tool.", + "callTool": "Call Tool", + "customInstructions": "Custom instructions", + "serverCustomInstructionsPlaceholder": "These lines will be added to the AI system prompt whenever a tool from this server is available.", + "nameAlreadyExists": "Name already exists", + "additionalInstructions": "Tool Customization Instructions", + "inputSchema": "Input Schema", + "toolCustomizationInstructions": "Tool customization instructions will be added to the system prompt when the tool is available.\nexample) Always enter the email in the format example@example.com.", + "mcpServerCustomization": "MCP Customization", + "mcpServerCustomizationDescription": "MCP server customization instructions will be added to the system prompt when the MCP server is available.", + "toolCustomizationInstructionsPlaceholder": "Tool customization instructions are not available.", + "mcpServerCustomizationPlaceholder": "eg. If the input value is email, always enter the email in the format example@example.com.", + "private": "Private", + "privateDescription": "Only you can use this MCP server", + "readonly": "Read-only", + "readonlyDescription": "Others can view but not modify this MCP server", + "public": "Featured", + "publicDescription": "Featured for all users to use", + "featured": "Featured", + "featuredDescription": "Featured for all users to use" + } +} diff --git a/src/lib/const.ts b/src/lib/const.ts index 0df9a5bf5..bee87ffdf 100644 --- a/src/lib/const.ts +++ b/src/lib/const.ts @@ -81,6 +81,10 @@ export const SUPPORTED_LOCALES = [ code: "zh", name: "Chinese 🇨🇳", }, + { + code: "uk", + name: "Українська 🇺🇦", + }, ]; export const BACKGROUND_COLORS = [