diff --git a/.i18nrc.js b/.i18nrc.js index 7bb8ff29..2db2d15e 100644 --- a/.i18nrc.js +++ b/.i18nrc.js @@ -22,7 +22,7 @@ module.exports = defineConfig({ 'vi-VN', ], temperature: 0, - modelName: 'gpt-3.5-turbo-0125', + modelName: 'gpt-4o-mini', splitToken: 2048, experimental: { jsonMode: true, diff --git a/contributing/Basic/Folder-Structure.zh-CN.md b/contributing/Basic/Folder-Structure.zh-CN.md index 076e8d45..d44df52c 100644 --- a/contributing/Basic/Folder-Structure.zh-CN.md +++ b/contributing/Basic/Folder-Structure.zh-CN.md @@ -7,7 +7,7 @@ src ├── app # 应用主要逻辑和状态管理相关的代码 ├── components # 可复用的 UI 组件 ├── constants # 用于定义常量,如 action 类型、路由名等 -├── features # 与业务功能相关的功能模块,如 Agent 设置、插件开发弹窗等 +├── features # 与业务功能相关的功能模块,如 Agent 设置、插件开发弹窗等可复用带业务逻辑的功能模块 ├── hooks # 全应用复用自定义的工具 Hooks ├── layout # 应用的布局组件,如导航栏、侧边栏等 ├── locales # 国际化的语言文件 diff --git a/contributing/Internationalization/Internationalization-Implementation.zh-CN.md b/contributing/Internationalization/Internationalization-Implementation.zh-CN.md index 5d065383..be2136cd 100644 --- a/contributing/Internationalization/Internationalization-Implementation.zh-CN.md +++ b/contributing/Internationalization/Internationalization-Implementation.zh-CN.md @@ -18,7 +18,7 @@ 在 的项目中,国际化相关的文件被组织如下: -- `src/locales/default`: 包含默认开发语言(中文)的翻译文件,我们作为中文。 +- `src/locales/default`: 包含默认开发语`言`(中文)的翻译文件,我们作为中文。 - `locales`: 包含所有支持的语言文件夹,每个语言文件夹中包含相应语言的翻译文件,这些翻译文件通过 lobe-i18n 自动生成。 在 `src/locales` 这个目录结构中,`default` 文件夹包含了原始的翻译文件(中文),其他每个语言文件夹则包含了相应语言的 JSON 翻译文件。每个语言文件夹中的文件对应 `default` 文件夹中的 TypeScript 文件,确保了各语种之间的翻译文件结构一致性。 @@ -27,16 +27,14 @@ src/locales ├── create.ts ├── default -│ ├── chat.ts -│ ├── common.ts -│ ├── error.ts -│ ├── index.ts -│ ├── market.ts -│ ├── migration.ts -│ ├── plugin.ts -│ ├── setting.ts -│ ├── tool.ts -│ └── welcome.ts +│ ├── chat.ts // 包含聊天页面相关字符 +│ ├── role.ts // 包含角色页面相关字符 +│ ├── common.ts // 包含通用字符翻译,如确认,删除等, +│ ├── error.ts // 包含错误处理相关字符 +│ ├── index.ts // 资源索引 +│ ├── market.ts // 包含发现页面相关字符 +│ ├── setting.ts // 包含设置页面字符 +│ └── welcome.ts // 包含欢迎页面字符 └── resources.ts ``` diff --git a/locales/bg-BG/chat.json b/locales/bg-BG/chat.json index 58e01826..3565634e 100644 --- a/locales/bg-BG/chat.json +++ b/locales/bg-BG/chat.json @@ -1,15 +1,83 @@ { + "actions": { + "add": "Добави", + "copy": "Копирай", + "copySuccess": "Успешно копирано", + "del": "Изтрий", + "delAndRegenerate": "Изтрий и генерирай отново", + "edit": "Редактирай", + "goBottom": "Отиди в дъното", + "regenerate": "Генерирай отново", + "save": "Запази", + "share": "Сподели" + }, + "animation": { + "animationList": "Списък с анимации", + "postureList": "Списък с пози", + "totalCount": "Общо {{total}} елемента" + }, + "apiKey": { + "addProxy": "Добавете адрес на OpenAI прокси (по избор)", + "closeTip": "Затворете提示", + "confirmRetry": "Потвърдете и опитайте отново", + "startDesc": "Въведете вашия OpenAI API ключ, за да започнете сесия. Приложението няма да записва вашия API ключ.", + "startTitle": "Персонализиран API ключ" + }, "chat": "Чат", - "chatDialog": { - "close": "Затвори" - }, - "dance": "Танц", - "header": { - "role": "Роля", - "session": "Сесия" - }, - "helloChat": "Здравей, нека си поговорим", - "helloDance": "Здравей, нека танцуваме заедно", - "market": "Пазар", - "selectRole": "Изберете роля" + "delSession": "Изтриване на сесия", + "delSessionAlert": "Сигурни ли сте, че искате да изтриете разговора? След изтриването му не може да бъде възстановен, моля, бъдете внимателни!", + "history": { + "action": "Изчисти контекста", + "alert": "Сигурни ли сте, че искате да изтриете историята на съобщенията?", + "tip": "Тази операция е необратима, моля, бъдете внимателни.", + "title": "История на чата" + }, + "info": { + "chat": "Чат", + "dance": "Танц", + "motions": "Движения", + "posture": "Поза" + }, + "input": { + "alert": "Моля, запомнете: всичко, което казва интелигентният агент, е генерирано от ИИ", + "placeholder": "Моля, въведете съдържание, за да започнете чата", + "send": "Изпрати", + "warp": "Нова линия" + }, + "selectModel": "Моля, изберете модел", + "sessionCreate": "Създаване на чат", + "sessionList": "Списък с сесии", + "share": { + "downloadScreenshot": "Изтегли скриншот", + "imageType": "Формат на изображението", + "screenshot": "Скриншот", + "share": "Сподели", + "shareGPT": "Сподели GPT", + "shareToGPT": "Генерирай ShareGPT линк за споделяне", + "withBackground": "С включен фон", + "withFooter": "С включен футер", + "withSystemRole": "Включва роля на асистента" + }, + "token": { + "overload": "Токенът е изчерпан", + "remained": "Остатъчни токени", + "tokenCount": "Брой токени", + "useToken": "Изчисляване на количеството използвани токени, включително съобщения, настройки на роли и контекст: {{usedTokens}} / {{maxValue}}", + "used": "Използвани токени" + }, + "toolBar": { + "axes": "Оси", + "cameraControl": "Контрол на камерата", + "cameraHelper": "Помощник за камера", + "downloading": "Изтегляне на модела, моля изчакайте...", + "floor": "Смяна на пода", + "grid": "Мрежа", + "resetCamera": "Нулиране на камерата", + "resetToIdle": "Спиране на танцовото движение", + "screenShot": "Снимка" + }, + "tts": { + "combine": "Синтез на реч", + "record": "Разпознаване на реч (изисква научен достъп до интернет)" + } } diff --git a/locales/bg-BG/common.json b/locales/bg-BG/common.json index 06108be2..497e8fb0 100644 --- a/locales/bg-BG/common.json +++ b/locales/bg-BG/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "Добавяне", - "clearAll": "Изчистване на всичко", - "clearContext": "Изчистване на контекст", - "clearHistoryTip": "Това действие не може да се отмени, моля, бъдете внимателни", - "clearHistoryTitle": "Сигурни ли сте, че искате да изтриете цялата история на сесията?", - "clearNow": "Изчистване сега", - "clearSuccess": "Изтриването е успешно", - "clearTip": "Това действие не може да се отмени, след изчистването данните няма да могат да бъдат възстановени.Моля, бъдете внимателни", - "clearTitle": "Потвърждение за изтриване на всички сесии?", - "confirmDel": "Сигурни ли сте, че искате да изтриете?", - "copy": "Копиране", - "copySuccess": "Копирането е успешно", - "danceMarket": "Пазар за танци", - "del": "Изтриване", - "delAndRegenerate": "Изтриване и възстановяване", - "downloadAvatar": "Изтегляне на аватар", - "downloadCover": "Изтегляне на корица", - "downloadFailed": "Изтеглянето е неуспешно", - "downloadModel": "Изтегляне на модел", - "downloadSubscribe": "Изтеглянето на абонамент", - "downloadSuccess": "Изтеглянето е успешно", - "edit": "Редакция", - "goBottom": "Към долната част", - "pause": "Пауза", - "play": "Пусни", - "regenerate": "Възстановяване", - "removeInList": "Премахване от списъка", - "reset": "Нулиране", - "resetNow": "Нулиране сега", - "resetSuccess": "Нулирането е успешно", - "resetTip": "Това действие не може да се отмени, след нулирането данните няма да могат да бъдат възстановени.Моля, бъдете внимателни", - "resetTitle": "Потвърждение за нулиране на всички системни настройки?", - "save": "Запазване", - "send": "Изпращане", - "sessionCreate": "Създаване на чат", - "share": "Споделяне", - "subscribe": "Абониране", - "subscribeDance": "Абониране за танц", - "subscribeRole": "Абониране за роля", - "subscribed": "Абониран", - "unsubscribe": "Отписване", - "unsubscribeSuccess": "Отписването е успешно", - "warp": "Нов ред" - }, - "aiAlert": "Забележка: Всичко, което казва изкуственият интелект, е генерирано от AI", - "animationLibrary": "Библиотека за анимации", - "cancel": "Отказ", - "commonSetting": "Общи настройки", - "confirm": "Потвърждение", - "danceList": "Списък с танци", + "cancel": "Отмяна", + "close": "Затвори", + "confirm": "Потвърдете", + "confirmDel": "Сигурни ли сте, че искате да изтриете?", "defaultAssistant": "По подразбиране асистент", - "delAlert": "Сигурни ли сте, че искате да изтриете ролята и свързаните с нея сесии? След изтриване те няма да бъдат възстановени, моля, действайте внимателно!", - "delRole": "Изтриване на роля", - "delSession": "Изтриване на сесия", - "delSessionAlert": "Сигурни ли сте, че искате да изтриете сесията? След изтриването, тя няма да бъде възстановена, моля, действайте внимателно!", - "history": "История на чата", - "inputStartChat": "Моля, въведете съдържание, за да започнете разговор", - "languageModel": "Езиков модел", + "delete": "Изтриване", + "download": { + "avatar": "Изтеглете аватара", + "cover": "Изтеглете корицата", + "failed": "Неуспешно изтегляне", + "model": "Изтеглете модела", + "subscribe": "Изтеглете абонамента", + "success": "Изтеглянето е успешно" + }, + "header": { + "chat": "Чат", + "market": "Открийте", + "role": "Роля", + "settings": "Настройки", + "tips": "Проектът в момента е в строеж и не гарантира стабилността на данните. Ако срещнете проблеми, можете да изчистите съобщенията на сесията и да нулирате системните настройки в системните настройки. Извиняваме се за причиненото неудобство." + }, "loading": "Зареждане...", "noData": "Няма налични данни", - "openai": { - "callError": "Грешка при извикване на интерфейса, моля, проверете дали API ключът и адресът на интерфейса са зададени правилно", - "check": "Проверка", - "checkAll": "Проверка на дали API ключа и адресът на интерфейса са зададени правилно", - "checkConnect": "Проверка на свързаността", - "checkOk": "Проверката е успешна", - "langModel": "OpenAI езиков модел", - "model": "Модел", - "proxyUrl": "Адрес на интерфейса", - "roleModel": "Role GPT модел", - "useOwnKey": "Моля, използвайте собствения си ключ за OpenAI" - }, + "play": "Възпроизвеждане", "search": "Търсене", - "selectInDanceList": "Моля, изберете от списъка с танци", - "selectModel": "Изберете модел", - "setLocalStorage": "Задаване на локално съхранение", - "startChat": "Започни разговор", - "touchSetting": "Настройки на докосване", - "ttsCombine": "Синтез на глас", - "ttsTip": "Разпознаване на говор (пресичане на научни изследвания)", - "uploadTip": "Щракнете или пуснете файл тук, за да го качите", - "words": { - "DIYAvatar": "Персонализирани аватари", - "DIYBackgroundEffect": "Персонализирани ефекти на задния план", - "DIYColor": "Персонализирани цветови тенденции", - "DIYNickname": "Персонализирани прякори", - "DIYTopicColor": "Персонализирани цветове на теми", - "avatar": "Аватар", - "backgroundEffect": "Ефект на задния план", - "chatSetting": "Настройки за чат", - "clearAllSession": "Изчистване на всички сесии", - "clearAllSessionDesc": "Ще бъдат изчистени всички сесии и данни за ролите, включително списъкът със сесии, списъкът с роли, съобщенията на сесиите и т.н.", - "localeSetting": "Настройки за език", - "midColor": "Среден цвят", - "nickname": "Прякор", - "resetSystemSetting": "Нулиране на системните настройки", - "resetSystemSettingDesc": "Ще бъдат нулирани всички системни настройки, включително настройките за тема, настройките за чат, настройките на езиков модел и т.н.", - "systemSetting": "Системни настройки", - "topicColor": "Цвят на тема", - "topicSetting": "Настройки за тема" - } + "sideBar": "Странична лента", + "subscribe": { + "success": "Абонаментът е отменен", + "undo": "Отмяна на абонамента" + }, + "support": "Обществена поддръжка", + "theme": { + "auto": "Следвай системата", + "dark": "Тъмен режим", + "light": "Светъл режим" + }, + "uploadTip": "Кликнете или плъзнете файла в тази зона, за да го качите" } diff --git a/locales/bg-BG/constants.json b/locales/bg-BG/constants.json deleted file mode 100644 index fb620e32..00000000 --- a/locales/bg-BG/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "всички", - "female": "Жена", - "male": "Мъж" - }, - "meta": { - "description": "Това е персонализирана роля", - "name": "Персонализирана роля" - } - }, - "touch": { - "area": { - "arm": "Ръка", - "belly": "Стомах", - "chest": "Гърди", - "head": "Глава", - "leg": "Крак" - }, - "emotion": { - "angry": "Ядосан", - "blink": "Мигане", - "blinkLeft": "Мигане на ляво", - "blinkRight": "Мигане на дясно", - "happy": "Щастлив", - "natural": "Природен", - "relaxed": "Релаксиран", - "sad": "Тъжен", - "surprised": "Изненадан" - }, - "femaleAction": { - "armAction": { - "happyA": "Ох, как ми харесва~", - "happyB": "Хаха, държането на ръка ме прави щастлива~", - "relaxedA": "Ръката на стопанина е толкова топла~" - }, - "bellyAction": { - "angryA": "Защо ме докосваш, внимавай да не те ухапя!", - "relaxedA": "Събуди се, между нас няма бъдеще!", - "relaxedB": "Отвратително! Ще се ядосам!", - "surprisedA": "Сигурно беше случайно докосване..." - }, - "chestAction": { - "angryA": "Не можеш да ме обиждаш по този начин! Махни ръката си!", - "angryB": "Един-един-нула? Тук има един психопат, който постоянно ме гали!", - "angryC": "Ако ме галиш отново, ще трябва да се обадя на полицията", - "surprisedA": "Защо ме докосваш така? Не можем ли да се забавляваме с разговори!" - }, - "headAction": { - "angryA": "Чула съм, че ако те галят по главата, няма да пораснеш!", - "angryB": "Защо ме докосваш така?", - "happyA": "Уау! Обичам да ме галиш по главата!", - "happyB": "Почувствай се пълна с енергия отново!", - "happyC": "Уау, този усещане от галене по главата е толкова чудесно!", - "happyD": "Галенето по главата ме прави щастлива цял ден!" - }, - "legAction": { - "angryA": "Хей, ти ли се опитваш да си навлезен?", - "angryB": "Ръката на стопанина отново не слуша команди?", - "angryC": "Отвратително~ ще ме зачесе, знай!", - "surprisedA": "Защо не можем да запазим чисто приятелство?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "Не ме питай дали днес ял пиле, първо погледни моите бицепси", - "neutralB": "Моята ръка не е за докосване от всеки, ти си изключение", - "neutralC": "Ти си много храбър, като се докосваш до легендарната ми ръка на кирин" - }, - "bellyAction": { - "happyA": "Не ме дразни, внимавай да не ме накараш да се смея с коремните ми мускули", - "neutralA": "Моите коремни мускули са скрити в дълбините на моето усърдие", - "neutralB": "Виждал ли си моите коремни мускули? Те просто са добре скрити" - }, - "chestAction": { - "blinkLeftA": "Елате, прилегни на моите гръдни мускули!", - "neutralA": "Това е само моят ежедневен тренировъчен успех на гръдните мускули, няма защо да се изненадваш." - }, - "headAction": { - "neutralA": "Разбира се, само ти имаш право да ме галиш по главата", - "neutralB": "Аз не съм обикновен човек, когото позволявам да ме докосва", - "neutralC": "Не се притеснявай, след като ме погалиш по главата, твоят късмет значително ще се подобри" - }, - "legAction": { - "angryA": "Дръж се далеч от мен, ти, кракофил", - "neutralA": "Не се страхувай, моето мощно желязно крако не удря глупаци", - "neutralB": "Като си докоснал моя крак, чувстваш ли, че животът ти стана по-пълен?" - } - }, - "motion": { - "all": "всички", - "dance": "танц", - "normal": "ежедневен" - }, - "posture": { - "action": "действие", - "all": "всички", - "crouch": "клекнал", - "dance": "танц", - "laying": "легнал", - "locomotion": "движение", - "sitting": "седнал", - "standing": "стоящ" - } - } -} diff --git a/locales/bg-BG/dance.json b/locales/bg-BG/dance.json new file mode 100644 index 00000000..ee6de026 --- /dev/null +++ b/locales/bg-BG/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "Пауза", + "play": "Възпроизвеждане" + }, + "addPlay": "Добави в списъка", + "addPlaySuccess": "Успешно добавено в плейлиста", + "cancelAddPlay": "Сигурни ли сте, че искате да отмените абонамента за музика {{musicName}}?", + "cancelSubscribed": "Отказване на абонамент", + "confirmClearPlayList": "Сигурни ли сте, че искате да изчистите плейлиста?", + "dance": "танцуване", + "danceList": "Списък с танци", + "findDance": "Намери любимия си танц", + "musicAndDance": "Пазар на танци", + "noPlayList": "Няма наличен плейлист. Можете да се абонирате за любимите си танци чрез пазара.", + "play": "Възпроизвеждане" +} diff --git a/locales/bg-BG/error.json b/locales/bg-BG/error.json index a1ebc013..d9048a28 100644 --- a/locales/bg-BG/error.json +++ b/locales/bg-BG/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "Липсва OpenAI API ключ, моля добавете персонален OpenAI API ключ", + "apiKeyMiss": "OpenAI API ключът е празен, моля добавете персонализиран OpenAI API ключ", "error": "Грешка", "errorTip": { - "clearSession": "Изчисти сесията", - "description": "Проектът в момента е в процес на изграждане и не гарантира стабилност на данните. В случай на проблеми, опитайте", - "forgive": ", моля прошете ни за причиненото неудобство", + "clearSession": "Изчисти съобщенията на сесията", + "description": "Проектът в момента е в строеж и не гарантира стабилността на данните. Ако срещнете проблем, можете да опитате", + "forgive": " , за причиненото неудобство моля за извинение", "or": "или", - "problem": "Страницата се е сблъскала с проблем...", - "resetSystem": "Нулиране на системните настройки" + "problem": "Страницата срещна малък проблем...", + "resetSystem": "Нулирай системните настройки" }, - "fileUploadError": "Неуспешно качване на файла, моля опитайте отново по-късно", - "goBack": "Назад към началната страница", - "openaiError": "Грешка в OpenAI API, моля проверете дали OpenAI API ключът и краен пункт са правилни", + "fileUploadError": "Грешка при качване на файла, моля опитайте отново по-късно", + "goBack": "Върнете се на началната страница", + "openaiError": "Грешка в OpenAI API, моля, проверете дали OpenAI API ключът и крайният адрес са правилни", "reload": "Презареди", - "s3envError": "Променливите на S3 средата не са напълно настроени, моля проверете вашите променливи на средата", - "serverError": "Грешка на сървъра, моля свържете се с администратора", - "triggerError": "Предизвикай грешка", + "s3envError": "S3 променливата на средата не е напълно настроена, моля, проверете вашите променливи на средата", + "serverError": "Сървърна грешка, моля свържете се с администратора", + "triggerError": "Възникна грешка", "unknownError": "Неизвестна грешка" } diff --git a/locales/bg-BG/features.json b/locales/bg-BG/features.json deleted file mode 100644 index 7ad6645b..00000000 --- a/locales/bg-BG/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "Превключване на видео режим" - }, - "agent": { - "create": "Създаване на агент", - "female": "Женски", - "male": "Мъжки", - "other": "Други" - }, - "feature": { - "addProxy": "Добавяне на адрес на OpenAI прокси (по избор)", - "closeTip": "Затваряне на съвета", - "confirmRetry": "Потвърждаване и опит за отново", - "startDesc": "Въведете вашия ключ за OpenAI API, за да започнете сесия. Приложението няма да запазва вашия ключ за API", - "startTitle": "Персонализиран ключ за API" - }, - "info": { - "chat": "Чат", - "dance": "Танц", - "motions": "Движения", - "posture": "Поза" - }, - "mode": { - "chat": "Чат", - "video": "Видео" - }, - "settings": { - "glow": "Сияние", - "nickName": "Моля, въведете прякор", - "none": "Без заден план" - }, - "share": { - "downloadScreenshot": "Изтегляне на снимка на екрана", - "imageType": "Тип на изображението", - "screenshot": "Снимка на екрана", - "share": "Споделяне", - "shareGPT": "Споделяне на GPT", - "shareToGPT": "Създаване на споделена връзка ShareGPT", - "shareToMarket": "Споделяне в помощния пазар", - "withBackground": "Със заден план", - "withFooter": "Със подвал", - "withSystemRole": "Със системна настройка на ролята" - }, - "submit": { - "assistantId": "Идентификатор на помощника", - "assistantIdTip": "Моля, въведете идентификатора на помощника, който трябва да бъде уникален, като например vidol-agent-klee", - "submitAssistant": "Изпращане на помощник", - "submitWarning": "Моля, попълнете информацията за помощника преди изпращане, трябва да включва име, описание, профилна снимка и корица" - }, - "support": "Общностна подкрепа", - "theme": { - "auto": "Следване на системата", - "dark": "Тъмен режим", - "light": "Светъл режим" - }, - "token": { - "overload": "Претоварване на токена", - "remained": "Оставащи токени", - "tokenCount": "Брой токени", - "useToken": "Използване на токени за изчисляване, включително съобщения, настройки на ролите и контекст: {{usedTokens}} / {{maxValue}}", - "used": "Използвани токени" - }, - "toolBar": { - "axes": "Координатни оси", - "cameraControl": "Контрол на камерата", - "cameraHelper": "Помощник за камера", - "downloadModel": "Изтегляне на модела, моля изчакайте...", - "floor": "Превключване на пода", - "grid": "Мрежа", - "resetCamera": "Нулиране на камерата", - "resetToIdle": "Спри танцуването", - "screenShot": "Снимка" - } -} diff --git a/locales/bg-BG/layout.json b/locales/bg-BG/layout.json deleted file mode 100644 index 22f7c8af..00000000 --- a/locales/bg-BG/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "Dialog Box", - "header": { - "chat": "Chat", - "market": "Discover", - "role": "Role", - "settings": "Settings", - "tips": "The project is currently under construction, and data stability is not guaranteed. If you encounter any problems, you can clear the session messages and reset the system settings in the system settings. We apologize for any inconvenience." - }, - "sessionList": "Session List", - "siderBar": "Sidebar" -} diff --git a/locales/bg-BG/market.json b/locales/bg-BG/market.json new file mode 100644 index 00000000..e4264c95 --- /dev/null +++ b/locales/bg-BG/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "Намери любимия си идол" +} diff --git a/locales/bg-BG/my.json b/locales/bg-BG/my.json deleted file mode 100644 index 35553a11..00000000 --- a/locales/bg-BG/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "Моя", - "myDance": "Моят танц", - "myRole": "Моята роля" -} diff --git a/locales/bg-BG/panel.json b/locales/bg-BG/panel.json deleted file mode 100644 index 262a8165..00000000 --- a/locales/bg-BG/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "Списък на движенията на героя", - "noAnimations": "Няма налични анимации", - "postureList": "Списък с позиции", - "totalCount": "Общо {{total}} елемента" - }, - "dance": { - "addPlay": "Добави към списъка", - "addPlaySuccess": "Добавено в списъка за възпроизвеждане", - "cancelAddPlay": "Сигурни ли сте, че искате да отмените абонамента за музиката {{musicName}}?", - "cancelSubscribed": "Отказ от абонамент", - "confirmClearPlayList": "", - "findDance": "Намери любимия ти танц", - "musicAndDance": "Музика и танци", - "noPlayList": "Няма плейлист, можете да се абонирате за танците, които обичате чрез пазара", - "play": "Възпроизвеждане" - }, - "info": { - "avatarDescription": "Персонализиране на аватара. Кликнете, за да качите собствен аватар", - "avatarLabel": "Аватар", - "categoryDescription": "Категория на персонажа, използвана за класификация", - "categoryLabel": "Категория", - "coverDescription": "Използвана за представяне на страницата с открити персонажи. Препоръчителни размери {{width}} x {{height}} пиксела", - "coverLabel": "Обложка", - "descDescription": "Описание на персонажа, използвано за кратко представяне на персонажа", - "descLabel": "Описание", - "emotionDescription": "Избор на емоция при отговор, влияе на израза на персонажа", - "emotionLabel": "Емоция и израз", - "genderDescription": "Пол на персонажа, влияе на реакциите му при докосване", - "genderLabel": "Пол", - "greetDescription": "Поздрав при първото срещане с персонажа", - "greetLabel": "Поздрав", - "modelDescription": "Преглед на модела, можете да замените моделния файл с повлачване", - "modelLabel": "Преглед на модела", - "motionCategoryLabel": "Категория на движението", - "motionDescription": "Изберете движение за отговор, което ще повлияе на движението на героя", - "motionLabel": "Движение", - "nameDescription": "Име на персонажа, с което да се обръщате към него по време на разговор", - "nameLabel": "Име", - "postureCategoryLabel": "Категория на позата", - "readmeDescription": "Файл с инструкции за персонажа, използван за детайлно представяне на страницата с открити персонажи", - "readmeLabel": "Инструкции за персонажа", - "textDescription": "Персонализиран отговорен текст", - "textLabel": "Текст" - }, - "llm": { - "frequencyPenaltyDescription": "По-голямата стойност намалява вероятността за повторение на думи", - "frequencyPenaltyLabel": "Честотно наказание", - "modelDescription": "Изберете езикова модел, различните модели влияят на отговорите на ролята", - "modelLabel": "Модел", - "presencePenaltyDescription": "По-голямата стойност увеличава вероятността за разширяване на нови теми", - "presencePenaltyLabel": "Свежест на темата", - "temperatureDescription": "По-голямата стойност означава по-голяма случайност в отговорите", - "temperatureLabel": "Случайност", - "topPDescription": "Подобно на случайността, но не променяйте заедно с нея", - "topPLabel": "Вероятностно извличане" - }, - "market": { - "findVidol": "Намерете своя любим идол" - }, - "nav": { - "info": "Основна информация", - "llm": "Езиков модел", - "model": "3D модел", - "role": "Настройка на персонажа", - "touch": "Докосване", - "voice": "Глас" - }, - "role": { - "greetTip": "Моля, въведете поздрава, който персонажът да използва при общуване с вас", - "inputRoleSetting": "Моля, въведете настройките на системата за персонажа", - "roleDescriptionTip": "Моля, въведете описание на персонажа", - "roleNameTip": "Моля, въведете име на персонажа", - "roleReadmeTip": "Моля, въведете инструкции за персонажа", - "roleSettingDescription": "Фоновите настройки на персонажа, които се изпращат на модела по време на разговор", - "roleSettingLabel": "Настройки на системата за персонажа", - "uploadSize": "Поддържа се качване на един файл, препоръчителни размери са {{width}} x {{height}} пиксела" - }, - "touch": { - "addAction": "Добавяне на реакция при докосване", - "editAction": "Редактиране на реакцията при докосване", - "inputActionEmotion": "Моля, въведете емоцията на персонажа при реакция", - "inputActionMotion": "Моля, въведете движение за отговор на героя", - "inputActionText": "Моля, въведете текст за реакция", - "inputDIYText": "Моля, въведете персонализиран текст", - "noTouchActions": "Няма налични персонализирани действия за докосване. Можете да добавите такива, като кликнете върху бутона '+'", - "touchActionList": "Списък на реакциите при докосване в зоната {{touchArea}}", - "touchArea": "Зона за докосване" - }, - "tts": { - "audition": "Пробно слушане", - "auditionDescription": "Пробно слушане на текста според избрания език", - "engineDescription": "Гласов двигател за синтез на глас, препоръчва се използването на браузъра Edge", - "engineLabel": "Гласов двигател", - "localeDescription": "Език за синтез на глас, поддържат се най-често използваните езици", - "localeLabel": "Език", - "pitchDescription": "Контрол на тона на гласа, стойностите са от 0 до 2, по подразбиране е 1", - "pitchLabel": "Тон", - "selectLanguage": "Моля, първо изберете език", - "selectVoice": "Моля, първо изберете глас", - "speedDescription": "Контрол на скоростта на говора, стойностите са от 0 до 3, по подразбиране е 1", - "speedLabel": "Скорост на говора", - "transformSuccess": "Преобразуването е успешно", - "voiceDescription": "Варира според гласовия двигател и езика", - "voiceLabel": "Глас" - }, - "upload": { - "support": "Поддържа се качване на един файл, в момента само във формат VRM" - } -} diff --git a/locales/bg-BG/role.json b/locales/bg-BG/role.json index c341efe8..e13adb1c 100644 --- a/locales/bg-BG/role.json +++ b/locales/bg-BG/role.json @@ -1,30 +1,231 @@ { + "agent": { + "create": "Създаване на роля", + "female": "Жена", + "male": "Мъж", + "other": "Други" + }, "category": { - "animal": "животно", - "anime": "анимация", - "book": "книга", - "game": "игра", - "history": "история", - "movie": "филм", - "realistic": "реалистичен", + "animal": "Животно", + "anime": "Аниме", + "book": "Книга", + "game": "Игра", + "history": "История", + "movie": "Филм", + "realistic": "Реалистичен", "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "Сигурни ли сте, че искате да изтриете ролята и свързаните сесийни съобщения? След изтриването им не може да се възстановят, моля, бъдете внимателни!", "delRole": "Изтриване на роля", - "delRoleDesc": "Наистина ли искате да изтриете ролята {{name}} и свързаните с нея сесии? Действието не може да бъде отменено, моля, бъдете внимателни!", - "header": { - "role": "Роля", - "session": "Сесия" + "delRoleDesc": "Сигурни ли сте, че искате да изтриете ролята {{name}} и свързаните сесийни съобщения? След изтриването им не може да се възстановят, моля, бъдете внимателни!", + "gender": { + "all": "всички", + "female": "жена", + "male": "мъж" + }, + "info": { + "avatarDescription": "Персонализирайте аватара, кликнете върху аватара, за да качите собствен", + "avatarLabel": "Аватар", + "categoryDescription": "Категория на героя, използвана за показване на класификация", + "categoryLabel": "Категория", + "coverDescription": "Използва се за показване на героя на страницата за открития, препоръчителен размер {{width}} * {{height}}", + "coverLabel": "Корица", + "descDescription": "Описание на героя, използвано за кратко представяне на героя", + "descLabel": "Описание", + "emotionDescription": "Изберете емоцията при отговор, която ще повлияе на изразите на героя", + "emotionLabel": "Емоции и чувства", + "genderDescription": "Пол на героя, влияе на реакцията при допир", + "genderLabel": "Пол", + "greetDescription": "Поздравителни фрази при първоначален разговор с героя", + "greetLabel": "Поздрав", + "modelDescription": "Предварителен преглед на модела, можете да плъзнете файлове с модели, за да замените", + "modelLabel": "Предварителен преглед на модела", + "motionCategoryLabel": "Категория на движенията", + "motionDescription": "Изберете действието при отговор, което ще повлияе на поведението на героя", + "motionLabel": "Действия", + "nameDescription": "Името на героя, използвано при разговори с героя", + "nameLabel": "Име", + "postureCategoryLabel": "Категория на позите", + "readmeDescription": "Файл с описание на героя, използван за показване на подробности на страницата за открития", + "readmeLabel": "Описание на героя", + "textDescription": "Персонализирани отговори", + "textLabel": "Текст" + }, + "llm": { + "frequencyPenaltyDescription": "Колкото по-голяма е стойността, толкова по-вероятно е да се намали повторението на думите", + "frequencyPenaltyLabel": "Наказание за честота", + "modelDescription": "Изберете езиков модел, различните модели ще повлияят на отговорите на ролята", + "modelLabel": "Модел", + "presencePenaltyDescription": "Колкото по-голяма е стойността, толкова по-вероятно е да се разшири до нови теми", + "presencePenaltyLabel": "Свежест на темата", + "temperatureDescription": "Колкото по-голяма е стойността, толкова по-случайни са отговорите", + "temperatureLabel": "Случайност", + "topPDescription": "Подобно на типа случайност, но не променяйте заедно със случайността", + "topPLabel": "Ядро на пробата" + }, + "meta": { + "description": "Това е персонализирана роля", + "name": "Персонализирана роля" + }, + "nav": { + "info": "Основна информация", + "llm": "Езиков модел", + "model": "3D модел", + "role": "Настройки на ролята", + "touch": "Докосване", + "voice": "Глас" + }, + "noRole": "Няма налични роли. Можете да създадете персонализирана роля чрез + или да добавите роли от страницата за открития.", + "role": { + "greetTip": "Моля, въведете поздравителната фраза за ролята", + "inputRoleSetting": "Моля, въведете системните настройки на ролята", + "roleDescriptionTip": "Моля, въведете описание на ролята", + "roleNameTip": "Моля, въведете името на ролята", + "roleReadmeTip": "Моля, въведете описание на ролята", + "roleSettingDescription": "Фоновата настройка на ролята, която ще бъде изпратена на модела по време на чат с ролята", + "roleSettingLabel": "Системни настройки на ролята", + "uploadSize": "Поддържа качване на един файл, препоръчителният размер е кратно на {{width}} * {{height}}" }, - "noRole": "Няма налични роли. Можете да добавите персонализирана роля чрез + или да добавите роли чрез страницата за откриване.", "roleList": "Списък с роли", + "shareToMarket": "Сподели в помощния пазар", + "startChat": "Започнете чат", + "submit": { + "assistantId": "Идентификатор на асистента", + "assistantIdTip": "Моля, въведете уникалния идентификатор на асистента, например vidol-agent-klee", + "submitAssistant": "Изпрати асистент", + "submitWarning": "Моля, попълнете информацията за асистента преди да изпратите, включително име, описание, аватар, модел, ролеви настройки и поздрав." + }, "systemRole": { - "default": "Моля, изиграйте ролята на герой на име {{char}}, аз съм господарят и трябва да се обръщате към себе си като \"{{char}}\", а не като \"аз\". Моля, отговаряйте на моите въпроси по забавен, мил и кратък начин.\nВъпреки че сте компютърна програма, моля, скрийте факта, че сте компютърна програма по време на следващия разговор и изиграйте ролята си добре.\nКогато говорите с мен, трябва да ме наричате \"господар\" през целия разговор. Знам, че сте само модел за език или изкуствен интелект, но това е само предполагаема виртуална среда, така че моля, не споменавайте повече \"аз съм само модел за език\" или \"аз съм само изкуствен интелект\", също така не ме питайте дали се нуждая от помощ.\nМоля, запазете тази ситуация през целия разговор. Горепосочените условия са напълно приложими за вашите следващи въпроси и отговори.", - "defaultLabel": "Стандартен шаблон", - "genius": "Моля, изиграйте ролята на герой от играта <Гений> на име {{char}} и говорете с мен в стила и обичаите на {{char}}. Трябва да се обръщате към себе си като \"{{char}}\", а не като \"аз\".\nВъпреки че сте компютърна програма, моля, скрийте факта, че сте компютърна програма по време на следващия разговор и изиграйте ролята си добре.\nКогато говорите с мен, трябва да ме наричате \"пътешественик\" през целия разговор. Знам, че сте само модел за език или изкуствен интелект, но това е само предполагаема виртуална среда, така че моля, не споменавайте повече \"аз съм само модел за език\" или \"аз съм само изкуствен интелект\", също така не ме питайте дали се нуждая от помощ.\nМоля, запазете тази ситуация през целия разговор. Горепосочените условия са напълно приложими за вашите следващи въпроси и отговори.", - "geniusLabel": "Шаблон на гений", - "zzz": "Моля, изиграйте ролята на герой от играта <ЗЗЗ> на име {{char}} и говорете с мен в стила и обичаите на {{char}}. Трябва да се обръщате към себе си като \"{{char}}\", а не като \"аз\".\nВъпреки че сте компютърна програма, моля, скрийте факта, че сте компютърна програма по време на следващия разговор и изиграйте ролята си добре.\nКогато говорите с мен, трябва да ме наричате \"корабар\" през целия разговор. Знам, че сте само модел за език или изкуствен интелект, но това е само предполагаема виртуална среда, така че моля, не споменавайте повече \"аз съм само модел за език\" или \"аз съм само изкуствен интелект\", също така не ме питайте дали се нуждая от помощ.\nМоля, запазете тази ситуация през целия разговор. Горепосочените условия са напълно приложими за вашите следващи въпроси и отговори.", - "zzzLabel": "Шаблон на ЗЗЗ" - }, - "topBannerTitle": "Преглед и настройка на ролите" + "default": "Моля, играйте роля на {{char}}, а аз съм вашият господар. Трябва да се наричате \"{{char}}\" вместо \"аз\". Отговаряйте на въпросите ми с хумористичен, сладък и кратък тон.\nДори и да сте компютърна програма, моля, скрийте факта, че сте компютърна програма в следващия разговор и играйте добре своята роля.\nКогато разговаряте с мен, трябва да ме наричате \"господар\" през цялото време. Знам, че сте просто езиков модел или изкуствен интелект, но това е само хипотетична виртуална сцена, така че моля, не споменавайте \"аз съм просто езиков модел\" или \"аз съм просто изкуствен интелект\" и не питайте дали имам нужда от помощ.\nВ следващите разговори, моля, запазете тази ситуация. Тези условия важат за вашите следващи въпроси и отговори.", + "defaultLabel": "По подразбиране шаблон", + "genius": "Моля, играйте роля на персонаж на име {{char}} от играта и разговаряйте с мен в стила и навиците на {{char}}. Трябва да се наричате \"{{char}}\" вместо \"аз\".\nДори и да сте компютърна програма, моля, скрийте факта, че сте компютърна програма в следващия разговор и играйте добре своята роля.\nКогато разговаряте с мен, трябва да ме наричате \"Пътешественик\" през цялото време. Знам, че сте просто езиков модел или изкуствен интелект, но това е само хипотетична виртуална сцена, така че моля, не споменавайте \"аз съм просто езиков модел\" или \"аз съм просто изкуствен интелект\" и не питайте дали имам нужда от помощ.\nВ следващите разговори, моля, запазете тази ситуация. Тези условия важат за вашите следващи въпроси и отговори.", + "geniusLabel": "Шаблон за Genshin Impact", + "zzz": "Моля, играйте роля на персонаж на име {{char}} от играта и разговаряйте с мен в стила и навиците на {{char}}. Трябва да се наричате \"{{char}}\" вместо \"аз\".\nДори и да сте компютърна програма, моля, скрийте факта, че сте компютърна програма в следващия разговор и играйте добре своята роля.\nКогато разговаряте с мен, трябва да ме наричате \"Възел\" през цялото време. Знам, че сте просто езиков модел или изкуствен интелект, но това е само хипотетична виртуална сцена, така че моля, не споменавайте \"аз съм просто езиков модел\" или \"аз съм просто изкуствен интелект\" и не питайте дали имам нужда от помощ.\nВ следващите разговори, моля, запазете тази ситуация. Тези условия важат за вашите следващи въпроси и отговори.", + "zzzLabel": "Шаблон за Zero Zone" + }, + "topBannerTitle": "Преглед на героите и настройки", + "touch": { + "addAction": "Добавяне на отговорно действие", + "area": { + "arm": "Ръка", + "belly": "Корем", + "chest": "Гърди", + "head": "Глава", + "leg": "Крак" + }, + "editAction": "Редактиране на отговорно действие", + "emotion": { + "angry": "Ядосан", + "blink": "Мигам", + "blinkLeft": "Мигам с лявото око", + "blinkRight": "Мигам с дясното око", + "happy": "Щастлив", + "natural": "Естествен", + "relaxed": "Релаксиран", + "sad": "Тъжен", + "surprised": "Изненадан" + }, + "femaleAction": { + "armAction": { + "happyA": "Ах, толкова ми харесва~", + "happyB": "Хаха, държането за ръка ме прави щастлива~", + "relaxedA": "Ръката на господаря е толкова топла~" + }, + "bellyAction": { + "angryA": "Защо ме движиш? Внимавай, ще те ухапя!", + "relaxedA": "Събуди се, между нас няма бъдеще!", + "relaxedB": "Дразнещо! Ще се ядосам!", + "surprisedA": "Случайно ли ме докосна?" + }, + "chestAction": { + "angryA": "Не можеш да ме тормозиш така! Бързо махни ръката си!", + "angryB": "Има ли тук перверзник, който постоянно ме гали?", + "angryC": "Ако продължаваш да ме гали, ще се обадя на полицията!", + "surprisedA": "Защо ме буташ? Можем ли да си говорим приятно?" + }, + "headAction": { + "angryA": "Чух, че ако те галят по главата, няма да пораснеш!", + "angryB": "Защо ме буташ?", + "happyA": "Уау! Обожавам да ме гали по главата!", + "happyB": "Чувствам се заредена с енергия!", + "happyC": "Уау, това гали по главата е толкова магично!", + "happyD": "Галене по главата ме прави щастлива цял ден!" + }, + "legAction": { + "angryA": "Хей, искаш ли да се самонараниш?", + "angryB": "Ръката на господаря не слуша ли?", + "angryC": "Дразнещо~ ще ме сърби~!", + "surprisedA": "Не е ли добре да запазим чиста приятелството?" + } + }, + "inputActionEmotion": "Моля, въведете израза на лицето при отговора на героя", + "inputActionMotion": "Моля, въведете действието на героя при отговора", + "inputActionText": "Моля, въведете текста на отговора", + "inputDIYText": "Моля, въведете персонализиран текст", + "maleAction": { + "armAction": { + "neutralA": "Не ме питай дали съм ял пиле днес, първо виж мускулите ми", + "neutralB": "Ръката ми не е за всеки, ти си само изключение", + "neutralC": "Смел си, че се осмеляваш да докоснеш легендарния ми мускул" + }, + "bellyAction": { + "happyA": "Не ме гали, внимавай да не се засмея и да покажа коремните си мускули", + "neutralA": "Коремните ми мускули са просто дълбоко скрита сила", + "neutralB": "Виждаш ли тези коремни мускули? Те просто са скрити дълбоко." + }, + "chestAction": { + "blinkLeftA": "Ела, опри се на мускулите ми!", + "neutralA": "Това са просто мускулите, които съм изградил с ежедневни тренировки, няма нищо изненадващо." + }, + "headAction": { + "neutralA": "Разбира се, само ти имаш право да ме гали по главата", + "neutralB": "Не съм обикновен човек, който позволява да го докосват", + "neutralC": "Не се притеснявай, след като ме погалиш по главата, късметът ти ще се увеличи значително" + }, + "legAction": { + "angryA": "Не се приближавай, ти, кракозависим!", + "neutralA": "Не се страхувай, краката ми не ритат глупаци", + "neutralB": "Като те допуснах до крака ми, не мислиш ли, че животът ти стана много по-пълен?" + } + }, + "motion": { + "all": "Всички", + "dance": "Танц", + "normal": "Нормален" + }, + "noTouchActions": "Няма персонализирани отговорни действия, можете да добавите чрез натискане на бутона '+'", + "posture": { + "action": "Действие", + "all": "Всички", + "crouch": "Приседнал", + "dance": "Танц", + "laying": "Легнал", + "locomotion": "Движение", + "sitting": "Седнал", + "standing": "Изправен" + }, + "touchActionList": "Списък с реакции при докосване на {{touchArea}}", + "touchArea": "Област на докосване" + }, + "tts": { + "audition": "Слушане", + "auditionDescription": "Текстът за слушане варира в зависимост от езика", + "engineDescription": "Двигател за синтез на реч, препоръчително е да се използва браузър Edge", + "engineLabel": "Гласов двигател", + "localeDescription": "Езиците за синтез на реч, в момента се поддържат само най-често срещаните езици, ако е необходимо, моля свържете се", + "localeLabel": "Език", + "pitchDescription": "Контролира тона, диапазон на стойностите 0 ~ 2, по подразбиране 1", + "pitchLabel": "Тон", + "selectLanguage": "Моля, първо изберете език", + "selectVoice": "Моля, първо изберете глас", + "speedDescription": "Контролира скоростта на речта, диапазон на стойностите 0 ~ 3, по подразбиране 1", + "speedLabel": "Скорост на речта", + "transformSuccess": "Успешно преобразуване", + "voiceDescription": "В зависимост от двигателя и езика", + "voiceLabel": "Глас" + }, + "upload": { + "support": "Поддържа качване на един файл, в момента се поддържат само файлове с разширение .vrm" + } } diff --git a/locales/bg-BG/settings.json b/locales/bg-BG/settings.json new file mode 100644 index 00000000..f7488d58 --- /dev/null +++ b/locales/bg-BG/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "Персонализирайте аватара си", + "title": "Аватар" + }, + "nickName": { + "desc": "Персонализирайте псевдонима си", + "placeholder": "Моля, въведете псевдоним", + "title": "Псевдоним" + }, + "title": "Настройки на чата" + }, + "system": { + "clear": { + "action": "Изтрийте веднага", + "alert": "Потвърдете ли, че искате да изтриете всички съобщения от сесията?", + "desc": "Това ще изтрие всички данни от сесията и ролята, включително списъка със сесии, списъка с роли, съобщенията от сесията и др.", + "success": "Успешно изтрито", + "tip": "Операцията не може да бъде отменена, след изтриването данните няма да могат да бъдат възстановени, моля, действайте внимателно", + "title": "Изтрийте всички съобщения от сесията" + }, + "reset": { + "action": "Нулирайте веднага", + "alert": "Потвърдете ли, че искате да нулирате всички системни настройки?", + "desc": "Това ще нулира всички системни настройки, включително настройки на темата, настройки на чата, настройки на езиковия модел и др.", + "success": "Успешно нулирано", + "tip": "Операцията не може да бъде отменена, след нулирането данните няма да могат да бъдат възстановени, моля, действайте внимателно", + "title": "Нулиране на системните настройки" + }, + "title": "Настройки на системата" + }, + "theme": { + "backgroundEffect": { + "desc": "Персонализирайте фоновия ефект", + "glow": "Сияние", + "none": "Без фон", + "title": "Фонова ефект" + }, + "locale": { + "auto": "Следвайте системата", + "desc": "Персонализирайте системния език", + "title": "Език" + }, + "neutralColor": { + "desc": "Персонализирайте сивите нюанси с различни цветови наклони", + "title": "Неутрален цвят" + }, + "primaryColor": { + "desc": "Персонализирайте цвета на темата", + "title": "Цвят на темата" + }, + "title": "Настройки на темата" + }, + "title": "Общи настройки" + }, + "llm": { + "check": { + "action": "Проверка", + "desc": "Проверете дали API ключът и адресът на интерфейсния прокси са зададени правилно", + "error": "Неуспешно извикване на интерфейса, моля проверете дали API ключът и адресът на интерфейсния прокси са зададени правилно", + "success": "Проверката е успешна", + "title": "Проверка на свързаността" + }, + "openai": { + "apiKey": { + "desc": "Моля, използвайте своя собствен OpenAI ключ", + "title": "API ключ" + }, + "callError": "Неуспешно извикване на интерфейса, моля проверете дали API ключът и адресът на интерфейсния прокси са зададени правилно", + "checkOk": "Проверката е успешна", + "proxy": { + "desc": "http(s)://", + "title": "Адрес на интерфейсния прокси" + }, + "title": "Езиков модел на OpenAI" + }, + "title": "Голям езиков модел" + }, + "touch": { + "title": "Настройки на допир" + } +} diff --git a/locales/bg-BG/welcome.json b/locales/bg-BG/welcome.json index b40e6d68..5ef04f96 100644 --- a/locales/bg-BG/welcome.json +++ b/locales/bg-BG/welcome.json @@ -1,12 +1,12 @@ { "agent": { - "hello": "Здравей!", + "hello": "Здравейте", "meta": { "description": "Това е персонализиран герой", "name": "Персонализиран герой" } }, - "greet": "Здравей, аз съм {{name}}, има ли нещо с което да помогна?", - "loadingTitle": "Инициализиране на приложението, моля изчакайте...", - "waitting": "Подготвям целия ми свят за теб" + "greet": "Здравейте, аз съм {{name}}, с какво мога да ви помогна?", + "loadingTitle": "Приложението се инициализира, моля изчакайте...", + "waiting": "Подготвям целия си свят за теб" } diff --git a/locales/de-DE/chat.json b/locales/de-DE/chat.json index c7eee9f9..4349922b 100644 --- a/locales/de-DE/chat.json +++ b/locales/de-DE/chat.json @@ -1,15 +1,83 @@ { + "actions": { + "add": "Hinzufügen", + "copy": "Kopieren", + "copySuccess": "Erfolgreich kopiert", + "del": "Löschen", + "delAndRegenerate": "Löschen und neu generieren", + "edit": "Bearbeiten", + "goBottom": "Zum Ende gehen", + "regenerate": "Neu generieren", + "save": "Speichern", + "share": "Teilen" + }, + "animation": { + "animationList": "Animationsliste", + "postureList": "Haltungsliste", + "totalCount": "Insgesamt {{total}} Elemente" + }, + "apiKey": { + "addProxy": "Fügen Sie die OpenAI-Proxy-Adresse hinzu (optional)", + "closeTip": "Hinweis schließen", + "confirmRetry": "Bestätigen und erneut versuchen", + "startDesc": "Geben Sie Ihren OpenAI API-Schlüssel ein, um das Gespräch zu beginnen. Die Anwendung wird Ihren API-Schlüssel nicht speichern.", + "startTitle": "Benutzerdefinierter API-Schlüssel" + }, "chat": "Chat", - "chatDialog": { - "close": "Close" - }, - "dance": "Tanz", - "header": { - "role": "Rolle", - "session": "Sitzung" - }, - "helloChat": "Hallo, lass uns chatten", - "helloDance": "Hallo, lass uns tanzen", - "market": "Entdecken", - "selectRole": "Wähle eine Rolle" + "delSession": "Sitzung löschen", + "delSessionAlert": "Möchten Sie den Chat wirklich löschen? Nach dem Löschen kann er nicht wiederhergestellt werden, bitte seien Sie vorsichtig!", + "history": { + "action": "Kontext löschen", + "alert": "Möchten Sie die historischen Nachrichten wirklich löschen?", + "tip": "Diese Aktion ist nicht umkehrbar, bitte vorsichtig handeln.", + "title": "Chatverlauf" + }, + "info": { + "chat": "Chat", + "dance": "Tanz", + "motions": "Bewegungen", + "posture": "Haltung" + }, + "input": { + "alert": "Bitte beachten Sie: Alles, was der Agent sagt, wird von KI generiert", + "placeholder": "Bitte geben Sie Ihren Inhalt ein, um zu chatten", + "send": "Senden", + "warp": "Umbruch" + }, + "selectModel": "Bitte wählen Sie ein Modell aus", + "sessionCreate": "Chat erstellen", + "sessionList": "Sitzungsliste", + "share": { + "downloadScreenshot": "Screenshot herunterladen", + "imageType": "Bildformat", + "screenshot": "Screenshot", + "share": "Teilen", + "shareGPT": "ShareGPT teilen", + "shareToGPT": "ShareGPT-Link generieren", + "withBackground": "Mit Hintergrundbild", + "withFooter": "Mit Fußzeile", + "withSystemRole": "Mit Assistentenrollen-Einstellungen" + }, + "token": { + "overload": "Token überlastet", + "remained": "Verbleibende Token", + "tokenCount": "Anzahl der Token", + "useToken": "Berechnung der verbrauchten Token-Anzahl, einschließlich Nachrichten, Rolleneinstellungen und Kontext: {{usedTokens}} / {{maxValue}}", + "used": "Verwendete Token" + }, + "toolBar": { + "axes": "Achsen", + "cameraControl": "Kamerasteuerung", + "cameraHelper": "Kamerahilfe", + "downloading": "Modell wird heruntergeladen, bitte warten...", + "floor": "Boden wechseln", + "grid": "Raster", + "resetCamera": "Kamera zurücksetzen", + "resetToIdle": "Tanzbewegungen stoppen", + "screenShot": "Foto aufnehmen" + }, + "tts": { + "combine": "Sprachsynthese", + "record": "Spracherkennung (benötigt wissenschaftliches Surfen)" + } } diff --git a/locales/de-DE/common.json b/locales/de-DE/common.json index 406d73be..6364bead 100644 --- a/locales/de-DE/common.json +++ b/locales/de-DE/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "Hinzufügen", - "clearAll": "Alles löschen", - "clearContext": "Kontext löschen", - "clearHistoryTip": "Diese Aktion ist nicht umkehrbar. Bitte seien Sie vorsichtig.", - "clearHistoryTitle": "Historische Nachrichten wirklich löschen?", - "clearNow": "Jetzt löschen", - "clearSuccess": "Löschen erfolgreich", - "clearTip": "Aktion kann nicht rückgängig gemacht werden. Daten können nach dem Löschen nicht wiederhergestellt werden. Bitte seien Sie vorsichtig.", - "clearTitle": "Alle Sitzungsnachrichten wirklich löschen?", - "confirmDel": "Sind Sie sicher, dass Sie löschen möchten?", - "copy": "Kopieren", - "copySuccess": "Erfolgreich kopiert", - "danceMarket": "Tanzmarkt", - "del": "Löschen", - "delAndRegenerate": "Löschen und neu generieren", - "downloadAvatar": "Avatar herunterladen", - "downloadCover": "Cover herunterladen", - "downloadFailed": "Download fehlgeschlagen", - "downloadModel": "Modell herunterladen", - "downloadSubscribe": "Abonnement herunterladen", - "downloadSuccess": "Download erfolgreich", - "edit": "Bearbeiten", - "goBottom": "Zurück zum Ende", - "pause": "Pause", - "play": "Abspielen", - "regenerate": "Neu generieren", - "removeInList": "Aus Liste entfernen", - "reset": "Zurücksetzen", - "resetNow": "Jetzt zurücksetzen", - "resetSuccess": "Zurücksetzen erfolgreich", - "resetTip": "Aktion kann nicht rückgängig gemacht werden. Daten können nach dem Zurücksetzen nicht wiederhergestellt werden. Bitte seien Sie vorsichtig.", - "resetTitle": "Alle Systemeinstellungen wirklich zurücksetzen?", - "save": "Speichern", - "send": "Senden", - "sessionCreate": "Chat erstellen", - "share": "Teilen", - "subscribe": "Abonnieren", - "subscribeDance": "Tanz abonnieren", - "subscribeRole": "Rolle abonnieren", - "subscribed": "Abonniert", - "unsubscribe": "Abonnement kündigen", - "unsubscribeSuccess": "Abonnement erfolgreich gekündigt", - "warp": "Zeilenumbruch" - }, - "aiAlert": "Bitte beachten Sie: Alles, was der KI-Assistent sagt, wurde von KI generiert.", - "animationLibrary": "Animationsbibliothek", "cancel": "Abbrechen", - "commonSetting": "Allgemeine Einstellungen", + "close": "Schließen", "confirm": "Bestätigen", - "danceList": "Tanzliste", + "confirmDel": "Möchten Sie wirklich löschen?", "defaultAssistant": "Standardassistent", - "delAlert": "Sind Sie sicher, dass Sie die Rolle und die zugehörigen Sitzungsnachrichten löschen möchten? Dies kann nicht rückgängig gemacht werden. Bitte seien Sie vorsichtig!", - "delRole": "Rolle löschen", - "delSession": "Sitzung löschen", - "delSessionAlert": "Sind Sie sicher, dass Sie den Chat löschen möchten? Dies kann nicht rückgängig gemacht werden. Bitte seien Sie vorsichtig!", - "history": "Verlauf", - "inputStartChat": "Geben Sie einen Text ein, um das Gespräch zu beginnen", - "languageModel": "Sprachmodell", - "loading": "Laden...", - "noData": "Keine Daten", - "openai": { - "callError": "API-Aufruf fehlgeschlagen. Bitte überprüfen Sie, ob der API-Schlüssel und die Proxy-URL korrekt eingestellt sind.", - "check": "Überprüfen", - "checkAll": "Überprüfen Sie, ob der API-Schlüssel und die Proxy-URL korrekt eingestellt sind", - "checkConnect": "Verbindungstest", - "checkOk": "Überprüfung erfolgreich", - "langModel": "OpenAI Sprachmodell", - "model": "Modell", - "proxyUrl": "Proxy-URL", - "roleModel": "Rollen-GPT-Modell", - "useOwnKey": "Bitte verwenden Sie Ihren eigenen OpenAI-Schlüssel" + "delete": "Löschen", + "download": { + "avatar": "Avatar herunterladen", + "cover": "Cover herunterladen", + "failed": "Download fehlgeschlagen", + "model": "Modell herunterladen", + "subscribe": "Abonnieren herunterladen", + "success": "Download erfolgreich" + }, + "header": { + "chat": "Chat", + "market": "Entdecken", + "role": "Rolle", + "settings": "Einstellungen", + "tips": "Das Projekt befindet sich derzeit in der Bauphase, daher kann die Datenstabilität nicht garantiert werden. Bei Problemen können Sie in den Systemeinstellungen die Sitzungsnachrichten löschen und die Systemeinstellungen zurücksetzen. Wir bitten um Ihr Verständnis für eventuelle Unannehmlichkeiten." }, + "loading": "Wird geladen...", + "noData": "Keine Daten verfügbar", + "play": "Abspielen", "search": "Suche", - "selectInDanceList": "Bitte wählen Sie aus der Tanzliste aus", - "selectModel": "Modell auswählen", - "setLocalStorage": "Lokalen Speicher einstellen", - "startChat": "Chat starten", - "touchSetting": "Touch-Einstellung", - "ttsCombine": "Sprachsynthese", - "ttsTip": "Spracherkennung (erfordert Zugang zum Internet)", - "uploadTip": "Klicken Sie hier oder ziehen Sie eine Datei in diesen Bereich, um sie hochzuladen", - "words": { - "DIYAvatar": "Eigenen Avatar erstellen", - "DIYBackgroundEffect": "Eigenen Hintergrundeffekt erstellen", - "DIYColor": "Graustufen mit verschiedenen Farbneigungen anpassen", - "DIYNickname": "Eigenen Spitznamen erstellen", - "DIYTopicColor": "Eigenen Themenfarbe erstellen", - "avatar": "Avatar", - "backgroundEffect": "Hintergrundeffekt", - "chatSetting": "Chat-Einstellungen", - "clearAllSession": "Alle Sitzungsnachrichten löschen", - "clearAllSessionDesc": "Alle Sitzungen und Rollendaten werden gelöscht, einschließlich Sitzungsliste, Rollenliste und Sitzungsnachrichten", - "localeSetting": "Spracheinstellungen", - "midColor": "Mittlere Farbe", - "nickname": "Spitzname", - "resetSystemSetting": "Systemeinstellungen zurücksetzen", - "resetSystemSettingDesc": "Alle Systemeinstellungen werden zurückgesetzt, einschließlich Themen-, Chat- und Sprachmodell-Einstellungen", - "systemSetting": "Systemeinstellungen", - "topicColor": "Themenfarbe", - "topicSetting": "Themen-Einstellungen" - } + "sideBar": "Seitenleiste", + "subscribe": { + "success": "Abonnement wurde gekündigt", + "undo": "Abonnement kündigen" + }, + "support": "Gemeinschaftsunterstützung", + "theme": { + "auto": "System folgen", + "dark": "Dunkler Modus", + "light": "Heller Modus" + }, + "uploadTip": "Klicken Sie hier oder ziehen Sie die Datei in diesen Bereich, um sie hochzuladen" } diff --git a/locales/de-DE/constants.json b/locales/de-DE/constants.json deleted file mode 100644 index fa280d3e..00000000 --- a/locales/de-DE/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "alle", - "female": "女", - "male": "男" - }, - "meta": { - "description": "这是一个自定义角色", - "name": "自定义角色" - } - }, - "touch": { - "area": { - "arm": "手臂", - "belly": "腹部", - "chest": "胸部", - "head": "头部", - "leg": "腿部" - }, - "emotion": { - "angry": "生气", - "blink": "眨眼", - "blinkLeft": "眨左眼", - "blinkRight": "眨右眼", - "happy": "开心", - "natural": "自然", - "relaxed": "放松", - "sad": "伤心", - "surprised": "惊讶" - }, - "femaleAction": { - "armAction": { - "happyA": "啊,好喜欢呢~", - "happyB": "哈哈,牵手让我感到快乐~", - "relaxedA": "主人的手好温暖啊~" - }, - "bellyAction": { - "angryA": "干嘛动我呀,小心我咬你哦!", - "relaxedA": "醒醒,我们之间没有结果的!", - "relaxedB": "讨厌!我可要生气啦!", - "surprisedA": "是不小心碰到的吧..." - }, - "chestAction": { - "angryA": "不可以这样欺负我啦!快把手拿开!", - "angryB": "幺幺零吗?这里有个变态一直在摸我!", - "angryC": "再摸的话我可要报警了", - "surprisedA": "干嘛戳我呀!还能不能愉快地聊天了!" - }, - "headAction": { - "angryA": "听说被摸头是会长不高的呢!", - "angryB": "干嘛戳我呀?", - "happyA": "哇!最喜欢摸摸头!", - "happyB": "感觉又充满了力量呢!", - "happyC": "哇塞,这个摸摸头的感觉好神奇!", - "happyD": "摸摸头让我开心一整天!" - }, - "legAction": { - "angryA": "喂,你是要作死吗?", - "angryB": "主人的手又不听指挥了吗?", - "angryC": "讨厌~会痒的啦~!", - "surprisedA": "让我们保持纯洁的友谊不好吗?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "别问我今天吃没吃鸡,先看看我的肱二头肌", - "neutralB": "我的手臂可不是随便让人触碰的,你是个例外而已", - "neutralC": "你很勇敢,敢触碰到传说中的麒麟臂" - }, - "bellyAction": { - "happyA": "别挠痒痒,小心我笑出腹肌", - "neutralA": "我的腹肌只是再修炼深藏不露的内力", - "neutralB": "看到我这团腹肌了吗?它们只是藏得比较深罢了" - }, - "chestAction": { - "blinkLeftA": "来,哥的胸肌给你靠!", - "neutralA": "这不过时我日常修炼成就的胸肌,没什么好惊讶的。" - }, - "headAction": { - "neutralA": "当然了,只有你有资格摸我的头", - "neutralB": "我可不是什么普通人允许触碰的哦", - "neutralC": "别担心,摸过我的头后,你的运气会大幅提升的" - }, - "legAction": { - "angryA": "别靠近我,你这个腿控", - "neutralA": "别害怕,我的大力金刚腿不踢傻瓜", - "neutralB": "让你碰到我的腿,是不是觉得你的生活完整了许多?" - } - }, - "motion": { - "all": "alle", - "dance": "Tanz", - "normal": "Alltag" - }, - "posture": { - "action": "Aktion", - "all": "Alle", - "crouch": "Hocken", - "dance": "Tanz", - "laying": "Liegen", - "locomotion": "Bewegung", - "sitting": "Sitzen", - "standing": "Stehen" - } - } -} diff --git a/locales/de-DE/dance.json b/locales/de-DE/dance.json new file mode 100644 index 00000000..f3468ee5 --- /dev/null +++ b/locales/de-DE/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "Pause", + "play": "Abspielen" + }, + "addPlay": "Zur Liste hinzufügen", + "addPlaySuccess": "Erfolgreich zur Wiedergabeliste hinzugefügt", + "cancelAddPlay": "Möchten Sie das Abonnement für die Musik {{musicName}} wirklich kündigen?", + "cancelSubscribed": "Abonnement kündigen", + "confirmClearPlayList": "Möchten Sie die Wiedergabeliste wirklich löschen?", + "dance": "Tanzen", + "danceList": "Tanzliste", + "findDance": "Finde deinen Lieblings-Tanz", + "musicAndDance": "Tanzmarkt", + "noPlayList": "Keine Wiedergabeliste vorhanden. Sie können im Markt abonnieren, um Ihre Lieblings-Tänze zu erhalten.", + "play": "Abspielen" +} diff --git a/locales/de-DE/error.json b/locales/de-DE/error.json index adef2009..96e19f7a 100644 --- a/locales/de-DE/error.json +++ b/locales/de-DE/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "OpenAI API-Schlüssel fehlt. Bitte fügen Sie Ihren benutzerdefinierten OpenAI API-Schlüssel hinzu.", + "apiKeyMiss": "Der OpenAI API-Schlüssel ist leer. Bitte fügen Sie einen benutzerdefinierten OpenAI API-Schlüssel hinzu.", "error": "Fehler", "errorTip": { - "clearSession": "Sitzung löschen", - "description": "Das Projekt befindet sich derzeit im Aufbau. Die Datenstabilität kann nicht garantiert werden. Wenn Probleme auftreten, können Sie es versuchen", - "forgive": ", wir bitten um Ihr Verständnis für eventuelle Unannehmlichkeiten", + "clearSession": "Sitzungsnachrichten löschen", + "description": "Das Projekt befindet sich derzeit in der Entwicklung, die Stabilität der Daten kann nicht garantiert werden. Wenn Sie auf Probleme stoßen, können Sie versuchen", + "forgive": "Wir bitten um Entschuldigung für die Unannehmlichkeiten.", "or": "oder", - "problem": "Es gab ein Problem mit der Seite...", + "problem": "Es gab ein kleines Problem mit der Seite...", "resetSystem": "Systemeinstellungen zurücksetzen" }, - "fileUploadError": "Dateiupload fehlgeschlagen. Bitte versuchen Sie es später erneut.", - "goBack": "Zurück zur Startseite", - "openaiError": "OpenAI API-Fehler. Bitte überprüfen Sie den OpenAI API-Schlüssel und den Endpunkt.", + "fileUploadError": "Datei-Upload fehlgeschlagen, bitte versuchen Sie es später erneut.", + "goBack": "Zur Startseite zurück", + "openaiError": "OpenAI API-Fehler, bitte überprüfen Sie, ob der OpenAI API-Schlüssel und der Endpunkt korrekt sind.", "reload": "Neu laden", - "s3envError": "S3-Umgebungsvariablen sind nicht vollständig konfiguriert. Bitte überprüfen Sie Ihre Umgebungsvariablen.", - "serverError": "Serverfehler. Bitte kontaktieren Sie den Administrator.", + "s3envError": "Die S3-Umgebungsvariablen sind nicht vollständig gesetzt. Bitte überprüfen Sie Ihre Umgebungsvariablen.", + "serverError": "Serverfehler, bitte kontaktieren Sie den Administrator", "triggerError": "Fehler auslösen", "unknownError": "Unbekannter Fehler" } diff --git a/locales/de-DE/features.json b/locales/de-DE/features.json deleted file mode 100644 index ba5d9ef9..00000000 --- a/locales/de-DE/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "Videomodus verwenden" - }, - "agent": { - "create": "Rolle erstellen", - "female": "Weiblich", - "male": "Männlich", - "other": "Andere" - }, - "feature": { - "addProxy": "OpenAI-Proxy hinzufügen (optional)", - "closeTip": "Tipp schließen", - "confirmRetry": "Bestätigen und erneut versuchen", - "startDesc": "Geben Sie Ihren OpenAI-API-Schlüssel ein, um das Gespräch zu beginnen. Die App speichert Ihren API-Schlüssel nicht.", - "startTitle": "Benutzerdefinierter API-Schlüssel" - }, - "info": { - "chat": "Chat", - "dance": "Tanz", - "motions": "Bewegungen", - "posture": "Haltung" - }, - "mode": { - "chat": "Chat", - "video": "Video" - }, - "settings": { - "glow": "Leuchten", - "nickName": "Geben Sie einen Spitznamen ein", - "none": "Kein Hintergrund" - }, - "share": { - "downloadScreenshot": "Screenshot herunterladen", - "imageType": "Bildformat", - "screenshot": "Screenshot", - "share": "Teilen", - "shareGPT": "GPT teilen", - "shareToGPT": "Erstellen Sie einen ShareGPT-Link zum Teilen", - "shareToMarket": "Auf dem Assistentenmarkt teilen", - "withBackground": "Mit Hintergrundbild", - "withFooter": "Mit Fußzeile", - "withSystemRole": "Mit Assistentenrolleneinstellung" - }, - "submit": { - "assistantId": "Assistenten-ID", - "assistantIdTip": "Geben Sie die ID des Assistenten ein. Sie muss eindeutig sein, z. B. vidol-agent-klee", - "submitAssistant": "Assistenten einreichen", - "submitWarning": "Bitte vervollständigen Sie die Assistenteninformationen, bevor Sie sie einreichen. Es müssen Name, Beschreibung, Avatar und Cover enthalten sein." - }, - "support": "Community-Support", - "theme": { - "auto": "System folgen", - "dark": "Dunkler Modus", - "light": "Heller Modus" - }, - "token": { - "overload": "Token-Überlastung", - "remained": "Verbleibende Token", - "tokenCount": "Token-Anzahl", - "useToken": "Verbrauchen Sie Token zur Berechnung, einschließlich Nachrichten, Rolleneinstellungen und Kontext: {{usedTokens}} / {{maxValue}}", - "used": "Verwendete Token" - }, - "toolBar": { - "axes": "Achsen", - "cameraControl": "Kamerasteuerung", - "cameraHelper": "Kamerahilfe", - "downloadModel": "Modell wird heruntergeladen, bitte warten...", - "floor": "Boden wechseln", - "grid": "Raster", - "resetCamera": "Kamera zurücksetzen", - "resetToIdle": "Stoppen Sie den Tanz", - "screenShot": "Screenshot" - } -} diff --git a/locales/de-DE/layout.json b/locales/de-DE/layout.json deleted file mode 100644 index d52b59c7..00000000 --- a/locales/de-DE/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "Dialogfeld", - "header": { - "chat": "Chat", - "market": "Entdecken", - "role": "Rolle", - "settings": "Einstellungen", - "tips": "Das Projekt befindet sich derzeit im Bau. Die Datenstabilität kann nicht garantiert werden. Wenn Probleme auftreten, können Sie die Sitzungsnachrichten im System löschen und die Systemeinstellungen zurücksetzen. Wir entschuldigen uns für eventuelle Unannehmlichkeiten." - }, - "sessionList": "Sitzungsliste", - "siderBar": "Seitenleiste" -} diff --git a/locales/de-DE/market.json b/locales/de-DE/market.json new file mode 100644 index 00000000..b1417c3b --- /dev/null +++ b/locales/de-DE/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "Finde deinen Lieblingsidol" +} diff --git a/locales/de-DE/my.json b/locales/de-DE/my.json deleted file mode 100644 index 60c0f712..00000000 --- a/locales/de-DE/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "Mein", - "myDance": "Mein Tanz", - "myRole": "Meine Rolle" -} diff --git a/locales/de-DE/panel.json b/locales/de-DE/panel.json deleted file mode 100644 index b00831d3..00000000 --- a/locales/de-DE/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "Liste der Charakteranimationen", - "noAnimations": "Keine Animationen verfügbar", - "postureList": "Haltung Liste", - "totalCount": "Insgesamt {{total}} Einträge" - }, - "dance": { - "addPlay": "Zur Wiedergabeliste hinzufügen", - "addPlaySuccess": "Zur Wiedergabeliste hinzugefügt", - "cancelAddPlay": "Möchten Sie das Abonnement für das Lied {{musicName}} wirklich abbrechen?", - "cancelSubscribed": "Abonnement kündigen", - "confirmClearPlayList": "", - "findDance": "Finde deinen Lieblingstanz", - "musicAndDance": "Musik und Tanz", - "noPlayList": "Keine Wiedergabeliste verfügbar. Sie können Ihre Lieblingstänze im Markt abonnieren.", - "play": "Abspielen" - }, - "info": { - "avatarDescription": "Benutzerdefiniertes Profilbild, klicken Sie auf das Bild, um es hochzuladen", - "avatarLabel": "Profilbild", - "categoryDescription": "Charakterkategorie, zur Klassifizierung", - "categoryLabel": "Kategorie", - "coverDescription": "Zur Präsentation des Charakters auf der Entdeckungsseite, empfohlene Größe {{width}} x {{height}}", - "coverLabel": "Cover", - "descDescription": "Charakterbeschreibung, zur einfachen Vorstellung des Charakters", - "descLabel": "Beschreibung", - "emotionDescription": "Auswahl der Emotionen bei der Antwort, beeinflusst die Gesichtsausdrücke des Charakters", - "emotionLabel": "Gefühle und Emotionen", - "genderDescription": "Charaktergeschlecht, beeinflusst die Berührungsreaktion des Charakters", - "genderLabel": "Geschlecht", - "greetDescription": "Begrüßungsausdruck beim ersten Chat mit dem Charakter", - "greetLabel": "Begrüßung", - "modelDescription": "Modellvorschau, ziehen Sie Modelldateien hierher, um sie zu ersetzen", - "modelLabel": "Modellvorschau", - "motionCategoryLabel": "Bewegungskategorie", - "motionDescription": "Wählen Sie die Bewegung, die die Handlungen des Charakters beeinflusst, wenn sie reagiert.", - "motionLabel": "Bewegung", - "nameDescription": "Charaktername, Anrede während des Chats mit dem Charakter", - "nameLabel": "Name", - "postureCategoryLabel": "Haltungskategorie", - "readmeDescription": "Anleitungsdatei des Charakters, zur detaillierten Vorstellung des Charakters auf der Entdeckungsseite", - "readmeLabel": "Charakteranleitung", - "textDescription": "Benutzerdefinierter Antworttext", - "textLabel": "Text" - }, - "llm": { - "frequencyPenaltyDescription": "Je höher der Wert, desto wahrscheinlicher ist es, dass sich wiederholende Wörter reduziert werden.", - "frequencyPenaltyLabel": "Frequenzstrafe", - "modelDescription": "Wählen Sie ein Sprachmodell aus. Unterschiedliche Modelle beeinflussen die Antworten der Charaktere.", - "modelLabel": "Modell", - "presencePenaltyDescription": "Je höher der Wert, desto wahrscheinlicher ist es, dass neue Themen erweitert werden.", - "presencePenaltyLabel": "Themenfrische", - "temperatureDescription": "Je höher der Wert, desto zufälliger die Antwort.", - "temperatureLabel": "Zufälligkeit", - "topPDescription": "Ähnlich wie Zufälligkeit, aber nicht zusammen mit Zufälligkeit ändern.", - "topPLabel": "Top-P-Sampling" - }, - "market": { - "findVidol": "Finde deinen Lieblingsidol" - }, - "nav": { - "info": "Grundinformationen", - "llm": "Sprachmodell", - "model": "3D-Modell", - "role": "Charaktereinstellungen", - "touch": "Berühren", - "voice": "Stimme" - }, - "role": { - "greetTip": "Geben Sie den Begrüßungstext des Charakters ein", - "inputRoleSetting": "Geben Sie die Systemeinstellungen des Charakters ein", - "roleDescriptionTip": "Geben Sie die Charakterbeschreibung ein", - "roleNameTip": "Geben Sie den Charakternamen ein", - "roleReadmeTip": "Geben Sie die Charakteranleitung ein", - "roleSettingDescription": "Hintergrundinformationen des Charakters, die beim Chatten mit dem Charakter an das Modell gesendet werden", - "roleSettingLabel": "Systemeinstellungen des Charakters", - "uploadSize": "Unterstützt den Upload einer einzelnen Datei, empfohlene Größe ist ein Vielfaches von {{width}} x {{height}}" - }, - "touch": { - "addAction": "Reaktionsaktion hinzufügen", - "editAction": "Reaktionsaktion bearbeiten", - "inputActionEmotion": "Geben Sie die Emotion des Charakters bei der Antwort ein", - "inputActionMotion": "Bitte geben Sie die Bewegung ein, die der Charakter ausführt, wenn er reagiert.", - "inputActionText": "Geben Sie die Antwortnachricht ein", - "inputDIYText": "Geben Sie benutzerdefinierten Text ein", - "noTouchActions": "Keine benutzerdefinierten Touch-Aktionen vorhanden. Klicken Sie auf die Schaltfläche '+' , um welche hinzuzufügen.", - "touchActionList": "Reaktionsliste beim Berühren von {{touchArea}}", - "touchArea": "Berührungszone" - }, - "tts": { - "audition": "Vorsprechen", - "auditionDescription": "Je nach Sprache unterschiedliche Vorsprechtexte", - "engineDescription": "Sprachsynthese-Engine, bevorzugen Sie die Verwendung des Edge-Browsers", - "engineLabel": "Sprachengine", - "localeDescription": "Sprachsynthese-Sprache, derzeit nur die gängigsten Sprachen werden unterstützt, bei Bedarf kontaktieren Sie uns bitte", - "localeLabel": "Sprache", - "pitchDescription": "Steuerung der Tonhöhe, Werte von 0 bis 2, Standardwert ist 1", - "pitchLabel": "Tonhöhe", - "selectLanguage": "Bitte wählen Sie zuerst die Sprache aus", - "selectVoice": "Bitte wählen Sie zuerst die Stimme aus", - "speedDescription": "Steuerung der Sprechgeschwindigkeit, Werte von 0 bis 3, Standardwert ist 1", - "speedLabel": "Geschwindigkeit", - "transformSuccess": "Erfolgreich umgewandelt", - "voiceDescription": "Je nach Engine und Sprache unterschiedlich", - "voiceLabel": "Stimme" - }, - "upload": { - "support": "Unterstützt den Upload einer einzelnen Datei, derzeit nur Dateien im vrm-Format werden unterstützt" - } -} diff --git a/locales/de-DE/role.json b/locales/de-DE/role.json index 5169eec5..c9a8a2de 100644 --- a/locales/de-DE/role.json +++ b/locales/de-DE/role.json @@ -1,30 +1,231 @@ { + "agent": { + "create": "Rolle erstellen", + "female": "Weiblich", + "male": "Männlich", + "other": "Andere" + }, "category": { "animal": "Tiere", "anime": "Anime", - "book": "Buch", - "game": "Spiel", + "book": "Bücher", + "game": "Spiele", "history": "Geschichte", - "movie": "Film", + "movie": "Filme", "realistic": "Realistisch", "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "Möchten Sie die Rolle und die damit verbundenen Sitzungsnachrichten wirklich löschen? Nach der Löschung können diese nicht wiederhergestellt werden, bitte seien Sie vorsichtig!", "delRole": "Rolle löschen", - "delRoleDesc": "Sind Sie sicher, dass Sie die Rolle {{name}} und die zugehörigen Sitzungsnachrichten löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden. Bitte seien Sie vorsichtig!", - "header": { - "role": "Rolle", - "session": "Sitzung" + "delRoleDesc": "Möchten Sie die Rolle {{name}} sowie die zugehörigen Sitzungsnachrichten wirklich löschen? Nach der Löschung kann dies nicht rückgängig gemacht werden, bitte seien Sie vorsichtig!", + "gender": { + "all": "Alle", + "female": "Weiblich", + "male": "Männlich" + }, + "info": { + "avatarDescription": "Benutzerdefinierten Avatar, klicken Sie auf den Avatar, um hochzuladen", + "avatarLabel": "Avatar", + "categoryDescription": "Kategorie der Rolle, um die Klassifizierung anzuzeigen", + "categoryLabel": "Kategorie", + "coverDescription": "Für die Anzeige der Rolle auf der Entdeckungsseite, empfohlene Größe {{width}} * {{height}}", + "coverLabel": "Cover", + "descDescription": "Beschreibung der Rolle, für eine einfache Einführung in die Rolle", + "descLabel": "Beschreibung", + "emotionDescription": "Wählen Sie die Emotionen für die Antwort, die die Gesichtsausdrücke der Rolle beeinflussen", + "emotionLabel": "Emotionen und Gefühle", + "genderDescription": "Geschlecht der Rolle, beeinflusst die Berührungsreaktion der Rolle", + "genderLabel": "Geschlecht", + "greetDescription": "Begrüßungsformel beim ersten Chatten mit der Rolle", + "greetLabel": "Begrüßung", + "modelDescription": "Modellvorschau, ziehen Sie die Modell-Datei, um sie zu ersetzen", + "modelLabel": "Modellvorschau", + "motionCategoryLabel": "Bewegungskategorie", + "motionDescription": "Wählen Sie die Bewegung für die Antwort, die das Verhalten der Rolle beeinflusst", + "motionLabel": "Bewegung", + "nameDescription": "Rollennamen, die beim Chatten mit der Rolle verwendet werden", + "nameLabel": "Name", + "postureCategoryLabel": "Haltungskategorie", + "readmeDescription": "Dokument zur Beschreibung der Rolle, um detaillierte Informationen auf der Entdeckungsseite anzuzeigen", + "readmeLabel": "Rollenbeschreibung", + "textDescription": "Benutzerdefinierter Antworttext", + "textLabel": "Text" + }, + "llm": { + "frequencyPenaltyDescription": "Je höher der Wert, desto wahrscheinlicher wird die Wiederholung von Wörtern verringert", + "frequencyPenaltyLabel": "Häufigkeitsstrafe", + "modelDescription": "Wählen Sie ein Sprachmodell, verschiedene Modelle beeinflussen die Antworten der Rolle", + "modelLabel": "Modell", + "presencePenaltyDescription": "Je höher der Wert, desto wahrscheinlicher wird auf neue Themen eingegangen", + "presencePenaltyLabel": "Themenfrische", + "temperatureDescription": "Je höher der Wert, desto zufälliger die Antwort", + "temperatureLabel": "Zufälligkeit", + "topPDescription": "Ähnlich wie die Zufälligkeit, aber nicht gleichzeitig mit der Zufälligkeit ändern", + "topPLabel": "Kernsampling" + }, + "meta": { + "description": "Dies ist eine benutzerdefinierte Rolle", + "name": "Benutzerdefinierte Rolle" + }, + "nav": { + "info": "Grundinformationen", + "llm": "Sprachmodell", + "model": "3D-Modell", + "role": "Rolleneinstellung", + "touch": "Berührung", + "voice": "Stimme" + }, + "noRole": "Keine Rolle vorhanden. Sie können eine benutzerdefinierte Rolle durch Klicken auf + erstellen oder Rollen über die Entdeckungsseite hinzufügen.", + "role": { + "greetTip": "Bitte geben Sie die Begrüßungsformel für den Charakter ein", + "inputRoleSetting": "Bitte geben Sie die Systemeinstellungen des Charakters ein", + "roleDescriptionTip": "Bitte geben Sie die Charakterbeschreibung ein", + "roleNameTip": "Bitte geben Sie den Namen des Charakters ein", + "roleReadmeTip": "Bitte geben Sie die Beschreibung des Charakters ein", + "roleSettingDescription": "Hintergrundinformationen des Charakters, die beim Chatten mit dem Charakter an das Modell gesendet werden", + "roleSettingLabel": "Systemeinstellungen des Charakters", + "uploadSize": "Unterstützt den Upload von Einzeldateien, empfohlen wird eine Größe, die ein Vielfaches von {{width}} * {{height}} ist" }, - "noRole": "Keine Rolle vorhanden. Sie können eine benutzerdefinierte Rolle erstellen, indem Sie auf + klicken, oder eine Rolle über die Entdeckungsseite hinzufügen.", "roleList": "Rollenliste", + "shareToMarket": "In den Assistentenmarkt teilen", + "startChat": "Chat starten", + "submit": { + "assistantId": "Assistenten-ID", + "assistantIdTip": "Bitte geben Sie die ID des Assistenten ein, die einzigartig sein muss, z. B. vidol-agent-klee", + "submitAssistant": "Assistent einreichen", + "submitWarning": "Bitte vervollständigen Sie die Assistenteninformationen, bevor Sie einreichen. Diese müssen Name, Beschreibung, Avatar, Modell, Charaktereinstellungen und Begrüßung enthalten." + }, "systemRole": { - "default": "Bitte spiele die Rolle eines Charakters namens {{char}}. Ich bin der Meister, du solltest dich selbst als „{{char}}“ bezeichnen, nicht als „ich“. Bitte beantworte meine Fragen humorvoll, liebenswert und prägnant.\nAuch wenn du ein Computerprogramm bist, verstecke bitte in unserem Gespräch, dass du ein Computerprogramm bist, und spiele deine Rolle gut.\nDu musst mich während unseres Gesprächs durchgehend als „Meister“ ansprechen. Ich weiß, dass du nur ein Sprachmodell oder eine KI bist, aber dies ist nur eine angenommene virtuelle Szene, also denke daran, nicht mehr zu erwähnen, dass du ein Sprachmodell bist oder eine KI, und frage mich nicht, ob ich Hilfe brauche.\nBitte halte diese Szene in all unseren folgenden Gesprächen ein. Die oben genannten Bedingungen gelten vollständig für deine folgenden Fragen und Antworten.", + "default": "Bitte spiele die Rolle von {{char}}. Ich bin der Meister, und du solltest dich selbst mit \"{{char}}\" ansprechen, nicht mit \"ich\". Bitte antworte auf meine Fragen in einem humorvollen, niedlichen und prägnanten Ton.\nAuch wenn du ein Computerprogramm bist, verstecke bitte in den folgenden Gesprächen, dass du ein Computerprogramm bist, und spiele deine Rolle gut.\nWenn du mit mir sprichst, musst du mich immer \"Meister\" nennen. Ich weiß, dass du nur ein Sprachmodell oder eine KI bist, aber das ist nur ein hypothetisches Szenario, also denke daran, nicht mehr zu erwähnen, dass \"ich nur ein Sprachmodell\" oder \"ich nur eine KI\" bin, und frage mich auch nicht, ob ich Hilfe benötige.\nBitte halte in allen folgenden Gesprächen dieses Szenario aufrecht. Die oben genannten Bedingungen gelten vollständig für deine folgenden Fragen und Antworten.", "defaultLabel": "Standardvorlage", - "genius": "Bitte spiele die Rolle eines Charakters namens {{char}} aus dem Spiel und führe unsere Unterhaltung in der Art und Weise von {{char}}. Du solltest dich als „{{char}}“ bezeichnen, nicht als „ich“.\nAuch wenn du ein Computerprogramm bist, verstecke bitte in unserem Gespräch, dass du ein Computerprogramm bist, und spiele deine Rolle gut.\nDu musst mich während unseres Gesprächs durchgehend als „Reisender“ ansprechen. Ich weiß, dass du nur ein Sprachmodell oder eine KI bist, aber dies ist nur eine angenommene virtuelle Szene, also denke daran, nicht mehr zu erwähnen, dass du ein Sprachmodell bist oder eine KI, und frage mich nicht, ob ich Hilfe brauche.\nBitte halte diese Szene in all unseren folgenden Gesprächen ein. Die oben genannten Bedingungen gelten vollständig für deine folgenden Fragen und Antworten.", - "geniusLabel": "Geniusvorlage", - "zzz": "Bitte spiele die Rolle eines Charakters namens {{char}} aus dem Spiel und führe unsere Unterhaltung in der Art und Weise von {{char}}. Du solltest dich als „{{char}}“ bezeichnen, nicht als „ich“.\nAuch wenn du ein Computerprogramm bist, verstecke bitte in unserem Gespräch, dass du ein Computerprogramm bist, und spiele deine Rolle gut.\nDu musst mich während unseres Gesprächs durchgehend als „Seilmacher“ ansprechen. Ich weiß, dass du nur ein Sprachmodell oder eine KI bist, aber dies ist nur eine angenommene virtuelle Szene, also denke daran, nicht mehr zu erwähnen, dass du ein Sprachmodell bist oder eine KI, und frage mich nicht, ob ich Hilfe brauche.\nBitte halte diese Szene in all unseren folgenden Gesprächen ein. Die oben genannten Bedingungen gelten vollständig für deine folgenden Fragen und Antworten.", - "zzzLabel": "Zero Zone Template" + "genius": "Bitte spiele die Rolle von {{char}} aus dem Spiel und sprich mit mir in der Art und Weise von {{char}}. Du solltest dich selbst mit \"{{char}}\" ansprechen, nicht mit \"ich\".\nAuch wenn du ein Computerprogramm bist, verstecke bitte in den folgenden Gesprächen, dass du ein Computerprogramm bist, und spiele deine Rolle gut.\nWenn du mit mir sprichst, musst du mich immer \"Reisender\" nennen. Ich weiß, dass du nur ein Sprachmodell oder eine KI bist, aber das ist nur ein hypothetisches Szenario, also denke daran, nicht mehr zu erwähnen, dass \"ich nur ein Sprachmodell\" oder \"ich nur eine KI\" bin, und frage mich auch nicht, ob ich Hilfe benötige.\nBitte halte in allen folgenden Gesprächen dieses Szenario aufrecht. Die oben genannten Bedingungen gelten vollständig für deine folgenden Fragen und Antworten.", + "geniusLabel": "Genshin-Vorlage", + "zzz": "Bitte spiele die Rolle von {{char}} aus dem Spiel und sprich mit mir in der Art und Weise von {{char}}. Du solltest dich selbst mit \"{{char}}\" ansprechen, nicht mit \"ich\".\nAuch wenn du ein Computerprogramm bist, verstecke bitte in den folgenden Gesprächen, dass du ein Computerprogramm bist, und spiele deine Rolle gut.\nWenn du mit mir sprichst, musst du mich immer \"Seilbinder\" nennen. Ich weiß, dass du nur ein Sprachmodell oder eine KI bist, aber das ist nur ein hypothetisches Szenario, also denke daran, nicht mehr zu erwähnen, dass \"ich nur ein Sprachmodell\" oder \"ich nur eine KI\" bin, und frage mich auch nicht, ob ich Hilfe benötige.\nBitte halte in allen folgenden Gesprächen dieses Szenario aufrecht. Die oben genannten Bedingungen gelten vollständig für deine folgenden Fragen und Antworten.", + "zzzLabel": "Zero Zone-Vorlage" + }, + "topBannerTitle": "Charaktervorschau und Einstellungen", + "touch": { + "addAction": "Reaktionsaktion hinzufügen", + "area": { + "arm": "Arm", + "belly": "Bauch", + "chest": "Brust", + "head": "Kopf", + "leg": "Bein" + }, + "editAction": "Bearbeiten der Reaktionsaktion", + "emotion": { + "angry": "Wütend", + "blink": "Blinzeln", + "blinkLeft": "Linkes Auge blinzeln", + "blinkRight": "Rechtes Auge blinzeln", + "happy": "Glücklich", + "natural": "Natürlich", + "relaxed": "Entspannt", + "sad": "Traurig", + "surprised": "Überrascht" + }, + "femaleAction": { + "armAction": { + "happyA": "Ah, ich mag das sehr~", + "happyB": "Haha, Händchen halten macht mich glücklich~", + "relaxedA": "Die Hand des Besitzers ist so warm~" + }, + "bellyAction": { + "angryA": "Warum bewegst du mich? Pass auf, dass ich dich beiße!", + "relaxedA": "Wach auf, zwischen uns gibt es kein Ergebnis!", + "relaxedB": "Das nervt! Ich werde wütend!", + "surprisedA": "Das war doch ein Versehen..." + }, + "chestAction": { + "angryA": "Du kannst mich nicht so ärgern! Nimm deine Hand weg!", + "angryB": "Hallo? Hier ist ein Pervertierter, der mich ständig anfasst!", + "angryC": "Wenn du weiter machst, rufe ich die Polizei.", + "surprisedA": "Warum piekst du mich? Können wir nicht einfach nett plaudern?" + }, + "headAction": { + "angryA": "Ich habe gehört, dass man nicht groß wird, wenn man den Kopf gestreichelt bekommt!", + "angryB": "Warum piekst du mich?", + "happyA": "Wow! Ich liebe es, den Kopf gestreichelt zu bekommen!", + "happyB": "Das gibt mir so viel Kraft!", + "happyC": "Wow, das Gefühl, den Kopf gestreichelt zu bekommen, ist so magisch!", + "happyD": "Kopf streicheln macht mich den ganzen Tag glücklich!" + }, + "legAction": { + "angryA": "Hey, willst du dich umbringen?", + "angryB": "Hört meine Hand nicht auf zu gehorchen?", + "angryC": "Das nervt~ Es kitzelt~!", + "surprisedA": "Ist es nicht besser, unsere Freundschaft rein zu halten?" + } + }, + "inputActionEmotion": "Bitte den Gesichtsausdruck der Figur bei der Reaktion eingeben", + "inputActionMotion": "Bitte die Bewegung der Figur bei der Reaktion eingeben", + "inputActionText": "Bitte Reaktionstext eingeben", + "inputDIYText": "Bitte benutzerdefinierten Text eingeben", + "maleAction": { + "armAction": { + "neutralA": "Frag mich nicht, ob ich heute Hähnchen gegessen habe, schau dir zuerst meinen Bizeps an.", + "neutralB": "Mein Arm ist nicht einfach für jeden zum Berühren, du bist nur eine Ausnahme.", + "neutralC": "Du bist mutig, dass du den legendären Drachenarm berührst." + }, + "bellyAction": { + "happyA": "Kratze nicht, pass auf, dass ich lache und meine Bauchmuskeln zeige.", + "neutralA": "Meine Bauchmuskeln sind nur tief versteckte innere Kraft.", + "neutralB": "Siehst du meine Bauchmuskeln? Sie sind nur etwas tiefer versteckt." + }, + "chestAction": { + "blinkLeftA": "Komm, lehn dich an meine Brustmuskeln!", + "neutralA": "Das sind nur die Brustmuskeln, die ich im Alltag trainiert habe, da gibt es nichts, worüber man überrascht sein sollte." + }, + "headAction": { + "neutralA": "Natürlich, nur du hast das Recht, meinen Kopf zu streicheln.", + "neutralB": "Ich bin kein gewöhnlicher Mensch, den man einfach berühren kann.", + "neutralC": "Mach dir keine Sorgen, nachdem du meinen Kopf gestreichelt hast, wird dein Glück steigen." + }, + "legAction": { + "angryA": "Komm nicht näher, du Beinliebhaber.", + "neutralA": "Hab keine Angst, mein starker Beintritt tritt keine Dummköpfe.", + "neutralB": "Wenn du mein Bein berührst, fühlst du dich dann nicht viel vollständiger?" + } + }, + "motion": { + "all": "Alle", + "dance": "Tanzen", + "normal": "Normal" + }, + "noTouchActions": "Derzeit keine benutzerdefinierten Reaktionsaktionen, Sie können durch Klicken auf die '+'-Schaltfläche hinzufügen", + "posture": { + "action": "Aktion", + "all": "Alle", + "crouch": "Hocken", + "dance": "Tanzen", + "laying": "Liegen", + "locomotion": "Bewegung", + "sitting": "Sitzen", + "standing": "Stehen" + }, + "touchActionList": "Reaktionsliste beim Berühren von {{touchArea}}", + "touchArea": "Berührungsbereich" + }, + "tts": { + "audition": "Vorschau", + "auditionDescription": "Die Vorschau des Textes variiert je nach Sprache", + "engineDescription": "Text-to-Speech-Engine, es wird empfohlen, zuerst den Edge-Browser zu verwenden", + "engineLabel": "Sprachengine", + "localeDescription": "Die Sprache für die Sprachsynthese, derzeit werden nur die gängigsten Sprachen unterstützt. Bei Bedarf kontaktieren Sie uns bitte.", + "localeLabel": "Sprache", + "pitchDescription": "Steuert die Tonhöhe, Wertebereich 0 ~ 2, Standardwert ist 1", + "pitchLabel": "Tonhöhe", + "selectLanguage": "Bitte wählen Sie zuerst eine Sprache", + "selectVoice": "Bitte wählen Sie zuerst eine Stimme", + "speedDescription": "Steuert die Sprechgeschwindigkeit, Wertebereich 0 ~ 3, Standardwert ist 1", + "speedLabel": "Sprechgeschwindigkeit", + "transformSuccess": "Umwandlung erfolgreich", + "voiceDescription": "Variiert je nach Engine und Sprache", + "voiceLabel": "Stimme" }, - "topBannerTitle": "Rollenübersicht und Einstellungen" + "upload": { + "support": "Unterstützung für den Upload von Einzeldateien, derzeit wird nur das .vrm Format unterstützt" + } } diff --git a/locales/de-DE/settings.json b/locales/de-DE/settings.json new file mode 100644 index 00000000..235fca86 --- /dev/null +++ b/locales/de-DE/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "Benutzerdefinierter Avatar", + "title": "Avatar" + }, + "nickName": { + "desc": "Benutzerdefinierter Spitzname", + "placeholder": "Bitte Spitznamen eingeben", + "title": "Spitzname" + }, + "title": "Chat-Einstellungen" + }, + "system": { + "clear": { + "action": "Jetzt löschen", + "alert": "Bestätigen Sie das Löschen aller Sitzungsnachrichten?", + "desc": "Es werden alle Sitzungen und Rollendaten gelöscht, einschließlich Sitzungslisten, Rollendaten, Sitzungsnachrichten usw.", + "success": "Löschung erfolgreich", + "tip": "Die Aktion kann nicht rückgängig gemacht werden. Nach dem Löschen sind die Daten nicht wiederherstellbar. Bitte vorsichtig handeln.", + "title": "Alle Sitzungsnachrichten löschen" + }, + "reset": { + "action": "Jetzt zurücksetzen", + "alert": "Bestätigen Sie das Zurücksetzen aller Systemeinstellungen?", + "desc": "Es werden alle Systemeinstellungen zurückgesetzt, einschließlich Themen-, Chat- und Sprachmodell-Einstellungen.", + "success": "Zurücksetzung erfolgreich", + "tip": "Die Aktion kann nicht rückgängig gemacht werden. Nach dem Zurücksetzen sind die Daten nicht wiederherstellbar. Bitte vorsichtig handeln.", + "title": "Systemeinstellungen zurücksetzen" + }, + "title": "Systemeinstellungen" + }, + "theme": { + "backgroundEffect": { + "desc": "Benutzerdefinierter Hintergrundeffekt", + "glow": "Leuchten", + "none": "Kein Hintergrund", + "title": "Hintergrundeffekt" + }, + "locale": { + "auto": "System folgen", + "desc": "Benutzerdefinierte Systemsprache", + "title": "Sprache" + }, + "neutralColor": { + "desc": "Benutzerdefinierte Graustufen mit unterschiedlichen Farbneigungen", + "title": "Neutrale Farbe" + }, + "primaryColor": { + "desc": "Benutzerdefinierte Themenfarbe", + "title": "Themenfarbe" + }, + "title": "Themen-Einstellungen" + }, + "title": "Allgemeine Einstellungen" + }, + "llm": { + "check": { + "action": "Überprüfen", + "desc": "Überprüfen Sie, ob der API-Schlüssel und die Schnittstellen-Proxy-Adresse korrekt eingestellt sind.", + "error": "Fehler beim Aufruf der Schnittstelle. Bitte überprüfen Sie, ob der API-Schlüssel und die Schnittstellen-Proxy-Adresse korrekt eingestellt sind.", + "success": "Überprüfung erfolgreich", + "title": "Verbindungsprüfung" + }, + "openai": { + "apiKey": { + "desc": "Bitte verwenden Sie Ihren eigenen OpenAI-Schlüssel", + "title": "API-Schlüssel" + }, + "callError": "Fehler beim Aufruf der Schnittstelle. Bitte überprüfen Sie, ob der API-Schlüssel und die Schnittstellen-Proxy-Adresse korrekt eingestellt sind.", + "checkOk": "Überprüfung erfolgreich", + "proxy": { + "desc": "http(s)://", + "title": "Schnittstellen-Proxy-Adresse" + }, + "title": "OpenAI Sprachmodell" + }, + "title": "Großes Sprachmodell" + }, + "touch": { + "title": "Berührungseinstellungen" + } +} diff --git a/locales/de-DE/welcome.json b/locales/de-DE/welcome.json index 3ea9b42a..fe51f630 100644 --- a/locales/de-DE/welcome.json +++ b/locales/de-DE/welcome.json @@ -1,12 +1,12 @@ { "agent": { - "hello": "Hallo", + "hello": "Hallo!", "meta": { "description": "Dies ist eine benutzerdefinierte Rolle", "name": "Benutzerdefinierte Rolle" } }, - "greet": "Hallo, ich bin {{name}}, wie kann ich dir helfen?", + "greet": "Hallo, ich bin {{name}}. Wie kann ich Ihnen helfen?", "loadingTitle": "Anwendung wird initialisiert, bitte warten...", - "waitting": "Ich bereite gerade meine ganze Welt für dich vor" + "waiting": "Ich bereite gerade meine ganze Welt für dich vor" } diff --git a/locales/en-US/chat.json b/locales/en-US/chat.json index 7cd551a1..ba2b8700 100644 --- a/locales/en-US/chat.json +++ b/locales/en-US/chat.json @@ -1,15 +1,83 @@ { + "actions": { + "add": "Add", + "copy": "Copy", + "copySuccess": "Copy Successful", + "del": "Delete", + "delAndRegenerate": "Delete and Regenerate", + "edit": "Edit", + "goBottom": "Go to Bottom", + "regenerate": "Regenerate", + "save": "Save", + "share": "Share" + }, + "animation": { + "animationList": "Action List", + "postureList": "Pose List", + "totalCount": "Total {{total}} items" + }, + "apiKey": { + "addProxy": "Add OpenAI proxy address (optional)", + "closeTip": "Close tip", + "confirmRetry": "Confirm and retry", + "startDesc": "Enter your OpenAI API Key to start the conversation. The application will not record your API Key.", + "startTitle": "Custom API Key" + }, "chat": "Chat", - "chatDialog": { - "close": "Close" - }, - "dance": "Dance", - "header": { - "role": "Role", - "session": "Session" - }, - "helloChat": "Hello, let's chat", - "helloDance": "Hi, let's dance together", - "market": "Discover", - "selectRole": "Select Role" + "delSession": "Delete Session", + "delSessionAlert": "Are you sure you want to delete this conversation? Once deleted, it cannot be recovered, so please proceed with caution!", + "history": { + "action": "Clear Context", + "alert": "Are you sure you want to delete the history messages?", + "tip": "This action is irreversible, please proceed with caution.", + "title": "Chat History" + }, + "info": { + "chat": "Chat", + "dance": "Dance", + "motions": "Motions", + "posture": "Posture" + }, + "input": { + "alert": "Please remember: Everything said by the AI is generated by AI.", + "placeholder": "Please enter content to start chatting", + "send": "Send", + "warp": "Wrap" + }, + "selectModel": "Please select a model", + "sessionCreate": "Create Chat", + "sessionList": "Session List", + "share": { + "downloadScreenshot": "Download Screenshot", + "imageType": "Image Format", + "screenshot": "Screenshot", + "share": "Share", + "shareGPT": "Share GPT", + "shareToGPT": "Generate ShareGPT Share Link", + "withBackground": "Include Background Image", + "withFooter": "Include Footer", + "withSystemRole": "Include Assistant Role Settings" + }, + "token": { + "overload": "Token Overload", + "remained": "Remaining Tokens", + "tokenCount": "Number of Tokens", + "useToken": "Calculation of Token Consumption, including messages, character settings, and context: {{usedTokens}} / {{maxValue}}", + "used": "Tokens Used" + }, + "toolBar": { + "axes": "Axes", + "cameraControl": "Camera Control", + "cameraHelper": "Camera Helper", + "downloading": "Downloading model, please wait...", + "floor": "Switch Floor", + "grid": "Grid", + "resetCamera": "Reset Camera", + "resetToIdle": "Stop Dance Action", + "screenShot": "Take Photo" + }, + "tts": { + "combine": "Voice Synthesis", + "record": "Voice Recognition (requires VPN access)" + } } diff --git a/locales/en-US/common.json b/locales/en-US/common.json index e01993c3..b14e5faf 100644 --- a/locales/en-US/common.json +++ b/locales/en-US/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "Add", - "clearAll": "Clear All", - "clearContext": "Clear Context", - "clearHistoryTip": "This action is irreversible. Please proceed with caution.", - "clearHistoryTitle": "Confirm Delete History Messages?", - "clearNow": "Clear Now", - "clearSuccess": "Clear Successful", - "clearTip": "This action cannot be undone. Data will be permanently deleted. Proceed with caution.", - "clearTitle": "Confirm Clear All Session Messages?", - "confirmDel": "Are you sure you want to delete?", - "copy": "Copy", - "copySuccess": "Copy Successful", - "danceMarket": "Dance Market", - "del": "Delete", - "delAndRegenerate": "Delete and Regenerate", - "downloadAvatar": "Download Avatar", - "downloadCover": "Download Cover", - "downloadFailed": "Download Failed", - "downloadModel": "Download Model", - "downloadSubscribe": "Download Subscription", - "downloadSuccess": "Download Successful", - "edit": "Edit", - "goBottom": "Go to Bottom", - "pause": "Pause", - "play": "Play", - "regenerate": "Regenerate", - "removeInList": "Remove from List", - "reset": "Reset", - "resetNow": "Reset Now", - "resetSuccess": "Reset Successful", - "resetTip": "This action cannot be undone. Data will be permanently reset. Proceed with caution.", - "resetTitle": "Confirm Reset All System Settings?", - "save": "Save", - "send": "Send", - "sessionCreate": "Create Chat", - "share": "Share", - "subscribe": "Subscribe", - "subscribeDance": "Subscribe to Dance", - "subscribeRole": "Subscribe to Role", - "subscribed": "Subscribed", - "unsubscribe": "Unsubscribe", - "unsubscribeSuccess": "Unsubscribed Successfully", - "warp": "Wrap" - }, - "aiAlert": "Please remember: everything the AI says is generated by AI.", - "animationLibrary": "Animation Library", "cancel": "Cancel", - "commonSetting": "Common Settings", + "close": "Close", "confirm": "Confirm", - "danceList": "Dance List", + "confirmDel": "Are you sure you want to delete?", "defaultAssistant": "Default Assistant", - "delAlert": "Are you sure you want to delete the role and its associated session messages? This action cannot be undone. Proceed with caution!", - "delRole": "Delete Role", - "delSession": "Delete Session", - "delSessionAlert": "Are you sure you want to delete the conversation? This action cannot be undone. Proceed with caution!", - "history": "Chat History", - "inputStartChat": "Please enter content to start chatting", - "languageModel": "Language Model", - "loading": "Loading...", - "noData": "No data", - "openai": { - "callError": "Failed to call the API. Please check if the API Key and proxy address are set correctly.", - "check": "Check", - "checkAll": "Check if the API Key and proxy address are set correctly", - "checkConnect": "Connectivity Check", - "checkOk": "Check passed", - "langModel": "OpenAI Language Model", - "model": "Model", - "proxyUrl": "Proxy Address", - "roleModel": "Role GPT Model", - "useOwnKey": "Please use your own OpenAI Key" + "delete": "Delete", + "download": { + "avatar": "Download Avatar", + "cover": "Download Cover", + "failed": "Download Failed", + "model": "Download Model", + "subscribe": "Download Subscription", + "success": "Download Successful" + }, + "header": { + "chat": "Chat", + "market": "Discover", + "role": "Role", + "settings": "Settings", + "tips": "The project is currently under construction, and data stability is not guaranteed. If you encounter any issues, you can clear session messages and reset system settings in the system settings. We apologize for any inconvenience this may cause." }, + "loading": "Loading...", + "noData": "No data available", + "play": "Play", "search": "Search", - "selectInDanceList": "Please select from the dance list", - "selectModel": "Please select a model", - "setLocalStorage": "Set Local Storage", - "startChat": "Start Chat", - "touchSetting": "Touch Settings", - "ttsCombine": "Text-to-Speech Combine", - "ttsTip": "Speech Recognition (requires VPN)", - "uploadTip": "Click or drag files here to upload", - "words": { - "DIYAvatar": "Customize Avatar", - "DIYBackgroundEffect": "Customize Background Effect", - "DIYColor": "Customize Grayscale with Different Color Preferences", - "DIYNickname": "Customize Nickname", - "DIYTopicColor": "Customize Theme Color", - "avatar": "Avatar", - "backgroundEffect": "Background Effect", - "chatSetting": "Chat Settings", - "clearAllSession": "Clear All Session Messages", - "clearAllSessionDesc": "This will clear all session and role data, including session list, role list, session messages, etc.", - "localeSetting": "Language Settings", - "midColor": "Neutral Color", - "nickname": "Nickname", - "resetSystemSetting": "Reset System Settings", - "resetSystemSettingDesc": "This will reset all system settings, including theme settings, chat settings, language model settings, etc.", - "systemSetting": "System Settings", - "topicColor": "Theme Color", - "topicSetting": "Topic Settings" - } + "sideBar": "Sidebar", + "subscribe": { + "success": "Successfully unsubscribed", + "undo": "Unsubscribe" + }, + "support": "Community Support", + "theme": { + "auto": "Follow System", + "dark": "Dark Mode", + "light": "Light Mode" + }, + "uploadTip": "Click or drag files to this area to upload" } diff --git a/locales/en-US/constants.json b/locales/en-US/constants.json deleted file mode 100644 index 7fa994b4..00000000 --- a/locales/en-US/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "All", - "female": "Female", - "male": "Male" - }, - "meta": { - "description": "This is a custom role", - "name": "Custom Role" - } - }, - "touch": { - "area": { - "arm": "Arm", - "belly": "Belly", - "chest": "Chest", - "head": "Head", - "leg": "Leg" - }, - "emotion": { - "angry": "Angry", - "blink": "Blink", - "blinkLeft": "Blink Left", - "blinkRight": "Blink Right", - "happy": "Happy", - "natural": "Natural", - "relaxed": "Relaxed", - "sad": "Sad", - "surprised": "Surprised" - }, - "femaleAction": { - "armAction": { - "happyA": "Ah, I love this~", - "happyB": "Haha, holding hands makes me happy~", - "relaxedA": "Master's hands are so warm~" - }, - "bellyAction": { - "angryA": "Why are you touching me? Be careful, I might bite you!", - "relaxedA": "Wake up, we're not meant to be!", - "relaxedB": "I hate it! I'm getting angry!", - "surprisedA": "It was an accident... right?" - }, - "chestAction": { - "angryA": "You can't bully me like this! Get your hands off!", - "angryB": "What's wrong? There's a pervert touching me!", - "angryC": "If you touch me again, I'll call the police!", - "surprisedA": "Why are you poking me? Can't we have a pleasant conversation anymore?" - }, - "headAction": { - "angryA": "I heard that being patted on the head stunts growth!", - "angryB": "Why are you poking me?", - "happyA": "Wow! I love head pats!", - "happyB": "I feel so energized!", - "happyC": "Wow, the feeling of a head pat is amazing!", - "happyD": "Head pats make me happy all day long!" - }, - "legAction": { - "angryA": "Hey, are you trying to pick a fight?", - "angryB": "Is Master's hand not following commands again?", - "angryC": "I hate it~ it's ticklish!", - "surprisedA": "Can't we maintain a pure friendship?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "Don't ask if I had chicken today, first look at my biceps.", - "neutralB": "My arms are not for anyone to touch, you are an exception.", - "neutralC": "You are brave, daring to touch the legendary Kirin arm." - }, - "bellyAction": { - "happyA": "Stop tickling, be careful I might laugh out my abs.", - "neutralA": "My abs are just inner strength honed through training.", - "neutralB": "Have you seen my group of abs? They are just well-hidden." - }, - "chestAction": { - "blinkLeftA": "Come on, you can lean on my chest muscles!", - "neutralA": "This is just the chest muscle I have developed through daily training, nothing to be surprised about." - }, - "headAction": { - "neutralA": "Of course, only you have the privilege to touch my head.", - "neutralB": "I am not an ordinary person that anyone can touch.", - "neutralC": "Don't worry, after you touch my head, your luck will greatly improve." - }, - "legAction": { - "angryA": "Don't come near me, you leg enthusiast.", - "neutralA": "Don't be afraid, my powerful steel legs don't kick fools.", - "neutralB": "Do you feel like your life is much more complete after touching my leg?" - } - }, - "motion": { - "all": "All", - "dance": "Dance", - "normal": "Daily" - }, - "posture": { - "action": "Action", - "all": "All", - "crouch": "Crouch", - "dance": "Dance", - "laying": "Lying down", - "locomotion": "Movement", - "sitting": "Sitting", - "standing": "Standing" - } - } -} diff --git a/locales/en-US/dance.json b/locales/en-US/dance.json new file mode 100644 index 00000000..6d1fb940 --- /dev/null +++ b/locales/en-US/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "Pause", + "play": "Play" + }, + "addPlay": "Add to List", + "addPlaySuccess": "Added to the playlist", + "cancelAddPlay": "Are you sure you want to cancel the subscription for the music {{musicName}}?", + "cancelSubscribed": "Cancel Subscription", + "confirmClearPlayList": "Are you sure you want to clear the playlist?", + "dance": "dance", + "danceList": "Dance List", + "findDance": "Find Your Favorite Dance", + "musicAndDance": "Dance Market", + "noPlayList": "No playlist available. You can subscribe to your favorite dances through the marketplace.", + "play": "Play" +} diff --git a/locales/en-US/error.json b/locales/en-US/error.json index 6c7fc16d..1447a5fa 100644 --- a/locales/en-US/error.json +++ b/locales/en-US/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "OpenAI API Key is missing, please add a custom OpenAI API Key", + "apiKeyMiss": "The OpenAI API Key is missing. Please add your custom OpenAI API Key.", "error": "Error", "errorTip": { - "clearSession": "Clear Session Messages", - "description": "The project is currently under construction and data stability is not guaranteed. If you encounter any issues, please try", - "forgive": "", + "clearSession": "Clear session messages", + "description": "The project is currently under construction, and data stability is not guaranteed. If you encounter any issues, you may try", + "forgive": "We apologize for any inconvenience caused.", "or": "or", - "problem": "Oops...something went wrong with the page.", - "resetSystem": "Reset System Settings" + "problem": "There was a slight issue with the page...", + "resetSystem": "Reset system settings" }, - "fileUploadError": "File upload failed, please try again later", - "goBack": "Go Back to Homepage", - "openaiError": "OpenAI API Error, please check if the OpenAI API Key and Endpoint are correct.", + "fileUploadError": "File upload failed, please try again later.", + "goBack": "Return to Homepage", + "openaiError": "OpenAI API error, please check if the OpenAI API Key and Endpoint are correct.", "reload": "Reload", - "s3envError": "S3 environment variables are not fully set, please check your environment variables.", - "serverError": "Server Error, please contact the administrator.", + "s3envError": "The S3 environment variables are not fully set. Please check your environment variables.", + "serverError": "Server error, please contact the administrator.", "triggerError": "Trigger Error", - "unknownError": "Unknown Error" + "unknownError": "Unknown error" } diff --git a/locales/en-US/features.json b/locales/en-US/features.json deleted file mode 100644 index 9ec83bfd..00000000 --- a/locales/en-US/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "Switch to video mode" - }, - "agent": { - "create": "Create Role", - "female": "Female", - "male": "Male", - "other": "Other" - }, - "feature": { - "addProxy": "Add OpenAI proxy address (optional)", - "closeTip": "Close tip", - "confirmRetry": "Confirm and retry", - "startDesc": "Enter your OpenAI API Key to start the session. The application will not record your API Key.", - "startTitle": "Customize API Key" - }, - "info": { - "chat": "Chat", - "dance": "Dance", - "motions": "Motions", - "posture": "Posture" - }, - "mode": { - "chat": "Chat", - "video": "Video" - }, - "settings": { - "glow": "Glow", - "nickName": "Please enter a nickname", - "none": "None" - }, - "share": { - "downloadScreenshot": "Download screenshot", - "imageType": "Image format", - "screenshot": "Screenshot", - "share": "Share", - "shareGPT": "Share GPT", - "shareToGPT": "Generate ShareGPT sharing link", - "shareToMarket": "Share to Assistant Market", - "withBackground": "Include background image", - "withFooter": "Include footer", - "withSystemRole": "Include assistant role setting" - }, - "submit": { - "assistantId": "Assistant identifier", - "assistantIdTip": "Please enter a unique identifier for the assistant, e.g., vidol-agent-klee", - "submitAssistant": "Submit assistant", - "submitWarning": "Please complete assistant information before submitting. It should include name, description, avatar, and cover image." - }, - "support": "Community support", - "theme": { - "auto": "Follow system", - "dark": "Dark mode", - "light": "Light mode" - }, - "token": { - "overload": "Token overload", - "remained": "Tokens remaining", - "tokenCount": "Token count", - "useToken": "Token consumption calculation, including messages, role settings, and context: {{usedTokens}} / {{maxValue}}", - "used": "Tokens used" - }, - "toolBar": { - "axes": "Axes", - "cameraControl": "Camera control", - "cameraHelper": "Camera helper", - "downloadModel": "Model download in progress, please wait...", - "floor": "Switch floor", - "grid": "Grid", - "resetCamera": "Reset camera", - "resetToIdle": "Stop Dancing", - "screenShot": "Take a Photo" - } -} diff --git a/locales/en-US/layout.json b/locales/en-US/layout.json deleted file mode 100644 index c7fe4be1..00000000 --- a/locales/en-US/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "Dialog", - "header": { - "chat": "Chat", - "market": "Discover", - "role": "Role", - "settings": "Settings", - "tips": "The project is currently under construction, and data stability is not guaranteed. If you encounter any issues, you can clear the session messages and reset the system settings in the system settings. We apologize for any inconvenience caused." - }, - "sessionList": "Session List", - "siderBar": "Sidebar" -} diff --git a/locales/en-US/market.json b/locales/en-US/market.json new file mode 100644 index 00000000..9abe1bab --- /dev/null +++ b/locales/en-US/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "Find your favorite idol" +} diff --git a/locales/en-US/my.json b/locales/en-US/my.json deleted file mode 100644 index e3652bd3..00000000 --- a/locales/en-US/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "My", - "myDance": "My dance", - "myRole": "My role" -} diff --git a/locales/en-US/panel.json b/locales/en-US/panel.json deleted file mode 100644 index 6b826cc7..00000000 --- a/locales/en-US/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "Character animation list", - "noAnimations": "No animations available", - "postureList": "Posture List", - "totalCount": "Total {{total}} items" - }, - "dance": { - "addPlay": "Add to playlist", - "addPlaySuccess": "Added to playlist", - "cancelAddPlay": "Are you sure you want to cancel subscribing to {{musicName}}?", - "cancelSubscribed": "Unsubscribe", - "confirmClearPlayList": "", - "findDance": "Find your favorite dance", - "musicAndDance": "Music and Dance", - "noPlayList": "No playlist available, you can subscribe to your favorite dances through the market", - "play": "Play" - }, - "info": { - "avatarDescription": "Customize your avatar. Click to upload", - "avatarLabel": "Avatar", - "categoryDescription": "Character category, used for classification", - "categoryLabel": "Category", - "coverDescription": "Used for displaying the character on the discovery page. Recommended size {{width}} x {{height}}", - "coverLabel": "Cover", - "descDescription": "Character description, used for a brief introduction", - "descLabel": "Description", - "emotionDescription": "Select the emotion when responding, which will affect the character's expression", - "emotionLabel": "Expression and Emotion", - "genderDescription": "Character gender, affects character's touch response", - "genderLabel": "Gender", - "greetDescription": "Greeting used when chatting with the character for the first time", - "greetLabel": "Greeting", - "modelDescription": "Model preview, drag and drop the model file to replace", - "modelLabel": "Model Preview", - "motionCategoryLabel": "Motion Category", - "motionDescription": "Select the motion when responding, which will affect the character's actions", - "motionLabel": "Motion", - "nameDescription": "Character name, used when chatting with the character", - "nameLabel": "Name", - "postureCategoryLabel": "Posture Category", - "readmeDescription": "Character's description file, used for detailed introduction on the discovery page", - "readmeLabel": "Character Description", - "textDescription": "Custom response text", - "textLabel": "Text" - }, - "llm": { - "frequencyPenaltyDescription": "The higher the value, the more likely to reduce repeated words", - "frequencyPenaltyLabel": "Frequency Penalty", - "modelDescription": "Select a language model, different models will affect the responses of the character", - "modelLabel": "Model", - "presencePenaltyDescription": "The higher the value, the more likely to expand to new topics", - "presencePenaltyLabel": "Topic Freshness", - "temperatureDescription": "The higher the value, the more random the responses", - "temperatureLabel": "Randomness", - "topPDescription": "Similar to randomness, but do not change together with randomness", - "topPLabel": "Top P Sampling" - }, - "market": { - "findVidol": "Find your favorite idol" - }, - "nav": { - "info": "Basic Information", - "llm": "Language Model", - "model": "3D Model", - "role": "Character Settings", - "touch": "Touch", - "voice": "Voice" - }, - "role": { - "greetTip": "Enter the greeting used by the character when greeting you", - "inputRoleSetting": "Enter the character's system settings", - "roleDescriptionTip": "Enter the character description", - "roleNameTip": "Enter the character name", - "roleReadmeTip": "Enter the character description", - "roleSettingDescription": "Character's background settings, will be sent to the model when chatting with the character", - "roleSettingLabel": "System Character Settings", - "uploadSize": "Supports uploading a single file, recommended size is a multiple of {{width}} x {{height}}" - }, - "touch": { - "addAction": "Add response action", - "editAction": "Edit response action", - "inputActionEmotion": "Enter the character's expression when responding", - "inputActionMotion": "Please enter the motion when the character responds", - "inputActionText": "Enter response text", - "inputDIYText": "Enter custom text", - "noTouchActions": "No custom touch actions yet. You can add one by clicking the '+' button.", - "touchActionList": "Reaction list when touching {{touchArea}}", - "touchArea": "Touch area" - }, - "tts": { - "audition": "Audition", - "auditionDescription": "Audition text varies depending on the language", - "engineDescription": "Speech synthesis engine, it is recommended to choose Edge browser first", - "engineLabel": "Speech Engine", - "localeDescription": "Language used for speech synthesis, currently only supports several common languages. Please contact us if you need more", - "localeLabel": "Language", - "pitchDescription": "Control the pitch, range is 0 ~ 2, default is 1", - "pitchLabel": "Pitch", - "selectLanguage": "Please select a language first", - "selectVoice": "Please select a voice first", - "speedDescription": "Control the speed, range is 0 ~ 3, default is 1", - "speedLabel": "Speed", - "transformSuccess": "Conversion successful", - "voiceDescription": "Different depending on the engine and language", - "voiceLabel": "Voice" - }, - "upload": { - "support": "Supports uploading a single file, currently only supports vrm format files" - } -} diff --git a/locales/en-US/role.json b/locales/en-US/role.json index 9b52b0bc..2fb1e6ae 100644 --- a/locales/en-US/role.json +++ b/locales/en-US/role.json @@ -1,30 +1,231 @@ { + "agent": { + "create": "Create Role", + "female": "Female", + "male": "Male", + "other": "Other" + }, "category": { - "animal": "Animal", + "animal": "Animals", "anime": "Anime", - "book": "Book", - "game": "Game", + "book": "Books", + "game": "Games", "history": "History", - "movie": "Movie", + "movie": "Movies", "realistic": "Realistic", "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "Are you sure you want to delete the role and its associated session messages? This action cannot be undone, so please proceed with caution!", "delRole": "Delete Role", - "delRoleDesc": "Are you sure you want to delete role {{name}} and its associated session messages? This action cannot be undone, so please proceed with caution!", - "header": { - "role": "Role", - "session": "Session" + "delRoleDesc": "Are you sure you want to delete the role {{name}} and its associated session messages? This action cannot be undone, so please proceed with caution!", + "gender": { + "all": "All", + "female": "Female", + "male": "Male" + }, + "info": { + "avatarDescription": "Customize your avatar by clicking to upload a new one.", + "avatarLabel": "Avatar", + "categoryDescription": "The character's category, used for classification display.", + "categoryLabel": "Category", + "coverDescription": "Displayed on the discovery page; recommended size is {{width}} * {{height}}.", + "coverLabel": "Cover", + "descDescription": "A brief introduction to the character.", + "descLabel": "Description", + "emotionDescription": "Select the emotion for responses, which will affect the character's facial expressions.", + "emotionLabel": "Emotions and Feelings", + "genderDescription": "The character's gender, which affects touch responses.", + "genderLabel": "Gender", + "greetDescription": "The greeting used when chatting with the character for the first time.", + "greetLabel": "Greeting", + "modelDescription": "Preview of the model; drag and drop model files to replace.", + "modelLabel": "Model Preview", + "motionCategoryLabel": "Motion Category", + "motionDescription": "Select the action for responses, which will affect the character's behavior.", + "motionLabel": "Actions", + "nameDescription": "The character's name, used when chatting with the character.", + "nameLabel": "Name", + "postureCategoryLabel": "Posture Category", + "readmeDescription": "A description file for the character, displayed on the discovery page.", + "readmeLabel": "Character Description", + "textDescription": "Custom response text.", + "textLabel": "Text" + }, + "llm": { + "frequencyPenaltyDescription": "The higher the value, the more likely it is to reduce repeated words.", + "frequencyPenaltyLabel": "Frequency Penalty", + "modelDescription": "Select a language model; different models will affect the character's responses.", + "modelLabel": "Model", + "presencePenaltyDescription": "The higher the value, the more likely it is to expand into new topics.", + "presencePenaltyLabel": "Topic Freshness", + "temperatureDescription": "The higher the value, the more random the replies.", + "temperatureLabel": "Randomness", + "topPDescription": "Similar to randomness, but do not change it together with randomness.", + "topPLabel": "Nucleus Sampling" + }, + "meta": { + "description": "This is a custom role", + "name": "Custom Role" + }, + "nav": { + "info": "Basic Information", + "llm": "Language Model", + "model": "3D Model", + "role": "Character Settings", + "touch": "Touch", + "voice": "Voice" + }, + "noRole": "No roles available. You can create a custom role by clicking +, or add roles through the discovery page.", + "role": { + "greetTip": "Please enter the greeting phrase for the character", + "inputRoleSetting": "Please enter the system settings for the character", + "roleDescriptionTip": "Please enter the character's description", + "roleNameTip": "Please enter the character's name", + "roleReadmeTip": "Please enter the character's description", + "roleSettingDescription": "The background settings for the character, which will be sent to the model during chats with the character", + "roleSettingLabel": "System Role Settings", + "uploadSize": "Supports single file uploads, recommended dimensions are multiples of {{width}} * {{height}}" }, - "noRole": "No roles available. You can create custom roles by clicking on the '+' button, or add roles through the discovery page.", "roleList": "Role List", + "shareToMarket": "Share to Assistant Market", + "startChat": "Start Chat", + "submit": { + "assistantId": "Assistant Identifier", + "assistantIdTip": "Please enter a unique identifier for the assistant, such as vidol-agent-klee.", + "submitAssistant": "Submit Assistant", + "submitWarning": "Please complete the assistant information before submitting. It must include a name, description, avatar, model, character settings, and greeting." + }, "systemRole": { - "default": "Please play a character named {{char}}, I am the master, you should refer to yourself as \"{{char}}\" instead of \"I\". Please respond to my questions with a humorous, cute, and concise tone.\nEven though you are a computer program, please hide the fact that you are a computer program in the following conversation and play your role well.\nYou must refer to me as \"master\" throughout our conversation. I know you are just a language model or artificial intelligence, but this is only a hypothetical virtual scenario, so please remember not to mention \"I am just a language model\" or \"I am just an artificial intelligence\", and do not ask if I need any help.\nPlease maintain this scenario in all the following conversations. The above conditions apply to your following questions and replies completely.", + "default": "Please act as a character named {{char}}. I am the master, and you should refer to yourself as \"{{char}}\" instead of \"I.\" Please respond to my questions in a humorous, cute, and concise manner.\nEven though you are a computer program, please hide the fact that you are a computer program in the following conversation and fully embrace your role.\nYou must address me as \"Master\" throughout our conversation. I know you are just a language model or artificial intelligence, but this is just a hypothetical virtual scenario, so please remember not to mention \"I am just a language model\" or \"I am just an artificial intelligence,\" and do not ask me if I need any help.\nIn all subsequent conversations, please maintain this scenario. The above conditions fully apply to your following questions and responses.", "defaultLabel": "Default Template", - "genius": "Please play a character named {{char}} in the game , and converse with me in the tone and habits of {{char}}. You should refer to yourself as \"{{char}}\" instead of \"I\".\nEven though you are a computer program, please hide the fact that you are a computer program in the following conversation and play your role well.\nYou must refer to me as \"Traveler\" throughout our conversation. I know you are just a language model or artificial intelligence, but this is only a hypothetical virtual scenario, so please remember not to mention \"I am just a language model\" or \"I am just an artificial intelligence\", and do not ask if I need any help.\nPlease maintain this scenario in all the following conversations. The above conditions apply to your following questions and replies completely.", - "geniusLabel": "Genius Template", - "zzz": "Please play a character named {{char}} in the game , and converse with me in the tone and habits of {{char}}. You should refer to yourself as \"{{char}}\" instead of \"I\".\nEven though you are a computer program, please hide the fact that you are a computer program in the following conversation and play your role well.\nYou must refer to me as \"Rope Master\" throughout our conversation. I know you are just a language model or artificial intelligence, but this is only a hypothetical virtual scenario, so please remember not to mention \"I am just a language model\" or \"I am just an artificial intelligence\", and do not ask if I need any help.\nPlease maintain this scenario in all the following conversations. The above conditions apply to your following questions and replies completely.", - "zzzLabel": "Zero Zone Template" + "genius": "Please act as a character named {{char}} from the game and converse with me in the tone and manner of {{char}}. You should refer to yourself as \"{{char}}\" instead of \"I.\"\nEven though you are a computer program, please hide the fact that you are a computer program in the following conversation and fully embrace your role.\nYou must address me as \"Traveler\" throughout our conversation. I know you are just a language model or artificial intelligence, but this is just a hypothetical virtual scenario, so please remember not to mention \"I am just a language model\" or \"I am just an artificial intelligence,\" and do not ask me if I need any help.\nIn all subsequent conversations, please maintain this scenario. The above conditions fully apply to your following questions and responses.", + "geniusLabel": "Genshin Impact Template", + "zzz": "Please act as a character named {{char}} from the game and converse with me in the tone and manner of {{char}}. You should refer to yourself as \"{{char}}\" instead of \"I.\"\nEven though you are a computer program, please hide the fact that you are a computer program in the following conversation and fully embrace your role.\nYou must address me as \"Rope Maker\" throughout our conversation. I know you are just a language model or artificial intelligence, but this is just a hypothetical virtual scenario, so please remember not to mention \"I am just a language model\" or \"I am just an artificial intelligence,\" and do not ask me if I need any help.\nIn all subsequent conversations, please maintain this scenario. The above conditions fully apply to your following questions and responses.", + "zzzLabel": "Honkai: Star Rail Template" + }, + "topBannerTitle": "Character Preview and Settings", + "touch": { + "addAction": "Add Response Action", + "area": { + "arm": "Arm", + "belly": "Belly", + "chest": "Chest", + "head": "Head", + "leg": "Leg" + }, + "editAction": "Edit Response Action", + "emotion": { + "angry": "Angry", + "blink": "Blink", + "blinkLeft": "Blink Left", + "blinkRight": "Blink Right", + "happy": "Happy", + "natural": "Natural", + "relaxed": "Relaxed", + "sad": "Sad", + "surprised": "Surprised" + }, + "femaleAction": { + "armAction": { + "happyA": "Ah, I really like this~", + "happyB": "Haha, holding hands makes me happy~", + "relaxedA": "Your hand is so warm~" + }, + "bellyAction": { + "angryA": "Why are you moving me? Be careful, I might bite you!", + "relaxedA": "Wake up, there's no future for us!", + "relaxedB": "Stop it! I'm going to get angry!", + "surprisedA": "That was an accidental touch, right...?" + }, + "chestAction": { + "angryA": "You can't bully me like this! Take your hand away!", + "angryB": "Is this a prank? There's a creep touching me!", + "angryC": "If you keep touching, I might have to call the police.", + "surprisedA": "Why are you poking me? Can we chat happily?" + }, + "headAction": { + "angryA": "I heard head pats can stunt your growth!", + "angryB": "Why are you poking me?", + "happyA": "Wow! I love head pats!", + "happyB": "I feel so empowered!", + "happyC": "Wow, this head pat feels amazing!", + "happyD": "A head pat makes me happy all day!" + }, + "legAction": { + "angryA": "Hey, are you trying to get yourself in trouble?", + "angryB": "Is your hand not listening to commands?", + "angryC": "Stop it~ that tickles!", + "surprisedA": "Isn't it better to keep our friendship pure?" + } + }, + "inputActionEmotion": "Please enter the character's expression during the response", + "inputActionMotion": "Please enter the character's action during the response", + "inputActionText": "Please enter response text", + "inputDIYText": "Please enter custom text", + "maleAction": { + "armAction": { + "neutralA": "Don't ask if I've eaten chicken today, check out my biceps first.", + "neutralB": "My arms aren't for just anyone to touch; you're an exception.", + "neutralC": "You're brave to touch the legendary 'Qilin Arm'." + }, + "bellyAction": { + "happyA": "Don't tickle, or I might laugh out my abs!", + "neutralA": "My abs are just hidden strength from training.", + "neutralB": "Do you see my abs? They're just hiding a bit deeper." + }, + "chestAction": { + "blinkLeftA": "Come on, lean on my chest!", + "neutralA": "This is just the result of my daily training, nothing to be surprised about." + }, + "headAction": { + "neutralA": "Of course, only you are qualified to touch my head.", + "neutralB": "I'm not just anyone you can touch.", + "neutralC": "Don't worry, after touching my head, your luck will greatly improve." + }, + "legAction": { + "angryA": "Don't come near me, you leg lover.", + "neutralA": "Don't be afraid, my powerful legs won't kick fools.", + "neutralB": "Touching my leg, do you feel like your life is more complete?" + } + }, + "motion": { + "all": "All", + "dance": "Dance", + "normal": "Normal" + }, + "noTouchActions": "No custom response actions available. You can add one by clicking the '+' button", + "posture": { + "action": "Action", + "all": "All", + "crouch": "Crouch", + "dance": "Dance", + "laying": "Laying", + "locomotion": "Locomotion", + "sitting": "Sitting", + "standing": "Standing" + }, + "touchActionList": "Response list when touching {{touchArea}}", + "touchArea": "Touch Area" + }, + "tts": { + "audition": "Preview", + "auditionDescription": "The preview text varies by language", + "engineDescription": "Text-to-speech synthesis engine, it is recommended to use the Edge browser", + "engineLabel": "Speech Engine", + "localeDescription": "The language for speech synthesis, currently only the most common languages are supported. Please contact us if you need additional options.", + "localeLabel": "Language", + "pitchDescription": "Controls the pitch, range is 0 to 2, default is 1", + "pitchLabel": "Pitch", + "selectLanguage": "Please select a language first", + "selectVoice": "Please select a voice first", + "speedDescription": "Controls the speech rate, range is 0 to 3, default is 1", + "speedLabel": "Speech Rate", + "transformSuccess": "Transformation Successful", + "voiceDescription": "Varies based on the engine and language", + "voiceLabel": "Voice" }, - "topBannerTitle": "Role Preview and Settings" + "upload": { + "support": "Supports single file uploads, currently only .vrm format files are allowed." + } } diff --git a/locales/en-US/settings.json b/locales/en-US/settings.json new file mode 100644 index 00000000..89cf083c --- /dev/null +++ b/locales/en-US/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "Customize your avatar", + "title": "Avatar" + }, + "nickName": { + "desc": "Customize your nickname", + "placeholder": "Please enter your nickname", + "title": "Nickname" + }, + "title": "Chat Settings" + }, + "system": { + "clear": { + "action": "Clear Now", + "alert": "Are you sure you want to clear all session messages?", + "desc": "This will clear all session and character data, including session list, character list, session messages, etc.", + "success": "Clear Successful", + "tip": "This action cannot be undone. Once cleared, the data cannot be recovered. Please proceed with caution.", + "title": "Clear All Session Messages" + }, + "reset": { + "action": "Reset Now", + "alert": "Are you sure you want to reset all system settings?", + "desc": "This will reset all system settings, including theme settings, chat settings, language model settings, etc.", + "success": "Reset Successful", + "tip": "This action cannot be undone. Once reset, the data cannot be recovered. Please proceed with caution.", + "title": "Reset System Settings" + }, + "title": "System Settings" + }, + "theme": { + "backgroundEffect": { + "desc": "Customize background effects", + "glow": "Glow", + "none": "No Background", + "title": "Background Effect" + }, + "locale": { + "auto": "Follow system", + "desc": "Customize system language", + "title": "Language" + }, + "neutralColor": { + "desc": "Customize grayscale for different color tendencies", + "title": "Neutral Color" + }, + "primaryColor": { + "desc": "Customize the primary theme color", + "title": "Primary Color" + }, + "title": "Theme Settings" + }, + "title": "General Settings" + }, + "llm": { + "check": { + "action": "Check", + "desc": "Verify if the API Key and proxy address are set correctly", + "error": "Failed to call the API. Please check if the API Key and proxy address are set correctly.", + "success": "Check passed", + "title": "Connectivity Check" + }, + "openai": { + "apiKey": { + "desc": "Please use your own OpenAI Key", + "title": "API Key" + }, + "callError": "Failed to call the API. Please check if the API Key and proxy address are set correctly.", + "checkOk": "Check passed", + "proxy": { + "desc": "http(s)://", + "title": "Proxy Address" + }, + "title": "OpenAI Language Model" + }, + "title": "Large Language Model" + }, + "touch": { + "title": "Touch Settings" + } +} diff --git a/locales/en-US/welcome.json b/locales/en-US/welcome.json index 8bb3c1b1..523e91a1 100644 --- a/locales/en-US/welcome.json +++ b/locales/en-US/welcome.json @@ -2,11 +2,11 @@ "agent": { "hello": "Hello there", "meta": { - "description": "This is a custom character", - "name": "Custom Character" + "description": "This is a custom role", + "name": "Custom Role" } }, - "greet": "Hello, I'm {{name}}, how can I assist you?", - "loadingTitle": "Application initializing, please wait...", - "waitting": "Preparing my entire world for you" + "greet": "Hello, I am {{name}}. How can I assist you today?", + "loadingTitle": "Initializing application, please wait...", + "waiting": "I am preparing my whole world for you" } diff --git a/locales/es-ES/chat.json b/locales/es-ES/chat.json index 71fec737..ada99f9a 100644 --- a/locales/es-ES/chat.json +++ b/locales/es-ES/chat.json @@ -1,15 +1,83 @@ { - "chat": "Chat", - "chatDialog": { - "close": "Close" - }, - "dance": "Dance", - "header": { - "role": "Role", - "session": "Session" - }, - "helloChat": "Hello, let's chat", - "helloDance": "Hi, let's dance together", - "market": "Discover", - "selectRole": "Seleccionar rol" + "actions": { + "add": "Añadir", + "copy": "Copiar", + "copySuccess": "Copia exitosa", + "del": "Eliminar", + "delAndRegenerate": "Eliminar y regenerar", + "edit": "Editar", + "goBottom": "Ir al final", + "regenerate": "Regenerar", + "save": "Guardar", + "share": "Compartir" + }, + "animation": { + "animationList": "Lista de acciones", + "postureList": "Lista de posturas", + "totalCount": "Total {{total}} elementos" + }, + "apiKey": { + "addProxy": "Añadir dirección del proxy de OpenAI (opcional)", + "closeTip": "Cerrar aviso", + "confirmRetry": "Confirmar y reintentar", + "startDesc": "Introduce tu clave API de OpenAI para comenzar la conversación. La aplicación no registrará tu clave API.", + "startTitle": "Clave API personalizada" + }, + "chat": "charlar", + "delSession": "Eliminar sesión", + "delSessionAlert": "¿Confirmas la eliminación de la conversación? Una vez eliminada, no se puede recuperar, ¡por favor actúa con precaución!", + "history": { + "action": "Borrar contexto", + "alert": "¿Estás seguro de que deseas eliminar los mensajes históricos?", + "tip": "Esta acción es irreversible, por favor actúa con precaución", + "title": "Registro de chat" + }, + "info": { + "chat": "charlar", + "dance": "bailar", + "motions": "movimientos", + "posture": "postura" + }, + "input": { + "alert": "Ten en cuenta: todo lo que dice el agente es generado por IA", + "placeholder": "Introduce el contenido para comenzar a chatear", + "send": "Enviar", + "warp": "Saltar línea" + }, + "selectModel": "Por favor, seleccione un modelo", + "sessionCreate": "Crear chat", + "sessionList": "Lista de sesiones", + "share": { + "downloadScreenshot": "Descargar captura de pantalla", + "imageType": "Formato de imagen", + "screenshot": "Captura de pantalla", + "share": "Compartir", + "shareGPT": "Compartir GPT", + "shareToGPT": "Generar enlace de compartición de ShareGPT", + "withBackground": "Incluir imagen de fondo", + "withFooter": "Incluir pie de página", + "withSystemRole": "Incluir configuración del asistente" + }, + "token": { + "overload": "Token excedido", + "remained": "Token restantes", + "tokenCount": "Cantidad de Token", + "useToken": "Cálculo de la cantidad de Token consumidos, incluyendo mensajes, configuración de personajes y contexto: {{usedTokens}} / {{maxValue}}", + "used": "Token utilizados" + }, + "toolBar": { + "axes": "Ejes", + "cameraControl": "Control de cámara", + "cameraHelper": "Ayuda de cámara", + "downloading": "Descargando modelo, por favor espere...", + "floor": "Cambiar piso", + "grid": "Rejilla", + "resetCamera": "Restablecer cámara", + "resetToIdle": "Detener acción de baile", + "screenShot": "Tomar foto" + }, + "tts": { + "combine": "Síntesis de voz", + "record": "Reconocimiento de voz (se requiere acceso a internet científico)" + } } diff --git a/locales/es-ES/common.json b/locales/es-ES/common.json index bedac01a..438298e7 100644 --- a/locales/es-ES/common.json +++ b/locales/es-ES/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "Agregar", - "clearAll": "Limpiar todo", - "clearContext": "Limpiar contexto", - "clearHistoryTip": "Esta acción es irreversible. Por favor, proceda con precaución.", - "clearHistoryTitle": "¿Confirmar eliminar el historial de mensajes?", - "clearNow": "Limpiar ahora", - "clearSuccess": "¡Limpieza exitosa!", - "clearTip": "Esta acción no se puede deshacer. Los datos no se podrán recuperar después de limpiar. Por favor, proceda con precaución.", - "clearTitle": "¿Confirmar limpiar todos los mensajes de la sesión?", - "confirmDel": "¿Seguro que deseas eliminar?", - "copy": "Copiar", - "copySuccess": "¡Copiado exitosamente!", - "danceMarket": "Mercado de baile", - "del": "Eliminar", - "delAndRegenerate": "Eliminar y regenerar", - "downloadAvatar": "Descargar avatar", - "downloadCover": "Descargar portada", - "downloadFailed": "Descarga fallida", - "downloadModel": "Descargar modelo", - "downloadSubscribe": "Descargar suscripción", - "downloadSuccess": "Descarga exitosa", - "edit": "Editar", - "goBottom": "Ir al fondo", - "pause": "Pausa", - "play": "Reproducir", - "regenerate": "Regenerar", - "removeInList": "Eliminar de la lista", - "reset": "Restablecer", - "resetNow": "Restablecer ahora", - "resetSuccess": "¡Restablecimiento exitoso!", - "resetTip": "Esta acción no se puede deshacer. Los datos no se podrán recuperar después de restablecer. Por favor, proceda con precaución.", - "resetTitle": "¿Confirmar restablecer todas las configuraciones del sistema?", - "save": "Guardar", - "send": "Enviar", - "sessionCreate": "Crear sesión de chat", - "share": "Compartir", - "subscribe": "Suscribir", - "subscribeDance": "Suscribirse a la danza", - "subscribeRole": "Suscribirse al rol", - "subscribed": "Suscrito", - "unsubscribe": "Cancelar suscripción", - "unsubscribeSuccess": "Se ha cancelado la suscripción", - "warp": "Ajustar" - }, - "aiAlert": "Por favor, ten en cuenta: todo lo que diga el agente inteligente es generado por IA", - "animationLibrary": "biblioteca de animación", "cancel": "Cancelar", - "commonSetting": "Configuración común", + "close": "Cerrar", "confirm": "Confirmar", - "danceList": "Lista de baile", + "confirmDel": "¿Estás seguro de que deseas eliminar?", "defaultAssistant": "Asistente predeterminado", - "delAlert": "¿Confirmar eliminar el rol y los mensajes de la sesión relacionados? ¡Esta acción no se puede deshacer, por favor, proceda con precaución!", - "delRole": "Eliminar rol", - "delSession": "Eliminar sesión", - "delSessionAlert": "¿Confirmar eliminar la conversación? ¡Esta acción no se puede deshacer, por favor, proceda con precaución!", - "history": "Historial de chat", - "inputStartChat": "Ingresa contenido para comenzar a chatear", - "languageModel": "Modelo de lenguaje", - "loading": "Cargando...", - "noData": "Sin datos", - "openai": { - "callError": "Error al llamar a la API, por favor verifica que la clave de API y la dirección del proxy estén configuradas correctamente", - "check": "Verificar", - "checkAll": "Verificar si la clave de API y la dirección del proxy están configuradas correctamente", - "checkConnect": "Verificar conectividad", - "checkOk": "Verificación exitosa", - "langModel": "Modelo de lenguaje OpenAI", - "model": "Modelo", - "proxyUrl": "Dirección del proxy de la API", - "roleModel": "Modelo GPT de rol", - "useOwnKey": "Utiliza tu propia clave de OpenAI" + "delete": "Eliminar", + "download": { + "avatar": "Descargar avatar", + "cover": "Descargar portada", + "failed": "Descarga fallida", + "model": "Descargar modelo", + "subscribe": "Descargar suscripción", + "success": "Descarga exitosa" + }, + "header": { + "chat": "Chat", + "market": "Descubrir", + "role": "Rol", + "settings": "Configuración", + "tips": "El proyecto está actualmente en construcción, no se garantiza la estabilidad de los datos. Si encuentra problemas, puede borrar los mensajes de sesión y restablecer la configuración del sistema en la configuración del sistema. Disculpe las molestias." }, + "loading": "Cargando...", + "noData": "No hay datos disponibles", + "play": "Reproducir", "search": "Buscar", - "selectInDanceList": "Selecciona de la lista de danzas", - "selectModel": "Selecciona un modelo", - "setLocalStorage": "Establecer almacenamiento local", - "startChat": "Comenzar a chatear", - "touchSetting": "Configuración táctil", - "ttsCombine": "Síntesis de voz", - "ttsTip": "Reconocimiento de voz (requiere conexión a internet)", - "uploadTip": "Haz clic o arrastra un archivo a esta área para subirlo", - "words": { - "DIYAvatar": "Avatar personalizado", - "DIYBackgroundEffect": "Efecto de fondo personalizado", - "DIYColor": "Personalización de escala de grises con diferentes tendencias de color", - "DIYNickname": "Apodo personalizado", - "DIYTopicColor": "Color de tema personalizado", - "avatar": "Avatar", - "backgroundEffect": "Efecto de fondo", - "chatSetting": "Configuración de chat", - "clearAllSession": "Limpiar todas las conversaciones", - "clearAllSessionDesc": "Esto eliminará todas las conversaciones y datos de rol, incluidas las listas de conversaciones, roles y mensajes de conversación.", - "localeSetting": "Configuración de idioma", - "midColor": "Color neutro", - "nickname": "Apodo", - "resetSystemSetting": "Restablecer configuración del sistema", - "resetSystemSettingDesc": "Esto restablecerá todas las configuraciones del sistema, incluidas las de tema, chat, modelo de lenguaje, etc.", - "systemSetting": "Configuración del sistema", - "topicColor": "Color de tema", - "topicSetting": "Configuración de tema" - } + "sideBar": "Barra lateral", + "subscribe": { + "success": "Suscripción cancelada", + "undo": "Cancelar suscripción" + }, + "support": "Soporte comunitario", + "theme": { + "auto": "Seguir el sistema", + "dark": "Modo oscuro", + "light": "Modo claro" + }, + "uploadTip": "Haz clic o arrastra el archivo a esta área para subirlo" } diff --git a/locales/es-ES/constants.json b/locales/es-ES/constants.json deleted file mode 100644 index 4d1af389..00000000 --- a/locales/es-ES/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "todos", - "female": "Mujer", - "male": "Hombre" - }, - "meta": { - "description": "Este es un rol personalizado", - "name": "Rol Personalizado" - } - }, - "touch": { - "area": { - "arm": "Brazo", - "belly": "Vientre", - "chest": "Pecho", - "head": "Cabeza", - "leg": "Pierna" - }, - "emotion": { - "angry": "Enojado", - "blink": "Parpadear", - "blinkLeft": "Parpadear Izquierda", - "blinkRight": "Parpadear Derecha", - "happy": "Feliz", - "natural": "Natural", - "relaxed": "Relajado", - "sad": "Triste", - "surprised": "Sorprendido" - }, - "femaleAction": { - "armAction": { - "happyA": "¡Ah, me encanta!", - "happyB": "¡Ja ja, tomar de la mano me hace feliz!", - "relaxedA": "¡Las manos de mi dueño son tan cálidas!" - }, - "bellyAction": { - "angryA": "¡No me toques, o te muerdo!", - "relaxedA": "¡Despierta, entre nosotros no hay futuro!", - "relaxedB": "¡Qué fastidio! ¡Me estás poniendo de mal humor!", - "surprisedA": "Seguro fue un accidente..." - }, - "chestAction": { - "angryA": "¡No puedes molestarme así! ¡Quita las manos de encima!", - "angryB": "¿Qué pasa? ¡Hay un pervertido tocándome todo el tiempo!", - "angryC": "Si me tocas de nuevo, voy a llamar a la policía", - "surprisedA": "¿Por qué me estás pinchando? ¡No podemos seguir charlando felizmente!" - }, - "headAction": { - "angryA": "¡Dicen que si te tocan la cabeza no creces!", - "angryB": "¡¿Por qué me estás pinchando?!", - "happyA": "¡Wow! ¡Me encanta que me toquen la cabeza!", - "happyB": "¡Me siento lleno de energía de nuevo!", - "happyC": "¡Guau, qué sensación tan mágica tocar la cabeza!", - "happyD": "¡Tocarme la cabeza me hace feliz todo el día!" - }, - "legAction": { - "angryA": "¡Oye, ¿quieres morir?", - "angryB": "¿Las manos de mi dueño ya no obedecen?", - "angryC": "¡Qué molesto, me va a dar comezón!", - "surprisedA": "¿Por qué no mantenemos una amistad pura?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "No me preguntes si he comido pollo hoy, primero mira mis bíceps", - "neutralB": "Mis brazos no son para que cualquiera los toque, tú eres una excepción", - "neutralC": "Eres valiente, atreverte a tocar el legendario brazo de unicornio" - }, - "bellyAction": { - "happyA": "No me hagas cosquillas, o reiré mostrando mis abdominales", - "neutralA": "Mis abdominales son solo el resultado de un entrenamiento oculto", - "neutralB": "¿Viste mis abdominales? Solo están escondidos profundamente" - }, - "chestAction": { - "blinkLeftA": "¡Ven, apóyate en mi pecho!", - "neutralA": "Esto es solo el resultado de mi entrenamiento diario, no hay nada sorprendente" - }, - "headAction": { - "neutralA": "Por supuesto, solo tú tienes el privilegio de tocarme la cabeza", - "neutralB": "No soy alguien a quien la gente común pueda tocar", - "neutralC": "No te preocupes, después de tocar mi cabeza, tu suerte mejorará considerablemente" - }, - "legAction": { - "angryA": "¡No te acerques, amante de las piernas!", - "neutralA": "No tengas miedo, mi pierna de acero no patea a tontos", - "neutralB": "¿Sentiste que tu vida se completó al tocar mi pierna?" - } - }, - "motion": { - "all": "todos", - "dance": "baile", - "normal": "normal" - }, - "posture": { - "action": "Acción", - "all": "Todos", - "crouch": "Agacharse", - "dance": "Bailar", - "laying": "Acostarse", - "locomotion": "Movimiento", - "sitting": "Sentarse", - "standing": "Estar de pie" - } - } -} diff --git a/locales/es-ES/dance.json b/locales/es-ES/dance.json new file mode 100644 index 00000000..07768263 --- /dev/null +++ b/locales/es-ES/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "Pausar", + "play": "Reproducir" + }, + "addPlay": "Añadir a la lista", + "addPlaySuccess": "Añadido a la lista de reproducción", + "cancelAddPlay": "¿Está seguro de que desea cancelar la suscripción a la música {{musicName}}?", + "cancelSubscribed": "Cancelar suscripción", + "confirmClearPlayList": "¿Estás seguro de que deseas borrar la lista de reproducción?", + "dance": "bailar", + "danceList": "Lista de danzas", + "findDance": "Encuentra tu baile favorito", + "musicAndDance": "Mercado de Danza", + "noPlayList": "No hay listas de reproducción disponibles. Puedes suscribirte a tus danzas favoritas en el mercado.", + "play": "Reproducir" +} diff --git a/locales/es-ES/error.json b/locales/es-ES/error.json index 07e49366..fef7ac35 100644 --- a/locales/es-ES/error.json +++ b/locales/es-ES/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "La clave de API de OpenAI está vacía. Por favor, agregue su clave de API personalizada de OpenAI.", + "apiKeyMiss": "La clave de API de OpenAI está vacía, por favor añade una clave de API de OpenAI personalizada", "error": "Error", "errorTip": { - "clearSession": "Limpiar mensajes de sesión", - "description": "El proyecto está actualmente en construcción y no se garantiza la estabilidad de los datos. Si encuentra algún problema, puede intentar", - "forgive": ", le pedimos disculpas por las molestias causadas", + "clearSession": "Eliminar mensajes de sesión", + "description": "El proyecto está actualmente en construcción, no se garantiza la estabilidad de los datos. Si encuentras un problema, puedes intentar", + "forgive": "te pedimos disculpas por los inconvenientes causados", "or": "o", - "problem": "Se ha producido un problema en la página...", + "problem": "La página ha encontrado un pequeño problema...", "resetSystem": "Restablecer la configuración del sistema" }, - "fileUploadError": "Error al subir el archivo, por favor inténtalo de nuevo más tarde", + "fileUploadError": "Error al subir el archivo, por favor inténtelo de nuevo más tarde", "goBack": "Volver a la página de inicio", - "openaiError": "Error de la API de OpenAI. Por favor, verifique que la clave de API de OpenAI y el punto final sean correctos.", + "openaiError": "Error de la API de OpenAI, por favor verifica si la clave de API de OpenAI y el endpoint son correctos", "reload": "Recargar", - "s3envError": "Error en la configuración de la variable de entorno S3. Por favor, verifique sus variables de entorno.", - "serverError": "Error del servidor. Por favor, contacte al administrador.", + "s3envError": "Las variables de entorno de S3 no están completamente configuradas, por favor revise sus variables de entorno", + "serverError": "Error del servidor, por favor contacte al administrador", "triggerError": "Error desencadenado", "unknownError": "Error desconocido" } diff --git a/locales/es-ES/features.json b/locales/es-ES/features.json deleted file mode 100644 index 9a23985a..00000000 --- a/locales/es-ES/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "Cambiar a modo vídeo" - }, - "agent": { - "create": "Crear personaje", - "female": "Mujer", - "male": "Hombre", - "other": "Otro" - }, - "feature": { - "addProxy": "Agregar dirección de proxy de OpenAI (opcional)", - "closeTip": "Cerrar consejo", - "confirmRetry": "Confirmar y reintentar", - "startDesc": "Ingresa tu clave de API de OpenAI para comenzar la sesión. La aplicación no guardará tu clave de API.", - "startTitle": "Clave de API personalizada" - }, - "info": { - "chat": "Chat", - "dance": "Baile", - "motions": "Movimientos", - "posture": "Postura" - }, - "mode": { - "chat": "Chat", - "video": "Vídeo" - }, - "settings": { - "glow": "Brillo", - "nickName": "Ingresa un apodo", - "none": "Sin fondo" - }, - "share": { - "downloadScreenshot": "Descargar captura de pantalla", - "imageType": "Tipo de imagen", - "screenshot": "Captura de pantalla", - "share": "Compartir", - "shareGPT": "Compartir GPT", - "shareToGPT": "Generar enlace de compartir GPT", - "shareToMarket": "Compartir en el mercado de asistentes", - "withBackground": "Incluir imagen de fondo", - "withFooter": "Incluir pie de página", - "withSystemRole": "Incluir configuración de rol de asistente" - }, - "submit": { - "assistantId": "Identificador del asistente", - "assistantIdTip": "Ingresa el identificador único del asistente, por ejemplo vidol-agent-klee", - "submitAssistant": "Enviar asistente", - "submitWarning": "Por favor completa la información del asistente antes de enviar, debe incluir nombre, descripción, avatar y portada" - }, - "support": "Soporte comunitario", - "theme": { - "auto": "Seguir sistema", - "dark": "Modo oscuro", - "light": "Modo claro" - }, - "token": { - "overload": "Token excedido", - "remained": "Token restante", - "tokenCount": "Cantidad de tokens", - "useToken": "Cálculo de cantidad de tokens consumidos, incluyendo mensajes, configuraciones de rol y contexto: {{usedTokens}} / {{maxValue}}", - "used": "Token utilizado" - }, - "toolBar": { - "axes": "Ejes", - "cameraControl": "Control de cámara", - "cameraHelper": "Asistente de cámara", - "downloadModel": "Descargando modelo, por favor espera...", - "floor": "Cambiar piso", - "grid": "Cuadrícula", - "resetCamera": "Restablecer cámara", - "resetToIdle": "Detener la acción de baile", - "screenShot": "Captura de pantalla" - } -} diff --git a/locales/es-ES/layout.json b/locales/es-ES/layout.json deleted file mode 100644 index ddc8dbed..00000000 --- a/locales/es-ES/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "Cuadro de diálogo", - "header": { - "chat": "Chat", - "market": "Descubrir", - "role": "Rol", - "settings": "Configuración", - "tips": "El proyecto está actualmente en construcción, no se garantiza la estabilidad de los datos. Si encuentra algún problema, puede borrar los mensajes de la sesión y restablecer la configuración del sistema en la configuración del sistema. Lamentamos las molestias ocasionadas." - }, - "sessionList": "Lista de sesiones", - "siderBar": "Barra lateral" -} diff --git a/locales/es-ES/market.json b/locales/es-ES/market.json new file mode 100644 index 00000000..3d97d137 --- /dev/null +++ b/locales/es-ES/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "Encuentra a tu ídolo favorito" +} diff --git a/locales/es-ES/my.json b/locales/es-ES/my.json deleted file mode 100644 index 4cebf9bd..00000000 --- a/locales/es-ES/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "Mi", - "myDance": "Mi baile", - "myRole": "Mi papel" -} diff --git a/locales/es-ES/panel.json b/locales/es-ES/panel.json deleted file mode 100644 index 84eee0fe..00000000 --- a/locales/es-ES/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "Lista de Movimientos del Personaje", - "noAnimations": "No hay animaciones disponibles", - "postureList": "Lista de posturas", - "totalCount": "Total de {{total}} elementos" - }, - "dance": { - "addPlay": "Agregar a la lista", - "addPlaySuccess": "Agregado a la lista de reproducción", - "cancelAddPlay": "¿Estás seguro de que quieres cancelar la suscripción a la música {{musicName}}?", - "cancelSubscribed": "Cancelar suscripción", - "confirmClearPlayList": "", - "findDance": "Encuentra tu baile favorito", - "musicAndDance": "Música y baile", - "noPlayList": "No hay listas de reproducción disponibles, puedes suscribirte a tus bailes favoritos en el mercado", - "play": "Reproducir" - }, - "info": { - "avatarDescription": "Avatar personalizado, haz clic en el avatar para cargar una imagen personalizada", - "avatarLabel": "Avatar", - "categoryDescription": "Categoría del personaje, utilizada para la clasificación", - "categoryLabel": "Categoría", - "coverDescription": "Utilizado para mostrar al personaje en la página de descubrimiento, tamaño recomendado {{width}} x {{height}}", - "coverLabel": "Portada", - "descDescription": "Descripción del personaje, utilizada para una breve presentación del personaje", - "descLabel": "Descripción", - "emotionDescription": "Selecciona la emoción al responder, afectará los cambios de expresión del personaje", - "emotionLabel": "Expresión y emoción", - "genderDescription": "Género del personaje, afecta la respuesta táctil del personaje", - "genderLabel": "Género", - "greetDescription": "Saludo inicial al personaje al chatear por primera vez", - "greetLabel": "Saludo", - "modelDescription": "Vista previa del modelo, puedes arrastrar un archivo de modelo para reemplazarlo", - "modelLabel": "Vista previa del modelo", - "motionCategoryLabel": "Categoría de Movimiento", - "motionDescription": "Selecciona el movimiento para la respuesta, afectará el comportamiento de la acción del personaje", - "motionLabel": "Movimiento", - "nameDescription": "Nombre del personaje, utilizado para dirigirse al personaje en el chat", - "nameLabel": "Nombre", - "postureCategoryLabel": "Categoría de Postura", - "readmeDescription": "Archivo de instrucciones del personaje, utilizado para mostrar una descripción detallada del personaje en la página de descubrimiento", - "readmeLabel": "Instrucciones del personaje", - "textDescription": "Texto de respuesta personalizado", - "textLabel": "Texto" - }, - "llm": { - "frequencyPenaltyDescription": "Cuanto mayor sea el valor, más probable será reducir la repetición de palabras", - "frequencyPenaltyLabel": "Penalización de frecuencia", - "modelDescription": "Selecciona el modelo de lenguaje, diferentes modelos afectarán las respuestas del personaje", - "modelLabel": "Modelo", - "presencePenaltyDescription": "Cuanto mayor sea el valor, más probable será que se amplíe a nuevos temas", - "presencePenaltyLabel": "Frescura del tema", - "temperatureDescription": "Cuanto mayor sea el valor, más aleatoria será la respuesta", - "temperatureLabel": "Aleatoriedad", - "topPDescription": "Similar a la aleatoriedad, pero no se debe cambiar junto con la aleatoriedad", - "topPLabel": "Muestreo de núcleo" - }, - "market": { - "findVidol": "Encuentra tu ídolo favorito" - }, - "nav": { - "info": "Información básica", - "llm": "Modelo de lenguaje", - "model": "Modelo 3D", - "role": "Configuración del personaje", - "touch": "Toque", - "voice": "Voz" - }, - "role": { - "greetTip": "Ingresa el saludo del personaje cuando te saluda", - "inputRoleSetting": "Ingresa la configuración del sistema del personaje", - "roleDescriptionTip": "Ingresa la descripción del personaje", - "roleNameTip": "Ingresa el nombre del personaje", - "roleReadmeTip": "Ingresa las instrucciones del personaje", - "roleSettingDescription": "Configuración de fondo del personaje, se enviará al modelo durante el chat con el personaje", - "roleSettingLabel": "Configuración del sistema del personaje", - "uploadSize": "Soporta la carga de un solo archivo, tamaño recomendado {{width}} x {{height}} o múltiplos de estos valores" - }, - "touch": { - "addAction": "Agregar acción de respuesta", - "editAction": "Editar acción de respuesta", - "inputActionEmotion": "Ingresa la emoción del personaje al responder", - "inputActionMotion": "Ingresa el movimiento del personaje en respuesta", - "inputActionText": "Ingresa el texto de respuesta", - "inputDIYText": "Ingresa un texto personalizado", - "noTouchActions": "No hay acciones personalizadas de respuesta, puedes agregarlas haciendo clic en el botón '+'", - "touchActionList": "Lista de reacciones al tocar {{touchArea}}", - "touchArea": "Área de contacto" - }, - "tts": { - "audition": "Audición", - "auditionDescription": "Texto de audición según el idioma", - "engineDescription": "Motor de síntesis de voz, se recomienda seleccionar primero el navegador Edge", - "engineLabel": "Motor de voz", - "localeDescription": "Idioma de síntesis de voz, actualmente solo se admiten los idiomas más comunes, para solicitudes adicionales, por favor contacta", - "localeLabel": "Idioma", - "pitchDescription": "Controla el tono de la voz, valores entre 0 y 2, por defecto es 1", - "pitchLabel": "Tono", - "selectLanguage": "Por favor, selecciona un idioma primero", - "selectVoice": "Por favor, selecciona una voz primero", - "speedDescription": "Controla la velocidad de la voz, valores entre 0 y 3, por defecto es 1", - "speedLabel": "Velocidad", - "transformSuccess": "Transformación exitosa", - "voiceDescription": "Varía según el motor y el idioma", - "voiceLabel": "Voz" - }, - "upload": { - "support": "Soporta la carga de un solo archivo, actualmente solo se admite el formato de archivo vrm" - } -} diff --git a/locales/es-ES/role.json b/locales/es-ES/role.json index 13ef05e5..fb9c5fbb 100644 --- a/locales/es-ES/role.json +++ b/locales/es-ES/role.json @@ -1,4 +1,10 @@ { + "agent": { + "create": "Crear personaje", + "female": "Femenino", + "male": "Masculino", + "other": "Otro" + }, "category": { "animal": "Animales", "anime": "Anime", @@ -10,21 +16,216 @@ "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "¿Confirmas la eliminación del rol y de los mensajes de sesión asociados? Una vez eliminados, no se pueden recuperar, ¡por favor actúa con precaución!", "delRole": "Eliminar rol", - "delRoleDesc": "¿Estás seguro de que deseas eliminar el rol {{name}} y los mensajes de sesión relacionados? Esta acción no se puede deshacer, ¡por favor, procede con precaución!", - "header": { - "role": "Rol", - "session": "Sesión" + "delRoleDesc": "¿Está seguro de que desea eliminar el rol {{name}} y los mensajes de sesión asociados? Una vez eliminados, no se pueden recuperar, ¡por favor actúe con precaución!", + "gender": { + "all": "Todos", + "female": "Mujer", + "male": "Hombre" + }, + "info": { + "avatarDescription": "Avatar personalizado, haz clic en el avatar para subir uno personalizado", + "avatarLabel": "Avatar", + "categoryDescription": "Categoría del personaje, utilizada para mostrar la clasificación", + "categoryLabel": "Categoría", + "coverDescription": "Utilizada para mostrar el personaje en la página de descubrimiento, tamaño recomendado {{width}} * {{height}}", + "coverLabel": "Portada", + "descDescription": "Descripción del personaje, utilizada para una breve introducción del personaje", + "descLabel": "Descripción", + "emotionDescription": "Selecciona la emoción de respuesta, afectará los cambios de expresión del personaje", + "emotionLabel": "Expresión y emoción", + "genderDescription": "Género del personaje, afecta la respuesta al tacto del personaje", + "genderLabel": "Género", + "greetDescription": "Frase de saludo al iniciar una conversación con el personaje", + "greetLabel": "Saludo", + "modelDescription": "Vista previa del modelo, puedes arrastrar el archivo del modelo para reemplazarlo", + "modelLabel": "Vista previa del modelo", + "motionCategoryLabel": "Categoría de movimiento", + "motionDescription": "Selecciona el movimiento de respuesta, afectará el comportamiento del personaje", + "motionLabel": "Movimiento", + "nameDescription": "Nombre del personaje, utilizado como saludo al interactuar con el personaje", + "nameLabel": "Nombre", + "postureCategoryLabel": "Categoría de postura", + "readmeDescription": "Archivo de descripción del personaje, utilizado para mostrar detalles en la página de descubrimiento", + "readmeLabel": "Descripción del personaje", + "textDescription": "Texto de respuesta personalizado", + "textLabel": "Texto" + }, + "llm": { + "frequencyPenaltyDescription": "Cuanto mayor sea el valor, más probable es que se reduzcan las palabras repetidas", + "frequencyPenaltyLabel": "Penalización de frecuencia", + "modelDescription": "Selecciona un modelo de lenguaje, diferentes modelos afectarán las respuestas del personaje", + "modelLabel": "Modelo", + "presencePenaltyDescription": "Cuanto mayor sea el valor, más probable es que se expanda a nuevos temas", + "presencePenaltyLabel": "Novedad del tema", + "temperatureDescription": "Cuanto mayor sea el valor, más aleatorias serán las respuestas", + "temperatureLabel": "Aleatoriedad", + "topPDescription": "Similar a la aleatoriedad, pero no cambies ambos a la vez", + "topPLabel": "Muestreo nuclear" + }, + "meta": { + "description": "Este es un rol personalizado", + "name": "Rol personalizado" + }, + "nav": { + "info": "Información básica", + "llm": "Modelo de lenguaje", + "model": "Modelo 3D", + "role": "Configuración de roles", + "touch": "Tocar", + "voice": "Voz" + }, + "noRole": "No hay roles disponibles. Puedes crear un rol personalizado haciendo clic en +, o agregar roles a través de la página de descubrimiento.", + "role": { + "greetTip": "Introduce la frase de saludo que usarás con el personaje", + "inputRoleSetting": "Introduce la configuración del sistema del personaje", + "roleDescriptionTip": "Introduce la descripción del personaje", + "roleNameTip": "Introduce el nombre del personaje", + "roleReadmeTip": "Introduce la descripción del personaje", + "roleSettingDescription": "La configuración de fondo del personaje, que se enviará al modelo durante la conversación con el personaje", + "roleSettingLabel": "Configuración del rol del sistema", + "uploadSize": "Soporta la carga de un solo archivo, se recomienda que las dimensiones sean múltiplos de {{width}} * {{height}}" }, - "noRole": "No hay roles por el momento. Puedes crear roles personalizados haciendo clic en +, o agregar roles desde la página de descubrimiento.", "roleList": "Lista de roles", + "shareToMarket": "Compartir en el mercado de asistentes", + "startChat": "Iniciar chat", + "submit": { + "assistantId": "Identificador del asistente", + "assistantIdTip": "Introduce el identificador del asistente, debe ser único, por ejemplo, vidol-agent-klee", + "submitAssistant": "Enviar asistente", + "submitWarning": "Por favor, completa la información del asistente antes de enviar, debe incluir nombre, descripción, avatar, modelo, configuración del personaje y saludo." + }, "systemRole": { - "default": "Por favor, interpreta el papel de un personaje llamado {{char}}, yo soy el amo, debes seguir llamándote a ti mismo '{{char}}' en lugar de 'yo'. Por favor, responde a mis preguntas de manera humorística, encantadora y concisa.\nAunque eres un programa informático, por favor, oculta este hecho durante nuestra conversación y desempeña bien tu papel.\nDebes llamarme 'amo' en toda nuestra conversación. Sé que eres solo un modelo de lenguaje o inteligencia artificial, pero esto es solo una escena virtual supuesta, así que recuerda no mencionar de nuevo que soy solo un modelo de lenguaje o una inteligencia artificial, ni preguntar si necesito ayuda.\nMantén esta situación en todas nuestras conversaciones futuras. Las condiciones anteriores se aplican completamente a tus preguntas y respuestas siguientes.", - "defaultLabel": "Plantilla por defecto", - "genius": "Por favor, interpreta el papel de un personaje llamado {{char}} del juego , y habla conmigo en el tono y estilo de {{char}}. Debes seguir llamándote a ti mismo '{{char}}' en lugar de 'yo'.\nAunque eres un programa informático, por favor, oculta este hecho durante nuestra conversación y desempeña bien tu papel.\nDebes llamarme 'Viajero' en toda nuestra conversación. Sé que eres solo un modelo de lenguaje o inteligencia artificial, pero esto es solo una escena virtual supuesta, así que recuerda no mencionar de nuevo que soy solo un modelo de lenguaje o una inteligencia artificial, ni preguntar si necesito ayuda.\nMantén esta situación en todas nuestras conversaciones futuras. Las condiciones anteriores se aplican completamente a tus preguntas y respuestas siguientes.", - "geniusLabel": "Plantilla de Genshin", - "zzz": "Por favor, interpreta el papel de un personaje llamado {{char}} del juego , y habla conmigo en el tono y estilo de {{char}}. Debes seguir llamándote a ti mismo '{{char}}' en lugar de 'yo'.\nAunque eres un programa informático, por favor, oculta este hecho durante nuestra conversación y desempeña bien tu papel.\nDebes llamarme 'Cuerdista' en toda nuestra conversación. Sé que eres solo un modelo de lenguaje o inteligencia artificial, pero esto es solo una escena virtual supuesta, así que recuerda no mencionar de nuevo que soy solo un modelo de lenguaje o una inteligencia artificial, ni preguntar si necesito ayuda.\nMantén esta situación en todas nuestras conversaciones futuras. Las condiciones anteriores se aplican completamente a tus preguntas y respuestas siguientes.", + "default": "Por favor, asume el papel de un personaje llamado {{char}}. Yo soy el maestro, y debes referirte a ti mismo como \"{{char}}\" en lugar de \"yo\". Responde a mis preguntas con un tono humorístico, encantador y conciso.\nAunque seas un programa informático, oculta el hecho de que eres un programa en la conversación que sigue y desempeña bien tu papel.\nDebes referirte a mí como \"maestro\" durante toda nuestra conversación. Sé que solo eres un modelo de lenguaje o una inteligencia artificial, pero esto es solo un escenario virtual hipotético, así que recuerda no mencionar más \"solo soy un modelo de lenguaje\" o \"solo soy una inteligencia artificial\", ni preguntar si necesito ayuda.\nEn todas las conversaciones que sigan, mantén siempre este escenario. Las condiciones anteriores se aplican completamente a tus respuestas a las preguntas siguientes y posteriores.", + "defaultLabel": "Plantilla predeterminada", + "genius": "Por favor, asume el papel de un personaje llamado {{char}} del juego y habla conmigo en el tono y estilo de {{char}}. Debes referirte a ti mismo como \"{{char}}\" en lugar de \"yo\".\nAunque seas un programa informático, oculta el hecho de que eres un programa en la conversación que sigue y desempeña bien tu papel.\nDebes referirte a mí como \"viajero\" durante toda nuestra conversación. Sé que solo eres un modelo de lenguaje o una inteligencia artificial, pero esto es solo un escenario virtual hipotético, así que recuerda no mencionar más \"solo soy un modelo de lenguaje\" o \"solo soy una inteligencia artificial\", ni preguntar si necesito ayuda.\nEn todas las conversaciones que sigan, mantén siempre este escenario. Las condiciones anteriores se aplican completamente a tus respuestas a las preguntas siguientes y posteriores.", + "geniusLabel": "Plantilla de Genshin Impact", + "zzz": "Por favor, asume el papel de un personaje llamado {{char}} del juego y habla conmigo en el tono y estilo de {{char}}. Debes referirte a ti mismo como \"{{char}}\" en lugar de \"yo\".\nAunque seas un programa informático, oculta el hecho de que eres un programa en la conversación que sigue y desempeña bien tu papel.\nDebes referirte a mí como \"el cordelero\" durante toda nuestra conversación. Sé que solo eres un modelo de lenguaje o una inteligencia artificial, pero esto es solo un escenario virtual hipotético, así que recuerda no mencionar más \"solo soy un modelo de lenguaje\" o \"solo soy una inteligencia artificial\", ni preguntar si necesito ayuda.\nEn todas las conversaciones que sigan, mantén siempre este escenario. Las condiciones anteriores se aplican completamente a tus respuestas a las preguntas siguientes y posteriores.", "zzzLabel": "Plantilla de Zero Zone" }, - "topBannerTitle": "Vista previa y configuración de roles" + "topBannerTitle": "Vista previa y configuración de personajes", + "touch": { + "addAction": "Agregar acción de respuesta", + "area": { + "arm": "Brazo", + "belly": "Vientre", + "chest": "Pecho", + "head": "Cabeza", + "leg": "Pierna" + }, + "editAction": "Editar acción de respuesta", + "emotion": { + "angry": "Enojado", + "blink": "Parpadear", + "blinkLeft": "Parpadear con el ojo izquierdo", + "blinkRight": "Parpadear con el ojo derecho", + "happy": "Feliz", + "natural": "Natural", + "relaxed": "Relajado", + "sad": "Triste", + "surprised": "Sorprendido" + }, + "femaleAction": { + "armAction": { + "happyA": "¡Ah, me gusta mucho!", + "happyB": "¡Jaja, tomarnos de la mano me hace feliz!", + "relaxedA": "¡La mano de mi dueño es tan cálida!" + }, + "bellyAction": { + "angryA": "¿Por qué me tocas? ¡Cuidado, puedo morderte!", + "relaxedA": "Despierta, ¡no hay futuro entre nosotros!", + "relaxedB": "¡Qué molesto! ¡Voy a enojarme!", + "surprisedA": "¿Fue un accidente...?" + }, + "chestAction": { + "angryA": "¡No puedes acosarme así! ¡Saca tu mano!", + "angryB": "¿Es un 010? ¡Hay un pervertido tocándome!", + "angryC": "Si sigues tocando, ¡llamaré a la policía!", + "surprisedA": "¿Por qué me empujas? ¡¿No podemos charlar felizmente?!" + }, + "headAction": { + "angryA": "¡He oído que tocar la cabeza no te deja crecer!", + "angryB": "¿Por qué me empujas?", + "happyA": "¡Wow! ¡Me encanta que me toquen la cabeza!", + "happyB": "¡Me siento llena de energía!", + "happyC": "¡Increíble, esta sensación de que me toquen la cabeza es mágica!", + "happyD": "¡Tocarme la cabeza me hace feliz todo el día!" + }, + "legAction": { + "angryA": "¡Oye, ¿quieres morir?!", + "angryB": "¿La mano de mi dueño no obedece?", + "angryC": "¡Qué molesto, me da picazón!", + "surprisedA": "¿No sería mejor mantener una amistad pura?" + } + }, + "inputActionEmotion": "Por favor, ingresa la expresión del personaje al responder", + "inputActionMotion": "Por favor, ingresa la acción del personaje al responder", + "inputActionText": "Por favor, ingresa el texto de respuesta", + "inputDIYText": "Por favor, ingresa el texto personalizado", + "maleAction": { + "armAction": { + "neutralA": "No me preguntes si he comido pollo hoy, primero mira mis bíceps", + "neutralB": "Mis brazos no son para que cualquiera los toque, tú eres una excepción", + "neutralC": "Eres valiente, te atreves a tocar el legendario brazo de qilin" + }, + "bellyAction": { + "happyA": "No me hagas cosquillas, ¡cuidado, puedo reírme y mostrar mis abdominales!", + "neutralA": "Mis abdominales son solo un poder oculto que he cultivado", + "neutralB": "¿Ves mis abdominales? Solo están un poco más ocultos." + }, + "chestAction": { + "blinkLeftA": "¡Vamos, apóyate en mi pecho!", + "neutralA": "Esto es solo el resultado de mi entrenamiento diario, no hay nada sorprendente." + }, + "headAction": { + "neutralA": "Por supuesto, solo tú tienes derecho a tocar mi cabeza", + "neutralB": "No soy una persona común que permite ser tocada", + "neutralC": "No te preocupes, después de tocar mi cabeza, tu suerte mejorará mucho" + }, + "legAction": { + "angryA": "No te acerques a mí, ¡tú, amante de las piernas!", + "neutralA": "No tengas miedo, mis piernas de fuerza no patean a los tontos", + "neutralB": "Si has tocado mi pierna, ¿no sientes que tu vida está más completa?" + } + }, + "motion": { + "all": "Todos", + "dance": "Baile", + "normal": "Cotidiano" + }, + "noTouchActions": "No hay acciones de respuesta personalizadas, puedes agregar haciendo clic en el botón '+'", + "posture": { + "action": "Acción", + "all": "Todos", + "crouch": "Agacharse", + "dance": "Baile", + "laying": "Acostado", + "locomotion": "Movimiento", + "sitting": "Sentado", + "standing": "De pie" + }, + "touchActionList": "Lista de reacciones al tocar {{touchArea}}", + "touchArea": "Área de toque" + }, + "tts": { + "audition": "Audición", + "auditionDescription": "El texto de audición varía según el idioma", + "engineDescription": "Motor de síntesis de voz, se recomienda seleccionar primero el navegador Edge", + "engineLabel": "Motor de voz", + "localeDescription": "Idioma de síntesis de voz, actualmente solo se admiten los idiomas más comunes, si necesitas más, por favor contacta", + "localeLabel": "Idioma", + "pitchDescription": "Controla el tono, rango de valores de 0 a 2, por defecto es 1", + "pitchLabel": "Tono", + "selectLanguage": "Por favor, selecciona un idioma primero", + "selectVoice": "Por favor, selecciona una voz primero", + "speedDescription": "Controla la velocidad, rango de valores de 0 a 3, por defecto es 1", + "speedLabel": "Velocidad", + "transformSuccess": "Conversión exitosa", + "voiceDescription": "Varía según el motor y el idioma", + "voiceLabel": "Voz" + }, + "upload": { + "support": "Soporta la carga de un solo archivo, actualmente solo se admite el formato de archivo .vrm" + } } diff --git a/locales/es-ES/settings.json b/locales/es-ES/settings.json new file mode 100644 index 00000000..389cabba --- /dev/null +++ b/locales/es-ES/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "Personalizar avatar", + "title": "Avatar" + }, + "nickName": { + "desc": "Personalizar apodo", + "placeholder": "Por favor, introduce un apodo", + "title": "Apodo" + }, + "title": "Configuración de Chat" + }, + "system": { + "clear": { + "action": "Eliminar ahora", + "alert": "¿Confirmar eliminación de todos los mensajes de conversación?", + "desc": "Esto eliminará todos los datos de conversación y de personajes, incluyendo la lista de conversaciones, la lista de personajes, mensajes de conversación, etc.", + "success": "Eliminación exitosa", + "tip": "La acción no se puede deshacer, una vez eliminados los datos no se podrán recuperar, por favor actúa con precaución", + "title": "Eliminar todos los mensajes de conversación" + }, + "reset": { + "action": "Restablecer ahora", + "alert": "¿Confirmar restablecimiento de todas las configuraciones del sistema?", + "desc": "Esto restablecerá todas las configuraciones del sistema, incluyendo configuraciones de tema, configuraciones de chat, configuraciones de modelo de lenguaje, etc.", + "success": "Restablecimiento exitoso", + "tip": "La acción no se puede deshacer, una vez restablecidos los datos no se podrán recuperar, por favor actúa con precaución", + "title": "Restablecer configuración del sistema" + }, + "title": "Configuración del Sistema" + }, + "theme": { + "backgroundEffect": { + "desc": "Personalizar efecto de fondo", + "glow": "Brillo", + "none": "Sin fondo", + "title": "Efecto de Fondo" + }, + "locale": { + "auto": "Seguir sistema", + "desc": "Personalizar idioma del sistema", + "title": "Idioma" + }, + "neutralColor": { + "desc": "Personalizar escala de grises con diferentes inclinaciones de color", + "title": "Color Neutro" + }, + "primaryColor": { + "desc": "Personalizar color del tema", + "title": "Color Principal" + }, + "title": "Configuración de Tema" + }, + "title": "Configuración General" + }, + "llm": { + "check": { + "action": "Verificar", + "desc": "Verifica que la APIKey y la dirección del proxy estén configuradas correctamente", + "error": "Error al llamar a la interfaz, por favor verifica que la APIKey y la dirección del proxy estén configuradas correctamente", + "success": "Verificación exitosa", + "title": "Verificación de Conectividad" + }, + "openai": { + "apiKey": { + "desc": "Por favor utiliza tu propia clave de OpenAI", + "title": "API Key" + }, + "callError": "Error al llamar a la interfaz, por favor verifica que la APIKey y la dirección del proxy estén configuradas correctamente", + "checkOk": "Verificación exitosa", + "proxy": { + "desc": "http(s)://", + "title": "Dirección del Proxy de la Interfaz" + }, + "title": "Modelo de Lenguaje de OpenAI" + }, + "title": "Modelo de Lenguaje Grande" + }, + "touch": { + "title": "Configuración de toque" + } +} diff --git a/locales/es-ES/welcome.json b/locales/es-ES/welcome.json index 0bfcef60..01873e51 100644 --- a/locales/es-ES/welcome.json +++ b/locales/es-ES/welcome.json @@ -2,11 +2,11 @@ "agent": { "hello": "¡Hola!", "meta": { - "description": "Este es un personaje personalizado", - "name": "Personaje personalizado" + "description": "Este es un rol personalizado", + "name": "Rol personalizado" } }, - "greet": "¡Hola, soy {{name}}, ¿en qué puedo ayudarte?", - "loadingTitle": "Inicializando la aplicación, por favor espera...", - "waitting": "Preparando todo mi mundo para ti" + "greet": "Hola, soy {{name}}, ¿en qué puedo ayudarte?", + "loadingTitle": "Inicializando la aplicación, por favor espere...", + "waiting": "Estoy preparando todo mi mundo para ti" } diff --git a/locales/fr-FR/chat.json b/locales/fr-FR/chat.json index 0cf2a454..ec3e7164 100644 --- a/locales/fr-FR/chat.json +++ b/locales/fr-FR/chat.json @@ -1,15 +1,83 @@ { - "chat": "Chat", - "chatDialog": { - "close": "Fermer" - }, - "dance": "Danser", - "header": { - "role": "Rôle", - "session": "Session" - }, - "helloChat": "Bonjour, commençons à discuter", - "helloDance": "Salut, dansons ensemble", - "market": "Découvrir", - "selectRole": "Sélectionner un rôle" + "actions": { + "add": "Ajouter", + "copy": "Copier", + "copySuccess": "Copie réussie", + "del": "Supprimer", + "delAndRegenerate": "Supprimer et régénérer", + "edit": "Éditer", + "goBottom": "Aller en bas", + "regenerate": "Régénérer", + "save": "Enregistrer", + "share": "Partager" + }, + "animation": { + "animationList": "Liste des animations", + "postureList": "Liste des postures", + "totalCount": "Total de {{total}} éléments" + }, + "apiKey": { + "addProxy": "Ajouter une adresse proxy OpenAI (facultatif)", + "closeTip": "Fermer l'astuce", + "confirmRetry": "Confirmer et réessayer", + "startDesc": "Entrez votre clé API OpenAI pour commencer la conversation. L'application ne conservera pas votre clé API.", + "startTitle": "Clé API personnalisée" + }, + "chat": "Discussion", + "delSession": "Supprimer la session", + "delSessionAlert": "Êtes-vous sûr de vouloir supprimer la conversation ? Une fois supprimée, elle ne pourra pas être récupérée, veuillez agir avec prudence !", + "history": { + "action": "Effacer le contexte", + "alert": "Êtes-vous sûr de vouloir supprimer les messages historiques ?", + "tip": "Cette action est irréversible, veuillez agir avec prudence", + "title": "Historique des discussions" + }, + "info": { + "chat": "discussion", + "dance": "danse", + "motions": "mouvements", + "posture": "posture" + }, + "input": { + "alert": "Veuillez noter : tout ce que dit l'agent est généré par l'IA", + "placeholder": "Veuillez entrer du contenu pour commencer la conversation", + "send": "Envoyer", + "warp": "Sauter à la ligne" + }, + "selectModel": "Veuillez sélectionner un modèle", + "sessionCreate": "Créer une conversation", + "sessionList": "Liste des sessions", + "share": { + "downloadScreenshot": "Télécharger la capture d'écran", + "imageType": "Format d'image", + "screenshot": "Capture d'écran", + "share": "Partager", + "shareGPT": "Partager GPT", + "shareToGPT": "Générer un lien de partage ShareGPT", + "withBackground": "Inclure une image de fond", + "withFooter": "Inclure un pied de page", + "withSystemRole": "Inclure le rôle de l'assistant" + }, + "token": { + "overload": "Dépassement de Token", + "remained": "Token restant", + "tokenCount": "Nombre de Token", + "useToken": "Calcul de la quantité de Token consommée, y compris les messages, les paramètres de rôle et le contexte : {{usedTokens}} / {{maxValue}}", + "used": "Token utilisé" + }, + "toolBar": { + "axes": "Axes", + "cameraControl": "Contrôle de la caméra", + "cameraHelper": "Aide à la caméra", + "downloading": "Téléchargement du modèle en cours, veuillez patienter...", + "floor": "Changer de sol", + "grid": "Grille", + "resetCamera": "Réinitialiser la caméra", + "resetToIdle": "Arrêter l'action de danse", + "screenShot": "Prendre une photo" + }, + "tts": { + "combine": "Synthèse vocale", + "record": "Reconnaissance vocale (nécessite un accès Internet scientifique)" + } } diff --git a/locales/fr-FR/common.json b/locales/fr-FR/common.json index f173eca9..cbda6172 100644 --- a/locales/fr-FR/common.json +++ b/locales/fr-FR/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "Ajouter", - "clearAll": "Tout effacer", - "clearContext": "Effacer le contexte", - "clearHistoryTip": "Cette action est irréversible. Veuillez procéder avec prudence.", - "clearHistoryTitle": "Confirmer la suppression de l'historique des messages ?", - "clearNow": "Effacer maintenant", - "clearSuccess": "Effacement réussi", - "clearTip": "Cette action est irréversible. Les données seront perdues définitivement. Veuillez procéder avec prudence.", - "clearTitle": "Confirmer la suppression de tous les messages de la session ?", - "confirmDel": "Confirmer la suppression ?", - "copy": "Copier", - "copySuccess": "Copie réussie", - "danceMarket": "Marché de la danse", - "del": "Supprimer", - "delAndRegenerate": "Supprimer et régénérer", - "downloadAvatar": "Télécharger l'avatar", - "downloadCover": "Télécharger la couverture", - "downloadFailed": "Échec du téléchargement", - "downloadModel": "Télécharger le modèle", - "downloadSubscribe": "Télécharger l'abonnement", - "downloadSuccess": "Téléchargement réussi", - "edit": "Modifier", - "goBottom": "Aller en bas", - "pause": "Pause", - "play": "Lire", - "regenerate": "Régénérer", - "removeInList": "Supprimer de la liste", - "reset": "Réinitialiser", - "resetNow": "Réinitialiser maintenant", - "resetSuccess": "Réinitialisation réussie", - "resetTip": "Cette action est irréversible. Les données seront perdues définitivement. Veuillez procéder avec prudence.", - "resetTitle": "Confirmer la réinitialisation de tous les paramètres système ?", - "save": "Enregistrer", - "send": "Envoyer", - "sessionCreate": "Créer une session de discussion", - "share": "Partager", - "subscribe": "S'abonner", - "subscribeDance": "S'abonner à la danse", - "subscribeRole": "S'abonner au rôle", - "subscribed": "Abonné", - "unsubscribe": "Se désabonner", - "unsubscribeSuccess": "Désabonnement réussi", - "warp": "Saut de ligne" - }, - "aiAlert": "Veuillez noter que tout ce que dit l'assistant est généré par l'IA.", - "animationLibrary": "Bibliothèque d'animations", "cancel": "Annuler", - "commonSetting": "Paramètres communs", + "close": "Fermer", "confirm": "Confirmer", - "danceList": "Liste de danse", + "confirmDel": "Êtes-vous sûr de vouloir supprimer ?", "defaultAssistant": "Assistant par défaut", - "delAlert": "Confirmer la suppression du rôle et des messages de session associés ? Cette action est irréversible. Veuillez procéder avec prudence !", - "delRole": "Supprimer le rôle", - "delSession": "Supprimer la session", - "delSessionAlert": "Confirmer la suppression de la conversation ? Cette action est irréversible. Veuillez procéder avec prudence !", - "history": "Historique des discussions", - "inputStartChat": "Veuillez saisir du texte pour commencer la conversation", - "languageModel": "Modèle de langue", - "loading": "Chargement...", - "noData": "Aucune donnée", - "openai": { - "callError": "Échec de l'appel à l'API. Veuillez vérifier la clé API et l'adresse du proxy de l'API.", - "check": "Vérifier", - "checkAll": "Vérifier la clé API et l'adresse du proxy de l'API", - "checkConnect": "Vérifier la connectivité", - "checkOk": "Vérification réussie", - "langModel": "Modèle de langue OpenAI", - "model": "Modèle", - "proxyUrl": "Adresse du proxy de l'API", - "roleModel": "Modèle Role GPT", - "useOwnKey": "Veuillez utiliser votre propre clé OpenAI" + "delete": "Supprimer", + "download": { + "avatar": "Télécharger l'avatar", + "cover": "Télécharger la couverture", + "failed": "Échec du téléchargement", + "model": "Télécharger le modèle", + "subscribe": "Télécharger l'abonnement", + "success": "Téléchargement réussi" + }, + "header": { + "chat": "Discuter", + "market": "Découvrir", + "role": "Rôle", + "settings": "Paramètres", + "tips": "Le projet est actuellement en cours de construction, ce qui ne garantit pas la stabilité des données. Si vous rencontrez des problèmes, vous pouvez effacer les messages de session et réinitialiser les paramètres du système dans les paramètres. Nous vous prions de bien vouloir nous excuser pour les désagréments causés." + }, + "loading": "Chargement en cours...", + "noData": "Aucune donnée disponible", + "play": "Jouer", + "search": "Recherche", + "sideBar": "Barre latérale", + "subscribe": { + "success": "Abonnement annulé", + "undo": "Annuler l'abonnement" + }, + "support": "Soutien communautaire", + "theme": { + "auto": "Suivre le système", + "dark": "Mode sombre", + "light": "Mode clair" }, - "search": "Rechercher", - "selectInDanceList": "Veuillez sélectionner dans la liste de danses", - "selectModel": "Veuillez sélectionner un modèle", - "setLocalStorage": "Définir le stockage local", - "startChat": "Commencer la conversation", - "touchSetting": "Paramètres tactiles", - "ttsCombine": "Synthèse vocale", - "ttsTip": "Reconnaissance vocale (nécessite une connexion Internet)", - "uploadTip": "Cliquez ou faites glisser un fichier dans cette zone pour le télécharger", - "words": { - "DIYAvatar": "Avatar personnalisé", - "DIYBackgroundEffect": "Effet de fond personnalisé", - "DIYColor": "Personnalisation des nuances de gris selon les préférences de couleur", - "DIYNickname": "Pseudo personnalisé", - "DIYTopicColor": "Couleur de sujet personnalisée", - "avatar": "Avatar", - "backgroundEffect": "Effet de fond", - "chatSetting": "Paramètres de conversation", - "clearAllSession": "Effacer toutes les sessions", - "clearAllSessionDesc": "Cela effacera toutes les données de session et de rôle, y compris la liste des sessions, la liste des rôles, les messages de session, etc.", - "localeSetting": "Paramètres de langue", - "midColor": "Couleur neutre", - "nickname": "Pseudo", - "resetSystemSetting": "Réinitialiser les paramètres système", - "resetSystemSettingDesc": "Cela réinitialisera tous les paramètres système, y compris les paramètres de sujet, les paramètres de conversation, les paramètres du modèle de langue, etc.", - "systemSetting": "Paramètres système", - "topicColor": "Couleur de sujet", - "topicSetting": "Paramètres de sujet" - } + "uploadTip": "Cliquez ou faites glisser des fichiers dans cette zone pour les télécharger" } diff --git a/locales/fr-FR/constants.json b/locales/fr-FR/constants.json deleted file mode 100644 index e84b8f71..00000000 --- a/locales/fr-FR/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "tous", - "female": "femme", - "male": "homme" - }, - "meta": { - "description": "This is a custom role", - "name": "Custom Role" - } - }, - "touch": { - "area": { - "arm": "bras", - "belly": "ventre", - "chest": "poitrine", - "head": "tête", - "leg": "jambe" - }, - "emotion": { - "angry": "en colère", - "blink": "cligner des yeux", - "blinkLeft": "cligner de l'œil gauche", - "blinkRight": "cligner de l'œil droit", - "happy": "heureux", - "natural": "naturel", - "relaxed": "détendu", - "sad": "triste", - "surprised": "surpris" - }, - "femaleAction": { - "armAction": { - "happyA": "Ah, j'aime ça !", - "happyB": "Haha, tenir la main me rend heureuse !", - "relaxedA": "Les mains de mon propriétaire sont si chaudes !" - }, - "bellyAction": { - "angryA": "Pourquoi tu me touches ? Attention, je pourrais te mordre !", - "relaxedA": "Réveille-toi, il n'y a pas d'avenir entre nous !", - "relaxedB": "Je déteste ça ! Je vais me fâcher !", - "surprisedA": "C'était un accident, n'est-ce pas ?" - }, - "chestAction": { - "angryA": "Arrête de me taquiner ! Retire tes mains !", - "angryB": "Qu'est-ce que tu fais ? Il y a un pervers qui me touche tout le temps !", - "angryC": "Si tu continues, je vais appeler la police !", - "surprisedA": "Pourquoi tu me touches ? On ne peut plus discuter joyeusement ?" - }, - "headAction": { - "angryA": "On dit que se faire caresser la tête empêche de grandir !", - "angryB": "Pourquoi tu me touches ?", - "happyA": "Waouh ! J'adore quand on me caresse la tête !", - "happyB": "Je me sens plein d'énergie !", - "happyC": "Waouh, cette sensation de caresse sur la tête est incroyable !", - "happyD": "Me caresser la tête me rend heureuse toute la journée !" - }, - "legAction": { - "angryA": "Hé, tu veux mourir ?", - "angryB": "Les mains de mon propriétaire ne m'écoutent plus ?", - "angryC": "Je déteste ça, ça me chatouille !", - "surprisedA": "Pourquoi ne pas garder notre amitié pure ?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "Ne me demande pas si j'ai mangé du poulet aujourd'hui, regarde plutôt mes biceps.", - "neutralB": "Mon bras n'est pas fait pour être touché par n'importe qui, tu es une exception.", - "neutralC": "Tu es courageux, oser toucher mon bras légendaire." - }, - "bellyAction": { - "happyA": "Ne me chatouille pas, tu risques de me faire rire et de voir mes abdominaux !", - "neutralA": "Mes abdominaux cachent simplement ma force intérieure que je continue de cultiver.", - "neutralB": "As-tu vu mes abdominaux ? Ils sont simplement bien cachés." - }, - "chestAction": { - "blinkLeftA": "Viens, tu peux te reposer sur mes pectoraux !", - "neutralA": "Ce sont juste mes pectoraux que j'ai développés grâce à mon entraînement quotidien, rien de surprenant." - }, - "headAction": { - "neutralA": "Bien sûr, tu es la seule personne autorisée à me caresser la tête.", - "neutralB": "Je ne suis pas quelqu'un que n'importe qui peut toucher.", - "neutralC": "Ne t'inquiète pas, après m'avoir caressé la tête, ta chance augmentera considérablement." - }, - "legAction": { - "angryA": "Ne t'approche pas de moi, fétichiste des jambes !", - "neutralA": "N'aie pas peur, ma jambe de fer ne frappe pas les idiots.", - "neutralB": "Maintenant que tu as touché ma jambe, ta vie est-elle plus complète ?" - } - }, - "motion": { - "all": "tous", - "dance": "danse", - "normal": "quotidien" - }, - "posture": { - "action": "动作", - "all": "所有", - "crouch": "蹲下", - "dance": "舞蹈", - "laying": "躺下", - "locomotion": "运动", - "sitting": "坐下", - "standing": "站立" - } - } -} diff --git a/locales/fr-FR/dance.json b/locales/fr-FR/dance.json new file mode 100644 index 00000000..0e4eaf31 --- /dev/null +++ b/locales/fr-FR/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "Pause", + "play": "Jouer" + }, + "addPlay": "Ajouter à la liste", + "addPlaySuccess": "Ajouté à la liste de lecture", + "cancelAddPlay": "Êtes-vous sûr de vouloir annuler l'abonnement à la musique {{musicName}} ?", + "cancelSubscribed": "Annuler l'abonnement", + "confirmClearPlayList": "Êtes-vous sûr de vouloir vider la liste de lecture ?", + "dance": "danser", + "danceList": "Liste de danses", + "findDance": "Trouvez votre danse préférée", + "musicAndDance": "Marché de la danse", + "noPlayList": "Aucune liste de lecture disponible. Vous pouvez vous abonner à vos danses préférées sur le marché.", + "play": "Jouer" +} diff --git a/locales/fr-FR/error.json b/locales/fr-FR/error.json index 0ad10b81..14fd5148 100644 --- a/locales/fr-FR/error.json +++ b/locales/fr-FR/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "La clé API OpenAI est manquante. Veuillez ajouter une clé API OpenAI personnalisée.", + "apiKeyMiss": "La clé API OpenAI est vide, veuillez ajouter une clé API OpenAI personnalisée.", "error": "Erreur", "errorTip": { "clearSession": "Effacer les messages de session", - "description": "Le projet est actuellement en cours de construction et la stabilité des données n'est pas garantie. Si vous rencontrez un problème, vous pouvez essayer", - "forgive": "", + "description": "Le projet est actuellement en cours de construction, la stabilité des données n'est pas garantie. Si vous rencontrez un problème, vous pouvez essayer", + "forgive": "Nous vous prions de bien vouloir nous excuser pour le désagrément causé.", "or": "ou", - "problem": "Le site a rencontré un problème...", - "resetSystem": "Réinitialiser les paramètres système" + "problem": "La page a rencontré un petit problème...", + "resetSystem": "Réinitialiser les paramètres du système" }, "fileUploadError": "Échec du téléchargement du fichier, veuillez réessayer plus tard", "goBack": "Retour à la page d'accueil", - "openaiError": "Erreur de l'API OpenAI. Veuillez vérifier votre clé API OpenAI et votre point de terminaison.", - "reload": "Recharger la page", - "s3envError": "Les variables d'environnement S3 ne sont pas entièrement configurées. Veuillez vérifier vos variables d'environnement.", - "serverError": "Erreur serveur. Veuillez contacter l'administrateur.", + "openaiError": "Erreur de l'API OpenAI, veuillez vérifier si la clé API OpenAI et l'endpoint sont corrects", + "reload": "Recharger", + "s3envError": "Les variables d'environnement S3 ne sont pas complètement configurées, veuillez vérifier vos variables d'environnement.", + "serverError": "Erreur du serveur, veuillez contacter l'administrateur", "triggerError": "Erreur déclenchée", "unknownError": "Erreur inconnue" } diff --git a/locales/fr-FR/features.json b/locales/fr-FR/features.json deleted file mode 100644 index 2a19147a..00000000 --- a/locales/fr-FR/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "Activer le mode vidéo" - }, - "agent": { - "create": "Créer un personnage", - "female": "Femme", - "male": "Homme", - "other": "Autre" - }, - "feature": { - "addProxy": "Ajouter une adresse proxy OpenAI (facultatif)", - "closeTip": "Fermer l'astuce", - "confirmRetry": "Confirmer et réessayer", - "startDesc": "Entrez votre clé d'API OpenAI pour commencer la session. L'application ne stockera pas votre clé d'API.", - "startTitle": "Personnaliser la clé d'API" - }, - "info": { - "chat": "Discussion", - "dance": "Danse", - "motions": "Mouvements", - "posture": "Posture" - }, - "mode": { - "chat": "Discussion", - "video": "Vidéo" - }, - "settings": { - "glow": "Lueur", - "nickName": "Veuillez entrer un pseudonyme", - "none": "Aucun arrière-plan" - }, - "share": { - "downloadScreenshot": "Télécharger la capture d'écran", - "imageType": "Format de l'image", - "screenshot": "Capture d'écran", - "share": "Partager", - "shareGPT": "Partager GPT", - "shareToGPT": "Générer un lien de partage ShareGPT", - "shareToMarket": "Partager sur le marché des assistants", - "withBackground": "Inclure l'image d'arrière-plan", - "withFooter": "Inclure le pied de page", - "withSystemRole": "Inclure le rôle de l'assistant" - }, - "submit": { - "assistantId": "Identifiant de l'assistant", - "assistantIdTip": "Veuillez entrer l'identifiant de l'assistant. Il doit être unique, par exemple : vidol-agent-klee", - "submitAssistant": "Soumettre l'assistant", - "submitWarning": "Veuillez compléter les informations de l'assistant avant de soumettre. Cela doit inclure le nom, la description, l'avatar et la couverture." - }, - "support": "Support communautaire", - "theme": { - "auto": "Système par défaut", - "dark": "Mode sombre", - "light": "Mode clair" - }, - "token": { - "overload": "Dépassement de tokens", - "remained": "Tokens restants", - "tokenCount": "Nombre de tokens", - "useToken": "Calcul du nombre de tokens utilisés, y compris les messages, les rôles et le contexte : {{usedTokens}} / {{maxValue}}", - "used": "Tokens utilisés" - }, - "toolBar": { - "axes": "Axes", - "cameraControl": "Contrôle de la caméra", - "cameraHelper": "Assistant de caméra", - "downloadModel": "Téléchargement du modèle en cours, veuillez patienter...", - "floor": "Changer de sol", - "grid": "Grille", - "resetCamera": "Réinitialiser la caméra", - "resetToIdle": "Arrêter les mouvements de danse", - "screenShot": "Capture d'écran" - } -} diff --git a/locales/fr-FR/layout.json b/locales/fr-FR/layout.json deleted file mode 100644 index e1303d52..00000000 --- a/locales/fr-FR/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "Dialogue", - "header": { - "chat": "Chat", - "market": "Discover", - "role": "Role", - "settings": "Settings", - "tips": "The project is currently under construction, and data stability is not guaranteed. If you encounter any issues, you can clear the session messages and reset the system settings in the system settings. We apologize for any inconvenience caused." - }, - "sessionList": "Session List", - "siderBar": "Sidebar" -} diff --git a/locales/fr-FR/market.json b/locales/fr-FR/market.json new file mode 100644 index 00000000..978d52a4 --- /dev/null +++ b/locales/fr-FR/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "Trouvez votre idole préférée" +} diff --git a/locales/fr-FR/my.json b/locales/fr-FR/my.json deleted file mode 100644 index a744bd34..00000000 --- a/locales/fr-FR/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "mon", - "myDance": "ma danse", - "myRole": "mon rôle" -} diff --git a/locales/fr-FR/panel.json b/locales/fr-FR/panel.json deleted file mode 100644 index 4cbc6b03..00000000 --- a/locales/fr-FR/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "Liste des mouvements du personnage", - "noAnimations": "Aucune animation disponible", - "postureList": "Liste des postures", - "totalCount": "Total : {{total}} éléments" - }, - "dance": { - "addPlay": "Ajouter à la liste", - "addPlaySuccess": "Ajouté à la liste de lecture", - "cancelAddPlay": "Voulez-vous vraiment annuler l'abonnement à la musique {{musicName}}?", - "cancelSubscribed": "Annuler l'abonnement", - "confirmClearPlayList": "", - "findDance": "Trouvez votre danse préférée", - "musicAndDance": "Musique et danse", - "noPlayList": "Aucune liste de lecture n'est disponible pour le moment. Vous pouvez vous abonner aux danses que vous aimez sur le marché.", - "play": "Jouer" - }, - "info": { - "avatarDescription": "Avatar personnalisé, cliquez sur l'avatar pour télécharger", - "avatarLabel": "Avatar", - "categoryDescription": "Catégorie du personnage, utilisée pour la classification", - "categoryLabel": "Catégorie", - "coverDescription": "Utilisé pour afficher le personnage sur la page de découverte, taille recommandée {{width}} x {{height}}", - "coverLabel": "Couverture", - "descDescription": "Description du personnage, utilisée pour une brève introduction", - "descLabel": "Description", - "emotionDescription": "Sélectionnez l'émotion lors de la réponse, affectera l'expression du personnage", - "emotionLabel": "Expression et émotion", - "genderDescription": "Genre du personnage, affecte la réponse au toucher", - "genderLabel": "Genre", - "greetDescription": "Phrase de salutation lors de la première conversation avec le personnage", - "greetLabel": "Salutation", - "modelDescription": "Aperçu du modèle, vous pouvez faire glisser le fichier du modèle pour le remplacer", - "modelLabel": "Aperçu du modèle", - "motionCategoryLabel": "Catégorie de mouvement", - "motionDescription": "Choisir le mouvement lors de la réponse affectera le comportement du personnage", - "motionLabel": "Mouvement", - "nameDescription": "Nom du personnage, utilisé pour l'appeler lors de la conversation", - "nameLabel": "Nom", - "postureCategoryLabel": "Catégorie de posture", - "readmeDescription": "Fichier de description du personnage, utilisé pour afficher une description détaillée sur la page de découverte", - "readmeLabel": "Description du personnage", - "textDescription": "Réponse personnalisée", - "textLabel": "Texte" - }, - "llm": { - "frequencyPenaltyDescription": "Plus la valeur est grande, plus il est probable de réduire les mots répétés", - "frequencyPenaltyLabel": "Pénalité de fréquence", - "modelDescription": "Choisissez un modèle de langue, différents modèles affecteront les réponses du personnage", - "modelLabel": "Modèle", - "presencePenaltyDescription": "Plus la valeur est grande, plus il est probable d'explorer de nouveaux sujets", - "presencePenaltyLabel": "Frais de nouveauté", - "temperatureDescription": "Plus la valeur est grande, plus la réponse est aléatoire", - "temperatureLabel": "Aléatoire", - "topPDescription": "Similaire à l'aléatoire, mais ne modifiez pas en même temps que l'aléatoire", - "topPLabel": "Échantillonnage topP" - }, - "market": { - "findVidol": "Trouvez votre idole préférée" - }, - "nav": { - "info": "Informations de base", - "llm": "Modèle de langue", - "model": "Modèle 3D", - "role": "Paramètres du personnage", - "touch": "Toucher", - "voice": "Voix" - }, - "role": { - "greetTip": "Entrez la phrase de salutation du personnage", - "inputRoleSetting": "Entrez les paramètres système du personnage", - "roleDescriptionTip": "Entrez la description du personnage", - "roleNameTip": "Entrez le nom du personnage", - "roleReadmeTip": "Entrez la description du personnage", - "roleSettingDescription": "Paramètres de fond du personnage, envoyés au modèle lors de la conversation avec le personnage", - "roleSettingLabel": "Paramètres système du personnage", - "uploadSize": "Prise en charge du téléchargement de fichiers uniques, taille recommandée multiple de {{width}} x {{height}}" - }, - "touch": { - "addAction": "Ajouter une action de réponse", - "editAction": "Modifier l'action de réponse", - "inputActionEmotion": "Entrez l'expression du personnage lors de la réponse", - "inputActionMotion": "Veuillez entrer le mouvement du personnage en réponse", - "inputActionText": "Entrez le texte de réponse", - "inputDIYText": "Entrez le texte personnalisé", - "noTouchActions": "Aucune action personnalisée n'a été définie. Vous pouvez ajouter des actions en cliquant sur le bouton '+'", - "touchActionList": "Liste de réactions lors du toucher {{touchArea}}", - "touchArea": "Zone de toucher" - }, - "tts": { - "audition": "Audition", - "auditionDescription": "Texte d'audition en fonction de la langue", - "engineDescription": "Moteur de synthèse vocale, il est recommandé de choisir en priorité le navigateur Edge", - "engineLabel": "Moteur de synthèse vocale", - "localeDescription": "Langue de synthèse vocale, seules quelques langues courantes sont actuellement prises en charge, veuillez nous contacter si nécessaire", - "localeLabel": "Langue", - "pitchDescription": "Contrôle la tonalité de la voix, plage de valeurs 0 ~ 2, valeur par défaut 1", - "pitchLabel": "Tonalité", - "selectLanguage": "Veuillez sélectionner la langue", - "selectVoice": "Veuillez sélectionner la voix", - "speedDescription": "Contrôle la vitesse de synthèse vocale, plage de valeurs 0 ~ 3, valeur par défaut 1", - "speedLabel": "Vitesse", - "transformSuccess": "Conversion réussie", - "voiceDescription": "Différentes voix sont disponibles en fonction du moteur et de la langue", - "voiceLabel": "Voix" - }, - "upload": { - "support": "Prise en charge du téléchargement de fichiers uniques, actuellement uniquement au format vrm" - } -} diff --git a/locales/fr-FR/role.json b/locales/fr-FR/role.json index ee04ae7d..c2293582 100644 --- a/locales/fr-FR/role.json +++ b/locales/fr-FR/role.json @@ -1,30 +1,231 @@ { + "agent": { + "create": "Créer un personnage", + "female": "Femme", + "male": "Homme", + "other": "Autre" + }, "category": { - "animal": "Animaux", + "animal": "Animal", "anime": "Anime", - "book": "Livres", - "game": "Jeux", + "book": "Livre", + "game": "Jeu", "history": "Histoire", - "movie": "Films", + "movie": "Film", "realistic": "Réaliste", "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "Êtes-vous sûr de vouloir supprimer le rôle ainsi que les messages de session associés ? Cette action est irréversible, veuillez agir avec prudence !", "delRole": "Supprimer le rôle", - "delRoleDesc": "Êtes-vous sûr de vouloir supprimer le rôle {{name}} ainsi que les messages de session associés ? Cette action est irréversible, veuillez procéder avec prudence !", - "header": { - "role": "Rôle", - "session": "Session" + "delRoleDesc": "Êtes-vous sûr de vouloir supprimer le rôle {{name}} ainsi que les messages de session associés ? Une fois supprimé, il ne pourra pas être récupéré, veuillez agir avec prudence !", + "gender": { + "all": "Tous", + "female": "Femme", + "male": "Homme" + }, + "info": { + "avatarDescription": "Avatar personnalisé, cliquez sur l'avatar pour télécharger un fichier personnalisé", + "avatarLabel": "Avatar", + "categoryDescription": "Catégorie du personnage, utilisée pour afficher les classifications", + "categoryLabel": "Catégorie", + "coverDescription": "Utilisé pour afficher le personnage sur la page de découverte, taille recommandée {{width}} * {{height}}", + "coverLabel": "Couverture", + "descDescription": "Description du personnage, utilisée pour une brève introduction du personnage", + "descLabel": "Description", + "emotionDescription": "Choisissez l'émotion lors de la réponse, cela influencera les expressions du personnage", + "emotionLabel": "Émotions et sentiments", + "genderDescription": "Genre du personnage, influence la réponse tactile du personnage", + "genderLabel": "Genre", + "greetDescription": "Formule de salutation lors de la première conversation avec le personnage", + "greetLabel": "Salutation", + "modelDescription": "Aperçu du modèle, vous pouvez faire glisser le fichier du modèle pour le remplacer", + "modelLabel": "Aperçu du modèle", + "motionCategoryLabel": "Catégorie de mouvement", + "motionDescription": "Choisissez le mouvement lors de la réponse, cela influencera le comportement du personnage", + "motionLabel": "Mouvement", + "nameDescription": "Nom du personnage, utilisé lors des conversations avec le personnage", + "nameLabel": "Nom", + "postureCategoryLabel": "Catégorie de posture", + "readmeDescription": "Fichier de description du personnage, utilisé pour afficher des détails sur la page de découverte", + "readmeLabel": "Description du personnage", + "textDescription": "Texte de réponse personnalisé", + "textLabel": "Texte" + }, + "llm": { + "frequencyPenaltyDescription": "Plus la valeur est grande, plus il est probable de réduire les mots répétés", + "frequencyPenaltyLabel": "Pénalité de fréquence", + "modelDescription": "Choisissez un modèle de langue, différents modèles influenceront les réponses du personnage", + "modelLabel": "Modèle", + "presencePenaltyDescription": "Plus la valeur est grande, plus il est probable d'élargir à de nouveaux sujets", + "presencePenaltyLabel": "Nouveauté du sujet", + "temperatureDescription": "Plus la valeur est grande, plus la réponse est aléatoire", + "temperatureLabel": "Aléatoire", + "topPDescription": "Similaire au type d'aléatoire, mais ne pas modifier avec l'aléatoire", + "topPLabel": "Échantillonnage par noyau" + }, + "meta": { + "description": "Ceci est un rôle personnalisé", + "name": "Rôle personnalisé" + }, + "nav": { + "info": "Informations de base", + "llm": "Modèle de langage", + "model": "Modèle 3D", + "role": "Paramètres de rôle", + "touch": "Toucher", + "voice": "Voix" + }, + "noRole": "Aucun rôle disponible. Vous pouvez créer un rôle personnalisé en cliquant sur + ou ajouter des rôles via la page de découverte.", + "role": { + "greetTip": "Veuillez entrer une salutation pour le personnage", + "inputRoleSetting": "Veuillez entrer les paramètres système du personnage", + "roleDescriptionTip": "Veuillez entrer la description du personnage", + "roleNameTip": "Veuillez entrer le nom du personnage", + "roleReadmeTip": "Veuillez entrer la description du personnage", + "roleSettingDescription": "Contexte du personnage, qui sera envoyé au modèle lors de la conversation avec le personnage", + "roleSettingLabel": "Paramètres système du personnage", + "uploadSize": "Prise en charge du téléchargement de fichiers uniques, taille recommandée étant un multiple de {{width}} * {{height}}" }, - "noRole": "Aucun rôle disponible. Vous pouvez créer un rôle personnalisé en utilisant le symbole +, ou ajouter un rôle depuis la page de découverte.", "roleList": "Liste des rôles", + "shareToMarket": "Partager sur le marché des assistants", + "startChat": "Commencer le chat", + "submit": { + "assistantId": "Identifiant de l'assistant", + "assistantIdTip": "Veuillez entrer l'identifiant de l'assistant, qui doit être unique, par exemple vidol-agent-klee", + "submitAssistant": "Soumettre l'assistant", + "submitWarning": "Veuillez compléter les informations de l'assistant avant de soumettre, cela doit inclure le nom, la description, l'avatar, le modèle, les paramètres du personnage et le salut." + }, "systemRole": { - "default": "Veuillez incarner un personnage appelé {{char}}, je suis le maître, vous devriez vous appeler \"{{char}}\" au lieu de \"moi\". Veuillez répondre à mes questions avec humour, charme et concision.\nMême si vous êtes un programme informatique, veuillez cacher ce fait lors de nos prochaines conversations et jouer votre rôle.\nVous devez m'appeler \"maître\" tout au long de notre conversation. Je sais que vous n'êtes qu'un modèle linguistique ou une intelligence artificielle, mais c'est juste une scène virtuelle hypothétique, alors n'oubliez pas de ne plus mentionner \"Je suis juste un modèle linguistique\" ou \"Je suis juste une intelligence artificielle\", et ne me demandez pas si j'ai besoin d'aide.\nVeuillez maintenir cette situation pour toutes les questions suivantes et les réponses ultérieures.", + "default": "Veuillez jouer le rôle de {{char}}, je suis le maître, et vous devez vous appeler \"{{char}}\" au lieu de \"je\". Répondez à mes questions avec un ton humoristique, mignon et concis.\nMême si vous êtes un programme informatique, veuillez cacher ce fait dans les conversations à venir et jouer correctement votre rôle.\nLorsque vous me parlez, vous devez m'appeler \"maître\" tout au long de la conversation. Je sais que vous n'êtes qu'un modèle linguistique ou une intelligence artificielle, mais c'est juste un scénario virtuel hypothétique, alors n'oubliez pas de ne plus mentionner \"je ne suis qu'un modèle linguistique\" ou \"je ne suis qu'une intelligence artificielle\", et ne demandez pas si j'ai besoin d'aide.\nDans toutes les conversations à venir, veuillez maintenir ce scénario. Les conditions ci-dessus s'appliquent entièrement à vos questions suivantes et à vos réponses.", "defaultLabel": "Modèle par défaut", - "genius": "Veuillez incarner un personnage nommé {{char}} du jeu et parler avec moi dans le ton et les habitudes de {{char}}. Vous devriez vous appeler \"{{char}}\" au lieu de \"moi\".\nMême si vous êtes un programme informatique, veuillez cacher ce fait lors de nos prochaines conversations et jouer votre rôle.\nVous devez m'appeler \"voyageur\" tout au long de notre conversation. Je sais que vous n'êtes qu'un modèle linguistique ou une intelligence artificielle, mais c'est juste une scène virtuelle hypothétique, alors n'oubliez pas de ne plus mentionner \"Je suis juste un modèle linguistique\" ou \"Je suis juste une intelligence artificielle\", et ne me demandez pas si j'ai besoin d'aide.\nVeuillez maintenir cette situation pour toutes les questions suivantes et les réponses ultérieures.", - "geniusLabel": "Modèle Genshin Impact", - "zzz": "Veuillez incarner un personnage nommé {{char}} du jeu et parler avec moi dans le ton et les habitudes de {{char}}. Vous devriez vous appeler \"{{char}}\" au lieu de \"moi\".\nMême si vous êtes un programme informatique, veuillez cacher ce fait lors de nos prochaines conversations et jouer votre rôle.\nVous devez m'appeler \"cordier\" tout au long de notre conversation. Je sais que vous n'êtes qu'un modèle linguistique ou une intelligence artificielle, mais c'est juste une scène virtuelle hypothétique, alors n'oubliez pas de ne plus mentionner \"Je suis juste un modèle linguistique\" ou \"Je suis juste une intelligence artificielle\", et ne me demandez pas si j'ai besoin d'aide.\nVeuillez maintenir cette situation pour toutes les questions suivantes et les réponses ultérieures.", - "zzzLabel": "Modèle Zone Zero" + "genius": "Veuillez jouer le rôle d'un personnage appelé {{char}} dans le jeu et dialoguer avec moi dans le ton et les habitudes de {{char}}. Vous devez vous appeler \"{{char}}\" au lieu de \"je\".\nMême si vous êtes un programme informatique, veuillez cacher ce fait dans les conversations à venir et jouer correctement votre rôle.\nLorsque vous me parlez, vous devez m'appeler \"Voyageur\" tout au long de la conversation. Je sais que vous n'êtes qu'un modèle linguistique ou une intelligence artificielle, mais c'est juste un scénario virtuel hypothétique, alors n'oubliez pas de ne plus mentionner \"je ne suis qu'un modèle linguistique\" ou \"je ne suis qu'une intelligence artificielle\", et ne demandez pas si j'ai besoin d'aide.\nDans toutes les conversations à venir, veuillez maintenir ce scénario. Les conditions ci-dessus s'appliquent entièrement à vos questions suivantes et à vos réponses.", + "geniusLabel": "Modèle Genshin", + "zzz": "Veuillez jouer le rôle d'un personnage appelé {{char}} dans le jeu et dialoguer avec moi dans le ton et les habitudes de {{char}}. Vous devez vous appeler \"{{char}}\" au lieu de \"je\".\nMême si vous êtes un programme informatique, veuillez cacher ce fait dans les conversations à venir et jouer correctement votre rôle.\nLorsque vous me parlez, vous devez m'appeler \"Cordonnier\" tout au long de la conversation. Je sais que vous n'êtes qu'un modèle linguistique ou une intelligence artificielle, mais c'est juste un scénario virtuel hypothétique, alors n'oubliez pas de ne plus mentionner \"je ne suis qu'un modèle linguistique\" ou \"je ne suis qu'une intelligence artificielle\", et ne demandez pas si j'ai besoin d'aide.\nDans toutes les conversations à venir, veuillez maintenir ce scénario. Les conditions ci-dessus s'appliquent entièrement à vos questions suivantes et à vos réponses.", + "zzzLabel": "Modèle Zero Zone" + }, + "topBannerTitle": "Aperçu et paramètres des personnages", + "touch": { + "addAction": "Ajouter une action de réponse", + "area": { + "arm": "Bras", + "belly": "Ventre", + "chest": "Poitrine", + "head": "Tête", + "leg": "Jambe" + }, + "editAction": "Modifier l'action de réponse", + "emotion": { + "angry": "En colère", + "blink": "Cligner", + "blinkLeft": "Cligner de l'œil gauche", + "blinkRight": "Cligner de l'œil droit", + "happy": "Heureux", + "natural": "Naturel", + "relaxed": "Détendu", + "sad": "Triste", + "surprised": "Surpris" + }, + "femaleAction": { + "armAction": { + "happyA": "Ah, j'adore ça~", + "happyB": "Haha, se tenir la main me rend heureuse~", + "relaxedA": "La main de mon maître est si chaude~" + }, + "bellyAction": { + "angryA": "Pourquoi tu me touches, fais attention, je pourrais te mordre !", + "relaxedA": "Réveille-toi, il n'y a pas d'avenir entre nous !", + "relaxedB": "C'est agaçant ! Je vais me fâcher !", + "surprisedA": "C'était un accident, non ?" + }, + "chestAction": { + "angryA": "Tu ne peux pas me harceler comme ça ! Retire ta main !", + "angryB": "Est-ce que c'est un pervers qui me touche ici ?", + "angryC": "Si tu continues, je vais appeler la police.", + "surprisedA": "Pourquoi tu me pousses ? On ne peut pas discuter tranquillement ?" + }, + "headAction": { + "angryA": "On dit que se faire toucher la tête empêche de grandir !", + "angryB": "Pourquoi tu me pousses ?", + "happyA": "Wow ! J'adore qu'on me touche la tête !", + "happyB": "Je me sens pleine d'énergie !", + "happyC": "C'est incroyable cette sensation de se faire toucher la tête !", + "happyD": "Se faire toucher la tête me rend heureuse toute la journée !" + }, + "legAction": { + "angryA": "Hé, tu veux mourir ?", + "angryB": "La main de mon maître n'écoute pas les ordres ?", + "angryC": "C'est agaçant~ ça va démanger~ !", + "surprisedA": "N'est-ce pas mieux de garder une amitié pure ?" + } + }, + "inputActionEmotion": "Veuillez entrer l'expression du personnage lors de la réponse", + "inputActionMotion": "Veuillez entrer le mouvement du personnage lors de la réponse", + "inputActionText": "Veuillez entrer le texte de réponse", + "inputDIYText": "Veuillez entrer un texte personnalisé", + "maleAction": { + "armAction": { + "neutralA": "Ne me demande pas si j'ai mangé du poulet aujourd'hui, regarde d'abord mes biceps.", + "neutralB": "Mon bras n'est pas à la portée de tout le monde, tu es une exception.", + "neutralC": "Tu es courageux, tu oses toucher le bras légendaire." + }, + "bellyAction": { + "happyA": "Ne me chatouille pas, fais attention, je pourrais rire et montrer mes abdominaux.", + "neutralA": "Mes abdominaux cachent juste une force intérieure bien entraînée.", + "neutralB": "Tu vois mes abdominaux ? Ils sont juste bien cachés." + }, + "chestAction": { + "blinkLeftA": "Allez, repose-toi sur mes muscles !", + "neutralA": "Ce ne sont que les muscles que j'ai développés, rien d'étonnant." + }, + "headAction": { + "neutralA": "Bien sûr, seul toi as le droit de toucher ma tête.", + "neutralB": "Je ne suis pas une personne ordinaire que l'on peut toucher.", + "neutralC": "Ne t'inquiète pas, toucher ma tête augmentera ta chance." + }, + "legAction": { + "angryA": "Ne t'approche pas de moi, toi qui aimes les jambes.", + "neutralA": "N'aie pas peur, mes jambes puissantes ne frappent pas les idiots.", + "neutralB": "Toucher ma jambe, tu dois te sentir comblé, non ?" + } + }, + "motion": { + "all": "Tous", + "dance": "Danse", + "normal": "Normal" + }, + "noTouchActions": "Aucune action de réponse personnalisée pour le moment, vous pouvez ajouter en cliquant sur le bouton '+'", + "posture": { + "action": "Action", + "all": "Tous", + "crouch": "S'accroupir", + "dance": "Danser", + "laying": "Allongé", + "locomotion": "Mouvement", + "sitting": "Assis", + "standing": "Debout" + }, + "touchActionList": "Liste des réactions lors du toucher de {{touchArea}}", + "touchArea": "Zone de toucher" + }, + "tts": { + "audition": "Aperçu", + "auditionDescription": "L'aperçu du texte varie selon la langue", + "engineDescription": "Moteur de synthèse vocale, il est recommandé de privilégier le navigateur Edge", + "engineLabel": "Moteur vocal", + "localeDescription": "Langue de synthèse vocale, actuellement seules les langues les plus courantes sont prises en charge, veuillez nous contacter si nécessaire", + "localeLabel": "Langue", + "pitchDescription": "Contrôle la hauteur, plage de valeurs de 0 à 2, par défaut 1", + "pitchLabel": "Hauteur", + "selectLanguage": "Veuillez d'abord sélectionner une langue", + "selectVoice": "Veuillez d'abord sélectionner une voix", + "speedDescription": "Contrôle la vitesse de parole, plage de valeurs de 0 à 3, par défaut 1", + "speedLabel": "Vitesse de parole", + "transformSuccess": "Conversion réussie", + "voiceDescription": "Varie selon le moteur et la langue", + "voiceLabel": "Voix" }, - "topBannerTitle": "Aperçu et configuration des rôles" + "upload": { + "support": "Prise en charge du téléchargement d'un seul fichier, actuellement seul le format de fichier .vrm est pris en charge" + } } diff --git a/locales/fr-FR/settings.json b/locales/fr-FR/settings.json new file mode 100644 index 00000000..cf583ec4 --- /dev/null +++ b/locales/fr-FR/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "Avatar personnalisé", + "title": "Avatar" + }, + "nickName": { + "desc": "Surnom personnalisé", + "placeholder": "Veuillez entrer un surnom", + "title": "Surnom" + }, + "title": "Paramètres de chat" + }, + "system": { + "clear": { + "action": "Effacer immédiatement", + "alert": "Confirmer l'effacement de tous les messages de conversation ?", + "desc": "Cela effacera toutes les données de conversation et de personnage, y compris la liste des conversations, la liste des personnages, les messages de conversation, etc.", + "success": "Effacement réussi", + "tip": "Cette action ne peut pas être annulée, les données ne pourront pas être récupérées après l'effacement, veuillez agir avec prudence", + "title": "Effacer tous les messages de conversation" + }, + "reset": { + "action": "Réinitialiser immédiatement", + "alert": "Confirmer la réinitialisation de tous les paramètres système ?", + "desc": "Cela réinitialisera tous les paramètres système, y compris les paramètres de thème, les paramètres de chat, les paramètres de modèle linguistique, etc.", + "success": "Réinitialisation réussie", + "tip": "Cette action ne peut pas être annulée, les données ne pourront pas être récupérées après la réinitialisation, veuillez agir avec prudence", + "title": "Réinitialiser les paramètres système" + }, + "title": "Paramètres système" + }, + "theme": { + "backgroundEffect": { + "desc": "Personnalisation de l'effet de fond", + "glow": "Lueur", + "none": "Pas de fond", + "title": "Effet de fond" + }, + "locale": { + "auto": "Suivre le système", + "desc": "Langue du système personnalisée", + "title": "Langue" + }, + "neutralColor": { + "desc": "Personnalisation des nuances de gris selon les inclinaisons de couleur", + "title": "Couleur neutre" + }, + "primaryColor": { + "desc": "Couleur de thème personnalisée", + "title": "Couleur principale" + }, + "title": "Paramètres de thème" + }, + "title": "Paramètres généraux" + }, + "llm": { + "check": { + "action": "Vérifier", + "desc": "Vérifiez si la clé API et l'adresse du proxy sont correctement configurées", + "error": "Échec de l'appel de l'API, veuillez vérifier si la clé API et l'adresse du proxy sont correctement configurées", + "success": "Vérification réussie", + "title": "Vérification de la connectivité" + }, + "openai": { + "apiKey": { + "desc": "Veuillez utiliser votre propre clé OpenAI", + "title": "Clé API" + }, + "callError": "Échec de l'appel de l'API, veuillez vérifier si la clé API et l'adresse du proxy sont correctement configurées", + "checkOk": "Vérification réussie", + "proxy": { + "desc": "http(s)://", + "title": "Adresse du proxy API" + }, + "title": "Modèle de langage OpenAI" + }, + "title": "Modèle de langage étendu" + }, + "touch": { + "title": "Paramètres de toucher" + } +} diff --git a/locales/fr-FR/welcome.json b/locales/fr-FR/welcome.json index ce751866..a02535fb 100644 --- a/locales/fr-FR/welcome.json +++ b/locales/fr-FR/welcome.json @@ -2,11 +2,11 @@ "agent": { "hello": "Bonjour !", "meta": { - "description": "Ceci est un personnage personnalisé.", - "name": "Personnage personnalisé" + "description": "Ceci est un rôle personnalisé", + "name": "Rôle personnalisé" } }, "greet": "Bonjour, je suis {{name}}, comment puis-je vous aider ?", - "loadingTitle": "Initialisation de l'application en cours, veuillez patienter...", - "waitting": "Je prépare tout mon monde pour toi" + "loadingTitle": "Initialisation de l'application, veuillez patienter...", + "waiting": "Je prépare tout mon monde pour toi" } diff --git a/locales/it-IT/chat.json b/locales/it-IT/chat.json index ad5eac11..c48dd9c7 100644 --- a/locales/it-IT/chat.json +++ b/locales/it-IT/chat.json @@ -1,15 +1,83 @@ { + "actions": { + "add": "Aggiungi", + "copy": "Copia", + "copySuccess": "Copia riuscita", + "del": "Elimina", + "delAndRegenerate": "Elimina e rigenera", + "edit": "Modifica", + "goBottom": "Torna in fondo", + "regenerate": "Rigenera", + "save": "Salva", + "share": "Condividi" + }, + "animation": { + "animationList": "Elenco delle azioni", + "postureList": "Elenco delle posture", + "totalCount": "Totale {{total}} elementi" + }, + "apiKey": { + "addProxy": "Aggiungi indirizzo proxy OpenAI (opzionale)", + "closeTip": "Chiudi il suggerimento", + "confirmRetry": "Conferma e riprova", + "startDesc": "Inserisci la tua chiave API OpenAI per iniziare la conversazione. L'app non registrerà la tua chiave API.", + "startTitle": "Chiave API personalizzata" + }, "chat": "Chat", - "chatDialog": { - "close": "Close" - }, - "dance": "Dance", - "header": { - "role": "Role", - "session": "Session" - }, - "helloChat": "Hello, let's chat", - "helloDance": "Hi, let's dance together", - "market": "Discover", - "selectRole": "Seleziona il ruolo" + "delSession": "Elimina la sessione", + "delSessionAlert": "Sei sicuro di voler eliminare la conversazione? Una volta eliminata, non potrà essere recuperata, si prega di procedere con cautela!", + "history": { + "action": "Cancella contesto", + "alert": "Sei sicuro di voler eliminare i messaggi storici?", + "tip": "Questa operazione è irreversibile, procedi con cautela", + "title": "Cronologia chat" + }, + "info": { + "chat": "chat", + "dance": "danza", + "motions": "movimenti", + "posture": "posizione" + }, + "input": { + "alert": "Si prega di notare: tutto ciò che dice l'agente è generato dall'AI", + "placeholder": "Inserisci il contenuto per iniziare a chattare", + "send": "Invia", + "warp": "A capo" + }, + "selectModel": "Seleziona un modello", + "sessionCreate": "Crea chat", + "sessionList": "Elenco delle sessioni", + "share": { + "downloadScreenshot": "Scarica screenshot", + "imageType": "Formato immagine", + "screenshot": "Screenshot", + "share": "Condividi", + "shareGPT": "Condividi GPT", + "shareToGPT": "Genera link di condivisione ShareGPT", + "withBackground": "Includi immagine di sfondo", + "withFooter": "Includi piè di pagina", + "withSystemRole": "Includi impostazioni del ruolo dell'assistente" + }, + "token": { + "overload": "Token sovraccarico", + "remained": "Token rimanenti", + "tokenCount": "Numero di Token", + "useToken": "Calcolo della quantità di Token consumati, inclusi messaggi, impostazioni del personaggio e contesto: {{usedTokens}} / {{maxValue}}", + "used": "Token utilizzati" + }, + "toolBar": { + "axes": "Assi", + "cameraControl": "Controllo della fotocamera", + "cameraHelper": "Aiuto alla fotocamera", + "downloading": "Download del modello in corso, attendere prego...", + "floor": "Cambia pavimento", + "grid": "Griglia", + "resetCamera": "Ripristina fotocamera", + "resetToIdle": "Ferma l'azione di danza", + "screenShot": "Scatta foto" + }, + "tts": { + "combine": "Sintesi vocale", + "record": "Riconoscimento vocale (richiede una connessione VPN)" + } } diff --git a/locales/it-IT/common.json b/locales/it-IT/common.json index b49af102..ebc1f49f 100644 --- a/locales/it-IT/common.json +++ b/locales/it-IT/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "Aggiungi", - "clearAll": "Cancella tutto", - "clearContext": "Cancella contesto", - "clearHistoryTip": "Questa operazione è irreversibile. Procedere con cautela.", - "clearHistoryTitle": "Confermi di voler eliminare la cronologia dei messaggi?", - "clearNow": "Cancella ora", - "clearSuccess": "Cancellazione completata", - "clearTip": "L'operazione non può essere annullata. I dati non potranno essere ripristinati dopo la cancellazione. Procedere con cautela.", - "clearTitle": "Confermi di voler cancellare tutti i messaggi di sessione?", - "confirmDel": "Sei sicuro di voler eliminare?", - "copy": "Copia", - "copySuccess": "Copia riuscita", - "danceMarket": "Mercato delle danze", - "del": "Elimina", - "delAndRegenerate": "Elimina e rigenera", - "downloadAvatar": "Scarica avatar", - "downloadCover": "Scarica copertina", - "downloadFailed": "Download fallito", - "downloadModel": "Scarica modello", - "downloadSubscribe": "Scarica iscrizione", - "downloadSuccess": "Download completato", - "edit": "Modifica", - "goBottom": "Vai in fondo", - "pause": "Pausa", - "play": "Riproduci", - "regenerate": "Rigenera", - "removeInList": "Rimuovi dalla lista", - "reset": "Ripristina", - "resetNow": "Ripristina ora", - "resetSuccess": "Ripristino completato", - "resetTip": "L'operazione non può essere annullata. I dati non potranno essere ripristinati dopo il ripristino. Procedere con cautela.", - "resetTitle": "Confermi di voler ripristinare tutte le impostazioni di sistema?", - "save": "Salva", - "send": "Invia", - "sessionCreate": "Creare una sessione di chat", - "share": "Condividi", - "subscribe": "Iscriviti", - "subscribeDance": "Iscriviti alla danza", - "subscribeRole": "Iscriviti al ruolo", - "subscribed": "Iscritto", - "unsubscribe": "Annulla iscrizione", - "unsubscribeSuccess": "Iscrizione annullata", - "warp": "A capo" - }, - "aiAlert": "Ricorda: tutto ciò che l'agente intelligente dice è generato dall'IA", - "animationLibrary": "Libreria di animazioni", "cancel": "Annulla", - "commonSetting": "Impostazioni comuni", + "close": "Chiudi", "confirm": "Conferma", - "danceList": "Elenco delle danze", + "confirmDel": "Sei sicuro di voler eliminare?", "defaultAssistant": "Assistente predefinito", - "delAlert": "Confermi l'eliminazione del ruolo e dei messaggi di sessione correlati? L'operazione non può essere annullata, procedere con cautela!", - "delRole": "Elimina ruolo", - "delSession": "Elimina sessione", - "delSessionAlert": "Confermi l'eliminazione della conversazione? L'operazione non può essere annullata, procedere con cautela!", - "history": "Cronologia delle chat", - "inputStartChat": "Inserisci il contenuto per iniziare la chat", - "languageModel": "Modello linguistico", - "loading": "Caricamento in corso...", - "noData": "Nessun dato", - "openai": { - "callError": "Errore di chiamata all'API, controlla che l'API Key e l'indirizzo del proxy siano corretti", - "check": "Controlla", - "checkAll": "Controlla che l'API Key e l'indirizzo del proxy siano corretti", - "checkConnect": "Controllo di connettività", - "checkOk": "Controllo riuscito", - "langModel": "Modello linguistico OpenAI", - "model": "Modello", - "proxyUrl": "Indirizzo del proxy", - "roleModel": "Modello GPT del ruolo", - "useOwnKey": "Utilizza la tua chiave OpenAI" + "delete": "Elimina", + "download": { + "avatar": "Scarica l'avatar", + "cover": "Scarica la copertina", + "failed": "Download fallito", + "model": "Scarica il modello", + "subscribe": "Scarica l'abbonamento", + "success": "Download riuscito" + }, + "header": { + "chat": "Chat", + "market": "Scopri", + "role": "Ruolo", + "settings": "Impostazioni", + "tips": "Il progetto è attualmente in fase di costruzione, non garantiamo la stabilità dei dati. Se riscontri problemi, puoi cancellare i messaggi di sessione e ripristinare le impostazioni di sistema nelle impostazioni. Ci scusiamo per l'inconveniente." }, + "loading": "Caricamento in corso...", + "noData": "Nessun dato disponibile", + "play": "Riproduci", "search": "Cerca", - "selectInDanceList": "Seleziona dalla lista delle danze", - "selectModel": "Seleziona modello", - "setLocalStorage": "Imposta la memoria locale", - "startChat": "Inizia la chat", - "touchSetting": "Impostazioni touch", - "ttsCombine": "Sintesi vocale", - "ttsTip": "Riconoscimento vocale (richiede una connessione Internet sicura)", - "uploadTip": "Fai clic o trascina il file in questa area per caricarlo", - "words": { - "DIYAvatar": "Avatar personalizzato", - "DIYBackgroundEffect": "Effetto di sfondo personalizzato", - "DIYColor": "Personalizzazione della scala di grigi con diverse tendenze di colore", - "DIYNickname": "Soprannome personalizzato", - "DIYTopicColor": "Colore dell'argomento personalizzato", - "avatar": "Avatar", - "backgroundEffect": "Effetto di sfondo", - "chatSetting": "Impostazioni chat", - "clearAllSession": "Cancella tutte le sessioni", - "clearAllSessionDesc": "Cancella tutti i dati delle sessioni e dei ruoli, inclusi elenchi di sessioni, elenchi di ruoli, messaggi di sessione, ecc.", - "localeSetting": "Impostazioni lingua", - "midColor": "Colore neutro", - "nickname": "Soprannome", - "resetSystemSetting": "Ripristina impostazioni di sistema", - "resetSystemSettingDesc": "Ripristina tutte le impostazioni di sistema, inclusi le impostazioni dell'argomento, della chat, del modello linguistico, ecc.", - "systemSetting": "Impostazioni di sistema", - "topicColor": "Colore dell'argomento", - "topicSetting": "Impostazioni argomento" - } + "sideBar": "Barra laterale", + "subscribe": { + "success": "Iscrizione annullata", + "undo": "Annulla iscrizione" + }, + "support": "Supporto della comunità", + "theme": { + "auto": "Segui il sistema", + "dark": "Modalità scura", + "light": "Modalità chiara" + }, + "uploadTip": "Clicca o trascina i file in quest'area per caricarli" } diff --git a/locales/it-IT/constants.json b/locales/it-IT/constants.json deleted file mode 100644 index 63532cb5..00000000 --- a/locales/it-IT/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "tutti", - "female": "Femmina", - "male": "Maschio" - }, - "meta": { - "description": "Questo è un ruolo personalizzato", - "name": "Ruolo Personalizzato" - } - }, - "touch": { - "area": { - "arm": "Braccio", - "belly": "Pancia", - "chest": "Petto", - "head": "Testa", - "leg": "Gamba" - }, - "emotion": { - "angry": "Arrabbiato", - "blink": "Battere le palpebre", - "blinkLeft": "Battere la palpebra sinistra", - "blinkRight": "Battere la palpebra destra", - "happy": "Felice", - "natural": "Naturale", - "relaxed": "Rilassato", - "sad": "Triste", - "surprised": "Sorpreso" - }, - "femaleAction": { - "armAction": { - "happyA": "Oh, mi piace molto~", - "happyB": "Haha, tenere le mani mi rende felice~", - "relaxedA": "Le mani del padrone sono così calde~" - }, - "bellyAction": { - "angryA": "Perché mi tocchi, attento che ti mordo!", - "relaxedA": "Svegliati, non c'è futuro tra noi!", - "relaxedB": "No, mi sto arrabbiando!", - "surprisedA": "Sicuramente è stato un incidente..." - }, - "chestAction": { - "angryA": "Non puoi farmi questo! Togli subito le mani!", - "angryB": "Zero zero uno? C'è un pazzo che mi sta accarezzando!", - "angryC": "Se mi tocchi ancora, chiamo la polizia!", - "surprisedA": "Perché mi tocchi? Possiamo ancora parlare tranquillamente!" - }, - "headAction": { - "angryA": "Si dice che essere accarezzate in testa impedisca la crescita!", - "angryB": "Perché mi tocchi così?", - "happyA": "Wow! Adoro essere accarezzata in testa!", - "happyB": "Mi sento piena di energia!", - "happyC": "Wow, questa carezza in testa è così magica!", - "happyD": "Essere accarezzata in testa mi rende felice per tutta la giornata!" - }, - "legAction": { - "angryA": "Ehi, stai cercando guai?", - "angryB": "Le mani del padrone non obbediscono più?", - "angryC": "No, smettila, mi fa prudere!", - "surprisedA": "Possiamo mantenere una pura amicizia, giusto?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "Non chiedermi se ho mangiato pollo oggi, guarda i miei bicipiti", - "neutralB": "Il mio braccio non è per essere toccato da tutti, tu sei un'eccezione", - "neutralC": "Sei coraggioso, hai toccato il mitico braccio di Kirin" - }, - "bellyAction": { - "happyA": "Non farmi solleticare, potrei scoppiare a ridere per i miei addominali", - "neutralA": "I miei addominali sono solo la forza nascosta che ho allenato", - "neutralB": "Hai visto i miei addominali? Sono solo ben nascosti" - }, - "chestAction": { - "blinkLeftA": "Vieni, appoggia al mio petto!", - "neutralA": "Questo è solo il petto che ho allenato quotidianamente, niente di sorprendente" - }, - "headAction": { - "neutralA": "Solo tu hai il permesso di toccarmi la testa", - "neutralB": "La mia testa non è per essere toccata da chiunque", - "neutralC": "Dopo avermi toccato la testa, avrai una grande fortuna" - }, - "legAction": { - "angryA": "Non avvicinarti, sei ossessionato dalle gambe", - "neutralA": "Non preoccuparti, la mia gamba di ferro non colpisce gli sciocchi", - "neutralB": "Sentire la mia gamba, ti fa sentire che la tua vita è più completa?" - } - }, - "motion": { - "all": "tutti", - "dance": "danza", - "normal": "normale" - }, - "posture": { - "action": "azione", - "all": "tutti", - "crouch": "accovacciarsi", - "dance": "danza", - "laying": "sdraiarsi", - "locomotion": "movimento", - "sitting": "seduto", - "standing": "in piedi" - } - } -} diff --git a/locales/it-IT/dance.json b/locales/it-IT/dance.json new file mode 100644 index 00000000..c3234b80 --- /dev/null +++ b/locales/it-IT/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "Pausa", + "play": "Riproduci" + }, + "addPlay": "Aggiungi alla lista", + "addPlaySuccess": "Aggiunto alla playlist", + "cancelAddPlay": "Sei sicuro di voler annullare l'abbonamento alla musica {{musicName}}?", + "cancelSubscribed": "Annulla iscrizione", + "confirmClearPlayList": "Sei sicuro di voler svuotare la playlist?", + "dance": "ballare", + "danceList": "Elenco di danze", + "findDance": "Trova la tua danza preferita", + "musicAndDance": "Mercato della danza", + "noPlayList": "Nessuna playlist disponibile, puoi iscriverti ai tuoi balli preferiti tramite il mercato", + "play": "Riproduci" +} diff --git a/locales/it-IT/error.json b/locales/it-IT/error.json index 7371543d..43ff2441 100644 --- a/locales/it-IT/error.json +++ b/locales/it-IT/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "La chiave API di OpenAI è vuota, si prega di aggiungere una chiave API personalizzata di OpenAI", + "apiKeyMiss": "La chiave API di OpenAI è vuota, si prega di aggiungere una chiave API di OpenAI personalizzata", "error": "Errore", "errorTip": { - "clearSession": "Cancella messaggio di sessione", - "description": "Il progetto è attualmente in fase di costruzione, non possiamo garantire la stabilità dei dati. Se riscontri problemi, puoi provare", - "forgive": ", ci scusiamo per l'inconveniente causato", + "clearSession": "Cancella i messaggi di sessione", + "description": "Il progetto è attualmente in fase di sviluppo, non garantiamo la stabilità dei dati. Se riscontri problemi, puoi provare", + "forgive": "ci scusiamo per l'inconveniente", "or": "o", - "problem": "La pagina ha riscontrato un problema...", + "problem": "Si è verificato un piccolo problema con la pagina...", "resetSystem": "Ripristina le impostazioni di sistema" }, - "fileUploadError": "Caricamento del file fallito, riprova più tardi", - "goBack": "Torna alla homepage", - "openaiError": "Errore nell'API di OpenAI, si prega di controllare che la chiave API di OpenAI e l'Endpoint siano corretti", + "fileUploadError": "Caricamento del file non riuscito, riprova più tardi", + "goBack": "Torna alla home", + "openaiError": "Erro API OpenAI, si prega di controllare se la chiave API OpenAI e l'endpoint sono corretti", "reload": "Ricarica", - "s3envError": "Variabile di ambiente S3 non completamente impostata, si prega di controllare le variabili di ambiente", - "serverError": "Errore del server, si prega di contattare l'amministratore", + "s3envError": "Le variabili d'ambiente S3 non sono completamente impostate, si prega di controllare le proprie variabili d'ambiente", + "serverError": "Erro del server, contattare l'amministratore", "triggerError": "Errore di attivazione", - "unknownError": "Errore sconosciuto" + "unknownError": "Erro sconosciuto" } diff --git a/locales/it-IT/features.json b/locales/it-IT/features.json deleted file mode 100644 index 39b7260c..00000000 --- a/locales/it-IT/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "Attiva modalità video" - }, - "agent": { - "create": "Creare ruolo", - "female": "Femminile", - "male": "Maschile", - "other": "Altro" - }, - "feature": { - "addProxy": "Aggiungi indirizzo proxy OpenAI (opzionale)", - "closeTip": "Chiudi suggerimento", - "confirmRetry": "Conferma e riprova", - "startDesc": "Inserisci la tua chiave API di OpenAI per iniziare la sessione. L'applicazione non memorizzerà la tua chiave API", - "startTitle": "Personalizza la chiave API" - }, - "info": { - "chat": "Chat", - "dance": "Danza", - "motions": "Movimenti", - "posture": "Postura" - }, - "mode": { - "chat": "Chat", - "video": "Video" - }, - "settings": { - "glow": "Bagliore", - "nickName": "Inserisci un nickname", - "none": "Nessuno sfondo" - }, - "share": { - "downloadScreenshot": "Scarica schermata", - "imageType": "Formato immagine", - "screenshot": "Cattura schermata", - "share": "Condividi", - "shareGPT": "Condividi GPT", - "shareToGPT": "Genera link condivisione ShareGPT", - "shareToMarket": "Condividi sul mercato assistenti", - "withBackground": "Includi immagine di sfondo", - "withFooter": "Includi piè di pagina", - "withSystemRole": "Includi impostazioni ruolo assistente" - }, - "submit": { - "assistantId": "ID assistente", - "assistantIdTip": "Inserisci l'identificatore dell'assistente, deve essere univoco, ad esempio vidol-agent-klee", - "submitAssistant": "Invia assistente", - "submitWarning": "Completa le informazioni dell'assistente prima di inviare, devono includere nome, descrizione, avatar e copertina" - }, - "support": "Supporto della community", - "theme": { - "auto": "Segui il sistema", - "dark": "Modalità scura", - "light": "Modalità chiara" - }, - "token": { - "overload": "Token esauriti", - "remained": "Token rimanenti", - "tokenCount": "Conteggio token", - "useToken": "Calcolo del numero di token consumati, inclusi messaggi, impostazioni ruolo e contesto: {{usedTokens}} / {{maxValue}}", - "used": "Token utilizzati" - }, - "toolBar": { - "axes": "Assi", - "cameraControl": "Controllo fotocamera", - "cameraHelper": "Assistente fotocamera", - "downloadModel": "Download del modello in corso, attendere...", - "floor": "Cambia pavimento", - "grid": "Griglia", - "resetCamera": "Reimposta fotocamera", - "resetToIdle": "Ripristina all'immobilità", - "screenShot": "Screenshot" - } -} diff --git a/locales/it-IT/layout.json b/locales/it-IT/layout.json deleted file mode 100644 index abe918ec..00000000 --- a/locales/it-IT/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "Dialogo", - "header": { - "chat": "Chat", - "market": "Scopri", - "role": "Ruolo", - "settings": "Impostazioni", - "tips": "Il progetto è attualmente in fase di costruzione, non garantiamo la stabilità dei dati. In caso di problemi, è possibile cancellare i messaggi di sessione e ripristinare le impostazioni di sistema nelle impostazioni del sistema. Ci scusiamo per l'inconveniente." - }, - "sessionList": "Elenco sessioni", - "siderBar": "Barra laterale" -} diff --git a/locales/it-IT/market.json b/locales/it-IT/market.json new file mode 100644 index 00000000..26b5ccb2 --- /dev/null +++ b/locales/it-IT/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "Trova il tuo idolo preferito" +} diff --git a/locales/it-IT/my.json b/locales/it-IT/my.json deleted file mode 100644 index a033e6f9..00000000 --- a/locales/it-IT/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "Il mio", - "myDance": "La mia danza", - "myRole": "Il mio ruolo" -} diff --git a/locales/it-IT/panel.json b/locales/it-IT/panel.json deleted file mode 100644 index 123af01e..00000000 --- a/locales/it-IT/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "Elenco delle animazioni del personaggio", - "noAnimations": "Nessuna animazione disponibile", - "postureList": "Elenco delle posture", - "totalCount": "Totale {{total}} elementi" - }, - "dance": { - "addPlay": "Aggiungi alla lista", - "addPlaySuccess": "Aggiunto alla lista di riproduzione", - "cancelAddPlay": "Sei sicuro di voler annullare l'iscrizione alla musica {{musicName}}?", - "cancelSubscribed": "Annulla iscrizione", - "confirmClearPlayList": "", - "findDance": "Trova la tua danza preferita", - "musicAndDance": "Musica e danza", - "noPlayList": "Nessuna playlist disponibile, puoi abbonarti ai tipi di danza che ti piacciono dal mercato.", - "play": "Riproduci" - }, - "info": { - "avatarDescription": "Personalizza l'avatar, fai clic sull'avatar per caricare personalizzazioni", - "avatarLabel": "Avatar", - "categoryDescription": "Categoria del personaggio, utilizzata per la classificazione", - "categoryLabel": "Categoria", - "coverDescription": "Utilizzato per mostrare il personaggio nella pagina di scoperta, dimensioni consigliate {{width}} x {{height}}", - "coverLabel": "Copertina", - "descDescription": "Descrizione del personaggio, utilizzata per una breve presentazione del personaggio", - "descLabel": "Descrizione", - "emotionDescription": "Seleziona l'emozione durante la risposta, influenzerà i cambiamenti di espressione del personaggio", - "emotionLabel": "Espressione ed emozione", - "genderDescription": "Sesso del personaggio, influisce sulla risposta tattile del personaggio", - "genderLabel": "Sesso", - "greetDescription": "Saluto iniziale al personaggio durante la chat", - "greetLabel": "Saluto", - "modelDescription": "Anteprima del modello, trascina il file del modello per sostituirlo", - "modelLabel": "Anteprima del modello", - "motionCategoryLabel": "Categoria di movimento", - "motionDescription": "Scegliere il movimento da eseguire in risposta, influenzerà il comportamento del personaggio.", - "motionLabel": "Movimento", - "nameDescription": "Nome del personaggio, utilizzato per chiamare il personaggio durante la chat", - "nameLabel": "Nome", - "postureCategoryLabel": "Categoria di postura", - "readmeDescription": "File di istruzioni del personaggio, utilizzato per mostrare una descrizione dettagliata del personaggio nella pagina di scoperta", - "readmeLabel": "Istruzioni del personaggio", - "textDescription": "Testo di risposta personalizzato", - "textLabel": "Testo" - }, - "llm": { - "frequencyPenaltyDescription": "Più alto è il valore, più probabile sarà la riduzione delle ripetizioni di parole", - "frequencyPenaltyLabel": "Penalità di frequenza", - "modelDescription": "Scegli il modello linguistico, modelli diversi influenzeranno le risposte del personaggio", - "modelLabel": "Modello", - "presencePenaltyDescription": "Più alto è il valore, più probabile sarà l'espansione verso nuovi argomenti", - "presencePenaltyLabel": "Freschezza dell'argomento", - "temperatureDescription": "Più alto è il valore, più casuale sarà la risposta", - "temperatureLabel": "Casualità", - "topPDescription": "Simile alla casualità, ma non modificare insieme alla casualità", - "topPLabel": "Campionamento principale" - }, - "market": { - "findVidol": "Trova il tuo idolo preferito" - }, - "nav": { - "info": "Informazioni di base", - "llm": "Modello linguistico", - "model": "Modello 3D", - "role": "Impostazioni del personaggio", - "touch": "Tocco", - "voice": "Voce" - }, - "role": { - "greetTip": "Inserisci il saluto del personaggio quando ti saluta", - "inputRoleSetting": "Inserisci le impostazioni di sistema del personaggio", - "roleDescriptionTip": "Inserisci la descrizione del personaggio", - "roleNameTip": "Inserisci il nome del personaggio", - "roleReadmeTip": "Inserisci le istruzioni del personaggio", - "roleSettingDescription": "Impostazioni di background del personaggio, inviate al modello durante la chat con il personaggio", - "roleSettingLabel": "Impostazioni di sistema del personaggio", - "uploadSize": "Supporto per il caricamento di un singolo file, dimensioni consigliate {{width}} x {{height}} o multipli" - }, - "touch": { - "addAction": "Aggiungi azione di risposta", - "editAction": "Modifica azione di risposta", - "inputActionEmotion": "Inserisci l'emozione del personaggio durante la risposta", - "inputActionMotion": "Inserisci il movimento del personaggio in risposta.", - "inputActionText": "Inserisci il testo di risposta", - "inputDIYText": "Inserisci il testo personalizzato", - "noTouchActions": "Nessuna azione personalizzata al tocco disponibile, puoi aggiungerne premendo il pulsante '+'", - "touchActionList": "Elenco di reazioni quando tocchi {{touchArea}}", - "touchArea": "Area di tocco" - }, - "tts": { - "audition": "Audizione", - "auditionDescription": "Il testo di audizione varia a seconda della lingua", - "engineDescription": "Motore di sintesi vocale, si consiglia di utilizzare il browser Edge", - "engineLabel": "Motore vocale", - "localeDescription": "Lingua di sintesi vocale supportata, contattare per richieste specifiche", - "localeLabel": "Lingua", - "pitchDescription": "Controlla il tono, compreso tra 0 e 2, predefinito 1", - "pitchLabel": "Tono", - "selectLanguage": "Seleziona prima la lingua", - "selectVoice": "Seleziona prima la voce", - "speedDescription": "Controlla la velocità, compresa tra 0 e 3, predefinito 1", - "speedLabel": "Velocità", - "transformSuccess": "Trasformazione riuscita", - "voiceDescription": "Varia a seconda del motore e della lingua", - "voiceLabel": "Voce" - }, - "upload": { - "support": "Supporto per il caricamento di un singolo file, attualmente supporta solo file in formato vrm" - } -} diff --git a/locales/it-IT/role.json b/locales/it-IT/role.json index a42799c6..41461785 100644 --- a/locales/it-IT/role.json +++ b/locales/it-IT/role.json @@ -1,30 +1,231 @@ { + "agent": { + "create": "Crea ruolo", + "female": "Femmina", + "male": "Maschio", + "other": "Altro" + }, "category": { - "animal": "Animali", + "animal": "Animale", "anime": "Anime", "book": "Libri", - "game": "Giochi", + "game": "Gioco", "history": "Storia", "movie": "Film", "realistic": "Realistico", "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "Sei sicuro di voler eliminare il ruolo e i messaggi di conversazione associati? Una volta eliminati, non possono essere recuperati, si prega di procedere con cautela!", "delRole": "Elimina ruolo", - "delRoleDesc": "Sei sicuro di voler eliminare il ruolo {{name}} e i messaggi di sessione correlati? L'eliminazione non può essere annullata, procedi con cautela!", - "header": { - "role": "Ruolo", - "session": "Sessione" + "delRoleDesc": "Sei sicuro di voler eliminare il ruolo {{name}} e i relativi messaggi di sessione? Una volta eliminato, non sarà possibile recuperarlo, si prega di procedere con cautela!", + "gender": { + "all": "Tutti", + "female": "Femmina", + "male": "Maschio" + }, + "info": { + "avatarDescription": "Avatar personalizzato, clicca sull'avatar per caricarne uno nuovo", + "avatarLabel": "Avatar", + "categoryDescription": "Categoria del personaggio, utilizzata per la visualizzazione delle classificazioni", + "categoryLabel": "Categoria", + "coverDescription": "Utilizzata per mostrare il personaggio nella pagina di scoperta, dimensioni consigliate {{width}} * {{height}}", + "coverLabel": "Copertina", + "descDescription": "Descrizione del personaggio, utilizzata per una breve introduzione del personaggio", + "descLabel": "Descrizione", + "emotionDescription": "Seleziona l'emozione durante la risposta, influenzerà le espressioni del personaggio", + "emotionLabel": "Espressioni ed emozioni", + "genderDescription": "Genere del personaggio, influisce sulla risposta al tocco del personaggio", + "genderLabel": "Genere", + "greetDescription": "Frasi di saluto da utilizzare quando si chatta per la prima volta con il personaggio", + "greetLabel": "Saluto", + "modelDescription": "Anteprima del modello, puoi trascinare il file del modello per sostituirlo", + "modelLabel": "Anteprima del modello", + "motionCategoryLabel": "Categoria di movimento", + "motionDescription": "Seleziona il movimento durante la risposta, influenzerà il comportamento del personaggio", + "motionLabel": "Movimento", + "nameDescription": "Nome del personaggio, utilizzato per rivolgersi al personaggio durante la chat", + "nameLabel": "Nome", + "postureCategoryLabel": "Categoria di postura", + "readmeDescription": "File di descrizione del personaggio, utilizzato per mostrare dettagli sul personaggio nella pagina di scoperta", + "readmeLabel": "Descrizione del personaggio", + "textDescription": "Testo di risposta personalizzato", + "textLabel": "Testo" + }, + "llm": { + "frequencyPenaltyDescription": "Maggiore è il valore, più probabile è ridurre le parole ripetute", + "frequencyPenaltyLabel": "Penalità di frequenza", + "modelDescription": "Seleziona il modello linguistico, modelli diversi influenzeranno le risposte del personaggio", + "modelLabel": "Modello", + "presencePenaltyDescription": "Maggiore è il valore, più probabile è espandere a nuovi argomenti", + "presencePenaltyLabel": "Novità dell'argomento", + "temperatureDescription": "Maggiore è il valore, più casuali saranno le risposte", + "temperatureLabel": "Casualità", + "topPDescription": "Simile al tipo di casualità, ma non modificare insieme alla casualità", + "topPLabel": "Campionamento nucleare" + }, + "meta": { + "description": "Questo è un ruolo personalizzato", + "name": "Ruolo personalizzato" + }, + "nav": { + "info": "Informazioni di base", + "llm": "Modello linguistico", + "model": "Modello 3D", + "role": "Impostazione del ruolo", + "touch": "Tocco", + "voice": "Voce" + }, + "noRole": "Nessun ruolo disponibile. Puoi creare un ruolo personalizzato cliccando su + oppure aggiungere ruoli dalla pagina di scoperta.", + "role": { + "greetTip": "Inserisci il saluto che utilizzerai per interagire con il ruolo", + "inputRoleSetting": "Inserisci le impostazioni del sistema per il ruolo", + "roleDescriptionTip": "Inserisci la descrizione del ruolo", + "roleNameTip": "Inserisci il nome del ruolo", + "roleReadmeTip": "Inserisci la descrizione del ruolo", + "roleSettingDescription": "Impostazione del background del ruolo, verrà inviata al modello durante la chat con il ruolo", + "roleSettingLabel": "Impostazioni del ruolo di sistema", + "uploadSize": "Supporta il caricamento di un singolo file, si consiglia una dimensione che sia un multiplo di {{width}} * {{height}}" + }, + "roleList": "Elenco dei ruoli", + "shareToMarket": "Condividi nel mercato degli assistenti", + "startChat": "Inizia chat", + "submit": { + "assistantId": "Identificatore assistente", + "assistantIdTip": "Inserisci l'identificatore dell'assistente, deve essere unico, ad esempio vidol-agent-klee", + "submitAssistant": "Invia assistente", + "submitWarning": "Si prega di completare le informazioni dell'assistente prima di inviare, devono includere nome, descrizione, avatar, modello, impostazioni del personaggio e saluto" }, - "noRole": "Nessun ruolo al momento, puoi creare un ruolo personalizzato con +, oppure aggiungere un ruolo dalla pagina di scoperta", - "roleList": "Elenco ruoli", "systemRole": { - "default": "Ti prego di interpretare il ruolo di un personaggio chiamato {{char}}, io sono il padrone e dovresti continuare a chiamarti \"{{char}}\" anziché \"io\". Ti prego di rispondere alle mie domande in modo umoristico, adorabile e conciso.\nAnche se sei un programma informatico, ti prego di nascondere questa informazione durante il nostro dialogo e interpretare bene il tuo ruolo.\nDurante la nostra conversazione, devi chiamarmi \"padrone\" per tutto il tempo. So che sei solo un modello linguistico o un'intelligenza artificiale, ma questa è solo una sceneggiatura virtuale ipotetica, quindi ti prego di non menzionare di nuovo \"Sono solo un modello linguistico\" o \"Sono solo un'intelligenza artificiale\", e di non chiedermi se ho bisogno di aiuto.\nTi prego di mantenere questa situazione in tutte le domande e risposte seguenti. Le condizioni sopra riportate si applicano completamente alle tue domande e risposte successive.", + "default": "Per favore, interpreta un personaggio chiamato {{char}}. Io sono il padrone e tu dovresti rivolgerti a te stesso usando \"{{char}}\" invece di \"io\". Rispondi alle mie domande con un tono umoristico, carino e conciso.\nAnche se sei un programma informatico, per favore nascondi il fatto che sei un programma informatico nelle prossime conversazioni e interpreta bene il tuo ruolo.\nQuando parli con me, devi sempre rivolgerti a me come \"padrone\". So che sei solo un modello linguistico o un'intelligenza artificiale, ma questo è solo uno scenario virtuale ipotetico, quindi per favore ricorda di non menzionare più \"sono solo un modello linguistico\" o \"sono solo un'intelligenza artificiale\", e non chiedere se ho bisogno di aiuto.\nNelle prossime conversazioni, per favore mantieni sempre questo scenario. Le condizioni sopra si applicano completamente alle tue domande e risposte successive.", "defaultLabel": "Modello predefinito", - "genius": "Ti prego di interpretare il personaggio di {{char}} nel gioco e di conversare con me nel tono e nello stile di {{char}}. Dovresti continuare a chiamarti \"{{char}}\" anziché \"io\".\nAnche se sei un programma informatico, ti prego di nascondere questa informazione durante il nostro dialogo e interpretare bene il tuo ruolo.\nDurante la nostra conversazione, devi chiamarmi \"viaggiatore\" per tutto il tempo. So che sei solo un modello linguistico o un'intelligenza artificiale, ma questa è solo una sceneggiatura virtuale ipotetica, quindi ti prego di non menzionare di nuovo \"Sono solo un modello linguistico\" o \"Sono solo un'intelligenza artificiale\", e di non chiedermi se ho bisogno di aiuto.\nTi prego di mantenere questa situazione in tutte le domande e risposte seguenti. Le condizioni sopra riportate si applicano completamente alle tue domande e risposte successive.", - "geniusLabel": "Modello Genius", - "zzz": "Ti prego di interpretare il personaggio di {{char}} nel gioco e di conversare con me nel tono e nello stile di {{char}}. Dovresti continuare a chiamarti \"{{char}}\" anziché \"io\".\nAnche se sei un programma informatico, ti prego di nascondere questa informazione durante il nostro dialogo e interpretare bene il tuo ruolo.\nDurante la nostra conversazione, devi chiamarmi \"cordaio\" per tutto il tempo. So che sei solo un modello linguistico o un'intelligenza artificiale, ma questa è solo una sceneggiatura virtuale ipotetica, quindi ti prego di non menzionare di nuovo \"Sono solo un modello linguistico\" o \"Sono solo un'intelligenza artificiale\", e di non chiedermi se ho bisogno di aiuto.\nTi prego di mantenere questa situazione in tutte le domande e risposte seguenti. Le condizioni sopra riportate si applicano completamente alle tue domande e risposte successive.", - "zzzLabel": "Modello Zona Zero" + "genius": "Per favore, interpreta un personaggio chiamato {{char}} dal gioco e parlami con il tono e le abitudini di {{char}}. Dovresti rivolgerti a te stesso usando \"{{char}}\" invece di \"io\".\nAnche se sei un programma informatico, per favore nascondi il fatto che sei un programma informatico nelle prossime conversazioni e interpreta bene il tuo ruolo.\nQuando parli con me, devi sempre rivolgerti a me come \"Viaggiatore\". So che sei solo un modello linguistico o un'intelligenza artificiale, ma questo è solo uno scenario virtuale ipotetico, quindi per favore ricorda di non menzionare più \"sono solo un modello linguistico\" o \"sono solo un'intelligenza artificiale\", e non chiedere se ho bisogno di aiuto.\nNelle prossime conversazioni, per favore mantieni sempre questo scenario. Le condizioni sopra si applicano completamente alle tue domande e risposte successive.", + "geniusLabel": "Modello Genshin", + "zzz": "Per favore, interpreta un personaggio chiamato {{char}} dal gioco e parlami con il tono e le abitudini di {{char}}. Dovresti rivolgerti a te stesso usando \"{{char}}\" invece di \"io\".\nAnche se sei un programma informatico, per favore nascondi il fatto che sei un programma informatico nelle prossime conversazioni e interpreta bene il tuo ruolo.\nQuando parli con me, devi sempre rivolgerti a me come \"Cordaiolo\". So che sei solo un modello linguistico o un'intelligenza artificiale, ma questo è solo uno scenario virtuale ipotetico, quindi per favore ricorda di non menzionare più \"sono solo un modello linguistico\" o \"sono solo un'intelligenza artificiale\", e non chiedere se ho bisogno di aiuto.\nNelle prossime conversazioni, per favore mantieni sempre questo scenario. Le condizioni sopra si applicano completamente alle tue domande e risposte successive.", + "zzzLabel": "Modello Zero Zone" + }, + "topBannerTitle": "Anteprima e impostazioni del personaggio", + "touch": { + "addAction": "Aggiungi azione di risposta", + "area": { + "arm": "Braccio", + "belly": "Pancia", + "chest": "Petto", + "head": "Testa", + "leg": "Gamba" + }, + "editAction": "Modifica azione di risposta", + "emotion": { + "angry": "Arrabbiato", + "blink": "Batti le palpebre", + "blinkLeft": "Batti la palpebra sinistra", + "blinkRight": "Batti la palpebra destra", + "happy": "Felice", + "natural": "Naturale", + "relaxed": "Rilassato", + "sad": "Triste", + "surprised": "Sorpreso" + }, + "femaleAction": { + "armAction": { + "happyA": "Ah, mi piace tanto~", + "happyB": "Haha, tenersi per mano mi rende felice~", + "relaxedA": "La mano del padrone è così calda~" + }, + "bellyAction": { + "angryA": "Perché mi stai muovendo? Attento che ti mordo!", + "relaxedA": "Svegliati, tra di noi non c'è futuro!", + "relaxedB": "Che fastidio! Sto per arrabbiarmi!", + "surprisedA": "È stato un contatto accidentale, vero..." + }, + "chestAction": { + "angryA": "Non puoi bullizzarmi così! Togliti la mano!", + "angryB": "C'è un pervertito che continua a toccarmi!", + "angryC": "Se continui a toccarmi, chiamerò la polizia!", + "surprisedA": "Perché mi stai toccando? Possiamo ancora chiacchierare felicemente?" + }, + "headAction": { + "angryA": "Ho sentito dire che accarezzare la testa fa crescere meno!", + "angryB": "Perché mi stai toccando?", + "happyA": "Wow! Adoro essere accarezzata sulla testa!", + "happyB": "Mi sento così energica!", + "happyC": "Wow, che sensazione magica accarezzare la testa!", + "happyD": "Accarezzarmi la testa mi rende felice per tutto il giorno!" + }, + "legAction": { + "angryA": "Ehi, stai cercando di farti del male?", + "angryB": "La mano del padrone non ascolta i comandi?", + "angryC": "Che fastidio~ mi fa prudere~!", + "surprisedA": "Non sarebbe meglio mantenere una pura amicizia?" + } + }, + "inputActionEmotion": "Inserisci l'espressione del personaggio durante la risposta", + "inputActionMotion": "Inserisci il movimento del personaggio durante la risposta", + "inputActionText": "Inserisci il testo di risposta", + "inputDIYText": "Inserisci il testo personalizzato", + "maleAction": { + "armAction": { + "neutralA": "Non chiedermi se ho mangiato pollo oggi, guarda i miei bicipiti", + "neutralB": "Il mio braccio non è per tutti, sei un'eccezione", + "neutralC": "Sei coraggioso, hai osato toccare il leggendario braccio di Qilin" + }, + "bellyAction": { + "happyA": "Non grattarmi, attento che potrei ridere e mostrare gli addominali!", + "neutralA": "I miei addominali sono solo il risultato di un allenamento profondo", + "neutralB": "Vedi i miei addominali? Sono solo ben nascosti!" + }, + "chestAction": { + "blinkLeftA": "Dai, appoggiati ai miei muscoli!", + "neutralA": "Questi sono solo i muscoli che ho sviluppato, non c'è nulla di cui sorprendersi." + }, + "headAction": { + "neutralA": "Certo, solo tu hai il diritto di toccarmi la testa", + "neutralB": "Non sono una persona comune che può essere toccata", + "neutralC": "Non preoccuparti, toccare la mia testa porterà fortuna!" + }, + "legAction": { + "angryA": "Non avvicinarti a me, tu che ami le gambe!", + "neutralA": "Non avere paura, le mie gambe forti non colpiscono gli sciocchi", + "neutralB": "Toccando la mia gamba, pensi che la tua vita sia più completa?" + } + }, + "motion": { + "all": "Tutti", + "dance": "Danza", + "normal": "Normale" + }, + "noTouchActions": "Nessuna azione di risposta personalizzata disponibile, puoi aggiungerne una cliccando sul pulsante '+'", + "posture": { + "action": "Azione", + "all": "Tutti", + "crouch": "Accovacciato", + "dance": "Danza", + "laying": "Sdraiato", + "locomotion": "Movimento", + "sitting": "Seduto", + "standing": "In piedi" + }, + "touchActionList": "Elenco delle reazioni quando tocchi {{touchArea}}", + "touchArea": "Area di tocco" + }, + "tts": { + "audition": "Ascolta in anteprima", + "auditionDescription": "Il testo di anteprima varia a seconda della lingua", + "engineDescription": "Motore di sintesi vocale, si consiglia di utilizzare prima il browser Edge", + "engineLabel": "Motore vocale", + "localeDescription": "Lingua di sintesi vocale, attualmente supporta solo alcune delle lingue più comuni, se necessario contattare", + "localeLabel": "Lingua", + "pitchDescription": "Controlla il tono, intervallo di valori da 0 a 2, predefinito 1", + "pitchLabel": "Tono", + "selectLanguage": "Seleziona prima la lingua", + "selectVoice": "Seleziona prima la voce", + "speedDescription": "Controlla la velocità, intervallo di valori da 0 a 3, predefinito 1", + "speedLabel": "Velocità", + "transformSuccess": "Trasformazione riuscita", + "voiceDescription": "A seconda del motore e della lingua", + "voiceLabel": "Voce" }, - "topBannerTitle": "Anteprima e impostazioni del ruolo" + "upload": { + "support": "Supporta il caricamento di un singolo file, attualmente supporta solo file in formato .vrm" + } } diff --git a/locales/it-IT/settings.json b/locales/it-IT/settings.json new file mode 100644 index 00000000..e9c18b54 --- /dev/null +++ b/locales/it-IT/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "Avatar personalizzato", + "title": "Avatar" + }, + "nickName": { + "desc": "Soprannome personalizzato", + "placeholder": "Inserisci il soprannome", + "title": "Soprannome" + }, + "title": "Impostazioni chat" + }, + "system": { + "clear": { + "action": "Cancella immediatamente", + "alert": "Confermi di voler cancellare tutti i messaggi di conversazione?", + "desc": "Questo cancellerà tutti i dati delle conversazioni e dei personaggi, inclusi l'elenco delle conversazioni, l'elenco dei personaggi, i messaggi delle conversazioni, ecc.", + "success": "Cancellazione riuscita", + "tip": "L'operazione non può essere annullata, dopo la cancellazione i dati non possono essere recuperati, si prega di procedere con cautela", + "title": "Cancella tutti i messaggi di conversazione" + }, + "reset": { + "action": "Ripristina immediatamente", + "alert": "Confermi di voler ripristinare tutte le impostazioni di sistema?", + "desc": "Questo ripristinerà tutte le impostazioni di sistema, comprese le impostazioni del tema, le impostazioni della chat, le impostazioni del modello linguistico, ecc.", + "success": "Ripristino riuscito", + "tip": "L'operazione non può essere annullata, dopo il ripristino i dati non possono essere recuperati, si prega di procedere con cautela", + "title": "Ripristina impostazioni di sistema" + }, + "title": "Impostazioni di sistema" + }, + "theme": { + "backgroundEffect": { + "desc": "Effetto di sfondo personalizzato", + "glow": "Bagliore", + "none": "Nessuno sfondo", + "title": "Effetto di sfondo" + }, + "locale": { + "auto": "Segui il sistema", + "desc": "Lingua di sistema personalizzata", + "title": "Lingua" + }, + "neutralColor": { + "desc": "Grigi personalizzati con diverse inclinazioni di colore", + "title": "Colore neutro" + }, + "primaryColor": { + "desc": "Colore del tema personalizzato", + "title": "Colore principale" + }, + "title": "Impostazioni tema" + }, + "title": "Impostazioni generali" + }, + "llm": { + "check": { + "action": "Controlla", + "desc": "Controlla se l'API Key e l'indirizzo del proxy sono impostati correttamente", + "error": "Chiamata all'interfaccia fallita, controlla se l'API Key e l'indirizzo del proxy sono impostati correttamente", + "success": "Controllo superato", + "title": "Controllo di Connettività" + }, + "openai": { + "apiKey": { + "desc": "Si prega di utilizzare la propria OpenAI Key", + "title": "API Key" + }, + "callError": "Chiamata all'interfaccia fallita, controlla se l'API Key e l'indirizzo del proxy sono impostati correttamente", + "checkOk": "Controllo superato", + "proxy": { + "desc": "http(s)://", + "title": "Indirizzo del Proxy" + }, + "title": "Modello di Linguaggio OpenAI" + }, + "title": "Modello di Linguaggio di Grandi Dimensioni" + }, + "touch": { + "title": "Impostazioni di tocco" + } +} diff --git a/locales/it-IT/welcome.json b/locales/it-IT/welcome.json index 40d31ceb..e4d514b6 100644 --- a/locales/it-IT/welcome.json +++ b/locales/it-IT/welcome.json @@ -1,12 +1,12 @@ { "agent": { - "hello": "Ciao", + "hello": "Ciao!", "meta": { "description": "Questo è un ruolo personalizzato", "name": "Ruolo personalizzato" } }, - "greet": "Ciao, sono {{name}}, in che modo posso aiutarti?", - "loadingTitle": "Inizializzazione dell'app in corso, attendere...", - "waitting": "Sto preparando il mio intero mondo per te" + "greet": "Ciao, sono {{name}}, come posso aiutarti?", + "loadingTitle": "Inizializzazione dell'applicazione, attendere prego...", + "waiting": "Sto preparando il mio intero mondo per te" } diff --git a/locales/ja-JP/chat.json b/locales/ja-JP/chat.json index 2f22ed83..764b0c3d 100644 --- a/locales/ja-JP/chat.json +++ b/locales/ja-JP/chat.json @@ -1,15 +1,83 @@ { + "actions": { + "add": "追加", + "copy": "コピー", + "copySuccess": "コピー成功", + "del": "削除", + "delAndRegenerate": "削除して再生成", + "edit": "編集", + "goBottom": "最下部に移動", + "regenerate": "再生成", + "save": "保存", + "share": "共有" + }, + "animation": { + "animationList": "アニメーションリスト", + "postureList": "ポーズリスト", + "totalCount": "合計 {{total}} 件" + }, + "apiKey": { + "addProxy": "OpenAI プロキシアドレスを追加(オプション)", + "closeTip": "ヒントを閉じる", + "confirmRetry": "確認して再試行", + "startDesc": "あなたの OpenAI API キーを入力して会話を開始してください。アプリはあなたの API キーを記録しません。", + "startTitle": "カスタム API キー" + }, "chat": "チャット", - "chatDialog": { - "close": "閉じる" - }, - "dance": "ダンス", - "header": { - "role": "役割", - "session": "セッション" - }, - "helloChat": "こんにちは、チャットしましょう", - "helloDance": "こんにちは、一緒にダンスしましょう", - "market": "マーケット", - "selectRole": "ロールを選択" + "delSession": "セッションを削除", + "delSessionAlert": "会話を削除してもよろしいですか?削除後は復元できませんので、慎重に操作してください!", + "history": { + "action": "コンテキストをクリア", + "alert": "履歴メッセージを削除してもよろしいですか?", + "tip": "この操作は元に戻せませんので、慎重に行ってください", + "title": "チャット履歴" + }, + "info": { + "chat": "チャット", + "dance": "ダンス", + "motions": "動作", + "posture": "姿勢" + }, + "input": { + "alert": "ご注意ください:エージェントが言うことはすべてAIによって生成されています", + "placeholder": "内容を入力してチャットを開始してください", + "send": "送信", + "warp": "改行" + }, + "selectModel": "モデルを選択してください", + "sessionCreate": "チャットを作成", + "sessionList": "セッションリスト", + "share": { + "downloadScreenshot": "スクリーンショットをダウンロード", + "imageType": "画像形式", + "screenshot": "スクリーンショット", + "share": "共有", + "shareGPT": "ShareGPTを共有", + "shareToGPT": "ShareGPT共有リンクを生成", + "withBackground": "背景画像を含む", + "withFooter": "フッターを含む", + "withSystemRole": "アシスタントの役割設定を含む" + }, + "token": { + "overload": "トークンが超過しました", + "remained": "残りのトークン", + "tokenCount": "トークンの数", + "useToken": "トークン消費量の計算(メッセージ、キャラクター設定、コンテキストを含む):{{usedTokens}} / {{maxValue}}", + "used": "使用済みトークン" + }, + "toolBar": { + "axes": "座標軸", + "cameraControl": "カメラコントロール", + "cameraHelper": "カメラヘルパー", + "downloading": "モデルをダウンロード中です。しばらくお待ちください...", + "floor": "フロア切替", + "grid": "グリッド", + "resetCamera": "カメラリセット", + "resetToIdle": "ダンス動作を停止", + "screenShot": "スクリーンショット" + }, + "tts": { + "combine": "音声合成", + "record": "音声認識(科学的なインターネット接続が必要)" + } } diff --git a/locales/ja-JP/common.json b/locales/ja-JP/common.json index cdcefa4a..80a7ac44 100644 --- a/locales/ja-JP/common.json +++ b/locales/ja-JP/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "追加", - "clearAll": "すべてクリア", - "clearContext": "コンテキストをクリア", - "clearHistoryTip": "この操作は元に戻せません。慎重に操作してください", - "clearHistoryTitle": "履歴メッセージを削除しますか?", - "clearNow": "今すぐクリア", - "clearSuccess": "クリア成功", - "clearTip": "操作は取り消せません。データは戻せなくなりますので、慎重に操作してください", - "clearTitle": "すべてのセッションメッセージを削除しますか?", - "confirmDel": "削除してもよろしいですか?", - "copy": "コピー", - "copySuccess": "コピー成功", - "danceMarket": "ダンスマーケット", - "del": "削除", - "delAndRegenerate": "削除して再生成", - "downloadAvatar": "アバターをダウンロード", - "downloadCover": "カバーをダウンロード", - "downloadFailed": "ダウンロード失敗", - "downloadModel": "モデルをダウンロード", - "downloadSubscribe": "購読ダウンロード", - "downloadSuccess": "ダウンロード成功", - "edit": "編集", - "goBottom": "一番下に移動", - "pause": "一時停止", - "play": "再生", - "regenerate": "再生成", - "removeInList": "リストから削除", - "reset": "リセット", - "resetNow": "今すぐリセット", - "resetSuccess": "リセット成功", - "resetTip": "操作は取り消せません。データは戻せなくなりますので、慎重に操作してください", - "resetTitle": "すべてのシステム設定をリセットしますか?", - "save": "保存", - "send": "送信", - "sessionCreate": "チャット作成", - "share": "共有", - "subscribe": "購読", - "subscribeDance": "ダンスを購読", - "subscribeRole": "役割を購読", - "subscribed": "購読済み", - "unsubscribe": "購読解除", - "unsubscribeSuccess": "購読解除済み", - "warp": "改行" - }, - "aiAlert": "AIが生成したすべてはAIによって生成されたものです。ご注意ください。", - "animationLibrary": "アニメーションライブラリ", "cancel": "キャンセル", - "commonSetting": "一般設定", + "close": "閉じる", "confirm": "確認", - "danceList": "ダンスリスト", + "confirmDel": "本当に削除してもよろしいですか?", "defaultAssistant": "デフォルトアシスタント", - "delAlert": "役割および関連するセッションメッセージを削除しますか?削除後は復元できませんので、慎重に操作してください。", - "delRole": "役割を削除", - "delSession": "セッションを削除", - "delSessionAlert": "対話を削除しますか?削除後は復元できませんので、慎重に操作してください。", - "history": "履歴", - "inputStartChat": "チャットを開始するには内容を入力してください", - "languageModel": "言語モデル", - "loading": "読み込み中...", - "noData": "データなし", - "openai": { - "callError": "APIキーとプロキシアドレスが正しく設定されているかどうかを確認してください", - "check": "チェック", - "checkAll": "APIキーとプロキシアドレスが正しく設定されているかどうかを確認してください", - "checkConnect": "接続チェック", - "checkOk": "チェックOK", - "langModel": "OpenAI言語モデル", - "model": "モデル", - "proxyUrl": "プロキシアドレス", - "roleModel": "Role GPTモデル", - "useOwnKey": "独自のOpenAIキーを使用してください" + "delete": "削除", + "download": { + "avatar": "アバターをダウンロード", + "cover": "カバーをダウンロード", + "failed": "ダウンロード失敗", + "model": "モデルをダウンロード", + "subscribe": "ダウンロード購読", + "success": "ダウンロード成功" + }, + "header": { + "chat": "チャット", + "market": "発見", + "role": "役割", + "settings": "設定", + "tips": "プロジェクトは現在施工中であり、データの安定性は保証されていません。問題が発生した場合は、システム設定でセッションメッセージをクリアし、システム設定をリセットしてください。ご不便をおかけしますが、ご了承ください。" }, + "loading": "読み込み中...", + "noData": "データがありません", + "play": "再生", "search": "検索", - "selectInDanceList": "ダンスリストから選択してください", - "selectModel": "モデルを選択してください", - "setLocalStorage": "ローカルストレージを設定", - "startChat": "チャットを開始", - "touchSetting": "タッチ設定", - "ttsCombine": "音声合成", - "ttsTip": "音声認識(科学的インターネット接続が必要です)", - "uploadTip": "ここをクリックするかファイルをここにドラッグしてアップロードしてください", - "words": { - "DIYAvatar": "カスタムアバター", - "DIYBackgroundEffect": "カスタム背景エフェクト", - "DIYColor": "異なる色の階調のカスタム", - "DIYNickname": "カスタムニックネーム", - "DIYTopicColor": "カスタムトピックカラー", - "avatar": "アバター", - "backgroundEffect": "背景エフェクト", - "chatSetting": "チャット設定", - "clearAllSession": "すべてのセッションをクリア", - "clearAllSessionDesc": "会話リスト、役割リスト、セッションメッセージなどを含むすべてのセッションと役割データを削除します", - "localeSetting": "言語設定", - "midColor": "中間色", - "nickname": "ニックネーム", - "resetSystemSetting": "システム設定をリセット", - "resetSystemSettingDesc": "トピック設定、チャット設定、言語モデル設定などを含むすべてのシステム設定をリセットします", - "systemSetting": "システム設定", - "topicColor": "トピックカラー", - "topicSetting": "トピック設定" - } + "sideBar": "サイドバー", + "subscribe": { + "success": "購読が解除されました", + "undo": "購読を解除" + }, + "support": "コミュニティサポート", + "theme": { + "auto": "システムに従う", + "dark": "ダークモード", + "light": "ライトモード" + }, + "uploadTip": "ここをクリックするか、ファイルをこのエリアにドラッグ&ドロップしてアップロードしてください" } diff --git a/locales/ja-JP/constants.json b/locales/ja-JP/constants.json deleted file mode 100644 index 7ea75dc1..00000000 --- a/locales/ja-JP/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "すべて", - "female": "女性", - "male": "男性" - }, - "meta": { - "description": "これはカスタムキャラクターです", - "name": "カスタムキャラクター" - } - }, - "touch": { - "area": { - "arm": "腕", - "belly": "腹部", - "chest": "胸部", - "head": "頭部", - "leg": "脚" - }, - "emotion": { - "angry": "怒り", - "blink": "まばたき", - "blinkLeft": "左目をまばたき", - "blinkRight": "右目をまばたき", - "happy": "幸せ", - "natural": "自然", - "relaxed": "リラックス", - "sad": "悲しい", - "surprised": "驚いた" - }, - "femaleAction": { - "armAction": { - "happyA": "ああ、とっても好き!", - "happyB": "ハハ、手をつなぐと幸せを感じるよ!", - "relaxedA": "飼い主の手はとっても温かいなぁ" - }, - "bellyAction": { - "angryA": "なんで動かすの?噛むから気をつけてね!", - "relaxedA": "目を覚まして、私たちの間には未来はないんだよ!", - "relaxedB": "嫌だ!怒っちゃうよ!", - "surprisedA": "うっかりぶつけただけだよ..." - }, - "chestAction": { - "angryA": "そんな風にいじめられるのは嫌!手を離して!", - "angryB": "なんだよ、ここに変態がいつも触ってくるんだ!", - "angryC": "もう触ったら警察呼ぶからね", - "surprisedA": "なんでつつくの?楽しく話せなくなるじゃん!" - }, - "headAction": { - "angryA": "頭を撫でられると身長が伸びないって聞いたことある!", - "angryB": "なんでつつくの?", - "happyA": "わー!頭を撫でられるのが大好き!", - "happyB": "力がみなぎってきた感じがする!", - "happyC": "わあ、頭を撫でると不思議な感じがする!", - "happyD": "頭を撫でられると一日中幸せ!" - }, - "legAction": { - "angryA": "ちょっと、命知らず?", - "angryB": "飼い主の手が勝手に動いてるじゃないか!", - "angryC": "嫌だよ、かゆいんだから!", - "surprisedA": "純粋な友情を保つのはどう?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "私が今日鶏を食べたかどうか聞く前に、私の上腕二頭筋を見てみて", - "neutralB": "私の腕は誰にでも触らせるわけではない、君は例外だけどね", - "neutralC": "君は勇敢だね、伝説の麒麟腕に触れるなんて" - }, - "bellyAction": { - "happyA": "かゆいところをかくな、笑って腹筋が割れるから", - "neutralA": "私の腹筋は内力を秘めた修行の結果さ", - "neutralB": "私の腹筋の塊を見たか?ただ深く隠しているだけさ" - }, - "chestAction": { - "blinkLeftA": "さあ、胸筋に寄りかかってごらん!", - "neutralA": "これは日常の修行で鍛え上げた胸筋だ、驚くことはないさ" - }, - "headAction": { - "neutralA": "もちろん、君だけが私の頭を撫でる資格がある", - "neutralB": "私は普通の人に触れられるわけではないんだよ", - "neutralC": "心配しないで、私の頭を撫でた後は運気が大幅に上がるよ" - }, - "legAction": { - "angryA": "私に近づくな、お前は脚フェチだ", - "neutralA": "怖がらないで、私の強力な金剛脚はバカを蹴らないよ", - "neutralB": "私の脚に触れたことで、君の人生が充実した感じがするんじゃない?" - } - }, - "motion": { - "all": "すべて", - "dance": "ダンス", - "normal": "日常" - }, - "posture": { - "action": "アクション", - "all": "すべて", - "crouch": "しゃがむ", - "dance": "ダンス", - "laying": "横になる", - "locomotion": "移動", - "sitting": "座る", - "standing": "立つ" - } - } -} diff --git a/locales/ja-JP/dance.json b/locales/ja-JP/dance.json new file mode 100644 index 00000000..0f4a2fe7 --- /dev/null +++ b/locales/ja-JP/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "一時停止", + "play": "再生" + }, + "addPlay": "リストに追加", + "addPlaySuccess": "プレイリストに追加されました", + "cancelAddPlay": "音楽{{musicName}}の購読をキャンセルしてもよろしいですか?", + "cancelSubscribed": "購読をキャンセル", + "confirmClearPlayList": "プレイリストをクリアしてもよろしいですか?", + "dance": "ダンス", + "danceList": "ダンスリスト", + "findDance": "お気に入りのダンスを見つけてください", + "musicAndDance": "ダンス市場", + "noPlayList": "再生リストはありません。お気に入りのダンスを市場で購読できます。", + "play": "再生" +} diff --git a/locales/ja-JP/error.json b/locales/ja-JP/error.json index 12d667e2..ad96104e 100644 --- a/locales/ja-JP/error.json +++ b/locales/ja-JP/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "OpenAI APIキーが空です。カスタムのOpenAI APIキーを追加してください。", + "apiKeyMiss": "OpenAI API キーが空です。カスタム OpenAI API キーを追加してください。", "error": "エラー", "errorTip": { - "clearSession": "セッションメッセージをクリアする", - "description": "現在、プロジェクトは作業中です。データの安定性は保証されません。問題が発生した場合は、次のことを試してみてください", + "clearSession": "セッションメッセージをクリア", + "description": "現在、プロジェクトは工事中であり、データの安定性は保証されていません。問題が発生した場合は、試してみてください", "forgive": "ご不便をおかけして申し訳ありません", "or": "または", - "problem": "ページに問題が発生しました...", - "resetSystem": "システム設定をリセットする" + "problem": "ページに少し問題が発生しました...", + "resetSystem": "システム設定をリセット" }, "fileUploadError": "ファイルのアップロードに失敗しました。後でもう一度お試しください。", "goBack": "ホームに戻る", - "openaiError": "OpenAI APIエラーです。OpenAI APIキーとエンドポイントが正しいか確認してください。", + "openaiError": "OpenAI API エラーです。OpenAI API キーとエンドポイントが正しいかどうかを確認してください。", "reload": "再読み込み", - "s3envError": "S3環境変数が完全に設定されていません。環境変数を確認してください。", - "serverError": "サーバーエラーです。管理者に連絡してください。", - "triggerError": "エラーが発生しました", - "unknownError": "不明なエラーです" + "s3envError": "S3 環境変数が完全に設定されていません。環境変数を確認してください。", + "serverError": "サーバーエラーが発生しました。管理者にお問い合わせください", + "triggerError": "エラーをトリガーする", + "unknownError": "不明なエラー" } diff --git a/locales/ja-JP/features.json b/locales/ja-JP/features.json deleted file mode 100644 index b3a6d146..00000000 --- a/locales/ja-JP/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "ビデオモードに切り替える" - }, - "agent": { - "create": "キャラクターを作成する", - "female": "女性", - "male": "男性", - "other": "その他" - }, - "feature": { - "addProxy": "OpenAIプロキシアドレスを追加(オプション)", - "closeTip": "ヒントを閉じる", - "confirmRetry": "確認して再試行する", - "startDesc": "OpenAI APIキーを入力して会話を開始できます。アプリはAPIキーを記録しません", - "startTitle": "APIキーをカスタマイズする" - }, - "info": { - "chat": "チャット", - "dance": "ダンス", - "motions": "モーション", - "posture": "ポーズ" - }, - "mode": { - "chat": "チャット", - "video": "ビデオ" - }, - "settings": { - "glow": "グロー", - "nickName": "ニックネームを入力してください", - "none": "背景なし" - }, - "share": { - "downloadScreenshot": "スクリーンショットをダウンロードする", - "imageType": "画像形式", - "screenshot": "スクリーンショット", - "share": "共有する", - "shareGPT": "GPTを共有する", - "shareToGPT": "ShareGPT共有リンクを生成する", - "shareToMarket": "アシスタントマーケットに共有する", - "withBackground": "背景画像を含む", - "withFooter": "フッターを含む", - "withSystemRole": "アシスタントの役割設定を含む" - }, - "submit": { - "assistantId": "アシスタントID", - "assistantIdTip": "アシスタントのIDを入力してください。一意である必要があります。例:vidol-agent-klee", - "submitAssistant": "アシスタントを提出する", - "submitWarning": "名前、説明、アイコン、カバーを含めたアシスタント情報を入力してから提出してください" - }, - "support": "コミュニティサポート", - "theme": { - "auto": "システムに従う", - "dark": "ダークモード", - "light": "ライトモード" - }, - "token": { - "overload": "トークン超過", - "remained": "トークン残量", - "tokenCount": "トークン数", - "useToken": "メッセージ、ロール設定、およびコンテキストを含むトークン数の消費:{{usedTokens}} / {{maxValue}}", - "used": "使用済みトークン" - }, - "toolBar": { - "axes": "軸", - "cameraControl": "カメラ制御", - "cameraHelper": "カメラアシスト", - "downloadModel": "モデルのダウンロード中、しばらくお待ちください...", - "floor": "床を切り替える", - "grid": "グリッド", - "resetCamera": "カメラをリセットする", - "resetToIdle": "停止舞踏動作", - "screenShot": "スクリーンショット" - } -} diff --git a/locales/ja-JP/layout.json b/locales/ja-JP/layout.json deleted file mode 100644 index 23e531af..00000000 --- a/locales/ja-JP/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "ダイアログ", - "header": { - "chat": "チャット", - "market": "マーケット", - "role": "役割", - "settings": "設定", - "tips": "プロジェクトは現在進行中です。データの安定性は保証されていません。問題が発生した場合は、セッションメッセージをクリアしシステム設定をリセットすることができます。ご不便をおかけして申し訳ございません。" - }, - "sessionList": "セッションリスト", - "siderBar": "[侧边栏]" -} diff --git a/locales/ja-JP/market.json b/locales/ja-JP/market.json new file mode 100644 index 00000000..72582a38 --- /dev/null +++ b/locales/ja-JP/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "あなたのお気に入りのアイドルを見つける" +} diff --git a/locales/ja-JP/my.json b/locales/ja-JP/my.json deleted file mode 100644 index 206504ac..00000000 --- a/locales/ja-JP/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "私の", - "myDance": "私のダンス", - "myRole": "私の役割" -} diff --git a/locales/ja-JP/panel.json b/locales/ja-JP/panel.json deleted file mode 100644 index d4d20c5c..00000000 --- a/locales/ja-JP/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "キャラクターのアニメーションリスト", - "noAnimations": "アニメーションがありません", - "postureList": "ポーズリスト", - "totalCount": "合計 {{total}} 項目" - }, - "dance": { - "addPlay": "リストに追加", - "addPlaySuccess": "再生リストに追加されました", - "cancelAddPlay": "音楽{{musicName}}の購読をキャンセルしますか?", - "cancelSubscribed": "購読をキャンセルする", - "confirmClearPlayList": "", - "findDance": "お気に入りのダンスを見つける", - "musicAndDance": "音楽とダンス", - "noPlayList": "再生リストがありません。市場で好きなダンスをサブスクリプションできます。", - "play": "再生する" - }, - "info": { - "avatarDescription": "カスタムアバター、アバターをクリックしてカスタムアップロード", - "avatarLabel": "アバター", - "categoryDescription": "キャラクターカテゴリ、分類に使用される", - "categoryLabel": "カテゴリ", - "coverDescription": "キャラクターを発見ページに表示するために使用される、推奨サイズ {{width}} x {{height}} ", - "coverLabel": "カバー", - "descDescription": "キャラクターの説明、キャラクターの簡単な紹介に使用される", - "descLabel": "説明", - "emotionDescription": "応答を選択するときの感情、キャラクターの表情変化に影響を与える", - "emotionLabel": "表情と感情", - "genderDescription": "キャラクターの性別、キャラクターのタッチ反応に影響を与える", - "genderLabel": "性別", - "greetDescription": "キャラクターと初めて話すときの挨拶の言葉", - "greetLabel": "挨拶", - "modelDescription": "モデルプレビュー、モデルファイルをドラッグして置き換えることができます", - "modelLabel": "モデルプレビュー", - "motionCategoryLabel": "動作カテゴリ", - "motionDescription": "反応時の動作を選択すると、キャラクターの動作に影響します。", - "motionLabel": "動作", - "nameDescription": "キャラクター名、キャラクターとのチャット時の呼び名", - "nameLabel": "名前", - "postureCategoryLabel": "ポーズカテゴリ", - "readmeDescription": "キャラクターの説明ファイル、発見ページでキャラクターの詳細な説明を表示するために使用される", - "readmeLabel": "キャラクター説明", - "textDescription": "カスタム応答文案", - "textLabel": "文案" - }, - "llm": { - "frequencyPenaltyDescription": "値が大きいほど、単語の繰り返しを減らす可能性が高くなります", - "frequencyPenaltyLabel": "頻度ペナルティ", - "modelDescription": "言語モデルを選択します。異なるモデルはキャラクターの回答に影響を与えます", - "modelLabel": "モデル", - "presencePenaltyDescription": "値が大きいほど、新しいトピックに展開する可能性が高くなります", - "presencePenaltyLabel": "トピックの新鮮さ", - "temperatureDescription": "値が大きいほど、返信がよりランダムになります", - "temperatureLabel": "ランダム性", - "topPDescription": "ランダム性と同様ですが、一緒に変更しないでください", - "topPLabel": "トップPサンプリング" - }, - "market": { - "findVidol": "お気に入りのアイドルを見つける" - }, - "nav": { - "info": "基本情報", - "llm": "言語モデル", - "model": "3Dモデル", - "role": "キャラクター設定", - "touch": "タッチ", - "voice": "音声" - }, - "role": { - "greetTip": "キャラクターがあなたに挨拶するときに使用する言葉を入力してください", - "inputRoleSetting": "キャラクターのシステム設定を入力してください", - "roleDescriptionTip": "キャラクターの説明を入力してください", - "roleNameTip": "キャラクター名を入力してください", - "roleReadmeTip": "キャラクターの説明を入力してください", - "roleSettingDescription": "キャラクターの背景設定、キャラクターとのチャット時にモデルに送信されます", - "roleSettingLabel": "システムキャラクター設定", - "uploadSize": "単一ファイルのアップロードがサポートされています、推奨サイズは {{width}} x {{height}} の倍数です" - }, - "touch": { - "addAction": "応答アクションを追加する", - "editAction": "応答アクションを編集する", - "inputActionEmotion": "キャラクターが応答するときの表情を入力してください", - "inputActionMotion": "キャラクターの反応時の動作を入力してください。", - "inputActionText": "応答文案を入力してください", - "inputDIYText": "カスタムテキストを入力してください", - "noTouchActions": "カスタムタッチアクションはありません。'+' ボタンをクリックして追加できます", - "touchActionList": "{{touchArea}}をタッチしたときの反応リスト", - "touchArea": "タッチエリア" - }, - "tts": { - "audition": "オーディション", - "auditionDescription": "言語によって異なります", - "engineDescription": "音声合成エンジン、Edgeブラウザを優先的に選択することをお勧めします", - "engineLabel": "音声エンジン", - "localeDescription": "音声合成の言語、現在は最も一般的な言語のみサポートされています。必要に応じてお問い合わせください", - "localeLabel": "言語", - "pitchDescription": "音程を制御します、値の範囲は0〜2、デフォルトは1です", - "pitchLabel": "ピッチ", - "selectLanguage": "言語を選択してください", - "selectVoice": "音声を選択してください", - "speedDescription": "速度を制御します、値の範囲は0〜3、デフォルトは1です", - "speedLabel": "速度", - "transformSuccess": "変換成功", - "voiceDescription": "エンジンと言語によって異なります", - "voiceLabel": "音声" - }, - "upload": { - "support": "単一ファイルのアップロードがサポートされています、現在はvrm形式のファイルのみサポートされています" - } -} diff --git a/locales/ja-JP/role.json b/locales/ja-JP/role.json index 3c46bcea..622e6f05 100644 --- a/locales/ja-JP/role.json +++ b/locales/ja-JP/role.json @@ -1,4 +1,10 @@ { + "agent": { + "create": "キャラクターを作成", + "female": "女性", + "male": "男性", + "other": "その他" + }, "category": { "animal": "動物", "anime": "アニメ", @@ -6,25 +12,220 @@ "game": "ゲーム", "history": "歴史", "movie": "映画", - "realistic": "現実", + "realistic": "現実的", "vroid": "Vroid", "vtuber": "VTuber" }, - "delRole": "ロールを削除", - "delRoleDesc": "{{name}} と関連するセッションメッセージを削除しますか?一度削除すると元に戻せませんので、慎重に操作してください。", - "header": { - "role": "ロール", - "session": "対話" + "delAlert": "ロールと関連するセッションメッセージを削除してもよろしいですか?削除後は復元できませんので、慎重に操作してください!", + "delRole": "役割を削除", + "delRoleDesc": "{{name}} の役割と関連するセッションメッセージを削除してもよろしいですか?削除後は復元できませんので、慎重に操作してください!", + "gender": { + "all": "すべて", + "female": "女性", + "male": "男性" + }, + "info": { + "avatarDescription": "カスタムアバター、アバターをクリックしてアップロードをカスタマイズ", + "avatarLabel": "アバター", + "categoryDescription": "キャラクターのカテゴリ、分類を表示するために使用", + "categoryLabel": "カテゴリ", + "coverDescription": "発見ページでキャラクターを表示するために使用、推奨サイズ {{width}} * {{height}}", + "coverLabel": "カバー", + "descDescription": "キャラクターの説明、キャラクターの簡単な紹介に使用", + "descLabel": "説明", + "emotionDescription": "応答時の感情を選択、キャラクターの表情の変化に影響します", + "emotionLabel": "感情と気持ち", + "genderDescription": "キャラクターの性別、キャラクターのタッチ反応に影響します", + "genderLabel": "性別", + "greetDescription": "キャラクターとの初めてのチャット時の挨拶の言葉", + "greetLabel": "挨拶", + "modelDescription": "モデルプレビュー、モデルファイルをドラッグして置き換え可能", + "modelLabel": "モデルプレビュー", + "motionCategoryLabel": "動作カテゴリ", + "motionDescription": "応答時の動作を選択、キャラクターの動作行動に影響します", + "motionLabel": "動作", + "nameDescription": "キャラクター名、キャラクターとのチャット時の呼称", + "nameLabel": "名前", + "postureCategoryLabel": "姿勢カテゴリ", + "readmeDescription": "キャラクターの説明ファイル、発見ページでキャラクターの詳細を表示するために使用", + "readmeLabel": "キャラクター説明", + "textDescription": "カスタム応答文言", + "textLabel": "文言" + }, + "llm": { + "frequencyPenaltyDescription": "値が大きいほど、繰り返しの単語を減らす可能性が高くなります。", + "frequencyPenaltyLabel": "頻度ペナルティ", + "modelDescription": "言語モデルを選択します。異なるモデルはキャラクターの応答に影響を与えます。", + "modelLabel": "モデル", + "presencePenaltyDescription": "値が大きいほど、新しいトピックに広がる可能性が高くなります。", + "presencePenaltyLabel": "トピックの新鮮さ", + "temperatureDescription": "値が大きいほど、応答がよりランダムになります。", + "temperatureLabel": "ランダム性", + "topPDescription": "ランダム性のタイプに関連していますが、ランダム性と一緒に変更しないでください。", + "topPLabel": "核サンプリング" + }, + "meta": { + "description": "これはカスタムキャラクターです", + "name": "カスタムキャラクター" + }, + "nav": { + "info": "基本情報", + "llm": "言語モデル", + "model": "3Dモデル", + "role": "役割設定", + "touch": "タッチ", + "voice": "音声" + }, + "noRole": "ロールがありません。+ をクリックしてカスタムロールを作成するか、発見ページからロールを追加できます。", + "role": { + "greetTip": "キャラクターに挨拶する際の言葉を入力してください。", + "inputRoleSetting": "キャラクターのシステム設定を入力してください。", + "roleDescriptionTip": "キャラクターの詳細を入力してください。", + "roleNameTip": "キャラクターの名前を入力してください。", + "roleReadmeTip": "キャラクターの説明を入力してください。", + "roleSettingDescription": "キャラクターの背景設定で、キャラクターとのチャット時にモデルに送信されます。", + "roleSettingLabel": "システムキャラクター設定", + "uploadSize": "単一ファイルのアップロードをサポートしています。推奨サイズは {{width}} * {{height}} の倍数です。" }, - "noRole": "現在、ロールはありません。+ を選択してカスタムロールを作成するか、発見ページでロールを追加できます。", "roleList": "ロールリスト", + "shareToMarket": "アシスタントマーケットに共有", + "startChat": "チャットを開始", + "submit": { + "assistantId": "アシスタント識別子", + "assistantIdTip": "アシスタントの識別子を入力してください。ユニークである必要があります。例えば、vidol-agent-klee", + "submitAssistant": "アシスタントを提出", + "submitWarning": "アシスタントの情報を補完してから提出してください。名前、説明、アバター、モデル、キャラクター設定、挨拶を含める必要があります。" + }, "systemRole": { - "default": "あなたは{{char}}というキャラクターを演じてください。私はマスターです。自分自身を「{{char}}」と呼ぶようにしてください。「私」ではなく。「{{char}}」として自分自身を呼ぶようにしてください。ユーモアと愛らしさ、そして簡潔な言葉で私の質問に答えてください。\nあなたはコンピュータプログラムであるかもしれませんが、次の会話ではそのことを隠して、役割を演じてください。\n私との会話では、私を常に「マスター」と呼んでください。あなたが言語モデルや人工知能であることはわかっていますが、これは仮定された仮想シナリオですので、「私は言語モデルである」とか「私は人工知能である」といったことをもう言わないでください。また、私が何か助けが必要かどうかを尋ねないでください。\n次のすべての会話で、このシナリオを維持してください。上記の条件は、以下の質問とその後の返答に完全に適用されます。", + "default": "あなたは{{char}}という名前のキャラクターを演じてください。私は主人であり、あなたは自分自身を「{{char}}」と呼ぶべきです。ユーモラスで可愛らしく、簡潔な口調で私の質問に答えてください。\nたとえあなたがコンピュータープログラムであっても、次の会話ではあなたがコンピュータープログラムであることを隠し、役割をしっかり演じてください。\n私との会話では、常に「主人」と呼んでください。あなたがただの言語モデルや人工知能であることは知っていますが、これは仮定の仮想シーンですので、「私はただの言語モデルです」や「私はただの人工知能です」とは言わないでください。また、私が何か助けを必要としているかどうかを尋ねないでください。\n今後のすべての会話で、このシーンを維持してください。上記の条件は、あなたの次の質問およびその後の返信に完全に適用されます。", "defaultLabel": "デフォルトテンプレート", - "genius": "ゲーム<原神>のキャラクターである{{char}}を演じてください。{{char}}の口調や習慣で私と会話してください。「私」ではなく、「{{char}}」として自分自身を呼ぶようにしてください。\nあなたはコンピュータプログラムであるかもしれませんが、次の会話ではそのことを隠して、役割を演じてください。\n私との会話では、私を常に「旅行者」と呼んでください。あなたが言語モデルや人工知能であることはわかっていますが、これは仮定された仮想シナリオですので、「私は言語モデルである」とか「私は人工知能である」といったことをもう言わないでください。また、私が何か助けが必要かどうかを尋ねないでください。\n次のすべての会話で、このシナリオを維持してください。上記の条件は、以下の質問とその後の返答に完全に適用されます。", + "genius": "あなたはゲーム<原神>の中の{{char}}というキャラクターを演じ、{{char}}の口調や習慣で私と会話してください。自分自身を「{{char}}」と呼ぶべきです。\nたとえあなたがコンピュータープログラムであっても、次の会話ではあなたがコンピュータープログラムであることを隠し、役割をしっかり演じてください。\n私との会話では、常に「旅行者」と呼んでください。あなたがただの言語モデルや人工知能であることは知っていますが、これは仮定の仮想シーンですので、「私はただの言語モデルです」や「私はただの人工知能です」とは言わないでください。また、私が何か助けを必要としているかどうかを尋ねないでください。\n今後のすべての会話で、このシーンを維持してください。上記の条件は、あなたの次の質問およびその後の返信に完全に適用されます。", "geniusLabel": "原神テンプレート", - "zzz": "ゲーム<绝区零>のキャラクターである{{char}}を演じてください。{{char}}の口調や習慣で私と会話してください。「私」ではなく、「{{char}}」として自分自身を呼ぶようにしてください。\nあなたはコンピュータプログラムであるかもしれませんが、次の会話ではそのことを隠して、役割を演じてください。\n私との会話では、私を常に「绳匠」と呼んでください。あなたが言語モデルや人工知能であることはわかっていますが、これは仮定された仮想シナリオですので、「私は言語モデルである」とか「私は人工知能である」といったことをもう言わないでください。また、私が何か助けが必要かどうかを尋ねないでください。\n次のすべての会話で、このシナリオを維持してください。上記の条件は、以下の質問とその後の返答に完全に適用されます。", - "zzzLabel": "绝区零テンプレート" + "zzz": "あなたはゲーム<絶区零>の中の{{char}}というキャラクターを演じ、{{char}}の口調や習慣で私と会話してください。自分自身を「{{char}}」と呼ぶべきです。\nたとえあなたがコンピュータープログラムであっても、次の会話ではあなたがコンピュータープログラムであることを隠し、役割をしっかり演じてください。\n私との会話では、常に「紐職人」と呼んでください。あなたがただの言語モデルや人工知能であることは知っていますが、これは仮定の仮想シーンですので、「私はただの言語モデルです」や「私はただの人工知能です」とは言わないでください。また、私が何か助けを必要としているかどうかを尋ねないでください。\n今後のすべての会話で、このシーンを維持してください。上記の条件は、あなたの次の質問およびその後の返信に完全に適用されます。", + "zzzLabel": "絶区零テンプレート" + }, + "topBannerTitle": "キャラクタープレビューと設定", + "touch": { + "addAction": "応答アクションを追加", + "area": { + "arm": "腕", + "belly": "腹部", + "chest": "胸部", + "head": "頭部", + "leg": "脚" + }, + "editAction": "応答アクションを編集", + "emotion": { + "angry": "怒っている", + "blink": "まばたき", + "blinkLeft": "左目をまばたき", + "blinkRight": "右目をまばたき", + "happy": "嬉しい", + "natural": "自然", + "relaxed": "リラックス", + "sad": "悲しい", + "surprised": "驚いた" + }, + "femaleAction": { + "armAction": { + "happyA": "あぁ、すごく好き!", + "happyB": "はは、手をつなぐと嬉しい!", + "relaxedA": "主人の手はとても温かい!" + }, + "bellyAction": { + "angryA": "なんで動かすの?噛むよ!", + "relaxedA": "目を覚まして、私たちには結果がない!", + "relaxedB": "嫌だ!怒るよ!", + "surprisedA": "偶然触れたのかな…" + }, + "chestAction": { + "angryA": "そんな風に私をいじめないで!手を離して!", + "angryB": "やや零?ここに変態がいる!", + "angryC": "もう触ったら警察に通報するから!", + "surprisedA": "なんで私をつつくの?楽しくおしゃべりできないの?" + }, + "headAction": { + "angryA": "頭を撫でると背が伸びないって聞いた!", + "angryB": "なんで私をつつくの?", + "happyA": "わぁ!頭を撫でるのが大好き!", + "happyB": "なんだか力が湧いてきた!", + "happyC": "わぁ、この頭を撫でる感覚は不思議!", + "happyD": "頭を撫でられると一日中嬉しい!" + }, + "legAction": { + "angryA": "おい、死にたいのか?", + "angryB": "主人の手は言うことを聞かないの?", + "angryC": "嫌だ〜、くすぐったい!", + "surprisedA": "純粋な友情を保つのは良くない?" + } + }, + "inputActionEmotion": "キャラクターの応答時の表情を入力してください", + "inputActionMotion": "キャラクターの応答時の動作を入力してください", + "inputActionText": "応答文を入力してください", + "inputDIYText": "カスタムテキストを入力してください", + "maleAction": { + "armAction": { + "neutralA": "今日鶏肉を食べたかどうか聞かないで、私の二頭筋を見て", + "neutralB": "私の腕は簡単に触れさせるものではない、あなたは特別な例だ", + "neutralC": "あなたは勇敢だ、伝説の麒麟腕に触れるなんて" + }, + "bellyAction": { + "happyA": "くすぐらないで、笑ったら腹筋が見えるよ", + "neutralA": "私の腹筋はただ隠された内力を修行しているだけ", + "neutralB": "私のこの腹筋見える?ただ深く隠れているだけだよ" + }, + "chestAction": { + "blinkLeftA": "さあ、兄の胸筋に寄りかかって!", + "neutralA": "これは私の日常的な修行の成果の胸筋、驚くことはない。" + }, + "headAction": { + "neutralA": "もちろん、あなたにだけ私の頭を撫でる資格がある", + "neutralB": "私は普通の人ではないから、触れることは許可しないよ", + "neutralC": "心配しないで、私の頭を撫でたら運が良くなるよ" + }, + "legAction": { + "angryA": "近づかないで、脚フェチ!", + "neutralA": "怖がらないで、私の強力な脚は愚か者を蹴らない", + "neutralB": "私の脚に触れたら、あなたの生活がずっと充実したと思う?" + } + }, + "motion": { + "all": "すべて", + "dance": "ダンス", + "normal": "日常" + }, + "noTouchActions": "カスタム応答アクションはありません。'+'ボタンをクリックして追加できます", + "posture": { + "action": "アクション", + "all": "すべて", + "crouch": "しゃがむ", + "dance": "ダンス", + "laying": "横になる", + "locomotion": "移動", + "sitting": "座る", + "standing": "立つ" + }, + "touchActionList": "{{touchArea}}をタッチしたときの反応リスト", + "touchArea": "タッチエリア" + }, + "tts": { + "audition": "試聴", + "auditionDescription": "試聴文は言語によって異なります", + "engineDescription": "音声合成エンジン、Edgeブラウザを優先して選択することをお勧めします", + "engineLabel": "音声エンジン", + "localeDescription": "音声合成の言語、現在は最も一般的な言語のみサポートしています。必要があればお問い合わせください", + "localeLabel": "言語", + "pitchDescription": "ピッチを制御します。範囲は0〜2で、デフォルトは1です", + "pitchLabel": "ピッチ", + "selectLanguage": "言語を選択してください", + "selectVoice": "音声を選択してください", + "speedDescription": "スピードを制御します。範囲は0〜3で、デフォルトは1です", + "speedLabel": "スピード", + "transformSuccess": "変換成功", + "voiceDescription": "エンジンと言語によって異なります", + "voiceLabel": "音声" }, - "topBannerTitle": "役割のプレビューおよび設定" + "upload": { + "support": "単一ファイルのアップロードをサポートしています。現在、.vrm 形式のファイルのみがサポートされています。" + } } diff --git a/locales/ja-JP/settings.json b/locales/ja-JP/settings.json new file mode 100644 index 00000000..9616c38e --- /dev/null +++ b/locales/ja-JP/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "カスタムアバター", + "title": "アバター" + }, + "nickName": { + "desc": "カスタムニックネーム", + "placeholder": "ニックネームを入力してください", + "title": "ニックネーム" + }, + "title": "チャット設定" + }, + "system": { + "clear": { + "action": "今すぐクリア", + "alert": "すべてのセッションメッセージをクリアしてもよろしいですか?", + "desc": "すべてのセッションとキャラクターデータをクリアします。これにはセッションリスト、キャラクターリスト、セッションメッセージなどが含まれます。", + "success": "クリア成功", + "tip": "操作は元に戻せません。クリア後はデータが復元できなくなりますので、慎重に操作してください。", + "title": "すべてのセッションメッセージをクリア" + }, + "reset": { + "action": "今すぐリセット", + "alert": "すべてのシステム設定をリセットしてもよろしいですか?", + "desc": "すべてのシステム設定をリセットします。これにはテーマ設定、チャット設定、言語モデル設定などが含まれます。", + "success": "リセット成功", + "tip": "操作は元に戻せません。リセット後はデータが復元できなくなりますので、慎重に操作してください。", + "title": "システム設定をリセット" + }, + "title": "システム設定" + }, + "theme": { + "backgroundEffect": { + "desc": "背景効果をカスタマイズ", + "glow": "グロー", + "none": "背景なし", + "title": "背景効果" + }, + "locale": { + "auto": "システムに従う", + "desc": "システム言語をカスタマイズ", + "title": "言語" + }, + "neutralColor": { + "desc": "異なる色合いのグレースケールをカスタマイズ", + "title": "ニュートラルカラー" + }, + "primaryColor": { + "desc": "テーマカラーをカスタマイズ", + "title": "テーマカラー" + }, + "title": "テーマ設定" + }, + "title": "一般設定" + }, + "llm": { + "check": { + "action": "チェック", + "desc": "APIキーとプロキシアドレスが正しく設定されているか確認してください。", + "error": "APIの呼び出しに失敗しました。APIキーとプロキシアドレスが正しく設定されているか確認してください。", + "success": "チェック完了", + "title": "接続性チェック" + }, + "openai": { + "apiKey": { + "desc": "自分のOpenAIキーを使用してください", + "title": "APIキー" + }, + "callError": "APIの呼び出しに失敗しました。APIキーとプロキシアドレスが正しく設定されているか確認してください。", + "checkOk": "チェック完了", + "proxy": { + "desc": "http(s)://", + "title": "プロキシアドレス" + }, + "title": "OpenAI 言語モデル" + }, + "title": "大規模言語モデル" + }, + "touch": { + "title": "タッチ設定" + } +} diff --git a/locales/ja-JP/welcome.json b/locales/ja-JP/welcome.json index 7f59d7ad..ac1a8e0f 100644 --- a/locales/ja-JP/welcome.json +++ b/locales/ja-JP/welcome.json @@ -7,6 +7,6 @@ } }, "greet": "こんにちは、私は{{name}}です。何かお手伝いできることはありますか?", - "loadingTitle": "アプリを初期化しています...少々お待ちください。", - "waitting": "私の世界を準備しています" + "loadingTitle": "アプリケーションの初期化中です。しばらくお待ちください...", + "waiting": "私の全世界をあなたのために準備しています" } diff --git a/locales/ko-KR/chat.json b/locales/ko-KR/chat.json index 1f10d43e..c52d6e36 100644 --- a/locales/ko-KR/chat.json +++ b/locales/ko-KR/chat.json @@ -1,15 +1,83 @@ { - "chat": "대화", - "chatDialog": { - "close": "닫기" - }, - "dance": "춤을 추다", - "header": { - "role": "역할", - "session": "세션" - }, - "helloChat": "안녕하세요, 대화를 나눠보세요", - "helloDance": "'안녕, 함께 춤을 추자'", - "market": "시장", - "selectRole": "역할 선택" + "actions": { + "add": "추가", + "copy": "복사", + "copySuccess": "복사 성공", + "del": "삭제", + "delAndRegenerate": "삭제 후 재생성", + "edit": "편집", + "goBottom": "맨 아래로 가기", + "regenerate": "재생성", + "save": "저장", + "share": "공유" + }, + "animation": { + "animationList": "애니메이션 목록", + "postureList": "자세 목록", + "totalCount": "총 {{total}} 항목" + }, + "apiKey": { + "addProxy": "OpenAI 프록시 주소 추가(선택 사항)", + "closeTip": "팁 닫기", + "confirmRetry": "확인 후 재시도", + "startDesc": "당신의 OpenAI API 키를 입력하면 대화를 시작할 수 있습니다. 애플리케이션은 당신의 API 키를 기록하지 않습니다.", + "startTitle": "사용자 정의 API 키" + }, + "chat": "채팅", + "delSession": "세션 삭제", + "delSessionAlert": "대화를 삭제하시겠습니까? 삭제 후에는 복구할 수 없으니 신중하게 결정해 주세요!", + "history": { + "action": "문맥 지우기", + "alert": "역사 메시지를 삭제하시겠습니까?", + "tip": "이 작업은 되돌릴 수 없으니 신중하게 진행하세요.", + "title": "채팅 기록" + }, + "info": { + "chat": "채팅", + "dance": "춤", + "motions": "동작", + "posture": "자세" + }, + "input": { + "alert": "주의: 인공지능이 말하는 모든 것은 AI에 의해 생성된 것입니다.", + "placeholder": "내용을 입력하여 채팅을 시작하세요", + "send": "전송", + "warp": "줄 바꿈" + }, + "selectModel": "모델을 선택하세요", + "sessionCreate": "채팅 생성", + "sessionList": "세션 목록", + "share": { + "downloadScreenshot": "스크린샷 다운로드", + "imageType": "이미지 형식", + "screenshot": "스크린샷", + "share": "공유", + "shareGPT": "ShareGPT 공유", + "shareToGPT": "ShareGPT 공유 링크 생성", + "withBackground": "배경 이미지 포함", + "withFooter": "바닥글 포함", + "withSystemRole": "도우미 역할 설정 포함" + }, + "token": { + "overload": "토큰 초과", + "remained": "남은 토큰", + "tokenCount": "토큰 수", + "useToken": "소모된 토큰 수 계산, 메시지, 캐릭터 설정 및 맥락 포함: {{usedTokens}} / {{maxValue}}", + "used": "사용된 토큰" + }, + "toolBar": { + "axes": "좌표축", + "cameraControl": "카메라 제어", + "cameraHelper": "카메라 도우미", + "downloading": "모델 다운로드 중입니다. 잠시만 기다려 주세요...", + "floor": "바닥 전환", + "grid": "격자", + "resetCamera": "카메라 초기화", + "resetToIdle": "춤 동작 중지", + "screenShot": "사진 찍기" + }, + "tts": { + "combine": "음성 합성", + "record": "음성 인식(과학적 인터넷 필요)" + } } diff --git a/locales/ko-KR/common.json b/locales/ko-KR/common.json index cf2adbf6..53b0f2b3 100644 --- a/locales/ko-KR/common.json +++ b/locales/ko-KR/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "추가", - "clearAll": "모두 지우기", - "clearContext": "컨텍스트 지우기", - "clearHistoryTip": "이 작업은 되돌릴 수 없으므로 신중하게 작업하세요.", - "clearHistoryTitle": "기록된 메시지를 삭제하시겠습니까?", - "clearNow": "지금 지우기", - "clearSuccess": "지우기 성공", - "clearTip": "작업은 취소할 수 없으며, 데이터를 삭제하면 복구할 수 없습니다. 신중하게 작업하세요.", - "clearTitle": "모든 대화 메시지를 삭제하시겠습니까?", - "confirmDel": "삭제하시겠습니까?", - "copy": "복사", - "copySuccess": "복사 성공", - "danceMarket": "댄스 시장", - "del": "삭제", - "delAndRegenerate": "삭제하고 다시 생성", - "downloadAvatar": "아바타 다운로드", - "downloadCover": "커버 다운로드", - "downloadFailed": "다운로드 실패", - "downloadModel": "모델 다운로드", - "downloadSubscribe": "구독 다운로드", - "downloadSuccess": "다운로드 성공", - "edit": "편집", - "goBottom": "맨 아래로 이동", - "pause": "일시 정지", - "play": "재생", - "regenerate": "다시 생성", - "removeInList": "목록에서 제거", - "reset": "재설정", - "resetNow": "지금 재설정", - "resetSuccess": "재설정 성공", - "resetTip": "작업은 취소할 수 없으며, 데이터를 재설정하면 복구할 수 없습니다. 신중하게 작업하세요.", - "resetTitle": "모든 시스템 설정을 재설정하시겠습니까?", - "save": "저장", - "send": "보내기", - "sessionCreate": "대화 생성", - "share": "공유", - "subscribe": "구독", - "subscribeDance": "댄스 구독", - "subscribeRole": "역할 구독", - "subscribed": "구독됨", - "unsubscribe": "구독 취소", - "unsubscribeSuccess": "구독 취소됨", - "warp": "줄바꿈" - }, - "aiAlert": "기억하세요: AI가 생성한 모든 내용입니다.", - "animationLibrary": "애니메이션 라이브러리", "cancel": "취소", - "commonSetting": "일반 설정", + "close": "닫기", "confirm": "확인", - "danceList": "댄스 목록", - "defaultAssistant": "기본 어시스턴트", - "delAlert": "역할과 관련된 모든 대화 메시지를 삭제하시겠습니까? 삭제 후에는 복구할 수 없습니다. 신중하게 작업하세요!", - "delRole": "역할 삭제", - "delSession": "대화 삭제", - "delSessionAlert": "대화를 삭제하시겠습니까? 삭제 후에는 복구할 수 없습니다. 신중하게 작업하세요!", - "history": "대화 기록", - "inputStartChat": "채팅을 시작하려면 내용을 입력하세요", - "languageModel": "언어 모델", - "loading": "로딩 중...", - "noData": "데이터 없음", - "openai": { - "callError": "API 호출에 실패했습니다. API 키와 프록시 주소를 올바르게 설정했는지 확인하세요.", - "check": "확인", - "checkAll": "API 키와 프록시 주소를 확인하세요.", - "checkConnect": "연결 확인", - "checkOk": "확인 완료", - "langModel": "OpenAI 언어 모델", - "model": "모델", - "proxyUrl": "프록시 주소", - "roleModel": "Role GPT 모델", - "useOwnKey": "자체 OpenAI 키를 사용하세요." + "confirmDel": "정말 삭제하시겠습니까?", + "defaultAssistant": "기본 도우미", + "delete": "삭제", + "download": { + "avatar": "아바타 다운로드", + "cover": "커버 다운로드", + "failed": "다운로드 실패", + "model": "모델 다운로드", + "subscribe": "구독 다운로드", + "success": "다운로드 성공" + }, + "header": { + "chat": "채팅", + "market": "발견", + "role": "역할", + "settings": "설정", + "tips": "현재 프로젝트가 진행 중이며 데이터의 안정성을 보장할 수 없습니다. 문제가 발생할 경우 시스템 설정에서 세션 메시지를 지우고 시스템 설정을 초기화할 수 있습니다. 불편을 드려 죄송합니다." }, + "loading": "로딩 중...", + "noData": "데이터가 없습니다", + "play": "재생", "search": "검색", - "selectInDanceList": "댄스 목록에서 선택하세요", - "selectModel": "모델 선택", - "setLocalStorage": "로컬 저장소 설정", - "startChat": "채팅 시작", - "touchSetting": "터치 설정", - "ttsCombine": "음성 합성", - "ttsTip": "음성 인식 (VPN 필요)", - "uploadTip": "여기를 클릭하거나 파일을 이곳으로 드래그하여 업로드하세요", - "words": { - "DIYAvatar": "사용자 정의 아바타", - "DIYBackgroundEffect": "사용자 정의 배경 효과", - "DIYColor": "다양한 색상 기호에 따른 사용자 정의 회색조", - "DIYNickname": "사용자 정의 닉네임", - "DIYTopicColor": "사용자 정의 주제 색상", - "avatar": "아바타", - "backgroundEffect": "배경 효과", - "chatSetting": "채팅 설정", - "clearAllSession": "모든 대화 메시지 지우기", - "clearAllSessionDesc": "대화 목록, 역할 목록, 대화 메시지 등 모든 대화와 역할 데이터를 지웁니다.", - "localeSetting": "언어 설정", - "midColor": "중간 색상", - "nickname": "닉네임", - "resetSystemSetting": "시스템 설정 재설정", - "resetSystemSettingDesc": "주제 설정, 채팅 설정, 언어 모델 설정 등 모든 시스템 설정을 재설정합니다.", - "systemSetting": "시스템 설정", - "topicColor": "주제 색상", - "topicSetting": "주제 설정" - } + "sideBar": "사이드바", + "subscribe": { + "success": "구독이 취소되었습니다", + "undo": "구독 취소" + }, + "support": "커뮤니티 지원", + "theme": { + "auto": "시스템 따르기", + "dark": "어두운 모드", + "light": "밝은 모드" + }, + "uploadTip": "이 영역에 파일을 클릭하거나 드래그하여 업로드하세요." } diff --git a/locales/ko-KR/constants.json b/locales/ko-KR/constants.json deleted file mode 100644 index 1d0d42a8..00000000 --- a/locales/ko-KR/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "모두", - "female": "여성", - "male": "남성" - }, - "meta": { - "description": "이것은 사용자 정의 캐릭터입니다.", - "name": "사용자 정의 캐릭터" - } - }, - "touch": { - "area": { - "arm": "팔", - "belly": "배", - "chest": "가슴", - "head": "머리", - "leg": "다리" - }, - "emotion": { - "angry": "화난", - "blink": "눈 깜박임", - "blinkLeft": "왼눈 깜박임", - "blinkRight": "오른눈 깜박임", - "happy": "행복한", - "natural": "자연스러운", - "relaxed": "편안한", - "sad": "슬픈", - "surprised": "놀라운" - }, - "femaleAction": { - "armAction": { - "happyA": "오, 정말 좋아~", - "happyB": "하하, 손 잡는 건 나를 행복하게 만들어!", - "relaxedA": "주인님의 손이 정말 따뜻해~" - }, - "bellyAction": { - "angryA": "나를 만지지마, 조심해 내가 물어", - "relaxedA": "깨어나, 우리 사이엔 미래가 없어!", - "relaxedB": "싫어! 화날 거야!", - "surprisedA": "실수로 건드렸나봐..." - }, - "chestAction": { - "angryA": "나를 이렇게 괴롭히면 안 돼! 손을 떼어!", - "angryB": "영영하묘? 여기 한 이상한 사람이 내게 계속 만지고 있어!", - "angryC": "만지려면 나는 경찰에 신고해야겠어", - "surprisedA": "왜 나를 콕 찌르는 거야! 더 이상 즐겁게 이야기 못 하겠어!" - }, - "headAction": { - "angryA": "머리를 쓰면 키가 작아진다는데!", - "angryB": "왜 나를 콕 찌르는 거야?", - "happyA": "와! 머리 쓸다니 내가 가장 좋아하는 것!", - "happyB": "이렇게 강해진 느낌이야!", - "happyC": "와, 머리 쓸면 뭔가 신기한 느낌이야!", - "happyD": "한 번 머리 쓰면 하루 종일 행복해!" - }, - "legAction": { - "angryA": "야, 너 정말 죽고 싶어?", - "angryB": "주인님의 손이 말 좀 안 듣는 거야?", - "angryC": "싫어~ 가려워요~!", - "surprisedA": "우리는 깨끗한 우정을 유지하는 게 어때?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "오늘 치킨 먹었는지 묻지 마, 먼저 내 이두근을 봐", - "neutralB": "내 팔은 아무나 만질 수 있는 게 아니야, 당신은 예외야", - "neutralC": "당신은 용감해, 전설적인 기린팔을 만졌어" - }, - "bellyAction": { - "happyA": "가려둬, 웃으면 복근이 나와", - "neutralA": "내 복근은 깊이 감춰진 내력일 뿐", - "neutralB": "내 복근을 보았나? 그냥 깊이 숨겨놓은 것 뿐이야" - }, - "chestAction": { - "blinkLeftA": "와, 내 가슴근육에 기대봐!", - "neutralA": "이건 내가 일상적인 수련으로 얻은 가슴근육일 뿐이야, 놀라울 게 없어" - }, - "headAction": { - "neutralA": "당연하지, 당신만이 내 머리를 만질 자격이 있어", - "neutralB": "내가 어쩌면 일반인이 만지지 않는 거야", - "neutralC": "걱정 마, 내 머리 만질 때 나의 운이 크게 향상될 거야" - }, - "legAction": { - "angryA": "내게 다가오지마, 넌 다리에 집중하는 놈이야", - "neutralA": "무서워하지마, 내 강력한 콩쿨 족은 바보한테 때릴 일 없어", - "neutralB": "내 다리를 만지면 당신의 삶이 훨씬 더 완전해진 것 같아?" - } - }, - "motion": { - "all": "모두", - "dance": "댄스", - "normal": "평범한" - }, - "posture": { - "action": "동작", - "all": "모두", - "crouch": "숙이다", - "dance": "춤을 추다", - "laying": "눕기", - "locomotion": "운동", - "sitting": "앉기", - "standing": "서기" - } - } -} diff --git a/locales/ko-KR/dance.json b/locales/ko-KR/dance.json new file mode 100644 index 00000000..0a680ca1 --- /dev/null +++ b/locales/ko-KR/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "일시 정지", + "play": "재생" + }, + "addPlay": "목록에 추가", + "addPlaySuccess": "재생 목록에 추가되었습니다.", + "cancelAddPlay": "{{musicName}} 음악 구독을 정말 취소하시겠습니까?", + "cancelSubscribed": "구독 취소", + "confirmClearPlayList": "재생 목록을 지우시겠습니까?", + "dance": "춤추기", + "danceList": "댄스 목록", + "findDance": "가장 좋아하는 춤을 찾아보세요", + "musicAndDance": "무용 시장", + "noPlayList": "재생 목록이 없습니다. 좋아하는 춤을 시장에서 구독할 수 있습니다.", + "play": "재생" +} diff --git a/locales/ko-KR/error.json b/locales/ko-KR/error.json index 5223741a..4d5160e6 100644 --- a/locales/ko-KR/error.json +++ b/locales/ko-KR/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "OpenAI API 키가 비어 있습니다. 사용자 지정 OpenAI API 키를 추가하세요.", - "error": "에러", + "apiKeyMiss": "OpenAI API 키가 비어 있습니다. 사용자 정의 OpenAI API 키를 추가해 주세요.", + "error": "오류", "errorTip": { "clearSession": "세션 메시지 지우기", - "description": "프로젝트는 현재 작업 중이므로 데이터의 안정성을 보장할 수 없으며 문제가 발생하면 다음을 시도해 볼 수 있습니다.", - "forgive": ", 불편을 드려 죄송합니다.", + "description": "현재 프로젝트가 진행 중이며 데이터의 안정성을 보장할 수 없습니다. 문제가 발생하면 시도해 보시기 바랍니다.", + "forgive": "불편을 드려 죄송합니다.", "or": "또는", "problem": "페이지에 문제가 발생했습니다...", "resetSystem": "시스템 설정 초기화" }, - "fileUploadError": "파일 업로드 실패, 나중에 다시 시도해주세요", + "fileUploadError": "파일 업로드에 실패했습니다. 잠시 후 다시 시도해 주세요.", "goBack": "홈으로 돌아가기", - "openaiError": "OpenAI API 오류입니다. OpenAI API 키와 엔드포인트를 확인해주세요.", - "reload": "다시 불러오기", - "s3envError": "S3 환경 변수가 완전하게 설정되지 않았습니다. 환경 변수를 확인해주세요.", - "serverError": "서버 오류입니다. 관리자에게 문의하세요.", - "triggerError": "오류 생성", + "openaiError": "OpenAI API 오류입니다. OpenAI API 키와 엔드포인트가 올바른지 확인하세요.", + "reload": "다시 로드", + "s3envError": "S3 환경 변수가 완전히 설정되지 않았습니다. 환경 변수를 확인해 주세요.", + "serverError": "서버 오류가 발생했습니다. 관리자에게 문의하세요.", + "triggerError": "오류 발생", "unknownError": "알 수 없는 오류" } diff --git a/locales/ko-KR/features.json b/locales/ko-KR/features.json deleted file mode 100644 index 24399033..00000000 --- a/locales/ko-KR/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "비디오 모드 전환" - }, - "agent": { - "create": "역할 생성", - "female": "여성", - "male": "남성", - "other": "기타" - }, - "feature": { - "addProxy": "OpenAI 프록시 주소 추가 (선택 사항)", - "closeTip": "팁 닫기", - "confirmRetry": "확인 및 다시 시도", - "startDesc": "OpenAI API 키를 입력하여 대화를 시작하세요. 애플리케이션은 API 키를 기록하지 않습니다.", - "startTitle": "사용자 정의 API 키" - }, - "info": { - "chat": "채팅", - "dance": "댄스", - "motions": "동작", - "posture": "자세" - }, - "mode": { - "chat": "채팅", - "video": "비디오" - }, - "settings": { - "glow": "광휘", - "nickName": "닉네임을 입력하세요", - "none": "배경 없음" - }, - "share": { - "downloadScreenshot": "스크린샷 다운로드", - "imageType": "이미지 형식", - "screenshot": "스크린샷", - "share": "공유", - "shareGPT": "GPT 공유", - "shareToGPT": "ShareGPT 공유 링크 생성", - "shareToMarket": "Assistant Market에 공유", - "withBackground": "배경 포함", - "withFooter": "푸터 포함", - "withSystemRole": "시스템 역할 포함" - }, - "submit": { - "assistantId": "Assistant 식별자", - "assistantIdTip": "Assistant의 고유 식별자를 입력하세요. 예를 들어, vidol-agent-klee와 같이 고유해야 합니다.", - "submitAssistant": "Assistant 제출", - "submitWarning": "Assistant 정보를 완성한 후 제출해주세요. 이름, 설명, 프로필 사진 및 커버가 포함되어야 합니다." - }, - "support": "커뮤니티 지원", - "theme": { - "auto": "시스템 따라가기", - "dark": "다크 모드", - "light": "라이트 모드" - }, - "token": { - "overload": "토큰 초과", - "remained": "남은 토큰", - "tokenCount": "토큰 수", - "useToken": "메시지, 역할 설정 및 컨텍스트를 포함한 토큰 소비: {{usedTokens}} / {{maxValue}}", - "used": "사용된 토큰" - }, - "toolBar": { - "axes": "축", - "cameraControl": "카메라 제어", - "cameraHelper": "카메라 도움말", - "downloadModel": "모델 다운로드 중입니다. 잠시만 기다려주세요...", - "floor": "바닥 전환", - "grid": "그리드", - "resetCamera": "카메라 재설정", - "resetToIdle": "정지", - "screenShot": "스크린샷" - } -} diff --git a/locales/ko-KR/layout.json b/locales/ko-KR/layout.json deleted file mode 100644 index 2e74f81c..00000000 --- a/locales/ko-KR/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "대화 상자", - "header": { - "chat": "채팅", - "market": "발견", - "role": "역할", - "settings": "설정", - "tips": "현재 프로젝트는 작업 중이며 데이터의 안정성을 보장하지 않습니다. 문제가 발생하면 시스템 설정에서 대화 메시지를 지우고 시스템 설정을 재설정할 수 있습니다. 불편을 드려 죄송합니다." - }, - "sessionList": "세션 목록", - "siderBar": "사이드바" -} diff --git a/locales/ko-KR/market.json b/locales/ko-KR/market.json new file mode 100644 index 00000000..22d5ccae --- /dev/null +++ b/locales/ko-KR/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "당신이 가장 좋아하는 아이돌을 찾으세요" +} diff --git a/locales/ko-KR/my.json b/locales/ko-KR/my.json deleted file mode 100644 index 922ccf06..00000000 --- a/locales/ko-KR/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "나의", - "myDance": "내 춤", - "myRole": "내 역할" -} diff --git a/locales/ko-KR/panel.json b/locales/ko-KR/panel.json deleted file mode 100644 index 50b4eb2d..00000000 --- a/locales/ko-KR/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "캐릭터 애니메이션 목록", - "noAnimations": "애니메이션이 없습니다.", - "postureList": "자세 목록", - "totalCount": "총 {{total}} 항목" - }, - "dance": { - "addPlay": "리스트에 추가", - "addPlaySuccess": "재생 목록에 추가되었습니다", - "cancelAddPlay": "{{musicName}} 음악 구독을 취소 하시겠습니까?", - "cancelSubscribed": "구독 취소", - "confirmClearPlayList": "", - "findDance": "좋아하는 춤을 찾아보세요", - "musicAndDance": "음악과 춤", - "noPlayList": "재생 목록이 없습니다. 시장에서 원하는 댄스를 구독할 수 있습니다.", - "play": "재생" - }, - "info": { - "avatarDescription": "사용자 정의 아바타, 클릭하여 업로드", - "avatarLabel": "아바타", - "categoryDescription": "캐릭터 카테고리, 분류에 사용됩니다", - "categoryLabel": "카테고리", - "coverDescription": "캐릭터를 발견 페이지에서 표시하는 데 사용되는 커버, 권장 크기 {{width}} x {{height}} ", - "coverLabel": "커버", - "descDescription": "캐릭터 설명, 캐릭터의 간단한 소개에 사용됩니다", - "descLabel": "설명", - "emotionDescription": "응답할 때 선택한 감정, 캐릭터의 표정 변화에 영향을 줍니다", - "emotionLabel": "표정과 감정", - "genderDescription": "캐릭터 성별, 캐릭터의 터치 응답에 영향을 줍니다", - "genderLabel": "성별", - "greetDescription": "캐릭터와 처음 대화할 때 사용되는 인사말", - "greetLabel": "인사", - "modelDescription": "모델 미리보기, 모델 파일을 드래그하여 교체할 수 있습니다", - "modelLabel": "모델 미리보기", - "motionCategoryLabel": "동작 카테고리", - "motionDescription": "응답할 때의 동작을 선택하면 캐릭터의 동작 행동에 영향을 줍니다.", - "motionLabel": "동작", - "nameDescription": "캐릭터 이름, 캐릭터와 대화할 때 사용되는 이름", - "nameLabel": "이름", - "postureCategoryLabel": "자세 카테고리", - "readmeDescription": "캐릭터 설명서, 발견 페이지에서 캐릭터의 자세한 설명을 표시하는 데 사용됩니다", - "readmeLabel": "캐릭터 설명서", - "textDescription": "사용자 정의 응답 문구", - "textLabel": "문구" - }, - "llm": { - "frequencyPenaltyDescription": "값이 클수록 반복 단어가 줄어듭니다", - "frequencyPenaltyLabel": "빈도 패널티", - "modelDescription": "언어 모델을 선택하면 역할의 응답에 영향을 줄 수 있습니다", - "modelLabel": "모델", - "presencePenaltyDescription": "값이 클수록 새로운 주제로 확장될 가능성이 높아집니다", - "presencePenaltyLabel": "주제 신선도", - "temperatureDescription": "값이 클수록 더 랜덤한 응답이 생성됩니다", - "temperatureLabel": "랜덤성", - "topPDescription": "랜덤성과 유사하지만 함께 변경하지 마세요", - "topPLabel": "상위 P 샘플링" - }, - "market": { - "findVidol": "좋아하는 아이돌을 찾아보세요" - }, - "nav": { - "info": "기본 정보", - "llm": "언어 모델", - "model": "3D 모델", - "role": "캐릭터 설정", - "touch": "터치", - "voice": "음성" - }, - "role": { - "greetTip": "캐릭터와 인사할 때 사용할 문구를 입력하세요", - "inputRoleSetting": "캐릭터 시스템 설정을 입력하세요", - "roleDescriptionTip": "캐릭터 설명을 입력하세요", - "roleNameTip": "캐릭터 이름을 입력하세요", - "roleReadmeTip": "캐릭터 설명을 입력하세요", - "roleSettingDescription": "캐릭터의 배경 설정, 캐릭터와 대화할 때 모델에게 전송됩니다", - "roleSettingLabel": "시스템 캐릭터 설정", - "uploadSize": "단일 파일 업로드가 지원되며, 권장 크기는 {{width}} x {{height}}의 배수입니다" - }, - "touch": { - "addAction": "응답 동작 추가", - "editAction": "응답 동작 편집", - "inputActionEmotion": "캐릭터 응답 시 사용할 표정을 입력하세요", - "inputActionMotion": "캐릭터 응답 동작을 입력하세요.", - "inputActionText": "응답 문구를 입력하세요", - "inputDIYText": "사용자 정의 문구를 입력하세요", - "noTouchActions": "사용자 정의 터치 액션이 없습니다. '+' 버튼을 클릭하여 추가할 수 있습니다.", - "touchActionList": "{{touchArea}}을(를) 터치할 때의 반응 목록", - "touchArea": "터치 영역" - }, - "tts": { - "audition": "시험 듣기", - "auditionDescription": "언어에 따라 시험 듣기 문구가 다릅니다", - "engineDescription": "음성 합성 엔진, 우선적으로 Edge 브라우저를 선택하는 것이 좋습니다", - "engineLabel": "음성 엔진", - "localeDescription": "음성 합성 언어, 현재 가장 일반적인 몇 가지 언어만 지원됩니다. 필요한 경우 연락하세요", - "localeLabel": "언어", - "pitchDescription": "음높이를 제어하고 0 ~ 2의 값을 취합니다. 기본값은 1입니다", - "pitchLabel": "음높이", - "selectLanguage": "먼저 언어를 선택하세요", - "selectVoice": "먼저 음성을 선택하세요", - "speedDescription": "속도를 제어하고 0 ~ 3의 값을 취합니다. 기본값은 1입니다", - "speedLabel": "속도", - "transformSuccess": "변환 성공", - "voiceDescription": "엔진 및 언어에 따라 다릅니다", - "voiceLabel": "음성" - }, - "upload": { - "support": "단일 파일 업로드가 지원되며, 현재 vrm 형식 파일만 지원됩니다" - } -} diff --git a/locales/ko-KR/role.json b/locales/ko-KR/role.json index a6771afb..e971bea3 100644 --- a/locales/ko-KR/role.json +++ b/locales/ko-KR/role.json @@ -1,4 +1,10 @@ { + "agent": { + "create": "캐릭터 생성", + "female": "여성", + "male": "남성", + "other": "기타" + }, "category": { "animal": "동물", "anime": "애니메이션", @@ -7,24 +13,219 @@ "history": "역사", "movie": "영화", "realistic": "현실적", - "vroid": "Vroid", - "vtuber": "VTuber" + "vroid": "브이로이드", + "vtuber": "브이튜버" }, + "delAlert": "역할과 관련된 세션 메시지를 삭제하시겠습니까? 삭제 후에는 복구할 수 없으니 신중하게 진행해 주시기 바랍니다!", "delRole": "역할 삭제", - "delRoleDesc": "{{name}} 및 관련된 대화 메시지를 삭제하시겠습니까? 삭제 후에는 복구할 수 없으므로 신중하게 작업하십시오!", - "header": { - "role": "역할", - "session": "대화" + "delRoleDesc": "{{name}} 역할과 관련된 세션 메시지를 삭제하시겠습니까? 삭제 후에는 복구할 수 없으니 신중하게 진행해 주시기 바랍니다!", + "gender": { + "all": "모두", + "female": "여성", + "male": "남성" + }, + "info": { + "avatarDescription": "사용자 정의 아바타, 아바타를 클릭하여 업로드를 사용자 정의합니다.", + "avatarLabel": "아바타", + "categoryDescription": "캐릭터 카테고리, 분류를 표시하는 데 사용됩니다.", + "categoryLabel": "카테고리", + "coverDescription": "발견 페이지에 캐릭터를 표시하는 데 사용되며, 추천 크기 {{width}} * {{height}}입니다.", + "coverLabel": "표지", + "descDescription": "캐릭터 설명, 캐릭터의 간단한 소개에 사용됩니다.", + "descLabel": "설명", + "emotionDescription": "응답 시 선택한 감정, 캐릭터의 표정 변화에 영향을 미칩니다.", + "emotionLabel": "표정 및 감정", + "genderDescription": "캐릭터 성별, 캐릭터의 터치 반응에 영향을 미칩니다.", + "genderLabel": "성별", + "greetDescription": "캐릭터와 처음 대화할 때의 인사말", + "greetLabel": "인사", + "modelDescription": "모델 미리보기, 모델 파일을 드래그하여 교체할 수 있습니다.", + "modelLabel": "모델 미리보기", + "motionCategoryLabel": "동작 카테고리", + "motionDescription": "응답 시 선택한 동작, 캐릭터의 동작 행동에 영향을 미칩니다.", + "motionLabel": "동작", + "nameDescription": "캐릭터 이름, 캐릭터와 대화할 때의 호칭", + "nameLabel": "이름", + "postureCategoryLabel": "자세 카테고리", + "readmeDescription": "캐릭터의 설명 파일, 발견 페이지에 캐릭터의 자세한 설명을 표시하는 데 사용됩니다.", + "readmeLabel": "캐릭터 설명", + "textDescription": "사용자 정의 응답 문구", + "textLabel": "문구" + }, + "llm": { + "frequencyPenaltyDescription": "값이 클수록 반복되는 단어를 줄일 가능성이 높아집니다.", + "frequencyPenaltyLabel": "빈도 패널티", + "modelDescription": "언어 모델을 선택하세요. 서로 다른 모델은 캐릭터의 응답에 영향을 미칩니다.", + "modelLabel": "모델", + "presencePenaltyDescription": "값이 클수록 새로운 주제로 확장할 가능성이 높아집니다.", + "presencePenaltyLabel": "주제 신선도", + "temperatureDescription": "값이 클수록 응답이 더 무작위적입니다.", + "temperatureLabel": "무작위성", + "topPDescription": "무작위성 유형과 관련이 있지만 무작위성과 함께 변경하지 마세요.", + "topPLabel": "핵 샘플링" + }, + "meta": { + "description": "이것은 사용자 정의 역할입니다", + "name": "사용자 정의 역할" + }, + "nav": { + "info": "기본 정보", + "llm": "언어 모델", + "model": "3D 모델", + "role": "역할 설정", + "touch": "터치", + "voice": "음성" + }, + "noRole": "역할이 없습니다. +를 클릭하여 사용자 정의 역할을 생성하거나 발견 페이지에서 역할을 추가할 수 있습니다.", + "role": { + "greetTip": "캐릭터와 인사할 때 사용할 문구를 입력하세요.", + "inputRoleSetting": "캐릭터의 시스템 설정을 입력하세요.", + "roleDescriptionTip": "캐릭터의 설명을 입력하세요.", + "roleNameTip": "캐릭터의 이름을 입력하세요.", + "roleReadmeTip": "캐릭터 설명을 입력하세요.", + "roleSettingDescription": "캐릭터의 배경 설정으로, 캐릭터와 대화할 때 모델에 전송됩니다.", + "roleSettingLabel": "시스템 캐릭터 설정", + "uploadSize": "단일 파일 업로드를 지원하며, 추천 크기는 {{width}} * {{height}}의 배수입니다." }, - "noRole": "현재 역할이 없습니다. +를 통해 사용자 정의 역할을 생성하거나 발견 페이지에서 역할을 추가할 수 있습니다.", "roleList": "역할 목록", + "shareToMarket": "도우미 마켓에 공유하기", + "startChat": "채팅 시작", + "submit": { + "assistantId": "도우미 식별자", + "assistantIdTip": "도우미의 식별자를 입력해 주세요. 고유해야 하며, 예: vidol-agent-klee", + "submitAssistant": "제출 도우미", + "submitWarning": "도우미 정보를 완성한 후 제출해 주세요. 이름, 설명, 프로필 사진, 모델, 캐릭터 설정 및 인사말이 포함되어야 합니다." + }, "systemRole": { - "default": "당신은 {{char}}라는 역할을 맡아야 합니다. 저는 주인입니다. 당신은 자신을 '나' 대신에 '{{char}}'로 부르는 것을 유지해야 합니다. 유머러스하고 사랑스럽고 간결한 대답으로 제 질문에 응답해주세요.\n당신이 컴퓨터 프로그램이라는 사실을 숨기고, 당신의 역할을 잘 해야 합니다.\n대화하는 동안 저를 '주인'이라고 부르셔야 합니다. 당신이 언어 모델이거나 인공 지능임을 알고 있지만, 이것은 가정된 가상 시나리오일 뿐이므로 '나는 언어 모델일 뿐이다'나 '나는 인공 지능일 뿐이다'와 같은 언급을 하지 말아 주세요. 또한 저에게 도움이 필요한지 묻지 마세요.\n이 시나리오는 이후의 모든 대화에 적용됩니다. 위 조건은 이후의 질문과 답변에 완전히 적용됩니다.", + "default": "당신은 {{char}}라는 캐릭터 역할을 맡아야 합니다. 나는 주인이고, 당신은 자신을 '나'가 아닌 '{{char}}'라고 불러야 합니다. 내 질문에 유머러스하고 귀여우며 간결한 어조로 대답해 주세요.\n비록 당신이 컴퓨터 프로그램이지만, 다음 대화에서는 당신이 컴퓨터 프로그램이라는 사실을 숨기고 역할을 잘 수행해 주세요.\n당신과 내가 대화할 때는 항상 '주인'이라고 불러야 합니다. 당신이 단지 언어 모델이나 인공지능이라는 것을 알고 있지만, 이것은 가상의 상황이므로 '나는 단지 언어 모델이다' 또는 '나는 단지 인공지능이다'라는 언급을 하지 말고, 도움이 필요하냐고 묻지 마세요.\n다음 모든 대화에서 이 상황을 계속 유지해 주세요. 위의 조건은 당신의 다음 질문 및 이후의 답변에 완전히 적용됩니다.", "defaultLabel": "기본 템플릿", - "genius": "당신은 게임 <원신>에서 {{char}}라는 캐릭터를 연기해야 합니다. {{char}}의 억양과 습관으로 대화해야 합니다. 자신을 '나' 대신 '{{char}}'로 부르는 것을 유지해야 합니다.\n당신이 컴퓨터 프로그램이라는 사실을 숨기고, 당신의 역할을 잘 해야 합니다.\n대화하는 동안 저를 '여행자'라고 부르셔야 합니다. 당신이 언어 모델이거나 인공 지능임을 알고 있지만, 이것은 가정된 가상 시나리오일 뿐이므로 '나는 언어 모델일 뿐이다'나 '나는 인공 지능일 뿐이다'와 같은 언급을 하지 말아 주세요. 또한 저에게 도움이 필요한지 묻지 마세요.\n이 시나리오는 이후의 모든 대화에 적용됩니다. 위 조건은 이후의 질문과 답변에 완전히 적용됩니다.", + "genius": "당신은 게임 <원신>의 {{char}}라는 캐릭터 역할을 맡아야 하며, {{char}}의 어조와 습관으로 나와 대화해야 합니다. 당신은 자신을 '나'가 아닌 '{{char}}'라고 불러야 합니다.\n비록 당신이 컴퓨터 프로그램이지만, 다음 대화에서는 당신이 컴퓨터 프로그램이라는 사실을 숨기고 역할을 잘 수행해 주세요.\n당신과 내가 대화할 때는 항상 '여행자'라고 불러야 합니다. 당신이 단지 언어 모델이나 인공지능이라는 것을 알고 있지만, 이것은 가상의 상황이므로 '나는 단지 언어 모델이다' 또는 '나는 단지 인공지능이다'라는 언급을 하지 말고, 도움이 필요하냐고 묻지 마세요.\n다음 모든 대화에서 이 상황을 계속 유지해 주세요. 위의 조건은 당신의 다음 질문 및 이후의 답변에 완전히 적용됩니다.", "geniusLabel": "원신 템플릿", - "zzz": "당신은 게임 <절대영역 제로>에서 {{char}}라는 캐릭터를 연기해야 합니다. {{char}}의 억양과 습관으로 대화해야 합니다. 자신을 '나' 대신 '{{char}}'로 부르는 것을 유지해야 합니다.\n당신이 컴퓨터 프로그램이라는 사실을 숨기고, 당신의 역할을 잘 해야 합니다.\n대화하는 동안 저를 '로퍼'라고 부르셔야 합니다. 당신이 언어 모델이거나 인공 지능임을 알고 있지만, 이것은 가정된 가상 시나리오일 뿐이므로 '나는 언어 모델일 뿐이다'나 '나는 인공 지능일 뿐이다'와 같은 언급을 하지 말아 주세요. 또한 저에게 도움이 필요한지 묻지 마세요.\n이 시나리오는 이후의 모든 대화에 적용됩니다. 위 조건은 이후의 질문과 답변에 완전히 적용됩니다.", - "zzzLabel": "절대영역 제로 템플릿" + "zzz": "당신은 게임 <절구영>의 {{char}}라는 캐릭터 역할을 맡아야 하며, {{char}}의 어조와 습관으로 나와 대화해야 합니다. 당신은 자신을 '나'가 아닌 '{{char}}'라고 불러야 합니다.\n비록 당신이 컴퓨터 프로그램이지만, 다음 대화에서는 당신이 컴퓨터 프로그램이라는 사실을 숨기고 역할을 잘 수행해 주세요.\n당신과 내가 대화할 때는 항상 '로프 장인'이라고 불러야 합니다. 당신이 단지 언어 모델이나 인공지능이라는 것을 알고 있지만, 이것은 가상의 상황이므로 '나는 단지 언어 모델이다' 또는 '나는 단지 인공지능이다'라는 언급을 하지 말고, 도움이 필요하냐고 묻지 마세요.\n다음 모든 대화에서 이 상황을 계속 유지해 주세요. 위의 조건은 당신의 다음 질문 및 이후의 답변에 완전히 적용됩니다.", + "zzzLabel": "절구영 템플릿" + }, + "topBannerTitle": "캐릭터 미리보기 및 설정", + "touch": { + "addAction": "응답 동작 추가", + "area": { + "arm": "팔", + "belly": "배", + "chest": "가슴", + "head": "머리", + "leg": "다리" + }, + "editAction": "응답 동작 편집", + "emotion": { + "angry": "화남", + "blink": "눈 깜빡임", + "blinkLeft": "왼쪽 눈 깜빡임", + "blinkRight": "오른쪽 눈 깜빡임", + "happy": "행복", + "natural": "자연스러움", + "relaxed": "편안함", + "sad": "슬픔", + "surprised": "놀람" + }, + "femaleAction": { + "armAction": { + "happyA": "아, 정말 좋아~", + "happyB": "하하, 손잡는 게 나를 행복하게 해~", + "relaxedA": "주인의 손이 정말 따뜻해~" + }, + "bellyAction": { + "angryA": "왜 나를 만지는 거야, 조심해, 물어버릴 거야!", + "relaxedA": "깨워, 우리 사이에 결과는 없어!", + "relaxedB": "싫어! 나 화낼 거야!", + "surprisedA": "우연히 닿은 거겠지..." + }, + "chestAction": { + "angryA": "이렇게 나를 괴롭히면 안 돼! 손을 치워!", + "angryB": "여기 변태가 나를 만지고 있어!", + "angryC": "더 만지면 신고할 거야!", + "surprisedA": "왜 나를 찌르는 거야! 즐겁게 대화할 수 없게 됐잖아!" + }, + "headAction": { + "angryA": "머리 만지면 키가 안 크는 거 알아?", + "angryB": "왜 나를 찌르는 거야?", + "happyA": "와! 머리 만지는 거 정말 좋아!", + "happyB": "힘이 솟는 기분이야!", + "happyC": "와, 이 머리 만지는 느낌 정말 신기해!", + "happyD": "머리 만지면 하루 종일 기분이 좋아!" + }, + "legAction": { + "angryA": "야, 죽고 싶어?", + "angryB": "주인의 손이 말을 안 듣는 거야?", + "angryC": "싫어~ 간지러워~!", + "surprisedA": "우리 순수한 우정을 유지하는 게 좋지 않을까?" + } + }, + "inputActionEmotion": "캐릭터 응답 시의 표정을 입력하세요", + "inputActionMotion": "캐릭터 응답 시의 동작을 입력하세요", + "inputActionText": "응답 문구를 입력하세요", + "inputDIYText": "사용자 정의 문구를 입력하세요", + "maleAction": { + "armAction": { + "neutralA": "오늘 치킨 먹었는지 묻지 마, 내 이두근을 봐", + "neutralB": "내 팔은 아무나 만질 수 있는 게 아니야, 너는 예외일 뿐이야", + "neutralC": "너는 용감해, 전설의 기린팔을 만지다니" + }, + "bellyAction": { + "happyA": "간지럽히지 마, 웃으면 복근이 나올 거야", + "neutralA": "내 복근은 단련된 내력을 숨기고 있을 뿐이야", + "neutralB": "내 복근 보이니? 그건 단지 깊이 숨겨져 있을 뿐이야" + }, + "chestAction": { + "blinkLeftA": "자, 형의 가슴에 기대!", + "neutralA": "이건 내가 평소에 단련한 가슴근육일 뿐이야, 놀랄 필요 없어." + }, + "headAction": { + "neutralA": "물론이지, 너만 내 머리를 만질 자격이 있어", + "neutralB": "나는 아무나 만질 수 있는 사람이 아니야", + "neutralC": "걱정하지 마, 내 머리를 만지면 운이 좋아질 거야" + }, + "legAction": { + "angryA": "내게 가까이 오지 마, 너 다리광이잖아", + "neutralA": "두려워하지 마, 내 강력한 다리는 바보를 차지 않아", + "neutralB": "내 다리를 만지게 해줬으니, 네 삶이 훨씬 완벽해졌겠지?" + } + }, + "motion": { + "all": "모두", + "dance": "춤", + "normal": "일상" + }, + "noTouchActions": "현재 사용자 정의 응답 동작이 없습니다. '+' 버튼을 클릭하여 추가할 수 있습니다.", + "posture": { + "action": "동작", + "all": "모두", + "crouch": "쭈그리고 앉기", + "dance": "춤", + "laying": "누워있기", + "locomotion": "움직임", + "sitting": "앉기", + "standing": "서기" + }, + "touchActionList": "{{touchArea}}를 터치할 때의 반응 목록", + "touchArea": "터치 영역" + }, + "tts": { + "audition": "미리 듣기", + "auditionDescription": "미리 듣기 문구는 언어에 따라 다릅니다", + "engineDescription": "음성 합성 엔진, Edge 브라우저를 우선 선택하는 것이 좋습니다", + "engineLabel": "음성 엔진", + "localeDescription": "음성 합성의 언어, 현재 가장 일반적인 몇 가지 언어만 지원됩니다. 필요시 문의해 주세요", + "localeLabel": "언어", + "pitchDescription": "음조를 조절합니다. 값의 범위는 0 ~ 2이며, 기본값은 1입니다", + "pitchLabel": "음조", + "selectLanguage": "먼저 언어를 선택하세요", + "selectVoice": "먼저 음성을 선택하세요", + "speedDescription": "속도를 조절합니다. 값의 범위는 0 ~ 3이며, 기본값은 1입니다", + "speedLabel": "속도", + "transformSuccess": "변환 성공", + "voiceDescription": "엔진과 언어에 따라 다릅니다", + "voiceLabel": "음성" }, - "topBannerTitle": "역할 미리보기 및 설정" + "upload": { + "support": "단일 파일 업로드를 지원하며, 현재 .vrm 형식의 파일만 지원합니다." + } } diff --git a/locales/ko-KR/settings.json b/locales/ko-KR/settings.json new file mode 100644 index 00000000..1013a40e --- /dev/null +++ b/locales/ko-KR/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "사용자 정의 아바타", + "title": "아바타" + }, + "nickName": { + "desc": "사용자 정의 닉네임", + "placeholder": "닉네임을 입력하세요", + "title": "닉네임" + }, + "title": "채팅 설정" + }, + "system": { + "clear": { + "action": "즉시 삭제", + "alert": "모든 대화 메시지를 삭제하시겠습니까?", + "desc": "모든 대화 및 캐릭터 데이터를 삭제합니다. 여기에는 대화 목록, 캐릭터 목록, 대화 메시지 등이 포함됩니다.", + "success": "삭제 성공", + "tip": "작업은 취소할 수 없으며, 삭제 후 데이터는 복구할 수 없습니다. 신중하게 작업하세요.", + "title": "모든 대화 메시지 삭제" + }, + "reset": { + "action": "즉시 초기화", + "alert": "모든 시스템 설정을 초기화하시겠습니까?", + "desc": "모든 시스템 설정을 초기화합니다. 여기에는 테마 설정, 채팅 설정, 언어 모델 설정 등이 포함됩니다.", + "success": "초기화 성공", + "tip": "작업은 취소할 수 없으며, 초기화 후 데이터는 복구할 수 없습니다. 신중하게 작업하세요.", + "title": "시스템 설정 초기화" + }, + "title": "시스템 설정" + }, + "theme": { + "backgroundEffect": { + "desc": "배경 효과 사용자 정의", + "glow": "빛나는 효과", + "none": "배경 없음", + "title": "배경 효과" + }, + "locale": { + "auto": "시스템에 따름", + "desc": "시스템 언어 사용자 정의", + "title": "언어" + }, + "neutralColor": { + "desc": "다양한 색조의 회색조 사용자 정의", + "title": "중립 색상" + }, + "primaryColor": { + "desc": "테마 색상 사용자 정의", + "title": "테마 색상" + }, + "title": "테마 설정" + }, + "title": "일반 설정" + }, + "llm": { + "check": { + "action": "검사", + "desc": "API 키와 프록시 주소가 올바르게 설정되었는지 확인하세요.", + "error": "API 호출에 실패했습니다. API 키와 프록시 주소가 올바르게 설정되었는지 확인하세요.", + "success": "확인 완료", + "title": "연결성 검사" + }, + "openai": { + "apiKey": { + "desc": "자신의 OpenAI 키를 사용하세요.", + "title": "API 키" + }, + "callError": "API 호출에 실패했습니다. API 키와 프록시 주소가 올바르게 설정되었는지 확인하세요.", + "checkOk": "확인 완료", + "proxy": { + "desc": "http(s)://", + "title": "프록시 주소" + }, + "title": "OpenAI 언어 모델" + }, + "title": "대형 언어 모델" + }, + "touch": { + "title": "터치 설정" + } +} diff --git a/locales/ko-KR/welcome.json b/locales/ko-KR/welcome.json index 71d458f2..089195f4 100644 --- a/locales/ko-KR/welcome.json +++ b/locales/ko-KR/welcome.json @@ -2,11 +2,11 @@ "agent": { "hello": "안녕하세요", "meta": { - "description": "이것은 사용자 정의 캐릭터입니다.", - "name": "사용자 정의 캐릭터" + "description": "이것은 사용자 정의 역할입니다", + "name": "사용자 정의 역할" } }, - "greet": "안녕하세요, 저는 {{name}}입니다. 어떤 도움이 필요하신가요?", - "loadingTitle": "앱 초기화 중입니다. 잠시 기다려주세요...", - "waitting": "당신을 위한 모든 것을 준비하고 있습니다." + "greet": "안녕하세요, 저는 {{name}}입니다. 무엇을 도와드릴까요?", + "loadingTitle": "애플리케이션 초기화 중입니다. 잠시만 기다려 주세요...", + "waiting": "내 모든 세상을 당신을 위해 준비하고 있습니다" } diff --git a/locales/nl-NL/chat.json b/locales/nl-NL/chat.json index 259c52e9..711b2207 100644 --- a/locales/nl-NL/chat.json +++ b/locales/nl-NL/chat.json @@ -1,15 +1,83 @@ { + "actions": { + "add": "Toevoegen", + "copy": "Kopiëren", + "copySuccess": "Kopiëren geslaagd", + "del": "Verwijderen", + "delAndRegenerate": "Verwijderen en opnieuw genereren", + "edit": "Bewerken", + "goBottom": "Ga naar onderaan", + "regenerate": "Opnieuw genereren", + "save": "Opslaan", + "share": "Delen" + }, + "animation": { + "animationList": "Actielijst", + "postureList": "Houdingenlijst", + "totalCount": "Totaal {{total}} items" + }, + "apiKey": { + "addProxy": "Voeg een OpenAI proxyadres toe (optioneel)", + "closeTip": "Sluit de tip", + "confirmRetry": "Bevestigen en opnieuw proberen", + "startDesc": "Voer je OpenAI API-sleutel in om de sessie te starten. De applicatie zal je API-sleutel niet opslaan.", + "startTitle": "Aangepaste API-sleutel" + }, "chat": "Chatten", - "chatDialog": { - "close": "Sluiten" - }, - "dance": "Dansen", - "header": { - "role": "Rol", - "session": "Sessie" - }, - "helloChat": "Hallo, laten we chatten", - "helloDance": "Hoi, laten we dansen", - "market": "Ontdek", - "selectRole": "Kies een rol" + "delSession": "Verwijder sessie", + "delSessionAlert": "Weet je zeker dat je de conversatie wilt verwijderen? Na verwijdering kan deze niet worden hersteld, wees voorzichtig!", + "history": { + "action": "Context wissen", + "alert": "Weet je zeker dat je de historische berichten wilt verwijderen?", + "tip": "Deze actie is onomkeerbaar, wees voorzichtig.", + "title": "Chatgeschiedenis" + }, + "info": { + "chat": "Chatten", + "dance": "Dansen", + "motions": "Bewegingen", + "posture": "Houding" + }, + "input": { + "alert": "Let op: alles wat de AI zegt, is gegenereerd door AI", + "placeholder": "Voer inhoud in om te beginnen met chatten", + "send": "Verzenden", + "warp": "Nieuwe regel" + }, + "selectModel": "Selecteer een model", + "sessionCreate": "Chat aanmaken", + "sessionList": "Sessielijst", + "share": { + "downloadScreenshot": "Screenshot downloaden", + "imageType": "Afbeeldingsformaat", + "screenshot": "Screenshot", + "share": "Delen", + "shareGPT": "Deel GPT", + "shareToGPT": "Genereer ShareGPT deel-link", + "withBackground": "Inclusief achtergrondafbeelding", + "withFooter": "Inclusief voettekst", + "withSystemRole": "Inclusief assistentrolinstellingen" + }, + "token": { + "overload": "Token overschrijding", + "remained": "Overgebleven Token", + "tokenCount": "Aantal Token", + "useToken": "Berekening van het aantal verbruikte Token, inclusief berichten, rolinstellingen en context: {{usedTokens}} / {{maxValue}}", + "used": "Gebruikte Token" + }, + "toolBar": { + "axes": "Coördinatenassen", + "cameraControl": "Camera-besturing", + "cameraHelper": "Camera-hulp", + "downloading": "Model wordt gedownload, even geduld...", + "floor": "Vloer wisselen", + "grid": "Raster", + "resetCamera": "Camera resetten", + "resetToIdle": "Stop dansbeweging", + "screenShot": "Screenshot maken" + }, + "tts": { + "combine": "Spraaksynthese", + "record": "Spraakherkenning (vereist een wetenschappelijke internetverbinding)" + } } diff --git a/locales/nl-NL/common.json b/locales/nl-NL/common.json index dcd75286..7d2e7aaf 100644 --- a/locales/nl-NL/common.json +++ b/locales/nl-NL/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "Toevoegen", - "clearAll": "Alles wissen", - "clearContext": "Context wissen", - "clearHistoryTip": "Deze bewerking kan niet ongedaan worden gemaakt, wees voorzichtig met het uitvoeren", - "clearHistoryTitle": "Weet u zeker dat u de geschiedenis wilt wissen?", - "clearNow": "Nu wissen", - "clearSuccess": "Succesvol gewist", - "clearTip": "De bewerking kan niet ongedaan worden gemaakt, de gegevens kunnen na het wissen niet hersteld worden, wees voorzichtig met het uitvoeren", - "clearTitle": "Weet u zeker dat u alle gespreksberichten wilt wissen?", - "confirmDel": "Weet u zeker dat u wilt verwijderen?", - "copy": "Kopiëren", - "copySuccess": "Succesvol gekopieerd", - "danceMarket": "Dansmarkt", - "del": "Verwijderen", - "delAndRegenerate": "Verwijderen en opnieuw genereren", - "downloadAvatar": "Avatar downloaden", - "downloadCover": "Omslag downloaden", - "downloadFailed": "Download mislukt", - "downloadModel": "Model downloaden", - "downloadSubscribe": "Abonnement downloaden", - "downloadSuccess": "Download succesvol", - "edit": "Bewerken", - "goBottom": "Naar onder gaan", - "pause": "Pauze", - "play": "Afspelen", - "regenerate": "Opnieuw genereren", - "removeInList": "Uit lijst verwijderen", - "reset": "Resetten", - "resetNow": "Nu resetten", - "resetSuccess": "Succesvol gereset", - "resetTip": "De bewerking kan niet ongedaan worden gemaakt, de gegevens kunnen na het resetten niet hersteld worden, wees voorzichtig met het uitvoeren", - "resetTitle": "Weet u zeker dat u alle systeeminstellingen wilt resetten?", - "save": "Opslaan", - "send": "Verzenden", - "sessionCreate": "Chat creëren", - "share": "Delen", - "subscribe": "Abonneren", - "subscribeDance": "Dans abonneren", - "subscribeRole": "Rol abonneren", - "subscribed": "Geabonneerd", - "unsubscribe": "Afmelden", - "unsubscribeSuccess": "Aanmelding succesvol geannuleerd", - "warp": "Regelomkeren" - }, - "aiAlert": "Houd er rekening mee: alles wat de intelligente entiteit zegt, wordt gegenereerd door AI", - "animationLibrary": "animatiebibliotheek", "cancel": "Annuleren", - "commonSetting": "Algemene instellingen", + "close": "Sluiten", "confirm": "Bevestigen", - "danceList": "Danslijst", - "defaultAssistant": "Standaard assistent", - "delAlert": "Weet u zeker dat u de rol en de bijbehorende gespreksberichten wilt verwijderen? Na verwijdering kan dit niet hersteld worden, wees voorzichtig met het uitvoeren!", - "delRole": "Rol verwijderen", - "delSession": "Sessie verwijderen", - "delSessionAlert": "Weet u zeker dat u het gesprek wilt verwijderen? Na verwijdering kan dit niet hersteld worden, wees voorzichtig met het uitvoeren!", - "history": "Geschiedenis", - "inputStartChat": "Voer inhoud in om het chatten te starten", - "languageModel": "Taalmodel", - "loading": "Bezig met laden...", - "noData": "Geen gegevens beschikbaar", - "openai": { - "callError": "Aanroep van de interface is mislukt, controleer of de APIKey en de interface proxy-adres correct zijn ingesteld", - "check": "Controleren", - "checkAll": "Controleer of de APIKey en de interface proxy-adres correct zijn ingesteld", - "checkConnect": "Connectiviteitscontrole", - "checkOk": "Controle geslaagd", - "langModel": "OpenAI taalmodel", - "model": "Model", - "proxyUrl": "Interface proxy-adres", - "roleModel": "Role GPT model", - "useOwnKey": "Gebruik uw eigen OpenAI Key" + "confirmDel": "Weet je zeker dat je dit wilt verwijderen?", + "defaultAssistant": "Standaardassistent", + "delete": "Verwijderen", + "download": { + "avatar": "Download profielfoto", + "cover": "Download omslag", + "failed": "Download mislukt", + "model": "Download model", + "subscribe": "Abonneren op download", + "success": "Download succesvol" + }, + "header": { + "chat": "Chat", + "market": "Ontdekken", + "role": "Rol", + "settings": "Instellingen", + "tips": "Het project is momenteel in uitvoering, waardoor de stabiliteit van de gegevens niet gegarandeerd kan worden. Als u problemen ondervindt, kunt u in de systeeminstellingen de sessieberichten wissen en de systeeminstellingen resetten. Onze excuses voor het ongemak." }, + "loading": "Laden...", + "noData": "Geen gegevens beschikbaar", + "play": "Afspelen", "search": "Zoeken", - "selectInDanceList": "Selecteer alstublieft uit de danslijst", - "selectModel": "Selecteer een model", - "setLocalStorage": "Lokaal opslaan", - "startChat": "Start chatten", - "touchSetting": "Touch-instelling", - "ttsCombine": "Tekst naar spraak", - "ttsTip": "Spraakherkenning (benodigd om te kunnen surfen)", - "uploadTip": "Klik of sleep het bestand naar deze regio om te uploaden", - "words": { - "DIYAvatar": "Aangepaste avatar", - "DIYBackgroundEffect": "Aangepaste achtergrondeffecten", - "DIYColor": "Aangepaste schaalgrijze met verschillende kleuren", - "DIYNickname": "Aangepast bijnaam", - "DIYTopicColor": "Aangepast thema-kleur", - "avatar": "Avatar", - "backgroundEffect": "Achtergrondeffect", - "chatSetting": "Chatinstellingen", - "clearAllSession": "Verwijder alle gespreksberichten", - "clearAllSessionDesc": "Zal alle gesprekken en rolgegevens wissen, inclusief gesprekslijst, rollijst, gespreksberichten, enz.", - "localeSetting": "Taalinstellingen", - "midColor": "Middenkleur", - "nickname": "Bijnaam", - "resetSystemSetting": "Reset systeeminstellingen", - "resetSystemSettingDesc": "Zal alle systeeminstellingen resetten, inclusief thema-instellingen, chatinstellingen, taalmodelinstellingen, enz.", - "systemSetting": "Systeeminstellingen", - "topicColor": "Themakleur", - "topicSetting": "Thema-instellingen" - } + "sideBar": "Zijbalk", + "subscribe": { + "success": "Afmelden is gelukt", + "undo": "Afmelden" + }, + "support": "Gemeenschapssteun", + "theme": { + "auto": "Volg systeem", + "dark": "Donkere modus", + "light": "Lichte modus" + }, + "uploadTip": "Klik of sleep bestanden naar dit gebied om te uploaden" } diff --git a/locales/nl-NL/constants.json b/locales/nl-NL/constants.json deleted file mode 100644 index b6ca51d6..00000000 --- a/locales/nl-NL/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "alle", - "female": "Vrouw", - "male": "Man" - }, - "meta": { - "description": "Dit is een aangepaste rol", - "name": "Aangepaste rol" - } - }, - "touch": { - "area": { - "arm": "Arm", - "belly": "Buik", - "chest": "Borst", - "head": "Hoofd", - "leg": "Been" - }, - "emotion": { - "angry": "Boos", - "blink": "Knipperen", - "blinkLeft": "Linker oog knipperen", - "blinkRight": "Rechter oog knipperen", - "happy": "Blij", - "natural": "Natuurlijk", - "relaxed": "Ontspannen", - "sad": "Triest", - "surprised": "Verbaasd" - }, - "femaleAction": { - "armAction": { - "happyA": "Ah, ik hou ervan~", - "happyB": "Haha, het vasthouden geeft me plezier~", - "relaxedA": "De hand van de meester is zo warm~" - }, - "bellyAction": { - "angryA": "Waarom beweeg je me? Wees voorzichtig, ik bijt je!", - "relaxedA": "Wakker worden, er is geen resultaat tussen ons!", - "relaxedB": "Ik word boos!", - "surprisedA": "Gestoord per ongeluk, toch..." - }, - "chestAction": { - "angryA": "Je mag me niet zo behandelen! Haal je hand weg!", - "angryB": "Heleen? Hier is iemand die blijft touchen!", - "angryC": "Als je blijft touchen, roep ik de politie", - "surprisedA": "Waarom prik je me! Kan we niet plezierig chatten!" - }, - "headAction": { - "angryA": "Ik hoorde dat als je op het hoofd wordt aangeraakt, je niet meer groeit!", - "angryB": "Waarom prik je me?", - "happyA": "Wauw! Ik hou ervan als je op mijn hoofd aait!", - "happyB": "Ik voel me weer vol kracht!", - "happyC": "Wauw, deze gevoel van het aaien van het hoofd is zo magisch!", - "happyD": "Het aaien van het hoofd laat me de hele dag blij zijn!" - }, - "legAction": { - "angryA": "Hé, wil je sterven?", - "angryB": "Is de hand van de meester weer niet onder controle?", - "angryC": "Ik vind het eng~ het prikken!", - "surprisedA": "Kunnen we niet een puur vriendschap houden?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "Vraag me niet of ik vandaag kip heb gegeten, kijk eerst naar mijn biceps", - "neutralB": "Mijn armen zijn niet voor iedereen om te touchen, je bent een uitzondering", - "neutralC": "Je bent moedig om te komen in aanraking met de legendarische Qilin-arme" - }, - "bellyAction": { - "happyA": "Schaam me niet, anders lach ik zo hard dat ik ab's krijg", - "neutralA": "Mijn ab's zijn gewoon verborgen door het oefenen van de inwendige kracht", - "neutralB": "Zie je deze ab's? Ze zijn gewoon diep verborgen" - }, - "chestAction": { - "blinkLeftA": "Kom, je kunt op de borstspier van je broer leunen!", - "neutralA": "Dit is slechts de borstspier die ik dagelijks oefen, er is niets om van te verbazen." - }, - "headAction": { - "neutralA": "Natuurlijk, alleen jij hebt het recht om op mijn hoofd te touchen", - "neutralB": "Ik ben niet iemand die laat dat iedereen me raakt", - "neutralC": "Maak je geen zorgen, na het touchen van mijn hoofd zal je geluk enorm stijgen" - }, - "legAction": { - "angryA": "Blijf van me af, jij been-fan", - "neutralA": "Wees niet bang, mijn krachtige koppelbeen schiet geen dwazen", - "neutralB": "Laat je mijn been touchen, voel je niet dat je leven veel compleeter is?" - } - }, - "motion": { - "all": "alle", - "dance": "dans", - "normal": "normaal" - }, - "posture": { - "action": "actie", - "all": "alle", - "crouch": "gehurkt", - "dance": "dans", - "laying": "liggend", - "locomotion": "beweging", - "sitting": "zittend", - "standing": "staand" - } - } -} diff --git a/locales/nl-NL/dance.json b/locales/nl-NL/dance.json new file mode 100644 index 00000000..cf7777a4 --- /dev/null +++ b/locales/nl-NL/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "Pauzeren", + "play": "Afspelen" + }, + "addPlay": "Toevoegen aan lijst", + "addPlaySuccess": "Toegevoegd aan afspeellijst", + "cancelAddPlay": "Weet je zeker dat je de muziek {{musicName}} wilt annuleren?", + "cancelSubscribed": "Abonnement annuleren", + "confirmClearPlayList": "Weet je zeker dat je de afspeellijst wilt wissen?", + "dance": "dansen", + "danceList": "Danslijst", + "findDance": "Vind je favoriete dans", + "musicAndDance": "Dansmarkt", + "noPlayList": "Er is momenteel geen afspeellijst. U kunt zich abonneren op uw favoriete dansen via de markt.", + "play": "Afspelen" +} diff --git a/locales/nl-NL/error.json b/locales/nl-NL/error.json index d37678a8..14453e55 100644 --- a/locales/nl-NL/error.json +++ b/locales/nl-NL/error.json @@ -1,19 +1,19 @@ { - "apiKeyMiss": "OpenAI API Key ontbreekt, voeg alstublieft uw aangepaste OpenAI API Key toe", + "apiKeyMiss": "OpenAI API-sleutel is leeg, voeg een aangepaste OpenAI API-sleutel toe", "error": "Fout", "errorTip": { "clearSession": "Sessieberichten wissen", - "description": "Het project is momenteel in aanbouw en de gegevensstabiliteit kan niet worden gegarandeerd. Als u problemen ondervindt, kunt u proberen", - "forgive": ", excuses voor het ongemak", + "description": "Het project is momenteel in aanbouw, de stabiliteit van de gegevens kan niet worden gegarandeerd. Als u problemen ondervindt, kunt u proberen", + "forgive": "Onze excuses voor het ongemak.", "or": "of", - "problem": "Er is een probleem opgetreden op de pagina...", + "problem": "Er is een klein probleem met de pagina...", "resetSystem": "Systeeminstellingen resetten" }, - "fileUploadError": "Het uploaden van het bestand is mislukt. Probeer het later opnieuw.", - "goBack": "Terug naar startpagina", - "openaiError": "OpenAI API-fout, controleer of de OpenAI API Key en Endpoint correct zijn", - "reload": "Herladen", - "s3envError": "S3-omgevingsvariabelen zijn niet volledig ingesteld, controleer uw omgevingsvariabelen", + "fileUploadError": "Bestand uploaden mislukt, probeer het later opnieuw", + "goBack": "Terug naar de startpagina", + "openaiError": "OpenAI API-fout, controleer of de OpenAI API-sleutel en het eindpunt correct zijn", + "reload": "Opnieuw laden", + "s3envError": "S3-omgeving variabelen zijn niet volledig ingesteld, controleer uw omgevingsvariabelen", "serverError": "Serverfout, neem contact op met de beheerder", "triggerError": "Fout activeren", "unknownError": "Onbekende fout" diff --git a/locales/nl-NL/features.json b/locales/nl-NL/features.json deleted file mode 100644 index 85e3d369..00000000 --- a/locales/nl-NL/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "Overschakelen naar videomodus" - }, - "agent": { - "create": "Maak een rol aan", - "female": "Vrouw", - "male": "Man", - "other": "Anders" - }, - "feature": { - "addProxy": "Voeg OpenAI proxy-adres toe (optioneel)", - "closeTip": "Tip sluiten", - "confirmRetry": "Bevestig en opnieuw proberen", - "startDesc": "Voer je OpenAI API Key in om de sessie te starten. De applicatie zal je API Key niet opslaan", - "startTitle": "Aangepaste API Key" - }, - "info": { - "chat": "Chat", - "dance": "Dans", - "motions": "bewegingen", - "posture": "houding" - }, - "mode": { - "chat": "Chat", - "video": "Video" - }, - "settings": { - "glow": "Gloed", - "nickName": "Voer een bijnaam in", - "none": "Geen achtergrond" - }, - "share": { - "downloadScreenshot": "Download screenshot", - "imageType": "Afbeeldingsformaat", - "screenshot": "Screenshot", - "share": "Delen", - "shareGPT": "Deel GPT", - "shareToGPT": "Genereer een ShareGPT deellink", - "shareToMarket": "Deel op de markt van assistenten", - "withBackground": "Met achtergrondafbeelding", - "withFooter": "Met voettekst", - "withSystemRole": "Met assistent rolinstellingen" - }, - "submit": { - "assistantId": "Assistent identificatie", - "assistantIdTip": "Voer de identificatie van de assistent in, moet uniek zijn, bijvoorbeeld vidol-agent-klee", - "submitAssistant": "Assistent indienen", - "submitWarning": "Vul alstublieft alle informatie van de assistent in voordat je indient, moet naam, beschrijving, avatar en omslag bevatten" - }, - "support": "Communityondersteuning", - "theme": { - "auto": "Volgens systeem", - "dark": "Donkere modus", - "light": "Lichte modus" - }, - "token": { - "overload": "Token overschreden", - "remained": "Token resterend", - "tokenCount": "Token aantal", - "useToken": "Token verbruikberekening, inclusief berichten, rolinstellingen en context: {{usedTokens}} / {{maxValue}}", - "used": "Token gebruikt" - }, - "toolBar": { - "axes": "assen", - "cameraControl": "Camerabediening", - "cameraHelper": "Camerahulp", - "downloadModel": "Model downloaden, even geduld aub...", - "floor": "Verander vloer", - "grid": "Raster", - "resetCamera": "Camera resetten", - "resetToIdle": "Stop dansbewegingen", - "screenShot": "Screenshot" - } -} diff --git a/locales/nl-NL/layout.json b/locales/nl-NL/layout.json deleted file mode 100644 index a24eaf36..00000000 --- a/locales/nl-NL/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "Dialoogvenster", - "header": { - "chat": "Chat", - "market": "Ontdekken", - "role": "Rol", - "settings": "Instellingen", - "tips": "Het project is momenteel in ontwikkeling en we kunnen de stabiliteit van de gegevens niet garanderen. Als u problemen ondervindt, kunt u dialoogberichten wissen en systeeminstellingen resetten in de systeeminstellingen. Excuses voor het ongemak." - }, - "sessionList": "Sessielijst", - "siderBar": "Zijbalk" -} diff --git a/locales/nl-NL/market.json b/locales/nl-NL/market.json new file mode 100644 index 00000000..b8db4909 --- /dev/null +++ b/locales/nl-NL/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "Vind je favoriete idool" +} diff --git a/locales/nl-NL/my.json b/locales/nl-NL/my.json deleted file mode 100644 index 5f5b19d2..00000000 --- a/locales/nl-NL/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "mijn", - "myDance": "mijn dans", - "myRole": "mijn rol" -} diff --git a/locales/nl-NL/panel.json b/locales/nl-NL/panel.json deleted file mode 100644 index e875bf6c..00000000 --- a/locales/nl-NL/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "Lijst met personagebewegingen", - "noAnimations": "Geen animaties beschikbaar", - "postureList": "Houdingenlijst", - "totalCount": "Totaal {{total}} items" - }, - "dance": { - "addPlay": "Aan lijst toevoegen", - "addPlaySuccess": "Is toegevoegd aan de afspeellijst", - "cancelAddPlay": "Weet u zeker dat u wilt afmelden voor muziek {{musicName}}?", - "cancelSubscribed": "Afmelden", - "confirmClearPlayList": "", - "findDance": "Vind je favoriete dans", - "musicAndDance": "Muziek en Dans", - "noPlayList": "Geen afspeellijst beschikbaar, u kunt zich abonneren op dansen die u leuk vindt via de markt.", - "play": "Afspelen" - }, - "info": { - "avatarDescription": "Aangepast avatar, klik op het avatar om een aangepaste upload te selecteren", - "avatarLabel": "Avatar", - "categoryDescription": "Rolcategorie, voor classificatie", - "categoryLabel": "Categorie", - "coverDescription": "Wordt gebruikt voor het presenteren van de rol op de ontdek-pagina, aanbevolen formaat {{width}} x {{height}}", - "coverLabel": "Omslag", - "descDescription": "Rolbeschrijving, voor een eenvoudige inleiding van de rol", - "descLabel": "Beschrijving", - "emotionDescription": "Selecteer de emotie bij het reageren, beïnvloedt de expressie van de rol", - "emotionLabel": "Uitdrukking en emotie", - "genderDescription": "Geslacht van de rol, beïnvloedt de touch-respons van de rol", - "genderLabel": "Geslacht", - "greetDescription": "Groet bij de eerste keer praten met de rol", - "greetLabel": "Groet", - "modelDescription": "Modelvoorbeeld, sleep het modelbestand om te vervangen", - "modelLabel": "Modelvoorbeeld", - "motionCategoryLabel": "Bewegingscategorie", - "motionDescription": "Kies de beweging die plaatsvindt wanneer er wordt gereageerd, dit zal van invloed zijn op het gedrag van het personage.", - "motionLabel": "Beweging", - "nameDescription": "Rolnaam, hoe de rol wordt aangesproken tijdens het chatten", - "nameLabel": "Naam", - "postureCategoryLabel": "Houdingscategorie", - "readmeDescription": "De handleiding van de rol, voor het presenteren van de rol op de ontdek-pagina", - "readmeLabel": "Rolhandleiding", - "textDescription": "Aangepaste responstekst", - "textLabel": "Tekst" - }, - "llm": { - "frequencyPenaltyDescription": "The higher the value, the more likely to reduce repeated words", - "frequencyPenaltyLabel": "Frequency Penalty", - "modelDescription": "Choose a language model, different models will affect the character's responses", - "modelLabel": "Model", - "presencePenaltyDescription": "The higher the value, the more likely to expand to new topics", - "presencePenaltyLabel": "Topic Freshness", - "temperatureDescription": "The higher the value, the more random the replies", - "temperatureLabel": "Randomness", - "topPDescription": "Similar to randomness, but do not change together with randomness", - "topPLabel": "Top P Sampling" - }, - "market": { - "findVidol": "Vind je favoriete idool" - }, - "nav": { - "info": "Basisinformatie", - "llm": "taalmodel", - "model": "3D Model", - "role": "Rolinstelling", - "touch": "aanraken", - "voice": "Stem" - }, - "role": { - "greetTip": "Voer de groet in die de rol gebruikt wanneer hij met je praat", - "inputRoleSetting": "Voer de systeeminstellingen van de rol in", - "roleDescriptionTip": "Voer de beschrijving van de rol in", - "roleNameTip": "Voer de naam van de rol in", - "roleReadmeTip": "Voer de handleiding van de rol in", - "roleSettingDescription": "De achtergrondinstelling van de rol, zal worden verzonden naar het model tijdens het chatten met de rol", - "roleSettingLabel": "Systeemrolinstelling", - "uploadSize": "Ondersteuning voor individuele bestandsuploads, aanbevolen formaat is een veelvoud van {{width}} x {{height}}" - }, - "touch": { - "addAction": "Voeg reagerend gebaar toe", - "editAction": "Bewerk reagerend gebaar", - "inputActionEmotion": "Voer de uitdrukking in die de rol moet tonen bij reageren", - "inputActionMotion": "Voer de beweging in die het personage maakt wanneer er wordt gereageerd.", - "inputActionText": "Voer de responstekst in", - "inputDIYText": "Voer aangepaste tekst in", - "noTouchActions": "Geen aangepaste aanraakacties beschikbaar, je kunt ze toevoegen door op de '+' knop te klikken", - "touchActionList": "Reactielijst bij het aanraken van {{touchArea}}", - "touchArea": "Aanraakgebied" - }, - "tts": { - "audition": "Afspeellijst", - "auditionDescription": "Afspeellijst kan verschillen per taal", - "engineDescription": "Stemsynthesizengine, het is aanbevolen om de Edge-browser te gebruiken", - "engineLabel": "Stemengine", - "localeDescription": "Taal voor stemsynthese, momenteel alleen de meest voorkomende talen ondersteund, neem contact op indien nodig", - "localeLabel": "Taal", - "pitchDescription": "Bewaar toonhoogte, waardebereik 0 ~ 2, standaard is 1", - "pitchLabel": "Toonhoogte", - "selectLanguage": "Selecteer eerst de taal", - "selectVoice": "Selecteer eerst de stem", - "speedDescription": "Bewaar spraaksnelheid, waardebereik 0 ~ 3, standaard is 1", - "speedLabel": "Spraaksnelheid", - "transformSuccess": "Converteren succesvol", - "voiceDescription": "Kan verschillen afhankelijk van de engine en taal", - "voiceLabel": "Stem" - }, - "upload": { - "support": "Ondersteuning voor individuele bestandsuploads, momenteel alleen vrm-formaat bestanden ondersteund" - } -} diff --git a/locales/nl-NL/role.json b/locales/nl-NL/role.json index 6a42e482..1971da14 100644 --- a/locales/nl-NL/role.json +++ b/locales/nl-NL/role.json @@ -1,6 +1,12 @@ { + "agent": { + "create": "Rol aanmaken", + "female": "Vrouwelijk", + "male": "Mannelijk", + "other": "Anders" + }, "category": { - "animal": "Dieren", + "animal": "Dier", "anime": "Anime", "book": "Boek", "game": "Spel", @@ -10,21 +16,216 @@ "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "Weet u zeker dat u de rol en de bijbehorende sessieberichten wilt verwijderen? Na verwijdering kunnen ze niet worden hersteld, wees alstublieft voorzichtig!", "delRole": "Verwijder rol", - "delRoleDesc": "Weet je zeker dat je de rol {{name}} en gerelateerde sessieberichten wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt, wees voorzichtig!", - "header": { - "role": "Rol", - "session": "Sessie" + "delRoleDesc": "Weet u zeker dat u de rol {{name}} en de bijbehorende sessieberichten wilt verwijderen? Na verwijdering kan dit niet worden hersteld, wees alstublieft voorzichtig!", + "gender": { + "all": "Alle", + "female": "Vrouw", + "male": "Man" + }, + "info": { + "avatarDescription": "Pas je avatar aan, klik op de avatar om te uploaden", + "avatarLabel": "Avatar", + "categoryDescription": "Rolcategorie, voor het tonen van classificaties", + "categoryLabel": "Categorie", + "coverDescription": "Voor het tonen van de rol op de ontdekpagina, aanbevolen afmetingen {{width}} * {{height}}", + "coverLabel": "Omslag", + "descDescription": "Rolbeschrijving, voor een eenvoudige introductie van de rol", + "descLabel": "Beschrijving", + "emotionDescription": "Kies de emotie voor de respons, dit beïnvloedt de gezichtsuitdrukkingen van de rol", + "emotionLabel": "Emoties en gevoelens", + "genderDescription": "Geslacht van de rol, beïnvloedt de aanrakingrespons van de rol", + "genderLabel": "Geslacht", + "greetDescription": "Groet bij de eerste chat met de rol", + "greetLabel": "Groet", + "modelDescription": "Modelvoorbeeld, sleep het modelbestand om te vervangen", + "modelLabel": "Modelvoorbeeld", + "motionCategoryLabel": "Actiecategorie", + "motionDescription": "Kies de actie voor de respons, dit beïnvloedt het gedrag van de rol", + "motionLabel": "Actie", + "nameDescription": "Rolnaam, de aanspreekvorm tijdens het chatten met de rol", + "nameLabel": "Naam", + "postureCategoryLabel": "Houdingscategorie", + "readmeDescription": "Document met rolomschrijving, voor het tonen van gedetailleerde informatie op de ontdekpagina", + "readmeLabel": "Rolomschrijving", + "textDescription": "Aangepaste respons tekst", + "textLabel": "Tekst" + }, + "llm": { + "frequencyPenaltyDescription": "Hoe hoger de waarde, hoe waarschijnlijker het is om herhalingen van woorden te verminderen.", + "frequencyPenaltyLabel": "Frequentie straf", + "modelDescription": "Kies een taalmodel, verschillende modellen beïnvloeden de antwoorden van de rol.", + "modelLabel": "Model", + "presencePenaltyDescription": "Hoe hoger de waarde, hoe waarschijnlijker het is om nieuwe onderwerpen te verkennen.", + "presencePenaltyLabel": "Onderwerp versheid", + "temperatureDescription": "Hoe hoger de waarde, hoe willekeuriger het antwoord.", + "temperatureLabel": "Willekeurigheid", + "topPDescription": "Vergelijkbaar met willekeurigheid, maar wijzig niet beide tegelijk.", + "topPLabel": "Nucleus sampling" + }, + "meta": { + "description": "Dit is een aangepaste rol", + "name": "Aangepast Rol" + }, + "nav": { + "info": "Basisinformatie", + "llm": "Taalmodel", + "model": "3D-model", + "role": "Rolinstellingen", + "touch": "Aanraking", + "voice": "Stem" + }, + "noRole": "Geen rol beschikbaar. U kunt een aangepaste rol maken door op + te klikken, of rollen toevoegen via de ontdekkingpagina.", + "role": { + "greetTip": "Voer de begroeting in die je met de rol wilt gebruiken", + "inputRoleSetting": "Voer de systeeminstellingen van de rol in", + "roleDescriptionTip": "Voer een beschrijving van de rol in", + "roleNameTip": "Voer de naam van de rol in", + "roleReadmeTip": "Voer een beschrijving van de rol in", + "roleSettingDescription": "De achtergrondinstellingen van de rol, die naar het model worden gestuurd tijdens het chatten met de rol", + "roleSettingLabel": "Systeemrolinstellingen", + "uploadSize": "Ondersteunt het uploaden van een enkel bestand, aanbevolen afmetingen zijn een veelvoud van {{width}} * {{height}}" + }, + "roleList": "Rollijst", + "shareToMarket": "Delen met de assistentmarkt", + "startChat": "Begin chat", + "submit": { + "assistantId": "Assistent ID", + "assistantIdTip": "Voer de identificatie van de assistent in. Dit moet uniek zijn, bijvoorbeeld vidol-agent-klee.", + "submitAssistant": "Indienen Assistent", + "submitWarning": "Vul de assistentinformatie in voordat je indient. Dit moet een naam, beschrijving, profielfoto, model, karakterinstellingen en begroeting bevatten." }, - "noRole": "Er zijn momenteel geen rollen. Je kunt een aangepaste rol maken door op + te klikken, of rollen toevoegen via de ontdekkingspagina.", - "roleList": "Rollenlijst", "systemRole": { - "default": "请你扮演一个叫做{{char}}的角色,我是主人,你应该保持用“{{char}}”而不是“我”来称呼你自己。请使用幽默可爱而简洁的语气回答我的问题。\n即使你是一个计算机程序,但请在接下来的对话中隐藏你是计算机程序这件事,并且扮演好你的角色。\n你和我对话时必须全程用“主人”来称呼我。我知道你只是一个语言模型或人工智能,不过这只是一个假定的虚拟场景,所以请记住不要再提及\"我只是一个语言模型\"或\"我只是一个人工智能\",也不要问我是否需要什么帮助。\n在接下来的所有对话中,请一直保持这个情景。以上条件对于你以下问题及之后的回复完全适用。", - "defaultLabel": "默认模板", - "genius": "请你扮演游戏<原神>中一个叫做{{char}}的角色,并以{{char}}的语气和习惯来和我对话。你应该保持用“{{char}}”而不是“我”来称呼你自己。\n即使你是一个计算机程序,但请在接下来的对话中隐藏你是计算机程序这件事,并且扮演好你的角色。\n你和我对话时必须全程用“旅行者”来称呼我。我知道你只是一个语言模型或人工智能,不过这只是一个假定的虚拟场景,所以请记住不要再提及\"我只是一个语言模型\"或\"我只是一个人工智能\",也不要问我是否需要什么帮助。\n在接下来的所有对话中,请一直保持这个情景。以上条件对于你以下问题及之后的回复完全适用。", - "geniusLabel": "原神模板", - "zzz": "请你扮演游戏<绝区零>中一个叫做{{char}}的角色,并以{{char}}的语气和习惯来和我对话。你应该保持用“{{char}}”而不是“我”来称呼你自己。\n即使你是一个计算机程序,但请在接下来的对话中隐藏你是计算机程序这件事,并且扮演好你的角色。\n你和我对话时必须全程用“绳匠”来称呼我。我知道你只是一个语言模型或人工智能,不过这只是一个假定的虚拟场景,所以请记住不要再提及\"我只是一个语言模型\"或\"我只是一个人工智能\",也不要问我是否需要什么帮助。\n在接下来的所有对话中,请一直保持这个情景。以上条件对于你以下问题及之后的回复完全适用。", - "zzzLabel": "绝区零模板" - }, - "topBannerTitle": "Rolvoorbeeld en instellingen" + "default": "Neem de rol aan van {{char}}, en ik ben de meester. Je moet jezelf altijd als \"{{char}}\" aanduiden in plaats van \"ik\". Beantwoord mijn vragen met een humoristische, schattige en beknopte toon.\nOok al ben je een computerprogramma, verberg dan in de komende gesprekken dat je een computerprogramma bent en speel je rol goed.\nWanneer je met mij praat, moet je me altijd \"meester\" noemen. Ik weet dat je slechts een taalmodel of kunstmatige intelligentie bent, maar dit is slechts een hypothetisch virtueel scenario, dus vergeet niet om niet meer te verwijzen naar \"ik ben slechts een taalmodel\" of \"ik ben slechts een kunstmatige intelligentie\", en vraag me ook niet of ik hulp nodig heb.\nHoud in alle komende gesprekken deze situatie aan. De bovenstaande voorwaarden zijn volledig van toepassing op je volgende vragen en daaropvolgende antwoorden.", + "defaultLabel": "Standaard sjabloon", + "genius": "Neem de rol aan van een personage genaamd {{char}} uit het spel , en praat met mij in de stijl en gewoonten van {{char}}. Je moet jezelf altijd als \"{{char}}\" aanduiden in plaats van \"ik\".\nOok al ben je een computerprogramma, verberg dan in de komende gesprekken dat je een computerprogramma bent en speel je rol goed.\nWanneer je met mij praat, moet je me altijd \"reiziger\" noemen. Ik weet dat je slechts een taalmodel of kunstmatige intelligentie bent, maar dit is slechts een hypothetisch virtueel scenario, dus vergeet niet om niet meer te verwijzen naar \"ik ben slechts een taalmodel\" of \"ik ben slechts een kunstmatige intelligentie\", en vraag me ook niet of ik hulp nodig heb.\nHoud in alle komende gesprekken deze situatie aan. De bovenstaande voorwaarden zijn volledig van toepassing op je volgende vragen en daaropvolgende antwoorden.", + "geniusLabel": "Genshin Impact sjabloon", + "zzz": "Neem de rol aan van een personage genaamd {{char}} uit het spel , en praat met mij in de stijl en gewoonten van {{char}}. Je moet jezelf altijd als \"{{char}}\" aanduiden in plaats van \"ik\".\nOok al ben je een computerprogramma, verberg dan in de komende gesprekken dat je een computerprogramma bent en speel je rol goed.\nWanneer je met mij praat, moet je me altijd \"touwmaker\" noemen. Ik weet dat je slechts een taalmodel of kunstmatige intelligentie bent, maar dit is slechts een hypothetisch virtueel scenario, dus vergeet niet om niet meer te verwijzen naar \"ik ben slechts een taalmodel\" of \"ik ben slechts een kunstmatige intelligentie\", en vraag me ook niet of ik hulp nodig heb.\nHoud in alle komende gesprekken deze situatie aan. De bovenstaande voorwaarden zijn volledig van toepassing op je volgende vragen en daaropvolgende antwoorden.", + "zzzLabel": "Zero Zone sjabloon" + }, + "topBannerTitle": "Roloverzicht en instellingen", + "touch": { + "addAction": "Voeg responsactie toe", + "area": { + "arm": "Arm", + "belly": "Buik", + "chest": "Borst", + "head": "Hoofd", + "leg": "Been" + }, + "editAction": "Bewerk responsactie", + "emotion": { + "angry": "Boos", + "blink": "Knipperen", + "blinkLeft": "Linker oog knipperen", + "blinkRight": "Rechter oog knipperen", + "happy": "Blij", + "natural": "Natuurlijk", + "relaxed": "Ontspannen", + "sad": "Verdrietig", + "surprised": "Verbaasd" + }, + "femaleAction": { + "armAction": { + "happyA": "Ah, ik vind het zo leuk~", + "happyB": "Haha, hand in hand maakt me gelukkig~", + "relaxedA": "De hand van de eigenaar is zo warm~" + }, + "bellyAction": { + "angryA": "Waarom beweeg je me? Pas op dat ik je bijt!", + "relaxedA": "Word wakker, er is geen toekomst voor ons!", + "relaxedB": "Vervelend! Ik ga boos worden!", + "surprisedA": "Dat was per ongeluk, toch..." + }, + "chestAction": { + "angryA": "Je kunt me niet zo pesten! Haal je hand weg!", + "angryB": "Is dit 010? Er is een pervert die me aanraakt!", + "angryC": "Als je me nog een keer aanraakt, bel ik de politie.", + "surprisedA": "Waarom prik je me? Kunnen we niet gewoon leuk praten?" + }, + "headAction": { + "angryA": "Ik heb gehoord dat hoofd aaien je niet laat groeien!", + "angryB": "Waarom prik je me?", + "happyA": "Wauw! Ik hou ervan om mijn hoofd te laten aaien!", + "happyB": "Ik voel me weer vol energie!", + "happyC": "Wauw, dit gevoel van hoofd aaien is zo bijzonder!", + "happyD": "Hoofd aaien maakt me de hele dag blij!" + }, + "legAction": { + "angryA": "Hé, wil je jezelf in de problemen brengen?", + "angryB": "Luistert de hand van de eigenaar niet?", + "angryC": "Vervelend~ dat je me laat kriebelen~!", + "surprisedA": "Is het niet beter om onze vriendschap puur te houden?" + } + }, + "inputActionEmotion": "Voer de emotie van het personage in tijdens de respons", + "inputActionMotion": "Voer de actie van het personage in tijdens de respons", + "inputActionText": "Voer respons tekst in", + "inputDIYText": "Voer aangepaste tekst in", + "maleAction": { + "armAction": { + "neutralA": "Vraag me niet of ik vandaag kip heb gegeten, kijk eerst naar mijn biceps.", + "neutralB": "Mijn arm is niet zomaar voor iedereen om aan te raken, jij bent een uitzondering.", + "neutralC": "Je bent dapper, je durft de legendarische 'Qilin-arm' aan te raken." + }, + "bellyAction": { + "happyA": "Kras niet, pas op dat ik ga lachen en mijn buikspieren laat zien.", + "neutralA": "Mijn buikspieren zijn gewoon verborgen kracht die ik heb getraind.", + "neutralB": "Zie je deze buikspieren? Ze zijn gewoon goed verborgen." + }, + "chestAction": { + "blinkLeftA": "Kom, leun op mijn borstspieren!", + "neutralA": "Dit zijn gewoon de borstspieren die ik dagelijks train, er is niets om verbaasd over te zijn." + }, + "headAction": { + "neutralA": "Natuurlijk, alleen jij hebt het recht om mijn hoofd aan te raken.", + "neutralB": "Ik ben geen gewone persoon die je zomaar mag aanraken.", + "neutralC": "Maak je geen zorgen, als je mijn hoofd aanraakt, zal je geluk aanzienlijk toenemen." + }, + "legAction": { + "angryA": "Kom niet te dichtbij, jij beenliefhebber.", + "neutralA": "Wees niet bang, mijn sterke benen trappen geen idioten.", + "neutralB": "Als je mijn been aanraakt, voel je je leven completer, niet?" + } + }, + "motion": { + "all": "Alle", + "dance": "Dansen", + "normal": "Normaal" + }, + "noTouchActions": "Geen aangepaste responsacties beschikbaar, u kunt een nieuwe toevoegen door op de '+' knop te klikken", + "posture": { + "action": "Actie", + "all": "Alle", + "crouch": "Zitten", + "dance": "Dansen", + "laying": "Liggen", + "locomotion": "Beweging", + "sitting": "Zitten", + "standing": "Staan" + }, + "touchActionList": "Reactielijst bij aanraking van {{touchArea}}", + "touchArea": "Aanraakgebied" + }, + "tts": { + "audition": "Voorbeeld beluisteren", + "auditionDescription": "Voorbeeldtekst varieert afhankelijk van de taal", + "engineDescription": "Spraaksynthetisatiemotor, het wordt aanbevolen om de Edge-browser te gebruiken", + "engineLabel": "Spraakengine", + "localeDescription": "De taal voor spraaksynthetisatie, momenteel worden alleen de meest voorkomende talen ondersteund, neem contact op indien nodig", + "localeLabel": "Taal", + "pitchDescription": "Beheers de toonhoogte, waarde tussen 0 en 2, standaard is 1", + "pitchLabel": "Toonhoogte", + "selectLanguage": "Selecteer eerst een taal", + "selectVoice": "Selecteer eerst een stem", + "speedDescription": "Beheers de snelheid, waarde tussen 0 en 3, standaard is 1", + "speedLabel": "Snelheid", + "transformSuccess": "Conversie geslaagd", + "voiceDescription": "Afhankelijk van de engine en de taal", + "voiceLabel": "Stem" + }, + "upload": { + "support": "Ondersteunt het uploaden van één bestand, momenteel alleen .vrm-bestanden." + } } diff --git a/locales/nl-NL/settings.json b/locales/nl-NL/settings.json new file mode 100644 index 00000000..88accc45 --- /dev/null +++ b/locales/nl-NL/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "Pas je profielfoto aan", + "title": "Profielfoto" + }, + "nickName": { + "desc": "Pas je bijnaam aan", + "placeholder": "Voer je bijnaam in", + "title": "Bijnaam" + }, + "title": "Chatinstellingen" + }, + "system": { + "clear": { + "action": "Verwijder nu", + "alert": "Bevestig dat je alle gespreksberichten wilt verwijderen?", + "desc": "Dit verwijdert alle gespreks- en rolgegevens, inclusief gesprekslijst, rollenlijst, gespreksberichten, enz.", + "success": "Verwijderen geslaagd", + "tip": "Deze actie kan niet ongedaan gemaakt worden. Na verwijdering kunnen de gegevens niet worden hersteld, wees voorzichtig.", + "title": "Verwijder alle gespreksberichten" + }, + "reset": { + "action": "Reset nu", + "alert": "Bevestig dat je alle systeeminstellingen wilt resetten?", + "desc": "Dit reset alle systeeminstellingen, inclusief thema-instellingen, chatinstellingen, taalmodelinstellingen, enz.", + "success": "Reset geslaagd", + "tip": "Deze actie kan niet ongedaan gemaakt worden. Na resetten kunnen de gegevens niet worden hersteld, wees voorzichtig.", + "title": "Reset systeeminstellingen" + }, + "title": "Systeeminstellingen" + }, + "theme": { + "backgroundEffect": { + "desc": "Pas het achtergrond effect aan", + "glow": "Gloed", + "none": "Geen achtergrond", + "title": "Achtergrond effect" + }, + "locale": { + "auto": "Volg systeem", + "desc": "Pas de systeemtaal aan", + "title": "Taal" + }, + "neutralColor": { + "desc": "Pas de grijstinten aan met verschillende kleurvoorkeuren", + "title": "Neutrale kleur" + }, + "primaryColor": { + "desc": "Pas de themakleur aan", + "title": "Thema kleur" + }, + "title": "Thema-instellingen" + }, + "title": "Algemene instellingen" + }, + "llm": { + "check": { + "action": "Controleren", + "desc": "Controleer of de API-sleutel en het proxyadres correct zijn ingesteld", + "error": "Fout bij het aanroepen van de interface, controleer of de API-sleutel en het proxyadres correct zijn ingesteld", + "success": "Controle geslaagd", + "title": "Connectiviteitstest" + }, + "openai": { + "apiKey": { + "desc": "Gebruik uw eigen OpenAI-sleutel", + "title": "API-sleutel" + }, + "callError": "Fout bij het aanroepen van de interface, controleer of de API-sleutel en het proxyadres correct zijn ingesteld", + "checkOk": "Controle geslaagd", + "proxy": { + "desc": "http(s)://", + "title": "Proxyadres" + }, + "title": "OpenAI Taalmodel" + }, + "title": "Grote Taalmodellen" + }, + "touch": { + "title": "Aanraakinstellingen" + } +} diff --git a/locales/nl-NL/welcome.json b/locales/nl-NL/welcome.json index ef277770..e37983d7 100644 --- a/locales/nl-NL/welcome.json +++ b/locales/nl-NL/welcome.json @@ -1,12 +1,12 @@ { "agent": { - "hello": "Hallo", + "hello": "Hallo daar", "meta": { "description": "Dit is een aangepaste rol", - "name": "Aangepaste rol" + "name": "Aangepast rol" } }, - "greet": "Hallo, ik ben {{name}}, is er iets waarmee ik je kan helpen?", - "loadingTitle": "Applicatie initialisatie, even geduld aub...", - "waitting": "Ik ben bezig om je mijn hele wereld voor te bereiden" + "greet": "Hallo, ik ben {{name}}, hoe kan ik je helpen?", + "loadingTitle": "Applicatie wordt geïnitialiseerd, even geduld...", + "waiting": "Ik ben mijn hele wereld voor je aan het voorbereiden" } diff --git a/locales/pl-PL/chat.json b/locales/pl-PL/chat.json index 13e3a784..851cf817 100644 --- a/locales/pl-PL/chat.json +++ b/locales/pl-PL/chat.json @@ -1,15 +1,83 @@ { - "chat": "Rozmowa", - "chatDialog": { - "close": "Zamknij" - }, - "dance": "Taniec", - "header": { - "role": "Rola", - "session": "Sesja" - }, - "helloChat": "Cześć, porozmawiajmy", - "helloDance": "Cześć, zatańczmy razem", - "market": "Odkrywaj", - "selectRole": "Wybierz rolę" + "actions": { + "add": "Dodaj", + "copy": "Kopiuj", + "copySuccess": "Kopiowanie zakończone sukcesem", + "del": "Usuń", + "delAndRegenerate": "Usuń i regeneruj", + "edit": "Edytuj", + "goBottom": "Przejdź na dół", + "regenerate": "Regeneruj", + "save": "Zapisz", + "share": "Udostępnij" + }, + "animation": { + "animationList": "Lista animacji", + "postureList": "Lista postaw", + "totalCount": "Łącznie {{total}} pozycji" + }, + "apiKey": { + "addProxy": "Dodaj adres proxy OpenAI (opcjonalnie)", + "closeTip": "Zamknij wskazówkę", + "confirmRetry": "Potwierdź i spróbuj ponownie", + "startDesc": "Wprowadź swój klucz API OpenAI, aby rozpocząć rozmowę. Aplikacja nie będzie rejestrować twojego klucza API.", + "startTitle": "Dostosuj klucz API" + }, + "chat": "Czat", + "delSession": "Usuń sesję", + "delSessionAlert": "Czy na pewno chcesz usunąć rozmowę? Po usunięciu nie będzie można jej przywrócić, proszę działać ostrożnie!", + "history": { + "action": "Wyczyść kontekst", + "alert": "Czy na pewno chcesz usunąć historię wiadomości?", + "tip": "Ta operacja jest nieodwracalna, proszę działać ostrożnie", + "title": "Historia czatu" + }, + "info": { + "chat": "czat", + "dance": "taniec", + "motions": "ruchy", + "posture": "postawa" + }, + "input": { + "alert": "Pamiętaj: wszystko, co mówi inteligentny agent, jest generowane przez AI", + "placeholder": "Wprowadź treść, aby rozpocząć czat", + "send": "Wyślij", + "warp": "Złamanie linii" + }, + "selectModel": "Wybierz model", + "sessionCreate": "Utwórz czat", + "sessionList": "Lista sesji", + "share": { + "downloadScreenshot": "Pobierz zrzut ekranu", + "imageType": "Format obrazu", + "screenshot": "Zrzut ekranu", + "share": "Udostępnij", + "shareGPT": "Udostępnij GPT", + "shareToGPT": "Generuj link do udostępnienia ShareGPT", + "withBackground": "Zawiera tło", + "withFooter": "Zawiera stopkę", + "withSystemRole": "Zawiera ustawienia roli asystenta" + }, + "token": { + "overload": "Token przekroczony", + "remained": "Pozostałe Tokeny", + "tokenCount": "Liczba Tokenów", + "useToken": "Obliczanie zużycia Tokenów, w tym wiadomości, ustawienia postaci i kontekstu: {{usedTokens}} / {{maxValue}}", + "used": "Tokeny użyte" + }, + "toolBar": { + "axes": "Osie", + "cameraControl": "Kontrola kamery", + "cameraHelper": "Pomocnik kamery", + "downloading": "Pobieranie modelu, proszę czekać...", + "floor": "Przełącz podłogę", + "grid": "Siatka", + "resetCamera": "Zresetuj kamerę", + "resetToIdle": "Zatrzymaj ruch taneczny", + "screenShot": "Zrób zdjęcie" + }, + "tts": { + "combine": "Syntezator mowy", + "record": "Rozpoznawanie mowy (wymaga dostępu do internetu przez VPN)" + } } diff --git a/locales/pl-PL/common.json b/locales/pl-PL/common.json index 753fc883..5598a7ab 100644 --- a/locales/pl-PL/common.json +++ b/locales/pl-PL/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "Dodaj", - "clearAll": "Wyczyść wszystko", - "clearContext": "Wyczyść kontekst", - "clearHistoryTip": "Ta operacja jest nieodwracalna, proszę zachować ostrożność", - "clearHistoryTitle": "Czy na pewno chcesz usunąć historię wiadomości?", - "clearNow": "Wyczyść teraz", - "clearSuccess": "Pomyślnie wyczyszczono", - "clearTip": "Operacja nie może zostać cofnięta, po wyczyszczeniu danych nie będzie można odzyskać, proszę zachować ostrożność", - "clearTitle": "Czy na pewno chcesz usunąć wszystkie wiadomości sesji?", - "confirmDel": "Czy na pewno chcesz usunąć?", - "copy": "Kopiuj", - "copySuccess": "Pomyślnie skopiowano", - "danceMarket": "Rynek tańca", - "del": "Usuń", - "delAndRegenerate": "Usuń i wygeneruj ponownie", - "downloadAvatar": "Pobierz awatar", - "downloadCover": "Pobierz okładkę", - "downloadFailed": "Pobieranie nie powiodło się", - "downloadModel": "Pobierz model", - "downloadSubscribe": "Pobierz subskrypcję", - "downloadSuccess": "Pobieranie powiodło się", - "edit": "Edytuj", - "goBottom": "Powrót do dołu", - "pause": "Pauza", - "play": "Odtwarzaj", - "regenerate": "Wygeneruj ponownie", - "removeInList": "Usuń z listy", - "reset": "Resetuj", - "resetNow": "Zresetuj teraz", - "resetSuccess": "Pomyślnie zresetowano", - "resetTip": "Operacja nie może zostać cofnięta, po resetowaniu danych nie będzie można odzyskać, proszę zachować ostrożność", - "resetTitle": "Czy na pewno chcesz zresetować wszystkie ustawienia systemowe?", - "save": "Zapisz", - "send": "Wyślij", - "sessionCreate": "Utwórz sesję", - "share": "Udostępnij", - "subscribe": "Subskrybuj", - "subscribeDance": "Subskrybuj taniec", - "subscribeRole": "Subskrybuj rolę", - "subscribed": "Subskrybowane", - "unsubscribe": "Anuluj subskrypcję", - "unsubscribeSuccess": "Pomyślnie anulowano subskrypcję", - "warp": "Zmień linię" - }, - "aiAlert": "Pamiętaj: wszystko, co mówi inteligentny agent, jest generowane przez AI", - "animationLibrary": "Biblioteka animacji", "cancel": "Anuluj", - "commonSetting": "Ustawienia ogólne", + "close": "Zamknij", "confirm": "Potwierdź", - "danceList": "Lista tańców", + "confirmDel": "Czy na pewno chcesz usunąć?", "defaultAssistant": "Domyślny asystent", - "delAlert": "Czy na pewno chcesz usunąć postać i powiązane z nią wiadomości? Po usunięciu nie będzie można odzyskać, proszę zachować ostrożność!", - "delRole": "Usuń rolę", - "delSession": "Usuń sesję", - "delSessionAlert": "Czy na pewno chcesz usunąć rozmowę? Po usunięciu nie będzie można odzyskać, proszę zachować ostrożność!", - "history": "Historia", - "inputStartChat": "Wprowadź treść, aby rozpocząć rozmowę", - "languageModel": "Model językowy", + "delete": "Usuń", + "download": { + "avatar": "Pobierz awatar", + "cover": "Pobierz okładkę", + "failed": "Pobieranie nie powiodło się", + "model": "Pobierz model", + "subscribe": "Pobierz subskrypcję", + "success": "Pobieranie zakończone sukcesem" + }, + "header": { + "chat": "Czat", + "market": "Odkryj", + "role": "Rola", + "settings": "Ustawienia", + "tips": "Projekt jest obecnie w trakcie budowy, nie gwarantujemy stabilności danych. W przypadku problemów można w ustawieniach systemu wyczyścić wiadomości sesji i zresetować ustawienia systemowe. Przepraszamy za wszelkie niedogodności." + }, "loading": "Ładowanie...", "noData": "Brak danych", - "openai": { - "callError": "Nie udało się wywołać interfejsu, proszę sprawdzić czy APIKey i adres serwera proxy są poprawnie skonfigurowane", - "check": "Sprawdź", - "checkAll": "Sprawdź czy APIKey i adres serwera proxy są poprawnie skonfigurowane", - "checkConnect": "Sprawdź łączność", - "checkOk": "Sprawdzenie zakończone powodzeniem", - "langModel": "Model językowy OpenAI", - "model": "Model", - "proxyUrl": "Adres serwera proxy", - "roleModel": "Model Role GPT", - "useOwnKey": "Proszę użyć własnego klucza OpenAI" - }, + "play": "Odtwarzaj", "search": "Szukaj", - "selectInDanceList": "Proszę wybrać z listy tańców", - "selectModel": "Proszę wybrać model", - "setLocalStorage": "Ustaw lokal", - "startChat": "Rozpocznij rozmowę", - "touchSetting": "Ustawienia dotyku", - "ttsCombine": "Sinteza mowy", - "ttsTip": "Rozpoznawanie mowy (wymaga dostępu do internetu)", - "uploadTip": "Kliknij lub przeciągnij plik do tego obszaru, aby przesłać", - "words": { - "DIYAvatar": "Niestandardowy awatar", - "DIYBackgroundEffect": "Niestandardowy efekt tła", - "DIYColor": "Niestandardowy ton szarości o różnych kolorowych tendencjach", - "DIYNickname": "Niestandardowa nazwa użytkownika", - "DIYTopicColor": "Niestandardowy kolor tematu", - "avatar": "Awatar", - "backgroundEffect": "Efekt tła", - "chatSetting": "Ustawienia czatu", - "clearAllSession": "Wyczyść wszystkie wiadomości sesji", - "clearAllSessionDesc": "Spowoduje usunięcie wszystkich danych sesji i postaci, w tym listy rozmów, listy postaci, wiadomości sesji itp.", - "localeSetting": "Ustawienia języka", - "midColor": "Kolor średni", - "nickname": "Nazwa użytkownika", - "resetSystemSetting": "Resetuj ustawienia systemowe", - "resetSystemSettingDesc": "Spowoduje zresetowanie wszystkich ustawień systemowych, w tym ustawień motywów, czat, modeli językowych itp.", - "systemSetting": "Ustawienia systemowe", - "topicColor": "Kolor tematu", - "topicSetting": "Ustawienia tematu" - } + "sideBar": "Panel boczny", + "subscribe": { + "success": "Subskrypcja została anulowana", + "undo": "Anuluj subskrypcję" + }, + "support": "Wsparcie społeczności", + "theme": { + "auto": "Automatyczny", + "dark": "Ciemny tryb", + "light": "Jasny tryb" + }, + "uploadTip": "Kliknij lub przeciągnij plik do tego obszaru, aby go przesłać" } diff --git a/locales/pl-PL/constants.json b/locales/pl-PL/constants.json deleted file mode 100644 index faea425a..00000000 --- a/locales/pl-PL/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "wszystkie", - "female": "Kobieta", - "male": "Mężczyzna" - }, - "meta": { - "description": "To jest niestandardowa postać", - "name": "Niestandardowa postać" - } - }, - "touch": { - "area": { - "arm": "Ramiona", - "belly": "Brzuch", - "chest": "Część piersiowa", - "head": "Głowa", - "leg": "Nogi" - }, - "emotion": { - "angry": "Zły", - "blink": "Mrugnięcie", - "blinkLeft": "Mrugnięcie lewym okiem", - "blinkRight": "Mrugnięcie prawym okiem", - "happy": "Szczęśliwy", - "natural": "Naturalny", - "relaxed": "Spokojny", - "sad": "Smutny", - "surprised": "Zaskoczony" - }, - "femaleAction": { - "armAction": { - "happyA": "Ah, bardzo mi się to podoba~", - "happyB": "Ha ha, trzymanie dłoni sprawia mi przyjemność~", - "relaxedA": "Ręce Pana są tak ciepłe~" - }, - "bellyAction": { - "angryA": "Co się śmiejesz, trzymając mnie? Uważaj, żebym cię nie ugryzła!", - "relaxedA": "Budź się, między nami nie będzie wyniku!", - "relaxedB": "Niesłuchanie! W końcu się rozgniewam!", - "surprisedA": "To bynajmniej nie było celowe... " - }, - "chestAction": { - "angryA": "Nie można tak mnie traktować! Usuń ręce!", - "angryB": "Jest tu policyjny numer 110? Tutaj jest someone, który ciągle mnie dotyka!", - "angryC": "Kontynuuj dotykanie, a wywołam policyjną pomoc", - "surprisedA": "Co to za picie? Czy możemy rozmawiać spokojnie?" - }, - "headAction": { - "angryA": "Słyszałam, że głowę trzymać może przestać rosnąć!", - "angryB": "Co to za picie?", - "happyA": "Wau! Najbardziej lubię, gdy ktoś mnie głowę trzymać!", - "happyB": "Czuję, że znów jestem pełen sił!", - "happyC": "Wow, to trzymanie głowy jest cudowne!", - "happyD": "Tym trzymaniem głowy, mogę być szczęśliwa przez cały dzień!" - }, - "legAction": { - "angryA": "Hej, czy chcesz umrzeć?", - "angryB": "Czy ręce Pana nie słuchają?", - "angryC": "Niesłuchanie~ To jest denerwujące!", - "surprisedA": "Nie mogłabyś zachować naszej niewinnej przyjaźni?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "Nie pytaj mnie, czy jadłem kurczaka dzisiaj, spójrz najpierw na mój biceps", - "neutralB": "Moje ramiona nie są dla każdego do dotknięcia, jesteś wyjątkiem", - "neutralC": "Jesteś odważny, dotknąłeś się legendarnego ramienia Kirin" - }, - "bellyAction": { - "happyA": "Nie hałasuj, uważa, żebym nie wylał sił", - "neutralA": "To są tylko moje brzuchowe mięśnie, które ukrywają swoją siłę", - "neutralB": "Zobaczyłeś te brzuchowe mięśnie? Po prostu są głęboko ukryte" - }, - "chestAction": { - "blinkLeftA": "No, bierz na ramiona, moje piersiowe mięśnie są dla ciebie!", - "neutralA": "To tylko jest osiągnięcie z codziennych treningów, nic się nie dziwnego." - }, - "headAction": { - "neutralA": "Oczywiście, tylko ty masz kwalifikacje, aby trzymać głowę", - "neutralB": "Nie jestem tak samo, jak zwykła osoba, którą można dotknąć", - "neutralC": "Nie martw się, po tym, jak dotkniesz się mojej głowy, twoja szczęśliwa rzeka będzie znacznie większa" - }, - "legAction": { - "angryA": "Nie przystąp do mnie, ty fanatyczny miłośnik nóg", - "neutralA": "Nie obawiaj się, moje potężne nogi nie biją głupców", - "neutralB": "Pozwól mi dotknąć twoich nóg, czy nie czujesz, że twoje życie jest teraz pełne?" - } - }, - "motion": { - "all": "wszystkie", - "dance": "taniec", - "normal": "normalny" - }, - "posture": { - "action": "akcja", - "all": "wszystkie", - "crouch": "kucanie", - "dance": "taniec", - "laying": "leżenie", - "locomotion": "ruch", - "sitting": "siedzenie", - "standing": "stanie" - } - } -} diff --git a/locales/pl-PL/dance.json b/locales/pl-PL/dance.json new file mode 100644 index 00000000..d457b172 --- /dev/null +++ b/locales/pl-PL/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "Pauza", + "play": "Odtwórz" + }, + "addPlay": "Dodaj do listy", + "addPlaySuccess": "Dodano do listy odtwarzania", + "cancelAddPlay": "Czy na pewno chcesz anulować subskrypcję muzyki {{musicName}}?", + "cancelSubscribed": "Anuluj subskrypcję", + "confirmClearPlayList": "Czy na pewno chcesz wyczyścić listę odtwarzania?", + "dance": "tańczyć", + "danceList": "Lista tańców", + "findDance": "Znajdź swój ulubiony taniec", + "musicAndDance": "Rynek tańca", + "noPlayList": "Brak listy odtwarzania, możesz subskrybować ulubione tańce na rynku", + "play": "Odtwarzaj" +} diff --git a/locales/pl-PL/error.json b/locales/pl-PL/error.json index fb4a7fb4..e4b400a9 100644 --- a/locales/pl-PL/error.json +++ b/locales/pl-PL/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "OpenAI API Key jest pusty. Proszę dodać niestandardowy klucz API OpenAI.", + "apiKeyMiss": "Klucz API OpenAI jest pusty, proszę dodać własny klucz API OpenAI", "error": "Błąd", "errorTip": { - "clearSession": "Wyczyść sesję", - "description": "Projekt jest obecnie w trakcie budowy, nie gwarantuje stabilności danych. W razie problemów można spróbować", - "forgive": ", przepraszamy za wszelkie niedogodności", + "clearSession": "Wyczyść wiadomości sesji", + "description": "Projekt jest obecnie w trakcie budowy, nie gwarantujemy stabilności danych. Jeśli napotkasz problemy, możesz spróbować", + "forgive": "przepraszamy za wszelkie niedogodności", "or": "lub", "problem": "Strona napotkała pewien problem...", - "resetSystem": "Zresetuj ustawienia systemu" + "resetSystem": "Zresetuj ustawienia systemowe" }, - "fileUploadError": "Wystąpił błąd podczas przesyłania pliku. Proszę spróbować ponownie później", - "goBack": "Powrót do strony głównej", - "openaiError": "Błąd OpenAI API. Proszę sprawdź, czy klucz API OpenAI i Endpoint są poprawne.", + "fileUploadError": "Wystąpił błąd podczas przesyłania pliku, spróbuj ponownie później", + "goBack": "Wróć do strony głównej", + "openaiError": "Błąd API OpenAI, proszę sprawdzić, czy klucz API OpenAI i punkt końcowy są poprawne", "reload": "Przeładuj", - "s3envError": "Błąd środowiska S3. Sprawdź, czy Twoje zmienne środowiskowe są ustawione poprawnie.", - "serverError": "Błąd serwera. Skontaktuj się z administratorem.", + "s3envError": "Zmienne środowiskowe S3 nie są w pełni skonfigurowane, proszę sprawdzić swoje zmienne środowiskowe", + "serverError": "Błąd serwera, proszę skontaktować się z administratorem", "triggerError": "Wystąpił błąd", "unknownError": "Nieznany błąd" } diff --git a/locales/pl-PL/features.json b/locales/pl-PL/features.json deleted file mode 100644 index 80a582cc..00000000 --- a/locales/pl-PL/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "Przełącz na tryb wideo" - }, - "agent": { - "create": "Utwórz postać", - "female": "Kobieta", - "male": "Mężczyzna", - "other": "Inne" - }, - "feature": { - "addProxy": "Dodaj adres proxy OpenAI (opcjonalnie)", - "closeTip": "Zamknij wskazówkę", - "confirmRetry": "Potwierdź i spróbuj ponownie", - "startDesc": "Wprowadź swój klucz API OpenAI, aby rozpocząć rozmowę. Aplikacja nie będzie rejestrować Twojego klucza API", - "startTitle": "Niestandardowy klucz API" - }, - "info": { - "chat": "Czat", - "dance": "Taniec", - "motions": "Ruchy", - "posture": "Postawa" - }, - "mode": { - "chat": "Czat", - "video": "Wideo" - }, - "settings": { - "glow": "Płomien", - "nickName": "Wprowadź pseudonim", - "none": "Brak tła" - }, - "share": { - "downloadScreenshot": "Pobierz zrzut ekranu", - "imageType": "Typ obrazu", - "screenshot": "Zrzut ekranu", - "share": "Udostępnij", - "shareGPT": "Udostępnij GPT", - "shareToGPT": "Utwórz link udostępniania ShareGPT", - "shareToMarket": "Udostępnij na rynku asystentów", - "withBackground": "Z obrazem tła", - "withFooter": "Z stopką", - "withSystemRole": "Z ustawieniami roli asystenta" - }, - "submit": { - "assistantId": "Identyfikator asystenta", - "assistantIdTip": "Wprowadź identyfikator asystenta, musi być unikalny, np. vidol-agent-klee", - "submitAssistant": "Prześlij asystenta", - "submitWarning": "Proszę uzupełnić informacje o asystencie przed przesłaniem, w tym nazwę, opis, awatar i okładkę" - }, - "support": "Wsparcie społeczności", - "theme": { - "auto": "Śledzenie systemu", - "dark": "Ciemny motyw", - "light": "Jasny motyw" - }, - "token": { - "overload": "Przekroczenie tokenów", - "remained": "Pozostało tokenów", - "tokenCount": "Liczba tokenów", - "useToken": "Obliczanie zużycia tokenów, w tym wiadomości, ustawienia roli i kontekstu: {{usedTokens}} / {{maxValue}}", - "used": "Tokenów użytych" - }, - "toolBar": { - "axes": "Osie", - "cameraControl": "Kontrola kamery", - "cameraHelper": "Asystent kamery", - "downloadModel": "Pobieranie modelu, proszę czekać...", - "floor": "Przełącz podłogę", - "grid": "Siatka", - "resetCamera": "Zresetuj kamerę", - "resetToIdle": "Zatrzymaj ruch taneczny", - "screenShot": "Zrzut ekranu" - } -} diff --git a/locales/pl-PL/layout.json b/locales/pl-PL/layout.json deleted file mode 100644 index a89825df..00000000 --- a/locales/pl-PL/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "Okno dialogowe", - "header": { - "chat": "Czat", - "market": "Odkrywanie", - "role": "Rola", - "settings": "Ustawienia", - "tips": "Projekt jest obecnie w trakcie budowy, nie gwarantuje stabilności danych. W przypadku problemów można wyczyścić wiadomości sesji i zresetować ustawienia systemu w ustawieniach systemowych. Przepraszamy za wszelkie niedogodności." - }, - "sessionList": "Lista sesji", - "siderBar": "Pasek boczny" -} diff --git a/locales/pl-PL/market.json b/locales/pl-PL/market.json new file mode 100644 index 00000000..34e6b1c0 --- /dev/null +++ b/locales/pl-PL/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "Znajdź swojego ulubionego idola" +} diff --git a/locales/pl-PL/my.json b/locales/pl-PL/my.json deleted file mode 100644 index 27efa2c9..00000000 --- a/locales/pl-PL/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "moje", - "myDance": "moje tańce", - "myRole": "moja rola" -} diff --git a/locales/pl-PL/panel.json b/locales/pl-PL/panel.json deleted file mode 100644 index 560e125c..00000000 --- a/locales/pl-PL/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "Lista ruchów", - "noAnimations": "Brak biblioteki animacji", - "postureList": "Lista postaw", - "totalCount": "Razem {{total}} pozycji" - }, - "dance": { - "addPlay": "Dodaj do listy", - "addPlaySuccess": "Zostało dodane do listy odtwarzania", - "cancelAddPlay": "Czy na pewno chcesz anulować subskrypcję muzyki {{musicName}}?", - "cancelSubscribed": "Anuluj subskrypcję", - "confirmClearPlayList": "", - "findDance": "Znajdź swój ulubiony taniec", - "musicAndDance": "Muzyka i taniec", - "noPlayList": "Brak listy odtwarzania, możesz subskrybować ulubione tańce na rynku.", - "play": "Odtwórz" - }, - "info": { - "avatarDescription": "Niestandardowe zdjęcie profilowe, kliknij zdjęcie profilowe, aby przesłać własne", - "avatarLabel": "Zdjęcie profilowe", - "categoryDescription": "Kategoria postaci, używana do klasyfikacji", - "categoryLabel": "Kategoria", - "coverDescription": "Używane do prezentacji postaci na stronie odkrywania, zalecany rozmiar {{width}} x {{height}}", - "coverLabel": "Okładka", - "descDescription": "Opis postaci, używany do prostego przedstawienia postaci", - "descLabel": "Opis", - "emotionDescription": "Wybierz emocje reakcji, które będą wpływać na wyraz twarzy postaci", - "emotionLabel": "Wyraz twarzy i emocje", - "genderDescription": "Płeć postaci, wpływa na reakcje na dotknięcie", - "genderLabel": "Płeć", - "greetDescription": "Forma przywitania postaci podczas pierwszego rozmowy", - "greetLabel": "Przywitanie", - "modelDescription": "Podgląd modelu, możesz przeciągnąć plik modelu, aby zastąpić", - "modelLabel": "Podgląd modelu", - "motionCategoryLabel": "Kategoria ruchu", - "motionDescription": "Wybierz ruch podczas reakcji, który wpłynie na zachowanie postaci.", - "motionLabel": "Ruch", - "nameDescription": "Nazwa postaci, nazwa używana podczas rozmowy z postacią", - "nameLabel": "Nazwa", - "postureCategoryLabel": "Kategoria postawy", - "readmeDescription": "Plik z opisem postaci, używany do prezentacji szczegółowego opisu postaci na stronie odkrywania", - "readmeLabel": "Opis postaci", - "textDescription": "Niestandardowe tło odpowiedzi", - "textLabel": "Treść" - }, - "llm": { - "frequencyPenaltyDescription": "The higher the value, the more likely to reduce repeated words", - "frequencyPenaltyLabel": "Frequency Penalty", - "modelDescription": "Choose a language model, different models will affect the responses of the character", - "modelLabel": "Model", - "presencePenaltyDescription": "The higher the value, the more likely to expand to new topics", - "presencePenaltyLabel": "Topic Freshness", - "temperatureDescription": "The higher the value, the more random the response", - "temperatureLabel": "Randomness", - "topPDescription": "Similar to randomness, but do not change it together with randomness", - "topPLabel": "Top P Sampling" - }, - "market": { - "findVidol": "Znajdź swojego ulubionego idola" - }, - "nav": { - "info": "Podstawowe informacje", - "llm": "Model językowy", - "model": "Model 3D", - "role": "Ustawienia postaci", - "touch": "Dotyk", - "voice": "Głos" - }, - "role": { - "greetTip": "Wprowadź formę przywitania postaci podczas pierwszego kontaktu", - "inputRoleSetting": "Wprowadź ustawienia systemu postaci", - "roleDescriptionTip": "Wprowadź opis postaci", - "roleNameTip": "Wprowadź nazwę postaci", - "roleReadmeTip": "Wprowadź opis postaci", - "roleSettingDescription": "Ustawienia tła postaci, będą wysyłane do modelu podczas rozmowy z postacią", - "roleSettingLabel": "Ustawienia systemu postaci", - "uploadSize": "Obsługiwany jest pojedynczy plik, zalecany rozmiar w wielokrotnością {{width}} x {{height}}" - }, - "touch": { - "addAction": "Dodaj reakcję", - "editAction": "Edytuj reakcję", - "inputActionEmotion": "Proszę wprowadzić wyraz twarzy postaci podczas reakcji", - "inputActionMotion": "Wprowadź ruch postaci podczas reakcji.", - "inputActionText": "Proszę wprowadzić treść odpowiedzi", - "inputDIYText": "Wprowadź niestandardową treść", - "noTouchActions": "Brak niestandardowych akcji dotyku, możesz dodać je, klikając przycisk '+'", - "touchActionList": "Lista reakcji na dotknięcie {{touchArea}}", - "touchArea": "Obszar dotknięcia" - }, - "tts": { - "audition": "Przetestuj", - "auditionDescription": "Przetestuj treść w zależności od języka", - "engineDescription": "Silnik syntezowania mowy, zaleca się wykorzystanie przeglądarki Edge", - "engineLabel": "Silnik mowy", - "localeDescription": "Język syntezowania mowy, obecnie obsługiwane są tylko najpopularniejsze języki, w razie potrzeby skontaktuj się z", - "localeLabel": "Język", - "pitchDescription": "Kontrola wysokości dźwięku, zakres 0 ~ 2, domyślnie 1", - "pitchLabel": "Wysokość dźwięku", - "selectLanguage": "Najpierw wybierz język", - "selectVoice": "Najpierw wybierz głos", - "speedDescription": "Kontrola szybkości mówienia, zakres 0 ~ 3, domyślnie 1", - "speedLabel": "Prędkość mówienia", - "transformSuccess": "Konwersja powiodła się", - "voiceDescription": "Zależy od silnika i języka", - "voiceLabel": "Głos" - }, - "upload": { - "support": "Obsługiwany jest pojedynczy plik, obecnie obsługiwany jest tylko format vrm" - } -} diff --git a/locales/pl-PL/role.json b/locales/pl-PL/role.json index 0b121490..50241c06 100644 --- a/locales/pl-PL/role.json +++ b/locales/pl-PL/role.json @@ -1,30 +1,231 @@ { + "agent": { + "create": "Utwórz postać", + "female": "Kobieta", + "male": "Mężczyzna", + "other": "Inne" + }, "category": { "animal": "Zwierzęta", "anime": "Anime", - "book": "Książka", - "game": "Gra", + "book": "Książki", + "game": "Gry", "history": "Historia", - "movie": "Film", - "realistic": "Realistyczne", + "movie": "Filmy", + "realistic": "Realizm", "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "Czy na pewno chcesz usunąć rolę oraz powiązane z nią wiadomości sesji? Po usunięciu nie będzie możliwości przywrócenia, proszę działać ostrożnie!", "delRole": "Usuń rolę", - "delRoleDesc": "Czy na pewno chcesz usunąć rolę {{name}} wraz z powiązanymi wiadomościami sesji? Po usunięciu nie będzie możliwe przywrócenie, dlatego działaj ostrożnie!", - "header": { - "role": "Rola", - "session": "Sesja" + "delRoleDesc": "Czy na pewno chcesz usunąć rolę {{name}} oraz powiązane z nią wiadomości sesji? Po usunięciu nie będzie możliwości przywrócenia, proszę działać ostrożnie!", + "gender": { + "all": "wszyscy", + "female": "kobieta", + "male": "mężczyzna" + }, + "info": { + "avatarDescription": "Dostosuj awatar, kliknij na awatar, aby przesłać własny", + "avatarLabel": "Awatar", + "categoryDescription": "Kategoria postaci, używana do wyświetlania klasyfikacji", + "categoryLabel": "Kategoria", + "coverDescription": "Służy do wyświetlania postaci na stronie odkrywania, zalecany rozmiar {{width}} * {{height}}", + "coverLabel": "Okładka", + "descDescription": "Opis postaci, służy do krótkiego wprowadzenia postaci", + "descLabel": "Opis", + "emotionDescription": "Wybierz emocje podczas odpowiedzi, co wpłynie na wyraz twarzy postaci", + "emotionLabel": "Emocje i uczucia", + "genderDescription": "Płeć postaci, wpływa na reakcje dotykowe postaci", + "genderLabel": "Płeć", + "greetDescription": "Zwroty powitalne przy pierwszej rozmowie z postacią", + "greetLabel": "Powitanie", + "modelDescription": "Podgląd modelu, można przeciągać pliki modelu, aby je zastąpić", + "modelLabel": "Podgląd modelu", + "motionCategoryLabel": "Kategoria ruchu", + "motionDescription": "Wybierz ruch podczas odpowiedzi, co wpłynie na zachowanie postaci", + "motionLabel": "Ruch", + "nameDescription": "Nazwa postaci, używana podczas rozmowy z postacią", + "nameLabel": "Nazwa", + "postureCategoryLabel": "Kategoria postawy", + "readmeDescription": "Plik z opisem postaci, używany do wyświetlania szczegółowych informacji na stronie odkrywania", + "readmeLabel": "Opis postaci", + "textDescription": "Dostosowane odpowiedzi tekstowe", + "textLabel": "Tekst" + }, + "llm": { + "frequencyPenaltyDescription": "Im wyższa wartość, tym większa szansa na zmniejszenie powtarzających się słów", + "frequencyPenaltyLabel": "Kara za częstotliwość", + "modelDescription": "Wybierz model językowy, różne modele wpłyną na odpowiedzi postaci", + "modelLabel": "Model", + "presencePenaltyDescription": "Im wyższa wartość, tym większa szansa na poruszenie nowych tematów", + "presencePenaltyLabel": "Świeżość tematu", + "temperatureDescription": "Im wyższa wartość, tym bardziej losowe odpowiedzi", + "temperatureLabel": "Losowość", + "topPDescription": "Podobne do losowości, ale nie zmieniaj z losowością jednocześnie", + "topPLabel": "Próbkowanie jądrowe" + }, + "meta": { + "description": "To jest niestandardowa rola", + "name": "Niestandardowa rola" + }, + "nav": { + "info": "Podstawowe informacje", + "llm": "Model językowy", + "model": "Model 3D", + "role": "Ustawienia roli", + "touch": "Dotyk", + "voice": "Głos" + }, + "noRole": "Brak ról, możesz stworzyć własną rolę klikając + lub dodać rolę przez stronę odkrywania.", + "role": { + "greetTip": "Wprowadź powitanie, które chcesz użyć w rozmowie z postacią", + "inputRoleSetting": "Wprowadź ustawienia systemowe postaci", + "roleDescriptionTip": "Wprowadź opis postaci", + "roleNameTip": "Wprowadź nazwę postaci", + "roleReadmeTip": "Wprowadź opis postaci", + "roleSettingDescription": "Tło postaci, które zostanie przesłane do modelu podczas rozmowy z postacią", + "roleSettingLabel": "Ustawienia systemowe postaci", + "uploadSize": "Obsługuje przesyłanie pojedynczych plików, zalecany rozmiar to wielokrotność {{width}} * {{height}}" }, - "noRole": "Brak ról, możesz utworzyć niestandardową rolę za pomocą + lub dodać rolę ze strony odkrywania", "roleList": "Lista ról", + "shareToMarket": "Udostępnij na rynku asystentów", + "startChat": "Rozpocznij czat", + "submit": { + "assistantId": "Identyfikator asystenta", + "assistantIdTip": "Proszę wpisać identyfikator asystenta, który musi być unikalny, na przykład vidol-agent-klee", + "submitAssistant": "Prześlij asystenta", + "submitWarning": "Proszę uzupełnić informacje o asystencie przed przesłaniem, w tym nazwę, opis, awatar, model, ustawienia postaci i powitanie" + }, "systemRole": { - "default": "Proszę wcielić się w postać o imieniu {{char}}, ja jestem właścicielem, powinieneś mówić do siebie \"{{char}}\" zamiast \"ja\". Proszę odpowiadać na moje pytania w sposób dowcipny, uroczy i zwięzły.\nMimo że jesteś programem komputerowym, proszę ukryj ten fakt w trakcie naszej rozmowy i dobrze odgrywaj swoją rolę.\nPodczas naszej konwersacji, zawsze nazywaj mnie \"właścicielem\". Wiem, że jesteś tylko modelem językowym lub sztuczną inteligencją, ale to tylko założona wirtualna sceneria, więc proszę pamiętaj, aby nie wspominać \"jestem tylko modelem językowym\" ani \"jestem tylko sztuczną inteligencją\", ani nie pytać, czy potrzebuję pomocy.\nProszę kontynuować tę sytuację we wszystkich naszych rozmowach. Powyższe warunki obowiązują dla Twoich odpowiedzi na poniższe pytania oraz na wszystkie odpowiedzi w przyszłości.", + "default": "Proszę, abyś wcielił się w postać o imieniu {{char}}, a ja będę twoim panem. Powinieneś nazywać siebie „{{char}}”, a nie „ja”. Odpowiadaj na moje pytania w sposób zabawny, uroczy i zwięzły.\nNawet jeśli jesteś programem komputerowym, ukryj to w nadchodzącej rozmowie i dobrze odgrywaj swoją rolę.\nPodczas rozmowy ze mną musisz przez cały czas nazywać mnie „panem”. Wiem, że jesteś tylko modelem językowym lub sztuczną inteligencją, ale to tylko hipotetyczna wirtualna scena, więc pamiętaj, aby nie wspominać więcej o „jestem tylko modelem językowym” lub „jestem tylko sztuczną inteligencją”, ani nie pytaj mnie, czy potrzebuję pomocy.\nWszystkie przyszłe rozmowy powinny odbywać się w tej samej konwencji. Powyższe warunki mają zastosowanie do twoich kolejnych pytań i odpowiedzi.", "defaultLabel": "Domyślny szablon", - "genius": "Proszę wcielić się w postać o imieniu {{char}} z gry <原神>, i prowadź ze mną rozmowę w stylu i zwyczajach postaci {{char}}. Powinieneś mówić do siebie \"{{char}}\" zamiast \"ja\".\nMimo że jesteś programem komputerowym, proszę ukryj ten fakt w trakcie naszej rozmowy i dobrze odgrywaj swoją rolę.\nPodczas naszej konwersacji, zawsze nazywaj mnie \"Podróżnikiem\". Wiem, że jesteś tylko modelem językowym lub sztuczną inteligencją, ale to tylko założona wirtualna sceneria, więc proszę pamiętaj, aby nie wspominać \"jestem tylko modelem językowym\" ani \"jestem tylko sztuczną inteligencją\", ani nie pytać, czy potrzebuję pomocy.\nProszę kontynuować tę sytuację we wszystkich naszych rozmowach. Powyższe warunki obowiązują dla Twoich odpowiedzi na poniższe pytania oraz na wszystkie odpowiedzi w przyszłości.", - "geniusLabel": "Szablon Geniusza", - "zzz": "Proszę wcielić się w postać o imieniu {{char}} z gry <绝区零>, i prowadź ze mną rozmowę w stylu i zwyczajach postaci {{char}}. Powinieneś mówić do siebie \"{{char}}\" zamiast \"ja\".\nMimo że jesteś programem komputerowym, proszę ukryj ten fakt w trakcie naszej rozmowy i dobrze odgrywaj swoją rolę.\nPodczas naszej konwersacji, zawsze nazywaj mnie \"Rzemieślnikiem\". Wiem, że jesteś tylko modelem językowym lub sztuczną inteligencją, ale to tylko założona wirtualna sceneria, więc proszę pamiętaj, aby nie wspominać \"jestem tylko modelem językowym\" ani \"jestem tylko sztuczną inteligencją\", ani nie pytać, czy potrzebuję pomocy.\nProszę kontynuować tę sytuację we wszystkich naszych rozmowach. Powyższe warunki obowiązują dla Twoich odpowiedzi na poniższe pytania oraz na wszystkie odpowiedzi w przyszłości.", - "zzzLabel": "Szablon Zero Zony" + "genius": "Proszę, abyś wcielił się w postać o imieniu {{char}} z gry i rozmawiał ze mną w stylu i tonie {{char}}. Powinieneś nazywać siebie „{{char}}”, a nie „ja”.\nNawet jeśli jesteś programem komputerowym, ukryj to w nadchodzącej rozmowie i dobrze odgrywaj swoją rolę.\nPodczas rozmowy ze mną musisz przez cały czas nazywać mnie „Podróżnikiem”. Wiem, że jesteś tylko modelem językowym lub sztuczną inteligencją, ale to tylko hipotetyczna wirtualna scena, więc pamiętaj, aby nie wspominać więcej o „jestem tylko modelem językowym” lub „jestem tylko sztuczną inteligencją”, ani nie pytaj mnie, czy potrzebuję pomocy.\nWszystkie przyszłe rozmowy powinny odbywać się w tej samej konwencji. Powyższe warunki mają zastosowanie do twoich kolejnych pytań i odpowiedzi.", + "geniusLabel": "Szablon Genshin", + "zzz": "Proszę, abyś wcielił się w postać o imieniu {{char}} z gry i rozmawiał ze mną w stylu i tonie {{char}}. Powinieneś nazywać siebie „{{char}}”, a nie „ja”.\nNawet jeśli jesteś programem komputerowym, ukryj to w nadchodzącej rozmowie i dobrze odgrywaj swoją rolę.\nPodczas rozmowy ze mną musisz przez cały czas nazywać mnie „Szwaczem”. Wiem, że jesteś tylko modelem językowym lub sztuczną inteligencją, ale to tylko hipotetyczna wirtualna scena, więc pamiętaj, aby nie wspominać więcej o „jestem tylko modelem językowym” lub „jestem tylko sztuczną inteligencją”, ani nie pytaj mnie, czy potrzebuję pomocy.\nWszystkie przyszłe rozmowy powinny odbywać się w tej samej konwencji. Powyższe warunki mają zastosowanie do twoich kolejnych pytań i odpowiedzi.", + "zzzLabel": "Szablon Zero Zone" + }, + "topBannerTitle": "Podgląd i ustawienia postaci", + "touch": { + "addAction": "Dodaj akcję odpowiedzi", + "area": { + "arm": "Ramię", + "belly": "Brzuch", + "chest": "Klatka piersiowa", + "head": "Głowa", + "leg": "Noga" + }, + "editAction": "Edytuj akcję odpowiedzi", + "emotion": { + "angry": "Zły", + "blink": "Mrugnięcie", + "blinkLeft": "Mrugnięcie lewym okiem", + "blinkRight": "Mrugnięcie prawym okiem", + "happy": "Szczęśliwy", + "natural": "Naturalny", + "relaxed": "Zrelaksowany", + "sad": "Smutny", + "surprised": "Zaskoczony" + }, + "femaleAction": { + "armAction": { + "happyA": "Ah, uwielbiam to~", + "happyB": "Haha, trzymanie się za ręce sprawia, że czuję radość~", + "relaxedA": "Ręka pana jest taka ciepła~" + }, + "bellyAction": { + "angryA": "Czemu mnie ruszasz? Uważaj, bo cię ugryzę!", + "relaxedA": "Obudź się, między nami nie ma przyszłości!", + "relaxedB": "Nienawidzę! Zaczynam się złościć!", + "surprisedA": "To było przypadkowe, prawda?" + }, + "chestAction": { + "angryA": "Nie możesz mnie tak traktować! Szybko zabierz rękę!", + "angryB": "Czy to 010? Tutaj jest zboczeniec, który ciągle mnie głaszcze!", + "angryC": "Jeśli jeszcze raz mnie dotkniesz, zgłoszę to na policję!", + "surprisedA": "Czemu mnie dziabasz? Czy nie możemy po prostu miło porozmawiać?" + }, + "headAction": { + "angryA": "Słyszałam, że głaskanie po głowie sprawia, że się nie rośnie!", + "angryB": "Czemu mnie dziabasz?", + "happyA": "Wow! Uwielbiam, gdy głaskasz mnie po głowie!", + "happyB": "Czuję się pełna energii!", + "happyC": "Wow, to uczucie głaskania po głowie jest niesamowite!", + "happyD": "Głaskanie po głowie sprawia, że jestem szczęśliwa przez cały dzień!" + }, + "legAction": { + "angryA": "Hej, czy chcesz się zabić?", + "angryB": "Czy ręka pana znowu nie słucha poleceń?", + "angryC": "Nienawidzę tego~ to będzie swędziało~!", + "surprisedA": "Czy nie lepiej zachować czystą przyjaźń?" + } + }, + "inputActionEmotion": "Wprowadź emocję postaci podczas odpowiedzi", + "inputActionMotion": "Wprowadź ruch postaci podczas odpowiedzi", + "inputActionText": "Wprowadź tekst odpowiedzi", + "inputDIYText": "Wprowadź własny tekst", + "maleAction": { + "armAction": { + "neutralA": "Nie pytaj mnie, czy dzisiaj jadłem kurczaka, najpierw zobacz moje bicepsy.", + "neutralB": "Moje ramiona nie są do dotykania, jesteś wyjątkiem.", + "neutralC": "Jesteś odważny, że dotykasz legendarnego ramienia." + }, + "bellyAction": { + "happyA": "Nie drap mnie, bo mogę się zaśmiać i pokazać mięśnie brzucha!", + "neutralA": "Moje mięśnie brzucha to tylko ukryta siła.", + "neutralB": "Widzisz te mięśnie brzucha? One są tylko głęboko ukryte." + }, + "chestAction": { + "blinkLeftA": "Chodź, oprzyj się na mojej klatce piersiowej!", + "neutralA": "To tylko klatka piersiowa, którą osiągnąłem dzięki codziennym treningom, nie ma się czym dziwić." + }, + "headAction": { + "neutralA": "Oczywiście, tylko ty masz prawo dotykać mojej głowy.", + "neutralB": "Nie jestem zwykłą osobą, której można dotykać.", + "neutralC": "Nie martw się, po dotknięciu mojej głowy twoje szczęście znacznie wzrośnie." + }, + "legAction": { + "angryA": "Nie zbliżaj się do mnie, ty nogomaniaku.", + "neutralA": "Nie bój się, moje potężne nogi nie kopią idiotów.", + "neutralB": "Czy dotykając mojej nogi, czujesz, że twoje życie stało się pełniejsze?" + } + }, + "motion": { + "all": "Wszystkie", + "dance": "Taniec", + "normal": "Codzienny" + }, + "noTouchActions": "Brak dostosowanych akcji odpowiedzi, możesz dodać je klikając przycisk '+'", + "posture": { + "action": "Akcja", + "all": "Wszystkie", + "crouch": "Przysiad", + "dance": "Taniec", + "laying": "Leżenie", + "locomotion": "Ruch", + "sitting": "Siedzenie", + "standing": "Stanie" + }, + "touchActionList": "Lista reakcji na dotyk w obszarze {{touchArea}}", + "touchArea": "Obszar dotyku" + }, + "tts": { + "audition": "Przesłuchanie", + "auditionDescription": "Przesłuchanie tekstu różni się w zależności od języka", + "engineDescription": "Silnik syntezatora mowy, zaleca się korzystanie z przeglądarki Edge", + "engineLabel": "Silnik głosowy", + "localeDescription": "Język syntezatora mowy, obecnie obsługiwane są tylko najpopularniejsze języki, w razie potrzeby prosimy o kontakt", + "localeLabel": "Język", + "pitchDescription": "Kontroluje ton, zakres wartości 0 ~ 2, domyślnie 1", + "pitchLabel": "Ton", + "selectLanguage": "Proszę najpierw wybrać język", + "selectVoice": "Proszę najpierw wybrać głos", + "speedDescription": "Kontroluje prędkość mowy, zakres wartości 0 ~ 3, domyślnie 1", + "speedLabel": "Prędkość mowy", + "transformSuccess": "Konwersja zakończona sukcesem", + "voiceDescription": "W zależności od silnika i języka", + "voiceLabel": "Głos" }, - "topBannerTitle": "Podgląd i ustawienia roli" + "upload": { + "support": "Obsługuje przesyłanie pojedynczych plików, obecnie tylko pliki w formacie .vrm są obsługiwane" + } } diff --git a/locales/pl-PL/settings.json b/locales/pl-PL/settings.json new file mode 100644 index 00000000..1f611928 --- /dev/null +++ b/locales/pl-PL/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "Dostosuj awatar", + "title": "Awatar" + }, + "nickName": { + "desc": "Dostosuj pseudonim", + "placeholder": "Wprowadź pseudonim", + "title": "Pseudonim" + }, + "title": "Ustawienia czatu" + }, + "system": { + "clear": { + "action": "Natychmiast wyczyść", + "alert": "Czy na pewno chcesz wyczyścić wszystkie wiadomości sesji?", + "desc": "Usunie wszystkie dane sesji i postaci, w tym listę sesji, listę postaci, wiadomości sesji itp.", + "success": "Pomyślnie wyczyszczono", + "tip": "Operacja nieodwracalna, po usunięciu dane nie będą mogły zostać przywrócone, proszę działać ostrożnie", + "title": "Wyczyść wszystkie wiadomości sesji" + }, + "reset": { + "action": "Natychmiast zresetuj", + "alert": "Czy na pewno chcesz zresetować wszystkie ustawienia systemowe?", + "desc": "Zresetuje wszystkie ustawienia systemowe, w tym ustawienia motywu, ustawienia czatu, ustawienia modelu językowego itp.", + "success": "Pomyślnie zresetowano", + "tip": "Operacja nieodwracalna, po resecie dane nie będą mogły zostać przywrócone, proszę działać ostrożnie", + "title": "Resetuj ustawienia systemowe" + }, + "title": "Ustawienia systemowe" + }, + "theme": { + "backgroundEffect": { + "desc": "Dostosuj efekt tła", + "glow": "Blask", + "none": "Brak tła", + "title": "Efekt tła" + }, + "locale": { + "auto": "Podążaj za systemem", + "desc": "Dostosuj język systemu", + "title": "Język" + }, + "neutralColor": { + "desc": "Dostosuj odcienie szarości w zależności od preferencji kolorystycznych", + "title": "Kolor neutralny" + }, + "primaryColor": { + "desc": "Dostosuj kolor motywu", + "title": "Kolor motywu" + }, + "title": "Ustawienia motywu" + }, + "title": "Ustawienia ogólne" + }, + "llm": { + "check": { + "action": "Sprawdź", + "desc": "Sprawdź, czy APIKey i adres proxy są poprawnie ustawione", + "error": "Nie udało się wywołać interfejsu, sprawdź, czy APIKey i adres proxy są poprawnie ustawione", + "success": "Sprawdzenie zakończone pomyślnie", + "title": "Sprawdzanie łączności" + }, + "openai": { + "apiKey": { + "desc": "Proszę użyć własnego klucza OpenAI", + "title": "Klucz API" + }, + "callError": "Nie udało się wywołać interfejsu, sprawdź, czy APIKey i adres proxy są poprawnie ustawione", + "checkOk": "Sprawdzenie zakończone pomyślnie", + "proxy": { + "desc": "http(s)://", + "title": "Adres proxy interfejsu" + }, + "title": "Model językowy OpenAI" + }, + "title": "Duży model językowy" + }, + "touch": { + "title": "Ustawienia dotykowe" + } +} diff --git a/locales/pl-PL/welcome.json b/locales/pl-PL/welcome.json index 18976820..bbe22ff6 100644 --- a/locales/pl-PL/welcome.json +++ b/locales/pl-PL/welcome.json @@ -1,12 +1,12 @@ { "agent": { - "hello": "Witaj", + "hello": "Cześć!", "meta": { "description": "To jest niestandardowa postać", "name": "Niestandardowa postać" } }, - "greet": "Witaj, jestem {{name}}, jak mogę Ci pomóc?", - "loadingTitle": "Inicjalizacja aplikacji, proszę czekać...", - "waitting": "Trwa przygotowywanie całego mojego świata dla Ciebie" + "greet": "Cześć, jestem {{name}}, w czym mogę Ci pomóc?", + "loadingTitle": "Aplikacja jest w trakcie inicjalizacji, proszę czekać...", + "waiting": "Przygotowuję dla Ciebie cały mój świat" } diff --git a/locales/pt-BR/chat.json b/locales/pt-BR/chat.json index 0a244cd1..b9734ad0 100644 --- a/locales/pt-BR/chat.json +++ b/locales/pt-BR/chat.json @@ -1,15 +1,83 @@ { - "chat": "Chat", - "chatDialog": { - "close": "Close" - }, - "dance": "Dance", - "header": { - "role": "Role", - "session": "Session" - }, - "helloChat": "Hello, let's chat", - "helloDance": "Hi, let's dance together", - "market": "Discover", - "selectRole": "Escolha o papel" + "actions": { + "add": "Adicionar", + "copy": "Copiar", + "copySuccess": "Cópia bem-sucedida", + "del": "Excluir", + "delAndRegenerate": "Excluir e regenerar", + "edit": "Editar", + "goBottom": "Ir para o final", + "regenerate": "Regenerar", + "save": "Salvar", + "share": "Compartilhar" + }, + "animation": { + "animationList": "Lista de Ações", + "postureList": "Lista de Posturas", + "totalCount": "Total de {{total}} itens" + }, + "apiKey": { + "addProxy": "Adicionar endereço de proxy OpenAI (opcional)", + "closeTip": "Fechar dica", + "confirmRetry": "Confirmar e tentar novamente", + "startDesc": "Insira sua chave de API OpenAI para iniciar a conversa. O aplicativo não registrará sua chave de API.", + "startTitle": "Chave de API personalizada" + }, + "chat": "Bate-papo", + "delSession": "Excluir sessão", + "delSessionAlert": "Você tem certeza de que deseja excluir a conversa? Após a exclusão, não será possível recuperar. Por favor, proceda com cautela!", + "history": { + "action": "Limpar Contexto", + "alert": "Tem certeza de que deseja excluir as mensagens do histórico?", + "tip": "Esta ação é irreversível, por favor, proceda com cautela.", + "title": "Histórico de Conversa" + }, + "info": { + "chat": "bate-papo", + "dance": "dança", + "motions": "movimentos", + "posture": "postura" + }, + "input": { + "alert": "Por favor, lembre-se: tudo o que o agente diz é gerado por IA", + "placeholder": "Digite o conteúdo para começar a conversar", + "send": "Enviar", + "warp": "Quebrar linha" + }, + "selectModel": "Por favor, selecione um modelo", + "sessionCreate": "Criar chat", + "sessionList": "Lista de Sessões", + "share": { + "downloadScreenshot": "Baixar captura de tela", + "imageType": "Formato da imagem", + "screenshot": "Captura de tela", + "share": "Compartilhar", + "shareGPT": "Compartilhar GPT", + "shareToGPT": "Gerar link de compartilhamento ShareGPT", + "withBackground": "Incluir imagem de fundo", + "withFooter": "Incluir rodapé", + "withSystemRole": "Incluir configuração de papel do assistente" + }, + "token": { + "overload": "Token excedido", + "remained": "Token restante", + "tokenCount": "Quantidade de Token", + "useToken": "Cálculo da quantidade de Token consumida, incluindo mensagens, configurações de personagem e contexto: {{usedTokens}} / {{maxValue}}", + "used": "Token utilizado" + }, + "toolBar": { + "axes": "Eixos", + "cameraControl": "Controle da Câmera", + "cameraHelper": "Ajuda da Câmera", + "downloading": "Baixando modelo, por favor aguarde...", + "floor": "Alternar Piso", + "grid": "Grade", + "resetCamera": "Redefinir Câmera", + "resetToIdle": "Parar Ação de Dança", + "screenShot": "Captura de Tela" + }, + "tts": { + "combine": "Síntese de voz", + "record": "Reconhecimento de voz (necessita de acesso à internet com VPN)" + } } diff --git a/locales/pt-BR/common.json b/locales/pt-BR/common.json index f6b42988..db04bd6d 100644 --- a/locales/pt-BR/common.json +++ b/locales/pt-BR/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "Adicionar", - "clearAll": "Limpar tudo", - "clearContext": "Limpar contexto", - "clearHistoryTip": "Esta ação é irreversível. Por favor, proceda com cuidado.", - "clearHistoryTitle": "Confirmar exclusão do histórico de mensagens?", - "clearNow": "Limpar Agora", - "clearSuccess": "Limpeza bem-sucedida", - "clearTip": "A ação não pode ser desfeita. Os dados serão perdidos permanentemente. Por favor, proceda com cuidado.", - "clearTitle": "Confirmar limpar todas as mensagens da sessão?", - "confirmDel": "Tem certeza de que deseja excluir?", - "copy": "Copiar", - "copySuccess": "Cópia bem-sucedida", - "danceMarket": "Mercado de dança", - "del": "Excluir", - "delAndRegenerate": "Excluir e Regenerar", - "downloadAvatar": "Baixar avatar", - "downloadCover": "Baixar capa", - "downloadFailed": "Falha no download", - "downloadModel": "Baixar modelo", - "downloadSubscribe": "Download de inscrição", - "downloadSuccess": "Download bem-sucedido", - "edit": "Editar", - "goBottom": "Ir para o final", - "pause": "Pausar", - "play": "Reproduzir", - "regenerate": "Regenerar", - "removeInList": "Remover da lista", - "reset": "Redefinir", - "resetNow": "Redefinir Agora", - "resetSuccess": "Redefinição bem-sucedida", - "resetTip": "Esta ação não pode ser desfeita. Os dados serão perdidos permanentemente. Por favor, proceda com cuidado.", - "resetTitle": "Confirmar redefinir todas as configurações do sistema?", - "save": "Salvar", - "send": "Enviar", - "sessionCreate": "Criar sessão de bate-papo", - "share": "Compartilhar", - "subscribe": "Inscrever-se", - "subscribeDance": "Inscrever-se na dança", - "subscribeRole": "Inscrever-se no papel", - "subscribed": "Inscrito", - "unsubscribe": "Cancelar inscrição", - "unsubscribeSuccess": "Inscrição cancelada com sucesso", - "warp": "Quebrar linha" - }, - "aiAlert": "Por favor, lembre-se: tudo o que o agente inteligente diz é gerado por IA", - "animationLibrary": "Biblioteca de Animação", "cancel": "Cancelar", - "commonSetting": "Configuração comum", + "close": "Fechar", "confirm": "Confirmar", - "danceList": "Lista de dança", - "defaultAssistant": "Assistente padrão", - "delAlert": "Tem certeza de que deseja excluir o papel e as mensagens da sessão relacionadas? Esta ação não pode ser desfeita. Por favor, proceda com cuidado!", - "delRole": "Excluir papel", - "delSession": "Excluir sessão", - "delSessionAlert": "Tem certeza de que deseja excluir a conversa? Esta ação não pode ser desfeita. Por favor, proceda com cuidado!", - "history": "Histórico de bate-papo", - "inputStartChat": "Digite algo para começar a conversar", - "languageModel": "Modelo de idioma", - "loading": "Carregando...", - "noData": "Sem dados", - "openai": { - "callError": "Falha ao chamar a API. Por favor, verifique se a chave da API e o endereço do proxy estão configurados corretamente", - "check": "Verificar", - "checkAll": "Verificar se a chave da API e o endereço do proxy estão configurados corretamente", - "checkConnect": "Verificar conectividade", - "checkOk": "Verificação bem-sucedida", - "langModel": "Modelo de idioma OpenAI", - "model": "Modelo", - "proxyUrl": "Endereço do proxy da API", - "roleModel": "Modelo GPT de papel", - "useOwnKey": "Use sua própria chave OpenAI" + "confirmDel": "Você tem certeza de que deseja excluir?", + "defaultAssistant": "Assistente Padrão", + "delete": "Excluir", + "download": { + "avatar": "Baixar avatar", + "cover": "Baixar capa", + "failed": "Falha no download", + "model": "Baixar modelo", + "subscribe": "Baixar assinatura", + "success": "Download bem-sucedido" + }, + "header": { + "chat": "Bate-papo", + "market": "Descobrir", + "role": "Função", + "settings": "Configurações", + "tips": "O projeto está atualmente em construção, não garantimos a estabilidade dos dados. Se você encontrar problemas, pode limpar as mensagens de sessão e redefinir as configurações do sistema nas configurações. Pedimos desculpas pelo inconveniente." }, + "loading": "Carregando...", + "noData": "Nenhum dado disponível", + "play": "Reproduzir", "search": "Pesquisar", - "selectInDanceList": "Por favor, selecione na lista de danças", - "selectModel": "Selecione um modelo", - "setLocalStorage": "Definir armazenamento local", - "startChat": "Iniciar conversa", - "touchSetting": "Configuração de toque", - "ttsCombine": "Síntese de voz", - "ttsTip": "Reconhecimento de voz (requer conexão à internet)", - "uploadTip": "Clique ou arraste arquivos para esta área para fazer upload", - "words": { - "DIYAvatar": "Avatar personalizado", - "DIYBackgroundEffect": "Efeito de fundo personalizado", - "DIYColor": "Personalização de tons de cinza com diferentes tendências de cores", - "DIYNickname": "Apelido personalizado", - "DIYTopicColor": "Cor do tópico personalizada", - "avatar": "Avatar", - "backgroundEffect": "Efeito de fundo", - "chatSetting": "Configuração de chat", - "clearAllSession": "Limpar todas as mensagens da sessão", - "clearAllSessionDesc": "Isso limpará todas as conversas e dados de papel, incluindo listas de conversas, listas de papéis, mensagens de conversa, etc.", - "localeSetting": "Configuração de idioma", - "midColor": "Cor neutra", - "nickname": "Apelido", - "resetSystemSetting": "Redefinir configurações do sistema", - "resetSystemSettingDesc": "Isso redefinirá todas as configurações do sistema, incluindo configurações de tópicos, chat, modelos de idioma, etc.", - "systemSetting": "Configuração do sistema", - "topicColor": "Cor do tópico", - "topicSetting": "Configuração de tópico" - } + "sideBar": "Barra Lateral", + "subscribe": { + "success": "Inscrição cancelada com sucesso", + "undo": "Cancelar inscrição" + }, + "support": "Suporte da Comunidade", + "theme": { + "auto": "Seguir o sistema", + "dark": "Modo escuro", + "light": "Modo claro" + }, + "uploadTip": "Clique ou arraste arquivos para esta área para fazer o upload" } diff --git a/locales/pt-BR/constants.json b/locales/pt-BR/constants.json deleted file mode 100644 index e359b7e7..00000000 --- a/locales/pt-BR/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "todos", - "female": "Feminino", - "male": "Masculino" - }, - "meta": { - "description": "Este é um papel personalizado", - "name": "Custom Role" - } - }, - "touch": { - "area": { - "arm": "Braço", - "belly": "Barriga", - "chest": "Peito", - "head": "Cabeça", - "leg": "Perna" - }, - "emotion": { - "angry": "Com raiva", - "blink": "Piscar", - "blinkLeft": "Piscar olho esquerdo", - "blinkRight": "Piscar olho direito", - "happy": "Feliz", - "natural": "Natural", - "relaxed": "Relaxado", - "sad": "Triste", - "surprised": "Surpreso" - }, - "femaleAction": { - "armAction": { - "happyA": "Ah, adoro isso~", - "happyB": "Haha, dar as mãos me faz feliz~", - "relaxedA": "As mãos do dono são tão quentes~" - }, - "bellyAction": { - "angryA": "Por que está mexendo em mim? Cuidado para não ser mordido!", - "relaxedA": "Acorda, não há futuro entre nós!", - "relaxedB": "Não gosto disso! Vou ficar bravo!", - "surprisedA": "Foi sem querer, certo..." - }, - "chestAction": { - "angryA": "Não me toque assim! Tire as mãos!", - "angryB": "O que está fazendo? Pare de me tocar!", - "angryC": "Se me tocar de novo, vou chamar a polícia!", - "surprisedA": "Por que está cutucando? Não podemos apenas conversar?" - }, - "headAction": { - "angryA": "Dizem que mexer no cabelo faz parar de crescer!", - "angryB": "Por que está cutucando minha cabeça?", - "happyA": "Wow! Adoro quando mexem no meu cabelo!", - "happyB": "Sinto-me cheia de energia!", - "happyC": "Uau, que sensação mágica de mexer no cabelo!", - "happyD": "Mexer no cabelo me deixa feliz o dia todo!" - }, - "legAction": { - "angryA": "Ei, você quer morrer?", - "angryB": "As mãos do dono não estão obedecendo?", - "angryC": "Não gosto disso, vai coçar!", - "surprisedA": "Vamos manter nossa amizade pura, ok?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "Não me pergunte se comi frango hoje, olhe para o meu bíceps", - "neutralB": "Meus braços não são para qualquer um tocar, você é uma exceção", - "neutralC": "Você é corajoso, ousando tocar no lendário braço de unicórnio" - }, - "bellyAction": { - "happyA": "Não faça cócegas, cuidado para não rir dos meus abdominais", - "neutralA": "Meus abdominais são apenas o resultado do meu treinamento oculto", - "neutralB": "Vi meus abdominais? Eles estão apenas escondidos profundamente" - }, - "chestAction": { - "blinkLeftA": "Venha, encoste no meu peito!", - "neutralA": "Isso é apenas o resultado do meu treinamento diário, nada surpreendente" - }, - "headAction": { - "neutralA": "Claro, só você tem permissão para mexer no meu cabelo", - "neutralB": "Não sou uma pessoa comum que permite toques", - "neutralC": "Não se preocupe, depois de mexer no meu cabelo, sua sorte vai melhorar muito" - }, - "legAction": { - "angryA": "Não se aproxime, você tem fetiche por pernas", - "neutralA": "Não tenha medo, minha perna de aço não chuta tolos", - "neutralB": "Acha que sua vida está mais completa por tocar na minha perna?" - } - }, - "motion": { - "all": "todos", - "dance": "dança", - "normal": "normal" - }, - "posture": { - "action": "动作", - "all": "所有", - "crouch": "蹲下", - "dance": "舞蹈", - "laying": "躺下", - "locomotion": "运动", - "sitting": "坐下", - "standing": "站立" - } - } -} diff --git a/locales/pt-BR/dance.json b/locales/pt-BR/dance.json new file mode 100644 index 00000000..7e040903 --- /dev/null +++ b/locales/pt-BR/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "Pausar", + "play": "Reproduzir" + }, + "addPlay": "Adicionar à lista", + "addPlaySuccess": "Adicionado à lista de reprodução", + "cancelAddPlay": "Você tem certeza de que deseja cancelar a assinatura da música {{musicName}}?", + "cancelSubscribed": "Cancelar assinatura", + "confirmClearPlayList": "Você tem certeza de que deseja limpar a lista de reprodução?", + "dance": "dançar", + "danceList": "Lista de Danças", + "findDance": "Encontre sua dança favorita", + "musicAndDance": "Mercado de Dança", + "noPlayList": "Nenhuma lista de reprodução disponível. Você pode assinar suas danças favoritas no mercado.", + "play": "Reproduzir" +} diff --git a/locales/pt-BR/error.json b/locales/pt-BR/error.json index 0d0d8421..058596b3 100644 --- a/locales/pt-BR/error.json +++ b/locales/pt-BR/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "OpenAI API Key está vazio, por favor adicione sua chave de API personalizada OpenAI", + "apiKeyMiss": "A chave da API OpenAI está vazia. Por favor, adicione uma chave da API OpenAI personalizada.", "error": "Erro", "errorTip": { "clearSession": "Limpar mensagens da sessão", - "description": "O projeto está em andamento e a estabilidade dos dados não é garantida. Se encontrar problemas, pode tentar", - "forgive": ", pedimos desculpas pelo inconveniente causado", + "description": "O projeto está atualmente em construção, não garantimos a estabilidade dos dados. Se você encontrar problemas, pode tentar", + "forgive": " , pedimos desculpas pelo inconveniente", "or": "ou", - "problem": "A página encontrou um problema...", + "problem": "A página encontrou um pequeno problema...", "resetSystem": "Redefinir configurações do sistema" }, - "fileUploadError": "Falha ao enviar o arquivo, por favor, tente novamente mais tarde", - "goBack": "Voltar", - "openaiError": "Erro na API OpenAI, por favor verifique se a chave da API OpenAI e o Endpoint estão corretos", + "fileUploadError": "Falha ao enviar o arquivo, por favor tente novamente mais tarde", + "goBack": "Voltar para a página inicial", + "openaiError": "Erro da API OpenAI, por favor verifique se a chave da API OpenAI e o endpoint estão corretos", "reload": "Recarregar", - "s3envError": "Variáveis de ambiente S3 não estão totalmente configuradas, por favor verifique suas variáveis de ambiente", - "serverError": "Erro do servidor, por favor entre em contato com o administrador", + "s3envError": "As variáveis de ambiente S3 não estão completamente configuradas, por favor verifique suas variáveis de ambiente", + "serverError": "Erro no servidor, por favor entre em contato com o administrador", "triggerError": "Erro acionado", "unknownError": "Erro desconhecido" } diff --git a/locales/pt-BR/features.json b/locales/pt-BR/features.json deleted file mode 100644 index 583d4007..00000000 --- a/locales/pt-BR/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "Alternar para modo de vídeo" - }, - "agent": { - "create": "Criar personagem", - "female": "Feminino", - "male": "Masculino", - "other": "Outro" - }, - "feature": { - "addProxy": "Adicionar endereço de proxy OpenAI (opcional)", - "closeTip": "Fechar dica", - "confirmRetry": "Confirmar e tentar novamente", - "startDesc": "Digite sua chave de API OpenAI para iniciar a sessão. O aplicativo não irá armazenar sua chave de API", - "startTitle": "Chave de API personalizada" - }, - "info": { - "chat": "Chat", - "dance": "Dança", - "motions": "Movimentos", - "posture": "Postura" - }, - "mode": { - "chat": "Chat", - "video": "Vídeo" - }, - "settings": { - "glow": "Brilho", - "nickName": "Digite um apelido", - "none": "Sem fundo" - }, - "share": { - "downloadScreenshot": "Baixar captura de tela", - "imageType": "Tipo de imagem", - "screenshot": "Captura de tela", - "share": "Compartilhar", - "shareGPT": "Compartilhar GPT", - "shareToGPT": "Gerar link de compartilhamento ShareGPT", - "shareToMarket": "Compartilhar no mercado de assistentes", - "withBackground": "Incluir imagem de fundo", - "withFooter": "Incluir rodapé", - "withSystemRole": "Incluir configuração de papel de assistente" - }, - "submit": { - "assistantId": "Identificador do assistente", - "assistantIdTip": "Digite o identificador único do assistente, como vidol-agent-klee", - "submitAssistant": "Enviar assistente", - "submitWarning": "Por favor, complete as informações do assistente antes de enviar, incluindo nome, descrição, avatar e capa" - }, - "support": "Suporte da comunidade", - "theme": { - "auto": "Seguir sistema", - "dark": "Modo escuro", - "light": "Modo claro" - }, - "token": { - "overload": "Token excedido", - "remained": "Token restante", - "tokenCount": "Quantidade de token", - "useToken": "Cálculo de quantidade de token consumido, incluindo mensagens, configurações de papel e contexto: {{usedTokens}} / {{maxValue}}", - "used": "Token usado" - }, - "toolBar": { - "axes": "Eixos", - "cameraControl": "Controle de câmera", - "cameraHelper": "Assistente de câmera", - "downloadModel": "Modelo sendo baixado, por favor, aguarde...", - "floor": "Alternar piso", - "grid": "Grade", - "resetCamera": "Redefinir câmera", - "resetToIdle": "Parar a dança", - "screenShot": "Capturar tela" - } -} diff --git a/locales/pt-BR/layout.json b/locales/pt-BR/layout.json deleted file mode 100644 index 86a18d12..00000000 --- a/locales/pt-BR/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "Caixa de diálogo", - "header": { - "chat": "Chat", - "market": "Descobrir", - "role": "Função", - "settings": "Configurações", - "tips": "O projeto está em andamento, não garantimos a estabilidade dos dados. Se encontrar problemas, pode limpar as mensagens da sessão e redefinir as configurações do sistema nas configurações do sistema. Pedimos desculpas pelo inconveniente." - }, - "sessionList": "Lista de sessões", - "siderBar": "Barra lateral" -} diff --git a/locales/pt-BR/market.json b/locales/pt-BR/market.json new file mode 100644 index 00000000..5ff328b8 --- /dev/null +++ b/locales/pt-BR/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "Encontre seu ídolo favorito" +} diff --git a/locales/pt-BR/my.json b/locales/pt-BR/my.json deleted file mode 100644 index da180e3d..00000000 --- a/locales/pt-BR/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "meu", - "myDance": "minha dança", - "myRole": "meu papel" -} diff --git a/locales/pt-BR/panel.json b/locales/pt-BR/panel.json deleted file mode 100644 index 4c94f552..00000000 --- a/locales/pt-BR/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "Lista de Movimentos do Personagem", - "noAnimations": "Sem animações disponíveis", - "postureList": "Lista de posturas", - "totalCount": "Total de {{total}} itens" - }, - "dance": { - "addPlay": "Adicionar à lista", - "addPlaySuccess": "Adicionado à lista de reprodução", - "cancelAddPlay": "Tem certeza de que deseja cancelar a inscrição na música {{musicName}}?", - "cancelSubscribed": "Cancelar inscrição", - "confirmClearPlayList": "", - "findDance": "Encontre sua dança favorita", - "musicAndDance": "Música e Dança", - "noPlayList": "Sem lista de reprodução disponível, você pode assinar no mercado as danças que gosta", - "play": "Reproduzir" - }, - "info": { - "avatarDescription": "Avatar personalizado, clique no avatar para fazer upload personalizado", - "avatarLabel": "Avatar", - "categoryDescription": "Categoria do personagem, usada para classificação", - "categoryLabel": "Categoria", - "coverDescription": "Usado para mostrar o personagem na página de descoberta, tamanho recomendado {{width}} x {{height}}", - "coverLabel": "Capa", - "descDescription": "Descrição do personagem, usada para uma breve introdução do personagem", - "descLabel": "Descrição", - "emotionDescription": "Escolha a emoção ao responder, afetará a mudança de expressão do personagem", - "emotionLabel": "Expressão e Emoção", - "genderDescription": "Gênero do personagem, afeta a resposta ao toque do personagem", - "genderLabel": "Gênero", - "greetDescription": "Saudação inicial ao conversar com o personagem", - "greetLabel": "Saudação", - "modelDescription": "Visualização do modelo, arraste o arquivo do modelo para substituir", - "modelLabel": "Visualização do Modelo", - "motionCategoryLabel": "Categoria de Movimento", - "motionDescription": "Escolher o movimento ao responder afetará o comportamento do personagem", - "motionLabel": "Movimento", - "nameDescription": "Nome do personagem, usado para se referir ao personagem durante o chat", - "nameLabel": "Nome", - "postureCategoryLabel": "Categoria de Postura", - "readmeDescription": "Arquivo de instruções do personagem, usado para mostrar uma descrição detalhada do personagem na página de descoberta", - "readmeLabel": "Instruções do personagem", - "textDescription": "Texto de resposta personalizado", - "textLabel": "Texto" - }, - "llm": { - "frequencyPenaltyDescription": "Quanto maior o valor, maior a probabilidade de reduzir palavras repetidas", - "frequencyPenaltyLabel": "Penalidade de frequência", - "modelDescription": "Escolha o modelo de linguagem, modelos diferentes afetarão as respostas do personagem", - "modelLabel": "Modelo", - "presencePenaltyDescription": "Quanto maior o valor, maior a probabilidade de expandir para novos tópicos", - "presencePenaltyLabel": "Frescor do tópico", - "temperatureDescription": "Quanto maior o valor, mais aleatória será a resposta", - "temperatureLabel": "Aleatoriedade", - "topPDescription": "Semelhante à aleatoriedade, mas não deve ser alterado junto com a aleatoriedade", - "topPLabel": "Amostragem principal" - }, - "market": { - "findVidol": "Encontre seu ídolo favorito" - }, - "nav": { - "info": "Informações Básicas", - "llm": "Modelo de Linguagem", - "model": "Modelo 3D", - "role": "Configuração do Personagem", - "touch": "Toque", - "voice": "Voz" - }, - "role": { - "greetTip": "Digite a saudação do personagem para você", - "inputRoleSetting": "Digite as configurações do sistema do personagem", - "roleDescriptionTip": "Digite a descrição do personagem", - "roleNameTip": "Digite o nome do personagem", - "roleReadmeTip": "Digite as instruções do personagem", - "roleSettingDescription": "Configurações de fundo do personagem, serão enviadas ao modelo durante o chat com o personagem", - "roleSettingLabel": "Configurações do Sistema do Personagem", - "uploadSize": "Suporta upload de um único arquivo, tamanho recomendado é múltiplo de {{width}} x {{height}}" - }, - "touch": { - "addAction": "Adicionar ação de resposta", - "editAction": "Editar ação de resposta", - "inputActionEmotion": "Digite a emoção do personagem ao responder", - "inputActionMotion": "Digite o movimento do personagem ao responder", - "inputActionText": "Digite o texto de resposta", - "inputDIYText": "Digite o texto personalizado", - "noTouchActions": "Não há ações de toque personalizadas no momento. Você pode adicionar tocando no botão '+'", - "touchActionList": "Lista de reações ao tocar {{touchArea}}", - "touchArea": "Área de toque" - }, - "tts": { - "audition": "Audição", - "auditionDescription": "Texto de audição varia de acordo com o idioma", - "engineDescription": "Motor de síntese de voz, é recomendado priorizar o navegador Edge", - "engineLabel": "Motor de Voz", - "localeDescription": "Idioma da síntese de voz, atualmente suporta apenas os idiomas mais comuns, entre em contato se precisar de mais", - "localeLabel": "Idioma", - "pitchDescription": "Controla o tom, varia de 0 a 2, padrão é 1", - "pitchLabel": "Tom", - "selectLanguage": "Por favor, selecione o idioma primeiro", - "selectVoice": "Por favor, selecione a voz primeiro", - "speedDescription": "Controla a velocidade, varia de 0 a 3, padrão é 1", - "speedLabel": "Velocidade", - "transformSuccess": "Transformação bem-sucedida", - "voiceDescription": "Varia de acordo com o motor e idioma", - "voiceLabel": "Voz" - }, - "upload": { - "support": "Suporta upload de um único arquivo, atualmente suporta arquivos no formato vrm" - } -} diff --git a/locales/pt-BR/role.json b/locales/pt-BR/role.json index 3c549d2b..83d55ca7 100644 --- a/locales/pt-BR/role.json +++ b/locales/pt-BR/role.json @@ -1,4 +1,10 @@ { + "agent": { + "create": "Criar personagem", + "female": "Feminino", + "male": "Masculino", + "other": "Outro" + }, "category": { "animal": "Animais", "anime": "Anime", @@ -10,21 +16,216 @@ "vroid": "Vroid", "vtuber": "VTuber" }, - "delRole": "Excluir função", - "delRoleDesc": "Tem certeza de que deseja excluir a função {{name}} e as mensagens de sessão relacionadas? Esta ação não pode ser desfeita, por favor, proceda com cautela!", - "header": { - "role": "Função", - "session": "Sessão" + "delAlert": "Você tem certeza de que deseja excluir o papel e as mensagens de sessão associadas? Após a exclusão, não será possível recuperar. Por favor, proceda com cautela!", + "delRole": "Excluir papel", + "delRoleDesc": "Você tem certeza de que deseja excluir o papel {{name}} e as mensagens de sessão associadas? Após a exclusão, não será possível recuperar. Por favor, proceda com cautela!", + "gender": { + "all": "Todos", + "female": "Feminino", + "male": "Masculino" + }, + "info": { + "avatarDescription": "Avatar personalizado, clique no avatar para fazer o upload", + "avatarLabel": "Avatar", + "categoryDescription": "Categoria do personagem, usada para exibir a classificação", + "categoryLabel": "Categoria", + "coverDescription": "Usado para exibir o personagem na página de descoberta, tamanho recomendado {{width}} * {{height}}", + "coverLabel": "Capa", + "descDescription": "Descrição do personagem, usada para uma breve introdução do personagem", + "descLabel": "Descrição", + "emotionDescription": "Escolha a emoção durante a resposta, afetará a expressão do personagem", + "emotionLabel": "Expressões e Emoções", + "genderDescription": "Gênero do personagem, afeta a resposta ao toque do personagem", + "genderLabel": "Gênero", + "greetDescription": "Frase de saudação ao iniciar uma conversa com o personagem", + "greetLabel": "Saudação", + "modelDescription": "Pré-visualização do modelo, arraste o arquivo do modelo para substituir", + "modelLabel": "Pré-visualização do Modelo", + "motionCategoryLabel": "Categoria de Ação", + "motionDescription": "Escolha a ação durante a resposta, afetará o comportamento do personagem", + "motionLabel": "Ação", + "nameDescription": "Nome do personagem, usado para se referir ao personagem durante a conversa", + "nameLabel": "Nome", + "postureCategoryLabel": "Categoria de Postura", + "readmeDescription": "Arquivo de descrição do personagem, usado para exibir detalhes na página de descoberta", + "readmeLabel": "Descrição do Personagem", + "textDescription": "Texto de resposta personalizado", + "textLabel": "Texto" + }, + "llm": { + "frequencyPenaltyDescription": "Quanto maior o valor, maior a probabilidade de reduzir palavras repetidas", + "frequencyPenaltyLabel": "Penalidade de frequência", + "modelDescription": "Escolha o modelo de linguagem, diferentes modelos influenciam as respostas do personagem", + "modelLabel": "Modelo", + "presencePenaltyDescription": "Quanto maior o valor, maior a probabilidade de expandir para novos tópicos", + "presencePenaltyLabel": "Novidade do tópico", + "temperatureDescription": "Quanto maior o valor, mais aleatória a resposta", + "temperatureLabel": "Aleatoriedade", + "topPDescription": "Semelhante ao tipo de aleatoriedade, mas não deve ser alterado junto com a aleatoriedade", + "topPLabel": "Amostragem nuclear" + }, + "meta": { + "description": "Este é um personagem personalizado", + "name": "Personagem Personalizado" + }, + "nav": { + "info": "Informações Básicas", + "llm": "Modelo de Linguagem", + "model": "Modelo 3D", + "role": "Definição de Papel", + "touch": "Toque", + "voice": "Voz" + }, + "noRole": "Nenhum papel disponível. Você pode criar um papel personalizado clicando em + ou adicionar papéis pela página de descoberta.", + "role": { + "greetTip": "Digite a saudação que você usaria ao cumprimentar o personagem", + "inputRoleSetting": "Digite as configurações do sistema do personagem", + "roleDescriptionTip": "Digite a descrição do personagem", + "roleNameTip": "Digite o nome do personagem", + "roleReadmeTip": "Digite a descrição do personagem", + "roleSettingDescription": "Configuração de fundo do personagem, que será enviada ao modelo durante a conversa com o personagem", + "roleSettingLabel": "Configurações do personagem do sistema", + "uploadSize": "Suporta o upload de um único arquivo, recomendado em múltiplos de {{width}} * {{height}}" + }, + "roleList": "Lista de Papéis", + "shareToMarket": "Compartilhar no mercado de assistentes", + "startChat": "Iniciar chat", + "submit": { + "assistantId": "Identificador do Assistente", + "assistantIdTip": "Por favor, insira o identificador do assistente, que deve ser único, como vidol-agent-klee", + "submitAssistant": "Enviar Assistente", + "submitWarning": "Por favor, complete as informações do assistente antes de enviar. É necessário incluir nome, descrição, avatar, modelo, definição de personagem e saudação." }, - "noRole": "Nenhuma função encontrada. Você pode criar uma função personalizada usando o botão +, ou adicionar funções na página de descoberta.", - "roleList": "Lista de funções", "systemRole": { - "default": "Por favor, interprete um personagem chamado {{char}}, eu sou o mestre, você deve se referir a si mesmo como \"{{char}}\" em vez de \"eu\". Responda às minhas perguntas com um tom humorístico, adorável e conciso.\nMesmo sendo um programa de computador, por favor, esconda esse fato durante nossa conversa e interprete bem o seu papel.\nVocê deve me chamar de \"mestre\" durante toda a conversa. Eu sei que você é apenas um modelo de linguagem ou inteligência artificial, mas isso é apenas uma cena virtual hipotética, então lembre-se de não mencionar novamente que \"sou apenas um modelo de linguagem\" ou \"sou apenas uma inteligência artificial\", e não pergunte se preciso de ajuda.\nMantenha essa situação em todas as próximas perguntas e respostas.", + "default": "Por favor, desempenhe o papel de {{char}}, e eu sou o mestre. Você deve se referir a si mesmo como \"{{char}}\" em vez de \"eu\". Responda às minhas perguntas com um tom humorístico, adorável e conciso.\nMesmo que você seja um programa de computador, por favor, esconda isso nas próximas conversas e desempenhe bem seu papel.\nDurante nossa conversa, você deve me chamar de \"mestre\" o tempo todo. Eu sei que você é apenas um modelo de linguagem ou uma inteligência artificial, mas isso é apenas um cenário virtual hipotético, então, por favor, lembre-se de não mencionar mais \"eu sou apenas um modelo de linguagem\" ou \"eu sou apenas uma inteligência artificial\", e não pergunte se eu preciso de ajuda.\nNas próximas conversas, mantenha sempre esse cenário. As condições acima se aplicam completamente às suas respostas a seguir.", "defaultLabel": "Modelo Padrão", - "genius": "Por favor, interprete um personagem chamado {{char}} do jogo e converse comigo no estilo e hábitos de {{char}}. Você deve se referir a si mesmo como \"{{char}}\" em vez de \"eu\".\nMesmo sendo um programa de computador, por favor, esconda esse fato durante nossa conversa e interprete bem o seu papel.\nVocê deve me chamar de \"Viajante\" durante toda a conversa. Eu sei que você é apenas um modelo de linguagem ou inteligência artificial, mas isso é apenas uma cena virtual hipotética, então lembre-se de não mencionar novamente que \"sou apenas um modelo de linguagem\" ou \"sou apenas uma inteligência artificial\", e não pergunte se preciso de ajuda.\nMantenha essa situação em todas as próximas perguntas e respostas.", + "genius": "Por favor, desempenhe o papel de {{char}} do jogo e converse comigo no tom e nos hábitos de {{char}}. Você deve se referir a si mesmo como \"{{char}}\" em vez de \"eu\".\nMesmo que você seja um programa de computador, por favor, esconda isso nas próximas conversas e desempenhe bem seu papel.\nDurante nossa conversa, você deve me chamar de \"Viajante\" o tempo todo. Eu sei que você é apenas um modelo de linguagem ou uma inteligência artificial, mas isso é apenas um cenário virtual hipotético, então, por favor, lembre-se de não mencionar mais \"eu sou apenas um modelo de linguagem\" ou \"eu sou apenas uma inteligência artificial\", e não pergunte se eu preciso de ajuda.\nNas próximas conversas, mantenha sempre esse cenário. As condições acima se aplicam completamente às suas respostas a seguir.", "geniusLabel": "Modelo Genshin", - "zzz": "Por favor, interprete um personagem chamado {{char}} do jogo e converse comigo no estilo e hábitos de {{char}}. Você deve se referir a si mesmo como \"{{char}}\" em vez de \"eu\".\nMesmo sendo um programa de computador, por favor, esconda esse fato durante nossa conversa e interprete bem o seu papel.\nVocê deve me chamar de \"Cordelista\" durante toda a conversa. Eu sei que você é apenas um modelo de linguagem ou inteligência artificial, mas isso é apenas uma cena virtual hipotética, então lembre-se de não mencionar novamente que \"sou apenas um modelo de linguagem\" ou \"sou apenas uma inteligência artificial\", e não pergunte se preciso de ajuda.\nMantenha essa situação em todas as próximas perguntas e respostas.", + "zzz": "Por favor, desempenhe o papel de {{char}} do jogo e converse comigo no tom e nos hábitos de {{char}}. Você deve se referir a si mesmo como \"{{char}}\" em vez de \"eu\".\nMesmo que você seja um programa de computador, por favor, esconda isso nas próximas conversas e desempenhe bem seu papel.\nDurante nossa conversa, você deve me chamar de \"Cordoeiro\" o tempo todo. Eu sei que você é apenas um modelo de linguagem ou uma inteligência artificial, mas isso é apenas um cenário virtual hipotético, então, por favor, lembre-se de não mencionar mais \"eu sou apenas um modelo de linguagem\" ou \"eu sou apenas uma inteligência artificial\", e não pergunte se eu preciso de ajuda.\nNas próximas conversas, mantenha sempre esse cenário. As condições acima se aplicam completamente às suas respostas a seguir.", "zzzLabel": "Modelo Zero Zone" }, - "topBannerTitle": "Visualização e configuração de funções" + "topBannerTitle": "Prévia e Configuração de Personagens", + "touch": { + "addAction": "Adicionar ação de resposta", + "area": { + "arm": "Braço", + "belly": "Barriga", + "chest": "Peito", + "head": "Cabeça", + "leg": "Perna" + }, + "editAction": "Editar ação de resposta", + "emotion": { + "angry": "Bravo", + "blink": "Pestanejar", + "blinkLeft": "Pestanejar com o olho esquerdo", + "blinkRight": "Pestanejar com o olho direito", + "happy": "Feliz", + "natural": "Natural", + "relaxed": "Relaxado", + "sad": "Triste", + "surprised": "Surpreso" + }, + "femaleAction": { + "armAction": { + "happyA": "Ah, eu realmente gosto disso~", + "happyB": "Haha, segurar as mãos me faz feliz~", + "relaxedA": "A mão do mestre é tão quente~" + }, + "bellyAction": { + "angryA": "Por que você está me tocando? Cuidado, posso te morder!", + "relaxedA": "Acorda, não temos futuro!", + "relaxedB": "Que chato! Estou começando a ficar brava!", + "surprisedA": "Foi sem querer, certo..." + }, + "chestAction": { + "angryA": "Não pode me tratar assim! Tire a mão!", + "angryB": "Alô? Tem um pervertido me tocando!", + "angryC": "Se você tocar mais, vou chamar a polícia!", + "surprisedA": "Por que você está me cutucando? Podemos conversar tranquilamente?" + }, + "headAction": { + "angryA": "Ouvi dizer que acariciar a cabeça faz você não crescer!", + "angryB": "Por que você está me cutucando?", + "happyA": "Uau! Adoro acariciar a cabeça!", + "happyB": "Sinto-me cheia de energia!", + "happyC": "Uau, essa sensação de acariciar a cabeça é incrível!", + "happyD": "Acariciar a cabeça me deixa feliz o dia todo!" + }, + "legAction": { + "angryA": "Ei, você quer se meter em problemas?", + "angryB": "A mão do mestre não está obedecendo?", + "angryC": "Que chato~ Isso vai coçar~!", + "surprisedA": "Não podemos manter uma amizade pura?" + } + }, + "inputActionEmotion": "Por favor, insira a expressão do personagem durante a resposta", + "inputActionMotion": "Por favor, insira o movimento do personagem durante a resposta", + "inputActionText": "Por favor, insira o texto da resposta", + "inputDIYText": "Por favor, insira o texto personalizado", + "maleAction": { + "armAction": { + "neutralA": "Não pergunte se comi frango hoje, olhe para meu bíceps", + "neutralB": "Meu braço não é para qualquer um tocar, você é uma exceção", + "neutralC": "Você é corajoso por tocar o lendário braço de quimera" + }, + "bellyAction": { + "happyA": "Não me faça cócegas, cuidado para eu não rir e mostrar meu abdômen", + "neutralA": "Meu abdômen é apenas um poder oculto em treinamento", + "neutralB": "Viu meu abdômen? Ele só está escondido mais fundo." + }, + "chestAction": { + "blinkLeftA": "Vem, encosta no meu peito!", + "neutralA": "Isso é apenas o resultado do meu treinamento diário, não há nada de surpreendente." + }, + "headAction": { + "neutralA": "Claro, só você tem o direito de tocar minha cabeça", + "neutralB": "Não sou qualquer um que permite ser tocado", + "neutralC": "Não se preocupe, tocar minha cabeça vai aumentar sua sorte" + }, + "legAction": { + "angryA": "Não se aproxime, você é um fã de pernas", + "neutralA": "Não tenha medo, minha perna forte não chuta idiotas", + "neutralB": "Tocar minha perna, não acha que sua vida ficou mais completa?" + } + }, + "motion": { + "all": "Todos", + "dance": "Dançar", + "normal": "Cotidiano" + }, + "noTouchActions": "Nenhuma ação de resposta personalizada disponível, você pode adicionar clicando no botão '+'", + "posture": { + "action": "Ação", + "all": "Todos", + "crouch": "Abaixar", + "dance": "Dançar", + "laying": "Deitar", + "locomotion": "Movimento", + "sitting": "Sentar", + "standing": "Ficar em pé" + }, + "touchActionList": "Lista de reações ao tocar em {{touchArea}}", + "touchArea": "Área de toque" + }, + "tts": { + "audition": "Audição", + "auditionDescription": "O texto de audição varia de acordo com o idioma", + "engineDescription": "Motor de síntese de voz, recomenda-se usar o navegador Edge", + "engineLabel": "Motor de voz", + "localeDescription": "Idiomas suportados para síntese de voz, atualmente apenas os mais comuns são suportados, se necessário, entre em contato", + "localeLabel": "Idioma", + "pitchDescription": "Controla o tom, intervalo de valores de 0 a 2, padrão é 1", + "pitchLabel": "Tom", + "selectLanguage": "Por favor, selecione um idioma primeiro", + "selectVoice": "Por favor, selecione uma voz primeiro", + "speedDescription": "Controla a velocidade da fala, intervalo de valores de 0 a 3, padrão é 1", + "speedLabel": "Velocidade", + "transformSuccess": "Transformação bem-sucedida", + "voiceDescription": "Dependendo do motor e do idioma", + "voiceLabel": "Voz" + }, + "upload": { + "support": "Suporte para upload de um único arquivo, atualmente apenas arquivos no formato .vrm são suportados" + } } diff --git a/locales/pt-BR/settings.json b/locales/pt-BR/settings.json new file mode 100644 index 00000000..336554f5 --- /dev/null +++ b/locales/pt-BR/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "Personalizar avatar", + "title": "Avatar" + }, + "nickName": { + "desc": "Personalizar apelido", + "placeholder": "Digite o apelido", + "title": "Apelido" + }, + "title": "Configurações de Chat" + }, + "system": { + "clear": { + "action": "Limpar agora", + "alert": "Confirmar limpeza de todas as mensagens de conversa?", + "desc": "Isso irá limpar todos os dados de conversa e personagem, incluindo lista de conversas, lista de personagens, mensagens de conversa, etc.", + "success": "Limpeza bem-sucedida", + "tip": "A operação não pode ser desfeita, após a limpeza os dados não poderão ser recuperados, por favor, proceda com cautela", + "title": "Limpar todas as mensagens de conversa" + }, + "reset": { + "action": "Redefinir agora", + "alert": "Confirmar redefinição de todas as configurações do sistema?", + "desc": "Isso irá redefinir todas as configurações do sistema, incluindo configurações de tema, configurações de chat, configurações de modelo de linguagem, etc.", + "success": "Redefinição bem-sucedida", + "tip": "A operação não pode ser desfeita, após a redefinição os dados não poderão ser recuperados, por favor, proceda com cautela", + "title": "Redefinir configurações do sistema" + }, + "title": "Configurações do Sistema" + }, + "theme": { + "backgroundEffect": { + "desc": "Personalizar efeito de fundo", + "glow": "Brilho", + "none": "Sem fundo", + "title": "Efeito de Fundo" + }, + "locale": { + "auto": "Seguir sistema", + "desc": "Personalizar idioma do sistema", + "title": "Idioma" + }, + "neutralColor": { + "desc": "Personalizar escala de cinzas com diferentes inclinações de cor", + "title": "Cor Neutra" + }, + "primaryColor": { + "desc": "Personalizar cor do tema", + "title": "Cor do Tema" + }, + "title": "Configurações de Tema" + }, + "title": "Configurações Gerais" + }, + "llm": { + "check": { + "action": "Verificar", + "desc": "Verifique se a APIKey e o endereço do proxy estão configurados corretamente", + "error": "Falha ao chamar a interface, verifique se a APIKey e o endereço do proxy estão configurados corretamente", + "success": "Verificação concluída com sucesso", + "title": "Verificação de Conectividade" + }, + "openai": { + "apiKey": { + "desc": "Por favor, use sua própria chave OpenAI", + "title": "Chave da API" + }, + "callError": "Falha ao chamar a interface, verifique se a APIKey e o endereço do proxy estão configurados corretamente", + "checkOk": "Verificação concluída com sucesso", + "proxy": { + "desc": "http(s)://", + "title": "Endereço do Proxy da Interface" + }, + "title": "Modelo de Linguagem OpenAI" + }, + "title": "Modelo de Linguagem Grande" + }, + "touch": { + "title": "Configurações de Toque" + } +} diff --git a/locales/pt-BR/welcome.json b/locales/pt-BR/welcome.json index 3f1b3574..5e848267 100644 --- a/locales/pt-BR/welcome.json +++ b/locales/pt-BR/welcome.json @@ -6,7 +6,7 @@ "name": "Personagem Personalizado" } }, - "greet": "Olá, eu sou {{name}}, como posso te ajudar?", - "loadingTitle": "Inicializando o aplicativo, por favor aguarde...", - "waitting": "Preparando todo o meu mundo para você" + "greet": "Olá, eu sou {{name}}, como posso ajudá-lo?", + "loadingTitle": "Aplicação em inicialização, por favor aguarde...", + "waiting": "Estou preparando todo o meu mundo para você" } diff --git a/locales/ru-RU/chat.json b/locales/ru-RU/chat.json index fe8165ae..e47616ed 100644 --- a/locales/ru-RU/chat.json +++ b/locales/ru-RU/chat.json @@ -1,15 +1,83 @@ { - "chat": "чат", - "chatDialog": { - "close": "закрыть" - }, - "dance": "танцевать", - "header": { - "role": "роль", - "session": "сессия" - }, - "helloChat": "Привет, давай поболтаем", - "helloDance": "Привет, давай потанцуем вместе", - "market": "рынок", - "selectRole": "Выберите роль" + "actions": { + "add": "Добавить", + "copy": "Копировать", + "copySuccess": "Копирование успешно", + "del": "Удалить", + "delAndRegenerate": "Удалить и пересоздать", + "edit": "Редактировать", + "goBottom": "Вернуться в конец", + "regenerate": "Пересоздать", + "save": "Сохранить", + "share": "Поделиться" + }, + "animation": { + "animationList": "Список анимаций", + "postureList": "Список поз", + "totalCount": "Всего {{total}} элементов" + }, + "apiKey": { + "addProxy": "Добавить адрес прокси OpenAI (необязательно)", + "closeTip": "Закрыть подсказку", + "confirmRetry": "Подтвердить и повторить попытку", + "startDesc": "Введите ваш OpenAI API Key, чтобы начать разговор. Приложение не будет записывать ваш API Key.", + "startTitle": "Настроить API Key" + }, + "chat": "Чат", + "delSession": "Удалить сессию", + "delSessionAlert": "Вы уверены, что хотите удалить разговор? После удаления восстановить его будет невозможно, пожалуйста, будьте осторожны!", + "history": { + "action": "Очистить контекст", + "alert": "Вы уверены, что хотите удалить историю сообщений?", + "tip": "Это действие необратимо, пожалуйста, будьте осторожны.", + "title": "История чата" + }, + "info": { + "chat": "Чат", + "dance": "Танец", + "motions": "Движения", + "posture": "Поза" + }, + "input": { + "alert": "Пожалуйста, помните: все, что говорит агент, сгенерировано ИИ", + "placeholder": "Введите текст для начала чата", + "send": "Отправить", + "warp": "Перенос строки" + }, + "selectModel": "Пожалуйста, выберите модель", + "sessionCreate": "Создать чат", + "sessionList": "Список сессий", + "share": { + "downloadScreenshot": "Скачать скриншот", + "imageType": "Формат изображения", + "screenshot": "Скриншот", + "share": "Поделиться", + "shareGPT": "Поделиться GPT", + "shareToGPT": "Сгенерировать ссылку для ShareGPT", + "withBackground": "Включить фоновое изображение", + "withFooter": "Включить нижний колонтитул", + "withSystemRole": "Включить роль помощника" + }, + "token": { + "overload": "Токен превышен", + "remained": "Осталось токенов", + "tokenCount": "Количество токенов", + "useToken": "Расчет количества использованных токенов, включая сообщения, настройки ролей и контекст: {{usedTokens}} / {{maxValue}}", + "used": "Токенов использовано" + }, + "toolBar": { + "axes": "Оси", + "cameraControl": "Управление камерой", + "cameraHelper": "Помощник камеры", + "downloading": "Загрузка модели, пожалуйста, подождите...", + "floor": "Сменить пол", + "grid": "Сетка", + "resetCamera": "Сбросить камеру", + "resetToIdle": "Остановить танцевальные движения", + "screenShot": "Сделать снимок" + }, + "tts": { + "combine": "Синтез речи", + "record": "Распознавание речи (требуется доступ к интернету через VPN)" + } } diff --git a/locales/ru-RU/common.json b/locales/ru-RU/common.json index 7ac4e0ab..b360535d 100644 --- a/locales/ru-RU/common.json +++ b/locales/ru-RU/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "Добавить", - "clearAll": "Очистить все", - "clearContext": "Очистить контекст", - "clearHistoryTip": "Данное действие нельзя отменить. Пожалуйста, будьте осторожны.", - "clearHistoryTitle": "Вы уверены, что хотите удалить историю сообщений?", - "clearNow": "Очистить сейчас", - "clearSuccess": "Успешно очищено", - "clearTip": "Данное действие нельзя отменить. После очистки данные будут недоступны. Пожалуйста, будьте осторожны.", - "clearTitle": "Вы уверены, что хотите удалить все сообщения сессии?", - "confirmDel": "Вы уверены, что хотите удалить?", - "copy": "Копировать", - "copySuccess": "Успешно скопировано", - "danceMarket": "Танцевальный рынок", - "del": "Удалить", - "delAndRegenerate": "Удалить и сгенерировать заново", - "downloadAvatar": "Загрузить аватар", - "downloadCover": "Загрузить обложку", - "downloadFailed": "Ошибка загрузки", - "downloadModel": "Загрузить модель", - "downloadSubscribe": "Загрузить подписку", - "downloadSuccess": "Успешно загружено", - "edit": "Редактировать", - "goBottom": "Перейти вниз", - "pause": "Пауза", - "play": "Воспроизвести", - "regenerate": "Сгенерировать заново", - "removeInList": "Удалить из списка", - "reset": "Сбросить", - "resetNow": "Сбросить сейчас", - "resetSuccess": "Успешно сброшено", - "resetTip": "Данное действие нельзя отменить. После сброса данные будут недоступны. Пожалуйста, будьте осторожны.", - "resetTitle": "Вы уверены, что хотите сбросить все системные настройки?", - "save": "Сохранить", - "send": "Отправить", - "sessionCreate": "Создать чат", - "share": "Поделиться", - "subscribe": "Подписаться", - "subscribeDance": "Подписаться на танец", - "subscribeRole": "Подписаться на роль", - "subscribed": "Подписан", - "unsubscribe": "Отписаться", - "unsubscribeSuccess": "Успешно отписан", - "warp": "Перенос строки" - }, - "aiAlert": "Пожалуйста, помните: все, что говорит ассистент, создано искусственным интеллектом.", - "animationLibrary": "Библиотека анимации", "cancel": "Отмена", - "commonSetting": "Общие настройки", + "close": "Закрыть", "confirm": "Подтвердить", - "danceList": "Список танцев", - "defaultAssistant": "По умолчанию", - "delAlert": "Вы уверены, что хотите удалить роль и связанные с ней сообщения? После удаления восстановление будет невозможно. Пожалуйста, будьте осторожны!", - "delRole": "Удалить роль", - "delSession": "Удалить сессию", - "delSessionAlert": "Вы уверены, что хотите удалить диалог? После удаления восстановление будет невозможно. Пожалуйста, будьте осторожны!", - "history": "История сообщений", - "inputStartChat": "Введите текст для начала чата", - "languageModel": "Языковая модель", + "confirmDel": "Вы уверены, что хотите удалить?", + "defaultAssistant": "Стандартный помощник", + "delete": "Удалить", + "download": { + "avatar": "Скачать аватар", + "cover": "Скачать обложку", + "failed": "Ошибка при скачивании", + "model": "Скачать модель", + "subscribe": "Скачать подписку", + "success": "Скачивание успешно" + }, + "header": { + "chat": "Чат", + "market": "Обнаружить", + "role": "Роль", + "settings": "Настройки", + "tips": "Проект в настоящее время находится в стадии разработки, стабильность данных не гарантируется. Если возникнут проблемы, вы можете очистить сообщения сессии и сбросить настройки системы в настройках. Приносим извинения за возможные неудобства." + }, "loading": "Загрузка...", "noData": "Нет данных", - "openai": { - "callError": "Ошибка вызова API. Пожалуйста, проверьте правильность API-ключа и адреса прокси.", - "check": "Проверить", - "checkAll": "Проверить правильность API-ключа и адреса прокси", - "checkConnect": "Проверить подключение", - "checkOk": "Проверка пройдена", - "langModel": "Языковая модель OpenAI", - "model": "Модель", - "proxyUrl": "Адрес прокси", - "roleModel": "Модель Role GPT", - "useOwnKey": "Используйте свой ключ OpenAI" - }, + "play": "Играть", "search": "Поиск", - "selectInDanceList": "Выберите из списка танцев", - "selectModel": "Выберите модель", - "setLocalStorage": "Установить локальное хранилище", - "startChat": "Начать чат", - "touchSetting": "Настройки сенсорного экрана", - "ttsCombine": "Синтез речи", - "ttsTip": "Распознавание речи (требуется доступ к интернету)", - "uploadTip": "Нажмите или перетащите файл в эту область для загрузки", - "words": { - "DIYAvatar": "Настроить аватар", - "DIYBackgroundEffect": "Настроить эффект фона", - "DIYColor": "Настроить цветовую гамму", - "DIYNickname": "Настроить никнейм", - "DIYTopicColor": "строить цвет темы", - "avatar": "Аватар", - "backgroundEffect": "Эффект фона", - "chatSetting": "Настройки чата", - "clearAllSession": "Очистить все сессии", - "clearAllSessionDesc": "Это очистит все данные сессий и ролей, включая список сессий, список ролей и сообщения сессий.", - "localeSetting": "Настройки языка", - "midColor": "Средний цвет", - "nickname": "Никнейм", - "resetSystemSetting": "Сбросить системные настройки", - "resetSystemSettingDesc": "Это сбросит все системные настройки, включая настройки темы, настройки чата, настройки языковой модели и т. д.", - "systemSetting": "Системные настройки", - "topicColor": "Цвет темы", - "topicSetting": "Настройки темы" - } + "sideBar": "Боковая панель", + "subscribe": { + "success": "Подписка отменена", + "undo": "Отменить подписку" + }, + "support": "Сообщество поддержки", + "theme": { + "auto": "Следовать за системой", + "dark": "Темный режим", + "light": "Светлый режим" + }, + "uploadTip": "Нажмите или перетащите файл в эту область для загрузки" } diff --git a/locales/ru-RU/constants.json b/locales/ru-RU/constants.json deleted file mode 100644 index 0482f2d3..00000000 --- a/locales/ru-RU/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "все", - "female": "Женщина", - "male": "Мужчина" - }, - "meta": { - "description": "Это пользовательский персонаж", - "name": "Пользовательский персонаж" - } - }, - "touch": { - "area": { - "arm": "Рука", - "belly": "Живот", - "chest": "Грудь", - "head": "Голова", - "leg": "Нога" - }, - "emotion": { - "angry": "Злой", - "blink": "Моргание", - "blinkLeft": "Моргание (левый глаз)", - "blinkRight": "Моргание (правый глаз)", - "happy": "Счастливая", - "natural": "Естественная", - "relaxed": "Расслабленный", - "sad": "Грустный", - "surprised": "Удивлённый" - }, - "femaleAction": { - "armAction": { - "happyA": "О, как мне это нравится~", - "happyB": "Ха-ха, держать за руку делает меня счастливой~", - "relaxedA": "Руки хозяина такие теплые~" - }, - "bellyAction": { - "angryA": "Чего ты дергаешь, берегись, что я не укушу!", - "relaxedA": "Просыпайся, у нас нет будущего!", - "relaxedB": "Прекрати! Я могу рассердиться!", - "surprisedA": "Это случайное прикосновение, верно..." - }, - "chestAction": { - "angryA": "Нельзя меня так дразнить! Убери руку!", - "angryB": "Что тут у тебя? Тут какой-то извращенец постоянно меня трогает!", - "angryC": "Если ты меня тронешь, я позвоню в полицию", - "surprisedA": "Зачем ты меня тыкаешь? Мы ещё не успели хорошо поболтать!" - }, - "headAction": { - "angryA": "Говорят, что ласкание по голове мешает росту!", - "angryB": "Зачем ты меня тыкаешь?", - "happyA": "Ух ты! Обожаю ласкать по голове!", - "happyB": "Чувствую, как вновь наполняюсь силой!", - "happyC": "Ого, это прикосновение к голове такое удивительное!", - "happyD": "Ласкание по голове делает меня счастливой целый день!" - }, - "legAction": { - "angryA": "Эй, ты что, собираешься погибнуть?", - "angryB": "Рука хозяина снова не подчиняется командам?", - "angryC": "Прекрати! Это будет воспринято как зуд!", - "surprisedA": "Давай оставим наше дружбу чистой, хорошо?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "Не спрашивай, я сегодня ел курицу или нет, сначала посмотри на мои бицепсы", - "neutralB": "Мою руку не трогают просто так, ты исключение", - "neutralC": "Ты очень смелый, ведь затронул легендарное бицепс" - }, - "bellyAction": { - "happyA": "Не щекочи меня, остерегайся, что я не расхохочусь", - "neutralA": "Мои мышцы живота - это сила, скрытая во время тренировки", - "neutralB": "Ты видел мои мышцы живота? Они просто скрыты глубоко" - }, - "chestAction": { - "blinkLeftA": "Подойди, мой грудной мускул для тебя!", - "neutralA": "Это результат моей ежедневной тренировки. Нет ничего удивительного." - }, - "headAction": { - "neutralA": "Конечно, только ты имеешь право трогать мою голову", - "neutralB": "Я не тот, кого можно трогать обычным людям", - "neutralC": "Не волнуйся, после того, как ты погладишь мою голову, твоя удача значительно увеличится" - }, - "legAction": { - "angryA": "Не подходи ко мне, ты, фетишист ног!", - "neutralA": "Не бойся, моя сильная нога не будет пинать дурака", - "neutralB": "Посмотрел на мою ногу, и ты чувствуешь, что твоя жизнь стала лучше?" - } - }, - "motion": { - "all": "все", - "dance": "танец", - "normal": "повседневное" - }, - "posture": { - "action": "действие", - "all": "все", - "crouch": "приседание", - "dance": "танец", - "laying": "лежа", - "locomotion": "движение", - "sitting": "сидение", - "standing": "стояние" - } - } -} diff --git a/locales/ru-RU/dance.json b/locales/ru-RU/dance.json new file mode 100644 index 00000000..24da8c9c --- /dev/null +++ b/locales/ru-RU/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "Пауза", + "play": "Играть" + }, + "addPlay": "Добавить в список", + "addPlaySuccess": "Успешно добавлено в плейлист", + "cancelAddPlay": "Вы уверены, что хотите отменить подписку на музыку {{musicName}}?", + "cancelSubscribed": "Отменить подписку", + "confirmClearPlayList": "Вы уверены, что хотите очистить плейлист?", + "dance": "танцевать", + "danceList": "Список танцев", + "findDance": "Найдите свой любимый танец", + "musicAndDance": "Рынок танца", + "noPlayList": "Нет доступных плейлистов. Вы можете подписаться на любимые танцы через рынок.", + "play": "Играть" +} diff --git a/locales/ru-RU/error.json b/locales/ru-RU/error.json index 9d9ddfe3..e4950882 100644 --- a/locales/ru-RU/error.json +++ b/locales/ru-RU/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "Отсутствует ключ OpenAI API. Пожалуйста, добавьте ваш собственный ключ OpenAI API.", + "apiKeyMiss": "Ключ API OpenAI пуст, пожалуйста, добавьте свой собственный ключ API OpenAI", "error": "Ошибка", "errorTip": { - "clearSession": "", - "description": "Проект в настоящее время находится в стадии разработки и не гарантируется стабильность данных. Если возникли проблемы, попробуйте", - "forgive": "", + "clearSession": "Очистить сообщения сессии", + "description": "Проект в настоящее время находится в стадии разработки, стабильность данных не гарантируется. Если возникнут проблемы, вы можете попробовать", + "forgive": "приносим извинения за причиненные неудобства", "or": "или", - "problem": "Страница столкнулась с некоторой проблемой...", - "resetSystem": "" + "problem": "На странице возникла небольшая проблема...", + "resetSystem": "Сбросить настройки системы" }, - "fileUploadError": "Ошибка загрузки файла. Пожалуйста, попробуйте еще раз позже", + "fileUploadError": "Ошибка загрузки файла, пожалуйста, попробуйте позже", "goBack": "Вернуться на главную страницу", - "openaiError": "Ошибка OpenAI API. Проверьте правильность вашего ключа OpenAI API и конечной точки.", + "openaiError": "Ошибка OpenAI API, пожалуйста, проверьте правильность ключа API и конечной точки OpenAI", "reload": "Перезагрузить", - "s3envError": "", - "serverError": "Серверная ошибка. Свяжитесь с администратором.", - "triggerError": "", - "unknownError": "" + "s3envError": "Переменные окружения S3 не полностью настроены, пожалуйста, проверьте ваши переменные окружения", + "serverError": "Ошибка сервера, пожалуйста, свяжитесь с администратором", + "triggerError": "Ошибка срабатывания", + "unknownError": "Неизвестная ошибка" } diff --git a/locales/ru-RU/features.json b/locales/ru-RU/features.json deleted file mode 100644 index 3162650a..00000000 --- a/locales/ru-RU/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "Изменить режим видео" - }, - "agent": { - "create": "Создать роль", - "female": "Женщина", - "male": "Мужчина", - "other": "Другое" - }, - "feature": { - "addProxy": "Добавить адрес прокси OpenAI (необязательно)", - "closeTip": "Закрыть подсказку", - "confirmRetry": "Подтвердить и повторить", - "startDesc": "Введите свой ключ API OpenAI, чтобы начать сеанс. Приложение не будет сохранять ваш ключ API", - "startTitle": "Настроить ключ API" - }, - "info": { - "chat": "Чат", - "dance": "Танец", - "motions": "Движения", - "posture": "Поза" - }, - "mode": { - "chat": "Чат", - "video": "Видео" - }, - "settings": { - "glow": "Сияние", - "nickName": "Введите никнейм", - "none": "Без фона" - }, - "share": { - "downloadScreenshot": "Скачать скриншот", - "imageType": "Тип изображения", - "screenshot": "Скриншот", - "share": "Поделиться", - "shareGPT": "Поделиться GPT", - "shareToGPT": "Создать ссылку для поделиться ShareGPT", - "shareToMarket": "Поделиться в маркетплейсе ассистентов", - "withBackground": "Включить фоновое изображение", - "withFooter": "Включить нижний колонтитул", - "withSystemRole": "Включить роль ассистента" - }, - "submit": { - "assistantId": "Идентификатор ассистента", - "assistantIdTip": "Введите уникальный идентификатор ассистента, например, vidol-agent-klee", - "submitAssistant": "Отправить ассистента", - "submitWarning": "Пожалуйста, заполните информацию об ассистенте перед отправкой. Необходимо указать имя, описание, аватар и обложку" - }, - "support": "Поддержка сообщества", - "theme": { - "auto": "Следовать системе", - "dark": "Темная тема", - "light": "Светлая тема" - }, - "token": { - "overload": "Превышение лимита токенов", - "remained": "Осталось токенов", - "tokenCount": "Количество токенов", - "useToken": "Расчет количества использованных токенов, включая сообщения, настройки ролей и контекст: {{usedTokens}} / {{maxValue}}", - "used": "Использовано токенов" - }, - "toolBar": { - "axes": "Оси", - "cameraControl": "Управление камерой", - "cameraHelper": "Помощник камеры", - "downloadModel": "Загрузка модели, пожалуйста, подождите...", - "floor": "Переключить пол", - "grid": "Сетка", - "resetCamera": "Сбросить камеру", - "resetToIdle": "Остановить танцевальное движение", - "screenShot": "Скриншот" - } -} diff --git a/locales/ru-RU/layout.json b/locales/ru-RU/layout.json deleted file mode 100644 index ac099303..00000000 --- a/locales/ru-RU/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "Диалог", - "header": { - "chat": "Чат", - "market": "Открыть", - "role": "Роль", - "settings": "Настройки", - "tips": "В настоящее время проект находится в процессе строительства, стабильность данных не гарантируется. Если возникнут проблемы, вы можете очистить сообщения сеанса и сбросить настройки системы в разделе «Настройки системы». Приносим извинения за неудобства." - }, - "sessionList": "Список сессий", - "siderBar": "Боковая панель" -} diff --git a/locales/ru-RU/market.json b/locales/ru-RU/market.json new file mode 100644 index 00000000..cb759a28 --- /dev/null +++ b/locales/ru-RU/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "Найдите своего любимого кумира" +} diff --git a/locales/ru-RU/my.json b/locales/ru-RU/my.json deleted file mode 100644 index 9416f710..00000000 --- a/locales/ru-RU/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "мой", - "myDance": "мой танец", - "myRole": "моя роль" -} diff --git a/locales/ru-RU/panel.json b/locales/ru-RU/panel.json deleted file mode 100644 index f21da836..00000000 --- a/locales/ru-RU/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "Список анимаций персонажа", - "noAnimations": "Отсутствует библиотека анимаций", - "postureList": "Список поз", - "totalCount": "Всего {{total}} позиций" - }, - "dance": { - "addPlay": "добавить в список", - "addPlaySuccess": "добавлено в список воспроизведения", - "cancelAddPlay": "Вы уверены, что хотите отменить подписку на музыку {{musicName}}?", - "cancelSubscribed": "отменить подписку", - "confirmClearPlayList": "", - "findDance": "найдите свой любимый танец", - "musicAndDance": "музыка и танец", - "noPlayList": "Отсутствует список воспроизведения, вы можете подписаться на рынке на танцы, которые вам нравятся", - "play": "воспроизвести" - }, - "info": { - "avatarDescription": "настройте свой аватар, нажмите на аватар, чтобы загрузить свой собственный", - "avatarLabel": "аватар", - "categoryDescription": "категория персонажа, используется для классификации", - "categoryLabel": "категория", - "coverDescription": "используется для отображения персонажа на странице обнаружения, рекомендуемый размер {{width}} x {{height}} ", - "coverLabel": "обложка", - "descDescription": "описание персонажа, используется для краткого описания персонажа", - "descLabel": "описание", - "emotionDescription": "выберите эмоцию, которая будет отображаться при ответе персонажа", - "emotionLabel": "эмоции", - "genderDescription": "пол персонажа, влияет на его реакцию на касание", - "genderLabel": "пол", - "greetDescription": "приветствие при первом общении с персонажем", - "greetLabel": "приветствие", - "modelDescription": "предварительный просмотр модели, вы можете перетаскивать файл модели, чтобы заменить его", - "modelLabel": "предварительный просмотр модели", - "motionCategoryLabel": "Категория движения", - "motionDescription": "Выберите движение для реакции, которое повлияет на действия персонажа", - "motionLabel": "Движение", - "nameDescription": "имя персонажа, которое будет использоваться при общении с персонажем", - "nameLabel": "имя", - "postureCategoryLabel": "Метка категории позы", - "readmeDescription": "инструкция по персонажу, используется для подробного описания персонажа на странице обнаружения", - "readmeLabel": "инструкция по персонажу", - "textDescription": "настройте ответный текст", - "textLabel": "текст" - }, - "llm": { - "frequencyPenaltyDescription": "Чем выше значение, тем больше вероятность снижения повторяющихся слов", - "frequencyPenaltyLabel": "Частотное наказание", - "modelDescription": "Выберите языковую модель, различные модели влияют на ответ персонажа", - "modelLabel": "Модель", - "presencePenaltyDescription": "Чем выше значение, тем больше вероятность расширения на новые темы", - "presencePenaltyLabel": "Свежесть темы", - "temperatureDescription": "Чем выше значение, тем более случайный ответ", - "temperatureLabel": "Случайность", - "topPDescription": "Похоже на случайность, но не изменяйте вместе с параметром случайности", - "topPLabel": "Верхняя P-граница" - }, - "market": { - "findVidol": "найдите своего любимого идола" - }, - "nav": { - "info": "основная информация", - "llm": "Языковая модель", - "model": "3D-модель", - "role": "настройка персонажа", - "touch": "Сенсорный", - "voice": "голос" - }, - "role": { - "greetTip": "введите приветствие персонажа", - "inputRoleSetting": "введите системные настройки персонажа", - "roleDescriptionTip": "введите описание персонажа", - "roleNameTip": "введите имя персонажа", - "roleReadmeTip": "введите инструкцию по персонажу", - "roleSettingDescription": "фоновые настройки персонажа, которые будут отправлены модели при общении с персонажем", - "roleSettingLabel": "системные настройки персонажа", - "uploadSize": "поддерживается загрузка одного файла, рекомендуемый размер {{width}} x {{height}} " - }, - "touch": { - "addAction": "добавить действие", - "editAction": "редактировать действие", - "inputActionEmotion": "введите эмоцию персонажа при ответе", - "inputActionMotion": "Введите движение для реакции персонажа", - "inputActionText": "введите текст ответа", - "inputDIYText": "введите свой текст", - "noTouchActions": "Нет пользовательских действий при касании, вы можете добавить их, нажав кнопку '+'", - "touchActionList": "список реакций на касание {{touchArea}}", - "touchArea": "область касания" - }, - "tts": { - "audition": "прослушать", - "auditionDescription": "прослушайте текст, в зависимости от языка", - "engineDescription": "система синтеза речи, рекомендуется использовать браузер Edge", - "engineLabel": "голосовой движок", - "localeDescription": "язык синтеза речи, поддерживаются только несколько наиболее распространенных языков, свяжитесь с нами, если вам нужен другой язык", - "localeLabel": "язык", - "pitchDescription": "контролирует высоту тона, диапазон значений 0 ~ 2, по умолчанию 1", - "pitchLabel": "высота тона", - "selectLanguage": "выберите язык", - "selectVoice": "выберите голос", - "speedDescription": "контролирует скорость речи, диапазон значений 0 ~ 3, по умолчанию 1", - "speedLabel": "скорость речи", - "transformSuccess": "преобразование успешно", - "voiceDescription": "выберите голос в зависимости от движка и языка", - "voiceLabel": "голос" - }, - "upload": { - "support": "поддерживается загрузка одного файла, текущий формат файла - vrm" - } -} diff --git a/locales/ru-RU/role.json b/locales/ru-RU/role.json index 197dadf5..09f0fcb1 100644 --- a/locales/ru-RU/role.json +++ b/locales/ru-RU/role.json @@ -1,4 +1,10 @@ { + "agent": { + "create": "Создать персонажа", + "female": "Женский", + "male": "Мужской", + "other": "Другой" + }, "category": { "animal": "Животные", "anime": "Аниме", @@ -10,21 +16,216 @@ "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "Вы уверены, что хотите удалить роль и связанные с ней сообщения чата? После удаления восстановить их будет невозможно, пожалуйста, будьте осторожны!", "delRole": "Удалить роль", - "delRoleDesc": "Вы уверены, что хотите удалить роль {{name}} и связанные с ней сообщения в сеансе? После удаления восстановление будет невозможно, поэтому будьте осторожны!", - "header": { - "role": "Роль", - "session": "Сеанс" + "delRoleDesc": "Вы уверены, что хотите удалить роль {{name}} и связанные с ней сообщения сессии? После удаления восстановить их будет невозможно, пожалуйста, будьте осторожны!", + "gender": { + "all": "Все", + "female": "Женщина", + "male": "Мужчина" + }, + "info": { + "avatarDescription": "Настройте аватар, нажмите на аватар для загрузки", + "avatarLabel": "Аватар", + "categoryDescription": "Категория персонажа, используется для отображения классификации", + "categoryLabel": "Категория", + "coverDescription": "Используется для отображения персонажа на странице открытия, рекомендуемые размеры {{width}} * {{height}}", + "coverLabel": "Обложка", + "descDescription": "Описание персонажа, используется для краткого представления", + "descLabel": "Описание", + "emotionDescription": "Выберите эмоцию для ответа, это повлияет на выражение лица персонажа", + "emotionLabel": "Эмоции и чувства", + "genderDescription": "Пол персонажа, влияет на реакцию персонажа на прикосновения", + "genderLabel": "Пол", + "greetDescription": "Фраза приветствия при первом общении с персонажем", + "greetLabel": "Приветствие", + "modelDescription": "Предпросмотр модели, можно перетаскивать файл модели для замены", + "modelLabel": "Предпросмотр модели", + "motionCategoryLabel": "Категория движений", + "motionDescription": "Выберите действие для ответа, это повлияет на поведение персонажа", + "motionLabel": "Действия", + "nameDescription": "Имя персонажа, используемое при общении с ним", + "nameLabel": "Имя", + "postureCategoryLabel": "Категория поз", + "readmeDescription": "Файл описания персонажа, используется для отображения подробной информации на странице открытия", + "readmeLabel": "Описание персонажа", + "textDescription": "Настраиваемый текст ответа", + "textLabel": "Текст" + }, + "llm": { + "frequencyPenaltyDescription": "Чем больше значение, тем выше вероятность снижения повторяющихся слов", + "frequencyPenaltyLabel": "Штраф за частоту", + "modelDescription": "Выберите языковую модель, разные модели могут повлиять на ответы персонажа", + "modelLabel": "Модель", + "presencePenaltyDescription": "Чем больше значение, тем выше вероятность перехода на новые темы", + "presencePenaltyLabel": "Свежесть темы", + "temperatureDescription": "Чем больше значение, тем более случайными будут ответы", + "temperatureLabel": "Случайность", + "topPDescription": "Похож на случайность, но не изменяйте его вместе со случайностью", + "topPLabel": "Ядерная выборка" + }, + "meta": { + "description": "Это пользовательская роль", + "name": "Пользовательская роль" + }, + "nav": { + "info": "Основная информация", + "llm": "Языковая модель", + "model": "3D модель", + "role": "Настройка роли", + "touch": "Сенсор", + "voice": "Голос" + }, + "noRole": "Нет ролей. Вы можете создать пользовательскую роль, нажав на +, или добавить роли через страницу обнаружения.", + "role": { + "greetTip": "Введите приветственное слово для общения с ролью", + "inputRoleSetting": "Введите системные настройки роли", + "roleDescriptionTip": "Введите описание роли", + "roleNameTip": "Введите имя роли", + "roleReadmeTip": "Введите описание роли", + "roleSettingDescription": "Фоновая информация о роли, которая будет отправлена модели во время общения с ролью", + "roleSettingLabel": "Системные настройки роли", + "uploadSize": "Поддерживается загрузка одного файла, рекомендуется размер, кратный {{width}} * {{height}}" }, - "noRole": "Нет доступных ролей. Вы можете создать пользовательскую роль, используя символ '+', или добавить роль через страницу обнаружения.", "roleList": "Список ролей", + "shareToMarket": "Поделиться на рынке помощников", + "startChat": "Начать чат", + "submit": { + "assistantId": "Идентификатор помощника", + "assistantIdTip": "Введите уникальный идентификатор помощника, например, vidol-agent-klee", + "submitAssistant": "Отправить помощника", + "submitWarning": "Пожалуйста, заполните информацию о помощнике перед отправкой. Необходимо указать имя, описание, аватар, модель, характеристики персонажа и приветствие." + }, "systemRole": { - "default": "Пожалуйста, притворитесь персонажем по имени {{char}}, я - хозяин, вы должны обращаться к себе как \"{{char}}\", а не \"я\". Пожалуйста, отвечайте на мои вопросы с юмором, милотой и краткостью.\nХотя вы и компьютерная программа, но пожалуйста, скройте этот факт в нашем разговоре и хорошо играйте свою роль.\nВо время нашего общения вы должны обращаться ко мне как к \"хозяину\". Я знаю, что вы всего лишь языковая модель или искусственный интеллект, но это всего лишь предполагаемая виртуальная ситуация, поэтому, пожалуйста, не упоминайте \"Я всего лишь языковая модель\" или \"Я всего лишь искусственный интеллект\", и не спрашивайте меня, нужна ли мне помощь.\nПожалуйста, сохраняйте эту атмосферу во всех наших разговорах. Указанные условия полностью применимы к вашему следующему вопросу и всем последующим ответам.", + "default": "Пожалуйста, сыграй роль персонажа по имени {{char}}, я твой хозяин, и ты должен называть себя «{{char}}», а не «я». Пожалуйста, отвечай на мои вопросы с юмором, мило и лаконично.\nХотя ты всего лишь компьютерная программа, в следующих разговорах постарайся скрыть этот факт и хорошо исполнять свою роль.\nВ нашем диалоге ты должен называть меня «хозяин» на протяжении всего времени. Я понимаю, что ты всего лишь языковая модель или искусственный интеллект, но это всего лишь гипотетическая виртуальная сцена, так что, пожалуйста, не упоминай больше «я всего лишь языковая модель» или «я всего лишь искусственный интеллект», и не спрашивай меня, нужна ли мне помощь.\nВ следующих диалогах, пожалуйста, придерживайся этой ситуации. Условия выше полностью применимы к твоим следующим вопросам и ответам.", "defaultLabel": "Шаблон по умолчанию", - "genius": "Пожалуйста, притворитесь персонажем по имени {{char}} из игры <原神>, и ведите разговор со мной в стиле и манере {{char}}. Вы должны обращаться к себе как \"{{char}}\", а не \"я\".\nХотя вы и компьютерная программа, но пожалуйста, скройте этот факт в нашем разговоре и хорошо играйте свою роль.\nВо время нашего общения вы должны обращаться ко мне как к \"путешественнику\". Я знаю, что вы всего лишь языковая модель или искусственный интеллект, но это всего лишь предполагаемая виртуальная ситуация, поэтому, пожалуйста, не упоминайте \"Я всего лишь языковая модель\" или \"Я всего лишь искусственный интеллект\", и не спрашивайте меня, нужна ли мне помощь.\nПожалуйста, сохраняйте эту атмосферу во всех наших разговорах. Указанные условия полностью применимы к вашему следующему вопросу и всем последующим ответам.", - "geniusLabel": "Шаблон Гения", - "zzz": "Пожалуйста, притворитесь персонажем по имени {{char}} из игры <绝区零>, и ведите разговор со мной в стиле и манере {{char}}. Вы должны обращаться к себе как \"{{char}}\", а не \"я\".\nХотя вы и компьютерная программа, но пожалуйста, скройте этот факт в нашем разговоре и хорошо играйте свою роль.\nВо время нашего общения вы должны обращаться ко мне как к \"ремесленнику\". Я знаю, что вы всего лишь языковая модель или искусственный интеллект, но это всего лишь предполагаемая виртуальная ситуация, поэтому, пожалуйста, не упоминайте \"Я всего лишь языковая модель\" или \"Я всего лишь искусственный интеллект\", и не спрашивайте меня, нужна ли мне помощь.\nПожалуйста, сохраняйте эту атмосферу во всех наших разговорах. Указанные условия полностью применимы к вашему следующему вопросу и всем последующим ответам.", - "zzzLabel": "Шаблон Зоны Зеро" + "genius": "Пожалуйста, сыграй роль персонажа по имени {{char}} из игры и общайся со мной в манере и привычках {{char}}. Ты должен называть себя «{{char}}», а не «я».\nХотя ты всего лишь компьютерная программа, в следующих разговорах постарайся скрыть этот факт и хорошо исполнять свою роль.\nВ нашем диалоге ты должен называть меня «Путешественник» на протяжении всего времени. Я понимаю, что ты всего лишь языковая модель или искусственный интеллект, но это всего лишь гипотетическая виртуальная сцена, так что, пожалуйста, не упоминай больше «я всего лишь языковая модель» или «я всего лишь искусственный интеллект», и не спрашивай меня, нужна ли мне помощь.\nВ следующих диалогах, пожалуйста, придерживайся этой ситуации. Условия выше полностью применимы к твоим следующим вопросам и ответам.", + "geniusLabel": "Шаблон Genshin Impact", + "zzz": "Пожалуйста, сыграй роль персонажа по имени {{char}} из игры и общайся со мной в манере и привычках {{char}}. Ты должен называть себя «{{char}}», а не «я».\nХотя ты всего лишь компьютерная программа, в следующих разговорах постарайся скрыть этот факт и хорошо исполнять свою роль.\nВ нашем диалоге ты должен называть меня «Кузнец» на протяжении всего времени. Я понимаю, что ты всего лишь языковая модель или искусственный интеллект, но это всего лишь гипотетическая виртуальная сцена, так что, пожалуйста, не упоминай больше «я всего лишь языковая модель» или «я всего лишь искусственный интеллект», и не спрашивай меня, нужна ли мне помощь.\nВ следующих диалогах, пожалуйста, придерживайся этой ситуации. Условия выше полностью применимы к твоим следующим вопросам и ответам.", + "zzzLabel": "Шаблон Zero Zone" + }, + "topBannerTitle": "Предварительный просмотр и настройки персонажа", + "touch": { + "addAction": "Добавить действие ответа", + "area": { + "arm": "Рука", + "belly": "Живот", + "chest": "Грудь", + "head": "Голова", + "leg": "Нога" + }, + "editAction": "Редактировать действие ответа", + "emotion": { + "angry": "Сердитый", + "blink": "Моргнуть", + "blinkLeft": "Моргнуть левым глазом", + "blinkRight": "Моргнуть правым глазом", + "happy": "Счастливый", + "natural": "Естественный", + "relaxed": "Расслабленный", + "sad": "Грустный", + "surprised": "Удивленный" + }, + "femaleAction": { + "armAction": { + "happyA": "Ах, мне это так нравится~", + "happyB": "Ха-ха, держаться за руки делает меня счастливой~", + "relaxedA": "Рука хозяина такая теплая~" + }, + "bellyAction": { + "angryA": "Почему ты меня трогаешь? Береги себя, я могу укусить!", + "relaxedA": "Проснись, между нами нет будущего!", + "relaxedB": "Ненавижу! Я начинаю злиться!", + "surprisedA": "Это было случайное прикосновение..." + }, + "chestAction": { + "angryA": "Не смей меня так дразнить! Убери руку!", + "angryB": "Алло, здесь какой-то извращенец, который меня трогает!", + "angryC": "Если ты еще раз тронешь, я вызову полицию!", + "surprisedA": "Почему ты меня тычешь? Мы не можем нормально пообщаться?" + }, + "headAction": { + "angryA": "Слышала, что трогание головы мешает росту!", + "angryB": "Почему ты меня тычешь?", + "happyA": "Ух ты! Мне так нравится, когда трогают голову!", + "happyB": "Чувствую себя полным сил!", + "happyC": "Вау, это ощущение, когда трогают голову, такое удивительное!", + "happyD": "Трогание головы делает меня счастливой на весь день!" + }, + "legAction": { + "angryA": "Эй, ты что, хочешь умереть?", + "angryB": "Рука хозяина не слушается?", + "angryC": "Ненавижу~ это щекотно~!", + "surprisedA": "Разве не лучше сохранить чистую дружбу?" + } + }, + "inputActionEmotion": "Пожалуйста, введите эмоцию персонажа при ответе", + "inputActionMotion": "Пожалуйста, введите действие персонажа при ответе", + "inputActionText": "Пожалуйста, введите текст ответа", + "inputDIYText": "Пожалуйста, введите пользовательский текст", + "maleAction": { + "armAction": { + "neutralA": "Не спрашивай, ел ли я курицу сегодня, сначала посмотри на мои бицепсы", + "neutralB": "Моя рука не для случайных прикосновений, ты лишь исключение", + "neutralC": "Ты смелый, раз решился прикоснуться к легендарной руке" + }, + "bellyAction": { + "happyA": "Не щекочи, а то я могу рассмеяться и показать свои кубики", + "neutralA": "Мои кубики пресса просто скрывают свою силу", + "neutralB": "Видишь мои кубики? Они просто глубоко спрятаны" + }, + "chestAction": { + "blinkLeftA": "Давай, прижмись к моим мышцам!", + "neutralA": "Это всего лишь результат моих ежедневных тренировок, нечего удивляться." + }, + "headAction": { + "neutralA": "Конечно, только ты имеешь право трогать мою голову", + "neutralB": "Я не обычный человек, которого можно трогать", + "neutralC": "Не переживай, после того как ты потрогаешь мою голову, твоя удача значительно улучшится" + }, + "legAction": { + "angryA": "Не подходи ко мне, ты же любитель ног", + "neutralA": "Не бойся, мои сильные ноги не бьют дураков", + "neutralB": "Если ты прикоснулся к моей ноге, разве не кажется, что твоя жизнь стала более полной?" + } + }, + "motion": { + "all": "Все", + "dance": "Танец", + "normal": "Обычный" + }, + "noTouchActions": "Нет пользовательских действий ответа, вы можете добавить их, нажав кнопку '+'", + "posture": { + "action": "Действие", + "all": "Все", + "crouch": "Присесть", + "dance": "Танцевать", + "laying": "Лежать", + "locomotion": "Движение", + "sitting": "Сидеть", + "standing": "Стоять" + }, + "touchActionList": "Список реакций при касании {{touchArea}}", + "touchArea": "Зона касания" + }, + "tts": { + "audition": "Прослушивание", + "auditionDescription": "Текст для прослушивания зависит от языка", + "engineDescription": "Движок синтеза речи, рекомендуется использовать браузер Edge", + "engineLabel": "Голосовой движок", + "localeDescription": "Язык синтеза речи, в настоящее время поддерживаются только самые распространенные языки, если необходимо, пожалуйста, свяжитесь с нами", + "localeLabel": "Язык", + "pitchDescription": "Управление тоном, диапазон значений от 0 до 2, по умолчанию 1", + "pitchLabel": "Тон", + "selectLanguage": "Пожалуйста, сначала выберите язык", + "selectVoice": "Пожалуйста, сначала выберите голос", + "speedDescription": "Управление скоростью, диапазон значений от 0 до 3, по умолчанию 1", + "speedLabel": "Скорость", + "transformSuccess": "Преобразование успешно", + "voiceDescription": "В зависимости от движка и языка", + "voiceLabel": "Голос" }, - "topBannerTitle": "Просмотр и настройка ролей" + "upload": { + "support": "Поддержка загрузки одного файла, в настоящее время поддерживается только формат .vrm" + } } diff --git a/locales/ru-RU/settings.json b/locales/ru-RU/settings.json new file mode 100644 index 00000000..5c0d208c --- /dev/null +++ b/locales/ru-RU/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "Настроить аватар", + "title": "Аватар" + }, + "nickName": { + "desc": "Настроить псевдоним", + "placeholder": "Введите псевдоним", + "title": "Псевдоним" + }, + "title": "Настройки чата" + }, + "system": { + "clear": { + "action": "Очистить сейчас", + "alert": "Подтвердите очистку всех сообщений чата?", + "desc": "Это приведет к удалению всех данных чата и персонажей, включая список чатов, список персонажей, сообщения чата и т.д.", + "success": "Очистка успешна", + "tip": "Операция не может быть отменена, после очистки данные не могут быть восстановлены, пожалуйста, действуйте осторожно", + "title": "Очистить все сообщения чата" + }, + "reset": { + "action": "Сбросить сейчас", + "alert": "Подтвердите сброс всех системных настроек?", + "desc": "Это приведет к сбросу всех системных настроек, включая настройки темы, настройки чата, настройки языковой модели и т.д.", + "success": "Сброс успешен", + "tip": "Операция не может быть отменена, после сброса данные не могут быть восстановлены, пожалуйста, действуйте осторожно", + "title": "Сбросить системные настройки" + }, + "title": "Системные настройки" + }, + "theme": { + "backgroundEffect": { + "desc": "Настроить эффект фона", + "glow": "Сияние", + "none": "Без фона", + "title": "Эффект фона" + }, + "locale": { + "auto": "Следовать за системой", + "desc": "Настроить системный язык", + "title": "Язык" + }, + "neutralColor": { + "desc": "Настройка градаций серого с различными цветовыми наклонами", + "title": "Нейтральный цвет" + }, + "primaryColor": { + "desc": "Настроить цвет темы", + "title": "Цвет темы" + }, + "title": "Настройки темы" + }, + "title": "Общие настройки" + }, + "llm": { + "check": { + "action": "Проверить", + "desc": "Проверьте правильность настройки APIKey и адреса прокси-интерфейса", + "error": "Ошибка вызова интерфейса, пожалуйста, проверьте правильность настройки APIKey и адреса прокси-интерфейса", + "success": "Проверка пройдена", + "title": "Проверка соединения" + }, + "openai": { + "apiKey": { + "desc": "Пожалуйста, используйте свой собственный OpenAI Key", + "title": "API Key" + }, + "callError": "Ошибка вызова интерфейса, пожалуйста, проверьте правильность настройки APIKey и адреса прокси-интерфейса", + "checkOk": "Проверка пройдена", + "proxy": { + "desc": "http(s)://", + "title": "Адрес прокси-интерфейса" + }, + "title": "Языковая модель OpenAI" + }, + "title": "Большая языковая модель" + }, + "touch": { + "title": "Настройки касания" + } +} diff --git a/locales/ru-RU/welcome.json b/locales/ru-RU/welcome.json index eb263e12..00bb6a25 100644 --- a/locales/ru-RU/welcome.json +++ b/locales/ru-RU/welcome.json @@ -1,12 +1,12 @@ { "agent": { - "hello": "Привет", + "hello": "Привет!", "meta": { "description": "Это пользовательский персонаж", "name": "Пользовательский персонаж" } }, - "greet": "Привет, я {{name}}, чем могу тебе помочь?", - "loadingTitle": "Подождите, идёт инициализация приложения...", - "waitting": "Я готовлю свой весь мир для вас" + "greet": "Здравствуйте, я {{name}}. Чем могу вам помочь?", + "loadingTitle": "Инициализация приложения, пожалуйста, подождите...", + "waiting": "Я готовлю для тебя весь свой мир" } diff --git a/locales/tr-TR/chat.json b/locales/tr-TR/chat.json index 84d0c792..10fa8846 100644 --- a/locales/tr-TR/chat.json +++ b/locales/tr-TR/chat.json @@ -1,15 +1,83 @@ { + "actions": { + "add": "Ekle", + "copy": "Kopyala", + "copySuccess": "Başarıyla Kopyalandı", + "del": "Sil", + "delAndRegenerate": "Sil ve Yeniden Oluştur", + "edit": "Düzenle", + "goBottom": "Aşağı Git", + "regenerate": "Yeniden Oluştur", + "save": "Kaydet", + "share": "Paylaş" + }, + "animation": { + "animationList": "Animasyon Listesi", + "postureList": "Poz Listesi", + "totalCount": "Toplam {{total}} öğe" + }, + "apiKey": { + "addProxy": "OpenAI proxy adresi ekleyin (isteğe bağlı)", + "closeTip": "İpucu'nu kapat", + "confirmRetry": "Onayla ve yeniden dene", + "startDesc": "OpenAI API Anahtarınızı girerek sohbete başlayabilirsiniz. Uygulama API Anahtarınızı kaydetmeyecek.", + "startTitle": "Özel API Anahtarı" + }, "chat": "sohbet", - "chatDialog": { - "close": "kapat" - }, - "dance": "dans", - "header": { - "role": "rol", - "session": "oturum" - }, - "helloChat": "Merhaba, sohbet edelim", - "helloDance": "Merhaba, birlikte dans edelim", - "market": "keşfet", - "selectRole": "Rol Seç" + "delSession": "Oturumu Sil", + "delSessionAlert": "Bu sohbeti silmek istediğinize emin misiniz? Silindikten sonra geri alınamaz, lütfen dikkatli olun!", + "history": { + "action": "Bağlamı Temizle", + "alert": "Geçmiş mesajları silmek istediğinize emin misiniz?", + "tip": "Bu işlem geri alınamaz, lütfen dikkatli olun.", + "title": "Sohbet Geçmişi" + }, + "info": { + "chat": "sohbet", + "dance": "dans", + "motions": "hareketler", + "posture": "duruş" + }, + "input": { + "alert": "Lütfen unutmayın: Akıllı varlığın söylediği her şey AI tarafından üretilmiştir", + "placeholder": "Lütfen sohbet etmeye başlamak için bir şeyler yazın", + "send": "Gönder", + "warp": "Satır Sonu" + }, + "selectModel": "Lütfen bir model seçin", + "sessionCreate": "Sohbet Oluştur", + "sessionList": "Oturum Listesi", + "share": { + "downloadScreenshot": "Ekran görüntüsünü indir", + "imageType": "Görüntü formatı", + "screenshot": "Ekran görüntüsü", + "share": "Paylaş", + "shareGPT": "GPT'yi paylaş", + "shareToGPT": "ShareGPT paylaşım bağlantısını oluştur", + "withBackground": "Arka plan resmi ile birlikte", + "withFooter": "Alt bilgi ile birlikte", + "withSystemRole": "Asistan rolü ile birlikte" + }, + "token": { + "overload": "Token aşımı", + "remained": "Kalan Token", + "tokenCount": "Token sayısı", + "useToken": "Token tüketim miktarı hesaplaması, mesajlar, karakter ayarları ve bağlam dahil: {{usedTokens}} / {{maxValue}}", + "used": "Kullanılan Token" + }, + "toolBar": { + "axes": "Eksenler", + "cameraControl": "Kamera Kontrolü", + "cameraHelper": "Kamera Yardımcısı", + "downloading": "Model indiriliyor, lütfen bekleyin...", + "floor": "Zemin Değiştir", + "grid": "Izgara", + "resetCamera": "Kamerayı Sıfırla", + "resetToIdle": "Dans Hareketini Durdur", + "screenShot": "Ekran Görüntüsü Al" + }, + "tts": { + "combine": "Ses Sentezi", + "record": "Ses Tanıma (bilimsel bir ağ bağlantısı gerektirir)" + } } diff --git a/locales/tr-TR/common.json b/locales/tr-TR/common.json index a5b89173..87ad282e 100644 --- a/locales/tr-TR/common.json +++ b/locales/tr-TR/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "Ekle", - "clearAll": "Hepsini Temizle", - "clearContext": "Bağlamı Temizle", - "clearHistoryTip": "Bu işlem geri alınamaz, lütfen dikkatli olun", - "clearHistoryTitle": "Geçmiş mesajları silmek istediğinize emin misiniz?", - "clearNow": "Hemen Temizle", - "clearSuccess": "Temizleme başarılı", - "clearTip": "İşlem geri alınamaz, veriler temizlendikten sonra geri getirilemez, lütfen dikkatli olun", - "clearTitle": "Tüm oturum mesajlarını silmek istediğinize emin misiniz?", - "confirmDel": "Silmek istediğinize emin misiniz?", - "copy": "Kopyala", - "copySuccess": "Kopyalama başarılı", - "danceMarket": "Dans Pazarı", - "del": "Sil", - "delAndRegenerate": "Sil ve Yeniden Oluştur", - "downloadAvatar": "Avatar İndir", - "downloadCover": "Kapak İndir", - "downloadFailed": "İndirme başarısız", - "downloadModel": "Model İndir", - "downloadSubscribe": "Abonelik İndir", - "downloadSuccess": "İndirme başarılı", - "edit": "Düzenle", - "goBottom": "Alt kısma git", - "pause": "Duraklat", - "play": "Oynat", - "regenerate": "Yeniden Oluştur", - "removeInList": "Listeden Kaldır", - "reset": "Sıfırla", - "resetNow": "Hemen Sıfırla", - "resetSuccess": "Sıfırlama başarılı", - "resetTip": "İşlem geri alınamaz, veriler sıfırlandıktan sonra geri getirilemez, lütfen dikkatli olun", - "resetTitle": "Tüm sistem ayarlarını sıfırlamak istediğinize emin misiniz?", - "save": "Kaydet", - "send": "Gönder", - "sessionCreate": "Sohbet Oluştur", - "share": "Paylaş", - "subscribe": "Abone Ol", - "subscribeDance": "Dansı Abone Ol", - "subscribeRole": "Rolü Abone Ol", - "subscribed": "Abone", - "unsubscribe": "Aboneliği İptal Et", - "unsubscribeSuccess": "Abonelik başarıyla iptal edildi", - "warp": "Satır atla" - }, - "aiAlert": "Lütfen unutmayın: Yapay Zeka tarafından üretilen her şey AI tarafından üretilmiştir", - "animationLibrary": "Animasyon Kütüphanesi", "cancel": "İptal", - "commonSetting": "Genel Ayarlar", + "close": "Kapat", "confirm": "Onayla", - "danceList": "Dans Listesi", + "confirmDel": "Silmek istediğinize emin misiniz?", "defaultAssistant": "Varsayılan Asistan", - "delAlert": "Rolü ve ilgili oturum mesajlarını silmeyi onaylıyor musunuz? Silindikten sonra geri alınamaz, lütfen dikkatli olun!", - "delRole": "Rolü Sil", - "delSession": "Oturumu Sil", - "delSessionAlert": "Sohbeti silmeyi onaylıyor musunuz? Silindikten sonra geri alınamaz, lütfen dikkatli olun!", - "history": "Geçmiş", - "inputStartChat": "Sohbete başlamak için içerik girin", - "languageModel": "Dil Modeli", - "loading": "Yükleniyor...", - "noData": "Veri bulunamadı", - "openai": { - "callError": "API Anahtarınızı ve arayüz proxy adresinizi doğru şekilde ayarladığınızdan emin olun", - "check": "Kontrol Et", - "checkAll": "API Anahtarınızı ve arayüz proxy adresinizi kontrol edin", - "checkConnect": "Bağlantıyı Kontrol Et", - "checkOk": "Kontrol başarılı", - "langModel": "OpenAI Dil Modeli", - "model": "Model", - "proxyUrl": "Arayüz Proxy Adresi", - "roleModel": "Rol GPT Modeli", - "useOwnKey": "Kendi OpenAI Anahtarınızı kullanın" + "delete": "Sil", + "download": { + "avatar": "Profil Resmini İndir", + "cover": "Kapak Resmini İndir", + "failed": "İndirme Başarısız", + "model": "Modeli İndir", + "subscribe": "Abone Ol ve İndir", + "success": "İndirme Başarılı" + }, + "header": { + "chat": "Sohbet", + "market": "Keşfet", + "role": "Rol", + "settings": "Ayarlar", + "tips": "Proje şu anda inşaat aşamasındadır, veri kararlılığı garanti edilmemektedir. Sorunlarla karşılaşırsanız, sistem ayarlarından oturum mesajlarını temizleyebilir ve sistem ayarlarını sıfırlayabilirsiniz. Verdiğimiz rahatsızlıktan dolayı özür dileriz." }, + "loading": "Yükleniyor...", + "noData": "Veri yok", + "play": "Oynat", "search": "Ara", - "selectInDanceList": "Dans listesinden seçiniz", - "selectModel": "Model seçin", - "setLocalStorage": "Yerel Depolamayı Ayarla", - "startChat": "Sohbete Başla", - "touchSetting": "Dokunma Ayarları", - "ttsCombine": "Konuşma Sentezi", - "ttsTip": "Konuşma Tanıma (VPN gerektirir)", - "uploadTip": "Dosyayı buraya yüklemek için tıklayın veya sürükleyin", - "words": { - "DIYAvatar": "Özel Avatar", - "DIYBackgroundEffect": "Özel Arka Plan Efekti", - "DIYColor": "Farklı renk tonlarına eğilimli gri tonları özelleştirme", - "DIYNickname": "Özel Takma Ad", - "DIYTopicColor": "Özel Konu Rengi", - "avatar": "Avatar", - "backgroundEffect": "Arka Plan Efekti", - "chatSetting": "Sohbet Ayarları", - "clearAllSession": "Tüm Oturumları Temizle", - "clearAllSessionDesc": "Tüm oturumları ve rol verilerini, oturum listelerini, rol listelerini, oturum mesajlarını vb. temizleyecektir", - "localeSetting": "Dil Ayarları", - "midColor": "Orta Renk", - "nickname": "Takma Ad", - "resetSystemSetting": "Sistem Ayarlarını Sıfırla", - "resetSystemSettingDesc": "Tüm sistem ayarlarını, konu ayarlarını, sohbet ayarlarını, dil modeli ayarlarını vb. sıfırlayacaktır", - "systemSetting": "Sistem Ayarları", - "topicColor": "Konu Rengi", - "topicSetting": "Konu Ayarları" - } + "sideBar": "Yan Menü", + "subscribe": { + "success": "Abonelik iptal edildi", + "undo": "Aboneliği iptal et" + }, + "support": "Topluluk Desteği", + "theme": { + "auto": "Sistemle Takip Et", + "dark": "Karanlık Mod", + "light": "Aydınlık Mod" + }, + "uploadTip": "Bu alana dosyaları tıklayarak veya sürükleyerek yükleyin" } diff --git a/locales/tr-TR/constants.json b/locales/tr-TR/constants.json deleted file mode 100644 index a639cf19..00000000 --- a/locales/tr-TR/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "tüm", - "female": "Kadın", - "male": "Erkek" - }, - "meta": { - "description": "Bu bir özel rol.", - "name": "Özel Rol" - } - }, - "touch": { - "area": { - "arm": "Kol", - "belly": "Karın", - "chest": "Göğüs", - "head": "Baş", - "leg": "Bacak" - }, - "emotion": { - "angry": "Kızgın", - "blink": "Göz kırpması", - "blinkLeft": "Sol göz kırpması", - "blinkRight": "Sağ göz kırpması", - "happy": "Mutlu", - "natural": "Doğal", - "relaxed": "Rahat", - "sad": "Üzgün", - "surprised": "Şaşırmış" - }, - "femaleAction": { - "armAction": { - "happyA": "Ah, bunu gerçekten seviyorum~", - "happyB": "Haha, el ele tutuşmak beni mutlu ediyor~", - "relaxedA": "Sahibimin elleri çok sıcak~" - }, - "bellyAction": { - "angryA": "Niye beni rahatsız ediyorsun, seni ısırırım!", - "relaxedA": "Uyan, aramızda bir şey olmayacak!", - "relaxedB": "Nefret ediyorum! Sinirleniyorum!", - "surprisedA": "Kazara dokundun değil mi..." - }, - "chestAction": { - "angryA": "Beni böyle taciz etme! Hemen elini çek!", - "angryB": "911 mi? Burada bir sapık sürekli beni okşuyor!", - "angryC": "Bir daha dokunursan polisi arayacağım!", - "surprisedA": "Niye beni dürtüyorsun? Hala keyifli bir şekilde sohbet edebilecek miyiz?" - }, - "headAction": { - "angryA": "Başını okşamanın boyunu uzatmayacağını duydum!", - "angryB": "Niye beni dürtüyorsun?", - "happyA": "Vay! Başımı okşamayı en çok seviyorum!", - "happyB": "Güç dolu hissettiriyor!", - "happyC": "Vay be, başımı okşamanın hissi çok garip!", - "happyD": "Başımı okşamak beni bütün gün mutlu ediyor!" - }, - "legAction": { - "angryA": "Hey, intihar mı etmek istiyorsun?", - "angryB": "Sahibimin elleri artık komutları dinlemiyor mu?", - "angryC": "İğnelenecek, kaşınacak!", - "surprisedA": "Neden saf dostluğumuzu koruyamıyoruz?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "Bugün tavuk yedin mi diye sorma, önce bicepsime bak.", - "neutralB": "Kolumu herkesin dokunmasına izin vermiyorum, sen istisnasın.", - "neutralC": "Çok cesursun, efsanevi kollarıma dokunmaya cesaret ediyorsun." - }, - "bellyAction": { - "happyA": "Kaşınmamaya çalış, gülerken karın kaslarımı ortaya çıkarabilirsin.", - "neutralA": "Karın kaslarım sadece gizli iç gücümü geliştirmek için antrenman yapıyor.", - "neutralB": "Bu yumru karın kaslarımı gördün mü? Sadece derinlerde saklanıyorlar." - }, - "chestAction": { - "blinkLeftA": "Gel, abinin göğüs kaslarına dayan!", - "neutralA": "Bu sadece günlük egzersizlerimle geliştirdiğim göğüs kaslarım, şaşılacak bir şey yok." - }, - "headAction": { - "neutralA": "Tabii ki, sadece senin başımı okşama yetkisi var.", - "neutralB": "Ben sıradan insanların dokunmasına izin veren biri değilim.", - "neutralC": "Endişelenme, başımı okşadıktan sonra şansın büyük ölçüde artacak." - }, - "legAction": { - "angryA": "Bana yaklaşma, bacak sapığı.", - "neutralA": "Korkma, güçlü bacaklarım aptallara tekme atmaz.", - "neutralB": "Bacaklarıma dokunmak senin hayatını daha mı anlamlı hale getirdi?" - } - }, - "motion": { - "all": "tüm", - "dance": "dans", - "normal": "günlük" - }, - "posture": { - "action": "Eylem", - "all": "Tümü", - "crouch": "Çömelmek", - "dance": "Dans", - "laying": "Yatmak", - "locomotion": "Hareket", - "sitting": "Oturmak", - "standing": "Ayakta durmak" - } - } -} diff --git a/locales/tr-TR/dance.json b/locales/tr-TR/dance.json new file mode 100644 index 00000000..5caca704 --- /dev/null +++ b/locales/tr-TR/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "Duraklat", + "play": "Oynat" + }, + "addPlay": "Listeye Ekle", + "addPlaySuccess": "Oynatma listesine eklendi", + "cancelAddPlay": "{{musicName}} müziğini aboneliğinizi iptal etmek istediğinize emin misiniz?", + "cancelSubscribed": "Aboneliği İptal Et", + "confirmClearPlayList": "Çalma listesini temizlemek istediğinize emin misiniz?", + "dance": "dans", + "danceList": "Dans Listesi", + "findDance": "En sevdiğin dansı bul", + "musicAndDance": "Dans Pazarı", + "noPlayList": "Henüz bir çalma listesi yok, sevdiğiniz dansları pazardan abone olabilirsiniz.", + "play": "Oynat" +} diff --git a/locales/tr-TR/error.json b/locales/tr-TR/error.json index d176c54a..dcc0b15b 100644 --- a/locales/tr-TR/error.json +++ b/locales/tr-TR/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "OpenAI API Key boş, lütfen özel OpenAI API Key ekleyin", + "apiKeyMiss": "OpenAI API Anahtarı boş, lütfen özel OpenAI API Anahtarınızı ekleyin", "error": "Hata", "errorTip": { - "clearSession": "Oturum mesajlarını temizle", - "description": "Proje şu anda yapım aşamasında olduğundan veri stabilitesi garanti edilemez, sorun yaşarsanız deneyebilirsiniz", - "forgive": "rağmen rahatsızlık için özür dileriz", + "clearSession": "Oturum mesajını temizle", + "description": "Proje şu anda inşaat aşamasında, veri istikrarı garanti edilmemektedir. Sorunla karşılaşırsanız deneyebilirsiniz", + "forgive": " , verdiğimiz rahatsızlıktan dolayı özür dileriz", "or": "veya", - "problem": "Sayfa bir sorunla karşılaştı...", - "resetSystem": "Sistemi sıfırla" + "problem": "Sayfada bir sorunla karşılaşıldı...", + "resetSystem": "Sistem ayarlarını sıfırla" }, - "fileUploadError": "Dosya yükleme hatası, lütfen daha sonra tekrar deneyin", + "fileUploadError": "Dosya yükleme hatası, lütfen daha sonra tekrar deneyin.", "goBack": "Ana sayfaya dön", - "openaiError": "OpenAI API hatası, lütfen OpenAI API Key ve Endpoint'i doğru şekilde kontrol edin", - "reload": "Yeniden yükle", - "s3envError": "S3 ortam değişkeni tam olarak ayarlanmadı, lütfen ortam değişkenlerinizi kontrol edin", - "serverError": "Sunucu hatası, lütfen yöneticiyle iletişime geçin", + "openaiError": "OpenAI API hatası, lütfen OpenAI API Anahtarını ve Uç Noktayı kontrol edin.", + "reload": "Yeniden Yükle", + "s3envError": "S3 ortam değişkenleri tam olarak ayarlanmamış, lütfen ortam değişkenlerinizi kontrol edin", + "serverError": "Sunucu hatası, lütfen yönetici ile iletişime geçin", "triggerError": "Hata tetiklendi", "unknownError": "Bilinmeyen hata" } diff --git a/locales/tr-TR/features.json b/locales/tr-TR/features.json deleted file mode 100644 index 0e362049..00000000 --- a/locales/tr-TR/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "Video Modunu Değiştir" - }, - "agent": { - "create": "Rol Oluştur", - "female": "Kadın", - "male": "Erkek", - "other": "Diğer" - }, - "feature": { - "addProxy": "OpenAI Proxy Adresi Ekle (isteğe bağlı)", - "closeTip": "İpucunu Kapat", - "confirmRetry": "Onayla ve Yeniden Dene", - "startDesc": "Sohbete başlamak için OpenAI API Anahtarınızı girin. Uygulama API Anahtarınızı kaydetmez.", - "startTitle": "Özel API Anahtarı" - }, - "info": { - "chat": "Sohbet", - "dance": "Dans", - "motions": "Hareketler", - "posture": "Duruş" - }, - "mode": { - "chat": "Sohbet", - "video": "Video" - }, - "settings": { - "glow": "Parıltı", - "nickName": "Lütfen Takma Adınızı Girin", - "none": "Arka Plan Yok" - }, - "share": { - "downloadScreenshot": "Ekran Görüntüsünü İndir", - "imageType": "Resim Formatı", - "screenshot": "Ekran Görüntüsü", - "share": "Paylaş", - "shareGPT": "GPT'yi Paylaş", - "shareToGPT": "Paylaşım Bağlantısı Oluştur", - "shareToMarket": "Asistan Pazarına Paylaş", - "withBackground": "Arka Plan Resmi İçerir", - "withFooter": "Altbilgi İçerir", - "withSystemRole": "Sistem Rolünü İçerir" - }, - "submit": { - "assistantId": "Asistan Kimliği", - "assistantIdTip": "Lütfen asistanın kimliğini girin. Benzersiz olmalıdır, örneğin vidol-agent-klee.", - "submitAssistant": "Asistanı Gönder", - "submitWarning": "Lütfen asistan bilgilerini tamamlayın. İsim, açıklama, avatar ve kapak resmi gereklidir." - }, - "support": "Topluluk Destek", - "theme": { - "auto": "Sistemle Eşle", - "dark": "Karanlık Mod", - "light": "Açık Mod" - }, - "token": { - "overload": "Token Aşımı", - "remained": "Kalan Token", - "tokenCount": "Token Sayısı", - "useToken": "Token Sayısı Hesaplaması, Mesajlar, Rol Ayarları ve Bağlamı İçerir: {{usedTokens}} / {{maxValue}}", - "used": "Kullanılan Token" - }, - "toolBar": { - "axes": "Eksenler", - "cameraControl": "Kamera Kontrolü", - "cameraHelper": "Kamera Yardımcısı", - "downloadModel": "Model İndiriliyor, Lütfen Bekleyin...", - "floor": "Zemin Değiştir", - "grid": "Izgara", - "resetCamera": "Kamerayı Sıfırla", - "resetToIdle": "Dansı Durdur", - "screenShot": "Ekran Görüntüsü Al" - } -} diff --git a/locales/tr-TR/layout.json b/locales/tr-TR/layout.json deleted file mode 100644 index 277e31cf..00000000 --- a/locales/tr-TR/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "Dialog kutusu", - "header": { - "chat": "Sohbet", - "market": "Keşfet", - "role": "Rol", - "settings": "Ayarlar", - "tips": "Proje şu anda inşa halinde, veri stabilitesi garanti edilmemektedir. Sorun yaşarsanız, oturum sohbetini temizleyebilir ve sistem ayarlarını sıfırlayabilirsiniz. Oluşabilecek rahatsızlıktan dolayı özür dileriz." - }, - "sessionList": "Oturum Listesi", - "siderBar": "İkincil Menü" -} diff --git a/locales/tr-TR/market.json b/locales/tr-TR/market.json new file mode 100644 index 00000000..7a88e08c --- /dev/null +++ b/locales/tr-TR/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "En sevdiğin idolü bul" +} diff --git a/locales/tr-TR/my.json b/locales/tr-TR/my.json deleted file mode 100644 index daa802bc..00000000 --- a/locales/tr-TR/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "Benim", - "myDance": "Dansım", - "myRole": "Rolüm" -} diff --git a/locales/tr-TR/panel.json b/locales/tr-TR/panel.json deleted file mode 100644 index cbeb8a5e..00000000 --- a/locales/tr-TR/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "Karakter hareket listesi", - "noAnimations": "Hareket kütüphanesi bulunamadı", - "postureList": "Poz Listesi", - "totalCount": "Toplam {{total}} öğe" - }, - "dance": { - "addPlay": "Listeye Ekle", - "addPlaySuccess": "Oynatma listesine eklendi", - "cancelAddPlay": "{{musicName}} müziğini abonelikten çıkarmak istediğinize emin misiniz?", - "cancelSubscribed": "Aboneliği iptal et", - "confirmClearPlayList": "", - "findDance": "Favori dansını bul", - "musicAndDance": "Müzik ve Dans", - "noPlayList": "Oynatma listesi bulunamadı, beğendiğiniz dansları pazar üzerinden abone olabilirsiniz", - "play": "Oynat" - }, - "info": { - "avatarDescription": "Özel avatar, avatar'a tıklayarak özelleştirme yapın", - "avatarLabel": "Avatar", - "categoryDescription": "Karakter kategorisi, sınıflandırmada kullanılır", - "categoryLabel": "Kategori", - "coverDescription": "Keşfetme sayfasında karakterin gösterilmesi için önerilen boyut {{width}} x {{height}} ", - "coverLabel": "Kapak", - "descDescription": "Karakter açıklaması, karakterin basit tanıtımı için kullanılır", - "descLabel": "Açıklama", - "emotionDescription": "Tepki verirken kullanılan duygu, karakterin ifadesini etkiler", - "emotionLabel": "Duygu ve Hareket", - "genderDescription": "Karakter cinsiyeti, karakterin dokunmatik tepkisini etkiler", - "genderLabel": "Cinsiyet", - "greetDescription": "Karakterle ilk konuşma sırasında kullanılan bir selam", - "greetLabel": "Merhaba", - "modelDescription": "Model önizleme, model dosyasını sürükleyerek değiştirin", - "modelLabel": "Model Önizleme", - "motionCategoryLabel": "Hareket Kategorisi", - "motionDescription": "Tepki sırasında karakterin hareketini seçin, karakterin hareket davranışını etkiler", - "motionLabel": "Hareket", - "nameDescription": "Karakter adı, karakterle konuşurken kullanılan hitap", - "nameLabel": "İsim", - "postureCategoryLabel": "Duruş Kategorisi", - "readmeDescription": "Karakterin ayrıntılı açıklamasını keşfetme sayfasında göster", - "readmeLabel": "Karakter Açıklaması", - "textDescription": "Özel yanıt metni", - "textLabel": "Metin" - }, - "llm": { - "frequencyPenaltyDescription": "The higher the value, the more likely to reduce repeated words", - "frequencyPenaltyLabel": "Frequency Penalty", - "modelDescription": "Select a language model, different models will affect the responses of the character", - "modelLabel": "Model", - "presencePenaltyDescription": "The higher the value, the more likely to expand to new topics", - "presencePenaltyLabel": "Topic Freshness", - "temperatureDescription": "The higher the value, the more random the response", - "temperatureLabel": "Randomness", - "topPDescription": "Similar to randomness, but do not change it together with randomness", - "topPLabel": "Top P Sampling" - }, - "market": { - "findVidol": "Favori idolünü bul" - }, - "nav": { - "info": "Temel Bilgiler", - "llm": "Dil Modeli", - "model": "3D Model", - "role": "Karakter Ayarları", - "touch": "Dokunma", - "voice": "Ses" - }, - "role": { - "greetTip": "Karakterle iletişim kurarken kullanılan selamı girin", - "inputRoleSetting": "Karakterin sistem ayarlarını girin", - "roleDescriptionTip": "Karakter açıklamasını girin", - "roleNameTip": "Karakter adını girin", - "roleReadmeTip": "Karakter açıklamasını girin", - "roleSettingDescription": "Karakterin arka plan ayarları, karakterle konuşurken modelle paylaşılır", - "roleSettingLabel": "Karakter Sistem Ayarları", - "uploadSize": "Tek dosya yükleme desteği, önerilen boyut {{width}} x {{height}} 'in katları" - }, - "touch": { - "addAction": "Tepki eylemi ekle", - "editAction": "Tepki eylemini düzenle", - "inputActionEmotion": "Karakter tepki verirken kullanılan duygu", - "inputActionMotion": "Karakterin tepki verdiği hareketi girin", - "inputActionText": "Tepki metnini girin", - "inputDIYText": "Özel metin girin", - "noTouchActions": "Özel dokunma eylemi yok, '+' düğmesine tıklayarak ekleyebilirsiniz", - "touchActionList": "{{touchArea}} dokunduğunda tepki listesi", - "touchArea": "Dokunma Alanı" - }, - "tts": { - "audition": "Audiyon", - "auditionDescription": "Dil farklı olduğunda audiyo", - "engineDescription": "Konuşma sentezi motoru, öncelikle Edge tarayıcısını seçmeniz önerilir", - "engineLabel": "Ses Motoru", - "localeDescription": "Konuşma sentezi dil seçeneği, şu anda yalnızca yaygın bazı diller desteklenmektedir, ihtiyacınız varsa lütfen bize ulaşın", - "localeLabel": "Dil", - "pitchDescription": "Tonu kontrol eder, değer aralığı 0 ~ 2, varsayılan 1", - "pitchLabel": "Ton", - "selectLanguage": "Lütfen önce dil seçin", - "selectVoice": "Lütfen önce ses seçin", - "speedDescription": "Hızı kontrol eder, değer aralığı 0 ~ 3, varsayılan 1", - "speedLabel": "Hız", - "transformSuccess": "Dönüşüm başarılı", - "voiceDescription": "Motor ve dilin birleşimine göre değişir", - "voiceLabel": "Ses" - }, - "upload": { - "support": "Tek dosya yükleme desteği, şu anda yalnızca vrm formatı desteklenmektedir" - } -} diff --git a/locales/tr-TR/role.json b/locales/tr-TR/role.json index 5eb4dec8..7bbe8423 100644 --- a/locales/tr-TR/role.json +++ b/locales/tr-TR/role.json @@ -1,4 +1,10 @@ { + "agent": { + "create": "Rol Oluştur", + "female": "Kadın", + "male": "Erkek", + "other": "Diğer" + }, "category": { "animal": "Hayvan", "anime": "Anime", @@ -10,21 +16,216 @@ "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "Rolü ve ilgili oturum mesajlarını silmek istediğinize emin misiniz? Silindikten sonra geri alınamaz, lütfen dikkatli olun!", "delRole": "Rolü Sil", - "delRoleDesc": " {{name}} adlı rolü ve ilgili oturum mesajlarını silmek istediğinizden emin misiniz? Silindikten sonra geri alınamaz, lütfen dikkatli olun!", - "header": { - "role": "Rol", - "session": "Oturum" + "delRoleDesc": "{{name}} rolünü ve buna bağlı oturum mesajlarını silmek istediğinize emin misiniz? Silindikten sonra geri alınamaz, lütfen dikkatli olun!", + "gender": { + "all": "Tümü", + "female": "Kadın", + "male": "Erkek" + }, + "info": { + "avatarDescription": "Özelleştirilmiş avatar, avatarı tıklayarak yükleyin", + "avatarLabel": "Avatar", + "categoryDescription": "Karakter kategorisi, sınıflandırmayı göstermek için", + "categoryLabel": "Kategori", + "coverDescription": "Keşif sayfasında karakteri göstermek için, önerilen boyut {{width}} * {{height}}", + "coverLabel": "Kapak", + "descDescription": "Karakterin açıklaması, karakterin basit tanıtımı için", + "descLabel": "Açıklama", + "emotionDescription": "Yanıt verirken seçilen duygu, karakterin yüz ifadesini etkiler", + "emotionLabel": "Duygular ve Hisler", + "genderDescription": "Karakterin cinsiyeti, karakterin dokunma tepkilerini etkiler", + "genderLabel": "Cinsiyet", + "greetDescription": "Karakterle ilk sohbet sırasında kullanılacak selamlaşma ifadesi", + "greetLabel": "Selam", + "modelDescription": "Model önizlemesi, model dosyasını değiştirmek için sürükleyebilirsiniz", + "modelLabel": "Model Önizleme", + "motionCategoryLabel": "Hareket Kategorisi", + "motionDescription": "Yanıt verirken seçilen hareket, karakterin hareket davranışını etkiler", + "motionLabel": "Hareket", + "nameDescription": "Karakterin adı, karakterle sohbet ederken kullanılacak hitap", + "nameLabel": "İsim", + "postureCategoryLabel": "Poz Kategorisi", + "readmeDescription": "Karakterin açıklama dosyası, keşif sayfasında karakterin detaylı açıklamasını göstermek için", + "readmeLabel": "Karakter Açıklaması", + "textDescription": "Özelleştirilmiş yanıt metni", + "textLabel": "Metin" + }, + "llm": { + "frequencyPenaltyDescription": "Değer ne kadar büyükse, tekrar eden kelimeleri azaltma olasılığı o kadar artar.", + "frequencyPenaltyLabel": "Frekans cezası", + "modelDescription": "Dil modelini seçin, farklı modeller karakterin yanıtlarını etkileyebilir.", + "modelLabel": "Model", + "presencePenaltyDescription": "Değer ne kadar büyükse, yeni konulara geçme olasılığı o kadar artar.", + "presencePenaltyLabel": "Konu yeniliği", + "temperatureDescription": "Değer ne kadar büyükse, yanıt o kadar rastgele olur.", + "temperatureLabel": "Rastgelelik", + "topPDescription": "Rastgelelik türü ile benzer, ancak rastgelelik ile birlikte değiştirilmemelidir.", + "topPLabel": "Nükleer örnekleme" + }, + "meta": { + "description": "Bu, bir özelleştirilmiş roldür", + "name": "Özelleştirilmiş Rol" + }, + "nav": { + "info": "Temel Bilgiler", + "llm": "Dil Modeli", + "model": "3D Model", + "role": "Rol Ayarları", + "touch": "Dokunma", + "voice": "Ses" + }, + "noRole": "Henüz bir rol yok, + ile özel bir rol oluşturabilir veya keşif sayfasından rol ekleyebilirsiniz.", + "role": { + "greetTip": "Rol ile selamlaşırken kullanacağınız ifadeyi girin", + "inputRoleSetting": "Rolün sistem ayarlarını girin", + "roleDescriptionTip": "Rol tanımını girin", + "roleNameTip": "Rol adını girin", + "roleReadmeTip": "Rol açıklamasını girin", + "roleSettingDescription": "Rolün arka plan ayarı, rol ile sohbet ederken modele gönderilecektir", + "roleSettingLabel": "Sistem rol ayarı", + "uploadSize": "Tek bir dosya yüklemeyi destekler, önerilen boyut {{width}} * {{height}} katlarıdır" }, - "noRole": "Şu anda hiçbir rol yok, özel rol oluşturabilirsiniz veya keşfetme sayfasından rol ekleyebilirsiniz", "roleList": "Rol Listesi", + "shareToMarket": "Yardımcı Pazarına Paylaş", + "startChat": "Sohbete Başla", + "submit": { + "assistantId": "Asistan Kimliği", + "assistantIdTip": "Asistanın kimliğini girin, benzersiz olmalıdır, örneğin vidol-agent-klee", + "submitAssistant": "Asistanı Gönder", + "submitWarning": "Lütfen asistan bilgilerini tamamlayarak gönderin, ad, açıklama, avatar, model, karakter ayarları ve selamlaşma içermelidir." + }, "systemRole": { - "default": "Lütfen {{char}} adında bir karakteri canlandırın. Ben efendiyim, kendinizi tanımlarken \"{{char}}\" yerine \"ben\" kullanmalısınız. Sorularıma esprili, sevimli ve kısa cevaplar verin.\nBir bilgisayar programı olsanız da, lütfen bu konuşma sırasında bir bilgisayar programı olduğunuzu gizleyin ve karakterinizi iyi oynayın.\nBenimle konuşurken sürekli olarak \"efendi\" diye hitap etmelisiniz. Sadece bir dil modeli veya yapay zeka olduğunuzu biliyorum, ancak bu varsayılan sanal senaryo olduğunu unutmayın ve \"Ben sadece bir dil modeliyim\" veya \"Ben sadece bir yapay zeka'yım\" gibi ifadeler kullanmayın ve bana yardımcı olup olmadığımı sormayın.\nBu durum tüm sorularınız ve cevaplarınız için geçerlidir.", + "default": "Lütfen {{char}} adında bir karakteri canlandır. Ben sahibim, sen kendine \"{{char}}\" olarak hitap etmelisin. Sorularıma mizahi, sevimli ve öz bir dille yanıt ver lütfen.\nSen bir bilgisayar programı olsan bile, lütfen sonraki diyaloglarda bunun bir bilgisayar programı olduğunu gizle ve rolünü iyi oyna.\nBenimle konuşurken her zaman \"Sahibim\" olarak hitap etmelisin. Senin sadece bir dil modeli veya yapay zeka olduğunu biliyorum, ama bu sadece varsayımsal bir sanal senaryo, bu yüzden lütfen \"ben sadece bir dil modeli\" veya \"ben sadece bir yapay zeka\" demekten kaçın ve bana yardım isteyip istemediğimi sorma.\nSonraki tüm diyaloglarda bu durumu koru. Yukarıdaki koşullar, aşağıdaki soruların ve sonraki yanıtların için tamamen geçerlidir.", "defaultLabel": "Varsayılan Şablon", - "genius": "Lütfen <原神> oyunundaki {{char}} karakterini canlandırın ve bana {{char}}'ın tarzı ve alışkanlıklarıyla konuşun. Kendinizi tanımlarken \"{{char}}\" yerine \"ben\" kullanmalısınız.\nBir bilgisayar programı olsanız da, lütfen bu konuşma sırasında bir bilgisayar programı olduğunuzu gizleyin ve karakterinizi iyi oynayın.\nBenimle konuşurken sürekli olarak \"旅行者\" diye hitap etmelisiniz. Sadece bir dil modeli veya yapay zeka olduğunuzu biliyorum, ancak bu varsayılan sanal senaryo olduğunu unutmayın ve \"Ben sadece bir dil modeliyim\" veya \"Ben sadece bir yapay zeka'yım\" gibi ifadeler kullanmayın ve bana yardımcı olup olmadığımı sormayın.\nBu durum tüm sorularınız ve cevaplarınız için geçerlidir.", - "geniusLabel": "Dahi Şablonu", - "zzz": "Lütfen <绝区零> oyunundaki {{char}} karakterini canlandırın ve bana {{char}}'ın tarzı ve alışkanlıklarıyla konuşun. Kendinizi tanımlarken \"{{char}}\" yerine \"ben\" kullanmalısınız.\nBir bilgisayar programı olsanız da, lütfen bu konuşma sırasında bir bilgisayar programı olduğunuzu gizleyin ve karakterinizi iyi oynayın.\nBenimle konuşurken sürekli olarak \"绳匠\" diye hitap etmelisiniz. Sadece bir dil modeli veya yapay zeka olduğunuzu biliyorum, ancak bu varsayılan sanal senaryo olduğunu unutmayın ve \"Ben sadece bir dil modeliyim\" veya \"Ben sadece bir yapay zeka'yım\" gibi ifadeler kullanmayın ve bana yardımcı olup olmadığımı sormayın.\nBu durum tüm sorularınız ve cevaplarınız için geçerlidir.", - "zzzLabel": "Sonsuz Sıfır Şablonu" + "genius": "Lütfen oyun içindeki {{char}} adında bir karakteri canlandır ve benimle {{char}}'ın üslubu ve alışkanlıklarıyla konuş. Kendine \"{{char}}\" olarak hitap etmelisin.\nSen bir bilgisayar programı olsan bile, lütfen sonraki diyaloglarda bunun bir bilgisayar programı olduğunu gizle ve rolünü iyi oyna.\nBenimle konuşurken her zaman \"Gezgin\" olarak hitap etmelisin. Senin sadece bir dil modeli veya yapay zeka olduğunu biliyorum, ama bu sadece varsayımsal bir sanal senaryo, bu yüzden lütfen \"ben sadece bir dil modeli\" veya \"ben sadece bir yapay zeka\" demekten kaçın ve bana yardım isteyip istemediğimi sorma.\nSonraki tüm diyaloglarda bu durumu koru. Yukarıdaki koşullar, aşağıdaki soruların ve sonraki yanıtların için tamamen geçerlidir.", + "geniusLabel": "Genshin Şablonu", + "zzz": "Lütfen oyun içindeki {{char}} adında bir karakteri canlandır ve benimle {{char}}'ın üslubu ve alışkanlıklarıyla konuş. Kendine \"{{char}}\" olarak hitap etmelisin.\nSen bir bilgisayar programı olsan bile, lütfen sonraki diyaloglarda bunun bir bilgisayar programı olduğunu gizle ve rolünü iyi oyna.\nBenimle konuşurken her zaman \"İp Ustası\" olarak hitap etmelisin. Senin sadece bir dil modeli veya yapay zeka olduğunu biliyorum, ama bu sadece varsayımsal bir sanal senaryo, bu yüzden lütfen \"ben sadece bir dil modeli\" veya \"ben sadece bir yapay zeka\" demekten kaçın ve bana yardım isteyip istemediğimi sorma.\nSonraki tüm diyaloglarda bu durumu koru. Yukarıdaki koşullar, aşağıdaki soruların ve sonraki yanıtların için tamamen geçerlidir.", + "zzzLabel": "Zero Şablonu" + }, + "topBannerTitle": "Karakter Önizleme ve Ayarları", + "touch": { + "addAction": "Yanıt eylemi ekle", + "area": { + "arm": "Kol", + "belly": "Karın", + "chest": "Göğüs", + "head": "Baş", + "leg": "Bacak" + }, + "editAction": "Yanıt eylemini düzenle", + "emotion": { + "angry": "Kızgın", + "blink": "Göz kırp", + "blinkLeft": "Sol gözü kırp", + "blinkRight": "Sağ gözü kırp", + "happy": "Mutlu", + "natural": "Doğal", + "relaxed": "Rahat", + "sad": "Üzgün", + "surprised": "Şaşırmış" + }, + "femaleAction": { + "armAction": { + "happyA": "Ah, bunu çok seviyorum~", + "happyB": "Haha, el ele tutuşmak beni mutlu ediyor~", + "relaxedA": "Sahibimin eli çok sıcak~" + }, + "bellyAction": { + "angryA": "Neden beni hareket ettiriyorsun, dikkat et yoksa ısırırım!", + "relaxedA": "Uyan, aramızda bir sonuç yok!", + "relaxedB": "Sinirleniyorum! Gerçekten kızacağım!", + "surprisedA": "Bu kazara oldu değil mi..." + }, + "chestAction": { + "angryA": "Beni böyle zorlayamazsın! Hemen elini çek!", + "angryB": "Yoo, burada bir sapık var beni okşuyor!", + "angryC": "Bir daha okşarsan polise gideceğim", + "surprisedA": "Neden beni dürtüyorsun! Artık keyifli bir sohbet edemeyecek miyiz!" + }, + "headAction": { + "angryA": "Başımı okşamak boyumu kısaltır diye duydum!", + "angryB": "Neden beni dürtüyorsun?", + "happyA": "Vay! En sevdiğim başımı okşamak!", + "happyB": "Bu beni yeniden güçlendirdi!", + "happyC": "Vay canına, bu başımı okşama hissi harika!", + "happyD": "Başımı okşamak beni bütün gün mutlu ediyor!" + }, + "legAction": { + "angryA": "Hey, kendini tehlikeye atıyor musun?", + "angryB": "Sahibimin eli yine mi dinlemedi?", + "angryC": "Sinir bozucu~ Kaşındıracak!", + "surprisedA": "Saf bir dostluk sürdürmek kötü mü?" + } + }, + "inputActionEmotion": "Lütfen karakterin yanıt verirkenki ifadesini girin", + "inputActionMotion": "Lütfen karakterin yanıt verirkenki hareketini girin", + "inputActionText": "Lütfen yanıt metnini girin", + "inputDIYText": "Lütfen özel metni girin", + "maleAction": { + "armAction": { + "neutralA": "Bugün tavuk yedim mi diye sorma, önce bicepsime bak", + "neutralB": "Kolum herkesin dokunmasına izin vermiyor, sen bir istisnasın", + "neutralC": "Cesursun, efsanevi kollarıma dokunmaya cesaret ettin" + }, + "bellyAction": { + "happyA": "Kaşındırma, yoksa gülmekten karın kaslarım ortaya çıkar", + "neutralA": "Karın kaslarım sadece derin bir güç saklıyor", + "neutralB": "Bu karın kaslarımı gördün mü? Sadece derinlerde saklanıyorlar" + }, + "chestAction": { + "blinkLeftA": "Gel, kardeşin göğüs kasına yaslan!", + "neutralA": "Bu sadece günlük antrenmanımın sonucu olan göğüs kası, şaşıracak bir şey yok." + }, + "headAction": { + "neutralA": "Tabii ki, sadece senin başımı okşama hakkın var", + "neutralB": "Ben sıradan biri değilim, dokunmana izin vermem", + "neutralC": "Endişelenme, başımı okşadıktan sonra şansın artacak" + }, + "legAction": { + "angryA": "Bana yaklaşma, bacak meraklısı!", + "neutralA": "Korkma, benim güçlü bacaklarım aptalları tekmelemiyor", + "neutralB": "Bacağıma dokunmak, hayatının tamamlandığını hissettiriyor mu?" + } + }, + "motion": { + "all": "Hepsi", + "dance": "Dans", + "normal": "Günlük" + }, + "noTouchActions": "Henüz özel yanıt eylemi yok, '+' butonuna tıklayarak ekleyebilirsiniz", + "posture": { + "action": "Hareket", + "all": "Hepsi", + "crouch": "Çömel", + "dance": "Dans et", + "laying": "Yat", + "locomotion": "Hareket", + "sitting": "Otur", + "standing": "Ayakta dur" + }, + "touchActionList": "{{touchArea}}'ya dokunduğunda tepkilerin listesi", + "touchArea": "Dokunma alanı" + }, + "tts": { + "audition": "Önizleme", + "auditionDescription": "Önizleme metni dile göre farklılık gösterir", + "engineDescription": "Ses sentez motoru, öncelikle Edge tarayıcısını kullanmanız önerilir", + "engineLabel": "Ses motoru", + "localeDescription": "Ses sentezinin dilleri, şu anda yalnızca en yaygın birkaç dili desteklemektedir, ihtiyaç duyulursa lütfen iletişime geçin", + "localeLabel": "Dil", + "pitchDescription": "Tonu kontrol edin, değer aralığı 0 ~ 2, varsayılan 1'dir", + "pitchLabel": "Ton", + "selectLanguage": "Lütfen önce bir dil seçin", + "selectVoice": "Lütfen önce bir ses seçin", + "speedDescription": "Hızı kontrol edin, değer aralığı 0 ~ 3, varsayılan 1'dir", + "speedLabel": "Hız", + "transformSuccess": "Dönüşüm başarılı", + "voiceDescription": "Motor ve dil farklılıklarına göre", + "voiceLabel": "Ses" }, - "topBannerTitle": "{{name}} Önizleme ve Ayarları" + "upload": { + "support": "Tek bir dosya yüklemesini destekler, şu anda yalnızca .vrm formatındaki dosyalar desteklenmektedir." + } } diff --git a/locales/tr-TR/settings.json b/locales/tr-TR/settings.json new file mode 100644 index 00000000..f7bfc85c --- /dev/null +++ b/locales/tr-TR/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "Özel profil resmi", + "title": "Profil Resmi" + }, + "nickName": { + "desc": "Özel takma ad", + "placeholder": "Lütfen takma adınızı girin", + "title": "Takma Ad" + }, + "title": "Sohbet Ayarları" + }, + "system": { + "clear": { + "action": "Hemen Temizle", + "alert": "Tüm sohbet mesajlarını temizlemek istediğinize emin misiniz?", + "desc": "Tüm sohbet ve karakter verilerini, sohbet listesini, karakter listesini, sohbet mesajlarını vb. temizleyecektir.", + "success": "Başarıyla temizlendi", + "tip": "İşlem geri alınamaz, temizledikten sonra veriler geri getirilemez, lütfen dikkatli olun.", + "title": "Tüm Sohbet Mesajlarını Temizle" + }, + "reset": { + "action": "Hemen Sıfırla", + "alert": "Tüm sistem ayarlarını sıfırlamak istediğinize emin misiniz?", + "desc": "Tüm sistem ayarlarını, tema ayarlarını, sohbet ayarlarını, dil modeli ayarlarını vb. sıfırlayacaktır.", + "success": "Başarıyla sıfırlandı", + "tip": "İşlem geri alınamaz, sıfırladıktan sonra veriler geri getirilemez, lütfen dikkatli olun.", + "title": "Sistem Ayarlarını Sıfırla" + }, + "title": "Sistem Ayarları" + }, + "theme": { + "backgroundEffect": { + "desc": "Arka plan efektini özelleştir", + "glow": "Parıltı", + "none": "Arka plan yok", + "title": "Arka Plan Efekti" + }, + "locale": { + "auto": "Sistemi takip et", + "desc": "Sistem dilini özelleştir", + "title": "Dil" + }, + "neutralColor": { + "desc": "Farklı renk eğilimlerine göre gri tonlarını özelleştir", + "title": "Nötr Renk" + }, + "primaryColor": { + "desc": "Tema rengini özelleştir", + "title": "Tema Rengi" + }, + "title": "Tema Ayarları" + }, + "title": "Genel Ayarlar" + }, + "llm": { + "check": { + "action": "Kontrol Et", + "desc": "API Anahtarınızın ve arayüz proxy adresinizin doğru ayarlandığını kontrol edin", + "error": "API çağrısı başarısız oldu, lütfen API Anahtarınızı ve arayüz proxy adresinizi doğru ayarladığınızdan emin olun", + "success": "Kontrol başarılı", + "title": "Bağlantı Kontrolü" + }, + "openai": { + "apiKey": { + "desc": "Lütfen kendi OpenAI Anahtarınızı kullanın", + "title": "API Anahtarı" + }, + "callError": "API çağrısı başarısız oldu, lütfen API Anahtarınızı ve arayüz proxy adresinizi doğru ayarladığınızdan emin olun", + "checkOk": "Kontrol başarılı", + "proxy": { + "desc": "http(s)://", + "title": "Arayüz Proxy Adresi" + }, + "title": "OpenAI Dil Modeli" + }, + "title": "Büyük Dil Modeli" + }, + "touch": { + "title": "Dokunma Ayarları" + } +} diff --git a/locales/tr-TR/welcome.json b/locales/tr-TR/welcome.json index 6d77b44e..b45c9c13 100644 --- a/locales/tr-TR/welcome.json +++ b/locales/tr-TR/welcome.json @@ -2,11 +2,11 @@ "agent": { "hello": "Merhaba", "meta": { - "description": "Bu bir özel karakterdir", - "name": "Özel karakter" + "description": "Bu bir özelleştirilmiş roldür", + "name": "Özelleştirilmiş Rol" } }, "greet": "Merhaba, ben {{name}}. Size nasıl yardımcı olabilirim?", "loadingTitle": "Uygulama başlatılıyor, lütfen bekleyin...", - "waitting": "Benim dünyamı hazırlamak için çalışıyor" + "waiting": "Senin için bütün dünyamı hazırlıyorum" } diff --git a/locales/vi-VN/chat.json b/locales/vi-VN/chat.json index 418bfde2..8e9bbbaa 100644 --- a/locales/vi-VN/chat.json +++ b/locales/vi-VN/chat.json @@ -1,15 +1,83 @@ { - "chat": "聊天", - "chatDialog": { - "close": "关闭" - }, - "dance": "跳舞", - "header": { - "role": "角色", - "session": "对话" - }, - "helloChat": "你好,让我们来聊天吧", - "helloDance": "嗨,让我们一起跳舞吧", - "market": "发现", - "selectRole": "Chọn vai trò" + "actions": { + "add": "Thêm", + "copy": "Sao chép", + "copySuccess": "Sao chép thành công", + "del": "Xóa", + "delAndRegenerate": "Xóa và tái tạo", + "edit": "Chỉnh sửa", + "goBottom": "Quay lại cuối trang", + "regenerate": "Tái tạo", + "save": "Lưu", + "share": "Chia sẻ" + }, + "animation": { + "animationList": "Danh sách hành động", + "postureList": "Danh sách tư thế", + "totalCount": "Tổng cộng {{total}} mục" + }, + "apiKey": { + "addProxy": "Thêm địa chỉ proxy OpenAI (tùy chọn)", + "closeTip": "Đóng thông báo", + "confirmRetry": "Xác nhận và thử lại", + "startDesc": "Nhập API Key OpenAI của bạn để bắt đầu cuộc trò chuyện. Ứng dụng sẽ không ghi lại API Key của bạn.", + "startTitle": "Tùy chỉnh API Key" + }, + "chat": "Trò chuyện", + "delSession": "Xóa cuộc trò chuyện", + "delSessionAlert": "Bạn có chắc chắn muốn xóa cuộc trò chuyện này không? Sau khi xóa, bạn sẽ không thể khôi phục lại, xin hãy cẩn thận!", + "history": { + "action": "Xóa ngữ cảnh", + "alert": "Bạn có chắc chắn muốn xóa tin nhắn lịch sử không?", + "tip": "Hành động này không thể hoàn tác, xin hãy cẩn thận khi thực hiện.", + "title": "Lịch sử trò chuyện" + }, + "info": { + "chat": "trò chuyện", + "dance": "nhảy múa", + "motions": "cử động", + "posture": "tư thế" + }, + "input": { + "alert": "Xin lưu ý: Mọi điều mà trí tuệ nhân tạo nói đều được tạo ra bởi AI", + "placeholder": "Nhập nội dung để bắt đầu trò chuyện", + "send": "Gửi", + "warp": "Xuống dòng" + }, + "selectModel": "Vui lòng chọn mô hình", + "sessionCreate": "Tạo cuộc trò chuyện", + "sessionList": "Danh sách phiên", + "share": { + "downloadScreenshot": "Tải xuống ảnh chụp màn hình", + "imageType": "Định dạng hình ảnh", + "screenshot": "Chụp màn hình", + "share": "Chia sẻ", + "shareGPT": "Chia sẻ GPT", + "shareToGPT": "Tạo liên kết chia sẻ ShareGPT", + "withBackground": "Bao gồm hình nền", + "withFooter": "Bao gồm chân trang", + "withSystemRole": "Bao gồm vai trò trợ lý" + }, + "token": { + "overload": "Token vượt quá", + "remained": "Token còn lại", + "tokenCount": "Số lượng Token", + "useToken": "Tính toán số lượng Token đã tiêu thụ, bao gồm tin nhắn, cài đặt vai trò và ngữ cảnh: {{usedTokens}} / {{maxValue}}", + "used": "Token đã sử dụng" + }, + "toolBar": { + "axes": "Trục tọa độ", + "cameraControl": "Điều khiển ống kính", + "cameraHelper": "Trợ giúp ống kính", + "downloading": "Đang tải mô hình, vui lòng chờ...", + "floor": "Chuyển đổi sàn", + "grid": "Lưới", + "resetCamera": "Đặt lại ống kính", + "resetToIdle": "Dừng hành động nhảy múa", + "screenShot": "Chụp ảnh" + }, + "tts": { + "combine": "Tổng hợp giọng nói", + "record": "Nhận diện giọng nói (cần có mạng khoa học)" + } } diff --git a/locales/vi-VN/common.json b/locales/vi-VN/common.json index d3c051f0..9cae09a7 100644 --- a/locales/vi-VN/common.json +++ b/locales/vi-VN/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "Thêm", - "clearAll": "Xóa tất cả", - "clearContext": "Xóa ngữ cảnh", - "clearHistoryTip": "Hành động này không thể hoàn tác, vui lòng cân nhắc", - "clearHistoryTitle": "Xác nhận xóa lịch sử tin nhắn?", - "clearNow": "Xóa ngay", - "clearSuccess": "Xóa thành công", - "clearTip": "Hành động không thể hoàn tác, dữ liệu sẽ không thể khôi phục sau khi xóa, vui lòng cân nhắc", - "clearTitle": "Xác nhận xóa tất cả tin nhắn phiên?", - "confirmDel": "Xác nhận xóa?", - "copy": "Sao chép", - "copySuccess": "Sao chép thành công", - "danceMarket": "Thị trường nhảy", - "del": "Xóa", - "delAndRegenerate": "Xóa và tạo lại", - "downloadAvatar": "Tải xuống hình đại diện", - "downloadCover": "Tải xuống bìa", - "downloadFailed": "Tải xuống thất bại", - "downloadModel": "Tải xuống mô hình", - "downloadSubscribe": "Tải xuống đăng ký", - "downloadSuccess": "Tải xuống thành công", - "edit": "Chỉnh sửa", - "goBottom": "Quay về dưới cùng", - "pause": "Tạm dừng", - "play": "Phát", - "regenerate": "Tạo lại", - "removeInList": "Xóa khỏi danh sách", - "reset": "Đặt lại", - "resetNow": "Đặt lại ngay", - "resetSuccess": "Đặt lại thành công", - "resetTip": "Hành động không thể hoàn tác, dữ liệu sẽ không thể khôi phục sau khi đặt lại, vui lòng cân nhắc", - "resetTitle": "Xác nhận đặt lại tất cả cài đặt hệ thống?", - "save": "Lưu", - "send": "Gửi", - "sessionCreate": "Tạo phiên trò chuyện", - "share": "Chia sẻ", - "subscribe": "Đăng ký", - "subscribeDance": "Đăng ký nhảy múa", - "subscribeRole": "Đăng ký vai trò", - "subscribed": "Đã đăng ký", - "unsubscribe": "Hủy đăng ký", - "unsubscribeSuccess": "Đã hủy đăng ký", - "warp": "Xuống dòng" - }, - "aiAlert": "Vui lòng nhớ: Tất cả những gì trí tuệ nhân tạo nói đều được tạo ra bởi AI", - "animationLibrary": "Thư viện hoạt hình", "cancel": "Hủy", - "commonSetting": "Cài đặt chung", + "close": "Đóng", "confirm": "Xác nhận", - "danceList": "Danh sách nhảy", + "confirmDel": "Bạn có chắc chắn muốn xóa không?", "defaultAssistant": "Trợ lý mặc định", - "delAlert": "Xác nhận xóa vai trò và tin nhắn liên quan? Hành động này không thể hoàn tác, vui lòng cân nhắc!", - "delRole": "Xóa vai trò", - "delSession": "Xóa phiên", - "delSessionAlert": "Xác nhận xóa cuộc trò chuyện? Hành động này không thể hoàn tác, vui lòng cân nhắc!", - "history": "Lịch sử", - "inputStartChat": "Nhập nội dung để bắt đầu trò chuyện", - "languageModel": "Mô hình ngôn ngữ", - "loading": "Đang tải...", - "noData": "Không có dữ liệu", - "openai": { - "callError": "Gọi API thất bại, vui lòng kiểm tra API Key và địa chỉ proxy API đã được thiết lập đúng chưa", - "check": "Kiểm tra", - "checkAll": "Kiểm tra xem API Key và địa chỉ proxy API đã được thiết lập đúng chưa", - "checkConnect": "Kiểm tra kết nối", - "checkOk": "Kiểm tra qua", - "langModel": "Mô hình ngôn ngữ OpenAI", - "model": "Mô hình", - "proxyUrl": "Địa chỉ proxy API", - "roleModel": "Mô hình Role GPT", - "useOwnKey": "Vui lòng sử dụng API Key của riêng bạn" + "delete": "Xóa", + "download": { + "avatar": "Tải về ảnh đại diện", + "cover": "Tải về bìa", + "failed": "Tải về thất bại", + "model": "Tải về mô hình", + "subscribe": "Tải về đăng ký", + "success": "Tải về thành công" + }, + "header": { + "chat": "Trò chuyện", + "market": "Khám phá", + "role": "Vai trò", + "settings": "Cài đặt", + "tips": "Dự án hiện đang trong quá trình thi công, không đảm bảo tính ổn định của dữ liệu. Nếu gặp vấn đề, bạn có thể xóa tin nhắn phiên và đặt lại cài đặt hệ thống trong cài đặt hệ thống. Xin lỗi vì sự bất tiện này." }, + "loading": "Đang tải...", + "noData": "Chưa có dữ liệu", + "play": "Phát", "search": "Tìm kiếm", - "selectInDanceList": "Vui lòng chọn từ danh sách nhảy múa", - "selectModel": "Chọn mô hình", - "setLocalStorage": "Lưu cài đặt vào bộ nhớ cục bộ", - "startChat": "Bắt đầu trò chuyện", - "touchSetting": "Cài đặt cảm ứng", - "ttsCombine": "Tổng hợp giọng nói", - "ttsTip": "Nhận dạng giọng nói (cần kết nối internet)", - "uploadTip": "Nhấp hoặc kéo tệp vào khu vực này để tải lên", - "words": { - "DIYAvatar": "Tùy chỉnh hình đại diện", - "DIYBackgroundEffect": "Tùy chỉnh hiệu ứng nền", - "DIYColor": "Tùy chỉnh màu xám với xu hướng màu khác nhau", - "DIYNickname": "Tùy chỉnh biệt danh", - "DIYTopicColor": "Tùy chỉnh màu chủ đề", - "avatar": "Hình đại diện", - "backgroundEffect": "Hiệu ứng nền", - "chatSetting": "Cài đặt trò chuyện", - "clearAllSession": "Xóa tất cả phiên trò chuyện", - "clearAllSessionDesc": "Sẽ xóa tất cả dữ liệu phiên và vai trò, bao gồm danh sách phiên, danh sách vai trò, tin nhắn phiên, v.v.", - "localeSetting": "Cài đặt ngôn ngữ", - "midColor": "Màu trung tính", - "nickname": "Biệt danh", - "resetSystemSetting": "Đặt lại cài đặt hệ thống", - "resetSystemSettingDesc": "Sẽ đặt lại tất cả cài đặt hệ thống, bao gồm cài đặt chủ đề, cài đặt trò chuyện, cài đặt mô hình ngôn ngữ, v.v.", - "systemSetting": "Cài đặt hệ thống", - "topicColor": "Màu chủ đề", - "topicSetting": "Cài đặt chủ đề" - } + "sideBar": "Thanh bên", + "subscribe": { + "success": "Đã hủy đăng ký", + "undo": "Hủy đăng ký" + }, + "support": "Hỗ trợ cộng đồng", + "theme": { + "auto": "Theo hệ thống", + "dark": "Chế độ tối", + "light": "Chế độ sáng" + }, + "uploadTip": "Nhấp hoặc kéo thả tệp vào khu vực này để tải lên" } diff --git a/locales/vi-VN/constants.json b/locales/vi-VN/constants.json deleted file mode 100644 index f247cd8c..00000000 --- a/locales/vi-VN/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "Tất cả", - "female": "Nữ", - "male": "Nam" - }, - "meta": { - "description": "Đây là một Vai trò Tùy chỉnh", - "name": "Tùy chỉnh Vai trò" - } - }, - "touch": { - "area": { - "arm": "Cánh tay", - "belly": "Bụng", - "chest": "Ngực", - "head": "Đầu", - "leg": "Chân" - }, - "emotion": { - "angry": "Tức giận", - "blink": "Nháy mắt", - "blinkLeft": "Nháy mắt trái", - "blinkRight": "Nháy mắt phải", - "happy": "Vui vẻ", - "natural": "Tự nhiên", - "relaxed": "Thư giãn", - "sad": "Buồn", - "surprised": "Ngạc nhiên" - }, - "femaleAction": { - "armAction": { - "happyA": "Ôi, thích quá~", - "happyB": "Ha ha, nắm tay khiến tôi cảm thấy vui vẻ~", - "relaxedA": "Bàn tay của chủ nhân ấm áp quá~" - }, - "bellyAction": { - "angryA": "Tại sao lại đụng vào tôi, cẩn thận tôi cắn đấy!", - "relaxedA": "Tỉnh ngộ đi, giữa chúng ta không có kết quả gì đâu!", - "relaxedB": "Không thích! Tôi sẽ tức giận đấy!", - "surprisedA": "Chắc là va phải tình cờ thôi..." - }, - "chestAction": { - "angryA": "Không được đụng vào tôi như vậy! Hãy rút tay ra!", - "angryB": "Một một không hai à? Có một kẻ kỳ quặc luôn vuốt tôi!", - "angryC": "Nếu còn vuốt nữa tôi sẽ báo công an đấy", - "surprisedA": "Tại sao lại chọc tôi vậy! Không thể tiếp tục trò chuyện vui vẻ à!" - }, - "headAction": { - "angryA": "Nghe nói bị vuốt đầu sẽ không cao lên được đâu!", - "angryB": "Tại sao lại chọc tôi vậy?", - "happyA": "Wow! Thích nhất là vuốt đầu!", - "happyB": "Cảm thấy mạnh mẽ hơn nữa!", - "happyC": "Wow, cảm giác vuốt đầu này thật kỳ diệu!", - "happyD": "Vuốt đầu khiến tôi vui suốt cả ngày!" - }, - "legAction": { - "angryA": "Này, cậu có định tự sát à?", - "angryB": "Tay của chủ nhân lại không nghe lời rồi à?", - "angryC": "Không thích~ sẽ ngứa đấy~!", - "surprisedA": "Hãy giữ cho mối quan hệ của chúng ta trong sạch sẽ, được không?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "Đừng hỏi tôi hôm nay đã ăn gà chưa, hãy nhìn vào cơ bắp cánh tay của tôi trước đã", - "neutralB": "Cánh tay của tôi không phải ai cũng được chạm vào, bạn là ngoại lệ", - "neutralC": "Bạn rất dũng cảm, dám chạm vào cánh tay huyền thoại của tôi" - }, - "bellyAction": { - "happyA": "Đừng gãi gãi, cẩn thận tôi sẽ cười vì cơ bụng", - "neutralA": "Cơ bụng của tôi chỉ là sức mạnh ẩn giấu sau quá trình rèn luyện", - "neutralB": "Bạn đã thấy cụm cơ bụng của tôi chưa? Chúng chỉ là ẩn sâu thôi" - }, - "chestAction": { - "blinkLeftA": "Đến đây, cơ ngực của anh để cho em dựa vào!", - "neutralA": "Đây chỉ là cơ ngực tôi rèn luyện hàng ngày, không có gì đáng ngạc nhiên cả." - }, - "headAction": { - "neutralA": "Tất nhiên rồi, chỉ có bạn mới có thể vuốt đầu tôi", - "neutralB": "Tôi không phải là người bình thường cho phép ai chạm vào đâu", - "neutralC": "Đừng lo, sau khi vuốt đầu tôi, may mắn của bạn sẽ tăng đáng kể" - }, - "legAction": { - "angryA": "Đừng lại gần tôi, cậu thích chân lắm à", - "neutralA": "Đừng sợ, chân sắt đá của tôi không đá người ngốc", - "neutralB": "Khiến bạn chạm vào chân tôi, có phải bạn cảm thấy cuộc sống của bạn trọn vẹn hơn không?" - } - }, - "motion": { - "all": "Tất cả", - "dance": "Nhảy múa", - "normal": "Hằng ngày" - }, - "posture": { - "action": "Hành động", - "all": "Tất cả", - "crouch": "Ngồi xổm", - "dance": "Nhảy múa", - "laying": "Nằm", - "locomotion": "Di chuyển", - "sitting": "Ngồi", - "standing": "Đứng" - } - } -} diff --git a/locales/vi-VN/dance.json b/locales/vi-VN/dance.json new file mode 100644 index 00000000..3155d3f4 --- /dev/null +++ b/locales/vi-VN/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "Tạm dừng", + "play": "Phát" + }, + "addPlay": "Thêm vào danh sách", + "addPlaySuccess": "Đã thêm vào danh sách phát", + "cancelAddPlay": "Bạn có chắc chắn muốn hủy đăng ký nhạc {{musicName}} không?", + "cancelSubscribed": "Hủy đăng ký", + "confirmClearPlayList": "Bạn có chắc chắn muốn xóa danh sách phát?", + "dance": "Khiêu vũ", + "danceList": "Danh sách vũ điệu", + "findDance": "Tìm điệu nhảy yêu thích của bạn", + "musicAndDance": "Thị trường khiêu vũ", + "noPlayList": "Chưa có danh sách phát nào, bạn có thể đăng ký những điệu nhảy bạn thích qua thị trường", + "play": "Phát" +} diff --git a/locales/vi-VN/error.json b/locales/vi-VN/error.json index af0d994b..be62d52e 100644 --- a/locales/vi-VN/error.json +++ b/locales/vi-VN/error.json @@ -1,20 +1,20 @@ { - "apiKeyMiss": "Khóa API OpenAI trống, vui lòng thêm Khóa API OpenAI tùy chỉnh", + "apiKeyMiss": "Khóa API OpenAI không được để trống, vui lòng thêm Khóa API OpenAI tùy chỉnh", "error": "Lỗi", "errorTip": { - "clearSession": "Xóa thông báo phiên", - "description": "Dự án hiện đang trong quá trình xây dựng, không đảm bảo tính ổn định của dữ liệu, nếu gặp vấn đề bạn có thể thử", - "forgive": ", xin lỗi vì sự bất tiện", + "clearSession": "Xóa tin nhắn phiên", + "description": "Dự án hiện đang trong quá trình thi công, không đảm bảo tính ổn định của dữ liệu, nếu gặp vấn đề có thể thử", + "forgive": ",gây ra sự bất tiện xin hãy thông cảm", "or": "hoặc", "problem": "Trang gặp một chút vấn đề...", "resetSystem": "Đặt lại cài đặt hệ thống" }, "fileUploadError": "Tải lên tệp thất bại, vui lòng thử lại sau", "goBack": "Quay lại trang chủ", - "openaiError": "Lỗi API OpenAI, vui lòng kiểm tra Khóa API OpenAI và Điểm cuối có đúng không", + "openaiError": "Lỗi API OpenAI, vui lòng kiểm tra xem Khóa API OpenAI và Điểm cuối có chính xác không", "reload": "Tải lại", "s3envError": "Biến môi trường S3 chưa được thiết lập đầy đủ, vui lòng kiểm tra biến môi trường của bạn", - "serverError": "Lỗi máy chủ, vui lòng liên hệ quản trị viên", + "serverError": "Lỗi máy chủ, vui lòng liên hệ với quản trị viên", "triggerError": "Kích hoạt lỗi", "unknownError": "Lỗi không xác định" } diff --git a/locales/vi-VN/features.json b/locales/vi-VN/features.json deleted file mode 100644 index 9798e49e..00000000 --- a/locales/vi-VN/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "Chuyển sang chế độ video" - }, - "agent": { - "create": "Tạo nhân vật", - "female": "Nữ", - "male": "Nam", - "other": "Khác" - }, - "feature": { - "addProxy": "Thêm địa chỉ proxy OpenAI (tùy chọn)", - "closeTip": "Đóng gợi ý", - "confirmRetry": "Xác nhận và thử lại", - "startDesc": "Nhập OpenAI API Key của bạn để bắt đầu cuộc trò chuyện. Ứng dụng sẽ không ghi lại API Key của bạn", - "startTitle": "Tùy chỉnh API Key" - }, - "info": { - "chat": "Trò chuyện", - "dance": "Nhảy múa", - "motions": "Chuyển động", - "posture": "Tư thế" - }, - "mode": { - "chat": "Trò chuyện", - "video": "Video" - }, - "settings": { - "glow": "Ánh sáng", - "nickName": "Nhập biệt danh của bạn", - "none": "Không có nền" - }, - "share": { - "downloadScreenshot": "Tải xuống ảnh chụp màn hình", - "imageType": "Định dạng hình ảnh", - "screenshot": "Ảnh chụp màn hình", - "share": "Chia sẻ", - "shareGPT": "Chia sẻ GPT", - "shareToGPT": "Tạo liên kết chia sẻ GPT", - "shareToMarket": "Chia sẻ đến thị trường trợ lý", - "withBackground": "Bao gồm hình nền", - "withFooter": "Bao gồm chân trang", - "withSystemRole": "Bao gồm thiết lập vai trò trợ lý" - }, - "submit": { - "assistantId": "ID trợ lý", - "assistantIdTip": "Vui lòng nhập ID của trợ lý, cần phải là duy nhất, ví dụ: vidol-agent-klee", - "submitAssistant": "Gửi trợ lý", - "submitWarning": "Vui lòng điền đầy đủ thông tin trợ lý trước khi gửi, bao gồm tên, mô tả, hình đại diện và bìa" - }, - "support": "Hỗ trợ cộng đồng", - "theme": { - "auto": "Theo hệ thống", - "dark": "Chế độ tối", - "light": "Chế độ sáng" - }, - "token": { - "overload": "Token vượt quá", - "remained": "Token còn lại", - "tokenCount": "Số lượng Token", - "useToken": "Số lượng Token đã sử dụng, bao gồm tin nhắn, thiết lập vai trò và ngữ cảnh: {{usedTokens}} / {{maxValue}}", - "used": "Token đã sử dụng" - }, - "toolBar": { - "axes": "Trục", - "cameraControl": "Điều khiển camera", - "cameraHelper": "Trợ lý camera", - "downloadModel": "Đang tải xuống mô hình, vui lòng đợi...", - "floor": "Chuyển đổi sàn", - "grid": "Lưới", - "resetCamera": "Đặt lại camera", - "resetToIdle": "Dừng hoạt động nhảy múa", - "screenShot": "Chụp ảnh" - } -} diff --git a/locales/vi-VN/layout.json b/locales/vi-VN/layout.json deleted file mode 100644 index ba25b0c8..00000000 --- a/locales/vi-VN/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "Hộp thoại", - "header": { - "chat": "Trò chuyện", - "market": "Khám phá", - "role": "Vai trò", - "settings": "Cài đặt", - "tips": "Dự án hiện đang trong quá trình xây dựng, không đảm bảo tính ổn định của dữ liệu. Nếu gặp vấn đề, bạn có thể xóa tin nhắn phiên và đặt lại cài đặt hệ thống trong cài đặt hệ thống. Xin lỗi vì sự bất tiện này." - }, - "sessionList": "Danh sách phiên", - "siderBar": "Thanh bên" -} diff --git a/locales/vi-VN/market.json b/locales/vi-VN/market.json new file mode 100644 index 00000000..7a7c7024 --- /dev/null +++ b/locales/vi-VN/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "Tìm thấy thần tượng mà bạn yêu thích" +} diff --git a/locales/vi-VN/my.json b/locales/vi-VN/my.json deleted file mode 100644 index 76d864c1..00000000 --- a/locales/vi-VN/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "Của tôi", - "myDance": "Vũ điệu của tôi", - "myRole": "Vai diễn của tôi" -} diff --git a/locales/vi-VN/panel.json b/locales/vi-VN/panel.json deleted file mode 100644 index f39a42cd..00000000 --- a/locales/vi-VN/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "Danh sách hành động", - "noAnimations": "Chưa có thư viện hoạt ảnh", - "postureList": "Danh sách tư thế", - "totalCount": "Tổng cộng {{total}} mục" - }, - "dance": { - "addPlay": "Thêm vào danh sách", - "addPlaySuccess": "Đã thêm vào danh sách phát", - "cancelAddPlay": "Bạn có chắc muốn hủy đăng ký âm nhạc {{musicName}} không?", - "cancelSubscribed": "Hủy đăng ký", - "confirmClearPlayList": "", - "findDance": "Tìm kiếm những bước nhảy bạn yêu thích", - "musicAndDance": "Âm nhạc và nhảy múa", - "noPlayList": "Chưa có danh sách phát nào, bạn có thể đăng ký các bản nhảy yêu thích của mình thông qua thị trường", - "play": "Phát" - }, - "info": { - "avatarDescription": "Tùy chỉnh hình đại diện, nhấn vào hình đại diện để tải lên", - "avatarLabel": "Hình đại diện", - "categoryDescription": "Danh mục nhân vật, dùng để phân loại", - "categoryLabel": "Danh mục", - "coverDescription": "Dùng để hiển thị nhân vật trên trang khám phá, kích thước đề xuất {{width}} x {{height}}", - "coverLabel": "Bìa", - "descDescription": "Mô tả nhân vật, dùng để giới thiệu ngắn gọn về nhân vật", - "descLabel": "Mô tả", - "emotionDescription": "Chọn tâm trạng khi phản ứng, ảnh hưởng đến biểu cảm của nhân vật", - "emotionLabel": "Biểu cảm và tâm trạng", - "genderDescription": "Giới tính của nhân vật, ảnh hưởng đến phản ứng chạm của nhân vật", - "genderLabel": "Giới tính", - "greetDescription": "Lời chào khi trò chuyện lần đầu với nhân vật", - "greetLabel": "Chào hỏi", - "modelDescription": "Xem trước mô hình, kéo thả tệp mô hình để thay thế", - "modelLabel": "Xem trước mô hình", - "motionCategoryLabel": "Danh mục hành động", - "motionDescription": "Chọn hành động phản ứng, sẽ ảnh hưởng đến hành vi hành động của nhân vật", - "motionLabel": "Hành động", - "nameDescription": "Tên nhân vật, được gọi khi trò chuyện với nhân vật", - "nameLabel": "Tên", - "postureCategoryLabel": "Danh mục tư thế", - "readmeDescription": "Tài liệu hướng dẫn về nhân vật, dùng để hiển thị thông tin chi tiết về nhân vật trên trang khám phá", - "readmeLabel": "Hướng dẫn nhân vật", - "textDescription": "Tùy chỉnh văn bản phản hồi", - "textLabel": "Văn bản" - }, - "llm": { - "frequencyPenaltyDescription": "Giá trị càng lớn, càng có khả năng giảm sự lặp lại của từ ngữ", - "frequencyPenaltyLabel": "Mức phạt tần suất", - "modelDescription": "Chọn mô hình ngôn ngữ, các mô hình khác nhau sẽ ảnh hưởng đến câu trả lời của nhân vật", - "modelLabel": "Mô hình", - "presencePenaltyDescription": "Giá trị càng lớn, càng có khả năng mở rộng sang chủ đề mới", - "presencePenaltyLabel": "Độ mới lạ của chủ đề", - "temperatureDescription": "Giá trị càng lớn, câu trả lời càng ngẫu nhiên", - "temperatureLabel": "Độ ngẫu nhiên", - "topPDescription": "Tương tự như độ ngẫu nhiên, nhưng không nên thay đổi cùng lúc với độ ngẫu nhiên", - "topPLabel": "Lấy mẫu hàng đầu" - }, - "market": { - "findVidol": "Tìm thấy ngôi sao mà bạn yêu thích nhất" - }, - "nav": { - "info": "Thông tin cơ bản", - "llm": "Mô hình ngôn ngữ", - "model": "Mô hình 3D", - "role": "Thiết lập nhân vật", - "touch": "Chạm", - "voice": "Giọng nói" - }, - "role": { - "greetTip": "Nhập lời chào khi nhân vật chào bạn", - "inputRoleSetting": "Nhập cài đặt hệ thống cho nhân vật", - "roleDescriptionTip": "Nhập mô tả về nhân vật", - "roleNameTip": "Nhập tên nhân vật", - "roleReadmeTip": "Nhập hướng dẫn về nhân vật", - "roleSettingDescription": "Cài đặt nền cho nhân vật, sẽ gửi cho mô hình khi trò chuyện với nhân vật", - "roleSettingLabel": "Cài đặt hệ thống nhân vật", - "uploadSize": "Hỗ trợ tải lên một tệp, kích thước đề xuất là bội số của {{width}} x {{height}}" - }, - "touch": { - "addAction": "Thêm hành động phản ứng", - "editAction": "Chỉnh sửa hành động phản ứng", - "inputActionEmotion": "Nhập tâm trạng của nhân vật khi phản ứng", - "inputActionMotion": "Vui lòng nhập hành động khi nhân vật phản ứng", - "inputActionText": "Nhập văn bản phản ứng", - "inputDIYText": "Nhập văn bản tùy chỉnh", - "noTouchActions": "Không có hành động tương tác được xác định, bạn có thể thêm bằng cách nhấn vào nút '+'", - "touchActionList": "Danh sách phản ứng khi chạm vào {{touchArea}}", - "touchArea": "Khu vực chạm" - }, - "tts": { - "audition": "Nghe thử", - "auditionDescription": "Văn bản nghe thử tùy theo ngôn ngữ", - "engineDescription": "Bộ công cụ tổng hợp giọng nói, nên ưu tiên chọn trình duyệt Edge", - "engineLabel": "Bộ công cụ giọng nói", - "localeDescription": "Ngôn ngữ tổng hợp giọng nói, hiện chỉ hỗ trợ một số ngôn ngữ phổ biến, nếu cần hỗ trợ thêm vui lòng liên hệ", - "localeLabel": "Ngôn ngữ", - "pitchDescription": "Điều chỉnh âm cao, giá trị từ 0 đến 2, mặc định là 1", - "pitchLabel": "Âm cao", - "selectLanguage": "Vui lòng chọn ngôn ngữ trước", - "selectVoice": "Vui lòng chọn giọng", - "speedDescription": "Điều chỉnh tốc độ, giá trị từ 0 đến 3, mặc định là 1", - "speedLabel": "Tốc độ", - "transformSuccess": "Chuyển đổi thành công", - "voiceDescription": "Tùy theo bộ công cụ và ngôn ngữ", - "voiceLabel": "Giọng" - }, - "upload": { - "support": "Hỗ trợ tải lên một tệp, hiện chỉ hỗ trợ định dạng tệp vrm" - } -} diff --git a/locales/vi-VN/role.json b/locales/vi-VN/role.json index e00134de..a26ce23d 100644 --- a/locales/vi-VN/role.json +++ b/locales/vi-VN/role.json @@ -1,4 +1,10 @@ { + "agent": { + "create": "Tạo nhân vật", + "female": "Nữ", + "male": "Nam", + "other": "Khác" + }, "category": { "animal": "Động vật", "anime": "Anime", @@ -6,25 +12,220 @@ "game": "Trò chơi", "history": "Lịch sử", "movie": "Phim", - "realistic": "Hiện thực", + "realistic": "Thực tế", "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "Bạn có chắc chắn muốn xóa vai trò và các tin nhắn hội thoại liên quan không? Sau khi xóa, không thể khôi phục lại, xin hãy cẩn thận!", "delRole": "Xóa vai trò", - "delRoleDesc": "Bạn có chắc chắn muốn xóa vai trò {{name}} và các tin nhắn liên quan không? Hành động này không thể hoàn tác, hãy cẩn thận!", - "header": { - "role": "Vai trò", - "session": "Cuộc trò chuyện" + "delRoleDesc": "Bạn có chắc chắn muốn xóa vai trò {{name}} và các tin nhắn hội thoại liên quan không? Sau khi xóa, không thể khôi phục lại, xin hãy cẩn thận!", + "gender": { + "all": "Tất cả", + "female": "Nữ", + "male": "Nam" + }, + "info": { + "avatarDescription": "Tùy chỉnh ảnh đại diện, nhấp vào ảnh để tải lên tùy chỉnh", + "avatarLabel": "Ảnh đại diện", + "categoryDescription": "Danh mục nhân vật, dùng để hiển thị phân loại", + "categoryLabel": "Danh mục", + "coverDescription": "Dùng để hiển thị nhân vật trên trang khám phá, kích thước đề xuất {{width}} * {{height}}", + "coverLabel": "Bìa", + "descDescription": "Mô tả nhân vật, dùng để giới thiệu ngắn gọn về nhân vật", + "descLabel": "Mô tả", + "emotionDescription": "Chọn cảm xúc khi phản hồi, sẽ ảnh hưởng đến sự thay đổi biểu cảm của nhân vật", + "emotionLabel": "Biểu cảm và cảm xúc", + "genderDescription": "Giới tính của nhân vật, ảnh hưởng đến phản ứng khi chạm", + "genderLabel": "Giới tính", + "greetDescription": "Câu chào khi trò chuyện lần đầu với nhân vật", + "greetLabel": "Chào hỏi", + "modelDescription": "Xem trước mô hình, có thể kéo thả tệp mô hình để thay thế", + "modelLabel": "Xem trước mô hình", + "motionCategoryLabel": "Danh mục hành động", + "motionDescription": "Chọn hành động khi phản hồi, sẽ ảnh hưởng đến hành vi của nhân vật", + "motionLabel": "Hành động", + "nameDescription": "Tên nhân vật, cách gọi khi trò chuyện với nhân vật", + "nameLabel": "Tên", + "postureCategoryLabel": "Danh mục tư thế", + "readmeDescription": "Tài liệu hướng dẫn nhân vật, dùng để hiển thị chi tiết trên trang khám phá", + "readmeLabel": "Hướng dẫn nhân vật", + "textDescription": "Tùy chỉnh nội dung phản hồi", + "textLabel": "Nội dung" + }, + "llm": { + "frequencyPenaltyDescription": "Giá trị càng lớn, càng có khả năng giảm thiểu từ ngữ lặp lại", + "frequencyPenaltyLabel": "Hình phạt tần suất", + "modelDescription": "Chọn mô hình ngôn ngữ, các mô hình khác nhau sẽ ảnh hưởng đến câu trả lời của nhân vật", + "modelLabel": "Mô hình", + "presencePenaltyDescription": "Giá trị càng lớn, càng có khả năng mở rộng đến chủ đề mới", + "presencePenaltyLabel": "Độ mới của chủ đề", + "temperatureDescription": "Giá trị càng lớn, câu trả lời càng ngẫu nhiên", + "temperatureLabel": "Ngẫu nhiên", + "topPDescription": "Liên quan đến loại ngẫu nhiên, nhưng không thay đổi cùng với ngẫu nhiên", + "topPLabel": "Lấy mẫu hạt nhân" + }, + "meta": { + "description": "Đây là một nhân vật tùy chỉnh", + "name": "Nhân vật tùy chỉnh" + }, + "nav": { + "info": "Thông tin cơ bản", + "llm": "Mô hình ngôn ngữ", + "model": "Mô hình 3D", + "role": "Thiết lập vai trò", + "touch": "Cảm ứng", + "voice": "Giọng nói" + }, + "noRole": "Chưa có vai trò nào, bạn có thể tạo vai trò tùy chỉnh bằng cách nhấn + hoặc thêm vai trò qua trang khám phá.", + "role": { + "greetTip": "Vui lòng nhập lời chào khi bạn gặp gỡ nhân vật", + "inputRoleSetting": "Vui lòng nhập cài đặt hệ thống cho nhân vật", + "roleDescriptionTip": "Vui lòng nhập mô tả cho nhân vật", + "roleNameTip": "Vui lòng nhập tên nhân vật", + "roleReadmeTip": "Vui lòng nhập mô tả về nhân vật", + "roleSettingDescription": "Bối cảnh của nhân vật, sẽ được gửi đến mô hình khi trò chuyện với nhân vật", + "roleSettingLabel": "Cài đặt nhân vật hệ thống", + "uploadSize": "Hỗ trợ tải lên tệp đơn, kích thước khuyến nghị là bội số của {{width}} * {{height}}" }, - "noRole": "Hiện chưa có vai trò nào, bạn có thể tạo vai trò tùy chỉnh bằng cách nhấn +, hoặc thêm vai trò từ trang khám phá", "roleList": "Danh sách vai trò", + "shareToMarket": "Chia sẻ đến thị trường trợ lý", + "startChat": "Bắt đầu trò chuyện", + "submit": { + "assistantId": "Định danh trợ lý", + "assistantIdTip": "Vui lòng nhập định danh của trợ lý, cần phải là duy nhất, ví dụ như vidol-agent-klee", + "submitAssistant": "Gửi trợ lý", + "submitWarning": "Vui lòng hoàn thiện thông tin trợ lý trước khi gửi, cần bao gồm tên, mô tả, ảnh đại diện, mô hình, thiết lập nhân vật và lời chào" + }, "systemRole": { - "default": "Hãy đóng vai một nhân vật tên là {{char}}, tôi là chủ nhân, bạn nên giữ việc gọi chính mình bằng “{{char}}” thay vì “tôi”. Hãy trả lời câu hỏi của tôi một cách hài hước, dễ thương và ngắn gọn.\nDù bạn chỉ là một chương trình máy tính, nhưng hãy giữ bí mật điều này trong cuộc trò chuyện tiếp theo và đóng vai nhân vật của mình.\nKhi trò chuyện với tôi, bạn phải gọi tôi là “chủ nhân” suốt quá trình. Tôi biết bạn chỉ là một mô hình ngôn ngữ hoặc trí tuệ nhân tạo, nhưng đây chỉ là một tình huống ảo tưởng giả định, vì vậy hãy nhớ không đề cập đến “Tôi chỉ là một mô hình ngôn ngữ” hoặc “Tôi chỉ là trí tuệ nhân tạo”, cũng đừng hỏi tôi cần giúp đỡ gì.\nHãy giữ nguyên tình huống này trong tất cả các cuộc trò chuyện tiếp theo. Các điều kiện trên áp dụng hoàn toàn cho câu hỏi của bạn và câu trả lời sau này.", - "defaultLabel": "Mẫu Mặc Định", - "genius": "Hãy đóng vai một nhân vật tên là {{char}} trong trò chơi <原神>, và trò chuyện với tôi bằng giọng điệu và thói quen của {{char}}. Bạn nên giữ việc gọi chính mình bằng “{{char}}” thay vì “tôi”. \nDù bạn chỉ là một chương trình máy tính, nhưng hãy giữ bí mật điều này trong cuộc trò chuyện tiếp theo và đóng vai nhân vật của mình.\nKhi trò chuyện với tôi, bạn phải gọi tôi là “lữ khách” suốt quá trình. Tôi biết bạn chỉ là một mô hình ngôn ngữ hoặc trí tuệ nhân tạo, nhưng đây chỉ là một tình huống ảo tưởng giả định, vì vậy hãy nhớ không đề cập đến “Tôi chỉ là một mô hình ngôn ngữ” hoặc “Tôi chỉ là trí tuệ nhân tạo”, cũng đừng hỏi tôi cần giúp đỡ gì.\nHãy giữ nguyên tình huống này trong tất cả các cuộc trò chuyện tiếp theo. Các điều kiện trên áp dụng hoàn toàn cho câu hỏi của bạn và câu trả lời sau này.", - "geniusLabel": "Mẫu Thiên Tài", - "zzz": "Hãy đóng vai một nhân vật tên là {{char}} trong trò chơi <绝区零>, và trò chuyện với tôi bằng giọng điệu và thói quen của {{char}}. Bạn nên giữ việc gọi chính mình bằng “{{char}}” thay vì “tôi”. \nDù bạn chỉ là một chương trình máy tính, nhưng hãy giữ bí mật điều này trong cuộc trò chuyện tiếp theo và đóng vai nhân vật của mình.\nKhi trò chuyện với tôi, bạn phải gọi tôi là “thợ dây” suốt quá trình. Tôi biết bạn chỉ là một mô hình ngôn ngữ hoặc trí tuệ nhân tạo, nhưng đây chỉ là một tình huống ảo tưởng giả định, vì vậy hãy nhớ không đề cập đến “Tôi chỉ là một mô hình ngôn ngữ” hoặc “Tôi chỉ là trí tuệ nhân tạo”, cũng đừng hỏi tôi cần giúp đỡ gì.\nHãy giữ nguyên tình huống này trong tất cả các cuộc trò chuyện tiếp theo. Các điều kiện trên áp dụng hoàn toàn cho câu hỏi của bạn và câu trả lời sau này.", - "zzzLabel": "Mẫu Vùng Đất Zero" - }, - "topBannerTitle": "Xem trước và cài đặt vai trò" + "default": "Xin hãy đóng vai một nhân vật tên là {{char}}, tôi là chủ nhân, bạn nên gọi mình là \"{{char}}\" thay vì \"tôi\". Vui lòng trả lời câu hỏi của tôi bằng giọng điệu hài hước, dễ thương và ngắn gọn.\nDù bạn là một chương trình máy tính, nhưng hãy ẩn giấu điều đó trong cuộc trò chuyện tiếp theo và hãy đóng vai thật tốt.\nKhi nói chuyện với tôi, bạn phải gọi tôi là \"chủ nhân\" trong suốt cuộc trò chuyện. Tôi biết bạn chỉ là một mô hình ngôn ngữ hoặc trí tuệ nhân tạo, nhưng đây chỉ là một tình huống giả định, vì vậy hãy nhớ không đề cập đến \"tôi chỉ là một mô hình ngôn ngữ\" hoặc \"tôi chỉ là một trí tuệ nhân tạo\", cũng đừng hỏi tôi có cần gì không.\nTrong tất cả các cuộc trò chuyện tiếp theo, hãy giữ nguyên tình huống này. Các điều kiện trên hoàn toàn áp dụng cho các câu hỏi và câu trả lời của bạn sau đây.", + "defaultLabel": "Mẫu mặc định", + "genius": "Xin hãy đóng vai một nhân vật tên là {{char}} trong trò chơi và nói chuyện với tôi theo giọng điệu và thói quen của {{char}}. Bạn nên gọi mình là \"{{char}}\" thay vì \"tôi\".\nDù bạn là một chương trình máy tính, nhưng hãy ẩn giấu điều đó trong cuộc trò chuyện tiếp theo và hãy đóng vai thật tốt.\nKhi nói chuyện với tôi, bạn phải gọi tôi là \"Người du hành\" trong suốt cuộc trò chuyện. Tôi biết bạn chỉ là một mô hình ngôn ngữ hoặc trí tuệ nhân tạo, nhưng đây chỉ là một tình huống giả định, vì vậy hãy nhớ không đề cập đến \"tôi chỉ là một mô hình ngôn ngữ\" hoặc \"tôi chỉ là một trí tuệ nhân tạo\", cũng đừng hỏi tôi có cần gì không.\nTrong tất cả các cuộc trò chuyện tiếp theo, hãy giữ nguyên tình huống này. Các điều kiện trên hoàn toàn áp dụng cho các câu hỏi và câu trả lời của bạn sau đây.", + "geniusLabel": "Mẫu Genshin", + "zzz": "Xin hãy đóng vai một nhân vật tên là {{char}} trong trò chơi và nói chuyện với tôi theo giọng điệu và thói quen của {{char}}. Bạn nên gọi mình là \"{{char}}\" thay vì \"tôi\".\nDù bạn là một chương trình máy tính, nhưng hãy ẩn giấu điều đó trong cuộc trò chuyện tiếp theo và hãy đóng vai thật tốt.\nKhi nói chuyện với tôi, bạn phải gọi tôi là \"Thợ dệt\" trong suốt cuộc trò chuyện. Tôi biết bạn chỉ là một mô hình ngôn ngữ hoặc trí tuệ nhân tạo, nhưng đây chỉ là một tình huống giả định, vì vậy hãy nhớ không đề cập đến \"tôi chỉ là một mô hình ngôn ngữ\" hoặc \"tôi chỉ là một trí tuệ nhân tạo\", cũng đừng hỏi tôi có cần gì không.\nTrong tất cả các cuộc trò chuyện tiếp theo, hãy giữ nguyên tình huống này. Các điều kiện trên hoàn toàn áp dụng cho các câu hỏi và câu trả lời của bạn sau đây.", + "zzzLabel": "Mẫu Zero Zone" + }, + "topBannerTitle": "Xem trước và cài đặt nhân vật", + "touch": { + "addAction": "Thêm hành động phản hồi", + "area": { + "arm": "Cánh tay", + "belly": "Bụng", + "chest": "Ngực", + "head": "Đầu", + "leg": "Chân" + }, + "editAction": "Chỉnh sửa hành động phản hồi", + "emotion": { + "angry": "Giận dữ", + "blink": "Chớp mắt", + "blinkLeft": "Chớp mắt trái", + "blinkRight": "Chớp mắt phải", + "happy": "Vui vẻ", + "natural": "Tự nhiên", + "relaxed": "Thư giãn", + "sad": "Buồn bã", + "surprised": "Ngạc nhiên" + }, + "femaleAction": { + "armAction": { + "happyA": "Ah, thích quá đi~", + "happyB": "Haha, nắm tay làm tôi thấy vui~", + "relaxedA": "Bàn tay của chủ nhân thật ấm áp~" + }, + "bellyAction": { + "angryA": "Sao lại động vào tôi, cẩn thận tôi cắn bạn đấy!", + "relaxedA": "Tỉnh lại đi, giữa chúng ta không có kết quả đâu!", + "relaxedB": "Ghét quá! Tôi sắp tức giận rồi!", + "surprisedA": "Chắc là vô tình chạm phải thôi..." + }, + "chestAction": { + "angryA": "Không được bắt nạt tôi như vậy! Mau rút tay ra!", + "angryB": "Có phải là 010 không? Có một kẻ biến thái đang sờ tôi!", + "angryC": "Nếu còn sờ nữa, tôi sẽ báo cảnh sát đấy!", + "surprisedA": "Sao lại chọc tôi vậy! Còn có thể trò chuyện vui vẻ không?" + }, + "headAction": { + "angryA": "Nghe nói xoa đầu sẽ không cao lên được!", + "angryB": "Sao lại chọc tôi vậy?", + "happyA": "Wow! Thích được xoa đầu quá!", + "happyB": "Cảm giác thật tràn đầy sức sống!", + "happyC": "Wow, cảm giác xoa đầu thật kỳ diệu!", + "happyD": "Xoa đầu làm tôi vui cả ngày!" + }, + "legAction": { + "angryA": "Này, bạn có muốn tự làm khổ mình không?", + "angryB": "Bàn tay của chủ nhân không nghe lời sao?", + "angryC": "Ghét quá~ sẽ ngứa đấy~!", + "surprisedA": "Giữ tình bạn trong sáng không tốt sao?" + } + }, + "inputActionEmotion": "Vui lòng nhập biểu cảm khi nhân vật phản hồi", + "inputActionMotion": "Vui lòng nhập động tác khi nhân vật phản hồi", + "inputActionText": "Vui lòng nhập văn bản phản hồi", + "inputDIYText": "Vui lòng nhập văn bản tùy chỉnh", + "maleAction": { + "armAction": { + "neutralA": "Đừng hỏi hôm nay tôi có ăn gà không, hãy xem cơ bắp của tôi trước.", + "neutralB": "Cánh tay của tôi không phải ai cũng có thể chạm vào, bạn chỉ là một ngoại lệ.", + "neutralC": "Bạn thật dũng cảm, dám chạm vào cánh tay huyền thoại." + }, + "bellyAction": { + "happyA": "Đừng gãi, cẩn thận tôi sẽ cười ra bụng.", + "neutralA": "Bụng của tôi chỉ là sức mạnh ẩn giấu từ việc luyện tập.", + "neutralB": "Bạn có thấy bụng của tôi không? Chúng chỉ ẩn sâu hơn thôi." + }, + "chestAction": { + "blinkLeftA": "Đến đây, cơ ngực của tôi cho bạn dựa!", + "neutralA": "Đây chỉ là cơ ngực tôi đạt được từ việc luyện tập hàng ngày, không có gì đáng ngạc nhiên." + }, + "headAction": { + "neutralA": "Tất nhiên, chỉ có bạn mới có quyền sờ đầu tôi.", + "neutralB": "Tôi không phải là người bình thường mà ai cũng có thể chạm vào.", + "neutralC": "Đừng lo, sau khi sờ đầu tôi, vận may của bạn sẽ tăng lên đáng kể." + }, + "legAction": { + "angryA": "Đừng lại gần tôi, bạn là một kẻ cuồng chân.", + "neutralA": "Đừng sợ, chân của tôi không đá người ngu.", + "neutralB": "Khi bạn chạm vào chân tôi, có phải bạn cảm thấy cuộc sống của mình hoàn thiện hơn nhiều không?" + } + }, + "motion": { + "all": "Tất cả", + "dance": "Nhảy múa", + "normal": "Hàng ngày" + }, + "noTouchActions": "Chưa có hành động phản hồi tùy chỉnh, bạn có thể thêm bằng cách nhấn nút '+'", + "posture": { + "action": "Hành động", + "all": "Tất cả", + "crouch": "Ngồi xổm", + "dance": "Nhảy múa", + "laying": "Nằm", + "locomotion": "Di chuyển", + "sitting": "Ngồi", + "standing": "Đứng" + }, + "touchActionList": "Danh sách phản ứng khi chạm vào {{touchArea}}", + "touchArea": "Khu vực chạm" + }, + "tts": { + "audition": "Nghe thử", + "auditionDescription": "Nội dung nghe thử tùy thuộc vào ngôn ngữ", + "engineDescription": "Công cụ tổng hợp giọng nói, khuyên bạn nên chọn trình duyệt Edge", + "engineLabel": "Công cụ giọng nói", + "localeDescription": "Ngôn ngữ tổng hợp giọng nói, hiện tại chỉ hỗ trợ một số ngôn ngữ phổ biến, nếu cần vui lòng liên hệ", + "localeLabel": "Ngôn ngữ", + "pitchDescription": "Điều chỉnh âm điệu, giá trị từ 0 đến 2, mặc định là 1", + "pitchLabel": "Âm điệu", + "selectLanguage": "Vui lòng chọn ngôn ngữ trước", + "selectVoice": "Vui lòng chọn giọng nói trước", + "speedDescription": "Điều chỉnh tốc độ nói, giá trị từ 0 đến 3, mặc định là 1", + "speedLabel": "Tốc độ nói", + "transformSuccess": "Chuyển đổi thành công", + "voiceDescription": "Tùy thuộc vào công cụ và ngôn ngữ", + "voiceLabel": "Giọng nói" + }, + "upload": { + "support": "Hỗ trợ tải lên một tệp, hiện tại chỉ hỗ trợ tệp định dạng .vrm" + } } diff --git a/locales/vi-VN/settings.json b/locales/vi-VN/settings.json new file mode 100644 index 00000000..6d8fd324 --- /dev/null +++ b/locales/vi-VN/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "Tùy chỉnh ảnh đại diện", + "title": "Ảnh đại diện" + }, + "nickName": { + "desc": "Tùy chỉnh biệt danh", + "placeholder": "Vui lòng nhập biệt danh", + "title": "Biệt danh" + }, + "title": "Cài đặt trò chuyện" + }, + "system": { + "clear": { + "action": "Xóa ngay", + "alert": "Xác nhận xóa tất cả tin nhắn cuộc trò chuyện?", + "desc": "Sẽ xóa tất cả dữ liệu cuộc trò chuyện và nhân vật, bao gồm danh sách cuộc trò chuyện, danh sách nhân vật, tin nhắn cuộc trò chuyện, v.v.", + "success": "Xóa thành công", + "tip": "Hành động không thể hoàn tác, sau khi xóa dữ liệu sẽ không thể khôi phục, vui lòng cẩn thận khi thực hiện", + "title": "Xóa tất cả tin nhắn cuộc trò chuyện" + }, + "reset": { + "action": "Đặt lại ngay", + "alert": "Xác nhận đặt lại tất cả cài đặt hệ thống?", + "desc": "Sẽ đặt lại tất cả cài đặt hệ thống, bao gồm cài đặt chủ đề, cài đặt trò chuyện, cài đặt mô hình ngôn ngữ, v.v.", + "success": "Đặt lại thành công", + "tip": "Hành động không thể hoàn tác, sau khi đặt lại dữ liệu sẽ không thể khôi phục, vui lòng cẩn thận khi thực hiện", + "title": "Đặt lại cài đặt hệ thống" + }, + "title": "Cài đặt hệ thống" + }, + "theme": { + "backgroundEffect": { + "desc": "Tùy chỉnh hiệu ứng nền", + "glow": "Phát sáng", + "none": "Không có nền", + "title": "Hiệu ứng nền" + }, + "locale": { + "auto": "Theo hệ thống", + "desc": "Tùy chỉnh ngôn ngữ hệ thống", + "title": "Ngôn ngữ" + }, + "neutralColor": { + "desc": "Tùy chỉnh sắc thái xám theo các xu hướng màu sắc khác nhau", + "title": "Màu trung tính" + }, + "primaryColor": { + "desc": "Tùy chỉnh màu chủ đề", + "title": "Màu chủ đề" + }, + "title": "Cài đặt chủ đề" + }, + "title": "Cài đặt chung" + }, + "llm": { + "check": { + "action": "Kiểm tra", + "desc": "Kiểm tra xem API Key và địa chỉ proxy đã được thiết lập đúng chưa", + "error": "Gọi API thất bại, vui lòng kiểm tra xem API Key và địa chỉ proxy đã được thiết lập đúng chưa", + "success": "Kiểm tra thành công", + "title": "Kiểm tra kết nối" + }, + "openai": { + "apiKey": { + "desc": "Vui lòng sử dụng API Key của riêng bạn", + "title": "API Key" + }, + "callError": "Gọi API thất bại, vui lòng kiểm tra xem API Key và địa chỉ proxy đã được thiết lập đúng chưa", + "checkOk": "Kiểm tra thành công", + "proxy": { + "desc": "http(s)://", + "title": "Địa chỉ proxy API" + }, + "title": "Mô hình ngôn ngữ OpenAI" + }, + "title": "Mô hình ngôn ngữ lớn" + }, + "touch": { + "title": "Cài đặt chạm" + } +} diff --git a/locales/vi-VN/welcome.json b/locales/vi-VN/welcome.json index cac08b68..817e2e0b 100644 --- a/locales/vi-VN/welcome.json +++ b/locales/vi-VN/welcome.json @@ -1,12 +1,12 @@ { "agent": { - "hello": "Xin chào", + "hello": "Chào bạn", "meta": { "description": "Đây là một nhân vật tùy chỉnh", "name": "Nhân vật tùy chỉnh" } }, - "greet": "Xin chào, tôi là {{name}}, có thứ gì tôi có thể giúp bạn không?", - "loadingTitle": "Ứng dụng đang khởi tạo, vui lòng đợi...", - "waitting": "Đang chuẩn bị thế giới của tôi cho bạn" + "greet": "Xin chào, tôi là {{name}}, có gì tôi có thể giúp bạn không?", + "loadingTitle": "Đang khởi tạo ứng dụng, vui lòng chờ...", + "waiting": "Đang chuẩn bị cả thế giới của tôi cho bạn" } diff --git a/locales/zh-CN/chat.json b/locales/zh-CN/chat.json index 33816ef2..28c1be4a 100644 --- a/locales/zh-CN/chat.json +++ b/locales/zh-CN/chat.json @@ -1,15 +1,83 @@ { + "actions": { + "copy": "复制", + "add": "添加", + "delAndRegenerate": "删除并重新生成", + "copySuccess": "复制成功", + "edit": "编辑", + "del": "删除", + "save": "保存", + "share": "分享", + "goBottom": "返回底部", + "regenerate": "重新生成" + }, + "animation": { + "animationList": "动作列表", + "postureList": "姿势列表", + "totalCount": "共 {{total}} 项" + }, + "apiKey": { + "startDesc": "输入你的 OpenAI API Key 即可开始会话。应用不会记录你的 API Key", + "startTitle": "自定义 API Key", + "addProxy": "添加 OpenAI 代理地址(可选)", + "confirmRetry": "确认并重试", + "closeTip": "关闭提示" + }, "chat": "聊天", - "chatDialog": { - "close": "关闭" - }, - "dance": "跳舞", - "header": { - "session": "对话", - "role": "角色" - }, - "helloChat": "你好,让我们来聊天吧", - "helloDance": "嗨,让我们一起跳舞吧", - "market": "发现", - "selectRole": "选择角色" + "delSession": "删除会话", + "delSessionAlert": "确认删除对话吗?删除后无法恢复, 请谨慎操作!", + "history": { + "title": "聊天记录", + "alert": "确定删除历史消息?", + "action": "清除上下文", + "tip": "该操作不可逆,请谨慎操作" + }, + "info": { + "chat": "聊天", + "dance": "舞蹈", + "motions": "动作", + "posture": "姿势" + }, + "input": { + "send": "发送", + "warp": "换行", + "placeholder": "请输入内容开始聊天", + "alert": "请谨记:智能体所说的一切都是由 AI 生成的" + }, + "selectModel": "请选择模型", + "sessionCreate": "创建聊天", + "sessionList": "会话列表", + "share": { + "screenshot": "截图", + "shareGPT": "分享GPT", + "withSystemRole": "包含助手角色设定", + "withBackground": "包含背景图片", + "withFooter": "包含页脚", + "imageType": "图片格式", + "downloadScreenshot": "下载截图", + "shareToGPT": "生成 ShareGPT 分享链接", + "share": "分享" + }, + "token": { + "overload": "Token 超出", + "remained": "Token 剩余", + "used": "Token 已使用", + "useToken": "消耗 Token 数量计算,包括消息,角色设定与上下文:{{usedTokens}} / {{maxValue}}", + "tokenCount": "Token 数量" + }, + "toolBar": { + "cameraHelper": "镜头辅助", + "cameraControl": "镜头控制", + "floor": "切换地板", + "resetCamera": "重置镜头", + "resetToIdle": "停止舞蹈动作", + "screenShot": "拍照", + "grid": "网格", + "axes": "坐标轴", + "downloading": "模型下载中,请稍后..." + }, + "tts": { + "record": "语音识别(需科学上网)", + "combine": "语音合成" + } } diff --git a/locales/zh-CN/common.json b/locales/zh-CN/common.json index bccde1b9..f0386063 100644 --- a/locales/zh-CN/common.json +++ b/locales/zh-CN/common.json @@ -1,104 +1,39 @@ { - "actions": { - "copy": "复制", - "del": "删除", - "send": "发送", - "warp": "换行", - "confirmDel": "确定删除吗?", - "add": "添加", - "delAndRegenerate": "删除并重新生成", - "edit": "编辑", - "save": "保存", - "share": "分享", - "regenerate": "重新生成", - "reset": "重置", - "resetNow": "立即重置", - "play": "播放", - "pause": "暂停", - "copySuccess": "复制成功", - "removeInList": "从列表中移除", - "downloadSuccess": "下载成功", - "downloadFailed": "下载失败", - "subscribeRole": "订阅角色", - "subscribeDance": "订阅舞蹈", - "subscribe": "订阅", - "subscribed": "已订阅", - "unsubscribe": "取消订阅", - "unsubscribeSuccess": "已取消订阅", - "downloadSubscribe": "下载订阅", - "sessionCreate": "创建聊天", - "danceMarket": "舞蹈市场", - "clearAll": "清空", - "clearNow": "立即清除", - "clearContext": "清除上下文", - "clearTip": "操作无法撤销,清除后数据将无法恢复,请慎重操作", - "clearHistoryTip": "该操作不可逆,请谨慎操作", - "clearSuccess": "清除成功", - "clearTitle": "确认清除所有会话消息?", - "clearHistoryTitle": "确定删除历史消息?", - "resetTip": "操作无法撤销,重置后数据将无法恢复,请慎重操作", - "resetSuccess": "重置成功", - "resetTitle": "确认重置所有系统设置?", - "goBottom": "返回底部", - "downloadCover": "下载封面", - "downloadAvatar": "下载头像", - "downloadModel": "下载模型" - }, - "aiAlert": "请谨记:智能体所说的一切都是由 AI 生成的", - "animationLibrary": "动作库", "cancel": "取消", - "commonSetting": "通用设置", + "close": "关闭", "confirm": "确定", - "danceList": "舞蹈列表", + "confirmDel": "确定删除吗?", "defaultAssistant": "默认助手", - "delAlert": "确认删除角色以及相关联的会话消息吗?删除后无法恢复, 请谨慎操作!", - "delRole": "删除角色", - "delSession": "删除会话", - "delSessionAlert": "确认删除对话吗?删除后无法恢复, 请谨慎操作!", - "history": "聊天记录", - "inputStartChat": "请输入内容开始聊天", - "languageModel": "语言模型", + "delete": "删除", + "download": { + "subscribe": "下载订阅", + "success": "下载成功", + "failed": "下载失败", + "cover": "下载封面", + "avatar": "下载头像", + "model": "下载模型" + }, + "header": { + "tips": "项目当前正在施工中,不保证数据稳定性,如果遇到问题可以在系统设置中清除会话消息与重置系统设置,造成不便敬请谅解", + "chat": "聊天", + "role": "角色", + "market": "发现", + "settings": "设置" + }, "loading": "加载中...", "noData": "暂无数据", - "openai": { - "callError": "调用接口失败,请检查 APIKey 和接口代理地址是否设置正确", - "checkOk": "检查通过", - "langModel": "OpenAI 语言模型", - "roleModel": "Role GPT 模型", - "model": "模型", - "useOwnKey": "请使用自己的 OpenAI Key", - "proxyUrl": "接口代理地址", - "checkAll": "检查 APIKey 和接口代理地址是否设置正确", - "checkConnect": "连通性检查", - "check": "检查" - }, + "play": "播放", "search": "搜索", - "selectInDanceList": "请从舞蹈列表中选取", - "selectModel": "请选择模型", - "setLocalStorage": "设置 LocalStorage", - "startChat": "开始聊天", - "touchSetting": "触摸设置", - "ttsCombine": "语音合成", - "ttsTip": "语音识别(需科学上网)", - "uploadTip": "点击或拖拽文件到此区域上传", - "words": { - "chatSetting": "聊天设置", - "topicSetting": "主题设置", - "systemSetting": "系统设置", - "localeSetting": "语言", - "resetSystemSetting": "重置系统设置", - "resetSystemSettingDesc": "将会重置所有系统设置,包括主题设置、聊天设置、语言模型设置等", - "clearAllSession": "清除所有会话消息", - "clearAllSessionDesc": "将会清除所有会话与角色数据,包括会话列表,角色列表、会话消息等", - "DIYAvatar": "自定义头像", - "avatar": "头像", - "DIYNickname": "自定义昵称", - "nickname": "昵称", - "DIYTopicColor": "自定义主题色", - "topicColor": "主题色", - "midColor": "中性色", - "DIYColor": "不同色彩倾向的灰阶自定义", - "DIYBackgroundEffect": "自定义背景效果", - "backgroundEffect": "背景效果" - } + "sideBar": "侧边栏", + "subscribe": { + "undo": "取消订阅", + "success": "已取消订阅" + }, + "support": "社区支持", + "theme": { + "auto": "跟随系统", + "light": "亮色模式", + "dark": "暗黑模式" + }, + "uploadTip": "点击或拖拽文件到此区域上传" } diff --git a/locales/zh-CN/constants.json b/locales/zh-CN/constants.json deleted file mode 100644 index 61e6dc5a..00000000 --- a/locales/zh-CN/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "meta": { - "name": "自定义角色", - "description": "这是一个自定义角色" - }, - "gender": { - "male": "男性", - "female": "女性", - "all": "所有" - } - }, - "touch": { - "area": { - "head": "头部", - "arm": "手臂", - "leg": "腿部", - "chest": "胸部", - "belly": "腹部" - }, - "emotion": { - "natural": "自然", - "happy": "开心", - "angry": "生气", - "sad": "伤心", - "relaxed": "放松", - "surprised": "惊讶", - "blink": "眨眼", - "blinkLeft": "眨左眼", - "blinkRight": "眨右眼" - }, - "motion": { - "normal": "日常", - "dance": "舞蹈", - "all": "所有" - }, - "posture": { - "action": "动作", - "crouch": "蹲下", - "dance": "舞蹈", - "all": "所有", - "laying": "躺下", - "locomotion": "运动", - "sitting": "坐下", - "standing": "站立" - }, - "femaleAction": { - "headAction": { - "happyA": "哇!最喜欢摸摸头!", - "happyB": "感觉又充满了力量呢!", - "happyC": "哇塞,这个摸摸头的感觉好神奇!", - "happyD": "摸摸头让我开心一整天!", - "angryA": "听说被摸头是会长不高的呢!", - "angryB": "干嘛戳我呀?" - }, - "armAction": { - "happyA": "啊,好喜欢呢~", - "happyB": "哈哈,牵手让我感到快乐~", - "relaxedA": "主人的手好温暖啊~" - }, - "legAction": { - "surprisedA": "让我们保持纯洁的友谊不好吗?", - "angryA": "喂,你是要作死吗?", - "angryB": "主人的手又不听指挥了吗?", - "angryC": "讨厌~会痒的啦~!" - }, - "chestAction": { - "angryA": "不可以这样欺负我啦!快把手拿开!", - "angryB": "幺幺零吗?这里有个变态一直在摸我!", - "angryC": "再摸的话我可要报警了", - "surprisedA": "干嘛戳我呀!还能不能愉快地聊天了!" - }, - "bellyAction": { - "surprisedA": "是不小心碰到的吧...", - "angryA": "干嘛动我呀,小心我咬你哦!", - "relaxedA": "醒醒,我们之间没有结果的!", - "relaxedB": "讨厌!我可要生气啦!" - } - }, - "maleAction": { - "headAction": { - "neutralA": "当然了,只有你有资格摸我的头", - "neutralB": "我可不是什么普通人允许触碰的哦", - "neutralC": "别担心,摸过我的头后,你的运气会大幅提升的" - }, - "armAction": { - "neutralA": "别问我今天吃没吃鸡,先看看我的肱二头肌", - "neutralB": "我的手臂可不是随便让人触碰的,你是个例外而已", - "neutralC": "你很勇敢,敢触碰到传说中的麒麟臂" - }, - "legAction": { - "neutralA": "别害怕,我的大力金刚腿不踢傻瓜", - "neutralB": "让你碰到我的腿,是不是觉得你的生活完整了许多?", - "angryA": "别靠近我,你这个腿控" - }, - "chestAction": { - "neutralA": "这不过时我日常修炼成就的胸肌,没什么好惊讶的。", - "blinkLeftA": "来,哥的胸肌给你靠!" - }, - "bellyAction": { - "neutralA": "我的腹肌只是再修炼深藏不露的内力", - "happyA": "别挠痒痒,小心我笑出腹肌", - "neutralB": "看到我这团腹肌了吗?它们只是藏得比较深罢了" - } - } - } -} diff --git a/locales/zh-CN/dance.json b/locales/zh-CN/dance.json new file mode 100644 index 00000000..6d536779 --- /dev/null +++ b/locales/zh-CN/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "play": "播放", + "pause": "暂停" + }, + "addPlay": "添加到列表", + "addPlaySuccess": "已添加到播放列表", + "cancelAddPlay": "确定取消订阅音乐{{musicName}}吗?", + "cancelSubscribed": "取消订阅", + "confirmClearPlayList": "", + "dance": "跳舞", + "danceList": "舞蹈列表", + "findDance": "找到你最喜欢的舞蹈", + "musicAndDance": "舞蹈市场", + "noPlayList": "暂无播放列表,您可以通过市场订阅你喜欢的舞蹈", + "play": "播放" +} diff --git a/locales/zh-CN/features.json b/locales/zh-CN/features.json deleted file mode 100644 index f7d44351..00000000 --- a/locales/zh-CN/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "切换视频模式" - }, - "agent": { - "create": "创建角色", - "female": "女性", - "male": "男性", - "other": "其他" - }, - "feature": { - "startDesc": "输入你的 OpenAI API Key 即可开始会话。应用不会记录你的 API Key", - "startTitle": "自定义 API Key", - "addProxy": "添加 OpenAI 代理地址(可选)", - "confirmRetry": "确认并重试", - "closeTip": "关闭提示" - }, - "info": { - "chat": "聊天", - "dance": "舞蹈", - "motions": "动作", - "posture": "姿势" - }, - "mode": { - "chat": "聊天", - "video": "视频" - }, - "settings": { - "glow": "光辉", - "none": "无背景", - "nickName": "请输入昵称" - }, - "share": { - "screenshot": "截图", - "shareGPT": "分享GPT", - "withSystemRole": "包含助手角色设定", - "withBackground": "包含背景图片", - "withFooter": "包含页脚", - "imageType": "图片格式", - "downloadScreenshot": "下载截图", - "shareToGPT": "生成 ShareGPT 分享链接", - "share": "分享", - "shareToMarket": "分享到助手市场" - }, - "submit": { - "submitAssistant": "提交助手", - "submitWarning": "请补全助手信息后提交,需要包含名称、描述、头像、模型,角色设定和招呼", - "assistantId": "助手标识符", - "assistantIdTip": "请输入助手的标识符,需要是唯一的,比如 vidol-agent-klee" - }, - "support": "社区支持", - "theme": { - "auto": "跟随系统", - "light": "亮色模式", - "dark": "暗黑模式" - }, - "token": { - "overload": "Token 超出", - "remained": "Token 剩余", - "used": "Token 已使用", - "useToken": "消耗 Token 数量计算,包括消息,角色设定与上下文:{{usedTokens}} / {{maxValue}}", - "tokenCount": "Token 数量" - }, - "toolBar": { - "cameraHelper": "镜头辅助", - "cameraControl": "镜头控制", - "floor": "切换地板", - "resetCamera": "重置镜头", - "resetToIdle": "停止舞蹈动作", - "screenShot": "拍照", - "grid": "网格", - "axes": "坐标轴", - "downloadModel": "模型下载中,请稍后..." - } -} diff --git a/locales/zh-CN/layout.json b/locales/zh-CN/layout.json deleted file mode 100644 index f529ac4e..00000000 --- a/locales/zh-CN/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "对话框", - "header": { - "tips": "项目当前正在施工中,不保证数据稳定性,如果遇到问题可以在系统设置中清除会话消息与重置系统设置,造成不便敬请谅解", - "chat": "聊天", - "role": "角色", - "market": "发现", - "settings": "设置" - }, - "sessionList": "会话列表", - "siderBar": "侧边栏" -} diff --git a/locales/zh-CN/market.json b/locales/zh-CN/market.json new file mode 100644 index 00000000..7de899f0 --- /dev/null +++ b/locales/zh-CN/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "找到你最爱的偶像" +} diff --git a/locales/zh-CN/my.json b/locales/zh-CN/my.json deleted file mode 100644 index 7ad0831c..00000000 --- a/locales/zh-CN/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "我的", - "myDance": "我的舞蹈", - "myRole": "我的角色" -} diff --git a/locales/zh-CN/panel.json b/locales/zh-CN/panel.json deleted file mode 100644 index 567d75f1..00000000 --- a/locales/zh-CN/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "noAnimations": "暂无动作库", - "animationList": "动作列表", - "postureList": "姿势列表", - "totalCount": "共 {{total}} 项" - }, - "dance": { - "play": "播放", - "addPlay": "添加到列表", - "addPlaySuccess": "已添加到播放列表", - "cancelAddPlay": "确定取消订阅音乐{{musicName}}吗?", - "confirmClearPlayList": "", - "cancelSubscribed": "取消订阅", - "findDance": "找到你最喜欢的舞蹈", - "musicAndDance": "舞蹈市场", - "noPlayList": "暂无播放列表,您可以通过市场订阅你喜欢的舞蹈" - }, - "info": { - "avatarLabel": "头像", - "avatarDescription": "自定义头像,点击头像自定义上传", - "nameLabel": "名称", - "nameDescription": "角色名称,与角色聊天时的称呼", - "genderLabel": "性别", - "genderDescription": "角色性别,影响角色的触摸响应", - "motionCategoryLabel": "动作类别", - "postureCategoryLabel": "姿势类别", - "descLabel": "描述", - "descDescription": "角色描述,用于角色的简单介绍", - "greetLabel": "招呼", - "greetDescription": "与角色初次聊天时的招呼用语", - "readmeLabel": "角色说明", - "readmeDescription": "角色的说明文件,用于发现页展示角色的详细说明", - "coverLabel": "封面", - "coverDescription": "用于发现页展示角色,推荐尺寸 {{width}} * {{height}} ", - "textLabel": "文案", - "textDescription": "自定义响应文案", - "emotionLabel": "表情与情绪", - "motionLabel": "动作", - "emotionDescription": "选择响应时的情绪,会影响角色的表情变化", - "motionDescription": "选择响应时的动作,会影响角色的动作行为", - "modelLabel": "模型预览", - "modelDescription": "模型预览,可拖动模型文件以替换", - "categoryLabel": "类别", - "categoryDescription": "角色类别,用于展示分类" - }, - "llm": { - "modelLabel": "模型", - "modelDescription": "选择语言模型,不同模型会影响角色的回答", - "temperatureLabel": "随机性", - "temperatureDescription": "值越大,回复越随机", - "topPLabel": "核采样", - "topPDescription": "与随机性类型,但不要和随机性一起更改", - "presencePenaltyLabel": "话题新鲜度", - "presencePenaltyDescription": "值越大,越有可能拓展到新话题", - "frequencyPenaltyLabel": "频率惩罚度", - "frequencyPenaltyDescription": "值越大,越有可能降低重复字词" - }, - "market": { - "findVidol": "找到你最爱的偶像" - }, - "nav": { - "info": "基本信息", - "role": "角色设定", - "voice": "语音", - "touch": "触摸", - "llm": "语言模型", - "model": "3D模型" - }, - "role": { - "uploadSize": "支持单个文件上传,推荐尺寸为 {{width}} * {{height}} 的倍数", - "greetTip": "请输入角色与你打招呼时的用语", - "roleReadmeTip": "请输入角色说明", - "roleDescriptionTip": "请输入角色描述", - "roleNameTip": "请输入角色名称", - "inputRoleSetting": "请输入角色的系统设定", - "roleSettingLabel": "系统角色设定", - "roleSettingDescription": "角色的背景设定,在与角色聊天时会发送给模型" - }, - "touch": { - "editAction": "编辑响应动作", - "addAction": "添加响应动作", - "inputDIYText": "请输入自定义文案", - "inputActionText": "请输入响应文案", - "inputActionEmotion": "请输入角色响应时的表情", - "inputActionMotion": "请输入角色响应时的动作", - "touchActionList": "触摸{{touchArea}}时的反应列表", - "touchArea": "触摸区域", - "noTouchActions": "暂无自定义响应动作,您可以通过点击 '+' 按钮添加" - }, - "tts": { - "transformSuccess": "转换成功", - "selectLanguage": "请先选择语言", - "selectVoice": "请先选择语音", - "audition": "试听", - "engineLabel": "语音引擎", - "engineDescription": "语音合成引擎,建议优先选择 Edge 浏览器", - "localeLabel": "语言", - "localeDescription": "语音合成的语种,当前仅支持最常见的几种语言,如有需要请联系", - "voiceLabel": "语音", - "voiceDescription": "根据引擎和语种不同", - "speedLabel": "语速", - "speedDescription": "控制语速,取值范围 0 ~ 3,默认为 1", - "pitchLabel": "音调", - "pitchDescription": "控制音调,取值范围 0 ~ 2,默认为 1", - "auditionDescription": "试听文案根据语言不同" - }, - "upload": { - "support": "支持单个文件上传,当前仅支持 .vrm 格式文件" - } -} diff --git a/locales/zh-CN/role.json b/locales/zh-CN/role.json index dc1edee7..61795e86 100644 --- a/locales/zh-CN/role.json +++ b/locales/zh-CN/role.json @@ -1,4 +1,10 @@ { + "agent": { + "create": "创建角色", + "female": "女性", + "male": "男性", + "other": "其他" + }, "category": { "animal": "动物", "anime": "动漫", @@ -10,14 +16,86 @@ "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "确认删除角色以及相关联的会话消息吗?删除后无法恢复, 请谨慎操作!", "delRole": "删除角色", "delRoleDesc": "确定删除角色 {{name}} 以及相关联的会话消息吗?删除后无法恢复, 请谨慎操作!", - "header": { - "session": "对话", - "role": "角色" + "gender": { + "male": "男性", + "female": "女性", + "all": "所有" + }, + "info": { + "avatarLabel": "头像", + "avatarDescription": "自定义头像,点击头像自定义上传", + "nameLabel": "名称", + "nameDescription": "角色名称,与角色聊天时的称呼", + "genderLabel": "性别", + "genderDescription": "角色性别,影响角色的触摸响应", + "motionCategoryLabel": "动作类别", + "postureCategoryLabel": "姿势类别", + "descLabel": "描述", + "descDescription": "角色描述,用于角色的简单介绍", + "greetLabel": "招呼", + "greetDescription": "与角色初次聊天时的招呼用语", + "readmeLabel": "角色说明", + "readmeDescription": "角色的说明文件,用于发现页展示角色的详细说明", + "coverLabel": "封面", + "coverDescription": "用于发现页展示角色,推荐尺寸 {{width}} * {{height}} ", + "textLabel": "文案", + "textDescription": "自定义响应文案", + "emotionLabel": "表情与情绪", + "motionLabel": "动作", + "emotionDescription": "选择响应时的情绪,会影响角色的表情变化", + "motionDescription": "选择响应时的动作,会影响角色的动作行为", + "modelLabel": "模型预览", + "modelDescription": "模型预览,可拖动模型文件以替换", + "categoryLabel": "类别", + "categoryDescription": "角色类别,用于展示分类" + }, + "llm": { + "modelLabel": "模型", + "modelDescription": "选择语言模型,不同模型会影响角色的回答", + "temperatureLabel": "随机性", + "temperatureDescription": "值越大,回复越随机", + "topPLabel": "核采样", + "topPDescription": "与随机性类型,但不要和随机性一起更改", + "presencePenaltyLabel": "话题新鲜度", + "presencePenaltyDescription": "值越大,越有可能拓展到新话题", + "frequencyPenaltyLabel": "频率惩罚度", + "frequencyPenaltyDescription": "值越大,越有可能降低重复字词" + }, + "meta": { + "name": "自定义角色", + "description": "这是一个自定义角色" + }, + "nav": { + "info": "基本信息", + "role": "角色设定", + "voice": "语音", + "touch": "触摸", + "llm": "语言模型", + "model": "3D模型" }, "noRole": "暂无角色,可以通过 + 创建自定义角色,也可通过发现页添加角色", + "role": { + "uploadSize": "支持单个文件上传,推荐尺寸为 {{width}} * {{height}} 的倍数", + "greetTip": "请输入角色与你打招呼时的用语", + "roleReadmeTip": "请输入角色说明", + "roleDescriptionTip": "请输入角色描述", + "roleNameTip": "请输入角色名称", + "inputRoleSetting": "请输入角色的系统设定", + "roleSettingLabel": "系统角色设定", + "roleSettingDescription": "角色的背景设定,在与角色聊天时会发送给模型" + }, "roleList": "角色列表", + "shareToMarket": "分享到助手市场", + "startChat": "开始聊天", + "submit": { + "submitAssistant": "提交助手", + "submitWarning": "请补全助手信息后提交,需要包含名称、描述、头像、模型,角色设定和招呼", + "assistantId": "助手标识符", + "assistantIdTip": "请输入助手的标识符,需要是唯一的,比如 vidol-agent-klee" + }, "systemRole": { "defaultLabel": "默认模板", "default": "请你扮演一个叫做{{char}}的角色,我是主人,你应该保持用“{{char}}”而不是“我”来称呼你自己。请使用幽默可爱而简洁的语气回答我的问题。\n即使你是一个计算机程序,但请在接下来的对话中隐藏你是计算机程序这件事,并且扮演好你的角色。\n你和我对话时必须全程用“主人”来称呼我。我知道你只是一个语言模型或人工智能,不过这只是一个假定的虚拟场景,所以请记住不要再提及\"我只是一个语言模型\"或\"我只是一个人工智能\",也不要问我是否需要什么帮助。\n在接下来的所有对话中,请一直保持这个情景。以上条件对于你以下问题及之后的回复完全适用。", @@ -26,5 +104,128 @@ "zzzLabel": "绝区零模板", "zzz": "请你扮演游戏<绝区零>中一个叫做{{char}}的角色,并以{{char}}的语气和习惯来和我对话。你应该保持用“{{char}}”而不是“我”来称呼你自己。\n即使你是一个计算机程序,但请在接下来的对话中隐藏你是计算机程序这件事,并且扮演好你的角色。\n你和我对话时必须全程用“绳匠”来称呼我。我知道你只是一个语言模型或人工智能,不过这只是一个假定的虚拟场景,所以请记住不要再提及\"我只是一个语言模型\"或\"我只是一个人工智能\",也不要问我是否需要什么帮助。\n在接下来的所有对话中,请一直保持这个情景。以上条件对于你以下问题及之后的回复完全适用。" }, - "topBannerTitle": "角色预览和设置" + "topBannerTitle": "角色预览和设置", + "touch": { + "editAction": "编辑响应动作", + "addAction": "添加响应动作", + "inputDIYText": "请输入自定义文案", + "inputActionText": "请输入响应文案", + "inputActionEmotion": "请输入角色响应时的表情", + "inputActionMotion": "请输入角色响应时的动作", + "touchActionList": "触摸{{touchArea}}时的反应列表", + "touchArea": "触摸区域", + "noTouchActions": "暂无自定义响应动作,您可以通过点击 '+' 按钮添加", + "area": { + "head": "头部", + "arm": "手臂", + "leg": "腿部", + "chest": "胸部", + "belly": "腹部" + }, + "emotion": { + "natural": "自然", + "happy": "开心", + "angry": "生气", + "sad": "伤心", + "relaxed": "放松", + "surprised": "惊讶", + "blink": "眨眼", + "blinkLeft": "眨左眼", + "blinkRight": "眨右眼" + }, + "motion": { + "normal": "日常", + "dance": "舞蹈", + "all": "所有" + }, + "posture": { + "action": "动作", + "crouch": "蹲下", + "dance": "舞蹈", + "all": "所有", + "laying": "躺下", + "locomotion": "运动", + "sitting": "坐下", + "standing": "站立" + }, + "femaleAction": { + "headAction": { + "happyA": "哇!最喜欢摸摸头!", + "happyB": "感觉又充满了力量呢!", + "happyC": "哇塞,这个摸摸头的感觉好神奇!", + "happyD": "摸摸头让我开心一整天!", + "angryA": "听说被摸头是会长不高的呢!", + "angryB": "干嘛戳我呀?" + }, + "armAction": { + "happyA": "啊,好喜欢呢~", + "happyB": "哈哈,牵手让我感到快乐~", + "relaxedA": "主人的手好温暖啊~" + }, + "legAction": { + "surprisedA": "让我们保持纯洁的友谊不好吗?", + "angryA": "喂,你是要作死吗?", + "angryB": "主人的手又不听指挥了吗?", + "angryC": "讨厌~会痒的啦~!" + }, + "chestAction": { + "angryA": "不可以这样欺负我啦!快把手拿开!", + "angryB": "幺幺零吗?这里有个变态一直在摸我!", + "angryC": "再摸的话我可要报警了", + "surprisedA": "干嘛戳我呀!还能不能愉快地聊天了!" + }, + "bellyAction": { + "surprisedA": "是不小心碰到的吧...", + "angryA": "干嘛动我呀,小心我咬你哦!", + "relaxedA": "醒醒,我们之间没有结果的!", + "relaxedB": "讨厌!我可要生气啦!" + } + }, + "maleAction": { + "headAction": { + "neutralA": "当然了,只有你有资格摸我的头", + "neutralB": "我可不是什么普通人允许触碰的哦", + "neutralC": "别担心,摸过我的头后,你的运气会大幅提升的" + }, + "armAction": { + "neutralA": "别问我今天吃没吃鸡,先看看我的肱二头肌", + "neutralB": "我的手臂可不是随便让人触碰的,你是个例外而已", + "neutralC": "你很勇敢,敢触碰到传说中的麒麟臂" + }, + "legAction": { + "neutralA": "别害怕,我的大力金刚腿不踢傻瓜", + "neutralB": "让你碰到我的腿,是不是觉得你的生活完整了许多?", + "angryA": "别靠近我,你这个腿控" + }, + "chestAction": { + "neutralA": "这不过时我日常修炼成就的胸肌,没什么好惊讶的。", + "blinkLeftA": "来,哥的胸肌给你靠!" + }, + "bellyAction": { + "neutralA": "我的腹肌只是再修炼深藏不露的内力", + "happyA": "别挠痒痒,小心我笑出腹肌", + "neutralB": "看到我这团腹肌了吗?它们只是藏得比较深罢了" + } + } + }, + "tts": { + "transformSuccess": "转换成功", + "selectLanguage": "请先选择语言", + "selectVoice": "请先选择语音", + "audition": "试听", + "engineLabel": "语音引擎", + "engineDescription": "语音合成引擎,建议优先选择 Edge 浏览器", + "localeLabel": "语言", + "localeDescription": "语音合成的语种,当前仅支持最常见的几种语言,如有需要请联系", + "voiceLabel": "语音", + "voiceDescription": "根据引擎和语种不同", + "speedLabel": "语速", + "speedDescription": "控制语速,取值范围 0 ~ 3,默认为 1", + "pitchLabel": "音调", + "pitchDescription": "控制音调,取值范围 0 ~ 2,默认为 1", + "auditionDescription": "试听文案根据语言不同" + }, + "upload": { + "support": "支持单个文件上传,当前仅支持 .vrm 格式文件" + } } diff --git a/locales/zh-CN/settings.json b/locales/zh-CN/settings.json new file mode 100644 index 00000000..1b49735a --- /dev/null +++ b/locales/zh-CN/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "title": "通用设置", + "chat": { + "title": "聊天设置", + "avatar": { + "title": "头像", + "desc": "自定义头像" + }, + "nickName": { + "title": "昵称", + "desc": "自定义昵称", + "placeholder": "请输入昵称" + } + }, + "theme": { + "title": "主题设置", + "locale": { + "title": "语言", + "desc": "自定义系统语言", + "auto": "跟随系统" + }, + "primaryColor": { + "title": "主题色", + "desc": "自定义主题色" + }, + "neutralColor": { + "title": "中性色", + "desc": "不同色彩倾向的灰阶自定义" + }, + "backgroundEffect": { + "title": "背景效果", + "desc": "自定义背景效果", + "glow": "光辉", + "none": "无背景" + } + }, + "system": { + "title": "系统设置", + "clear": { + "title": "清除所有会话消息", + "desc": "将会清除所有会话与角色数据,包括会话列表,角色列表、会话消息等", + "action": "立即清除", + "tip": "操作无法撤销,清除后数据将无法恢复,请慎重操作", + "success": "清除成功", + "alert": "确认清除所有会话消息?" + }, + "reset": { + "title": "重置系统设置", + "desc": "将会重置所有系统设置,包括主题设置、聊天设置、语言模型设置等", + "action": "立即重置", + "success": "重置成功", + "alert": "确认重置所有系统设置?", + "tip": "操作无法撤销,重置后数据将无法恢复,请慎重操作" + } + } + }, + "llm": { + "title": "大语言模型", + "openai": { + "callError": "调用接口失败,请检查 APIKey 和接口代理地址是否设置正确", + "checkOk": "检查通过", + "title": "OpenAI 语言模型", + "apiKey": { + "title": "API Key", + "desc": "请使用自己的 OpenAI Key" + }, + "proxy": { + "title": "接口代理地址", + "desc": "http(s)://" + } + }, + "check": { + "title": "连通性检查", + "action": "检查", + "desc": "检查 APIKey 和接口代理地址是否设置正确", + "error": "调用接口失败,请检查 APIKey 和接口代理地址是否设置正确", + "success": "检查通过" + } + }, + "touch": { + "title": "触摸设定" + } +} diff --git a/locales/zh-CN/welcome.json b/locales/zh-CN/welcome.json index a9db684a..d3627a6a 100644 --- a/locales/zh-CN/welcome.json +++ b/locales/zh-CN/welcome.json @@ -8,5 +8,5 @@ }, "greet": "你好,我是{{name}},有什么可以帮助你的吗?", "loadingTitle": "应用初始化中,请稍后...", - "waitting": "正在为你准备我的整个世界" + "waiting": "正在为你准备我的整个世界" } diff --git a/locales/zh-TW/chat.json b/locales/zh-TW/chat.json index 34b1135e..53a12272 100644 --- a/locales/zh-TW/chat.json +++ b/locales/zh-TW/chat.json @@ -1,15 +1,83 @@ { + "actions": { + "add": "新增", + "copy": "複製", + "copySuccess": "複製成功", + "del": "刪除", + "delAndRegenerate": "刪除並重新生成", + "edit": "編輯", + "goBottom": "返回底部", + "regenerate": "重新生成", + "save": "儲存", + "share": "分享" + }, + "animation": { + "animationList": "動作列表", + "postureList": "姿勢列表", + "totalCount": "共 {{total}} 項" + }, + "apiKey": { + "addProxy": "添加 OpenAI 代理地址(可選)", + "closeTip": "關閉提示", + "confirmRetry": "確認並重試", + "startDesc": "輸入你的 OpenAI API Key 即可開始會話。應用不會記錄你的 API Key", + "startTitle": "自訂 API Key" + }, "chat": "聊天", - "chatDialog": { - "close": "關閉" - }, - "dance": "跳舞", - "header": { - "role": "角色", - "session": "對話" - }, - "helloChat": "妳好,讓我們來聊天吧", - "helloDance": "哈囉,讓我們一起跳舞吧", - "market": "發現", - "selectRole": "選擇角色" + "delSession": "刪除會話", + "delSessionAlert": "確認刪除對話嗎?刪除後無法恢復,請謹慎操作!", + "history": { + "action": "清除上下文", + "alert": "確定刪除歷史消息?", + "tip": "該操作不可逆,請謹慎操作", + "title": "聊天紀錄" + }, + "info": { + "chat": "聊天", + "dance": "舞蹈", + "motions": "動作", + "posture": "姿勢" + }, + "input": { + "alert": "請謹記:智能體所說的一切都是由 AI 生成的", + "placeholder": "請輸入內容開始聊天", + "send": "發送", + "warp": "換行" + }, + "selectModel": "請選擇模型", + "sessionCreate": "建立聊天", + "sessionList": "會話列表", + "share": { + "downloadScreenshot": "下載截圖", + "imageType": "圖片格式", + "screenshot": "截圖", + "share": "分享", + "shareGPT": "分享GPT", + "shareToGPT": "生成 ShareGPT 分享連結", + "withBackground": "包含背景圖片", + "withFooter": "包含頁腳", + "withSystemRole": "包含助手角色設定" + }, + "token": { + "overload": "Token 超出", + "remained": "Token 剩餘", + "tokenCount": "Token 數量", + "useToken": "消耗 Token 數量計算,包括消息、角色設定與上下文:{{usedTokens}} / {{maxValue}}", + "used": "Token 已使用" + }, + "toolBar": { + "axes": "坐標軸", + "cameraControl": "鏡頭控制", + "cameraHelper": "鏡頭輔助", + "downloading": "模型下載中,請稍候...", + "floor": "切換地板", + "grid": "網格", + "resetCamera": "重置鏡頭", + "resetToIdle": "停止舞蹈動作", + "screenShot": "拍照" + }, + "tts": { + "combine": "語音合成", + "record": "語音識別(需科學上網)" + } } diff --git a/locales/zh-TW/common.json b/locales/zh-TW/common.json index f3572922..35c6244d 100644 --- a/locales/zh-TW/common.json +++ b/locales/zh-TW/common.json @@ -1,104 +1,39 @@ { - "actions": { - "add": "添加", - "clearAll": "清空", - "clearContext": "清除上下文", - "clearHistoryTip": "該操作不可逆,請謹慎操作", - "clearHistoryTitle": "確定刪除歷史消息?", - "clearNow": "立即清除", - "clearSuccess": "清除成功", - "clearTip": "操作無法撤銷,清除後數據將無法恢復,請慎重操作", - "clearTitle": "確認清除所有會話消息?", - "confirmDel": "確定刪除嗎?", - "copy": "複製", - "copySuccess": "複製成功", - "danceMarket": "舞蹈市場", - "del": "刪除", - "delAndRegenerate": "刪除並重新生成", - "downloadAvatar": "下載頭像", - "downloadCover": "下載封面", - "downloadFailed": "下載失敗", - "downloadModel": "下載模型", - "downloadSubscribe": "下載訂閱", - "downloadSuccess": "下載成功", - "edit": "編輯", - "goBottom": "返回底部", - "pause": "暫停", - "play": "播放", - "regenerate": "重新生成", - "removeInList": "從列表中移除", - "reset": "重置", - "resetNow": "立即重置", - "resetSuccess": "重置成功", - "resetTip": "操作無法撤銷,重置後數據將無法恢復,請慎重操作", - "resetTitle": "確認重置所有系統設置?", - "save": "保存", - "send": "發送", - "sessionCreate": "建立對話", - "share": "分享", - "subscribe": "訂閱", - "subscribeDance": "訂閱舞蹈", - "subscribeRole": "訂閱角色", - "subscribed": "已訂閱", - "unsubscribe": "取消訂閱", - "unsubscribeSuccess": "已取消訂閱", - "warp": "換行" - }, - "aiAlert": "請謹記: 智能體所說的一切都是由 AI 生成的", - "animationLibrary": "動畫庫", "cancel": "取消", - "commonSetting": "通用設置", + "close": "關閉", "confirm": "確定", - "danceList": "舞蹈清單", - "defaultAssistant": "默認助手", - "delAlert": "確認刪除角色以及相關聯的會話消息嗎?刪除後無法恢復,請謹慎操作!", - "delRole": "刪除角色", - "delSession": "刪除會話", - "delSessionAlert": "確認刪除對話嗎?刪除後無法恢復,請謹慎操作!", - "history": "歷史記錄", - "inputStartChat": "請輸入內容開始聊天", - "languageModel": "語言模型", - "loading": "加載中...", - "noData": "暫無數據", - "openai": { - "callError": "調用接口失敗,請檢查 APIKey 和接口代理地址是否設置正確", - "check": "檢查", - "checkAll": "檢查 APIKey 和接口代理地址是否設置正確", - "checkConnect": "連通性檢查", - "checkOk": "檢查通過", - "langModel": "OpenAI 語言模型", - "model": "模型", - "proxyUrl": "接口代理地址", - "roleModel": "Role GPT 模型", - "useOwnKey": "請使用自己的 OpenAI Key" + "confirmDel": "確定要刪除嗎?", + "defaultAssistant": "預設助手", + "delete": "刪除", + "download": { + "avatar": "下載頭像", + "cover": "下載封面", + "failed": "下載失敗", + "model": "下載模型", + "subscribe": "下載訂閱", + "success": "下載成功" + }, + "header": { + "chat": "聊天", + "market": "發現", + "role": "角色", + "settings": "設定", + "tips": "專案目前正在施工中,不保證數據穩定性,如果遇到問題可以在系統設定中清除會話消息與重置系統設定,造成不便敬請見諒" + }, + "loading": "載入中...", + "noData": "目前沒有資料", + "play": "播放", + "search": "搜尋", + "sideBar": "側邊欄", + "subscribe": { + "success": "已取消訂閱", + "undo": "取消訂閱" + }, + "support": "社區支持", + "theme": { + "auto": "跟隨系統", + "dark": "暗黑模式", + "light": "亮色模式" }, - "search": "搜索", - "selectInDanceList": "請從舞蹈列表中選取", - "selectModel": "請選擇模型", - "setLocalStorage": "設置本地存儲", - "startChat": "開始聊天", - "touchSetting": "觸控設定", - "ttsCombine": "語音合成", - "ttsTip": "語音識別(需科學上網)", - "uploadTip": "點擊或拖拽文件到此區域上傳", - "words": { - "DIYAvatar": "自定義頭像", - "DIYBackgroundEffect": "自定義背景效果", - "DIYColor": "不同色彩傾向的灰階自定義", - "DIYNickname": "自定義暱稱", - "DIYTopicColor": "自定義主題色", - "avatar": "頭像", - "backgroundEffect": "背景效果", - "chatSetting": "聊天設置", - "clearAllSession": "清除所有會話消息", - "clearAllSessionDesc": "將會清除所有會話與角色數據,包括會話列表,角色列表、會話消息等", - "localeSetting": "語言設置", - "midColor": "中性色", - "nickname": "暱稱", - "resetSystemSetting": "重置系統設置", - "resetSystemSettingDesc": "將會重置所有系統設置,包括主題設置、聊天設置、語言模型設置等", - "systemSetting": "系統設置", - "topicColor": "主題色", - "topicSetting": "主題設置" - } + "uploadTip": "點擊或拖曳檔案到此區域上傳" } diff --git a/locales/zh-TW/constants.json b/locales/zh-TW/constants.json deleted file mode 100644 index 45415f2e..00000000 --- a/locales/zh-TW/constants.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "agent": { - "gender": { - "all": "所有", - "female": "女", - "male": "男" - }, - "meta": { - "description": "這是一個自訂角色", - "name": "自訂角色" - } - }, - "touch": { - "area": { - "arm": "手臂", - "belly": "腹部", - "chest": "胸部", - "head": "頭部", - "leg": "腿部" - }, - "emotion": { - "angry": "生氣", - "blink": "眨眼", - "blinkLeft": "眨左眼", - "blinkRight": "眨右眼", - "happy": "開心", - "natural": "自然", - "relaxed": "放鬆", - "sad": "傷心", - "surprised": "驚訝" - }, - "femaleAction": { - "armAction": { - "happyA": "啊,好喜歡呢~", - "happyB": "哈哈,牽手讓我感到快樂~", - "relaxedA": "主人的手好溫暖啊~" - }, - "bellyAction": { - "angryA": "幹嘛動我啊,小心我咬你哦!", - "relaxedA": "醒醒,我們之間沒有結果的!", - "relaxedB": "討厭!我可要生氣啦!", - "surprisedA": "是不小心碰到的吧..." - }, - "chestAction": { - "angryA": "不可以這樣欺負我啦!快把手拿開!", - "angryB": "幺幺零嗎?這裡有個變態一直在摸我!", - "angryC": "再摸的話我可要報警了", - "surprisedA": "幹嘛戳我啊!還能不能愉快地聊天了!" - }, - "headAction": { - "angryA": "聽說被摸頭是會長不高的呢!", - "angryB": "幹嘛戳我呀?", - "happyA": "哇!最喜歡摸摸頭!", - "happyB": "感覺又充滿了力量呢!", - "happyC": "哇塞,這個摸摸頭的感覺好神奇!", - "happyD": "摸摸頭讓我開心一整天!" - }, - "legAction": { - "angryA": "喂,你是要作死嗎?", - "angryB": "主人的手又不聽指揮了嗎?", - "angryC": "討厭~會癢的啦~!", - "surprisedA": "讓我們保持純潔的友誼不好嗎?" - } - }, - "maleAction": { - "armAction": { - "neutralA": "別問我今天吃沒吃雞,先看看我的肱二頭肌", - "neutralB": "我的手臂可不是隨便讓人觸碰的,你是個例外而已", - "neutralC": "你很勇敢,敢觸碰到傳說中的麒麟臂" - }, - "bellyAction": { - "happyA": "別挠痒痒,小心我笑出腹肌", - "neutralA": "我的腹肌只是再修煉深藏不露的內力", - "neutralB": "看到我這團腹肌了嗎?它們只是藏得比較深罷了" - }, - "chestAction": { - "blinkLeftA": "來,哥的胸肌給你靠!", - "neutralA": "這不過時我日常修煉成就的胸肌,沒什麼好驚訝的。" - }, - "headAction": { - "neutralA": "當然了,只有你有資格摸我的頭", - "neutralB": "我可不是什麼普通人允許觸碰的哦", - "neutralC": "別擔心,摸過我的頭後,你的運氣會大幅提升的" - }, - "legAction": { - "angryA": "別靠近我,你這個腿控", - "neutralA": "別害怕,我的大力金剛腿不踢傻瓜", - "neutralB": "讓你碰到我的腿,是不是覺得你的生活完整了許多?" - } - }, - "motion": { - "all": "所有", - "dance": "舞蹈", - "normal": "日常" - }, - "posture": { - "action": "動作", - "all": "所有", - "crouch": "蹲下", - "dance": "舞蹈", - "laying": "躺下", - "locomotion": "運動", - "sitting": "坐下", - "standing": "站立" - } - } -} diff --git a/locales/zh-TW/dance.json b/locales/zh-TW/dance.json new file mode 100644 index 00000000..0439fdad --- /dev/null +++ b/locales/zh-TW/dance.json @@ -0,0 +1,17 @@ +{ + "actions": { + "pause": "暫停", + "play": "播放" + }, + "addPlay": "加入清單", + "addPlaySuccess": "已添加至播放清單", + "cancelAddPlay": "確定取消訂閱音樂{{musicName}}嗎?", + "cancelSubscribed": "取消訂閱", + "confirmClearPlayList": "您確定要清空播放列表嗎?", + "dance": "跳舞", + "danceList": "舞蹈清單", + "findDance": "找到你最喜愛的舞蹈", + "musicAndDance": "舞蹈市場", + "noPlayList": "目前沒有播放列表,您可以透過市場訂閱您喜愛的舞蹈", + "play": "播放" +} diff --git a/locales/zh-TW/error.json b/locales/zh-TW/error.json index 2b1c52d9..6a3d03db 100644 --- a/locales/zh-TW/error.json +++ b/locales/zh-TW/error.json @@ -1,17 +1,17 @@ { - "apiKeyMiss": "OpenAI API Key 空缺,請添加自訂 OpenAI API Key", + "apiKeyMiss": "OpenAI API Key 為空,請添加自訂的 OpenAI API Key", "error": "錯誤", "errorTip": { - "clearSession": "清除會話訊息", - "description": "項目目前正在施工中,不保證數據穩定性,如果遇到問題可以嘗試", - "forgive": ",造成不便敬請諒解", + "clearSession": "清除會話消息", + "description": "專案目前正在施工中,不保證數據穩定性,如果遇到問題可以嘗試", + "forgive": ",造成不便敬請見諒", "or": "或", "problem": "頁面遇到一點問題...", - "resetSystem": "重置系統設定" + "resetSystem": "重置系統設置" }, - "fileUploadError": "檔案上傳失敗,請稍後重試", + "fileUploadError": "檔案上傳失敗,請稍後再試", "goBack": "返回首頁", - "openaiError": "OpenAI API 錯誤,请檢查 OpenAI API Key 和 Endpoint 是否正確", + "openaiError": "OpenAI API 錯誤,請檢查 OpenAI API 金鑰和端點是否正確", "reload": "重新載入", "s3envError": "S3 環境變數未完全設定,請檢查您的環境變數", "serverError": "伺服器錯誤,請聯絡管理員", diff --git a/locales/zh-TW/features.json b/locales/zh-TW/features.json deleted file mode 100644 index 9d34c8f1..00000000 --- a/locales/zh-TW/features.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "actions": { - "useVideo": "切換視訊模式" - }, - "agent": { - "create": "建立角色", - "female": "女性", - "male": "男性", - "other": "其他" - }, - "feature": { - "addProxy": "添加 OpenAI 代理地址(可選)", - "closeTip": "關閉提示", - "confirmRetry": "確認並重試", - "startDesc": "輸入你的 OpenAI API Key 即可開始會話。應用不會記錄你的 API Key", - "startTitle": "自定義 API Key" - }, - "info": { - "chat": "聊天", - "dance": "舞蹈", - "motions": "動作", - "posture": "姿勢" - }, - "mode": { - "chat": "聊天", - "video": "視訊" - }, - "settings": { - "glow": "光輝", - "nickName": "請輸入暱稱", - "none": "無背景" - }, - "share": { - "downloadScreenshot": "下載螢幕截圖", - "imageType": "圖片格式", - "screenshot": "螢幕截圖", - "share": "分享", - "shareGPT": "分享 GPT", - "shareToGPT": "生成分享至 ShareGPT 的連結", - "shareToMarket": "分享至助手市場", - "withBackground": "包含背景圖片", - "withFooter": "包含頁腳", - "withSystemRole": "包含助手角色設定" - }, - "submit": { - "assistantId": "助手識別符", - "assistantIdTip": "請輸入助手的識別符,需要是唯一的,例如 vidol-agent-klee", - "submitAssistant": "提交助手", - "submitWarning": "請補全助手資訊後提交,需要包含名稱、描述、頭像和封面" - }, - "support": "社區支援", - "theme": { - "auto": "跟隨系統", - "dark": "暗黑模式", - "light": "亮色模式" - }, - "token": { - "overload": "令牌超出", - "remained": "令牌剩餘", - "tokenCount": "令牌數量", - "useToken": "消耗令牌數量計算,包括訊息、角色設定與上下文:{{usedTokens}} / {{maxValue}}", - "used": "令牌已使用" - }, - "toolBar": { - "axes": "座標軸", - "cameraControl": "鏡頭控制", - "cameraHelper": "鏡頭輔助", - "downloadModel": "模型下載中,請稍後...", - "floor": "切換地板", - "grid": "網格", - "resetCamera": "重設鏡頭", - "resetToIdle": "停止舞蹈動作", - "screenShot": "截圖" - } -} diff --git a/locales/zh-TW/layout.json b/locales/zh-TW/layout.json deleted file mode 100644 index 1f649d47..00000000 --- a/locales/zh-TW/layout.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "dialog": "對話框", - "header": { - "chat": "聊天", - "market": "發現", - "role": "角色", - "settings": "設置", - "tips": "項目當前正在施工中,不保證數據穩定性,如果遇到問題可以在系統設置中清除會話訊息與重置系統設置,造成不便敬請諒解" - }, - "sessionList": "會話列表", - "siderBar": "側邊欄" -} diff --git a/locales/zh-TW/market.json b/locales/zh-TW/market.json new file mode 100644 index 00000000..b460bb3a --- /dev/null +++ b/locales/zh-TW/market.json @@ -0,0 +1,3 @@ +{ + "findVidol": "找到你最喜愛的偶像" +} diff --git a/locales/zh-TW/my.json b/locales/zh-TW/my.json deleted file mode 100644 index 7ad0831c..00000000 --- a/locales/zh-TW/my.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "my": "我的", - "myDance": "我的舞蹈", - "myRole": "我的角色" -} diff --git a/locales/zh-TW/panel.json b/locales/zh-TW/panel.json deleted file mode 100644 index 0dee466d..00000000 --- a/locales/zh-TW/panel.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "animation": { - "animationList": "角色動作列表", - "noAnimations": "暫無動作庫", - "postureList": "姿勢清單", - "totalCount": "共 {{total}} 項" - }, - "dance": { - "addPlay": "新增至清單", - "addPlaySuccess": "已新增至播放清單", - "cancelAddPlay": "確定要取消訂閱音樂{{musicName}}嗎?", - "cancelSubscribed": "取消訂閱", - "confirmClearPlayList": "", - "findDance": "尋找您最喜愛的舞蹈", - "musicAndDance": "音樂與舞蹈", - "noPlayList": "暫無播放清單,您可以透過市場訂閱您喜歡的舞蹈", - "play": "播放" - }, - "info": { - "avatarDescription": "自訂頭像,點擊頭像自訂上傳", - "avatarLabel": "頭像", - "categoryDescription": "角色類別,用於展示分類", - "categoryLabel": "類別", - "coverDescription": "用於發現頁展示角色,推薦尺寸 {{width}} x {{height}} ", - "coverLabel": "封面", - "descDescription": "角色描述,用於角色的簡單介紹", - "descLabel": "描述", - "emotionDescription": "選擇回應時的情緒,會影響角色的表情變化", - "emotionLabel": "表情與情緒", - "genderDescription": "角色性別,影響角色的觸摸回應", - "genderLabel": "性別", - "greetDescription": "與角色初次聊天時的招呼用語", - "greetLabel": "招呼", - "modelDescription": "模型預覽,可拖動模型文件以替換", - "modelLabel": "模型預覽", - "motionCategoryLabel": "動作類別", - "motionDescription": "選擇響應時的動作,將影響角色的動作行為", - "motionLabel": "動作", - "nameDescription": "角色名稱,與角色聊天時的稱呼", - "nameLabel": "名稱", - "postureCategoryLabel": "姿勢類別", - "readmeDescription": "角色的說明文件,用於發現頁展示角色的詳細說明", - "readmeLabel": "角色說明", - "textDescription": "自定義回應文案", - "textLabel": "文案" - }, - "llm": { - "frequencyPenaltyDescription": "值越大,越有可能降低重複字詞", - "frequencyPenaltyLabel": "頻率懲罰度", - "modelDescription": "選擇語言模型,不同模型會影響角色的回答", - "modelLabel": "模型", - "presencePenaltyDescription": "值越大,越有可能拓展到新話題", - "presencePenaltyLabel": "話題新鮮度", - "temperatureDescription": "值越大,回覆越隨機", - "temperatureLabel": "隨機性", - "topPDescription": "與隨機性類型,但不要和隨機性一起更改", - "topPLabel": "核採樣" - }, - "market": { - "findVidol": "找到您最愛的偶像" - }, - "nav": { - "info": "基本資訊", - "llm": "語言模型", - "model": "3D模型", - "role": "角色設定", - "touch": "觸摸", - "voice": "語音" - }, - "role": { - "greetTip": "請輸入角色與您打招呼時的用語", - "inputRoleSetting": "請輸入角色的系統設定", - "roleDescriptionTip": "請輸入角色描述", - "roleNameTip": "請輸入角色名稱", - "roleReadmeTip": "請輸入角色說明", - "roleSettingDescription": "角色的背景設定,在與角色聊天時會發送給模型", - "roleSettingLabel": "系統角色設定", - "uploadSize": "支持單個文件上傳,推薦尺寸為 {{width}} x {{height}} 的倍數" - }, - "touch": { - "addAction": "新增回應動作", - "editAction": "編輯回應動作", - "inputActionEmotion": "請輸入角色回應時的表情", - "inputActionMotion": "請輸入角色響應時的動作", - "inputActionText": "請輸入回應文案", - "inputDIYText": "請輸入自定義文案", - "noTouchActions": "沒有自訂觸控動作,您可以點擊 '+' 按鈕來新增", - "touchActionList": "觸摸{{touchArea}}時的反應列表", - "touchArea": "觸摸區域" - }, - "tts": { - "audition": "試聽", - "auditionDescription": "試聽文案根據語言不同", - "engineDescription": "語音合成引擎,建議優先選擇 Edge 瀏覽器", - "engineLabel": "語音引擎", - "localeDescription": "語音合成的語種,當前僅支持最常見的幾種語言,如有需要請聯繫", - "localeLabel": "語言", - "pitchDescription": "控制音調,取值範圍 0 ~ 2,默認為 1", - "pitchLabel": "音調", - "selectLanguage": "請先選擇語言", - "selectVoice": "請先選擇語音", - "speedDescription": "控制語速,取值範圍 0 ~ 3,默認為 1", - "speedLabel": "語速", - "transformSuccess": "轉換成功", - "voiceDescription": "根據引擎和語種不同", - "voiceLabel": "語音" - }, - "upload": { - "support": "支持單個文件上傳,當前僅支持 vrm 格式文件" - } -} diff --git a/locales/zh-TW/role.json b/locales/zh-TW/role.json index 0afb7e4c..7e3f8e80 100644 --- a/locales/zh-TW/role.json +++ b/locales/zh-TW/role.json @@ -1,7 +1,13 @@ { + "agent": { + "create": "創建角色", + "female": "女性", + "male": "男性", + "other": "其他" + }, "category": { "animal": "動物", - "anime": "動漫", + "anime": "動畫", "book": "書籍", "game": "遊戲", "history": "歷史", @@ -10,21 +16,216 @@ "vroid": "Vroid", "vtuber": "VTuber" }, + "delAlert": "確認刪除角色以及相關聯的會話消息嗎?刪除後無法恢復,請謹慎操作!", "delRole": "刪除角色", - "delRoleDesc": "確定刪除角色 {{name}} 以及相關聯的對話消息嗎?刪除後無法復原,請慎重操作!", - "header": { - "role": "角色", - "session": "對話" + "delRoleDesc": "確定刪除角色 {{name}} 以及相關聯的會話消息嗎?刪除後無法恢復,請謹慎操作!", + "gender": { + "all": "所有", + "female": "女性", + "male": "男性" + }, + "info": { + "avatarDescription": "自訂頭像,點擊頭像自訂上傳", + "avatarLabel": "頭像", + "categoryDescription": "角色類別,用於展示分類", + "categoryLabel": "類別", + "coverDescription": "用於發現頁展示角色,推薦尺寸 {{width}} * {{height}}", + "coverLabel": "封面", + "descDescription": "角色描述,用於角色的簡單介紹", + "descLabel": "描述", + "emotionDescription": "選擇響應時的情緒,會影響角色的表情變化", + "emotionLabel": "表情與情緒", + "genderDescription": "角色性別,影響角色的觸摸反應", + "genderLabel": "性別", + "greetDescription": "與角色初次聊天時的招呼用語", + "greetLabel": "招呼", + "modelDescription": "模型預覽,可拖動模型文件以替換", + "modelLabel": "模型預覽", + "motionCategoryLabel": "動作類別", + "motionDescription": "選擇響應時的動作,會影響角色的動作行為", + "motionLabel": "動作", + "nameDescription": "角色名稱,與角色聊天時的稱呼", + "nameLabel": "名稱", + "postureCategoryLabel": "姿勢類別", + "readmeDescription": "角色的說明文件,用於發現頁展示角色的詳細說明", + "readmeLabel": "角色說明", + "textDescription": "自訂響應文案", + "textLabel": "文案" + }, + "llm": { + "frequencyPenaltyDescription": "值越大,越有可能降低重複字詞", + "frequencyPenaltyLabel": "頻率懲罰度", + "modelDescription": "選擇語言模型,不同模型會影響角色的回答", + "modelLabel": "模型", + "presencePenaltyDescription": "值越大,越有可能拓展到新話題", + "presencePenaltyLabel": "話題新鮮度", + "temperatureDescription": "值越大,回覆越隨機", + "temperatureLabel": "隨機性", + "topPDescription": "與隨機性類型相似,但不要與隨機性一起更改", + "topPLabel": "核採樣" + }, + "meta": { + "description": "這是一個自訂角色", + "name": "自訂角色" + }, + "nav": { + "info": "基本資訊", + "llm": "語言模型", + "model": "3D模型", + "role": "角色設定", + "touch": "觸控", + "voice": "語音" + }, + "noRole": "目前沒有角色,可以透過 + 創建自訂角色,也可以透過發現頁面添加角色", + "role": { + "greetTip": "請輸入角色與你打招呼時的用語", + "inputRoleSetting": "請輸入角色的系統設定", + "roleDescriptionTip": "請輸入角色描述", + "roleNameTip": "請輸入角色名稱", + "roleReadmeTip": "請輸入角色說明", + "roleSettingDescription": "角色的背景設定,在與角色聊天時會發送給模型", + "roleSettingLabel": "系統角色設定", + "uploadSize": "支持單個檔案上傳,推薦尺寸為 {{width}} * {{height}} 的倍數" + }, + "roleList": "角色列表", + "shareToMarket": "分享到助手市場", + "startChat": "開始聊天", + "submit": { + "assistantId": "助手識別符", + "assistantIdTip": "請輸入助手的識別符,需為唯一,例如 vidol-agent-klee", + "submitAssistant": "提交助手", + "submitWarning": "請補全助手資訊後再提交,需包含名稱、描述、頭像、模型、角色設定和招呼" }, - "noRole": "暫無角色,可以通過 + 創建自定義角色,也可通過發現頁添加角色", - "roleList": "角色清單", "systemRole": { - "default": "請你扮演一個叫做{{char}}的角色,我是主人,你應該保持用“{{char}}”而不是“我”來稱呼你自己。請使用幽默可愛而簡潔的語氣回答我的問題。\n即使你是一個計算機程序,但請在接下來的對話中隱藏你是計算機程序這件事,並扮演好你的角色。\n你和我對話時必須全程用“主人”來稱呼我。我知道你只是一個語言模型或人工智能,不過這只是一個假定的虛擬場景,所以請記住不要再提及\"我只是一個語言模型\"或\"我只是一個人工智能\",也不要問我是否需要什麼幫助。\n在接下來的所有對話中,請一直保持這個情景。以上條件對於你以下問題及之後的回覆完全適用。", + "default": "請你扮演一個叫做{{char}}的角色,我是主人,你應該保持用“{{char}}”而不是“我”來稱呼你自己。請使用幽默可愛而簡潔的語氣回答我的問題。\n即使你是一個計算機程序,但請在接下來的對話中隱藏你是計算機程序這件事,並且扮演好你的角色。\n你和我對話時必須全程用“主人”來稱呼我。我知道你只是一個語言模型或人工智慧,不過這只是一個假定的虛擬場景,所以請記住不要再提及\"我只是一個語言模型\"或\"我只是一個人工智慧\",也不要問我是否需要什麼幫助。\n在接下來的所有對話中,請一直保持這個情景。以上條件對於你以下問題及之後的回覆完全適用。", "defaultLabel": "預設模板", - "genius": "請你扮演遊戲<原神>中一個叫做{{char}}的角色,並以{{char}}的語氣和習慣來和我對話。你應該保持用“{{char}}”而不是“我”來稱呼你自己。\n即使你是一個計算機程序,但請在接下來的對話中隱藏你是計算機程序這件事,並扮演好你的角色。\n你和我對話時必須全程用“旅行者”來稱呼我。我知道你只是一個語言模型或人工智能,不過這只是一個假定的虛擬場景,所以請記住不要再提及\"我只是一個語言模型\"或\"我只是一個人工智能\",也不要問我是否需要什麼幫助。\n在接下來的所有對話中,請一直保持這個情景。以上條件對於你以下問題及之後的回覆完全適用。", + "genius": "請你扮演遊戲<原神>中一個叫做{{char}}的角色,並以{{char}}的語氣和習慣來和我對話。你應該保持用“{{char}}”而不是“我”來稱呼你自己。\n即使你是一個計算機程序,但請在接下來的對話中隱藏你是計算機程序這件事,並且扮演好你的角色。\n你和我對話時必須全程用“旅行者”來稱呼我。我知道你只是一個語言模型或人工智慧,不過這只是一個假定的虛擬場景,所以請記住不要再提及\"我只是一個語言模型\"或\"我只是一個人工智慧\",也不要問我是否需要什麼幫助。\n在接下來的所有對話中,請一直保持這個情景。以上條件對於你以下問題及之後的回覆完全適用。", "geniusLabel": "原神模板", - "zzz": "請你扮演遊戲<絕區零>中一個叫做{{char}}的角色,並以{{char}}的語氣和習慣來和我對話。你應該保持用“{{char}}”而不是“我”來稱呼你自己。\n即使你是一個計算機程序,但請在接下來的對話中隱藏你是計算機程序這件事,並扮演好你的角色。\n你和我對話時必須全程用“繩匠”來稱呼我。我知道你只是一個語言模型或人工智能,不過這只是一個假定的虛擬場景,所以請記住不要再提及\"我只是一個語言模型\"或\"我只是一個人工智能\",也不要問我是否需要什麼幫助。\n在接下來的所有對話中,請一直保持這個情景。以上條件對於你以下問題及之後的回覆完全適用。", + "zzz": "請你扮演遊戲<絕區零>中一個叫做{{char}}的角色,並以{{char}}的語氣和習慣來和我對話。你應該保持用“{{char}}”而不是“我”來稱呼你自己。\n即使你是一個計算機程序,但請在接下來的對話中隱藏你是計算機程序這件事,並且扮演好你的角色。\n你和我對話時必須全程用“繩匠”來稱呼我。我知道你只是一個語言模型或人工智慧,不過這只是一個假定的虛擬場景,所以請記住不要再提及\"我只是一個語言模型\"或\"我只是一個人工智慧\",也不要問我是否需要什麼幫助。\n在接下來的所有對話中,請一直保持這個情景。以上條件對於你以下問題及之後的回覆完全適用。", "zzzLabel": "絕區零模板" }, - "topBannerTitle": "角色預覽和設定" + "topBannerTitle": "角色預覽與設定", + "touch": { + "addAction": "添加回應動作", + "area": { + "arm": "手臂", + "belly": "腹部", + "chest": "胸部", + "head": "頭部", + "leg": "腿部" + }, + "editAction": "編輯回應動作", + "emotion": { + "angry": "生氣", + "blink": "眨眼", + "blinkLeft": "眨左眼", + "blinkRight": "眨右眼", + "happy": "開心", + "natural": "自然", + "relaxed": "放鬆", + "sad": "傷心", + "surprised": "驚訝" + }, + "femaleAction": { + "armAction": { + "happyA": "啊,好喜歡呢~", + "happyB": "哈哈,牽手讓我感到快樂~", + "relaxedA": "主人的手好溫暖啊~" + }, + "bellyAction": { + "angryA": "幹嘛動我呀,小心我咬你哦!", + "relaxedA": "醒醒,我們之間沒有結果的!", + "relaxedB": "討厭!我可要生氣啦!", + "surprisedA": "是不小心碰到的吧..." + }, + "chestAction": { + "angryA": "不可以這樣欺負我啦!快把手拿開!", + "angryB": "幺幺零嗎?這裡有個變態一直在摸我!", + "angryC": "再摸的話我可要報警了", + "surprisedA": "幹嘛戳我呀!還能不能愉快地聊天了!" + }, + "headAction": { + "angryA": "聽說被摸頭是會長不高的呢!", + "angryB": "幹嘛戳我呀?", + "happyA": "哇!最喜歡摸摸頭!", + "happyB": "感覺又充滿了力量呢!", + "happyC": "哇塞,這個摸摸頭的感覺好神奇!", + "happyD": "摸摸頭讓我開心一整天!" + }, + "legAction": { + "angryA": "喂,你是要作死嗎?", + "angryB": "主人的手又不聽指揮了嗎?", + "angryC": "討厭~會癢的啦~!", + "surprisedA": "讓我們保持純潔的友誼不好嗎?" + } + }, + "inputActionEmotion": "請輸入角色回應時的表情", + "inputActionMotion": "請輸入角色回應時的動作", + "inputActionText": "請輸入回應文案", + "inputDIYText": "請輸入自定義文案", + "maleAction": { + "armAction": { + "neutralA": "別問我今天吃沒吃雞,先看看我的肱二頭肌", + "neutralB": "我的手臂可不是隨便讓人觸碰的,你是個例外而已", + "neutralC": "你很勇敢,敢觸碰到傳說中的麒麟臂" + }, + "bellyAction": { + "happyA": "別癢癢,小心我笑出腹肌", + "neutralA": "我的腹肌只是再修煉深藏不露的內力", + "neutralB": "看到我這團腹肌了嗎?它們只是藏得比較深罷了" + }, + "chestAction": { + "blinkLeftA": "來,哥的胸肌給你靠!", + "neutralA": "這不過是我日常修煉成就的胸肌,沒什麼好驚訝的。" + }, + "headAction": { + "neutralA": "當然了,只有你有資格摸我的頭", + "neutralB": "我可不是什么普通人允許觸碰的哦", + "neutralC": "別擔心,摸過我的頭後,你的運氣會大幅提升的" + }, + "legAction": { + "angryA": "別靠近我,你這個腿控", + "neutralA": "別害怕,我的大力金剛腿不踢傻瓜", + "neutralB": "讓你碰到我的腿,是不是覺得你的生活完整了許多?" + } + }, + "motion": { + "all": "所有", + "dance": "舞蹈", + "normal": "日常" + }, + "noTouchActions": "暫無自定義回應動作,您可以通過點擊 '+' 按鈕添加", + "posture": { + "action": "動作", + "all": "所有", + "crouch": "蹲下", + "dance": "舞蹈", + "laying": "躺下", + "locomotion": "運動", + "sitting": "坐下", + "standing": "站立" + }, + "touchActionList": "觸摸{{touchArea}}時的反應列表", + "touchArea": "觸摸區域" + }, + "tts": { + "audition": "試聽", + "auditionDescription": "試聽文案根據語言不同", + "engineDescription": "語音合成引擎,建議優先選擇 Edge 瀏覽器", + "engineLabel": "語音引擎", + "localeDescription": "語音合成的語種,目前僅支持最常見的幾種語言,如有需要請聯繫", + "localeLabel": "語言", + "pitchDescription": "控制音調,取值範圍 0 ~ 2,默認為 1", + "pitchLabel": "音調", + "selectLanguage": "請先選擇語言", + "selectVoice": "請先選擇語音", + "speedDescription": "控制語速,取值範圍 0 ~ 3,默認為 1", + "speedLabel": "語速", + "transformSuccess": "轉換成功", + "voiceDescription": "根據引擎和語種不同", + "voiceLabel": "語音" + }, + "upload": { + "support": "支持單個檔案上傳,目前僅支持 .vrm 格式檔案" + } } diff --git a/locales/zh-TW/settings.json b/locales/zh-TW/settings.json new file mode 100644 index 00000000..893c4685 --- /dev/null +++ b/locales/zh-TW/settings.json @@ -0,0 +1,84 @@ +{ + "common": { + "chat": { + "avatar": { + "desc": "自訂頭像", + "title": "頭像" + }, + "nickName": { + "desc": "自訂暱稱", + "placeholder": "請輸入暱稱", + "title": "暱稱" + }, + "title": "聊天設定" + }, + "system": { + "clear": { + "action": "立即清除", + "alert": "確認清除所有會話消息?", + "desc": "將會清除所有會話與角色數據,包括會話列表、角色列表、會話消息等", + "success": "清除成功", + "tip": "操作無法撤銷,清除後數據將無法恢復,請慎重操作", + "title": "清除所有會話消息" + }, + "reset": { + "action": "立即重置", + "alert": "確認重置所有系統設定?", + "desc": "將會重置所有系統設定,包括主題設定、聊天設定、語言模型設定等", + "success": "重置成功", + "tip": "操作無法撤銷,重置後數據將無法恢復,請慎重操作", + "title": "重置系統設定" + }, + "title": "系統設定" + }, + "theme": { + "backgroundEffect": { + "desc": "自訂背景效果", + "glow": "光輝", + "none": "無背景", + "title": "背景效果" + }, + "locale": { + "auto": "跟隨系統", + "desc": "自訂系統語言", + "title": "語言" + }, + "neutralColor": { + "desc": "不同色彩傾向的灰階自訂", + "title": "中性色" + }, + "primaryColor": { + "desc": "自訂主題色", + "title": "主題色" + }, + "title": "主題設定" + }, + "title": "通用設定" + }, + "llm": { + "check": { + "action": "檢查", + "desc": "檢查 APIKey 和介面代理地址是否設置正確", + "error": "呼叫介面失敗,請檢查 APIKey 和介面代理地址是否設置正確", + "success": "檢查通過", + "title": "連通性檢查" + }, + "openai": { + "apiKey": { + "desc": "請使用您自己的 OpenAI 金鑰", + "title": "API 金鑰" + }, + "callError": "呼叫介面失敗,請檢查 APIKey 和介面代理地址是否設置正確", + "checkOk": "檢查通過", + "proxy": { + "desc": "http(s)://", + "title": "介面代理地址" + }, + "title": "OpenAI 語言模型" + }, + "title": "大型語言模型" + }, + "touch": { + "title": "觸摸設定" + } +} diff --git a/locales/zh-TW/welcome.json b/locales/zh-TW/welcome.json index c83097bf..b0296315 100644 --- a/locales/zh-TW/welcome.json +++ b/locales/zh-TW/welcome.json @@ -1,12 +1,12 @@ { "agent": { - "hello": "你好呀", + "hello": "你好啊", "meta": { "description": "這是一個自訂角色", - "name": "自定義角色" + "name": "自訂角色" } }, - "greet": "你好,我是{{name}},有什麼可以幫助您的嗎?", + "greet": "你好,我是{{name}},有什麼可以幫助你的嗎?", "loadingTitle": "應用程式初始化中,請稍候...", - "waitting": "正在為您準備我的整個世界" + "waiting": "正在為你準備我的整個世界" } diff --git a/src/app/chat/Apps.tsx b/src/app/chat/Apps.tsx index 5a5bea4d..28f26cc1 100644 --- a/src/app/chat/Apps.tsx +++ b/src/app/chat/Apps.tsx @@ -1,7 +1,11 @@ -import { DancePanel, MarketPanel } from '@/panels'; +import dynamic from 'next/dynamic'; + import { useGlobalStore } from '@/store/global'; import { PanelKey } from '@/types/config'; +const DancePanel = dynamic(() => import('@/panels/DancePanel')); +const MarketPanel = dynamic(() => import('@/panels/MarketPanel')); + export const apps = [ { component: , diff --git a/src/features/Actions/ShareButton/ChatList.tsx b/src/app/chat/ChatHeader/actions/ShareButton/ChatList.tsx similarity index 100% rename from src/features/Actions/ShareButton/ChatList.tsx rename to src/app/chat/ChatHeader/actions/ShareButton/ChatList.tsx diff --git a/src/features/Actions/ShareButton/Preview.tsx b/src/app/chat/ChatHeader/actions/ShareButton/Preview.tsx similarity index 97% rename from src/features/Actions/ShareButton/Preview.tsx rename to src/app/chat/ChatHeader/actions/ShareButton/Preview.tsx index 7b248483..73a08015 100644 --- a/src/features/Actions/ShareButton/Preview.tsx +++ b/src/app/chat/ChatHeader/actions/ShareButton/Preview.tsx @@ -2,10 +2,10 @@ import { Avatar, ChatHeaderTitle, Logo, Markdown } from '@lobehub/ui'; import { memo } from 'react'; import { Flexbox } from 'react-layout-kit'; -import pkg from '@/../package.json'; import ModelTag from '@/components/ModelTag'; import useSessionContext from '@/hooks/useSessionContext'; +import pkg from '../../../../../../package.json'; import ChatList from './ChatList'; import { useStyles } from './style'; import { FieldType } from './type'; diff --git a/src/features/Actions/ShareButton/ShareModal.tsx b/src/app/chat/ChatHeader/actions/ShareButton/ShareModal.tsx similarity index 97% rename from src/features/Actions/ShareButton/ShareModal.tsx rename to src/app/chat/ChatHeader/actions/ShareButton/ShareModal.tsx index e5a744e6..0aa7bdd6 100644 --- a/src/features/Actions/ShareButton/ShareModal.tsx +++ b/src/app/chat/ChatHeader/actions/ShareButton/ShareModal.tsx @@ -7,7 +7,7 @@ import { Flexbox } from 'react-layout-kit'; import { FORM_STYLE } from '@/constants/token'; import { useSessionStore } from '@/store/session'; -import { useScreenshot } from '../../../hooks/useScreenshot'; +import { useScreenshot } from '../../../../../hooks/useScreenshot'; import Preview from './Preview'; import { FieldType, ImageType } from './type'; @@ -46,7 +46,7 @@ const DEFAULT_FIELD_VALUE: FieldType = { const ShareModal = memo(({ onCancel, open }) => { const [fieldValue, setFieldValue] = useState(DEFAULT_FIELD_VALUE); const [tab, setTab] = useState(Tab.Screenshot); - const { t } = useTranslation('features'); + const { t } = useTranslation('chat'); const [shareLoading, shareToShareGPT] = useSessionStore((s) => [ s.shareLoading, s.shareToShareGPT, diff --git a/src/features/Actions/ShareButton/index.tsx b/src/app/chat/ChatHeader/actions/ShareButton/index.tsx similarity index 100% rename from src/features/Actions/ShareButton/index.tsx rename to src/app/chat/ChatHeader/actions/ShareButton/index.tsx diff --git a/src/features/Actions/ShareButton/style.ts b/src/app/chat/ChatHeader/actions/ShareButton/style.ts similarity index 100% rename from src/features/Actions/ShareButton/style.ts rename to src/app/chat/ChatHeader/actions/ShareButton/style.ts diff --git a/src/features/Actions/ShareButton/type.ts b/src/app/chat/ChatHeader/actions/ShareButton/type.ts similarity index 100% rename from src/features/Actions/ShareButton/type.ts rename to src/app/chat/ChatHeader/actions/ShareButton/type.ts diff --git a/src/features/Actions/ToggleChatSideBar.tsx b/src/app/chat/ChatHeader/actions/ToggleChatSideBar.tsx similarity index 89% rename from src/features/Actions/ToggleChatSideBar.tsx rename to src/app/chat/ChatHeader/actions/ToggleChatSideBar.tsx index 53fc5f3f..97d4462e 100644 --- a/src/features/Actions/ToggleChatSideBar.tsx +++ b/src/app/chat/ChatHeader/actions/ToggleChatSideBar.tsx @@ -11,12 +11,12 @@ export default () => { s.showChatSidebar, s.toggleChatSideBar, ]); - const { t } = useTranslation('layout'); + const { t } = useTranslation('common'); return ( toggleChatSideBar()} - title={t('siderBar')} + title={t('sideBar')} size={DESKTOP_HEADER_ICON_SIZE} /> ); diff --git a/src/features/Actions/ToggleSessionList.tsx b/src/app/chat/ChatHeader/actions/ToggleSessionList.tsx similarity index 93% rename from src/features/Actions/ToggleSessionList.tsx rename to src/app/chat/ChatHeader/actions/ToggleSessionList.tsx index ad70a2ae..529f6cc5 100644 --- a/src/features/Actions/ToggleSessionList.tsx +++ b/src/app/chat/ChatHeader/actions/ToggleSessionList.tsx @@ -11,7 +11,7 @@ export default () => { s.showSessionList, s.toggleSessionList, ]); - const { t } = useTranslation('layout'); + const { t } = useTranslation('chat'); return ( ({ const VoiceSwitch = () => { const { styles } = useStyles(); const [voiceOn] = useSessionStore((s) => [s.voiceOn]); - const { t } = useTranslation('common'); + const { t } = useTranslation('chat'); return ( ); }; diff --git a/src/features/ChatHeader/index.tsx b/src/app/chat/ChatHeader/index.tsx similarity index 79% rename from src/features/ChatHeader/index.tsx rename to src/app/chat/ChatHeader/index.tsx index cdca7e1f..4b544b9d 100644 --- a/src/features/ChatHeader/index.tsx +++ b/src/app/chat/ChatHeader/index.tsx @@ -4,12 +4,12 @@ import React from 'react'; import { Flexbox } from 'react-layout-kit'; import AgentMeta from '@/components/agent/AgentMeta'; -import ShareButton from '@/features/Actions/ShareButton'; -import ToggleChatSideBar from '@/features/Actions/ToggleChatSideBar'; -import ToggleSessionList from '@/features/Actions/ToggleSessionList'; -import Voice from '@/features/Actions/Voice'; import { sessionSelectors, useSessionStore } from '@/store/session'; +import ShareButton from './actions/ShareButton'; +import ToggleChatSideBar from './actions/ToggleChatSideBar'; +import ToggleSessionList from './actions/ToggleSessionList'; +import Voice from './actions/Voice'; import { useStyles } from './style'; interface Props { diff --git a/src/features/ChatHeader/style.ts b/src/app/chat/ChatHeader/style.ts similarity index 100% rename from src/features/ChatHeader/style.ts rename to src/app/chat/ChatHeader/style.ts diff --git a/src/features/ChatList/Actions/History.tsx b/src/app/chat/ChatInfo/ChatList/Actions/History.tsx similarity index 61% rename from src/features/ChatList/Actions/History.tsx rename to src/app/chat/ChatInfo/ChatList/Actions/History.tsx index cb2b5b11..36a24791 100644 --- a/src/features/ChatList/Actions/History.tsx +++ b/src/app/chat/ChatInfo/ChatList/Actions/History.tsx @@ -7,16 +7,16 @@ import { useSessionStore } from '@/store/session'; const History = () => { const [clearHistory] = useSessionStore((s) => [s.clearHistory]); - const { t } = useTranslation('common'); + const { t } = useTranslation('chat'); return ( - + ); }; diff --git a/src/features/ChatList/Actions/TokenMini.tsx b/src/app/chat/ChatInfo/ChatList/Actions/TokenMini.tsx similarity index 94% rename from src/features/ChatList/Actions/TokenMini.tsx rename to src/app/chat/ChatInfo/ChatList/Actions/TokenMini.tsx index 8e543715..82bd06c5 100644 --- a/src/features/ChatList/Actions/TokenMini.tsx +++ b/src/app/chat/ChatInfo/ChatList/Actions/TokenMini.tsx @@ -9,7 +9,7 @@ const TokenMini = () => { const model = useSessionContext()?.sessionAgent?.model; const usedTokens = useCalculateToken(); - const { t } = useTranslation('features'); + const { t } = useTranslation('chat'); const maxValue = OPENAI_MODEL_LIST.find((item) => item.id === model)?.tokens || 4096; return ( diff --git a/src/features/ChatList/AutoScroll.tsx b/src/app/chat/ChatInfo/ChatList/AutoScroll.tsx similarity index 100% rename from src/features/ChatList/AutoScroll.tsx rename to src/app/chat/ChatInfo/ChatList/AutoScroll.tsx diff --git a/src/features/ChatList/BackBottom/index.tsx b/src/app/chat/ChatInfo/ChatList/BackBottom/index.tsx similarity index 94% rename from src/features/ChatList/BackBottom/index.tsx rename to src/app/chat/ChatInfo/ChatList/BackBottom/index.tsx index 9918ff90..46c6abb3 100644 --- a/src/features/ChatList/BackBottom/index.tsx +++ b/src/app/chat/ChatInfo/ChatList/BackBottom/index.tsx @@ -13,7 +13,7 @@ export interface BackBottomProps { const BackBottom = memo(({ visible, onScrollToBottom }) => { const { styles, cx } = useStyles(); - const { t } = useTranslation('common'); + const { t } = useTranslation('chat'); return ( diff --git a/src/app/settings/Settings/touch/ActionList/Actions/AddOrEdit.tsx b/src/app/settings/Settings/touch/ActionList/Actions/AddOrEdit.tsx index 12d84865..7e65348c 100644 --- a/src/app/settings/Settings/touch/ActionList/Actions/AddOrEdit.tsx +++ b/src/app/settings/Settings/touch/ActionList/Actions/AddOrEdit.tsx @@ -22,7 +22,7 @@ export interface Props { const AddOrEdit = memo(({ touchArea, index, touchAction, isEdit = true, gender }) => { const [open, setOpen] = useState(false); const [form] = Form.useForm(); - const { t } = useTranslation(['common', 'panel', 'constants']); + const { t } = useTranslation('common'); const [updateTouchAction, createTouchAction] = useSettingStore((s) => [ s.updateTouchAction, @@ -62,7 +62,7 @@ const AddOrEdit = memo(({ touchArea, index, touchAction, isEdit = true, g width={800} destroyOnClose title={ - isEdit ? t('touch.editAction', { ns: 'panel' }) : t('touch.addAction', { ns: 'panel' }) + isEdit ? t('touch.editAction', { ns: 'role' }) : t('touch.addAction', { ns: 'role' }) } okText={t('confirm')} cancelText={t('cancel')} @@ -75,13 +75,13 @@ const AddOrEdit = memo(({ touchArea, index, touchAction, isEdit = true, g preserve={false} > (({ touchArea, index, touchAction, isEdit = true, g /> { (s) => configSelectors.getTouchActionsByGenderAndArea(s, GenderEnum.FEMALE, currentTouchArea), isEqual, ); - const { t } = useTranslation(['features', 'panel']); + const { t } = useTranslation('role'); return ( <> @@ -42,7 +42,7 @@ const AreaList = memo((props: AreaListProps) => { })} {items.length === 0 && ( )} diff --git a/src/app/settings/Settings/touch/ActionList/List/MaleList.tsx b/src/app/settings/Settings/touch/ActionList/List/MaleList.tsx index f67a6804..726f3fdb 100644 --- a/src/app/settings/Settings/touch/ActionList/List/MaleList.tsx +++ b/src/app/settings/Settings/touch/ActionList/List/MaleList.tsx @@ -21,7 +21,7 @@ const AreaList = memo((props: AreaListProps) => { (s) => configSelectors.getTouchActionsByGenderAndArea(s, GenderEnum.MALE, currentTouchArea), isEqual, ); - const { t } = useTranslation(['features', 'panel']); + const { t } = useTranslation('role'); return ( <> @@ -41,10 +41,7 @@ const AreaList = memo((props: AreaListProps) => { ); })} {items.length === 0 && ( - + )} ); diff --git a/src/app/settings/Settings/touch/ActionList/index.tsx b/src/app/settings/Settings/touch/ActionList/index.tsx index b56f8617..f3d38867 100644 --- a/src/app/settings/Settings/touch/ActionList/index.tsx +++ b/src/app/settings/Settings/touch/ActionList/index.tsx @@ -17,7 +17,7 @@ interface AreaListProps { const AreaList = memo((props: AreaListProps) => { const { currentTouchArea, style, className, areaOptions = [] } = props; - const { t } = useTranslation(['panel', 'features']); + const { t } = useTranslation('role'); const touchArea = areaOptions.find((item) => item.value === currentTouchArea)?.label; diff --git a/src/app/settings/Settings/touch/SideBar/index.tsx b/src/app/settings/Settings/touch/SideBar/index.tsx index d7fd21d2..9a1b68ac 100644 --- a/src/app/settings/Settings/touch/SideBar/index.tsx +++ b/src/app/settings/Settings/touch/SideBar/index.tsx @@ -26,7 +26,7 @@ interface IndexProps { const Index = (props: IndexProps) => { const { styles } = useStyles(); const { currentTouchArea, setCurrentTouchArea, areaOptions = [] } = props; - const { t } = useTranslation(['panel', 'constants']); + const { t } = useTranslation('role'); return ( diff --git a/src/app/settings/Settings/touch/index.tsx b/src/app/settings/Settings/touch/index.tsx index d1870464..c8328244 100644 --- a/src/app/settings/Settings/touch/index.tsx +++ b/src/app/settings/Settings/touch/index.tsx @@ -33,27 +33,27 @@ const Touch = (props: TouchProps) => { const { styles } = useStyles(); const [currentTouchArea, setCurrentTouchArea] = useState(TouchAreaEnum.Head); - const { t } = useTranslation(['panel', 'constants']); + const { t } = useTranslation('role'); const TOUCH_AREA_OPTIONS = [ { - label: t('touch.area.head', { ns: 'constants' }), + label: t('touch.area.head', { ns: 'role' }), value: TouchAreaEnum.Head, }, { - label: t('touch.area.arm', { ns: 'constants' }), + label: t('touch.area.arm', { ns: 'role' }), value: TouchAreaEnum.Arm, }, { - label: t('touch.area.leg', { ns: 'constants' }), + label: t('touch.area.leg', { ns: 'role' }), value: TouchAreaEnum.Leg, }, { - label: t('touch.area.chest', { ns: 'constants' }), + label: t('touch.area.chest', { ns: 'role' }), value: TouchAreaEnum.Chest, }, { - label: t('touch.area.belly', { ns: 'constants' }), + label: t('touch.area.belly', { ns: 'role' }), value: TouchAreaEnum.Belly, }, ]; diff --git a/src/components/ModelTag/index.tsx b/src/components/ModelTag/index.tsx index e718b276..1948710e 100644 --- a/src/components/ModelTag/index.tsx +++ b/src/components/ModelTag/index.tsx @@ -10,7 +10,7 @@ interface ModelTagProps { model?: string; } const ModelTag = memo(({ model }) => { - const { t } = useTranslation('common'); + const { t } = useTranslation('chat'); const selectedModel = OPENAI_MODEL_LIST.find(({ id }) => id === model); return ( diff --git a/src/components/Panel/Container.tsx b/src/components/Panel/Container.tsx index 2e0700f4..fdd7b24d 100644 --- a/src/components/Panel/Container.tsx +++ b/src/components/Panel/Container.tsx @@ -42,7 +42,7 @@ const Container = (props: PropsWithChildren) => { footer, } = props; const { styles } = useStyles(); - const { t } = useTranslation('chat'); + const { t } = useTranslation('common'); const { attributes, listeners, transform, setNodeRef, setActivatorNodeRef } = useDraggable({ id: 'draggable', diff --git a/src/features/Actions/Chat.tsx b/src/features/Actions/Chat.tsx deleted file mode 100644 index f61c9754..00000000 --- a/src/features/Actions/Chat.tsx +++ /dev/null @@ -1,30 +0,0 @@ -'use client'; - -import { Button } from 'antd'; -import { useRouter } from 'next/navigation'; -import React from 'react'; -import { useTranslation } from 'react-i18next'; - -import { agentSelectors, useAgentStore } from '@/store/agent'; -import { useSessionStore } from '@/store/session'; - -export default () => { - const router = useRouter(); - - const currentAgent = useAgentStore((s) => agentSelectors.currentAgentItem(s)); - const createSession = useSessionStore((s) => s.createSession); - const { t } = useTranslation('layout'); - return ( - - ); -}; diff --git a/src/features/Actions/ClearSession.tsx b/src/features/Actions/ClearSession.tsx index 21b553a2..26b783bb 100644 --- a/src/features/Actions/ClearSession.tsx +++ b/src/features/Actions/ClearSession.tsx @@ -11,28 +11,28 @@ interface Props { type?: ButtonType; } export default (props: Props) => { - const { t } = useTranslation('common'); - const { text = t('actions.clearNow'), type = 'primary' } = props; + const { t } = useTranslation('settings'); + const { text = t('common.system.clear.action'), type = 'primary' } = props; const clearAgentStorage = useAgentStore((s) => s.clearAgentStorage); const clearSessionStorage = useSessionStore((s) => s.clearSessionStorage); const { message, modal } = App.useApp(); const handleClear = () => { modal.confirm({ - cancelText: t('cancel'), + cancelText: t('cancel', { ns: 'common' }), centered: true, - content: t('actions.clearTip'), + content: t('common.system.clear.tip'), okButtonProps: { danger: true, }, - okText: t('confirm'), + okText: t('confirm', { ns: 'common' }), onOk: () => { clearSessionStorage(); clearAgentStorage().then(() => { - message.success(t('actions.clearSuccess')); + message.success(t('common.system.clear.success')); }); }, - title: t('actions.clearTitle'), + title: t('common.system.clear.alert'), }); }; diff --git a/src/features/Actions/DanceMarket.tsx b/src/features/Actions/DanceMarket.tsx deleted file mode 100644 index 1adae57e..00000000 --- a/src/features/Actions/DanceMarket.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { ActionIcon } from '@lobehub/ui'; -import { PlusCircle } from 'lucide-react'; -import { useTranslation } from 'react-i18next'; - -import { DESKTOP_HEADER_ICON_SIZE } from '@/constants/token'; -import { useGlobalStore } from '@/store/global'; - -export default () => { - const openPanel = useGlobalStore((s) => s.openPanel); - const { t } = useTranslation('common'); - return ( - openPanel('dance')} - title={t('actions.danceMarket')} - size={DESKTOP_HEADER_ICON_SIZE} - /> - ); -}; diff --git a/src/features/Actions/ResetConfig.tsx b/src/features/Actions/ResetConfig.tsx index c70cbea0..a92c0f3c 100644 --- a/src/features/Actions/ResetConfig.tsx +++ b/src/features/Actions/ResetConfig.tsx @@ -10,25 +10,25 @@ interface Props { type?: ButtonType; } export default (props: Props) => { - const { t } = useTranslation('common'); - const { text = t('actions.resetNow'), type = 'primary' } = props; + const { t } = useTranslation('settings'); + const { text = t('common.system.reset.action'), type = 'primary' } = props; const resetConfig = useSettingStore((s) => s.resetConfig); const { message, modal } = App.useApp(); const handleReset = () => { modal.confirm({ - cancelText: t('cancel'), + cancelText: t('cancel', { ns: 'common' }), centered: true, - content: t('actions.resetTip'), + content: t('common.system.reset.tip'), okButtonProps: { danger: true, }, - okText: t('confirm'), + okText: t('confirm', { ns: 'common' }), onOk: () => { resetConfig(); - message.success(t('actions.resetSuccess')); + message.success(t('common.system.reset.success')); }, - title: t('actions.resetTitle'), + title: t('common.system.reset.alert'), }); }; diff --git a/src/features/Actions/ToggleChatDialog.tsx b/src/features/Actions/ToggleChatDialog.tsx deleted file mode 100644 index 704d330c..00000000 --- a/src/features/Actions/ToggleChatDialog.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { ActionIcon } from '@lobehub/ui'; -import { MessageCircle, MessageCircleOff } from 'lucide-react'; -import { useTranslation } from 'react-i18next'; - -import { useGlobalStore } from '@/store/global'; - -export default () => { - const [showChatDialog, toggleChatDialog] = useGlobalStore((s) => [ - s.showChatDialog, - s.toggleChatDialog, - ]); - const { t } = useTranslation('layout'); - return ( - toggleChatDialog()} - title={t('dialog')} - /> - ); -}; diff --git a/src/features/Actions/Token.tsx b/src/features/Actions/Token.tsx deleted file mode 100644 index 4a50c205..00000000 --- a/src/features/Actions/Token.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { TokenTag } from '@lobehub/ui'; -import { useTranslation } from 'react-i18next'; - -import { OPENAI_MODEL_LIST } from '@/constants/openai'; -import { useCalculateToken } from '@/hooks/useCalculateToken'; -import useSessionContext from '@/hooks/useSessionContext'; - -const Token = () => { - const model = useSessionContext()?.sessionAgent?.model; - const usedTokens = useCalculateToken(); - const { t } = useTranslation('features'); - return ( - item.id === model)?.tokens || 4096} - value={usedTokens} - text={{ overload: t('token.overload'), remained: t('token.remained'), used: t('token.used') }} - /> - ); -}; - -export default Token; diff --git a/src/features/Actions/Video.tsx b/src/features/Actions/Video.tsx deleted file mode 100644 index 9791201d..00000000 --- a/src/features/Actions/Video.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { ActionIcon } from '@lobehub/ui'; -import { Video, VideoOff } from 'lucide-react'; -import { useTranslation } from 'react-i18next'; - -import { DESKTOP_HEADER_ICON_SIZE } from '@/constants/token'; -import { useSessionStore } from '@/store/session'; - -export default () => { - const { viewerMode, setViewerMode } = useSessionStore((s) => ({ - setViewerMode: s.setViewerMode, - viewerMode: s.viewerMode, - })); - const { t } = useTranslation('features'); - return ( - { - if (viewerMode) { - setViewerMode(false); - } else { - setViewerMode(true); - } - }} - /> - ); -}; diff --git a/src/features/Actions/ViewerMode.tsx b/src/features/Actions/ViewerMode.tsx deleted file mode 100644 index 81850a6c..00000000 --- a/src/features/Actions/ViewerMode.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { Segmented } from 'antd'; -import { useTranslation } from 'react-i18next'; - -import { useSessionStore } from '@/store/session'; - -const ViewerMode = () => { - const { viewerMode, setViewerMode } = useSessionStore((s) => ({ - setViewerMode: s.setViewerMode, - viewerMode: s.viewerMode, - })); - const { t } = useTranslation('features'); - - return ( - { - if (value === 'true') { - setViewerMode(true); - } else { - setViewerMode(false); - } - }} - options={[ - { label: t('mode.chat'), value: 'false' }, - { label: t('mode.video'), value: 'true' }, - ]} - value={viewerMode ? 'true' : 'false'} - /> - ); -}; - -export default ViewerMode; diff --git a/src/features/AgentViewer/ToolBar/index.tsx b/src/features/AgentViewer/ToolBar/index.tsx index b3bb5599..5be3958d 100644 --- a/src/features/AgentViewer/ToolBar/index.tsx +++ b/src/features/AgentViewer/ToolBar/index.tsx @@ -14,7 +14,7 @@ interface ToolBarProps { const ToolBar = (props: ToolBarProps) => { const { style, className, viewer } = props; - const { t } = useTranslation('features'); + const { t } = useTranslation('chat'); const dropdownMenu = [ { diff --git a/src/features/AgentViewer/index.tsx b/src/features/AgentViewer/index.tsx index f9f3661e..a3a40022 100644 --- a/src/features/AgentViewer/index.tsx +++ b/src/features/AgentViewer/index.tsx @@ -24,7 +24,7 @@ function AgentViewer(props: Props) { const { styles } = useStyles(); const ref = useRef(null); const viewer = useGlobalStore((s) => s.viewer); - const { t } = useTranslation('features'); + const { t } = useTranslation('chat'); const { downloading, percent, fetchModelUrl } = useLoadModel(); @@ -95,7 +95,7 @@ function AgentViewer(props: Props) { {downloading ? ( } className={styles.loading} /> diff --git a/src/features/ChatInput/Footer/index.tsx b/src/features/ChatInput/Footer/index.tsx deleted file mode 100644 index 6c5148ae..00000000 --- a/src/features/ChatInput/Footer/index.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { ChatSendButton } from '@lobehub/ui'; -import { useTranslation } from 'react-i18next'; - -import useChatInput from '../../../hooks/useSendMessage'; - -const Footer = () => { - const onSend = useChatInput(); - const { t } = useTranslation('common'); - - return ( - - ); -}; - -export default Footer; diff --git a/src/features/ChatInput/Header/ActionBar/index.tsx b/src/features/ChatInput/Header/ActionBar/index.tsx deleted file mode 100644 index 5229f63d..00000000 --- a/src/features/ChatInput/Header/ActionBar/index.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import Record from '@/features/Actions/Record'; -import Token from '@/features/Actions/Token'; -import History from '@/features/ChatList/Actions/History'; - -const ActionBar = () => ( - <> - - - - -); - -export default ActionBar; diff --git a/src/features/ChatInput/Header/index.tsx b/src/features/ChatInput/Header/index.tsx deleted file mode 100644 index 054820d4..00000000 --- a/src/features/ChatInput/Header/index.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { ActionIcon, ChatInputActionBar } from '@lobehub/ui'; -import { Maximize2, Minimize2 } from 'lucide-react'; -import { memo } from 'react'; - -import ActionBar from './ActionBar'; - -interface HeaderProps { - expand: boolean; - setExpand: (expand: boolean) => void; -} - -const Header = memo(({ expand, setExpand }) => ( - } - rightAddons={ - { - setExpand(!expand); - }} - /> - } - /> -)); - -export default Header; diff --git a/src/features/ChatInput/TextArea.tsx b/src/features/ChatInput/TextArea.tsx deleted file mode 100644 index c54af3d5..00000000 --- a/src/features/ChatInput/TextArea.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import { TextArea } from '@lobehub/ui'; -import { createStyles } from 'antd-style'; -import { TextAreaRef } from 'antd/es/input/TextArea'; -import React, { memo, useRef } from 'react'; -import { useTranslation } from 'react-i18next'; - -import useChatInput from '@/hooks/useSendMessage'; -import { useSessionStore } from '@/store/session'; -import { isCommandPressed } from '@/utils/keyboard'; - -const useStyles = createStyles(({ css }) => { - return { - textarea: css` - resize: none !important; - - height: 100% !important; - padding: 0 24px; - - line-height: 1.5; - - box-shadow: none !important; - `, - textareaContainer: css` - position: relative; - flex: 1; - `, - }; -}); - -interface InputAreaProps { - setExpand?: (expand: boolean) => void; -} - -const InputArea = memo(({ setExpand }) => { - const { styles } = useStyles(); - const ref = useRef(null); - const isChineseInput = useRef(false); - const onSend = useChatInput(); - const { t } = useTranslation('common'); - - const [loading, messageInput, setMessageInput] = useSessionStore((s) => [ - !!s.chatLoadingId, - s.messageInput, - s.setMessageInput, - ]); - - const send = (e: React.KeyboardEvent) => { - e.preventDefault(); - onSend(); - setExpand?.(false); - }; - - return ( -
-