From 13747a585a0f034bfa43f90dced5cc7a5816ec48 Mon Sep 17 00:00:00 2001 From: z-zeechung <152474942+z-zeechung@users.noreply.github.com> Date: Sat, 22 Mar 2025 22:20:09 +0800 Subject: [PATCH] =?UTF-8?q?i18n:=20=E6=96=B0=E5=A2=9E=E8=87=AA=E5=8A=A8i18?= =?UTF-8?q?n=E8=84=9A=E6=9C=AC=E3=80=82=E6=96=B0=E5=A2=9E=E9=98=BF?= =?UTF-8?q?=E6=8B=89=E4=BC=AF=E6=96=87=EF=BC=8C=E5=B8=8C=E8=85=8A=E6=96=87?= =?UTF-8?q?=EF=BC=8C=E8=A5=BF=E7=8F=AD=E7=89=99=E6=96=87=EF=BC=8C=E6=B3=95?= =?UTF-8?q?=E6=96=87=EF=BC=8C=E8=91=A1=E8=90=84=E7=89=99=E6=96=87=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=20(#3792)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * added auto i18n script. added arab, greek, spanish, france, portuguese translation * remove arabian --- scripts/update-i18n.ts | 122 ++ src/renderer/src/i18n/index.ts | 13 +- src/renderer/src/i18n/locales/el-gr.json | 1172 +++++++++++++++++ src/renderer/src/i18n/locales/es-es.json | 1171 ++++++++++++++++ src/renderer/src/i18n/locales/fr-fr.json | 1172 +++++++++++++++++ src/renderer/src/i18n/locales/pt-pt.json | 1172 +++++++++++++++++ .../pages/agents/agentGroupTranslations.ts | 208 ++- .../src/pages/settings/GeneralSettings.tsx | 4 + src/renderer/src/types/index.ts | 4 +- 9 files changed, 4999 insertions(+), 39 deletions(-) create mode 100644 scripts/update-i18n.ts create mode 100644 src/renderer/src/i18n/locales/el-gr.json create mode 100644 src/renderer/src/i18n/locales/es-es.json create mode 100644 src/renderer/src/i18n/locales/fr-fr.json create mode 100644 src/renderer/src/i18n/locales/pt-pt.json diff --git a/scripts/update-i18n.ts b/scripts/update-i18n.ts new file mode 100644 index 00000000..01d14252 --- /dev/null +++ b/scripts/update-i18n.ts @@ -0,0 +1,122 @@ + +/** + * OCOOL_API_KEY=sk-abcxxxxxxxxxxxxxxxxxxxxxxx123 ts-node scripts/update-i18n.ts + */ + + +// OCOOL API KEY +const OCOOL_API_KEY = process.env.OCOOL_API_KEY; + +const INDEX = [ +// 语言的名称 代码 用来翻译的模型 + {name: "France", code: "fr-fr", model: "qwen2.5-32b-instruct"}, + {name: "Spanish", code: "es-es", model: "qwen2.5-32b-instruct"}, + {name: "Portuguese", code: "pt-pt", model: "qwen2.5-72b-instruct"}, + {name: "Greek", code: "el-gr", model: "qwen-turbo" }, +] + +const fs = require("fs"); +import OpenAI from "openai"; + +const zh = JSON.parse(fs.readFileSync("src/renderer/src/i18n/locales/zh-cn.json", 'utf8')) as object + +const openai = new OpenAI({ + apiKey: OCOOL_API_KEY, + baseURL: "https://one.ocoolai.com/v1" +}); + +// 递归遍历翻译 +async function translate(zh:object, obj:object, target: string, model:string, updateFile){ + const texts: {[key:string]:string} = {} + for(let e in zh){ + if(typeof zh[e]=="object"){ // 遍历下一层 + if(!obj[e] || typeof obj[e]!="object") obj[e] = {} + await translate(zh[e], obj[e], target, model, updateFile) + }else{ + // 加入到本层待翻译列表 + if(!obj[e] || typeof obj[e]!="string"){ + texts[e] = zh[e] + } + } + } + if(Object.keys(texts).length>0){ + const completion = await openai.chat.completions.create({ + model: model, + response_format: {type:"json_object"}, + messages: [ + {role:"user", content:` +You are a robot specifically designed for translation tasks. As a model that has been extensively fine-tuned on Russian language corpora, you are proficient in using the Russian language. +Now, please output the translation based on the input content. The input will include both Chinese and English key values, and you should output the corresponding key values in the Russian language. +When translating, ensure that no key value is omitted, and maintain the accuracy and fluency of the translation. Pay attention to the capitalization rules in the output to match the source text, and especially pay attention to whether to capitalize the first letter of each word except for prepositions. For strings containing \`{{value}}\`, ensure that the format is not disrupted. +Output in JSON. +###################################################### +INPUT +###################################################### +${JSON.stringify({ + "confirm": "确定要备份数据吗?", + "select_model": "选择模型", + "title": "文件", + "deeply_thought": "已深度思考(用时 {{secounds}} 秒)", +})} +###################################################### +MAKE SURE TO OUTPUT IN Russian. DO NOT OUTPUT IN UNSPECIFIED LANGUAGE. +###################################################### + `}, + {role:"assistant", content:JSON.stringify({ + "confirm": "Подтвердите резервное копирование данных?", + "select_model": "Выберите Модель", + "title": "Файл", + "deeply_thought": "Глубоко продумано (заняло {{seconds}} секунд)" + })}, + {role:"user", content:` +You are a robot specifically designed for translation tasks. As a model that has been extensively fine-tuned on ${target} language corpora, you are proficient in using the ${target} language. +Now, please output the translation based on the input content. The input will include both Chinese and English key values, and you should output the corresponding key values in the ${target} language. +When translating, ensure that no key value is omitted, and maintain the accuracy and fluency of the translation. Pay attention to the capitalization rules in the output to match the source text, and especially pay attention to whether to capitalize the first letter of each word except for prepositions. For strings containing \`{{value}}\`, ensure that the format is not disrupted. +Output in JSON. +###################################################### +INPUT +###################################################### +${JSON.stringify(texts)} +###################################################### +MAKE SURE TO OUTPUT IN ${target}. DO NOT OUTPUT IN UNSPECIFIED LANGUAGE. +###################################################### + `} + ] + }) + // 添加翻译后的键值,并打印错译漏译内容 + try{ + const result = JSON.parse(completion.choices[0].message.content!) + for(let e in texts){ + if(result[e] && typeof result[e] === 'string'){ + obj[e] = result[e] + }else{ + console.log("[warning]", `missing value "${e}" in ${target} translation`) + } + } + }catch(e){ + console.log("[error]", e) + for(let e in texts){ + console.log("[warning]", `missing value "${e}" in ${target} translation`) + } + } + } + // 删除多余的键值 + for(let e in obj){ + if(!zh[e]){ + delete obj[e] + } + } + // 更新文件 + updateFile() +} + +(async ()=>{ + for(let {name, code, model} of INDEX){ + const obj = fs.existsSync(`src/renderer/src/i18n/locales/${code}.json`) + ? JSON.parse(fs.readFileSync(`src/renderer/src/i18n/locales/${code}.json`, 'utf8')) + : {} + await translate(zh, obj, name, model, ()=>{ + fs.writeFileSync(`src/renderer/src/i18n/locales/${code}.json`, JSON.stringify(obj, null, 4), 'utf8') + }) + } +})() \ No newline at end of file diff --git a/src/renderer/src/i18n/index.ts b/src/renderer/src/i18n/index.ts index ac38e1dc..efb267ab 100644 --- a/src/renderer/src/i18n/index.ts +++ b/src/renderer/src/i18n/index.ts @@ -1,18 +1,25 @@ import i18n from 'i18next' import { initReactI18next } from 'react-i18next' - +import elGR from './locales/el-gr.json' import enUS from './locales/en-us.json' +import esES from './locales/es-es.json' +import frFR from './locales/fr-fr.json' import jaJP from './locales/ja-jp.json' +import ptPT from './locales/pt-pt.json' import ruRU from './locales/ru-ru.json' import zhCN from './locales/zh-cn.json' import zhTW from './locales/zh-tw.json' const resources = { + 'el-GR': elGR, 'en-US': enUS, + 'es-ES': esES, + 'fr-FR': frFR, + 'ja-JP': jaJP, + 'pt-PT': ptPT, + 'ru-RU': ruRU, 'zh-CN': zhCN, 'zh-TW': zhTW, - 'ja-JP': jaJP, - 'ru-RU': ruRU } export const getLanguage = () => { diff --git a/src/renderer/src/i18n/locales/el-gr.json b/src/renderer/src/i18n/locales/el-gr.json new file mode 100644 index 00000000..32757fec --- /dev/null +++ b/src/renderer/src/i18n/locales/el-gr.json @@ -0,0 +1,1172 @@ +{ + "translation": { + "agents": { + "add.button": "Προσθήκη στο Βοηθό", + "add.knowledge_base": "Βάση γνώσεων", + "add.knowledge_base.placeholder": "Επιλέξτε βάση γνώσεων", + "add.name": "Όνομα", + "add.name.placeholder": "Εισαγάγετε όνομα", + "add.prompt": "Φράση προκαλέσεως", + "add.prompt.placeholder": "Εισαγάγετε φράση προκαλέσεως", + "add.title": "Δημιουργία νέου ειδικού", + "delete.popup.content": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον ειδικό;", + "edit.message.add.title": "Προσθήκη", + "edit.message.assistant.placeholder": "Εισαγάγετε μήνυμα βοηθού", + "edit.message.assistant.title": "Βοηθός", + "edit.message.empty.content": "Το περιεχόμενο του συνομιλητή δεν μπορεί να είναι κενό.", + "edit.message.group.title": "Ομάδα μηνυμάτων", + "edit.message.title": "Προεπιλογές μηνυμάτων", + "edit.message.user.placeholder": "Εισαγάγετε μήνυμα χρήστη", + "edit.message.user.title": "Χρήστης", + "edit.model.select.title": "Επιλογή μοντέλου", + "edit.settings.hide_preset_messages": "Απόκρυψη προεπιλογών μηνυμάτων", + "edit.title": "Επεξεργασία ειδικού", + "manage.title": "Διαχείριση ειδικών", + "my_agents": "Οι ειδικοί μου", + "search.no_results": "Δεν βρέθηκαν σχετικοί ειδικοί", + "sorting.title": "Ταξινόμηση", + "tag.agent": "Ειδικός", + "tag.default": "Προεπιλογή", + "tag.new": "Νέος", + "tag.system": "Σύστημα", + "title": "Ειδικοί" + }, + "assistants": { + "abbr": "Βοηθός", + "clear.content": "Η διαγραφή του θέματος θα διαγράψει όλα τα θέματα και τα αρχεία του βοηθού. Είστε σίγουροι πως θέλετε να συνεχίσετε;", + "clear.title": "Διαγραφή θέματος", + "copy.title": "Αντιγραφή βοηθού", + "delete.content": "Η διαγραφή του βοηθού θα διαγράψει όλα τα θέματα και τα αρχεία που είναι συνδεδεμένα με αυτόν. Είστε σίγουροι πως θέλετε να συνεχίσετε;", + "delete.title": "Διαγραφή βοηθού", + "edit.title": "Επεξεργασία βοηθού", + "save.success": "Η αποθήκευση ολοκληρώθηκε επιτυχώς", + "save.title": "Αποθήκευση στον νοητή", + "search": "Αναζήτηση βοηθού", + "settings.default_model": "Προεπιλεγμένο μοντέλο", + "settings.knowledge_base": "Ρυθμίσεις βάσης γνώσεων", + "settings.model": "Ρυθμίσεις μοντέλου", + "settings.preset_messages": "Προεπιλεγμένα μηνύματα", + "settings.prompt": "Ρυθμίσεις προκαλύμματος", + "settings.reasoning_effort": "Μήκος λογισμικού αλυσίδας", + "settings.reasoning_effort.high": "Μεγάλο", + "settings.reasoning_effort.low": "Μικρό", + "settings.reasoning_effort.medium": "Μεσαίο", + "settings.reasoning_effort.off": "Απενεργοποίηση", + "settings.reasoning_effort.tip": "Υποστηρίζεται μόνο για μοντέλα πληροφορικής OpenAI o-series και Anthropic", + "title": "Βοηθός" + }, + "auth": { + "error": "Αποτυχία στην αυτόματη πήγαινη των κλειδιών, παρακαλείστε να το κάνετε χειροκίνητα", + "get_key": "Πήγαινη", + "get_key_success": "Η αυτόματη πήγαινη των κλειδιών ήταν επιτυχής", + "login": "Είσοδος", + "oauth_button": "Είσοδος με {{provider}}" + }, + "backup": { + "progress": { + "completed": "Η αντιγραφή ασφαλείας ολοκληρώθηκε", + "compressing": "Συμπίεση αρχείων...", + "copying_files": "Αντιγραφή αρχείων... {{progress}}%", + "preparing": "Ετοιμασία αντιγράφου ασφαλείας...", + "title": "Πρόοδος αντιγράφου ασφαλείας", + "writing_data": "Εγγραφή δεδομένων..." + }, + "confirm": "Είστε σίγουροι ότι θέλετε να αντιγράψετε τα δεδομένα;", + "confirm.button": "Επιλογή μοντέλου αντιγράφου προσωρινής αποθήκευσης", + "content": "Αντιγράφετε όλα τα δεδομένα, συμπεριλαμβανομένων των εγγραφών συζήτησης, των ρυθμίσεων, της βάσης γνώσεων και όλων των δεδομένων. Παρακαλούμε σημειώστε ότι η διαδικασία αντιγράφου μπορεί να χρειαστεί λίγο χρόνο. Ευχαριστούμε για την υπομονή.", + "title": "Αντιγραφή Δεδομένων" + }, + "button": { + "add": "προσθέστε", + "added": "προστέθηκε", + "collapse": "συμπεριλάβετε", + "manage": "χειριστείτε", + "select_model": "επιλογή μοντέλου", + "show.all": "δείξτε όλα", + "update_available": "Υπάρχει διαθέσιμη ενημέρωση" + }, + "chat": { + "navigation": { + "prev": "Προηγούμενο μήνυμα", + "next": "Επόμενο μήνυμα", + "first": "Ήδη το πρώτο μήνυμα", + "last": "Ήδη το τελευταίο μήνυμα" + }, + "add.assistant.title": "Προσθήκη βοηθού", + "artifacts.button.download": "Λήψη", + "artifacts.button.openExternal": "Άνοιγμα στο εξωτερικό περιηγητή", + "artifacts.button.preview": "Προεπισκόπηση", + "artifacts.preview.openExternal.error.content": "Σφάλμα κατά την άνοιγμα στο εξωτερικό περιηγητή", + "assistant.search.placeholder": "Αναζήτηση", + "deeply_thought": "Έχει βαθιά σκεφτεί (χρήση {{secounds}} δευτερόλεπτα)", + "default.description": "Γεια σου, είμαι ο προεπαγγελματικός βοηθός. Μπορείς να ξεκινήσεις να μου μιλάς αμέσως.", + "default.name": "Προεπαγγελματικός βοηθός", + "default.topic.name": "Προεπαγγελματικός θέμα", + "input.auto_resize": "Αυτόματη μείωση ύψους", + "input.clear": "Καθαρισμός μηνυμάτων {{Command}}", + "input.clear.content": "Είσαι σίγουρος ότι θέλεις να διαγράψεις όλα τα μηνύματα της τρέχουσας συζήτησης;", + "input.clear.title": "Καθαρισμός μηνυμάτων", + "input.collapse": "Συμπιέζω", + "input.context_count.tip": "Πλήθος ενδιάμεσων/Μέγιστο πλήθος ενδιάμεσων", + "input.estimated_tokens.tip": "Εκτιμώμενος αριθμός tokens", + "input.expand": "Επεκτάση", + "input.file_not_supported": "Το μοντέλο δεν υποστηρίζει αυτό το είδος αρχείων", + "input.knowledge_base": "Βάση γνώσεων", + "input.new.context": "Καθαρισμός ενδιάμεσων {{Command}}", + "input.new_topic": "Νέο θέμα {{Command}}", + "input.pause": "Παύση", + "input.placeholder": "Εισάγετε μήνυμα εδώ...", + "input.send": "Αποστολή", + "input.settings": "Ρυθμίσεις", + "input.topics": "Θέματα", + "input.translate": "Μετάφραση στο {{target_language}}", + "input.upload": "Φόρτωση εικόνας ή έγγραφου", + "input.upload.document": "Φόρτωση έγγραφου (το μοντέλο δεν υποστηρίζει εικόνες)", + "input.web_search": "Ενεργοποίηση διαδικτυακής αναζήτησης", + "input.web_search.button.ok": "Πήγαινε στις ρυθμίσεις", + "input.web_search.enable": "Ενεργοποίηση διαδικτυακής αναζήτησης", + "input.web_search.enable_content": "Πρέπει να ελέγξετε τη σύνδεση με το διαδίκτυο στις ρυθμίσεις πρώτα", + "message.new.branch": "Διακοπή", + "message.new.branch.created": "Νέα διακοπή δημιουργήθηκε", + "message.new.context": "Καθαρισμός ενδιάμεσων", + "message.quote": "Αναφορά", + "message.regenerate.model": "Εναλλαγή μοντέλου", + "message.useful": "Χρήσιμο", + "resend": "Ξαναστείλε", + "save": "Αποθήκευση", + "settings.code_collapsible": "Οι κώδικες μπορούν να συμπιεζόνται", + "settings.code_wrappable": "Οι κώδικες μπορούν να γράφονται σε διαφορετική γραμμή", + "settings.context_count": "Πλήθος ενδιάμεσων", + "settings.context_count.tip": "Πλήθος των μηνυμάτων που θα παραμείνουν στα ενδιάμεσα, όσο μεγαλύτερο είναι το αριθμός, τόσο μεγαλύτερο είναι το μήκος του ενδιάμεσου και τόσο περισσότερα tokens χρησιμοποιούνται. Συνομιλία συνήθως συνιστάται μεταξύ 5-10", + "settings.max": "Όχι ορισμένο", + "settings.max_tokens": "Ενεργοποίηση περιορισμού μήκους μηνύματος", + "settings.max_tokens.confirm": "Ενεργοποίηση περιορισμού μήκους μηνύματος", + "settings.max_tokens.confirm_content": "Μετά την ενεργοποίηση του περιορισμού μήκους μηνύματος, ο μέγιστος αριθμός των tokens που χρησιμοποιούνται κάθε φορά, θα επηρεάζει το μήκος της απάντησης. Πρέπει να το ρυθμίζετε βάσει των περιορισμών του πλαισίου του μοντέλου, διαφορετικά θα σφάλλεται.", + "settings.max_tokens.tip": "Ο μέγιστος αριθμός των tokens που χρησιμοποιούνται κάθε φορά, θα επηρεάζει το μήκος της απάντησης. Πρέπει να το ρυθμίζετε βάσει των περιορισμών του πλαισίου του μοντέλου, διαφορετικά θα σφάλλεται.", + "settings.reset": "Επαναφορά", + "settings.set_as_default": "Εφαρμογή στον προεπαγγελματικό βοηθό", + "settings.show_line_numbers": "Εμφάνιση αριθμού γραμμών στον κώδικα", + "settings.temperature": "Θερμοκρασία μοντέλου", + "settings.temperature.tip": "Ο αντικειμενικός βαθμός τυχαιότητας του μοντέλου στην παραγωγή κειμένου. Ο μεγαλύτερος αριθμός σημαίνει περισσότερη ποικιλία, δημιουργικότητα και τυχαιότητα στις απαντήσεις· η έδρα μετά την επιλογή 0 επιστρέφει απαντήσεις βάσει των γεγονότων. Για καθημερινές συζητήσεις προτείνεται η επιλογή 0.7.", + "settings.thought_auto_collapse": "Αυτόματη συμπίεση σκέψεων", + "settings.thought_auto_collapse.tip": "Μετά τη λήξη της σκέψης, η σκέψη αυτόματα συμπιεζεται", + "settings.top_p": "Top-P", + "settings.top_p.tip": "Η προεπιλογή είναι 1, όσο μικρότερος είναι ο αριθμός, τόσο μικρότερη είναι η ποικιλία του περιεχομένου που παράγεται από το AI και τόσο εύκολοτερο είναι να κατανοείται· όσο μεγαλύτερος είναι, τόσο μεγαλύτερη είναι η ποικιλία των λέξεων που μπορεί να χρησιμοποιήσει το AI.", + "suggestions.title": "Προτεινόμενες ερωτήσεις", + "thinking": "Σκέψη", + "topics.auto_rename": "Δημιουργία θέματος", + "topics.clear.title": "Καθαρισμός μηνυμάτων", + "topics.copy.image": "Αντιγραφή ως εικόνα", + "topics.copy.md": "Αντιγραφή ως Markdown", + "topics.copy.title": "Αντιγραφή", + "topics.delete.shortcut": "Πατήστε {{key}} για να διαγράψετε αμέσως", + "topics.edit.placeholder": "Εισαγάγετε το νέο όνομα", + "topics.edit.title": "Επεξεργασία ονόματος θέματος", + "topics.export.image": "Εξαγωγή ως εικόνα", + "topics.export.md": "Εξαγωγή ως Markdown", + "topics.export.notion": "Εξαγωγή στο Notion", + "topics.export.title": "Εξαγωγή", + "topics.export.word": "Εξαγωγή ως Word", + "topics.export.yuque": "Εξαγωγή στο Yuque", + "topics.export.obsidian": "Εξαγωγή στο Obsidian", + "topics.export.obsidian_not_configured": "Το Obsidian δεν είναι συντονισμένο", + "topics.export.obsidian_title": "Τίτλος", + "topics.export.obsidian_title_placeholder": "Εισάγετε τον τίτλο", + "topics.export.obsidian_title_required": "Ο τίτλος δεν μπορεί να είναι κενός", + "topics.export.obsidian_tags": "Ετικέτες", + "topics.export.obsidian_tags_placeholder": "Εισάγετε τις ετικέτες, χωρισμένες με κόμματα στα Αγγλικά, τα ετικέτα μπορεί να μην είναι μόνο αριθμοί", + "topics.export.obsidian_created": "Ημερομηνία δημιουργίας", + "topics.export.obsidian_created_placeholder": "Επιλέξτε την ημερομηνία δημιουργίας", + "topics.export.obsidian_source": "Πηγή", + "topics.export.obsidian_source_placeholder": "Εισάγετε την πηγή", + "topics.export.obsidian_operate": "Επεξεργασία μεθόδου", + "topics.export.obsidian_operate_placeholder": "Επιλέξτε την μεθόδο επεξεργασίας", + "topics.export.obsidian_operate_append": "Επισυναγωγή", + "topics.export.obsidian_operate_prepend": "Προσθήκη", + "topics.export.obsidian_operate_new_or_overwrite": "Νέο (επιστροφή σε επιστροφή)", + "topics.export.obsidian_atributes": "Ρυθμίσεις σημείου σημείωσης", + "topics.export.obsidian_btn": "ΟΚ", + "topics.export.obsidian_export_success": "Η εξαγωγή ήταν επιτυχής", + "topics.export.obsidian_export_failed": "Η εξαγωγή απέτυχε", + "topics.export.joplin": "Εξαγωγή στο Joplin", + "topics.list": "Λίστα θεμάτων", + "topics.move_to": "Μετακίνηση στο", + "topics.pinned": "Σταθερά θέματα", + "topics.prompt": "Προσδοκώμενα όρια", + "topics.prompt.edit.title": "Επεξεργασία προσδοκώμενων όριων", + "topics.prompt.tips": "Προσδοκώμενα όρια: προσθέτει επιπλέον επιστημονικές προσθήκες για το παρόν θέμα", + "topics.title": "Θέματα", + "topics.unpinned": "Αποστέλλω", + "topics.new": "Ξεκινήστε νέα συζήτηση", + "translate": "Μετάφραση" + }, + "code_block": { + "collapse": "συμπεριληφθείς", + "disable_wrap": "ακύρωση αλλαγής γραμμής", + "enable_wrap": "άλλαγη γραμμής", + "expand": "επιλογή" + }, + "common": { + "add": "Προσθέστε", + "and": "και", + "assistant": "Εξυπνιασμένη Ενότητα", + "avatar": "Εικονίδιο", + "back": "Πίσω", + "cancel": "Άκυρο", + "chat": "Συζήτηση", + "clear": "Καθαρισμός", + "close": "Κλείσιμο", + "confirm": "Επιβεβαίωση", + "copy": "Αντιγραφή", + "copied": "Αντιγράφηκε", + "cut": "Κοπή", + "default": "Προεπιλογή", + "delete": "Διαγραφή", + "description": "Περιγραφή", + "docs": "Έγγραφα", + "download": "Λήψη", + "duplicate": "Αντιγραφή", + "edit": "Επεξεργασία", + "footnote": "Παραπομπή", + "footnotes": "Παραπομπές", + "fullscreen": "Εισήχθη σε πλήρη οθόνη, πατήστε F11 για να έξω", + "knowledge_base": "Βάση Γνώσεων", + "language": "Γλώσσα", + "model": "Μοντέλο", + "models": "Μοντέλα", + "name": "Όνομα", + "paste": "Επικόλληση", + "prompt": "Ενδεικτικός ρήματος", + "provider": "Παρέχων", + "regenerate": "Ξαναπαραγωγή", + "rename": "Μετονομασία", + "reset": "Επαναφορά", + "save": "Αποθήκευση", + "search": "Αναζήτηση", + "select": "Επιλογή", + "topics": "Θέματα", + "warning": "Προσοχή", + "you": "Εσείς", + "more": "Περισσότερα", + "advanced_settings": "Προχωρημένες ρυθμίσεις", + "expand": "Επεκτάση" + }, + "docs": { + "title": "Βοήθεια" + }, + "error": { + "http": { + "400": "Σφάλμα ζητήματος, παρακαλώ ελέγξτε αν τα παράμετρα του ζητήματος είναι σωστά. Εάν έχετε αλλάξει τις ρυθμίσεις του μοντέλου, επαναφέρετε τις προεπιλεγμένες ρυθμίσεις.", + "401": "Αποτυχία επιβεβαίωσης ταυτότητας, παρακαλώ ελέγξτε αν η κλειδί API είναι σωστή", + "403": "Απαγορεύεται η πρόσβαση, παρακαλώ μεταφράστε το συγκεκριμένο σφάλμα για να δείτε την αιτία ή επικοινωνήστε με τον παροχεύτη για να μάθετε την αιτία της απαγόρευσης", + "404": "Το μοντέλο δεν υπάρχει ή η διαδρομή παραγγελίας είναι λάθος", + "429": "Υπερβολική συχνότητα ζητημάτων, παρακαλώ δοκιμάστε ξανά", + "500": "Εσωτερικό σφάλμα διαχειριστή, παρακαλώ δοκιμάστε ξανά", + "502": "Σφάλμα φάρων, παρακαλώ δοκιμάστε ξανά", + "503": "Η υπηρεσία δεν είναι διαθέσιμη, παρακαλώ δοκιμάστε ξανά", + "504": "Υπερχρονισμός φάρων, παρακαλώ δοκιμάστε ξανά" + }, + "render": { + "title": "Σφάλμα Παρασκήνιου", + "description": "Απέτυχε η ώθηση της εξίσωσης, παρακαλώ ελέγξτε το σωστό μορφάτι της" + }, + "backup.file_format": "Λάθος μορφή αρχείου που επιστρέφεται", + "chat.response": "Σφάλμα. Εάν δεν έχετε ρυθμίσει το κλειδί API, πηγαίνετε στο ρυθμισμένα > παρέχοντας το πρόσωπο του μοντέλου", + "model.exists": "Το μοντέλο υπάρχει ήδη", + "no_api_key": "Δεν έχετε ρυθμίσει το κλειδί API", + "provider_disabled": "Ο παρεχόμενος παροχός του μοντέλου δεν είναι ενεργοποιημένος", + "user_message_not_found": "Αδυναμία εύρεσης της αρχικής μηνύματος χρήστη" + }, + "export": { + "assistant": "βοηθός", + "attached_files": "συνημμένα αρχεία", + "conversation_details": "λεπτομέρειες συζήτησης", + "conversation_history": "Ιστορικό Συζητήσεων", + "created": "Ημερομηνία Δημιουργίας", + "last_updated": "Τελευταία ενημέρωση", + "messages": "Αριθμός Μηνυμάτων", + "user": "Χρήστης" + }, + "files": { + "actions": "Ενέργειες", + "all": "Όλα τα αρχεία", + "count": "Αριθμός αρχείων", + "created_at": "Ημερομηνία δημιουργίας", + "delete": "Διαγραφή", + "delete.content": "Η διαγραφή του αρχείου θα διαγράψει την αναφορά του σε όλα τα μηνύματα. Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το αρχείο;", + "delete.paintings.warning": "Το σχεδίο περιλαμβάνει αυτή την εικόνα και δεν είναι παρόλως δυνατή η διαγραφή.", + "delete.title": "Διαγραφή αρχείου", + "document": "Έγγραφο", + "edit": "Επεξεργασία", + "file": "Αρχείο", + "image": "Εικόνα", + "name": "Όνομα αρχείου", + "open": "Άνοιγμα", + "size": "Μέγεθος", + "text": "Κείμενο", + "title": "Αρχεία", + "type": "Τύπος" + }, + "history": { + "continue_chat": "Συνεχίστε το συνομιλημένο", + "locate.message": "Εφαρμογή στο μήνυμα", + "search.messages": "Αναζήτηση όλων των μηνυμάτων", + "search.placeholder": "Αναζήτηση θεμάτων ή μηνυμάτων...", + "search.topics.empty": "Δεν βρέθηκαν σχετικά θέματα, πατήστε Enter για να αναζητήσετε όλα τα μηνύματα", + "title": "Αναζήτηση θεμάτων" + }, + "knowledge": { + "add": { + "title": "Προσθήκη βιβλιοθήκης γνώσεων" + }, + "add_directory": "Προσθήκη καταλόγου", + "add_file": "Προσθήκη αρχείου", + "add_note": "Προσθήκη σημειώματος", + "add_sitemap": "Χάρτης τόπων", + "add_url": "Προσθήκη διευθύνσεως", + "cancel_index": "Άκυρη ευρετήριοποίηση", + "chunk_overlap": "Μέγεθος επιφάνειας", + "chunk_overlap_placeholder": "Προεπιλογή (δεν συνιστάται να το αλλάξετε)", + "chunk_overlap_tooltip": "Το ποσοστό επιφάνειας επιφάνειας μεταξύ γειτνιώντων κειμένων μπλοκ, για να εξασφαλίσετε ότι τα κείμενα μπλοκ μετά τη διακοσμηση εξακολουθούν να έχουν σχέση σε προσδιορισμό, βελτιώνοντας την συνολική αποτελεσματικότητα επεξεργασίας με μοντέλα μεγάλου κειμένου", + "chunk_size": "Μέγεθος μερισμού", + "chunk_size_change_warning": "Η αλλαγή του μεγέθους μερισμού και της επιφάνειας επιφάνειας εφαρμόζεται μόνο για νέα προσθέτομεν αρχεία", + "chunk_size_placeholder": "Προεπιλογή (δεν συνιστάται να το αλλάξετε)", + "chunk_size_too_large": "Το μέγεθος μερισμού δεν μπορεί να ξεπεράσει το όριο πλάτους επιρροής του μοντέλου ({{max_context}})", + "chunk_size_tooltip": "Διαχωρισμός των έγγραφων σε μεριδισμούς, με το μέγεθος κάθε μεριδισμού να μην ξεπεράζει το όριο πλάτους επιρροής του μοντέλου", + "clear_selection": "Καθαρισμός επιλογής", + "delete": "Διαγραφή", + "delete_confirm": "Είστε σίγουρος ότι θέλετε να διαγράψετε αυτή τη βάση γνώσεων;", + "directories": "Κατάλογοι", + "directory_placeholder": "Εισάγετε το δρομολόγιο του καταλόγου", + "document_count": "Ποσότητα κειμένων που ζητούνται", + "document_count_default": "Προεπιλογή", + "document_count_help": "Όσο μεγαλύτερη είναι η ποσότητα των κειμένων που ζητούνται, τόσο περισσότερες πληροφορίες παρέχονται, αλλά και οι καταναλωτικοί Token επειδή περισσότερα", + "drag_file": "Βάλτε το αρχείο εδώ", + "edit_remark": "Μεταβολή σημειώματος", + "edit_remark_placeholder": "Εισάγετε το σημείωμα", + "empty": "Λεηλασία βάσης γνώσεων", + "file_hint": "Υποστηρίζεται το {{file_types}} μορφάττων", + "index_all": "Ευρετήριοποίηση όλων", + "index_cancelled": "Η ευρετήριοποίηση διακόπηκε", + "index_started": "Η ευρετήριοποίηση ξεκίνησε", + "invalid_url": "Μη έγκυρη διευθύνση", + "model_info": "Πληροφορίες μοντέλου", + "no_bases": "Λεηλασία βάσης γνώσεων", + "no_match": "Δεν βρέθηκαν στοιχεία γνώσεων", + "no_provider": "Η παροχή υπηρεσιών μοντέλου βάσης γνώσεων χαθηκε, αυτή η βάση γνώσεων δεν θα υποστηρίζεται πλέον, παρακαλείστε να δημιουργήσετε ξανά μια βάση γνώσεων", + "not_set": "Δεν έχει ρυθμιστεί", + "not_support": "Το μοντέλο βάσης γνώσεων έχει ενημερωθεί, αυτή η βάση γνώσεων δεν θα υποστηρίζεται πλέον, παρακαλείστε να δημιουργήσετε ξανά μια βάση γνώσεων", + "notes": "Σημειώματα", + "notes_placeholder": "Εισάγετε πρόσθετες πληροφορίες ή πληροφορίες προσδιορισμού για αυτή τη βάση γνώσεων...", + "rename": "Μετονομασία", + "search": "Αναζήτηση βάσης γνώσεων", + "search_placeholder": "Εισάγετε την αναζήτηση", + "settings": "Ρυθμίσεις βάσης γνώσεων", + "sitemap_placeholder": "Εισάγετε τη διεύθυνση URL του χάρτη τόπων", + "sitemaps": "Στοιχεία του δικτύου", + "source": "Πηγή", + "status": "Κατάσταση", + "status_completed": "Ολοκληρώθηκε", + "status_failed": "Αποτυχία", + "status_new": "Προστέθηκε", + "status_pending": "Εκκρεμής", + "status_processing": "Επεξεργασία", + "threshold": "Περιθώριο συνάφειας", + "threshold_placeholder": "Δεν έχει ρυθμιστεί", + "threshold_too_large_or_small": "Το περιθώριο δεν μπορεί να είναι μεγαλύτερο από 1 ή μικρότερο από 0", + "threshold_tooltip": "Χρησιμοποιείται για τη μετρηση της σχέσης συνάφειας μεταξύ της ερώτησης του χρήστη και των περιεχομένων της βάσης γνώσεων (0-1)", + "topN": "Ποσότητα αποτελεσμάτων που επιστρέφονται", + "topN_placeholder": "Δεν έχει ρυθμιστεί", + "topN__too_large_or_small": "Η ποσότητα των αποτελεσμάτων που επιστρέφονται δεν μπορεί να είναι μεγαλύτερη από 100 ή μικρότερη από 1", + "topN_tooltip": "Η ποσότητα των επιστρεφόμενων αποτελεσμάτων που συνάφονται, όσο μεγαλύτερη είναι η τιμή, τόσο περισσότερα αποτελέσματα συνδέονται, αλλά και οι καταναλωτικοί Token επειδή περισσότερα", + "title": "Βάση γνώσεων", + "url_added": "Η διεύθυνση προστέθηκε", + "url_placeholder": "Εισάγετε τη διεύθυνση, χωρίστε πολλαπλές διευθύνσεις με επιστροφή", + "urls": "Διευθύνσεις" + }, + "languages": { + "arabic": "Αραβικά", + "chinese": "Σίναρα Κινέζικά", + "chinese-traditional": "Παραδοσιακά Κινέζικά", + "english": "Αγγλικά", + "french": "Γαλλικά", + "german": "Γερμανικά", + "italian": "Ιταλικά", + "japanese": "Ιαπωνικά", + "korean": "Κορεάτικά", + "portuguese": "Πορτογαλικά", + "russian": "Ρωσικά", + "spanish": "Ισπανικά" + }, + "lmstudio": { + "keep_alive_time.description": "Χρόνος που ο μοντέλος διατηρείται στη μνήμη μετά από το συνομιλητή (προεπιλογή: 5 λεπτά)", + "keep_alive_time.placeholder": "λεπτά", + "keep_alive_time.title": "Χρόνος διατήρησης ενεργοποίησης", + "title": "LM Studio" + }, + "mermaid": { + "download": { + "png": "Λήψη PNG", + "svg": "Λήψη SVG" + }, + "resize": { + "zoom-in": "Μεγάλυνση", + "zoom-out": "Σμικρύνση" + }, + "tabs": { + "preview": "Προεπισκόπηση", + "source": "Κώδικας πηγής" + }, + "title": "Χαρτί Mermaid" + }, + "message": { + "attachments": { + "pasted_text": "Κείμενο στο πινάκιδα", + "pasted_image": "Εικόνα στο πινάκιδα" + }, + "tools": { + "invoking": "κλήση σε εξέλιξη", + "completed": "Ολοκληρώθηκε" + }, + "api.check.model.title": "Επιλέξτε το μοντέλο που θα ελέγξετε", + "api.connection.failed": "Η σύνδεση απέτυχε", + "api.connection.success": "Η σύνδεση ήταν επιτυχής", + "assistant.added.content": "Ο ενεργοποιημένος αστρόναυτης προστέθηκε επιτυχώς", + "backup.failed": "Η αντιγραφή ασφαλείας απέτυχε", + "backup.start.success": "Η αρχή της αντιγραφής ασφαλείας ήταν επιτυχής", + "backup.success": "Η αντιγραφή ασφαλείας ήταν επιτυχής", + "chat.completion.paused": "Η συζήτηση διακόπηκε", + "citations": "Περιεχόμενα αναφοράς", + "copied": "Αντιγράφηκε", + "copy.success": "Η αντιγραφή ήταν επιτυχής", + "copy.failed": "Η αντιγραφή απέτυχε", + "error.chunk_overlap_too_large": "Η επικάλυψη μεριδίων δεν μπορεί να είναι μεγαλύτερη από το μέγεθος του μεριδίου", + "error.dimension_too_large": "Το μέγεθος του περιεχομένου είναι πολύ μεγάλο", + "error.enter.api.host": "Παρακαλώ εισάγετε τη διεύθυνση API σας", + "error.enter.api.key": "Παρακαλώ εισάγετε το κλειδί API σας", + "error.enter.model": "Παρακαλώ επιλέξτε ένα μοντέλο", + "error.enter.name": "Παρακαλώ εισάγετε ένα όνομα για τη βάση γνώσεων", + "error.get_embedding_dimensions": "Απέτυχε η πρόσληψη διαστάσεων ενσωμάτωσης", + "error.invalid.api.host": "Μη έγκυρη διεύθυνση API", + "error.invalid.api.key": "Μη έγκυρο κλειδί API", + "error.invalid.enter.model": "Παρακαλώ επιλέξτε ένα μοντέλο", + "error.invalid.proxy.url": "Μη έγκυρη διεύθυνση προξενικού", + "error.invalid.webdav": "Μη έγκυρη ρύθμιση WebDAV", + "error.markdown.export.preconf": "Η εξαγωγή αρχείου Markdown στο προϋπολογισμένο μοντέλο απέτυχε", + "error.markdown.export.specified": "Η εξαγωγή αρχείου Markdown απέτυχε", + "error.notion.export": "Σφάλμα στην εξαγωγή του Notion, παρακαλείστε να ελέγξετε τη σύνδεση και τη διαμόρφωση κατά τη διατύπωση του χειρισμού", + "error.notion.no_api_key": "Δεν έχετε διαθέσιμο το API Key του Notion ή το ID της βάσης του Notion", + "error.yuque.export": "Σφάλμα στην εξαγωγή της Yuque, παρακαλείστε να ελέγξετε τη σύνδεση και τη διαμόρφωση κατά τη διατύπωση του χειρισμού", + "error.yuque.no_config": "Δεν έχετε διαθέσιμο το Token της Yuque ή το URL της βάσης της Yuque", + "error.joplin.no_config": "Δεν έχετε διαθέσιμο το Token εξουσιοδότησης του Joplin ή το URL του Joplin", + "error.joplin.export": "Η εξαγωγή του Joplin απέτυχε, παρακαλείστε να ελέγξετε τη σύνδεση και τη διαμόρφωση κατά τη διατύπωση του χειρισμού", + "group.delete.content": "Η διαγραφή της ομάδας θα διαγράψει τις ερωτήσεις των χρηστών και όλες τις απαντήσεις του αστρόναυτη", + "group.delete.title": "Διαγραφή ομάδας", + "ignore.knowledge.base": "Λειτουργία σύνδεσης ενεργοποιημένη, αγνοείται η βάση γνώσεων", + "info.notion.block_reach_limit": "Η συζήτηση είναι πολύ μεγάλη, εξάγεται σε περιοχές στο Notion", + "loading.notion.preparing": "Ετοιμάζεται η εξαγωγή στο Notion...", + "loading.notion.exporting_progress": "Εξάγεται στο Notion ({{current}}/{{total}})...", + "mention.title": "Εναλλαγή απάντησης αστρόναυτη", + "message.code_style": "Στυλ κώδικα", + "message.delete.content": "Θέλετε να διαγράψετε αυτό το μήνυμα;", + "message.delete.title": "Διαγραφή μηνύματος", + "message.multi_model_style": "Στυλ πολλαπλών απαντήσεων μοντέλου", + "message.multi_model_style.fold": "Κατάσταση ενσωμάτωσης", + "message.multi_model_style.fold.compress": "Εναλλαγή στη συμπιεσμένη διάταξη", + "message.multi_model_style.fold.expand": "Εναλλαγή στην επεκτατική διάταξη", + "message.multi_model_style.grid": "Διάταξη κάρτας", + "message.multi_model_style.horizontal": "Διάταξη επίπεδης", + "message.multi_model_style.vertical": "Διάταξη κάθετης", + "message.style": "Στυλ μηνύματος", + "message.style.bubble": "Αερογεύματα", + "message.style.plain": "Απλός", + "regenerate.confirm": "Η επαναδημιουργία θα αφαιρέσει το τρέχον μήνυμα", + "reset.confirm.content": "Θέλετε να επαναφέρετε όλα τα δεδομένα;", + "reset.double.confirm.content": "Όλα τα δεδομένα σας θα χαθούν, εάν δεν έχετε κάνει αντιγραφή, δεν θα μπορείτε να ανακτήσετε τα δεδομένα, είστε σίγουροι ότι θέλετε να συνεχίσετε;", + "reset.double.confirm.title": "Η απώλεια δεδομένων!!!", + "restore.failed": "Η αποκατάσταση απέτυχε", + "restore.success": "Η αποκατάσταση ήταν επιτυχής", + "save.success.title": "Η αποθήκευση ήταν επιτυχής", + "searching": "Ενεργοποιείται αναζήτηση στο διαδίκτυο...", + "success.markdown.export.preconf": "Η εξαγωγή αρχείου Markdown στο προϋπολογισμένο μοντέλο ήταν επιτυχής", + "success.markdown.export.specified": "Η εξαγωγή αρχείου Markdown ήταν επιτυχής", + "success.notion.export": "Η εξαγωγή στο Notion ήταν επιτυχής", + "success.yuque.export": "Η εξαγωγή στη Yuque ήταν επιτυχής", + "success.joplin.export": "Η εξαγωγή στο Joplin ήταν επιτυχής", + "switch.disabled": "Παρακαλείστε να περιμένετε τη λήξη της τρέχουσας απάντησης", + "topic.added": "Η θεματική προστέθηκε επιτυχώς", + "upgrade.success.button": "Επανεκκίνηση", + "upgrade.success.content": "Επανεκκίνηση για να ολοκληρώσετε την ενημέρωση", + "upgrade.success.title": "Η ενημέρωση ήταν επιτυχής", + "warn.notion.exporting": "Εξαγωγή στο Notion, μην επαναλάβετε την διαδικασία εξαγωγής!", + "warning.rate.limit": "Υπερβολική συχνότητα στείλατε παρακαλώ περιμένετε {{seconds}} δευτερόλεπτα και προσπαθήστε ξανά" + }, + "minapp": { + "sidebar.add.title": "Προσθήκη στην πλευρή", + "sidebar.remove.title": "Αφαίρεση από την πλευρή", + "title": "Μικρόπρογραμμα" + }, + "miniwindow": { + "clipboard": { + "empty": "Το πινάκιδα κόπων είναι άδειο" + }, + "feature": { + "chat": "Απάντηση σ' αυτή την ερώτηση", + "explanation": "Εξήγηση", + "summary": "Σύνοψη", + "translate": "Μετάφραση κειμένου" + }, + "footer": { + "copy_last_message": "Παράκαμε το τελευταίο μήνυμα", + "esc": "πατήστε ESC για {{action}}", + "esc_back": "Επιστροφή", + "esc_close": "Κλείσιμο παραθύρου" + }, + "input": { + "placeholder": { + "empty": "Ρώτα τον {{model}} για βοήθεια...", + "title": "Τι θέλεις να κάνεις με το κείμενο που είναι παρακάτω" + } + } + }, + "models": { + "parameter_type": { + "boolean": "Πιθανότητα", + "json": "JSON", + "number": "Αριθμός", + "string": "Συμβολοσειρά" + }, + "type": { + "embedding": "ενσωμάτωση", + "reasoning": "λογική", + "select": "Επιλέξτε τύπο μοντέλου", + "text": "κείμενο", + "vision": "εικόνα", + "function_calling": "κλήση συνάρτησης" + }, + "add_parameter": "Προσθήκη παραμέτρων", + "all": "Όλα", + "custom_parameters": "Προσαρμοσμένοι παράμετροι", + "dimensions": "{{dimensions}} διαστάσεις", + "edit": "Επεξεργασία μοντέλου", + "embedding": "Ενσωμάτωση", + "embedding_model": "Μοντέλο ενσωμάτωσης", + "embedding_model_tooltip": "Κάντε κλικ στο κουμπί Διαχείριση στο παράθυρο Ρυθμίσεις -> Υπηρεσία Μοντέλων", + "rerank_model": "Μοντέλο αναδιάταξης", + "rerank_model_tooltip": "Κάντε κλικ στο κουμπί Διαχείριση στο παράθυρο Ρυθμίσεις -> Υπηρεσία Μοντέλων", + "rerank_model_support_provider": "Σημειώστε ότι το μοντέλο αναδιάταξης υποστηρίζεται από μερικούς παρόχους ({{provider}})", + "free": "Δωρεάν", + "no_matches": "Δεν υπάρχουν διαθέσιμα μοντέλα", + "parameter_name": "Όνομα παραμέτρου", + "pinned": "Κατακερματισμένο", + "reasoning": "Αντιλήψεις", + "search": "Αναζήτηση μοντέλου...", + "stream_output": "Διαρκής Εξόδος", + "function_calling": "Ξεχωριστική Κλήση Συναρτήσεων", + "vision": "Οπτική", + "websearch": "Αναζήτηση στο διαδίκτυο" + }, + "navbar": { + "expand": "Επισκευή διαλόγου", + "hide_sidebar": "Απόκρυψη πλάγιας μπάρας", + "show_sidebar": "Εμφάνιση πλάγιας μπάρας" + }, + "ollama": { + "keep_alive_time.description": "Χρόνος που ο μοντέλος διατηρείται στη μνήμη μετά τη συζήτηση (προεπιλογή: 5 λεπτά)", + "keep_alive_time.placeholder": "λεπτά", + "keep_alive_time.title": "Χρόνος διατήρησης ενεργοποίησης", + "title": "Ollama" + }, + "paintings": { + "button.delete.image": "Διαγραφή εικόνας", + "button.delete.image.confirm": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την εικόνα;", + "button.new.image": "Νέα εικόνα", + "guidance_scale": "Κλίμακα προσαρμογής", + "guidance_scale_tip": "Χωρίς κλάσικο προσαρμογής. Ελέγχει την προσαρμογή του μοντέλου στην αναζήτηση παρόμοιων εικόνων για το σχόλιο.", + "image.size": "Μέγεθος εικόνας", + "inference_steps": "Βήματα επεξεργασίας", + "inference_steps_tip": "Το πλήθος των βημάτων επεξεργασίας που πρέπει να εκτελεστούν. Περισσότερα βήματα = χαμηλότερη ποιότητα και μεγαλύτερος χρόνος εκτέλεσης", + "negative_prompt": "Αντίστροφη προσδοκία", + "negative_prompt_tip": "Περιγράψτε τα πράγματα που δεν θέλετε να εμφανίζονται στην εικόνα", + "number_images": "Ποσότητα δημιουργιών", + "number_images_tip": "Ποσότητα εικόνων που θα δημιουργηθούν μια φορά (1-4)", + "prompt_enhancement": "Βελτιστοποίηση σχόλιου", + "prompt_enhancement_tip": "Όταν ενεργοποιηθεί, η προσδοκία προσαρμόζεται για να γίνει περισσότερο λεπτομερής και συμβατή με το μοντέλο", + "prompt_placeholder": "Περιγράψτε την εικόνα που θέλετε να δημιουργήσετε, για παράδειγμα: ένα ηρωϊκό λιμάνι, το δείπνο του θεού, με απέναντι την ορεινή περιοχή", + "regenerate.confirm": "Αυτό θα επιβάλει τις δημιουργίες που έχετε κάνει, θέλετε να συνεχίσετε;", + "seed": "Τυχαίος παράγοντας", + "seed_tip": "Η χρήση του ίδιου παραγόντα και του σχολίου μπορεί να δημιουργήσει παρόμοιες εικόνες", + "title": "Εικόνα" + }, + "plantuml": { + "download": { + "failed": "Η κατέβαση απέτυχε, παρακαλούμε ελέγξτε το δίκτυο", + "png": "Κατέβασμα PNG", + "svg": "Κατέβασμα SVG" + }, + "tabs": { + "preview": "προεπισκόπηση", + "source": "πηγαίος κώδικας" + }, + "title": "Σχέδιο PlantUML" + }, + "prompts": { + "explanation": "Με βοηθήστε να εξηγήσετε αυτό το όρισμα", + "summarize": "Με βοηθήστε να συνοψίσετε αυτό το κείμενο", + "title": "Είστε ένας ειδικευμένος βοηθός συζητήσεων, πρέπει να συνοψίζετε τη συζήτηση του χρήστη σε έναν τίτλο με μεχρι 10 λέξεις, η γλώσσα του τίτλου να είναι ίδια με την πρώτη γλώσσα του χρήστη, δεν χρησιμοποιείστε πόσοι ή άλλα ειδικά σύμβολα" + }, + "provider": { + "aihubmix": "AiHubMix", + "anthropic": "Anthropic", + "azure-openai": "Azure OpenAI", + "baichuan": "Παράκειμαι", + "baidu-cloud": "Baidu Cloud Qianfan", + "dashscope": "AliCloud Bailian", + "deepseek": "Βαθιά Αναζήτηση", + "dmxapi": "DMXAPI", + "doubao": "Huoshan Engine", + "fireworks": "Fireworks", + "gemini": "Gemini", + "gitee-ai": "Gitee AI", + "github": "GitHub Models", + "graphrag-kylin-mountain": "GraphRAG", + "grok": "Grok", + "groq": "Groq", + "hunyuan": "Tencent Hunyuan", + "hyperbolic": "Υπερβολικός", + "infini": "Χωρίς Ερώτημα Xin Qiong", + "jina": "Jina", + "lmstudio": "LM Studio", + "minimax": "MiniMax", + "mistral": "Mistral", + "modelscope": "ModelScope Magpie", + "moonshot": "Σκοτεινή Κορωνίδα της Σελήνης", + "nvidia": "NVIDIA", + "o3": "O3", + "ocoolai": "ocoolAI", + "ollama": "Ollama", + "openai": "OpenAI", + "openrouter": "OpenRouter", + "perplexity": "Perplexity", + "ppio": "PPIO Piao Yun", + "qwenlm": "QwenLM", + "silicon": "Σιδηρική Παρουσία", + "stepfun": "Βήμα Ουράς", + "tencent-cloud-ti": "Tencent Cloud TI", + "together": "Together", + "xirang": "China Telecom Xiran", + "yi": "Zero One Wanyiwu", + "zhinao": "360 Intelligent Brain", + "zhipu": "Zhipu AI", + "copilot": "GitHub Copilot", + "gpustack": "GPUStack", + "alayanew": "Alaya NeW" + }, + "restore": { + "progress": { + "completed": "Η αποκατάσταση ολοκληρώθηκε", + "copying_files": "Αντιγραφή αρχείων... {{progress}}%", + "extracting": "Εξtraction της αντιγραφής...", + "preparing": "Ήταν προετοιμασία για την αποκατάσταση...", + "reading_data": "Ανάγνωση δεδομένων...", + "title": "Πρόοδος αποκατάστασης" + }, + "confirm": "Είστε σίγουροι ότι θέλετε να επαναφέρετε τα δεδομένα;", + "confirm.button": "Επιλογή αρχείου εφαρμογής", + "content": "Η επαναφορά θα χρησιμοποιήσει τα αντίγραφα ασφαλείας για να επικαλύψει όλα τα σημερινά δεδομένα εφαρμογής. Παρακαλούμε σημειώστε ότι η διαδικασία μπορεί να χρειαστεί λίγο καιρό, ευχαριστούμε για την υπομονή.", + "title": "Επαναφορά Δεδομένων" + }, + "gpustack": { + "keep_alive_time.description": "Χρόνος που ο μοντέλος παραμένει στη μνήμη (προεπιλογή: 5 λεπτά)", + "keep_alive_time.placeholder": "λεπτά", + "keep_alive_time.title": "Χρόνος διατήρησης ενεργοποίησης", + "title": "GPUStack" + }, + "settings": { + "data": { + "clear_cache": { + "button": "Καθαρισμός Μνήμης", + "confirm": "Η διαγραφή της μνήμης θα διαγράψει τα στοιχεία καθαρισμού της εφαρμογής, συμπεριλαμβανομένων των στοιχείων πρόσθετων εφαρμογών. Αυτή η ενέργεια δεν είναι αναστρέψιμη. Θέλετε να συνεχίσετε;", + "error": "Αποτυχία καθαρισμού της μνήμης", + "success": "Η μνήμη καθαρίστηκε με επιτυχία", + "title": "Καθαρισμός Μνήμης" + }, + "notion.check": { + "button": "Έλεγχος", + "empty_api_key": "Δεν έχει ρυθμιστεί η κλειδιά API", + "empty_database_id": "Δεν έχει ρυθμιστεί ο ID της βάσης δεδομένων", + "error": "Σφάλμα σύνδεσης, παρακαλείστε ελέγξτε το δίκτυο και αν το API key και το Database ID είναι σωστά", + "fail": "Η σύνδεση απέτυχε, παρακαλείστε ελέγξτε το δίκτυο και αν το API key και το Database ID είναι σωστά", + "success": "Η σύνδεση ήταν επιτυχής" + }, + "webdav": { + "autoSync": "Αυτόματη αντιγραφή ασφαλείας", + "autoSync.off": "Επιστροφή στο κλειδωμένο κατάσταμμα", + "backup.button": "Αντιγραφή ασφαλείας στο WebDAV", + "host": "Διεύθυνση WebDAV", + "host.placeholder": "http://localhost:8080", + "hour_interval_one": "{{count}} ώρα", + "hour_interval_other": "{{count}} ώρες", + "lastSync": "Η τελευταία αντιγραφή ασφαλείας", + "minute_interval_one": "{{count}} λεπτό", + "minute_interval_other": "{{count}} λεπτά", + "noSync": "Εκκρεμεί η επόμενη αντιγραφή ασφαλείας", + "password": "Κωδικός πρόσβασης WebDAV", + "path": "Διαδρομή WebDAV", + "path.placeholder": "/backup", + "backup.modal.title": "Αντιγραφή ασφαλείας στο WebDAV", + "backup.modal.filename.placeholder": "Εισαγάγετε το όνομα του αρχείου αντιγράφου ασφαλείας", + "restore.modal.title": "Αποκατάσταση από το WebDAV", + "restore.modal.select.placeholder": "Επιλέξτε το αρχείο αντιγράφου ασφαλείας για αποκατάσταση", + "restore.confirm.title": "Υποβεβαίωση αποκατάστασης", + "restore.confirm.content": "Η αποκατάσταση από το WebDAV θα επιβάλλει τα σημερινά δεδομένα. Θέλετε να συνεχίσετε;", + "restore.button": "Αποκατάσταση από το WebDAV", + "restore.content": "Η αποκατάσταση από το WebDAV θα επιβάλλει τα σημερινά δεδομένα. Θέλετε να συνεχίσετε;", + "restore.title": "Αποκατάσταση από το WebDAV", + "syncError": "Σφάλμα στην αντιγραφή ασφαλείας", + "syncStatus": "Κατάσταση αντιγραφής ασφαλείας", + "title": "WebDAV", + "user": "Όνομα χρήστη WebDAV" + }, + "yuque": { + "check": { + "button": "Έλεγχος", + "empty_repo_url": "Παρακαλώ εισάγετε το URL του βιβλιοθηκέυματος πρώτα", + "empty_token": "Παρακαλώ εισάγετε τον κλειδί του Yuluxian πρώτα", + "fail": "Απέτυχε η επαλήθευση σύνδεσης με το Yuluxian", + "success": "Η επαλήθευση σύνδεσης με το Yuluxian ήταν επιτυχής" + }, + "help": "Λήψη Token του Yusi", + "repo_url": "Διεύθυνση URL του βιβλιοθικίου", + "repo_url_placeholder": "https://www.yuque.com/username/xxx", + "title": "Ρύθμιση Yusi", + "token": "Token του Yusi", + "token_placeholder": "Παρακαλούμε εισάγετε το Token του Yusi" + }, + "obsidian": { + "title": "Ρύθμιση του Obsidian", + "vault": "Αποθήκη", + "vault_placeholder": "Παρακαλώ εισάγετε όνομα αποθήκης", + "folder": "Φάκελος", + "folder_placeholder": "Παρακαλώ εισάγετε όνομα φακέλου", + "tags": "Παγκόσμιοι ετικέτες", + "tags_placeholder": "Παρακαλώ εισάγετε ονόματα ετικετών, χωριστά με κόμματα, οι ετικέτες στο Obsidian δεν μπορούν να είναι μόνο αριθμοί" + }, + "joplin": { + "check": { + "button": "Έλεγχος", + "empty_url": "Παρακαλούμε εισάγετε την URL που είναι συνδεδεμένη με την υπηρεσία κοπής του Joplin", + "empty_token": "Παρακαλούμε εισάγετε τον κωδικό προσβασιμότητας του Joplin", + "fail": "Η επαλήθευση σύνδεσης του Joplin απέτυχε", + "success": "Η επαλήθευση σύνδεσης του Joplin ήταν επιτυχής" + }, + "title": "Ρύθμιση Joplin", + "help": "Σ τις επιλογές του Joplin, ενεργοποιήστε την υπηρεσία περικοπής ιστότοπων (χωρίς εγκατάσταση πρόσθετων στο περιηγητή), επιβεβαιώστε τον θύραρι και αντιγράψτε τον κωδικό πρόσβασης.", + "url": "URL υπηρεσίας περικοπής Joplin", + "url_placeholder": "http://127.0.0.1:41184/", + "token": "Κωδικός πρόσβασης Joplin", + "token_placeholder": "Εισαγάγετε τον κωδικό πρόσβασης Joplin" + }, + "app_data": "Δεδομένα εφαρμογής", + "app_knowledge": "Αρχεία βάσης γνώσεων", + "app_knowledge.button.delete": "Διαγραφή αρχείου", + "app_knowledge.remove_all": "Διαγραφή αρχείων βάσης γνώσεων", + "app_knowledge.remove_all_confirm": "Η διαγραφή των αρχείων της βάσης γνώσεων μπορεί να μειώσει τη χρήση χώρου αποθήκευσης, αλλά δεν θα διαγράψει τα διανυσματωτικά δεδομένα της βάσης γνώσεων. Μετά τη διαγραφή, δεν θα μπορείτε να ανοίξετε τα αρχεία πηγή. Θέλετε να διαγράψετε;", + "app_knowledge.remove_all_success": "Τα αρχεία διαγράφηκαν με επιτυχία", + "app_logs": "Φάκελοι εφαρμογής", + "data.title": "Φάκελος δεδομένων", + "hour_interval_one": "{{count}} ώρα", + "hour_interval_other": "{{count}} ώρες", + "minute_interval_one": "{{count}} λεπτά", + "minute_interval_other": "{{count}} λεπτά", + "markdown_export.title": "Εξαγωγή Markdown", + "markdown_export.path": "Προεπιλογή διαδρομής εξαγωγής", + "markdown_export.path_placeholder": "Διαδρομή εξαγωγής", + "markdown_export.select": "Επιλογή", + "markdown_export.help": "Εάν συμπληρώσετε, κάθε φορά που θα εξαγάγετε θα αποθηκεύεται αυτόματα σε αυτή τη διαδρομή· διαφορετικά, θα εμφανιστεί μια διαβεβαίωση αποθήκευσης.", + "markdown_export.force_dollar_math.title": "Ανάγκη χρήσης $$ για να σημειώσετε την εξίσωση LaTeX", + "markdown_export.force_dollar_math.help": "Κάνοντας το ενεργό, κατά την εξαγωγή Markdown, θα χρησιμοποιείται αναγκαστικά το $$ για να σημειώσετε την εξίσωση LaTeX. Νομίζετε: Αυτή η επιλογή θα επηρεάσει και όλες τις μεθόδους εξαγωγής μέσω Markdown, όπως το Notion, Yuyu κλπ.", + "notion.api_key": "Κλειδί Notion", + "notion.api_key_placeholder": "Εισαγάγετε το κλειδί Notion", + "notion.auto_split": "Αυτόματη εκχώρηση σε σελίδες κατά την εξαγωγή συζητήσεων", + "notion.auto_split_tip": "Όταν η συζήτηση που θα εξαγάγετε είναι πολύ μεγάλη, θα εκχωρείται αυτόματα σε περισσότερες σελίδες στο Notion", + "notion.database_id": "ID Βάσης Δεδομένων Notion", + "notion.database_id_placeholder": "Εισαγάγετε το ID Βάσης Δεδομένων Notion", + "notion.help": "Έγχρωστη διαδρομή του Notion", + "notion.page_name_key": "Όνομα πεδίου τίτλου σελίδας", + "notion.page_name_key_placeholder": "Εισαγάγετε το όνομα του πεδίου τίτλου σελίδας, προεπιλογή: Name", + "notion.split_size": "Μέγεθος αυτόματης διαχωριστικής σελίδας", + "notion.split_size_help": "Οι χρήστες της δωρεάν έκδοσης του Notion προτείνεται να ορίσουν 90, οι υψηλότερες έκδοσεις προτείνονται να ορίσουν 24990, το προεπιλεγμένο είναι 90", + "notion.split_size_placeholder": "Εισαγάγετε τον περιορισμό μπλοκ κάθε σελίδας (προεπιλογή: 90)", + "notion.title": "Ρυθμίσεις του Notion", + "title": "Ρυθμίσεις δεδομένων" + }, + "mcp": { + "npx_list": { + "title": "Λίστα πακέτων NPX", + "desc": "Αναζητήστε και προσθέστε πακέτα npm ως υπηρεσίες MCP", + "scope_placeholder": "Εισαγάγετε το σκοπό του npm (π.χ. @your-org)", + "search": "Αναζήτηση", + "package_name": "Όνομα πακέτου", + "description": "Περιγραφή", + "usage": "Χρήση", + "npm": "NPM", + "version": "Έκδοση", + "actions": "Ενέργειες", + "scope_required": "Παρακαλώ εισαγάγετε το σκοπό του npm", + "no_packages": "Δεν βρέθηκαν πακέτα", + "search_error": "Η αναζήτηση απέτυχε" + }, + "actions": "Ενέργειες", + "active": "Ενεργοποίηση", + "addServer": "Προσθήκη διακομιστή", + "addSuccess": "Ο διακομιστής προστέθηκε επιτυχώς", + "addError": "Αποτυχία προσθήκης διακομιστή", + "args": "Παράμετροι", + "argsTooltip": "Κάθε παράμετρος σε μια γραμμή", + "baseUrlTooltip": "Σύνδεσμος Απομακρυσμένης διεύθυνσης URL", + "command": "Εντολή", + "commandRequired": "Παρακαλώ εισάγετε την εντολή", + "config_description": "Ρυθμίζει το πλαίσιο συντονισμού πρωτοκόλλων διακομιστή", + "confirmDelete": "Διαγραφή διακομιστή", + "confirmDeleteMessage": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον διακομιστή;", + "deleteError": "Αποτυχία διαγραφής διακομιστή", + "deleteSuccess": "Ο διακομιστής διαγράφηκε επιτυχώς", + "description": "Περιγραφή", + "duplicateName": "Υπάρχει ήδη ένας διακομιστής με αυτό το όνομα", + "editServer": "Επεξεργασία διακομιστή", + "env": "Περιβαλλοντικές μεταβλητές", + "envTooltip": "Μορφή: KEY=value, κάθε μια σε μια γραμμή", + "findMore": "Περισσότεροι διακομιστές MCP", + "name": "Όνομα", + "nameRequired": "Παρακαλώ εισάγετε το όνομα του διακομιστή", + "noServers": "Δεν έχουν ρυθμιστεί διακομιστές", + "serverPlural": "Διακομιστές", + "serverSingular": "Διακομιστής", + "title": "Διακομιστές MCP", + "type": "Τύπος", + "updateSuccess": "Ο διακομιστής ενημερώθηκε επιτυχώς", + "updateError": "Αποτυχία ενημέρωσης διακομιστή", + "url": "URL", + "toggleError": "Αποτυχία εναλλαγής", + "dependenciesInstalling": "Βράζουν οι εξαρτήσεις...", + "dependenciesInstall": "Εγκατάσταση εξαρτήσεων", + "installSuccess": "Η εγκατάσταση των εξαρτήσεων ολοκληρώθηκε επιτυχώς", + "installError": "Αποτυχία εγκατάστασης εξαρτήσεων", + "missingDependencies": "Απο缺失, παρακαλώ εγκαταστήστε το για να συνεχίσετε", + "install": "Εγκατάσταση", + "editJson": "Επεξεργασία JSON", + "jsonModeHint": "Επεξεργασία της εκφώνησης JSON του διακομιστή MCP. Παρακαλώ εξασφαλίστε ότι το μορφοποίηση είναι σωστό πριν από την αποθήκευση.", + "jsonFormatError": "Σφάλμα στη μορφοποίηση JSON", + "jsonSaveSuccess": "Η διαμορφωτική ρύθμιση JSON αποθηκεύτηκε επιτυχώς", + "jsonSaveError": "Αποτυχία αποθήκευσης της διαμορφωτικής ρύθμισης JSON" + }, + "provider": { + "copilot": { + "tooltip": "Για τη χρήση του Github Copilot πρέπει να συνδεθείτε στο Github", + "description": "Ο λογαριασμός σας στο Github χρειάζεται να εγγραφεί για να χρησιμοποιήσει το Copilot", + "login": "Σύνδεση με το Github", + "connect": "Σύνδεση με το Github", + "logout": "Αποσύνδεση από το Github", + "auth_success_title": "Η επιβεβαίωση ήταν επιτυχής", + "code_generated_title": "Λήψη Device Code", + "code_generated_desc": "Παρακαλώ αντιγράψτε το Device Code στον παρακάτω σύνδεσμο περιηγητή", + "code_failed": "Η λήψη του Device Code απέτυχε, παρακαλώ δοκιμάστε ξανά", + "auth_success": "Η επιβεβαίωση του Github Copilot ήταν επιτυχής", + "auth_failed": "Η επιβεβαίωση του Github Copilot απέτυχε", + "logout_success": "Έγινε επιτυχής η αποσύνδεση", + "logout_failed": "Η αποσύνδεση απέτυχε, παρακαλώ δοκιμάστε ξανά", + "confirm_title": "Ειδοποίηση κινδύνου", + "confirm_login": "Η υπερβολική χρήση μπορεί να οδηγήσει στην απενεργοποίηση του λογαριασμού σας στο Github, παρακαλώ χρησιμοποιήστε το με προσοχή!!!!", + "rate_limit": "Όριο ρυθμού", + "custom_headers": "Προσαρμοσμένες κεφαλίδες αιτήματος", + "headers_description": "Προσαρμοσμένες κεφαλίδες αιτήματος (σε JSON μορφή)", + "expand": "Επεκτάση", + "model_setting": "Ρυθμίσεις μοντέλου", + "invalid_json": "Λάθος σύνταξη JSON", + "open_verification_first": "Παρακαλώ κάντε κλικ στον παραπάνω σύνδεσμο για να επισκεφτείτε τη σελίδα επιβεβαίωσης" + }, + "add.name": "Όνομα παρόχου", + "add.name.placeholder": "π.χ. OpenAI", + "add.title": "Προσθήκη παρόχου", + "add.type": "Τύπος παρόχου", + "api.url.preview": "Προεπισκόπηση: {{url}}", + "api.url.reset": "Επαναφορά", + "api.url.tip": "/τέλος αγνόηση v1 έκδοσης, #τέλος ενδεχόμενη χρήση της εισαγωγής διευθύνσεως", + "api_host": "Διεύθυνση API", + "api_key": "Κλειδί API", + "api_key.tip": "Χωριστά με κόμμα περισσότερα κλειδιά API", + "api_version": "Έκδοση API", + "charge": "Κατέβασμα", + "check": "Έλεγχος", + "check_all_keys": "Έλεγχος όλων των κλειδιών", + "check_multiple_keys": "Έλεγχος πολλαπλών κλειδιών API", + "delete.content": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον παροχό;", + "delete.title": "Διαγραφή παρόχου", + "docs_check": "Άνοιγμα", + "docs_more_details": "Λάβετε περισσότερες λεπτομέρειες", + "get_api_key": "Κάντε κλικ εδώ για να πάρετε κλειδί", + "no_models": "Πρέπει να προσθέσετε πρώτα πρόσωπο το πρόσωπο της μονάδας πριν ελέγξετε τη σύνδεση API", + "not_checked": "Δεν ελέγχεται", + "remove_duplicate_keys": "Αφαίρεση Επαναλαμβανόμενων Κλειδιών", + "remove_invalid_keys": "Διαγραφή Ακυρωμένων Κλειδιών", + "search": "Αναζήτηση πλατφόρμας μονάδων...", + "search_placeholder": "Αναζήτηση ID ή ονόματος μονάδας", + "title": "Υπηρεσία μονάδων", + "is_not_support_array_content": "Ενεργοποίηση συμβατικού μοντέλου" + }, + "proxy": { + "mode": { + "custom": "προσαρμοσμένη προξενική", + "none": "χωρίς πρόξενο", + "system": "συστηματική προξενική", + "title": "κλίμακα προξενικής" + }, + "title": "Ρυθμίσεις προξενείου" + }, + "quickAssistant": { + "click_tray_to_show": "Επιλέξτε την εικόνα στο πίνακα για να ενεργοποιήσετε", + "enable_quick_assistant": "Ενεργοποίηση γρήγορου βοηθού", + "title": "Γρήγορος βοηθός", + "use_shortcut_to_show": "Κάντε δεξικό κλικ στην εικόνα του πίνακα ή χρησιμοποιήστε την συντομεύση για να ενεργοποιήσετε", + "read_clipboard_at_startup": "Αναγνωρίζει το πρόχειρο κατά την εκκίνηση" + }, + "shortcuts": { + "action": "Ενέργεια", + "clear_shortcut": "Καθαρισμός συντομού πλήκτρου", + "clear_topic": "Άδειασμα μηνυμάτων", + "copy_last_message": "Αντιγραφή του τελευταίου μηνύματος", + "key": "Πλήκτρο", + "mini_window": "Συντομεύστε επιχειρηματικά", + "new_topic": "Νέο θέμα", + "press_shortcut": "Πάτησε το συντομού πλήκτρου", + "reset_defaults": "Επαναφορά στα προεπιλεγμένα συντομού πλήκτρα", + "reset_defaults_confirm": "Θέλετε να επαναφέρετε όλα τα συντομού πλήκτρα στις προεπιλεγμένες τιμές;", + "reset_to_default": "Επαναφορά στις προεπιλεγμένες", + "search_message": "Αναζήτηση μηνυμάτων", + "show_app": "Εμφάνιση εφαρμογής", + "show_settings": "Άνοιγμα των ρυθμίσεων", + "title": "Συντομοί δρομολόγια", + "toggle_new_context": "Άδειασμα σενάριων", + "toggle_show_assistants": "Εναλλαγή εμφάνισης βοηθών", + "toggle_show_topics": "Εναλλαγή εμφάνισης θεμάτων", + "zoom_in": "Μεγέθυνση εμφάνισης", + "zoom_out": "Σμικρύνση εμφάνισης", + "zoom_reset": "Επαναφορά εμφάνισης" + }, + "websearch": { + "tavily": { + "api_key": "Κλειδί API Tavily", + "api_key.placeholder": "Παρακαλούμε εισάγετε το Κλειδί API Tavily", + "description": "Το Tavily είναι ένα αναζητητής που διαμορφώνεται για AI-agents, παρέχοντας συνεχεία ακριβείς αποτελέσματα, νοηματικές προτάσεις αναζήτησης και βαθειά ικανότητες μελέτης", + "title": "Tavily" + }, + "blacklist": "Μαύρη Λίστα", + "blacklist_description": "Τα αποτελέσματα των παρακάτω ιστοσελίδων δεν θα εμφανιστούν στα αποτελέσματα αναζήτησης", + "blacklist_tooltip": "Παρακαλούμε χρησιμοποιήστε το ακόλουθο μορφάτο (*):\\nexample.com\\nhttps://www.example.com\\nhttps://example.com\\n*://*.example.com", + "check": "Έλεγχος", + "check_success": "Έλεγχος επιτυχής", + "check_failed": "Αποτυχία του έλεγχου", + "get_api_key": "Κάντε κλικ εδώ για να λάβετε το κλειδί", + "no_provider_selected": "Παρακαλούμε επιλέξτε παρόχο αναζήτησης πριν να ελέγξετε", + "search_max_result": "Αριθμός αποτελεσμάτων αναζήτησης", + "search_provider": "Παρόχος αναζήτησης", + "search_provider_placeholder": "Επιλέξτε έναν παρόχο αναζήτησης", + "search_result_default": "Πρόσφατες αναζητήσεις", + "search_with_time": "Αναζήτηση με ημερομηνία", + "enhance_mode": "Ρύθμιση βελτιστοποίησης αναζήτησης", + "enhance_mode_tooltip": "Αναζητήστε με βάση τις λέξεις-κλειδιά που αντικαταστάθηκαν από το πρότυπο μοντέλο", + "title": "Διαδικτυακή αναζήτηση" + }, + "about": "Περί μας", + "about.checkingUpdate": "Ελέγχω ενημερώσεις...", + "about.checkUpdate": "Έλεγχος ενημερώσεων", + "about.checkUpdate.available": "Άμεση ενημέρωση", + "about.contact.button": "Ταχυδρομείο", + "about.contact.title": "Επικοινωνία μέσω ταχυδρομείου", + "about.description": "Ένα AI ασιστάντα που έχει σχεδιαστεί για δημιουργούς", + "about.downloading": "Λήψη ενημερώσεων...", + "about.feedback.button": "Σχόλια και Παρατηρήσεις", + "about.feedback.title": "Αποστολή σχολίων", + "about.license.button": "Προβολή", + "about.license.title": "Licenses", + "about.releases.button": "Προβολή", + "about.releases.title": "Ημερολόγιο Ενημερώσεων", + "about.social.title": "Κοινωνικά Λογαριασμοί", + "about.title": "Περί μας", + "about.updateAvailable": "Νέα έκδοση {{version}} εντοπίστηκε", + "about.updateError": "Σφάλμα κατά την ενημέρωση", + "about.updateNotAvailable": "Το λογισμικό σας είναι ήδη στην πιο πρόσφατη έκδοση", + "about.website.button": "Προβολή", + "about.website.title": "Ιστοσελίδα", + "advanced.auto_switch_to_topics": "Αυτόματη μετάβαση σε θέματα", + "advanced.title": "Ρυθμίσεις Ανώτερου Νiveau", + "assistant": "Πρόεδρος Υπηρεσίας", + "assistant.model_params": "Παράμετροι Μοντέλου", + "assistant.show.icon": "Εμφάνιση εικονιδίου μοντέλου", + "assistant.title": "Πρόεδρος Υπηρεσίας", + "display.assistant.title": "Ρυθμίσεις Υπηρεσίας", + "display.custom.css": "Προσαρμοστική CSS", + "display.custom.css.cherrycss": "Λήψη από cherrycss.com", + "display.custom.css.placeholder": "/* Γράψτε εδώ την προσαρμοστική CSS */", + "display.minApp.disabled": "Αποκρυμμένα μικροπρογράμματα", + "display.minApp.empty": "Βάλτε εδώ τα μικροπρογράμματα που θέλετε να κρύψετε από την αριστερά", + "display.minApp.title": "Ρυθμίσεις εμφάνισης μικροπρογραμμάτων", + "display.minApp.visible": "Εμφανιζόμενα μικροπρογράμματα", + "display.sidebar.chat.hiddenMessage": "Η υπηρεσία είναι βασική λειτουργία και δεν υποστηρίζεται η κρυμμένη εμφάνιση", + "display.sidebar.disabled": "Αποκρυμμένα εικονίδια", + "display.sidebar.empty": "Βάλτε εδώ τις λειτουργίες που θέλετε να κρύψετε από την αριστερά", + "display.sidebar.files.icon": "Εμφάνιση εικονιδίου αρχείων", + "display.sidebar.knowledge.icon": "Εμφάνιση εικονιδίου γνώσης", + "display.sidebar.minapp.icon": "Εμφάνιση εικονιδίου μικροπρογραμμάτων", + "display.sidebar.painting.icon": "Εμφάνιση εικονιδίου ζωγραφικής", + "display.sidebar.title": "Ρυθμίσεις πλευρικού μενού", + "display.sidebar.translate.icon": "Εμφάνιση εικονιδίου μετάφρασης", + "display.sidebar.visible": "Εμφανιζόμενα εικονίδια", + "display.title": "Ρυθμίσεις εμφάνισης", + "display.topic.title": "Ρυθμίσεις Θεμάτων", + "font_size.title": "Μέγεθος γραμμάτων των μηνυμάτων", + "general": "Γενικές ρυθμίσεις", + "general.avatar.reset": "Επαναφορά εικονιδίου", + "general.backup.button": "Αντιγραφή ασφαλείας", + "general.backup.title": "Αντιγραφή ασφαλείας και αποκατάσταση δεδομένων", + "general.display.title": "Ρυθμίσεις εμφάνισης", + "general.emoji_picker": "Επιλογή σμιλιών", + "general.image_upload": "Φόρτωση εικόνων", + "general.manually_check_update.title": "Απενεργοποίηση ελέγχου ενημερώσεων", + "general.reset.button": "Επαναφορά", + "general.reset.title": "Επαναφορά δεδομένων", + "general.restore.button": "Αποκατάσταση", + "general.title": "Γενικές ρυθμίσεις", + "general.user_name": "Όνομα χρήστη", + "general.user_name.placeholder": "Εισαγάγετε όνομα χρήστη", + "general.view_webdav_settings": "Προβολή ρυθμίσεων WebDAV", + "input.auto_translate_with_space": "Μετάφραση με τρεις γρήγορες πιστώσεις", + "input.target_language": "Γλώσσα προορισμού", + "input.target_language.chinese": "Σινογραμματικό", + "input.target_language.chinese-traditional": "Επιτυχημένο Σινογραμματικό", + "input.target_language.english": "Αγγλικά", + "input.target_language.japanese": "Ιαπωνικά", + "input.target_language.russian": "Ρωσικά", + "messages.divider": "Διαχωριστική γραμμή μηνυμάτων", + "messages.navigation": "Κουμπιά πλοήγησης συζητήσεων", + "messages.navigation.none": "Χωρίς εμφάνιση", + "messages.navigation.buttons": "Πάνω και κάτω κουμπιά", + "messages.navigation.anchor": "Ancre συζητήσεων", + "messages.grid_columns": "Αριθμός στήλων γριλ μηνυμάτων", + "messages.grid_popover_trigger": "Καταγραφή στοιχείων στο grid", + "messages.grid_popover_trigger.click": "Εμφάνιση κλικ", + "messages.grid_popover_trigger.hover": "Εμφάνιση επιστροφής", + "messages.input.paste_long_text_as_file": "Επικόλληση μεγάλου κειμένου ως αρχείο", + "messages.input.paste_long_text_threshold": "Όριο μεγάλου κειμένου", + "messages.input.send_shortcuts": "Συντάγματα αποστολής", + "messages.input.show_estimated_tokens": "Εμφάνιση εκτιμώμενου αριθμού token", + "messages.input.title": "Ρυθμίσεις εισαγωγής", + "messages.markdown_rendering_input_message": "Markdown Rendering Input Message", + "messages.math_engine": "Μηχανική μαθηματικών εξισώσεων", + "messages.metrics": "Χρόνος πρώτου χαρακτήρα {{time_first_token_millsec}}ms | {{token_speed}} tokens ανά δευτερόλεπτο", + "messages.model.title": "Ρυθμίσεις μοντέλου", + "messages.title": "Ρυθμίσεις μηνυμάτων", + "messages.use_serif_font": "Χρήση μορφής Serif", + "model": "Πρόεδρος Υπηρεσίας", + "models.add.add_model": "Προσθήκη μοντέλου", + "models.add.group_name": "Όνομα ομάδας", + "models.add.group_name.placeholder": "Για παράδειγμα ChatGPT", + "models.add.group_name.tooltip": "Για παράδειγμα ChatGPT", + "models.add.model_id": "ID μοντέλου", + "models.add.model_id.placeholder": "Απαραίτητο για παράδειγμα gpt-3.5-turbo", + "models.add.model_id.tooltip": "Για παράδειγμα gpt-3.5-turbo", + "models.add.model_name": "Όνομα μοντέλου", + "models.add.model_name.placeholder": "Για παράδειγμα GPT-3.5", + "models.check.all": "Όλα", + "models.check.all_models_passed": "Όλα τα μοντέλα περάσαν ενεργειακά", + "models.check.button_caption": "Ελεγχος υγείας", + "models.check.disabled": "Απενεργοποίηση", + "models.check.enable_concurrent": "Επιτρέπει τη συγχρονη ελεγχος", + "models.check.enabled": "Ενεργοποίηση", + "models.check.failed": "Αποτυχία", + "models.check.keys_status_count": "Επιτυχημένοι: {{count_passed}} κλειδιά, αποτυχημένοι: {{count_failed}} κλειδιά", + "models.check.model_status_summary": "{{provider}}: {{count_passed}} μοντέλα ελέγχθηκαν επιτυχώς (από τα οποία {{count_partial}} μοντέλα δεν είναι προσβάσιμα με ορισμένα κλειδιά), {{count_failed}} μοντέλα είναι εντελώς απρόσβαστα.", + "models.check.no_api_keys": "Δεν βρέθηκαν API κλειδιά. Παρακαλούμε πρώτα προσθέστε κλειδιά API.", + "models.check.passed": "Επιτυχία", + "models.check.select_api_key": "Επιλέξτε το API key που θέλετε να χρησιμοποιήσετε:", + "models.check.single": "Μόνο", + "models.check.start": "Έναρξη", + "models.check.title": "Ελεγχος υγείας μοντέλου", + "models.check.use_all_keys": "Χρήση όλων των κλειδιών", + "models.default_assistant_model": "Πρόεδρος Υπηρεσίας προεπιλεγμένου μοντέλου", + "models.default_assistant_model_description": "Το μοντέλο που χρησιμοποιείται όταν δημιουργείτε νέο υπάλληλο. Αν το υπάλληλο δεν έχει επιλεγμένο ένα μοντέλο, τότε θα χρησιμοποιεί αυτό το μοντέλο.", + "models.empty": "Δεν υπάρχουν μοντέλα", + "models.enable_topic_naming": "Αυτόματη αναδόμηση θεμάτων", + "models.manage.add_whole_group": "Προσθήκη ολόκληρης ομάδας", + "models.manage.remove_whole_group": "Αφαίρεση ολόκληρης ομάδας", + "models.topic_naming_model": "Μοντέλο αναδόμησης θεμάτων", + "models.topic_naming_model_description": "Το μοντέλο που χρησιμοποιείται όταν αυτόματα ονομάζεται ένα νέο θέμα", + "models.topic_naming_model_setting_title": "Ρυθμίσεις Μοντέλου Αναδόμησης Θεμάτων", + "models.topic_naming_prompt": "Προσδιορισμός προκαθορισμένου θέματος", + "models.translate_model": "Μοντέλο μετάφρασης", + "models.translate_model_description": "Το μοντέλο που χρησιμοποιείται για τη μετάφραση", + "models.translate_model_prompt_message": "Εισάγετε την προσδιορισμένη προειδοποίηση μετάφρασης", + "models.translate_model_prompt_title": "Προσδιορισμός προκαθορισμένου θέματος μετάφρασης", + "moresetting": "Περισσότερες ρυθμίσεις", + "moresetting.check.confirm": "Επιβεβαίωση επιλογής", + "moresetting.check.warn": "Παρακαλούμε επιλέξτε με προσοχή αυτή την επιλογή, μια λάθος επιλογή μπορεί να εμποδίσει την σωστή λειτουργία του μοντέλου!!", + "moresetting.warn": "Χρησιμοποιείται κίνδυνος", + "proxy.title": "Διευθύνσεις προξενιακού", + "theme.auto": "Αυτόματο", + "theme.dark": "Σκοτεινό", + "theme.light": "Φωτεινό", + "theme.title": "Θέμα", + "theme.window.style.opaque": "Μη διαφανή παράθυρα", + "theme.window.style.title": "Στυλ παραθύρων", + "theme.window.style.transparent": "Διαφανή παράθυρα", + "title": "Ρυθμίσεις", + "topic.position": "Θέση θεμάτων", + "topic.position.left": "Αριστερά", + "topic.position.right": "Δεξιά", + "topic.show.time": "Εμφάνιση ώρας θέματος", + "tray.title": "Συνδρομή", + "tray.show": "Εμφάνιση εικονιδίου συνδρομής", + "tray.onclose": "Μειωμένο στη συνδρομή κατά την κλεισιά", + "launch.title": "Εκκίνηση", + "launch.onboot": "Αυτόματη εκκίνηση κατά την εκκίνηση του συστήματος", + "launch.totray": "Εισαγωγή στην συνδρομή κατά την εκκίνηση" + }, + "translate": { + "confirm": { + "content": "Μετάφραση θα επικαλύψει το αρχικό κείμενο, συνεχίζει;", + "title": "Επιβεβαίωση μετάφρασης" + }, + "history": { + "clear": "Καθαρισμός ιστορικού", + "clear_description": "Η διαγραφή του ιστορικού θα διαγράψει όλα τα απομνημονεύματα μετάφρασης. Θέλετε να συνεχίσετε;", + "delete": "Διαγραφή", + "empty": "δεν υπάρχουν απομνημονεύματα μετάφρασης", + "title": "Ιστορικό μετάφρασης" + }, + "any.language": " οποιαδήποτε γλώσσα", + "button.translate": "Μετάφραση", + "close": "Κλείσιμο", + "error.failed": "Η μετάφραση απέτυχε", + "error.not_configured": "Το μοντέλο μετάφρασης δεν είναι ρυθμισμένο", + "input.placeholder": "Εισαγάγετε κείμενο για μετάφραση", + "output.placeholder": "Μετάφραση", + "processing": "Μεταφράζεται...", + "scroll_sync.disable": "Απενεργοποίηση συγχρονισμού οριζόντιου μετακινήσεων", + "scroll_sync.enable": "Ενεργοποίηση συγχρονισμού οριζόντιου μετακινήσεων", + "title": "Μετάφραση", + "tooltip.newline": "Αλλαγή γραμμής" + }, + "tray": { + "quit": "Έξοδος", + "show_mini_window": "Σύντομη βοήθεια", + "show_window": "Εμφάνιση παραθύρου" + }, + "words": { + "knowledgeGraph": "γνώσεις Γράφου", + "quit": "Έξοδος", + "show_window": "Εμφάνιση Παραθύρου", + "visualization": "προβολή" + } + } +} \ No newline at end of file diff --git a/src/renderer/src/i18n/locales/es-es.json b/src/renderer/src/i18n/locales/es-es.json new file mode 100644 index 00000000..7d8eb785 --- /dev/null +++ b/src/renderer/src/i18n/locales/es-es.json @@ -0,0 +1,1171 @@ +{ + "translation": { + "agents": { + "add.button": "Agregar al asistente", + "add.knowledge_base": "Base de conocimiento", + "add.knowledge_base.placeholder": "Seleccionar base de conocimiento", + "add.name": "Nombre", + "add.name.placeholder": "Ingrese el nombre", + "add.prompt": "Palabra clave", + "add.prompt.placeholder": "Ingrese la palabra clave", + "add.title": "Crear agente inteligente", + "delete.popup.content": "¿Está seguro de que desea eliminar este agente inteligente?", + "edit.message.add.title": "Agregar", + "edit.message.assistant.placeholder": "Ingrese el mensaje del asistente", + "edit.message.assistant.title": "Asistente", + "edit.message.empty.content": "El contenido de la sesión de chat no puede estar vacío", + "edit.message.group.title": "Grupo de mensajes", + "edit.message.title": "Mensaje predeterminado", + "edit.message.user.placeholder": "Ingrese el mensaje del usuario", + "edit.message.user.title": "Usuario", + "edit.model.select.title": "Seleccionar modelo", + "edit.settings.hide_preset_messages": "Ocultar mensajes predeterminados", + "edit.title": "Editar agente inteligente", + "manage.title": "Administrar agentes inteligentes", + "my_agents": "Mis agentes inteligentes", + "search.no_results": "No se encontraron agentes relacionados", + "sorting.title": "Ordenar", + "tag.agent": "Agente", + "tag.default": "Predeterminado", + "tag.new": "Nuevo", + "tag.system": "Sistema", + "title": "Agente" + }, + "assistants": { + "abbr": "Asistente", + "clear.content": "Vaciar el tema eliminará todos los temas y archivos del asistente. ¿Está seguro de que desea continuar?", + "clear.title": "Vaciar Tema", + "copy.title": "Copiar Asistente", + "delete.content": "Eliminar el asistente borrará todos los temas y archivos asociados. ¿Está seguro de que desea continuar?", + "delete.title": "Eliminar Asistente", + "edit.title": "Editar Asistente", + "save.success": "Guardado exitosamente", + "save.title": "Guardar en Agente Inteligente", + "search": "Buscar Asistente", + "settings.default_model": "Modelo Predeterminado", + "settings.knowledge_base": "Configuración de Base de Conocimientos", + "settings.model": "Configuración de Modelo", + "settings.preset_messages": "Mensajes Preestablecidos", + "settings.prompt": "Configuración de Palabras Clave", + "settings.reasoning_effort": "Longitud de Cadena de Razonamiento", + "settings.reasoning_effort.high": "Largo", + "settings.reasoning_effort.low": "Corto", + "settings.reasoning_effort.medium": "Medio", + "settings.reasoning_effort.off": "Apagado", + "settings.reasoning_effort.tip": "Solo compatible con modelos de razonamiento OpenAI o-series y Anthropic", + "title": "Asistente" + }, + "auth": { + "error": "Falló la obtención automática de la clave, por favor obténla manualmente", + "get_key": "Obtener", + "get_key_success": "Obtención automática de la clave exitosa", + "login": "Iniciar sesión", + "oauth_button": "Iniciar sesión con {{provider}}" + }, + "backup": { + "progress": { + "completed": "Copia de seguridad completada", + "compressing": "Comprimiendo archivos...", + "copying_files": "Copiando archivos... {{progress}}%", + "preparing": "Preparando copia de seguridad...", + "title": "Progreso de la copia de seguridad", + "writing_data": "Escribiendo datos..." + }, + "confirm": "¿Está seguro de que desea realizar una copia de seguridad de los datos?", + "confirm.button": "Seleccionar ubicación de copia de seguridad", + "content": "Realizar una copia de seguridad de todos los datos, incluyendo registros de chat, configuraciones, bases de conocimiento y todos los demás datos. Tenga en cuenta que el proceso de copia de seguridad puede llevar algún tiempo, gracias por su paciencia.", + "title": "Copia de Seguridad de Datos" + }, + "button": { + "add": "Agregar", + "added": "Agregado", + "collapse": "Colapsar", + "manage": "Administrar", + "select_model": "Seleccionar Modelo", + "show.all": "Mostrar Todo", + "update_available": "Hay Actualizaciones Disponibles" + }, + "chat": { + "navigation": { + "prev": "Mensaje anterior", + "next": "Siguiente mensaje", + "first": "Ya es el primer mensaje", + "last": "Ya es el último mensaje" + }, + "add.assistant.title": "Agregar asistente", + "artifacts.button.download": "Descargar", + "artifacts.button.openExternal": "Abrir en navegador externo", + "artifacts.button.preview": "Vista previa", + "artifacts.preview.openExternal.error.content": "Error al abrir en navegador externo", + "assistant.search.placeholder": "Buscar", + "deeply_thought": "Profundamente pensado (tomó {{secounds}} segundos)", + "default.description": "Hola, soy el asistente predeterminado. Puedes comenzar a conversar conmigo de inmediato.", + "default.name": "Asistente predeterminado", + "default.topic.name": "Tema predeterminado", + "input.auto_resize": "Ajuste automático de altura", + "input.clear": "Limpiar mensajes {{Command}}", + "input.clear.content": "¿Estás seguro de que quieres eliminar todos los mensajes de la sesión actual?", + "input.clear.title": "Limpiar mensajes", + "input.collapse": "Colapsar", + "input.context_count.tip": "Número de contextos / Número máximo de contextos", + "input.estimated_tokens.tip": "Número estimado de tokens", + "input.expand": "Expandir", + "input.file_not_supported": "El modelo no admite este tipo de archivo", + "input.knowledge_base": "Base de conocimientos", + "input.new.context": "Limpiar contexto {{Command}}", + "input.new_topic": "Nuevo tema {{Command}}", + "input.pause": "Pausar", + "input.placeholder": "Escribe aquí tu mensaje...", + "input.send": "Enviar", + "input.settings": "Configuración", + "input.topics": "Temas", + "input.translate": "Traducir a {{target_language}}", + "input.upload": "Subir imagen o documento", + "input.upload.document": "Subir documento (el modelo no admite imágenes)", + "input.web_search": "Habilitar búsqueda web", + "input.web_search.button.ok": "Ir a configuración", + "input.web_search.enable": "Habilitar búsqueda web", + "input.web_search.enable_content": "Primero verifica la conectividad de la búsqueda web en la configuración", + "message.new.branch": "Rama nueva", + "message.new.branch.created": "Nueva rama creada", + "message.new.context": "Limpiar contexto", + "message.quote": "Citar", + "message.regenerate.model": "Cambiar modelo", + "message.useful": "Útil", + "resend": "Reenviar", + "save": "Guardar", + "settings.code_collapsible": "Bloques de código plegables", + "settings.code_wrappable": "Bloques de código reemplazables", + "settings.context_count": "Número de contextos", + "settings.context_count.tip": "Número de mensajes que se deben mantener en el contexto. Cuanto mayor sea el valor, más largo será el contexto y más tokens se consumirán. Para una conversación normal, se sugiere un valor entre 5-10", + "settings.max": "Sin límite", + "settings.max_tokens": "Habilitar límite de longitud del mensaje", + "settings.max_tokens.confirm": "Habilitar límite de longitud del mensaje", + "settings.max_tokens.confirm_content": "Al habilitar el límite de longitud del mensaje, se establece el número máximo de tokens por interacción, lo que afectará la longitud del resultado devuelto. Debe ajustarse según las limitaciones del contexto del modelo, de lo contrario se producirá un error", + "settings.max_tokens.tip": "Número máximo de tokens por interacción, lo que afectará la longitud del resultado devuelto. Debe ajustarse según las limitaciones del contexto del modelo, de lo contrario se producirá un error", + "settings.reset": "Restablecer", + "settings.set_as_default": "Aplicar a asistente predeterminado", + "settings.show_line_numbers": "Mostrar números de línea", + "settings.temperature": "Temperatura del modelo", + "settings.temperature.tip": "Aleatoriedad en la generación de texto del modelo. Cuanto mayor sea el valor, más diversidad, creatividad y aleatoriedad tendrá la respuesta; si se establece en 0, responde basándose en hechos. Para una conversación diaria, se recomienda un valor de 0.7", + "settings.thought_auto_collapse": "Plegado automático del contenido de pensamiento", + "settings.thought_auto_collapse.tip": "El contenido de pensamiento se pliega automáticamente después de finalizar el pensamiento", + "settings.top_p": "Top-P", + "settings.top_p.tip": "Valor predeterminado es 1, cuanto menor sea el valor, el contenido generado por la IA será menos variado pero más fácil de entender; cuanto mayor sea el valor, el vocabulario y la variedad de la respuesta de la IA serán mayores", + "suggestions.title": "Preguntas sugeridas", + "thinking": "Pensando", + "topics.auto_rename": "Generar nombre de tema", + "topics.clear.title": "Limpiar mensajes", + "topics.copy.image": "Copiar como imagen", + "topics.copy.md": "Copiar como Markdown", + "topics.copy.title": "Copiar", + "topics.delete.shortcut": "Mantén presionada {{key}} para eliminar directamente", + "topics.edit.placeholder": "Introduce nuevo nombre", + "topics.edit.title": "Editar nombre del tema", + "topics.export.image": "Exportar como imagen", + "topics.export.md": "Exportar como Markdown", + "topics.export.notion": "Exportar a Notion", + "topics.export.title": "Exportar", + "topics.export.word": "Exportar como Word", + "topics.export.yuque": "Exportar a Yuque", + "topics.export.obsidian": "Exportar a Obsidian", + "topics.export.obsidian_not_configured": "Obsidian no configurado", + "topics.export.obsidian_title": "Título", + "topics.export.obsidian_title_placeholder": "Introduce el título", + "topics.export.obsidian_title_required": "El título no puede estar vacío", + "topics.export.obsidian_tags": "Etiquetas", + "topics.export.obsidian_tags_placeholder": "Introduce etiquetas, múltiples etiquetas separadas por comas, Obsidian no admite números puros", + "topics.export.obsidian_created": "Fecha de creación", + "topics.export.obsidian_created_placeholder": "Selecciona la fecha de creación", + "topics.export.obsidian_source": "Fuente", + "topics.export.obsidian_source_placeholder": "Introduce la fuente", + "topics.export.obsidian_operate": "Modo de operación", + "topics.export.obsidian_operate_placeholder": "Selecciona el modo de operación", + "topics.export.obsidian_operate_append": "Agregar", + "topics.export.obsidian_operate_prepend": "Preponer", + "topics.export.obsidian_operate_new_or_overwrite": "Crear nuevo (si existe, sobrescribir)", + "topics.export.obsidian_atributes": "Configurar atributos de nota", + "topics.export.obsidian_btn": "Aceptar", + "topics.export.obsidian_export_success": "Exportación exitosa", + "topics.export.obsidian_export_failed": "Exportación fallida", + "topics.export.joplin": "Exportar a Joplin", + "topics.list": "Lista de temas", + "topics.move_to": "Mover a", + "topics.pinned": "Fijar tema", + "topics.prompt": "Palabras clave del tema", + "topics.prompt.edit.title": "Editar palabras clave del tema", + "topics.prompt.tips": "Palabras clave del tema: proporcionar indicaciones adicionales para el tema actual", + "topics.title": "Tema", + "topics.unpinned": "Quitar fijación", + "topics.new": "Iniciar nueva conversación", + "translate": "Traducir" + }, + "code_block": { + "collapse": "Replegar", + "disable_wrap": "Deshabilitar salto de línea", + "enable_wrap": "Habilitar salto de línea", + "expand": "Expandir" + }, + "common": { + "add": "Agregar", + "and": "y", + "assistant": "Agente inteligente", + "avatar": "Avatar", + "back": "Atrás", + "cancel": "Cancelar", + "chat": "Chat", + "clear": "Limpiar", + "close": "Cerrar", + "confirm": "Confirmar", + "copy": "Copiar", + "copied": "Copiado", + "cut": "Cortar", + "default": "Predeterminado", + "delete": "Eliminar", + "description": "Descripción", + "docs": "Documentos", + "download": "Descargar", + "duplicate": "Duplicar", + "edit": "Editar", + "footnote": "Nota al pie", + "footnotes": "Notas al pie", + "fullscreen": "En modo pantalla completa, presione F11 para salir", + "knowledge_base": "Base de conocimiento", + "language": "Idioma", + "model": "Modelo", + "models": "Modelos", + "name": "Nombre", + "paste": "Pegar", + "prompt": "Prompt", + "provider": "Proveedor", + "regenerate": "Regenerar", + "rename": "Renombrar", + "reset": "Restablecer", + "save": "Guardar", + "search": "Buscar", + "select": "Seleccionar", + "topics": "Temas", + "warning": "Advertencia", + "you": "Usuario", + "more": "Más", + "advanced_settings": "Configuración avanzada", + "expand": "Expandir" + }, + "docs": { + "title": "Documentación de Ayuda" + }, + "error": { + "http": { + "400": "Error en la solicitud, revise si los parámetros de la solicitud son correctos. Si modificó la configuración del modelo, restablezca a la configuración predeterminada", + "401": "Fallo en la autenticación, revise si la clave API es correcta", + "403": "Acceso prohibido, traduzca el mensaje de error específico para ver la causa o póngase en contacto con el proveedor de servicios para preguntar sobre la razón de la prohibición", + "404": "El modelo no existe o la ruta de la solicitud está incorrecta", + "429": "La tasa de solicitudes excede el límite, inténtelo de nuevo más tarde", + "500": "Error del servidor, inténtelo de nuevo más tarde", + "502": "Error de puerta de enlace, inténtelo de nuevo más tarde", + "503": "Servicio no disponible, inténtelo de nuevo más tarde", + "504": "Tiempo de espera de la puerta de enlace, inténtelo de nuevo más tarde" + }, + "render": { + "title": "Error de renderizado" + }, + "backup.file_format": "Formato de archivo de copia de seguridad incorrecto", + "chat.response": "Ha ocurrido un error, si no ha configurado la clave API, vaya a Configuración > Proveedor de modelos para configurar la clave", + "model.exists": "El modelo ya existe", + "no_api_key": "La clave API no está configurada", + "provider_disabled": "El proveedor de modelos no está habilitado", + "user_message_not_found": "No se pudo encontrar el mensaje original del usuario" + }, + "export": { + "assistant": "Asistente", + "attached_files": "Archivos adjuntos", + "conversation_details": "Detalles de la conversación", + "conversation_history": "Historial de la conversación", + "created": "Fecha de creación", + "last_updated": "Última actualización", + "messages": "Mensajes", + "user": "Usuario" + }, + "files": { + "actions": "Acciones", + "all": "Todos los archivos", + "count": "Número de archivos", + "created_at": "Fecha de creación", + "delete": "Eliminar", + "delete.content": "Eliminar el archivo eliminará todas las referencias del archivo en todos los mensajes. ¿Estás seguro de que quieres eliminar este archivo?", + "delete.paintings.warning": "La imagen está incluida en un dibujo, por lo que temporalmente no se puede eliminar", + "delete.title": "Eliminar archivo", + "document": "Documento", + "edit": "Editar", + "file": "Archivo", + "image": "Imagen", + "name": "Nombre del archivo", + "open": "Abrir", + "size": "Tamaño", + "text": "Texto", + "title": "Archivo", + "type": "Tipo" + }, + "history": { + "continue_chat": "Continuar chat", + "locate.message": "Localizar mensaje", + "search.messages": "Buscar todos los mensajes", + "search.placeholder": "Buscar tema o mensaje...", + "search.topics.empty": "No se encontraron temas relacionados, presione Enter para buscar todos los mensajes", + "title": "Búsqueda de temas" + }, + "knowledge": { + "add": { + "title": "Agregar base de conocimientos" + }, + "add_directory": "Agregar directorio", + "add_file": "Agregar archivo", + "add_note": "Agregar nota", + "add_sitemap": "Mapa del sitio", + "add_url": "Agregar URL", + "cancel_index": "Cancelar índice", + "chunk_overlap": "Superposición de fragmentos", + "chunk_overlap_placeholder": "Valor predeterminado (no recomendado para modificar)", + "chunk_overlap_tooltip": "La cantidad de contenido repetido entre bloques de texto adyacentes, asegurando que los fragmentos de texto divididos aún mantengan un contexto, mejorando el rendimiento general del modelo en textos largos", + "chunk_size": "Tamaño de fragmento", + "chunk_size_change_warning": "Las modificaciones del tamaño de fragmento y la superposición solo se aplican al nuevo contenido agregado", + "chunk_size_placeholder": "Valor predeterminado (no recomendado para modificar)", + "chunk_size_too_large": "El tamaño de fragmento no puede exceder el límite de contexto del modelo ({{max_context}})", + "chunk_size_tooltip": "Divide el documento en fragmentos de este tamaño, no debe exceder el límite de contexto del modelo", + "clear_selection": "Limpiar selección", + "delete": "Eliminar", + "delete_confirm": "¿Está seguro de querer eliminar esta base de conocimientos?", + "directories": "Directorios", + "directory_placeholder": "Ingrese la ruta del directorio", + "document_count": "Número de fragmentos de documentos solicitados", + "document_count_default": "Predeterminado", + "document_count_help": "Más fragmentos de documentos solicitados significa más información adjunta, pero también consume más tokens", + "drag_file": "Arrastre archivos aquí", + "edit_remark": "Editar observación", + "edit_remark_placeholder": "Ingrese el contenido de la observación", + "empty": "Sin bases de conocimientos", + "file_hint": "Formatos soportados: {{file_types}}", + "index_all": "Indexar todo", + "index_cancelled": "Índice cancelado", + "index_started": "Índice iniciado", + "invalid_url": "URL inválida", + "model_info": "Información del modelo", + "no_bases": "Sin bases de conocimientos", + "no_match": "No se encontraron coincidencias en la base de conocimientos", + "no_provider": "El proveedor del modelo de la base de conocimientos está perdido, esta base de conocimientos ya no es compatible, por favor cree una nueva base de conocimientos", + "not_set": "No configurado", + "not_support": "El motor de base de datos de la base de conocimientos ha sido actualizado, esta base de conocimientos ya no es compatible, por favor cree una nueva base de conocimientos", + "notes": "Notas", + "notes_placeholder": "Ingrese información adicional o contexto para esta base de conocimientos...", + "rename": "Renombrar", + "search": "Buscar en la base de conocimientos", + "search_placeholder": "Ingrese el contenido de la consulta", + "settings": "Configuración de la base de conocimientos", + "sitemap_placeholder": "Ingrese la URL del mapa del sitio", + "sitemaps": "Sitios web", + "source": "Fuente", + "status": "Estado", + "status_completed": "Completado", + "status_failed": "Fallido", + "status_new": "Nuevo", + "status_pending": "Pendiente", + "status_processing": "Procesando", + "threshold": "Umbral de coincidencia", + "threshold_placeholder": "No configurado", + "threshold_too_large_or_small": "El umbral no puede ser mayor que 1 o menor que 0", + "threshold_tooltip": "Se usa para medir la relevancia entre la pregunta del usuario y el contenido de la base de conocimientos (0-1)", + "topN": "Número de resultados devueltos", + "topN_placeholder": "No configurado", + "topN__too_large_or_small": "El número de resultados devueltos no puede ser mayor que 100 o menor que 1", + "topN_tooltip": "Número de resultados coincidentes devueltos, un valor más alto significa más resultados coincidentes, pero también consume más tokens", + "title": "Base de conocimientos", + "url_added": "URL agregada", + "url_placeholder": "Ingrese la URL, múltiples URLs separadas por enter", + "urls": "URLs" + }, + "languages": { + "arabic": "Árabe", + "chinese": "Chino simplificado", + "chinese-traditional": "Chino tradicional", + "english": "Inglés", + "french": "Francés", + "german": "Alemán", + "italian": "Italiano", + "japanese": "Japonés", + "korean": "Coreano", + "portuguese": "Portugués", + "russian": "Ruso", + "spanish": "Español" + }, + "lmstudio": { + "keep_alive_time.description": "Tiempo que el modelo permanece en memoria después de la conversación (predeterminado: 5 minutos)", + "keep_alive_time.placeholder": "minutos", + "keep_alive_time.title": "Tiempo de Actividad", + "title": "LM Studio" + }, + "mermaid": { + "download": { + "png": "Descargar PNG", + "svg": "Descargar SVG" + }, + "resize": { + "zoom-in": "Acercar", + "zoom-out": "Alejar" + }, + "tabs": { + "preview": "Vista previa", + "source": "Código fuente" + }, + "title": "Gráfico Mermaid" + }, + "message": { + "attachments": { + "pasted_text": "Archivo del portapapeles", + "pasted_image": "Imagen del portapapeles" + }, + "tools": { + "invoking": "En llamada", + "completed": "Completado" + }, + "api.check.model.title": "Seleccione el modelo a verificar", + "api.connection.failed": "Conexión fallida", + "api.connection.success": "Conexión exitosa", + "assistant.added.content": "Asistente agregado con éxito", + "backup.failed": "Backup fallido", + "backup.start.success": "Inicio de backup", + "backup.success": "Backup exitoso", + "chat.completion.paused": "Chat pausado", + "citations": "Citas", + "copied": "Copiado", + "copy.success": "Copia exitosa", + "copy.failed": "Copia fallida", + "error.chunk_overlap_too_large": "El solapamiento del fragmento no puede ser mayor que el tamaño del fragmento", + "error.dimension_too_large": "La dimensión del contenido es demasiado grande", + "error.enter.api.host": "Ingrese su dirección API", + "error.enter.api.key": "Ingrese su clave API", + "error.enter.model": "Seleccione un modelo", + "error.enter.name": "Ingrese el nombre de la base de conocimiento", + "error.get_embedding_dimensions": "Fallo al obtener las dimensiones de incrustación", + "error.invalid.api.host": "Dirección API inválida", + "error.invalid.api.key": "Clave API inválida", + "error.invalid.enter.model": "Seleccione un modelo", + "error.invalid.proxy.url": "URL de proxy inválida", + "error.invalid.webdav": "Configuración de WebDAV inválida", + "error.markdown.export.preconf": "Error al exportar archivo Markdown a ruta predefinida", + "error.markdown.export.specified": "Error al exportar archivo Markdown", + "error.notion.export": "Error de exportación de Notion, verifique el estado de conexión y la configuración según la documentación", + "error.notion.no_api_key": "No se ha configurado la clave API de Notion o la ID de la base de datos de Notion", + "error.yuque.export": "Error de exportación de Yuque, verifique el estado de conexión y la configuración según la documentación", + "error.yuque.no_config": "No se ha configurado el token de Yuque o la URL de la base de conocimiento", + "error.joplin.no_config": "No se ha configurado el token de autorización de Joplin o la URL", + "error.joplin.export": "Error de exportación de Joplin, asegúrese de que Joplin esté en ejecución y verifique el estado de conexión o la configuración", + "group.delete.content": "Eliminar el mensaje del grupo eliminará la pregunta del usuario y todas las respuestas del asistente", + "group.delete.title": "Eliminar mensaje del grupo", + "ignore.knowledge.base": "Modo en línea activado, ignorando la base de conocimiento", + "info.notion.block_reach_limit": "La conversación es demasiado larga, se está exportando por páginas a Notion", + "loading.notion.preparing": "Preparando para exportar a Notion...", + "loading.notion.exporting_progress": "Exportando a Notion ({{current}}/{{total}})...", + "mention.title": "Cambiar modelo de respuesta", + "message.code_style": "Estilo de código", + "message.delete.content": "¿Está seguro de querer eliminar este mensaje?", + "message.delete.title": "Eliminar mensaje", + "message.multi_model_style": "Estilo de respuesta multi-modelo", + "message.multi_model_style.fold": "Modo de etiquetas", + "message.multi_model_style.fold.compress": "Cambiar a disposición compacta", + "message.multi_model_style.fold.expand": "Cambiar a disposición expandida", + "message.multi_model_style.grid": "Diseño de tarjetas", + "message.multi_model_style.horizontal": "Disposición horizontal", + "message.multi_model_style.vertical": "Pila vertical", + "message.style": "Estilo de mensaje", + "message.style.bubble": "Burbuja", + "message.style.plain": "Simple", + "regenerate.confirm": "Regenerar sobrescribirá el mensaje actual", + "reset.confirm.content": "¿Está seguro de querer restablecer todos los datos?", + "reset.double.confirm.content": "Todos sus datos se perderán, si no tiene una copia de seguridad, no podrán ser recuperados, ¿desea continuar?", + "reset.double.confirm.title": "¡¡Pérdida de datos!!", + "restore.failed": "Restauración fallida", + "restore.success": "Restauración exitosa", + "save.success.title": "Guardado exitoso", + "searching": "Buscando en línea...", + "success.markdown.export.preconf": "Archivo Markdown exportado con éxito a la ruta predefinida", + "success.markdown.export.specified": "Archivo Markdown exportado con éxito", + "success.notion.export": "Exportado con éxito a Notion", + "success.yuque.export": "Exportado con éxito a Yuque", + "success.joplin.export": "Exportado con éxito a Joplin", + "switch.disabled": "Espere a que se complete la respuesta actual antes de realizar la operación", + "topic.added": "Tema agregado con éxito", + "upgrade.success.button": "Reiniciar", + "upgrade.success.content": "Reinicie para completar la actualización", + "upgrade.success.title": "Actualización exitosa", + "warn.notion.exporting": "Se está exportando a Notion, ¡no solicite nuevamente la exportación!", + "warning.rate.limit": "Envío demasiado frecuente, espere {{seconds}} segundos antes de intentarlo de nuevo" + }, + "minapp": { + "sidebar.add.title": "Agregar al panel lateral", + "sidebar.remove.title": "Quitar del panel lateral", + "title": "Mini programa" + }, + "miniwindow": { + "clipboard": { + "empty": "El portapapeles está vacío" + }, + "feature": { + "chat": "Responder a esta pregunta", + "explanation": "Explicación", + "summary": "Resumen del contenido", + "translate": "Traducción de texto" + }, + "footer": { + "copy_last_message": "Presione C para copiar", + "esc": "Presione ESC {{action}}", + "esc_back": "Volver", + "esc_close": "Cerrar ventana" + }, + "input": { + "placeholder": { + "empty": "Pregunta a {{model}} para obtener ayuda...", + "title": "¿Qué deseas hacer con el texto de abajo?" + } + } + }, + "models": { + "parameter_type": { + "boolean": "Valor booleano", + "json": "JSON", + "number": "Número", + "string": "Texto" + }, + "type": { + "embedding": "Incrustación", + "reasoning": "Razonamiento", + "select": "Seleccionar tipo de modelo", + "text": "Texto", + "vision": "Imagen", + "function_calling": "Llamada a función" + }, + "add_parameter": "Agregar parámetro", + "all": "Todo", + "custom_parameters": "Parámetros personalizados", + "dimensions": "{{dimensions}} dimensiones", + "edit": "Editar modelo", + "embedding": "Inmersión", + "embedding_model": "Modelo de inmersión", + "embedding_model_tooltip": "Haga clic en el botón Administrar en Configuración->Servicio de modelos para agregar", + "rerank_model": "Modelo de reordenamiento", + "rerank_model_tooltip": "Haga clic en el botón Administrar en Configuración->Servicio de modelos para agregar", + "rerank_model_support_provider": "Actualmente, el modelo de reordenamiento solo es compatible con algunos proveedores ({{provider}})", + "free": "Gratis", + "no_matches": "No hay modelos disponibles", + "parameter_name": "Nombre del parámetro", + "pinned": "Fijado", + "reasoning": "Razonamiento", + "search": "Buscar modelo...", + "stream_output": "Salida en flujo", + "function_calling": "Llamada a función", + "vision": "Visión", + "websearch": "Búsqueda en línea" + }, + "navbar": { + "expand": "Expandir cuadro de diálogo", + "hide_sidebar": "Ocultar barra lateral", + "show_sidebar": "Mostrar barra lateral" + }, + "ollama": { + "keep_alive_time.description": "Tiempo que el modelo permanece en memoria después de la conversación (por defecto: 5 minutos)", + "keep_alive_time.placeholder": "minutos", + "keep_alive_time.title": "Tiempo de Actividad", + "title": "Ollama" + }, + "paintings": { + "button.delete.image": "Eliminar imagen", + "button.delete.image.confirm": "¿Está seguro de que desea eliminar esta imagen?", + "button.new.image": "Nueva imagen", + "guidance_scale": "Escala de guía", + "guidance_scale_tip": "Sin clasificador de guía. Controla la medida en que el modelo sigue la sugerencia al buscar imágenes relacionadas", + "image.size": "Tamaño de la imagen", + "inference_steps": "Paso de inferencia", + "inference_steps_tip": "Número de pasos de inferencia a realizar. Cuantos más pasos, mejor la calidad pero más tiempo tarda", + "negative_prompt": "Prompt negativo", + "negative_prompt_tip": "Describe lo que no quieres que aparezca en la imagen", + "number_images": "Cantidad de imágenes generadas", + "number_images_tip": "Número de imágenes generadas por vez (1-4)", + "prompt_enhancement": "Mejora del prompt", + "prompt_enhancement_tip": "Al activar esto, se reescribirá la sugerencia para una versión más detallada y adecuada para el modelo", + "prompt_placeholder": "Describe la imagen que deseas crear, por ejemplo: un lago tranquilo, el sol poniente, con montañas lejanas", + "regenerate.confirm": "Esto sobrescribirá las imágenes generadas, ¿desea continuar?", + "seed": "Semilla aleatoria", + "seed_tip": "La misma semilla y la misma sugerencia generarán imágenes similares", + "title": "Imagen" + }, + "plantuml": { + "download": { + "failed": "Descarga fallida, por favor verifica la conexión a internet", + "png": "Descargar PNG", + "svg": "Descargar SVG" + }, + "tabs": { + "preview": "Vista previa", + "source": "Código fuente" + }, + "title": "Diagrama PlantUML" + }, + "prompts": { + "explanation": "Ayúdame a explicar este concepto", + "summarize": "Ayúdame a resumir este párrafo", + "title": "Eres un asistente hábil en conversación, debes resumir la conversación del usuario en un título de 10 palabras o menos. El idioma del título debe coincidir con el idioma principal del usuario, no uses signos de puntuación ni otros símbolos especiales" + }, + "provider": { + "aihubmix": "AiHubMix", + "anthropic": "Antropológico", + "azure-openai": "Azure OpenAI", + "baichuan": "BaiChuan", + "baidu-cloud": "Baidu Nube Qiánfān", + "dashscope": "Álibaba Nube BaiLiàn", + "deepseek": "Profundo Buscar", + "dmxapi": "DMXAPI", + "doubao": "Volcán Motor", + "fireworks": "Fuegos Artificiales", + "gemini": "Géminis", + "gitee-ai": "Gitee IA", + "github": "GitHub Modelos", + "graphrag-kylin-mountain": "GraphRAG", + "grok": "Grok", + "groq": "Groq", + "hunyuan": "Tencent Hùnyuán", + "hyperbolic": "Hiperbólico", + "infini": "Infini", + "jina": "Jina", + "lmstudio": "Estudio LM", + "minimax": "Minimax", + "mistral": "Mistral", + "modelscope": "ModelScope Módulo", + "moonshot": "Lanzamiento Lunar", + "nvidia": "Nvidia", + "o3": "O3", + "ocoolai": "ocoolAI", + "ollama": "Ollama", + "openai": "OpenAI", + "openrouter": "OpenRouter", + "perplexity": "Perplejidad", + "ppio": "PPIO Cloud Piao", + "qwenlm": "QwenLM", + "silicon": "Silicio Fluido", + "stepfun": "Función Salto", + "tencent-cloud-ti": "Tencent Nube TI", + "together": "Juntos", + "xirang": "Telecom Nube XiRang", + "yi": "Cero Uno Todo", + "zhinao": "360 Inteligente", + "zhipu": "ZhiPu IA", + "copilot": "GitHub Copiloto", + "gpustack": "GPUStack", + "alayanew": "Alaya NeW" + }, + "restore": { + "progress": { + "completed": "Restauración completada", + "copying_files": "Copiando archivos... {{progress}}%", + "extracting": "Descomprimiendo la copia de seguridad...", + "preparing": "Preparando la restauración...", + "reading_data": "Leyendo datos...", + "title": "Progreso de Restauración" + }, + "confirm": "¿Está seguro de que desea restaurar los datos?", + "confirm.button": "Seleccionar archivo de respaldo", + "content": "La operación de restauración sobrescribirá todos los datos actuales de la aplicación con los datos de respaldo. Tenga en cuenta que el proceso de restauración puede llevar algún tiempo, gracias por su paciencia.", + "title": "Restauración de Datos" + }, + "gpustack": { + "keep_alive_time.description": "Tiempo que el modelo permanece en memoria (por defecto: 5 minutos)", + "keep_alive_time.placeholder": "minutos", + "keep_alive_time.title": "Tiempo de Actividad", + "title": "GPUStack" + }, + "settings": { + "data": { + "clear_cache": { + "button": "Limpiar caché", + "confirm": "Limpiar caché eliminará los datos de la caché de la aplicación, incluyendo los datos de las aplicaciones mini. Esta acción no se puede deshacer, ¿desea continuar?", + "error": "Error al limpiar la caché", + "success": "Caché limpia con éxito", + "title": "Limpiar caché" + }, + "notion.check": { + "button": "Verificar", + "empty_api_key": "API key no configurada", + "empty_database_id": "Database ID no configurado", + "error": "Conexión anormal, por favor verifica la red y si el API key y Database ID son correctos", + "fail": "Conexión fallida, por favor verifica la red y si el API key y Database ID son correctos", + "success": "Conexión exitosa" + }, + "webdav": { + "autoSync": "Sincronización automática", + "autoSync.off": "Desactivar", + "backup.button": "Hacer copia de seguridad en WebDAV", + "host": "Dirección WebDAV", + "host.placeholder": "http://localhost:8080", + "hour_interval_one": "{{count}} hora", + "hour_interval_other": "{{count}} horas", + "lastSync": "Última copia de seguridad", + "minute_interval_one": "{{count}} minuto", + "minute_interval_other": "{{count}} minutos", + "noSync": "Esperando la próxima copia de seguridad", + "password": "Contraseña WebDAV", + "path": "Ruta WebDAV", + "path.placeholder": "/backup", + "backup.modal.title": "Hacer copia de seguridad en WebDAV", + "backup.modal.filename.placeholder": "Ingrese el nombre del archivo de copia de seguridad", + "restore.modal.title": "Restaurar desde WebDAV", + "restore.modal.select.placeholder": "Seleccione el archivo de copia de seguridad a restaurar", + "restore.confirm.title": "Confirmar restauración", + "restore.confirm.content": "La restauración desde WebDAV sobrescribirá los datos actuales, ¿desea continuar?", + "restore.button": "Restaurar desde WebDAV", + "restore.content": "La restauración desde WebDAV sobrescribirá los datos actuales, ¿desea continuar?", + "restore.title": "Restaurar desde WebDAV", + "syncError": "Error de copia de seguridad", + "syncStatus": "Estado de copia de seguridad", + "title": "WebDAV", + "user": "Nombre de usuario WebDAV" + }, + "yuque": { + "check": { + "button": "Verificar", + "empty_repo_url": "Por favor, ingrese primero la URL del repositorio de conocimientos", + "empty_token": "Por favor, ingrese primero el Token de YuQue", + "fail": "La validación de la conexión de YuQue falló", + "success": "La validación de la conexión de YuQue fue exitosa" + }, + "help": "Obtener el Token de Yuque", + "repo_url": "URL del repositorio de conocimiento", + "repo_url_placeholder": "https://www.yuque.com/username/xxx", + "title": "Configuración de Yuque", + "token": "Token de Yuque", + "token_placeholder": "Ingrese el Token de Yuque" + }, + "obsidian": { + "title": "Configuración de Obsidian", + "vault": "Custodia", + "vault_placeholder": "Introduce el nombre de la custodia", + "folder": "Carpeta", + "folder_placeholder": "Introduce el nombre de la carpeta", + "tags": "Etiquetas globales", + "tags_placeholder": "Introduce el nombre de la etiqueta, múltiples etiquetas separadas por comas, Obsidian no admite números puros" + }, + "joplin": { + "check": { + "button": "Revisar", + "empty_url": "Por favor, ingrese primero la URL de escucha del servicio de recorte de Joplin", + "empty_token": "Por favor, ingrese primero el token de autorización de Joplin", + "fail": "La validación de la conexión de Joplin falló", + "success": "La validación de la conexión de Joplin fue exitosa" + }, + "title": "Configuración de Joplin", + "help": "En las opciones de Joplin, habilita el servicio de recorte de páginas web (sin necesidad de instalar una extensión del navegador), confirma el número de puerto y copia el token de autorización", + "url": "URL a la que escucha el servicio de recorte de Joplin", + "url_placeholder": "http://127.0.0.1:41184/", + "token": "Token de autorización de Joplin", + "token_placeholder": "Introduce el token de autorización de Joplin" + }, + "app_data": "Datos de la aplicación", + "app_knowledge": "Archivo de base de conocimientos", + "app_knowledge.button.delete": "Eliminar archivo", + "app_knowledge.remove_all": "Eliminar archivos de la base de conocimientos", + "app_knowledge.remove_all_confirm": "Eliminar los archivos de la base de conocimientos reducirá el uso del espacio de almacenamiento, pero no eliminará los datos vectorizados de la base de conocimientos. Después de la eliminación, no se podrán abrir los archivos originales. ¿Desea eliminarlos?", + "app_knowledge.remove_all_success": "Archivos eliminados con éxito", + "app_logs": "Registros de la aplicación", + "data.title": "Directorio de datos", + "hour_interval_one": "{{count}} hora", + "hour_interval_other": "{{count}} horas", + "minute_interval_one": "{{count}} minuto", + "minute_interval_other": "{{count}} minutos", + "markdown_export.title": "Exportar Markdown", + "markdown_export.path": "Ruta de exportación predeterminada", + "markdown_export.path_placeholder": "Ruta de exportación", + "markdown_export.select": "Seleccionar", + "markdown_export.help": "Si se especifica, se guardará automáticamente en esta ruta cada vez que se exporte; de lo contrario, se mostrará un cuadro de diálogo para guardar", + "markdown_export.force_dollar_math.title": "Forzar el uso de $$ para marcar fórmulas LaTeX", + "markdown_export.force_dollar_math.help": "Al activarlo, al exportar a Markdown se usarán $$ para marcar las fórmulas LaTeX. Nota: Esto también afectará a todas las formas de exportación a través de Markdown, como Notion, Yuque, etc.", + "notion.api_key": "Clave de API de Notion", + "notion.api_key_placeholder": "Introduzca la clave de API de Notion", + "notion.auto_split": "Dividir automáticamente las conversaciones al exportar", + "notion.auto_split_tip": "Cuando se exportan temas largos, se dividirán automáticamente en páginas en Notion", + "notion.database_id": "ID de la base de datos de Notion", + "notion.database_id_placeholder": "Introduzca el ID de la base de datos de Notion", + "notion.help": "Documentación de configuración de Notion", + "notion.page_name_key": "Campo del nombre de la página", + "notion.page_name_key_placeholder": "Introduzca el campo del nombre de la página, por defecto es Nombre", + "notion.split_size": "Tamaño de la división automática", + "notion.split_size_help": "Para usuarios gratuitos de Notion, se recomienda establecerlo en 90, y para usuarios avanzados, en 24990. El valor predeterminado es 90", + "notion.split_size_placeholder": "Introduzca el límite de bloques por página (predeterminado 90)", + "notion.title": "Configuración de Notion", + "title": "Configuración de datos" + }, + "mcp": { + "npx_list": { + "title": "Lista de paquetes NPX", + "desc": "Buscar y agregar paquetes npm como servicios MCP", + "scope_placeholder": "Ingrese el ámbito npm (por ejemplo @your-org)", + "search": "Buscar", + "package_name": "Nombre del paquete", + "description": "Descripción", + "usage": "Uso", + "npm": "NPM", + "version": "Versión", + "actions": "Acciones", + "scope_required": "Por favor ingrese el ámbito npm", + "no_packages": "No se encontraron paquetes", + "search_error": "Error de búsqueda" + }, + "actions": "Acciones", + "active": "Activar", + "addServer": "Agregar servidor", + "addSuccess": "Servidor agregado exitosamente", + "addError": "Fallo al agregar servidor", + "args": "Argumentos", + "argsTooltip": "Cada argumento en una línea", + "baseUrlTooltip": "Dirección URL remota", + "command": "Comando", + "commandRequired": "Por favor ingrese el comando", + "config_description": "Configurar modelo de contexto del protocolo del servidor", + "confirmDelete": "Eliminar servidor", + "confirmDeleteMessage": "¿Está seguro de que desea eliminar este servidor?", + "deleteError": "Fallo al eliminar servidor", + "deleteSuccess": "Servidor eliminado exitosamente", + "description": "Descripción", + "duplicateName": "Ya existe un servidor con el mismo nombre", + "editServer": "Editar servidor", + "env": "Variables de entorno", + "envTooltip": "Formato: CLAVE=valor, una por línea", + "findMore": "Más servidores MCP", + "name": "Nombre", + "nameRequired": "Por favor ingrese el nombre del servidor", + "noServers": "No se han configurado servidores", + "serverPlural": "Servidores", + "serverSingular": "Servidor", + "title": "Servidores MCP", + "type": "Tipo", + "updateSuccess": "Servidor actualizado exitosamente", + "updateError": "Fallo al actualizar servidor", + "url": "URL", + "toggleError": "Fallo al cambiar", + "dependenciesInstalling": "Instalando dependencias...", + "dependenciesInstall": "Instalar dependencias", + "installSuccess": "Dependencias instaladas exitosamente", + "installError": "Fallo al instalar dependencias", + "missingDependencies": "Faltan, instalelas para continuar", + "install": "Instalar", + "editJson": "Editar JSON", + "jsonModeHint": "Edite la representación JSON de la configuración del servidor MCP. Asegúrese de que el formato sea correcto antes de guardar.", + "jsonFormatError": "Error de formato JSON", + "jsonSaveSuccess": "Configuración JSON guardada exitosamente", + "jsonSaveError": "Fallo al guardar la configuración JSON" + }, + "provider": { + "copilot": { + "tooltip": "Para usar Github Copilot, primero debe iniciar sesión en Github", + "description": "Su cuenta de Github necesita suscribirse a Copilot", + "login": "Iniciar sesión en Github", + "connect": "Conectar con Github", + "logout": "Cerrar sesión en Github", + "auth_success_title": "Autenticación exitosa", + "code_generated_title": "Obtener Código del Dispositivo", + "code_generated_desc": "Por favor, copie el Código del Dispositivo en el siguiente enlace del navegador", + "code_failed": "Error al obtener Código del Dispositivo, por favor inténtelo de nuevo", + "auth_success": "Autenticación de Github Copilot exitosa", + "auth_failed": "Autenticación de Github Copilot fallida", + "logout_success": "Ha cerrado sesión exitosamente", + "logout_failed": "Error al cerrar sesión, por favor inténtelo de nuevo", + "confirm_title": "Advertencia de Riesgo", + "confirm_login": "El uso excesivo puede llevar al bloqueo de su cuenta de Github, use con precaución!!!!", + "rate_limit": "Límite de tasa", + "custom_headers": "Encabezados personalizados", + "headers_description": "Encabezados personalizados (formato json)", + "expand": "Expandir", + "model_setting": "Configuración del modelo", + "invalid_json": "Formato JSON incorrecto", + "open_verification_first": "Por favor, haga clic en el enlace superior para acceder a la página de verificación" + }, + "add.name": "Nombre del proveedor", + "add.name.placeholder": "Por ejemplo, OpenAI", + "add.title": "Agregar proveedor", + "add.type": "Tipo de proveedor", + "api.url.preview": "Vista previa: {{url}}", + "api.url.reset": "Restablecer", + "api.url.tip": "Ignorar v1 al final con /, forzar uso de dirección de entrada con # al final", + "api_host": "Dirección API", + "api_key": "Clave API", + "api_key.tip": "Separar múltiples claves con comas", + "api_version": "Versión API", + "charge": "Recargar", + "check": "Verificar", + "check_all_keys": "Verificar todas las claves", + "check_multiple_keys": "Verificar múltiples claves API", + "delete.content": "¿Está seguro de que desea eliminar este proveedor de modelos?", + "delete.title": "Eliminar proveedor", + "docs_check": "Ver", + "docs_more_details": "Obtener más detalles", + "get_api_key": "Haga clic aquí para obtener la clave", + "no_models": "Agregue un modelo primero antes de verificar la conexión API", + "not_checked": "No verificado", + "remove_duplicate_keys": "Eliminar claves duplicadas", + "remove_invalid_keys": "Eliminar claves inválidas", + "search": "Buscar plataforma de modelos...", + "search_placeholder": "Buscar ID o nombre del modelo", + "title": "Servicio de modelos", + "is_not_support_array_content": "Activar modo compatible" + }, + "proxy": { + "mode": { + "custom": "Proxy personalizado", + "none": "No usar proxy", + "system": "Proxy del sistema", + "title": "Modo de proxy" + }, + "title": "Configuración de Proxy" + }, + "quickAssistant": { + "click_tray_to_show": "Haz clic en el icono de la bandeja para iniciar", + "enable_quick_assistant": "Habilitar Asistente Rápido", + "title": "Asistente Rápido", + "use_shortcut_to_show": "Haz clic derecho en el icono de la bandeja o usa un atajo de teclado para iniciar", + "read_clipboard_at_startup": "Leer portapapeles al iniciar" + }, + "shortcuts": { + "action": "Acción", + "clear_shortcut": "Borrar atajo", + "clear_topic": "Vaciar mensaje", + "copy_last_message": "Copiar el último mensaje", + "key": "Tecla", + "mini_window": "Asistente rápido", + "new_topic": "Nuevo tema", + "press_shortcut": "Presionar atajo", + "reset_defaults": "Restablecer atajos predeterminados", + "reset_defaults_confirm": "¿Está seguro de querer restablecer todos los atajos?", + "reset_to_default": "Restablecer a predeterminado", + "search_message": "Buscar mensaje", + "show_app": "Mostrar aplicación", + "show_settings": "Abrir configuración", + "title": "Atajos", + "toggle_new_context": "Limpiar contexto", + "toggle_show_assistants": "Alternar visibilidad de asistentes", + "toggle_show_topics": "Alternar visibilidad de temas", + "zoom_in": "Ampliar interfaz", + "zoom_out": "Reducir interfaz", + "zoom_reset": "Restablecer zoom" + }, + "websearch": { + "tavily": { + "api_key": "Clave de API de Tavily", + "api_key.placeholder": "Introduce la clave de API de Tavily", + "description": "Tavily es un motor de búsqueda diseñado específicamente para agentes de IA, proporcionando resultados en tiempo real, precisos, sugerencias de consulta inteligentes y capacidades de investigación profundas", + "title": "Tavily" + }, + "blacklist": "Lista negra", + "blacklist_description": "No aparecerán los resultados de los siguientes sitios web en los resultados de búsqueda", + "blacklist_tooltip": "Por favor, use el siguiente formato (separado por saltos de línea)\">\">example.com\">https://www.example.com\">https://example.com\">*://*.example.com", + "check": "Comprobar", + "check_success": "Verificación exitosa", + "check_failed": "Verificación fallida", + "get_api_key": "Haz clic aquí para obtener la clave", + "no_provider_selected": "Por favor, seleccione un proveedor de búsqueda antes de comprobar", + "search_max_result": "Número de resultados de búsqueda", + "search_provider": "Proveedor de búsqueda", + "search_provider_placeholder": "Seleccione un proveedor de búsqueda", + "search_result_default": "Predeterminado", + "search_with_time": "Búsqueda con fecha", + "enhance_mode": "Modo de búsqueda mejorada", + "enhance_mode_tooltip": "Utilice el modelo predeterminado para extraer palabras clave y luego busque", + "title": "Búsqueda en la web" + }, + "about": "Acerca de nosotros", + "about.checkingUpdate": "Verificando actualizaciones...", + "about.checkUpdate": "Comprobar actualizaciones", + "about.checkUpdate.available": "Actualizar ahora", + "about.contact.button": "Correo electrónico", + "about.contact.title": "Contacto por correo electrónico", + "about.description": "Una asistente de IA creada para los creadores", + "about.downloading": "Descargando actualización...", + "about.feedback.button": "Enviar feedback", + "about.feedback.title": "Enviar comentarios", + "about.license.button": "Ver", + "about.license.title": "Licencia", + "about.releases.button": "Ver", + "about.releases.title": "Registro de cambios", + "about.social.title": "Cuentas sociales", + "about.title": "Acerca de nosotros", + "about.updateAvailable": "Versión nueva disponible {{version}}", + "about.updateError": "Error de actualización", + "about.updateNotAvailable": "Tu software ya está actualizado", + "about.website.button": "Ver", + "about.website.title": "Sitio web oficial", + "advanced.auto_switch_to_topics": "Cambiar automáticamente a temas", + "advanced.title": "Configuración avanzada", + "assistant": "Asistente predeterminado", + "assistant.model_params": "Parámetros del modelo", + "assistant.show.icon": "Mostrar icono del modelo", + "assistant.title": "Asistente predeterminado", + "display.assistant.title": "Configuración del asistente", + "display.custom.css": "CSS personalizado", + "display.custom.css.cherrycss": "Obtener desde cherrycss.com", + "display.custom.css.placeholder": "/* Escribe tu CSS personalizado aquí */", + "display.minApp.disabled": "Miniprogramas ocultos", + "display.minApp.empty": "Arrastra los miniprogramas que quieres ocultar desde la izquierda aquí", + "display.minApp.title": "Configuración de visualización de miniprogramas", + "display.minApp.visible": "Miniprogramas visibles", + "display.sidebar.chat.hiddenMessage": "El asistente es una función básica y no se puede ocultar", + "display.sidebar.disabled": "Iconos ocultos", + "display.sidebar.empty": "Arrastra las funciones que deseas ocultar desde la izquierda aquí", + "display.sidebar.files.icon": "Mostrar icono de archivos", + "display.sidebar.knowledge.icon": "Mostrar icono de conocimiento", + "display.sidebar.minapp.icon": "Mostrar icono de miniprogramas", + "display.sidebar.painting.icon": "Mostrar icono de pintura", + "display.sidebar.title": "Configuración de barra lateral", + "display.sidebar.translate.icon": "Mostrar icono de traducción", + "display.sidebar.visible": "Iconos visibles", + "display.title": "Configuración de visualización", + "display.topic.title": "Configuración de tema", + "font_size.title": "Tamaño de fuente de mensajes", + "general": "Configuración general", + "general.avatar.reset": "Restablecer avatar", + "general.backup.button": "Hacer copia de seguridad", + "general.backup.title": "Copia de seguridad y restauración de datos", + "general.display.title": "Configuración de visualización", + "general.emoji_picker": "Selector de emojis", + "general.image_upload": "Carga de imágenes", + "general.manually_check_update.title": "Desactivar verificación de actualizaciones", + "general.reset.button": "Restablecer", + "general.reset.title": "Restablecer datos", + "general.restore.button": "Restaurar", + "general.title": "Configuración general", + "general.user_name": "Nombre de usuario", + "general.user_name.placeholder": "Ingresa un nombre de usuario", + "general.view_webdav_settings": "Ver configuración WebDAV", + "input.auto_translate_with_space": "Traducir con tres espacios rápidos", + "input.target_language": "Idioma objetivo", + "input.target_language.chinese": "Chino simplificado", + "input.target_language.chinese-traditional": "Chino tradicional", + "input.target_language.english": "Inglés", + "input.target_language.japanese": "Japonés", + "input.target_language.russian": "Ruso", + "messages.divider": "Separador de mensajes", + "messages.navigation": "Botón de navegación de conversación", + "messages.navigation.none": "No mostrar", + "messages.navigation.buttons": "Botones arriba y abajo", + "messages.navigation.anchor": "Ancla de conversación", + "messages.grid_columns": "Número de columnas en la cuadrícula de mensajes", + "messages.grid_popover_trigger": "Desencadenante de detalles de cuadrícula", + "messages.grid_popover_trigger.click": "Mostrar al hacer clic", + "messages.grid_popover_trigger.hover": "Mostrar al pasar el ratón", + "messages.input.paste_long_text_as_file": "Pegar texto largo como archivo", + "messages.input.paste_long_text_threshold": "Límite de longitud de texto largo", + "messages.input.send_shortcuts": "Atajos de teclado para enviar", + "messages.input.show_estimated_tokens": "Mostrar número estimado de tokens", + "messages.input.title": "Configuración de entrada", + "messages.markdown_rendering_input_message": "Renderizar mensajes de entrada en Markdown", + "messages.math_engine": "Motor de fórmulas matemáticas", + "messages.metrics": "Retraso inicial {{time_first_token_millsec}}ms | {{token_speed}} tokens por segundo", + "messages.model.title": "Configuración del modelo", + "messages.title": "Configuración de mensajes", + "messages.use_serif_font": "Usar fuente serif", + "model": "Modelo predeterminado", + "models.add.add_model": "Agregar modelo", + "models.add.group_name": "Nombre del grupo", + "models.add.group_name.placeholder": "Por ejemplo, ChatGPT", + "models.add.group_name.tooltip": "Por ejemplo, ChatGPT", + "models.add.model_id": "ID del modelo", + "models.add.model_id.placeholder": "Obligatorio, por ejemplo, gpt-3.5-turbo", + "models.add.model_id.tooltip": "Por ejemplo, gpt-3.5-turbo", + "models.add.model_name": "Nombre del modelo", + "models.add.model_name.placeholder": "Por ejemplo, GPT-3.5", + "models.check.all": "Todos", + "models.check.all_models_passed": "Todos los modelos pasaron la verificación", + "models.check.button_caption": "Verificación de salud", + "models.check.disabled": "Deshabilitado", + "models.check.enable_concurrent": "Verificación concurrente", + "models.check.enabled": "Habilitado", + "models.check.failed": "Fallido", + "models.check.keys_status_count": "Pasados: {{count_passed}} claves, fallidos: {{count_failed}} claves", + "models.check.model_status_summary": "{{provider}}: {{count_passed}} modelos completaron la verificación de salud ({{count_partial}} modelos no accesibles con algunas claves), {{count_failed}} modelos completamente inaccesibles.", + "models.check.no_api_keys": "No se encontraron claves API, agrega una clave API primero.", + "models.check.passed": "Pasado", + "models.check.select_api_key": "Seleccionar clave API a usar:", + "models.check.single": "Individual", + "models.check.start": "Iniciar", + "models.check.title": "Verificación de salud del modelo", + "models.check.use_all_keys": "Usar todas las claves", + "models.default_assistant_model": "Modelo predeterminado del asistente", + "models.default_assistant_model_description": "Modelo utilizado al crear nuevos asistentes, si el asistente no tiene un modelo asignado, se utiliza este modelo", + "models.empty": "Sin modelos", + "models.enable_topic_naming": "Renombrar temas automáticamente", + "models.manage.add_whole_group": "Agregar todo el grupo", + "models.manage.remove_whole_group": "Eliminar todo el grupo", + "models.topic_naming_model": "Modelo de nombramiento de temas", + "models.topic_naming_model_description": "Modelo utilizado para nombrar temas automáticamente", + "models.topic_naming_model_setting_title": "Configuración del modelo de nombramiento de temas", + "models.topic_naming_prompt": "Sugerencias para nombramiento de temas", + "models.translate_model": "Modelo de traducción", + "models.translate_model_description": "Modelo utilizado para el servicio de traducción", + "models.translate_model_prompt_message": "Ingrese las sugerencias del modelo de traducción", + "models.translate_model_prompt_title": "Sugerencias del modelo de traducción", + "moresetting": "Configuración adicional", + "moresetting.check.confirm": "Confirmar selección", + "moresetting.check.warn": "Ten cuidado al seleccionar esta opción, ¡una elección incorrecta puede causar que los modelos no funcionen correctamente!!!", + "moresetting.warn": "Advertencia de riesgo", + "proxy.title": "Dirección proxy", + "theme.auto": "Automático", + "theme.dark": "Oscuro", + "theme.light": "Claro", + "theme.title": "Tema", + "theme.window.style.opaque": "Ventana opaca", + "theme.window.style.title": "Estilo de ventana", + "theme.window.style.transparent": "Ventana transparente", + "title": "Configuración", + "topic.position": "Posición del tema", + "topic.position.left": "Izquierda", + "topic.position.right": "Derecha", + "topic.show.time": "Mostrar tiempo del tema", + "tray.title": "Bandera", + "tray.show": "Mostrar bandera del sistema", + "tray.onclose": "Minimizar a la bandeja al cerrar", + "launch.title": "Inicio", + "launch.onboot": "Iniciar automáticamente al encender", + "launch.totray": "Minimizar a la bandeja al iniciar" + }, + "translate": { + "confirm": { + "content": "La traducción reemplazará el texto original, ¿desea continuar?", + "title": "Confirmación de traducción" + }, + "history": { + "clear": "Borrar historial", + "clear_description": "Borrar el historial eliminará todos los registros de traducciones, ¿desea continuar?", + "delete": "Eliminar", + "empty": "Sin historial de traducciones por el momento", + "title": "Historial de traducciones" + }, + "any.language": "cualquier idioma", + "button.translate": "Traducir", + "close": "Cerrar", + "error.failed": "Fallo en la traducción", + "error.not_configured": "El modelo de traducción no está configurado", + "input.placeholder": "Ingrese el texto para traducir", + "output.placeholder": "Traducción", + "processing": "Traduciendo...", + "scroll_sync.disable": "Deshabilitar sincronización de desplazamiento", + "scroll_sync.enable": "Habilitar sincronización de desplazamiento", + "title": "Traducción", + "tooltip.newline": "Salto de línea" + }, + "tray": { + "quit": "Salir", + "show_mini_window": "Asistente rápido", + "show_window": "Mostrar ventana" + }, + "words": { + "knowledgeGraph": "Grafo de Conocimiento", + "quit": "Salir", + "show_window": "Mostrar Ventana", + "visualization": "Visualización" + } + } +} \ No newline at end of file diff --git a/src/renderer/src/i18n/locales/fr-fr.json b/src/renderer/src/i18n/locales/fr-fr.json new file mode 100644 index 00000000..cdc9552f --- /dev/null +++ b/src/renderer/src/i18n/locales/fr-fr.json @@ -0,0 +1,1172 @@ +{ + "translation": { + "agents": { + "add.button": "Ajouter à l'assistant", + "add.knowledge_base": "Base de connaissances", + "add.knowledge_base.placeholder": "Sélectionner une base de connaissances", + "add.name": "Nom", + "add.name.placeholder": "Entrer le nom", + "add.prompt": "Mot-clé", + "add.prompt.placeholder": "Entrer le mot-clé", + "add.title": "Créer un agent intelligent", + "delete.popup.content": "Êtes-vous sûr de vouloir supprimer cet agent intelligent ?", + "edit.message.add.title": "Ajouter", + "edit.message.assistant.placeholder": "Entrer le message de l'assistant", + "edit.message.assistant.title": "Assistant", + "edit.message.empty.content": "Le contenu de la session ne peut pas être vide", + "edit.message.group.title": "Groupe de messages", + "edit.message.title": "Messages prédéfinis", + "edit.message.user.placeholder": "Entrer le message de l'utilisateur", + "edit.message.user.title": "Utilisateur", + "edit.model.select.title": "Sélectionner un modèle", + "edit.settings.hide_preset_messages": "Masquer les messages prédéfinis", + "edit.title": "Modifier l'agent intelligent", + "manage.title": "Gérer les agents intelligents", + "my_agents": "Mes agents intelligents", + "search.no_results": "Aucun agent intelligent correspondant trouvé", + "sorting.title": "Trier", + "tag.agent": "Agent intelligent", + "tag.default": "Par défaut", + "tag.new": "Nouveau", + "tag.system": "Système", + "title": "Agent intelligent" + }, + "assistants": { + "abbr": "Aide", + "clear.content": "Supprimer le sujet supprimera tous les sujets et fichiers de l'aide. Êtes-vous sûr de vouloir continuer ?", + "clear.title": "Supprimer les sujets", + "copy.title": "Copier l'Aide", + "delete.content": "La suppression de l'aide supprimera tous les sujets et fichiers sous l'aide. Êtes-vous sûr de vouloir la supprimer ?", + "delete.title": "Supprimer l'Aide", + "edit.title": "Modifier l'Aide", + "save.success": "Sauvegarde réussie", + "save.title": "Enregistrer dans l'agent", + "search": "Rechercher des assistants...", + "settings.default_model": "Modèle par défaut", + "settings.knowledge_base": "Paramètres de la base de connaissances", + "settings.model": "Paramètres du modèle", + "settings.preset_messages": "Messages prédéfinis", + "settings.prompt": "Paramètres de l'invite", + "settings.reasoning_effort": "Longueur de la chaîne de raisonnement", + "settings.reasoning_effort.high": "Long", + "settings.reasoning_effort.low": "Court", + "settings.reasoning_effort.medium": "Moyen", + "settings.reasoning_effort.off": "Off", + "settings.reasoning_effort.tip": "Prise en charge uniquement des modèles de raisonnement OpenAI o-series et Anthropic", + "title": "Aides" + }, + "auth": { + "error": "Échec de l'obtention automatique de la clé, veuillez la récupérer manuellement", + "get_key": "Obtenir", + "get_key_success": "Obtention automatique de la clé réussie", + "login": "Se connecter", + "oauth_button": "Se connecter avec {{provider}}" + }, + "backup": { + "progress": { + "completed": "Sauvegarde terminée", + "compressing": "Compression des fichiers...", + "copying_files": "Copie des fichiers... {{progress}}%", + "preparing": "Préparation de la sauvegarde...", + "title": "Progrès de la sauvegarde", + "writing_data": "Écriture des données..." + }, + "confirm": "Êtes-vous sûr de vouloir effectuer une sauvegarde des données ?", + "confirm.button": "Sélectionner l'emplacement de sauvegarde", + "content": "Sauvegarder toutes les données, y compris l'historique des conversations, les paramètres et la base de connaissances. Veuillez noter que le processus de sauvegarde peut prendre un certain temps, merci de votre patience.", + "title": "Sauvegarde des données" + }, + "button": { + "add": "Ajouter", + "added": "Ajouté", + "collapse": "Réduire", + "manage": "Gérer", + "select_model": "Sélectionner le Modèle", + "show.all": "Afficher tout", + "update_available": "Mise à jour disponible" + }, + "chat": { + "navigation": { + "prev": "Précédent message", + "next": "Prochain message", + "first": "Déjà premier message", + "last": "Déjà dernier message" + }, + "add.assistant.title": "Ajouter un assistant", + "artifacts.button.download": "Télécharger", + "artifacts.button.openExternal": "Ouvrir dans un navigateur externe", + "artifacts.button.preview": "Aperçu", + "artifacts.preview.openExternal.error.content": "Erreur lors de l'ouverture dans un navigateur externe", + "assistant.search.placeholder": "Rechercher", + "deeply_thought": "Profondément réfléchi ({{secounds}} secondes)", + "default.description": "Bonjour, je suis l'assistant par défaut. Vous pouvez commencer à discuter avec moi tout de suite.", + "default.name": "Assistant par défaut", + "default.topic.name": "Sujet par défaut", + "input.auto_resize": "Ajustement automatique de la hauteur", + "input.clear": "Effacer le message {{Command}}", + "input.clear.content": "Êtes-vous sûr de vouloir effacer tous les messages de la conversation actuelle ?", + "input.clear.title": "Effacer le message", + "input.collapse": "Récupérer", + "input.context_count.tip": "Nombre de contextes / Nombre maximal de contextes", + "input.estimated_tokens.tip": "Estimation du nombre de tokens", + "input.expand": "Développer", + "input.file_not_supported": "Le modèle ne prend pas en charge ce type de fichier", + "input.knowledge_base": "Base de connaissances", + "input.new.context": "Effacer le contexte {{Command}}", + "input.new_topic": "Nouveau sujet {{Command}}", + "input.pause": "Pause", + "input.placeholder": "Entrez votre message ici...", + "input.send": "Envoyer", + "input.settings": "Paramètres", + "input.topics": "Sujets", + "input.translate": "Traduire en {{target_language}}", + "input.upload": "Télécharger une image ou un document", + "input.upload.document": "Télécharger un document (le modèle ne prend pas en charge les images)", + "input.web_search": "Activer la recherche web", + "input.web_search.button.ok": "Aller aux paramètres", + "input.web_search.enable": "Activer la recherche web", + "input.web_search.enable_content": "Vous devez vérifier la connectivité de la recherche web dans les paramètres", + "message.new.branch": "Branche", + "message.new.branch.created": "Nouvelle branche créée", + "message.new.context": "Effacer le contexte", + "message.quote": "Citer", + "message.regenerate.model": "Changer de modèle", + "message.useful": "Utile", + "resend": "Réenvoyer", + "save": "Enregistrer", + "settings.code_collapsible": "Blocs de code pliables", + "settings.code_wrappable": "Blocs de code avec retours à la ligne", + "settings.context_count": "Nombre de contextes", + "settings.context_count.tip": "Nombre de messages à conserver dans le contexte. Plus la valeur est élevée, plus le contexte est long et plus les tokens consommés sont nombreux. Pour une conversation normale, il est recommandé de choisir entre 5 et 10", + "settings.max": "Illimité", + "settings.max_tokens": "Activer la limitation de la longueur du message", + "settings.max_tokens.confirm": "Activer la limitation de la longueur du message", + "settings.max_tokens.confirm_content": "Après activation de la limitation de la longueur du message, le nombre maximal de tokens utilisé pour une interaction unique affectera la longueur du résultat renvoyé. Il faut le configurer en fonction des limitations du contexte du modèle, sinon cela génèrera une erreur", + "settings.max_tokens.tip": "Nombre maximal de tokens utilisé pour une interaction unique. Cela affectera la longueur du résultat renvoyé. Il faut le configurer en fonction des limitations du contexte du modèle, sinon cela génèrera une erreur", + "settings.reset": "Réinitialiser", + "settings.set_as_default": "Appliquer à l'assistant par défaut", + "settings.show_line_numbers": "Afficher les numéros de ligne", + "settings.temperature": "Température du modèle", + "settings.temperature.tip": "Degré de génération aléatoire du texte par le modèle. Plus la valeur est élevée, plus la réponse est diverse, créative et aléatoire ; fixez-la à 0 pour obtenir une réponse factuelle. Pour une conversation quotidienne, il est recommandé de la fixer à 0.7", + "settings.thought_auto_collapse": "Pliage automatique du contenu de la pensée", + "settings.thought_auto_collapse.tip": "Le contenu de la pensée se replie automatiquement après la fin de la pensée", + "settings.top_p": "Top-P", + "settings.top_p.tip": "Valeur par défaut : 1. Plus la valeur est faible, plus le contenu généré par l'IA est monotone mais facile à comprendre ; plus la valeur est élevée, plus le vocabulaire et la diversité de la réponse de l'IA sont grands", + "suggestions.title": "Questions suggérées", + "thinking": "En réflexion", + "topics.auto_rename": "Générer un nom de sujet", + "topics.clear.title": "Effacer le message", + "topics.copy.image": "Copier sous forme d'image", + "topics.copy.md": "Copier sous forme de Markdown", + "topics.copy.title": "Copier", + "topics.delete.shortcut": "Maintenez {{key}} pour supprimer directement", + "topics.edit.placeholder": "Entrez un nouveau nom", + "topics.edit.title": "Modifier le nom du sujet", + "topics.export.image": "Exporter sous forme d'image", + "topics.export.md": "Exporter sous forme de Markdown", + "topics.export.notion": "Exporter vers Notion", + "topics.export.title": "Exporter", + "topics.export.word": "Exporter sous forme de Word", + "topics.export.yuque": "Exporter vers Yuque", + "topics.export.obsidian": "Exporter vers Obsidian", + "topics.export.obsidian_not_configured": "Obsidian non configuré", + "topics.export.obsidian_title": "Titre", + "topics.export.obsidian_title_placeholder": "Entrez un titre", + "topics.export.obsidian_title_required": "Le titre ne peut pas être vide", + "topics.export.obsidian_tags": "Étiquettes", + "topics.export.obsidian_tags_placeholder": "Entrez des étiquettes, séparées par des virgules en anglais, Obsidian ne peut pas utiliser des nombres purs", + "topics.export.obsidian_created": "Date de création", + "topics.export.obsidian_created_placeholder": "Choisissez la date de création", + "topics.export.obsidian_source": "Source", + "topics.export.obsidian_source_placeholder": "Entrez une source", + "topics.export.obsidian_operate": "Mode de traitement", + "topics.export.obsidian_operate_placeholder": "Choisissez un mode de traitement", + "topics.export.obsidian_operate_append": "Ajouter", + "topics.export.obsidian_operate_prepend": "Préfixer", + "topics.export.obsidian_operate_new_or_overwrite": "Créer (écraser si existant)", + "topics.export.obsidian_atributes": "Configurer les attributs de la note", + "topics.export.obsidian_btn": "Confirmer", + "topics.export.obsidian_export_success": "Exportation réussie", + "topics.export.obsidian_export_failed": "Échec de l'exportation", + "topics.export.joplin": "Exporter vers Joplin", + "topics.list": "Liste des sujets", + "topics.move_to": "Déplacer vers", + "topics.pinned": "Fixer le sujet", + "topics.prompt": "Indicateurs de sujet", + "topics.prompt.edit.title": "Modifier les indicateurs de sujet", + "topics.prompt.tips": "Indicateurs de sujet : fournir des indications supplémentaires pour le sujet actuel", + "topics.title": "Sujet", + "topics.unpinned": "Annuler le fixage", + "topics.new": "Commencer une nouvelle conversation", + "translate": "Traduire" + }, + "code_block": { + "collapse": "Réduire", + "disable_wrap": "Désactiver le retour à la ligne", + "enable_wrap": "Activer le retour à la ligne", + "expand": "Développer" + }, + "common": { + "add": "Ajouter", + "and": "et", + "assistant": "Intelligence artificielle", + "avatar": "Avatar", + "back": "Retour", + "cancel": "Annuler", + "chat": "Chat", + "clear": "Effacer", + "close": "Fermer", + "confirm": "Confirmer", + "copy": "Copier", + "copied": "Copié", + "cut": "Couper", + "default": "Défaut", + "delete": "Supprimer", + "description": "Description", + "docs": "Documents", + "download": "Télécharger", + "duplicate": "Dupliquer", + "edit": "Éditer", + "footnote": "Note de bas de page", + "footnotes": "Notes de bas de page", + "fullscreen": "Mode plein écran, appuyez sur F11 pour quitter", + "knowledge_base": "Base de connaissances", + "language": "Langue", + "model": "Modèle", + "models": "Modèles", + "name": "Nom", + "paste": "Coller", + "prompt": "Prompt", + "provider": "Fournisseur", + "regenerate": "Regénérer", + "rename": "Renommer", + "reset": "Réinitialiser", + "save": "Enregistrer", + "search": "Rechercher", + "select": "Sélectionner", + "topics": "Sujets", + "warning": "Avertissement", + "you": "Vous", + "more": "Plus", + "advanced_settings": "Paramètres avancés", + "expand": "Développer" + }, + "docs": { + "title": "Documentation d'aide" + }, + "error": { + "http": { + "400": "Erreur de requête, veuillez vérifier si les paramètres de la requête sont corrects. Si vous avez modifié les paramètres du modèle, réinitialisez-les aux paramètres par défaut.", + "401": "Échec de l'authentification, veuillez vérifier que votre clé API est correcte.", + "403": "Accès interdit, veuillez traduire le message d'erreur spécifique pour connaître la raison ou contacter le fournisseur de services pour demander la raison de l'interdiction.", + "404": "Le modèle n'existe pas ou la requête de chemin est incorrecte.", + "429": "Le taux de requêtes dépasse la limite, veuillez réessayer plus tard.", + "500": "Erreur serveur, veuillez réessayer plus tard.", + "502": "Erreur de passerelle, veuillez réessayer plus tard.", + "503": "Service indisponible, veuillez réessayer plus tard.", + "504": "Délai d'expiration de la passerelle, veuillez réessayer plus tard." + }, + "render": { + "description": "La formule n'a pas été rendue avec succès, veuillez vérifier si le format de la formule est correct", + "title": "Erreur de rendu" + }, + "backup.file_format": "Le format du fichier de sauvegarde est incorrect", + "chat.response": "Une erreur s'est produite, si l'API n'est pas configurée, veuillez aller dans Paramètres > Fournisseurs de modèles pour configurer la clé", + "model.exists": "Le modèle existe déjà", + "no_api_key": "La clé API n'est pas configurée", + "provider_disabled": "Le fournisseur de modèles n'est pas activé", + "user_message_not_found": "Impossible de trouver le message d'utilisateur original" + }, + "export": { + "assistant": "Assistant", + "attached_files": "Pièces jointes", + "conversation_details": "Détails de la conversation", + "conversation_history": "Historique de la conversation", + "created": "Date de création", + "last_updated": "Dernière mise à jour", + "messages": "Messages", + "user": "Utilisateur" + }, + "files": { + "actions": "Actions", + "all": "Tous les fichiers", + "count": "Nombre de fichiers", + "created_at": "Date de création", + "delete": "Supprimer", + "delete.content": "La suppression du fichier supprimera toutes les références au fichier dans tous les messages. Êtes-vous sûr de vouloir supprimer ce fichier ?", + "delete.paintings.warning": "Cette image est incluse dans un dessin, elle ne peut pas être supprimée pour l'instant", + "delete.title": "Supprimer le fichier", + "document": "Document", + "edit": "Éditer", + "file": "Fichier", + "image": "Image", + "name": "Nom du fichier", + "open": "Ouvrir", + "size": "Taille", + "text": "Texte", + "title": "Fichier", + "type": "Type" + }, + "history": { + "continue_chat": "Continuer la conversation", + "locate.message": "Localiser le message", + "search.messages": "Rechercher tous les messages", + "search.placeholder": "Rechercher un sujet ou un message...", + "search.topics.empty": "Aucun sujet correspondant trouvé, appuyez sur Entrée pour rechercher tous les messages", + "title": "Recherche de sujets" + }, + "knowledge": { + "add": { + "title": "Ajouter une base de connaissances" + }, + "add_directory": "Ajouter un répertoire", + "add_file": "Ajouter un fichier", + "add_note": "Ajouter une note", + "add_sitemap": "Plan du site", + "add_url": "Ajouter une URL", + "cancel_index": "Annuler l'indexation", + "chunk_overlap": "Chevauchement de blocs", + "chunk_overlap_placeholder": "Valeur par défaut (ne pas modifier)", + "chunk_overlap_tooltip": "Quantité de contenu redondant entre les blocs de texte adjacents pour maintenir la continuité contextuelle et améliorer le traitement des longs textes par le modèle", + "chunk_size": "Taille de bloc", + "chunk_size_change_warning": "Les modifications de taille de bloc et de chevauchement ne s'appliquent qu'aux nouveaux contenus ajoutés", + "chunk_size_placeholder": "Valeur par défaut (ne pas modifier)", + "chunk_size_too_large": "La taille de bloc ne peut pas dépasser la limite de contexte du modèle ({{max_context}})", + "chunk_size_tooltip": "Taille des segments de document, ne doit pas dépasser la limite de contexte du modèle", + "clear_selection": "Effacer la sélection", + "delete": "Supprimer", + "delete_confirm": "Êtes-vous sûr de vouloir supprimer cette base de connaissances ?", + "directories": "Répertoires", + "directory_placeholder": "Entrez le chemin du répertoire", + "document_count": "Nombre de fragments de documents demandés", + "document_count_default": "Par défaut", + "document_count_help": "Plus vous demandez de fragments de documents, plus d'informations sont fournies, mais plus de jetons sont consommés", + "drag_file": "Glissez-déposez un fichier ici", + "edit_remark": "Modifier la remarque", + "edit_remark_placeholder": "Entrez le contenu de la remarque", + "empty": "Aucune base de connaissances pour le moment", + "file_hint": "Format supporté : {{file_types}}", + "index_all": "Indexer tout", + "index_cancelled": "L'indexation a été annulée", + "index_started": "L'indexation a commencé", + "invalid_url": "URL invalide", + "model_info": "Informations sur le modèle", + "no_bases": "Aucune base de connaissances pour le moment", + "no_match": "Aucun contenu de la base de connaissances correspondant", + "no_provider": "Le fournisseur de modèle de la base de connaissances est perdu, cette base de connaissances ne sera plus supportée, veuillez en créer une nouvelle", + "not_set": "Non défini", + "not_support": "Le moteur de base de données de la base de connaissances a été mis à jour, cette base de connaissances ne sera plus supportée, veuillez en créer une nouvelle", + "notes": "Notes", + "notes_placeholder": "Entrez des informations supplémentaires ou un contexte pour cette base de connaissances...", + "rename": "Renommer", + "search": "Rechercher dans la base de connaissances", + "search_placeholder": "Entrez votre requête", + "settings": "Paramètres de la base de connaissances", + "sitemap_placeholder": "Entrez l'URL du plan du site", + "sitemaps": "Sites web", + "source": "Source", + "status": "Statut", + "status_completed": "Terminé", + "status_failed": "Échec", + "status_new": "Ajouté", + "status_pending": "En attente", + "status_processing": "En cours de traitement", + "threshold": "Seuil de similarité", + "threshold_placeholder": "Non défini", + "threshold_too_large_or_small": "Le seuil ne peut pas être supérieur à 1 ou inférieur à 0", + "threshold_tooltip": "Utilisé pour mesurer la pertinence entre la question de l'utilisateur et le contenu de la base de connaissances (0-1)", + "topN": "Nombre de résultats retournés", + "topN_placeholder": "Non défini", + "topN__too_large_or_small": "Le nombre de résultats retournés ne peut pas être supérieur à 100 ou inférieur à 1", + "topN_tooltip": "Nombre de résultats de correspondance retournés, plus le chiffre est élevé, plus il y a de résultats de correspondance, mais plus de jetons sont consommés", + "title": "Base de connaissances", + "url_added": "URL ajoutée", + "url_placeholder": "Entrez l'URL, plusieurs URLs séparées par des sauts de ligne", + "urls": "URLs" + }, + "languages": { + "arabic": "Arabe", + "chinese": "Chinois simplifié", + "chinese-traditional": "Chinois traditionnel", + "english": "Anglais", + "french": "Français", + "german": "Allemand", + "italian": "Italien", + "japanese": "Japonais", + "korean": "Coréen", + "portuguese": "Portugais", + "russian": "Russe", + "spanish": "Espagnol" + }, + "lmstudio": { + "keep_alive_time.description": "Temps pendant lequel le modèle reste en mémoire après la conversation (par défaut : 5 minutes)", + "keep_alive_time.placeholder": "minutes", + "keep_alive_time.title": "Maintenir le temps d'activité", + "title": "LM Studio" + }, + "mermaid": { + "download": { + "png": "Télécharger PNG", + "svg": "Télécharger SVG" + }, + "resize": { + "zoom-in": "Approfondir", + "zoom-out": "Éloigner" + }, + "tabs": { + "preview": "Aperçu", + "source": "Code source" + }, + "title": "Diagramme Mermaid" + }, + "message": { + "attachments": { + "pasted_text": "Fichier Presse-papiers", + "pasted_image": "Image Presse-papiers" + }, + "tools": { + "invoking": "En cours d'exécution", + "completed": "Terminé" + }, + "api.check.model.title": "Veuillez sélectionner le modèle à tester", + "api.connection.failed": "La connexion a échoué", + "api.connection.success": "La connexion a réussi", + "assistant.added.content": "L'assistant a été ajouté avec succès", + "backup.failed": "La sauvegarde a échoué", + "backup.start.success": "La sauvegarde a commencé", + "backup.success": "La sauvegarde a réussi", + "chat.completion.paused": "La conversation est en pause", + "citations": "Citations", + "copied": "Copié", + "copy.success": "Copie réussie", + "copy.failed": "La copie a échoué", + "error.chunk_overlap_too_large": "Le chevauchement de segment ne peut pas dépasser la taille du segment", + "error.dimension_too_large": "Les dimensions du contenu sont trop grandes", + "error.enter.api.host": "Veuillez entrer votre adresse API", + "error.enter.api.key": "Veuillez entrer votre clé API", + "error.enter.model": "Veuillez sélectionner un modèle", + "error.enter.name": "Veuillez entrer le nom de la base de connaissances", + "error.get_embedding_dimensions": "Impossible d'obtenir les dimensions d'encodage", + "error.invalid.api.host": "Adresse API invalide", + "error.invalid.api.key": "Clé API invalide", + "error.invalid.enter.model": "Veuillez sélectionner un modèle", + "error.invalid.proxy.url": "URL proxy invalide", + "error.invalid.webdav": "Configuration WebDAV invalide", + "error.markdown.export.preconf": "Échec de l'exportation vers un fichier Markdown dans le chemin prédéfini", + "error.markdown.export.specified": "Échec de l'exportation vers un fichier Markdown", + "error.notion.export": "Erreur lors de l'exportation vers Notion, veuillez vérifier l'état de la connexion et la configuration dans la documentation", + "error.notion.no_api_key": "Aucune clé API Notion ou ID de base de données Notion configurée", + "error.yuque.export": "Erreur lors de l'exportation vers Yuque, veuillez vérifier l'état de la connexion et la configuration dans la documentation", + "error.yuque.no_config": "Aucun jeton Yuque ou URL de base de connaissances configuré", + "error.joplin.no_config": "Aucun jeton d'autorisation Joplin ou URL configuré", + "error.joplin.export": "Échec de l'exportation vers Joplin, veuillez vous assurer que Joplin est en cours d'exécution et vérifier l'état de la connexion ou la configuration", + "group.delete.content": "La suppression du groupe de messages supprimera les questions des utilisateurs et toutes les réponses des assistants", + "group.delete.title": "Supprimer le groupe de messages", + "ignore.knowledge.base": "Mode en ligne activé, la base de connaissances est ignorée", + "info.notion.block_reach_limit": "La conversation est trop longue, exportation par pages vers Notion", + "loading.notion.preparing": "Préparation pour l'exportation vers Notion...", + "loading.notion.exporting_progress": "Exportation vers Notion en cours ({{current}}/{{total}})...", + "mention.title": "Changer le modèle de réponse", + "message.code_style": "Style de code", + "message.delete.content": "Êtes-vous sûr de vouloir supprimer ce message?", + "message.delete.title": "Supprimer le message", + "message.multi_model_style": "Style de réponse multi-modèle", + "message.multi_model_style.fold": "Mode étiquette", + "message.multi_model_style.fold.compress": "Basculer vers une disposition compacte", + "message.multi_model_style.fold.expand": "Basculer vers une disposition détaillée", + "message.multi_model_style.grid": "Disposition en carte", + "message.multi_model_style.horizontal": "Disposition horizontale", + "message.multi_model_style.vertical": "Disposition verticale", + "message.style": "Style du message", + "message.style.bubble": "Bulles", + "message.style.plain": "Simplifié", + "regenerate.confirm": "La régénération va remplacer le message actuel", + "reset.confirm.content": "Êtes-vous sûr de vouloir réinitialiser toutes les données?", + "reset.double.confirm.content": "Toutes vos données seront perdues, si aucune sauvegarde n'a été effectuée, elles ne pourront pas être récupérées. Êtes-vous sûr de vouloir continuer?", + "reset.double.confirm.title": "Perte de données!!!", + "restore.failed": "La restauration a échoué", + "restore.success": "La restauration a réussi", + "save.success.title": "Enregistrement réussi", + "searching": "Recherche en ligne en cours...", + "success.markdown.export.preconf": "Exportation réussie vers un fichier Markdown dans le chemin prédéfini", + "success.markdown.export.specified": "Exportation réussie vers un fichier Markdown", + "success.notion.export": "Exportation réussie vers Notion", + "success.yuque.export": "Exportation réussie vers Yuque", + "success.joplin.export": "Exportation réussie vers Joplin", + "switch.disabled": "Veuillez attendre la fin de la réponse actuelle avant de procéder", + "topic.added": "Thème ajouté avec succès", + "upgrade.success.button": "Redémarrer", + "upgrade.success.content": "Redémarrez pour finaliser la mise à jour", + "upgrade.success.title": "Mise à jour réussie", + "warn.notion.exporting": "Exportation en cours vers Notion, veuillez ne pas faire plusieurs demandes d'exportation!", + "warning.rate.limit": "Vous envoyez trop souvent, veuillez attendre {{seconds}} secondes avant de réessayer" + }, + "minapp": { + "sidebar.add.title": "Ajouter à la barre latérale", + "sidebar.remove.title": "Supprimer de la barre latérale", + "title": "Mini-programme" + }, + "miniwindow": { + "clipboard": { + "empty": "Presse-papiers vide" + }, + "feature": { + "chat": "Répondre à cette question", + "explanation": "Explication", + "summary": "Résumé du contenu", + "translate": "Traduction de texte" + }, + "footer": { + "copy_last_message": "Appuyez sur C pour copier", + "esc": "Appuyez sur ESC {{action}}", + "esc_back": "Revenir en arrière", + "esc_close": "Fermer la fenêtre" + }, + "input": { + "placeholder": { + "empty": "Demander à {{model}} pour obtenir de l'aide...", + "title": "Que souhaitez-vous faire avec le texte ci-dessous" + } + } + }, + "models": { + "parameter_type": { + "boolean": "Valeur booléenne", + "json": "JSON", + "number": "Chiffre", + "string": "Texte" + }, + "type": { + "embedding": "Incorporation", + "reasoning": "Raisonnement", + "select": "Sélectionnez le type de modèle", + "text": "Texte", + "vision": "Image", + "function_calling": "Appel de fonction" + }, + "add_parameter": "Ajouter un paramètre", + "all": "Tout", + "custom_parameters": "Paramètres personnalisés", + "dimensions": "{{dimensions}} dimensions", + "edit": "Éditer le modèle", + "embedding": "Incrustation", + "embedding_model": "Modèle d'incrustation", + "embedding_model_tooltip": "Cliquez sur le bouton Gérer dans Paramètres -> Services de modèles pour ajouter", + "rerank_model": "Modèle de réordonnancement", + "rerank_model_tooltip": "Cliquez sur le bouton Gérer dans Paramètres -> Services de modèles pour ajouter", + "rerank_model_support_provider": "Le modèle de réordonnancement ne prend actuellement en charge que certains fournisseurs ({{provider}})", + "free": "Gratuit", + "no_matches": "Aucun modèle disponible", + "parameter_name": "Nom du paramètre", + "pinned": "Épinglé", + "reasoning": "Raisonnement", + "search": "Rechercher un modèle...", + "stream_output": "Sortie en flux", + "function_calling": "Appel de fonction", + "vision": "Vision", + "websearch": "Recherche web" + }, + "navbar": { + "expand": "Agrandir la boîte de dialogue", + "hide_sidebar": "Cacher la barre latérale", + "show_sidebar": "Afficher la barre latérale" + }, + "ollama": { + "keep_alive_time.description": "Le temps pendant lequel le modèle reste en mémoire après la conversation (par défaut : 5 minutes)", + "keep_alive_time.placeholder": "minutes", + "keep_alive_time.title": "Temps de maintien actif", + "title": "Ollama" + }, + "paintings": { + "button.delete.image": "Supprimer l'image", + "button.delete.image.confirm": "Êtes-vous sûr de vouloir supprimer cette image?", + "button.new.image": "Nouvelle image", + "guidance_scale": "Échelle de guidance", + "guidance_scale_tip": "Aucune guidance du classificateur. Contrôle le niveau d'obéissance du modèle aux mots-clés lors de la recherche d'images pertinentes", + "image.size": "Taille de l'image", + "inference_steps": "Étapes d'inférence", + "inference_steps_tip": "Nombre d'étapes d'inférence à effectuer. Plus il y a d'étapes, meilleure est la qualité mais plus c'est long", + "negative_prompt": "Prompt négatif", + "negative_prompt_tip": "Décrivez ce que vous ne voulez pas voir dans l'image", + "number_images": "Nombre d'images générées", + "number_images_tip": "Le nombre d'images générées en une seule fois (1-4)", + "prompt_enhancement": "Amélioration des prompts", + "prompt_enhancement_tip": "Activez pour réécrire le prompt en une version détaillée et adaptée au modèle", + "prompt_placeholder": "Décrivez l'image que vous souhaitez créer, par exemple : un lac paisible, le soleil couchant, avec des montagnes à l'horizon", + "regenerate.confirm": "Cela va remplacer les images générées, voulez-vous continuer?", + "seed": "Graine aléatoire", + "seed_tip": "La même graine et le même prompt peuvent générer des images similaires", + "title": "Image" + }, + "plantuml": { + "download": { + "failed": "Échec du téléchargement, veuillez vérifier votre connexion Internet", + "png": "Télécharger PNG", + "svg": "Télécharger SVG" + }, + "tabs": { + "preview": "Aperçu", + "source": "Code source" + }, + "title": "Diagramme PlantUML" + }, + "prompts": { + "explanation": "Aidez-moi à expliquer ce concept", + "summarize": "Aidez-moi à résumer ce passage", + "title": "Vous êtes un assistant conversant. Résumez la conversation de l'utilisateur en un titre de 10 mots ou moins. La langue du titre doit correspondre à la langue principale de l'utilisateur, sans utiliser de ponctuation ni de symboles spéciaux" + }, + "provider": { + "aihubmix": "AiHubMix", + "anthropic": "Anthropic", + "azure-openai": "Azure OpenAI", + "baichuan": "BaiChuan", + "baidu-cloud": "Baidu Cloud Qianfan", + "dashscope": "AliCloud BaiLian", + "deepseek": "DeepSeek", + "dmxapi": "DMXAPI", + "doubao": "Huoshan Engine", + "fireworks": "Fireworks", + "gemini": "Gemini", + "gitee-ai": "Gitee IA", + "github": "GitHub Modèles", + "graphrag-kylin-mountain": "GraphRAG", + "grok": "Grok", + "groq": "Groq", + "hunyuan": "Tencent HunYuan", + "hyperbolic": "Hyperbolique", + "infini": "Sans Frontières Céleste", + "jina": "Jina", + "lmstudio": "Studio LM", + "minimax": "MiniMax", + "mistral": "Mistral", + "modelscope": "ModelScope MoDa", + "moonshot": "Face Sombre de la Lune", + "nvidia": "NVIDIA", + "o3": "O3", + "ocoolai": "ocoolIA", + "ollama": "Ollama", + "openai": "OpenAI", + "openrouter": "OpenRouter", + "perplexity": "Perplexité", + "ppio": "PPIO Cloud Piou", + "qwenlm": "QwenLM", + "silicon": "Silicium Fluide", + "stepfun": "Échelon Étoile", + "tencent-cloud-ti": "Tencent Cloud TI", + "together": "Ensemble", + "xirang": "CTyun XiRang", + "yi": "ZéroUnInfini", + "zhinao": "360 ZhiNao", + "zhipu": "ZhiPu IA", + "copilot": "GitHub Copilote", + "gpustack": "GPUStack", + "alayanew": "Alaya NeW" + }, + "restore": { + "progress": { + "completed": "Restauration terminée", + "copying_files": "Copie des fichiers... {{progress}}%", + "extracting": "Décompression de la sauvegarde...", + "preparing": "Préparation de la restauration...", + "reading_data": "Lecture des données...", + "title": "Progression de la restauration" + }, + "confirm": "Êtes-vous sûr de vouloir restaurer les données ?", + "confirm.button": "Sélectionnez le fichier de sauvegarde", + "content": "L'opération de restauration va utiliser les données de sauvegarde pour remplacer toutes les données d'applications actuelles. Veuillez noter que le processus de restauration peut prendre un certain temps. Merci de votre patience.", + "title": "Restauration des données" + }, + "gpustack": { + "keep_alive_time.description": "Le modèle reste en mémoire pendant ce temps (par défaut : 5 minutes)", + "keep_alive_time.placeholder": "minutes", + "keep_alive_time.title": "Temps de maintien actif", + "title": "GPUStack" + }, + "settings": { + "data": { + "clear_cache": { + "button": "Effacer le cache", + "confirm": "L'effacement du cache supprimera les données du cache de l'application, y compris les données des mini-programmes. Cette action ne peut pas être annulée, voulez-vous continuer ?", + "error": "Échec de l'effacement du cache", + "success": "Le cache a été effacé avec succès", + "title": "Effacer le cache" + }, + "notion.check": { + "button": "Vérifier", + "empty_api_key": "Clé API non configurée", + "empty_database_id": "ID de la base de données non configuré", + "error": "Anomalie de connexion, veuillez vérifier votre réseau et si la clé API et l'ID de la base de données sont corrects", + "fail": "Échec de la connexion, veuillez vérifier votre réseau et si la clé API et l'ID de la base de données sont corrects", + "success": "Connexion réussie" + }, + "webdav": { + "autoSync": "Synchronisation automatique", + "autoSync.off": "Désactiver", + "backup.button": "Sauvegarder sur WebDAV", + "host": "Adresse WebDAV", + "host.placeholder": "http://localhost:8080", + "hour_interval_one": "{{count}} heure", + "hour_interval_other": "{{count}} heures", + "lastSync": "Dernière sauvegarde", + "minute_interval_one": "{{count}} minute", + "minute_interval_other": "{{count}} minutes", + "noSync": "Attendre la prochaine sauvegarde", + "password": "Mot de passe WebDAV", + "path": "Chemin WebDAV", + "path.placeholder": "/backup", + "backup.modal.title": "Sauvegarder sur WebDAV", + "backup.modal.filename.placeholder": "Entrez le nom du fichier de sauvegarde", + "restore.modal.title": "Restaurer depuis WebDAV", + "restore.modal.select.placeholder": "Sélectionnez le fichier de sauvegarde à restaurer", + "restore.confirm.title": "Confirmer la restauration", + "restore.confirm.content": "La restauration depuis WebDAV écrasera les données actuelles, voulez-vous continuer ?", + "restore.button": "Restaurer depuis WebDAV", + "restore.content": "La restauration depuis WebDAV écrasera les données actuelles, voulez-vous continuer ?", + "restore.title": "Restaurer depuis WebDAV", + "syncError": "Erreur de sauvegarde", + "syncStatus": "Statut de la sauvegarde", + "title": "WebDAV", + "user": "Nom d'utilisateur WebDAV" + }, + "yuque": { + "check": { + "button": "Vérifier", + "empty_repo_url": "Veuillez d'abord saisir l'URL de la base de connaissances", + "empty_token": "Veuillez d'abord saisir le Token Yuyuè", + "fail": "La validation de la connexion Yuyuè a échoué", + "success": "La validation de la connexion Yuyuè a réussi" + }, + "help": "Obtenir le Token Yuque", + "repo_url": "URL de la base de connaissances", + "repo_url_placeholder": "https://www.yuque.com/nom_utilisateur/xxx", + "title": "Configuration Yuque", + "token": "Token Yuque", + "token_placeholder": "Veuillez entrer le Token Yuque" + }, + "obsidian": { + "title": "Configuration d'Obsidian", + "vault": "Coffre-fort", + "vault_placeholder": "Veuillez entrer le nom du coffre-fort", + "folder": "Dossier", + "folder_placeholder": "Veuillez entrer le nom du dossier", + "tags": "Étiquettes globales", + "tags_placeholder": "Veuillez entrer le nom de l'étiquette, plusieurs étiquettes sont séparées par une virgule anglaise, Obsidian ne peut pas utiliser uniquement des chiffres" + }, + "joplin": { + "check": { + "button": "Vérifier", + "empty_url": "Veuillez d'abord entrer l'URL de surveillance du service de découpage Joplin", + "empty_token": "Veuillez d'abord entrer le jeton d'autorisation Joplin", + "fail": "La validation de la connexion Joplin a échoué", + "success": "La validation de la connexion Joplin a réussi" + }, + "title": "Configuration de Joplin", + "help": "Dans les options de Joplin, activez le service de découpage de pages web (pas besoin d'installer une extension de navigateur), confirmez le numéro de port et copiez le jeton d'autorisation", + "url": "URL surveillée par le service de découpage de Joplin", + "url_placeholder": "http://127.0.0.1:41184/", + "token": "Jeton d'autorisation de Joplin", + "token_placeholder": "Veuillez entrer le jeton d'autorisation de Joplin" + }, + "app_data": "Données de l'application", + "app_knowledge": "Fichier de base de connaissances", + "app_knowledge.button.delete": "Supprimer le fichier", + "app_knowledge.remove_all": "Supprimer les fichiers de la base de connaissances", + "app_knowledge.remove_all_confirm": "La suppression des fichiers de la base de connaissances libérera de l'espace de stockage, mais ne supprimera pas les données vectorisées de la base de connaissances. Après la suppression, vous ne pourrez plus ouvrir les fichiers sources. Souhaitez-vous continuer ?", + "app_knowledge.remove_all_success": "Fichiers supprimés avec succès", + "app_logs": "Journaux de l'application", + "data.title": "Répertoire des données", + "hour_interval_one": "{{count}} heure", + "hour_interval_other": "{{count}} heures", + "minute_interval_one": "{{count}} minute", + "minute_interval_other": "{{count}} minutes", + "markdown_export.title": "Exporter en Markdown", + "markdown_export.path": "Chemin d'exportation par défaut", + "markdown_export.path_placeholder": "Chemin d'exportation", + "markdown_export.select": "Sélectionner", + "markdown_export.help": "Si rempli, les exports seront automatiquement sauvegardés à ce chemin ; sinon, une boîte de dialogue de sauvegarde s'affichera.", + "markdown_export.force_dollar_math.title": "Forcer l'utilisation de $$ pour marquer les formules LaTeX", + "markdown_export.force_dollar_math.help": "Lorsque cette option est activée, l'exportation en Markdown utilisera $$ pour marquer les formules LaTeX. Note : Cette option affecte également toutes les méthodes d'exportation en Markdown, comme Notion, YuQue, etc.", + "notion.api_key": "Clé API Notion", + "notion.api_key_placeholder": "Veuillez entrer votre clé API Notion", + "notion.auto_split": "Division automatique lors de l'exportation des conversations", + "notion.auto_split_tip": "Divise automatiquement les sujets longs en plusieurs pages lors de l'exportation vers Notion", + "notion.database_id": "ID de la base de données Notion", + "notion.database_id_placeholder": "Veuillez entrer l'ID de la base de données Notion", + "notion.help": "Documentation de configuration Notion", + "notion.page_name_key": "Nom du champ du titre de la page", + "notion.page_name_key_placeholder": "Veuillez entrer le nom du champ du titre de la page, par défaut Name", + "notion.split_size": "Taille de la division automatique", + "notion.split_size_help": "Les utilisateurs gratuits de Notion sont invités à définir cette valeur à 90, tandis que les utilisateurs premium sont invités à définir cette valeur à 24990. La valeur par défaut est de 90.", + "notion.split_size_placeholder": "Veuillez entrer la limite de blocs par page (par défaut 90)", + "notion.title": "Configuration Notion", + "title": "Paramètres des données" + }, + "mcp": { + "npx_list": { + "title": "Liste des packages NPX", + "desc": "Rechercher et ajouter un package npm en tant que service MCP", + "scope_placeholder": "Entrez le scope npm (par exemple @votre-org)", + "search": "Rechercher", + "package_name": "Nom du package", + "description": "Description", + "usage": "Utilisation", + "npm": "NPM", + "version": "Version", + "actions": "Actions", + "scope_required": "Veuillez entrer le scope npm", + "no_packages": "Aucun package trouvé", + "search_error": "La recherche a échoué" + }, + "actions": "Actions", + "active": "Activer", + "addServer": "Ajouter un serveur", + "addSuccess": "Serveur ajouté avec succès", + "addError": "Échec de l'ajout du serveur", + "args": "Arguments", + "argsTooltip": "Chaque argument sur une ligne", + "baseUrlTooltip": "Adresse URL distante", + "command": "Commande", + "commandRequired": "Veuillez entrer une commande", + "config_description": "Configurer le modèle du protocole de contexte du serveur", + "confirmDelete": "Supprimer le serveur", + "confirmDeleteMessage": "Êtes-vous sûr de vouloir supprimer ce serveur ?", + "deleteError": "Échec de la suppression du serveur", + "deleteSuccess": "Serveur supprimé avec succès", + "description": "Description", + "duplicateName": "Un serveur portant le même nom existe déjà", + "editServer": "Modifier le serveur", + "env": "Variables d'environnement", + "envTooltip": "Format : CLÉ=valeur, une par ligne", + "findMore": "Plus de serveurs MCP", + "name": "Nom", + "nameRequired": "Veuillez entrer le nom du serveur", + "noServers": "Aucun serveur configuré", + "serverPlural": "Serveurs", + "serverSingular": "Serveur", + "title": "Serveurs MCP", + "type": "Type", + "updateSuccess": "Serveur mis à jour avec succès", + "updateError": "Échec de la mise à jour du serveur", + "url": "URL", + "toggleError": "Échec du basculement", + "dependenciesInstalling": "Installation des dépendances en cours...", + "dependenciesInstall": "Installer les dépendances", + "installSuccess": "Dépendances installées avec succès", + "installError": "Échec de l'installation des dépendances", + "missingDependencies": "Manquantes, veuillez les installer pour continuer", + "install": "Installer", + "editJson": "Modifier le JSON", + "jsonModeHint": "Modifier la représentation JSON de la configuration des serveurs MCP. Assurez-vous que le format est correct avant de sauvegarder.", + "jsonFormatError": "Erreur de format JSON", + "jsonSaveSuccess": "Configuration JSON sauvegardée", + "jsonSaveError": "Échec de la sauvegarde de la configuration JSON" + }, + "provider": { + "copilot": { + "tooltip": "Pour utiliser Github Copilot, vous devez vous connecter à Github", + "description": "Votre compte Github doit souscrire à Copilot", + "login": "Se connecter à Github", + "connect": "Connectez-vous à Github", + "logout": "Déconnexion de Github", + "auth_success_title": "Authentification réussie", + "code_generated_title": "Obtenir le code Device", + "code_generated_desc": "Veuillez copier le code Device dans le lien du navigateur ci-dessous", + "code_failed": "Échec de l'obtention du code Device, veuillez réessayer", + "auth_success": "Authentification Github Copilot réussie", + "auth_failed": "Échec de l'authentification Github Copilot", + "logout_success": "Déconnexion réussie", + "logout_failed": "Échec de la déconnexion, veuillez réessayer", + "confirm_title": "Avertissement de risque", + "confirm_login": "L'utilisation excessive peut entraîner la suspension de votre compte Github, utilisez avec prudence!!!!", + "rate_limit": "Limite de taux", + "custom_headers": "Entêtes de requête personnalisées", + "headers_description": "Entêtes de requête personnalisées (format json)", + "expand": "Développer", + "model_setting": "Paramètres du modèle", + "invalid_json": "Format JSON incorrect", + "open_verification_first": "Cliquez d'abord sur le lien ci-dessus pour accéder à la page de vérification" + }, + "add.name": "Nom du fournisseur", + "add.name.placeholder": "Par exemple OpenAI", + "add.title": "Ajouter un fournisseur", + "add.type": "Type de fournisseur", + "api.url.preview": "Aperçu : {{url}}", + "api.url.reset": "Réinitialiser", + "api.url.tip": "Ignorer la version v1 si terminé par /, forcer l'utilisation de l'adresse d'entrée si terminé par #", + "api_host": "Adresse API", + "api_key": "Clé API", + "api_key.tip": "Séparer les clés multiples par des virgules", + "api_version": "Version API", + "charge": "Recharger", + "check": "Vérifier", + "check_all_keys": "Vérifier toutes les clés", + "check_multiple_keys": "Vérifier plusieurs clés API", + "delete.content": "Êtes-vous sûr de vouloir supprimer ce fournisseur de modèles ?", + "delete.title": "Supprimer le fournisseur", + "docs_check": "Voir", + "docs_more_details": "Obtenir plus de détails", + "get_api_key": "Cliquez ici pour obtenir une clé", + "no_models": "Veuillez ajouter un modèle avant de vérifier la connexion API", + "not_checked": "Non vérifié", + "remove_duplicate_keys": "Supprimer les clés en double", + "remove_invalid_keys": "Supprimer les clés invalides", + "search": "Rechercher une plateforme de modèles...", + "search_placeholder": "Rechercher un ID ou un nom de modèle", + "title": "Services de modèles", + "is_not_support_array_content": "Activer le mode compatible" + }, + "proxy": { + "mode": { + "custom": "Proxy personnalisé", + "none": "Ne pas utiliser de proxy", + "system": "Proxy système", + "title": "Mode de proxy" + }, + "title": "Paramètres du proxy" + }, + "quickAssistant": { + "click_tray_to_show": "Cliquez sur l'icône dans la barre d'état système pour démarrer", + "enable_quick_assistant": "Activer l'assistant rapide", + "title": "Assistant Rapide", + "use_shortcut_to_show": "Cliquez avec le bouton droit sur l'icône dans la barre d'état système ou utilisez un raccourci clavier pour démarrer", + "read_clipboard_at_startup": "Lire le presse-papiers au démarrage" + }, + "shortcuts": { + "action": "Action", + "clear_shortcut": "Effacer raccourci clavier", + "clear_topic": "Vider les messages", + "copy_last_message": "Copier le dernier message", + "key": "Touche", + "mini_window": "Assistant rapide", + "new_topic": "Nouveau sujet", + "press_shortcut": "Appuyer sur raccourci clavier", + "reset_defaults": "Réinitialiser raccourcis par défaut", + "reset_defaults_confirm": "Êtes-vous sûr de vouloir réinitialiser tous les raccourcis clavier ?", + "reset_to_default": "Réinitialiser aux valeurs par défaut", + "search_message": "Rechercher un message", + "show_app": "Afficher l'application", + "show_settings": "Ouvrir les paramètres", + "title": "Raccourcis", + "toggle_new_context": "Effacer le contexte", + "toggle_show_assistants": "Basculer l'affichage des assistants", + "toggle_show_topics": "Basculer l'affichage des sujets", + "zoom_in": "Agrandir l'interface", + "zoom_out": "Réduire l'interface", + "zoom_reset": "Réinitialiser le zoom" + }, + "websearch": { + "tavily": { + "api_key": "Clé API Tavily", + "api_key.placeholder": "Veuillez entrer la clé API Tavily", + "description": "Tavily est un moteur de recherche conçu spécifiquement pour les agents IA, offrant des résultats en temps réel, précis, des suggestions de requêtes intelligentes et des capacités de recherche approfondie", + "title": "Tavily" + }, + "blacklist": "Liste noire", + "blacklist_description": "Les résultats des sites web suivants ne s'afficheront pas dans les résultats de recherche", + "blacklist_tooltip": "Veuillez utiliser le format suivant (séparé par des retours à la ligne)\"network.comnhttps://www.example.comnhttps://example.comn*://*.example.com", + "check": "Vérifier", + "check_success": "Vérification réussie", + "check_failed": "Échec de la vérification", + "get_api_key": "Cliquez ici pour obtenir la clé", + "no_provider_selected": "Veuillez sélectionner un fournisseur de recherche avant de vérifier", + "search_max_result": "Nombre de résultats de recherche", + "search_provider": "Fournisseur de recherche", + "search_provider_placeholder": "Sélectionnez un fournisseur de recherche", + "search_result_default": "Par défaut", + "search_with_time": "Recherche avec date", + "enhance_mode": "Mode de recherche amélioré", + "enhance_mode_tooltip": "Utilisez le modèle par défaut pour extraire les mots-clés avant de rechercher", + "title": "Recherche sur Internet" + }, + "about": "À propos de nous", + "about.checkingUpdate": "Vérification des mises à jour en cours...", + "about.checkUpdate": "Vérifier les mises à jour", + "about.checkUpdate.available": "Mettre à jour maintenant", + "about.contact.button": "Courriel", + "about.contact.title": "Contactez-nous par courriel", + "about.description": "Un assistant IA conçu pour les créateurs", + "about.downloading": "Téléchargement de la mise à jour en cours...", + "about.feedback.button": "Faire un retour", + "about.feedback.title": "Retour d'information", + "about.license.button": "Afficher", + "about.license.title": "Licence", + "about.releases.button": "Afficher", + "about.releases.title": "Journal des mises à jour", + "about.social.title": "Comptes sociaux", + "about.title": "À propos de nous", + "about.updateAvailable": "Nouvelle version disponible {{version}}", + "about.updateError": "Erreur lors de la mise à jour", + "about.updateNotAvailable": "Votre logiciel est déjà à jour", + "about.website.button": "Visiter le site web", + "about.website.title": "Site web officiel", + "advanced.auto_switch_to_topics": "Basculer automatiquement vers les sujets", + "advanced.title": "Paramètres avancés", + "assistant": "Assistant par défaut", + "assistant.model_params": "Paramètres du modèle", + "assistant.show.icon": "Afficher l'icône du modèle", + "assistant.title": "Assistant par défaut", + "display.assistant.title": "Paramètres de l'assistant", + "display.custom.css": "CSS personnalisé", + "display.custom.css.cherrycss": "Obtenir depuis cherrycss.com", + "display.custom.css.placeholder": "/* Écrire votre CSS personnalisé ici */", + "display.minApp.disabled": "Applications minimisées masquées", + "display.minApp.empty": "Glissez les applications minimisées à masquer ici", + "display.minApp.title": "Paramètres d'affichage des applications minimisées", + "display.minApp.visible": "Applications minimisées affichées", + "display.sidebar.chat.hiddenMessage": "L'assistant est une fonction de base et ne peut pas être masquée", + "display.sidebar.disabled": "Icônes masquées", + "display.sidebar.empty": "Glissez les fonctions à masquer ici", + "display.sidebar.files.icon": "Afficher l'icône des fichiers", + "display.sidebar.knowledge.icon": "Afficher l'icône des connaissances", + "display.sidebar.minapp.icon": "Afficher l'icône des applications minimisées", + "display.sidebar.painting.icon": "Afficher l'icône de peinture", + "display.sidebar.title": "Paramètres de la barre latérale", + "display.sidebar.translate.icon": "Afficher l'icône de traduction", + "display.sidebar.visible": "Icônes affichées", + "display.title": "Paramètres d'affichage", + "display.topic.title": "Paramètres de sujet", + "font_size.title": "Taille de police des messages", + "general": "Paramètres généraux", + "general.avatar.reset": "Réinitialiser l'avatar", + "general.backup.button": "Sauvegarder", + "general.backup.title": "Sauvegarde et restauration des données", + "general.display.title": "Paramètres d'affichage", + "general.emoji_picker": "Sélectionneur d'émoticônes", + "general.image_upload": "Téléchargement d'images", + "general.manually_check_update.title": "Désactiver la vérification des mises à jour", + "general.reset.button": "Réinitialiser", + "general.reset.title": "Réinitialiser les données", + "general.restore.button": "Restaurer", + "general.title": "Paramètres généraux", + "general.user_name": "Nom d'utilisateur", + "general.user_name.placeholder": "Entrez votre nom d'utilisateur", + "general.view_webdav_settings": "Voir les paramètres WebDAV", + "input.auto_translate_with_space": "Traduire en frappant rapidement 3 fois l'espace", + "input.target_language": "Langue cible", + "input.target_language.chinese": "Chinois simplifié", + "input.target_language.chinese-traditional": "Chinois traditionnel", + "input.target_language.english": "Anglais", + "input.target_language.japanese": "Japonais", + "input.target_language.russian": "Russe", + "messages.divider": "Séparateur de messages", + "messages.navigation": "Bouton de navigation des conversations", + "messages.navigation.none": "Ne pas afficher", + "messages.navigation.buttons": "Boutons haut/bas", + "messages.navigation.anchor": "Ancre de conversation", + "messages.grid_columns": "Nombre de colonnes de la grille de messages", + "messages.grid_popover_trigger": "Déclencheur de popover de la grille", + "messages.grid_popover_trigger.click": "Afficher au clic", + "messages.grid_popover_trigger.hover": "Afficher au survol", + "messages.input.paste_long_text_as_file": "Coller le texte long sous forme de fichier", + "messages.input.paste_long_text_threshold": "Seuil de longueur de texte", + "messages.input.send_shortcuts": "Raccourcis d'envoi", + "messages.input.show_estimated_tokens": "Afficher le nombre estimatif de tokens", + "messages.input.title": "Paramètres d'entrée", + "messages.markdown_rendering_input_message": "Rendu Markdown des messages d'entrée", + "messages.math_engine": "Moteur de formules mathématiques", + "messages.metrics": "Latence initiale {{time_first_token_millsec}}ms | Vitesse de tokenisation {{token_speed}} tokens/s", + "messages.model.title": "Paramètres du modèle", + "messages.title": "Paramètres des messages", + "messages.use_serif_font": "Utiliser une police serif", + "model": "Modèle par défaut", + "models.add.add_model": "Ajouter un modèle", + "models.add.group_name": "Nom du groupe", + "models.add.group_name.placeholder": "Par exemple, ChatGPT", + "models.add.group_name.tooltip": "Par exemple, ChatGPT", + "models.add.model_id": "ID du modèle", + "models.add.model_id.placeholder": "Obligatoire, par exemple gpt-3.5-turbo", + "models.add.model_id.tooltip": "Par exemple, gpt-3.5-turbo", + "models.add.model_name": "Nom du modèle", + "models.add.model_name.placeholder": "Par exemple, GPT-3.5", + "models.check.all": "Tous", + "models.check.all_models_passed": "Tous les modèles ont passé les tests", + "models.check.button_caption": "Test de santé", + "models.check.disabled": "Désactivé", + "models.check.enable_concurrent": "Activer les tests simultanés", + "models.check.enabled": "Activé", + "models.check.failed": "Échec", + "models.check.keys_status_count": "Passé : {{count_passed}} clés, échoué : {{count_failed}} clés", + "models.check.model_status_summary": "{{provider}} : {{count_passed}} modèles ont passé le test de santé ({{count_partial}} modèles ne sont pas accessibles avec certains clés), {{count_failed}} modèles ne sont pas accessibles.", + "models.check.no_api_keys": "Aucune clé API trouvée, veuillez en ajouter une première.", + "models.check.passed": "Passé", + "models.check.select_api_key": "Sélectionner la clé API à utiliser :", + "models.check.single": "Unique", + "models.check.start": "Commencer", + "models.check.title": "Test de santé des modèles", + "models.check.use_all_keys": "Utiliser toutes les clés", + "models.default_assistant_model": "Modèle d'assistant par défaut", + "models.default_assistant_model_description": "Modèle utilisé pour créer de nouveaux assistants, si aucun modèle n'est défini pour l'assistant, ce modèle sera utilisé", + "models.empty": "Aucun modèle", + "models.enable_topic_naming": "Renommage automatique des sujets", + "models.manage.add_whole_group": "Ajouter tout le groupe", + "models.manage.remove_whole_group": "Supprimer tout le groupe", + "models.topic_naming_model": "Modèle de renommage des sujets", + "models.topic_naming_model_description": "Modèle utilisé pour le renommage automatique des nouveaux sujets", + "models.topic_naming_model_setting_title": "Paramètres du modèle de renommage des sujets", + "models.topic_naming_prompt": "Mot-clé de renommage des sujets", + "models.translate_model": "Modèle de traduction", + "models.translate_model_description": "Modèle utilisé pour le service de traduction", + "models.translate_model_prompt_message": "Entrez le mot-clé du modèle de traduction", + "models.translate_model_prompt_title": "Mot-clé du modèle de traduction", + "moresetting": "Paramètres supplémentaires", + "moresetting.check.confirm": "Confirmer la sélection", + "moresetting.check.warn": "Veuillez faire preuve de prudence en cochant cette option, une sélection incorrecte peut rendre le modèle inutilisable !!!", + "moresetting.warn": "Avertissement de risque", + "proxy.title": "Adresse proxy", + "theme.auto": "Automatique", + "theme.dark": "Sombre", + "theme.light": "Clair", + "theme.title": "Thème", + "theme.window.style.opaque": "Fenêtre opaque", + "theme.window.style.title": "Style de fenêtre", + "theme.window.style.transparent": "Fenêtre transparente", + "title": "Paramètres", + "topic.position": "Position du sujet", + "topic.position.left": "Gauche", + "topic.position.right": "Droite", + "topic.show.time": "Afficher l'heure du sujet", + "tray.title": "Barre d'état système", + "tray.show": "Afficher l'icône dans la barre d'état système", + "tray.onclose": "Minimiser dans la barre d'état système lors de la fermeture", + "launch.title": "Démarrage", + "launch.onboot": "Démarrer automatiquement au démarrage", + "launch.totray": "Minimiser dans la barre d'état système au démarrage" + }, + "translate": { + "confirm": { + "content": "La traduction remplacera le texte original, voulez-vous continuer ?", + "title": "Confirmation de traduction" + }, + "history": { + "clear": "Effacer l'historique", + "clear_description": "L'effacement de l'historique supprimera toutes les entrées d'historique de traduction, voulez-vous continuer ?", + "delete": "Supprimer", + "empty": "Aucun historique de traduction pour le moment", + "title": "Historique des traductions" + }, + "any.language": "langue arbitraire", + "button.translate": "traduire", + "close": "fermer", + "error.failed": "échec de la traduction", + "error.not_configured": "le modèle de traduction n'est pas configuré", + "input.placeholder": "entrez le texte à traduire", + "output.placeholder": "traduction", + "processing": "en cours de traduction...", + "scroll_sync.disable": "désactiver la synchronisation du défilement", + "scroll_sync.enable": "activer la synchronisation du défilement", + "title": "traduction", + "tooltip.newline": "saut de ligne" + }, + "tray": { + "quit": "Quitter", + "show_mini_window": "Assistant Rapide", + "show_window": "Afficher la fenêtre" + }, + "words": { + "knowledgeGraph": "Graphe de connaissances", + "quit": "Quitter", + "show_window": "Afficher la fenêtre", + "visualization": "Visualisation" + } + } +} \ No newline at end of file diff --git a/src/renderer/src/i18n/locales/pt-pt.json b/src/renderer/src/i18n/locales/pt-pt.json new file mode 100644 index 00000000..dc24178d --- /dev/null +++ b/src/renderer/src/i18n/locales/pt-pt.json @@ -0,0 +1,1172 @@ +{ + "translation": { + "agents": { + "add.button": "Adicionar ao Assistente", + "add.knowledge_base": "Base de Conhecimento", + "add.knowledge_base.placeholder": "Selecione a Base de Conhecimento", + "add.name": "Nome", + "add.name.placeholder": "Digite o Nome", + "add.prompt": "Prompt", + "add.prompt.placeholder": "Digite o Prompt", + "add.title": "Criar Agente Inteligente", + "delete.popup.content": "Tem certeza de que deseja excluir este agente inteligente?", + "edit.message.add.title": "Adicionar", + "edit.message.assistant.placeholder": "Digite a Mensagem do Assistente", + "edit.message.assistant.title": "Assistente", + "edit.message.empty.content": "O conteúdo da sessão não pode estar vazio", + "edit.message.group.title": "Grupo de Mensagens", + "edit.message.title": "Mensagens Padrão", + "edit.message.user.placeholder": "Digite a Mensagem do Usuário", + "edit.message.user.title": "Usuário", + "edit.model.select.title": "Selecionar Modelo", + "edit.settings.hide_preset_messages": "Ocultar Mensagens Padrão", + "edit.title": "Editar Agente Inteligente", + "manage.title": "Gerenciar Agentes Inteligentes", + "my_agents": "Meus Agentes Inteligentes", + "search.no_results": "Nenhum agente inteligente encontrado", + "sorting.title": "Ordenação", + "tag.agent": "Agente", + "tag.default": "Padrão", + "tag.new": "Novo", + "tag.system": "Sistema", + "title": "Agente" + }, + "assistants": { + "abbr": "Assistente", + "clear.content": "Limpar o tópico removerá todos os tópicos e arquivos do assistente. Tem certeza de que deseja continuar?", + "clear.title": "Limpar Tópico", + "copy.title": "Copiar Assistente", + "delete.content": "Excluir o assistente removerá todos os tópicos e arquivos sob esse assistente. Tem certeza de que deseja continuar?", + "delete.title": "Excluir Assistente", + "edit.title": "Editar Assistente", + "save.success": "Salvo com Sucesso", + "save.title": "Salvar para Agente Inteligente", + "search": "Pesquisar Assistente", + "settings.default_model": "Modelo Padrão", + "settings.knowledge_base": "Configurações da Base de Conhecimento", + "settings.model": "Configurações do Modelo", + "settings.preset_messages": "Mensagens Pré-definidas", + "settings.prompt": "Configurações de Prompt", + "settings.reasoning_effort": "Comprimento da Cadeia de Raciocínio", + "settings.reasoning_effort.high": "Longo", + "settings.reasoning_effort.low": "Curto", + "settings.reasoning_effort.medium": "Médio", + "settings.reasoning_effort.off": "Desligado", + "settings.reasoning_effort.tip": "Apenas suporta modelos de raciocínio OpenAI o-series e Anthropic", + "title": "Assistente" + }, + "auth": { + "error": "Falha ao obter a chave automaticamente, por favor obtenha manualmente", + "get_key": "Obter", + "get_key_success": "Obtenção automática da chave bem-sucedida", + "login": "Entrar", + "oauth_button": "Entrar com {{provider}}" + }, + "backup": { + "progress": { + "completed": "Backup concluído", + "compressing": "Comprimindo arquivo...", + "copying_files": "Copiando arquivos... {{progress}}%", + "preparing": "Preparando backup...", + "title": "Progresso do Backup", + "writing_data": "Escrevendo dados..." + }, + "confirm": "Tem certeza de que deseja fazer backup dos dados?", + "confirm.button": "Escolher local de backup", + "content": "Fazer backup de todos os dados, incluindo registros de chat, configurações, base de conhecimento e todos os outros dados. Por favor, note que o processo de backup pode levar algum tempo. Agradecemos sua paciência.", + "title": "Backup de Dados" + }, + "button": { + "add": "Adicionar", + "added": "Adicionado", + "collapse": "Recolher", + "manage": "Gerenciar", + "select_model": "Selecionar Modelo", + "show.all": "Mostrar tudo", + "update_available": "Atualização disponível" + }, + "chat": { + "navigation": { + "prev": "Mensagem anterior", + "next": "Próxima mensagem", + "first": "Esta é a primeira mensagem", + "last": "Esta é a última mensagem" + }, + "add.assistant.title": "Adicionar assistente", + "artifacts.button.download": "Baixar", + "artifacts.button.openExternal": "Abrir em navegador externo", + "artifacts.button.preview": "Visualizar", + "artifacts.preview.openExternal.error.content": "Erro ao abrir em navegador externo", + "assistant.search.placeholder": "Pesquisar", + "deeply_thought": "Profundamente pensado (demorou {{secounds}} segundos)", + "default.description": "Olá, eu sou o assistente padrão. Você pode começar a conversar comigo agora.", + "default.name": "Assistente Padrão", + "default.topic.name": "Tópico Padrão", + "input.auto_resize": "Ajuste automático de altura", + "input.clear": "Limpar mensagens {{Command}}", + "input.clear.content": "Tem certeza de que deseja limpar todas as mensagens da sessão atual?", + "input.clear.title": "Limpar mensagens", + "input.collapse": "Colapsar", + "input.context_count.tip": "Número de contexto / Número máximo de contexto", + "input.estimated_tokens.tip": "Número estimado de tokens", + "input.expand": "Expandir", + "input.file_not_supported": "O modelo não suporta este tipo de arquivo", + "input.knowledge_base": "Base de conhecimento", + "input.new.context": "Limpar contexto {{Command}}", + "input.new_topic": "Novo tópico {{Command}}", + "input.pause": "Pausar", + "input.placeholder": "Digite sua mensagem aqui...", + "input.send": "Enviar", + "input.settings": "Configurações", + "input.topics": "Tópicos", + "input.translate": "Traduzir para {{target_language}}", + "input.upload": "Carregar imagem ou documento", + "input.upload.document": "Carregar documento (o modelo não suporta imagens)", + "input.web_search": "Ativar pesquisa na web", + "input.web_search.button.ok": "Ir para configurações", + "input.web_search.enable": "Ativar pesquisa na web", + "input.web_search.enable_content": "É necessário verificar a conectividade da pesquisa na web nas configurações primeiro", + "message.new.branch": "Ramificação", + "message.new.branch.created": "Nova ramificação criada", + "message.new.context": "Limpar contexto", + "message.quote": "Citar", + "message.regenerate.model": "Trocar modelo", + "message.useful": "Útil", + "resend": "Reenviar", + "save": "Salvar", + "settings.code_collapsible": "Bloco de código colapsável", + "settings.code_wrappable": "Bloco de código com quebra de linha", + "settings.context_count": "Número de contexto", + "settings.context_count.tip": "Número de mensagens a serem mantidas no contexto. Quanto maior o número, mais longo será o contexto e mais tokens serão consumidos. Para conversas normais, é recomendado um valor entre 5-10", + "settings.max": "Sem limite", + "settings.max_tokens": "Ativar limite de comprimento da mensagem", + "settings.max_tokens.confirm": "Ativar limite de comprimento da mensagem", + "settings.max_tokens.confirm_content": "Ao ativar o limite de comprimento da mensagem, o número máximo de tokens usados em uma única interação afetará o comprimento do resultado retornado. É necessário definir de acordo com o limite de contexto do modelo, caso contrário, ocorrerá um erro", + "settings.max_tokens.tip": "Número máximo de tokens usados em uma única interação, afetando o comprimento do resultado retornado. É necessário definir de acordo com o limite de contexto do modelo, caso contrário, ocorrerá um erro", + "settings.reset": "Redefinir", + "settings.set_as_default": "Aplicar ao assistente padrão", + "settings.show_line_numbers": "Exibir números de linha no código", + "settings.temperature": "Temperatura do modelo", + "settings.temperature.tip": "Aleatoriedade na geração de texto pelo modelo. Quanto maior o valor, mais variadas, criativas e aleatórias são as respostas; se definido como 0, o modelo responderá com base nos fatos. Para conversas diárias, é recomendado um valor de 0,7", + "settings.thought_auto_collapse": "Conteúdo de pensamento colapsado automaticamente", + "settings.thought_auto_collapse.tip": "O conteúdo de pensamento será colapsado automaticamente após a conclusão do pensamento", + "settings.top_p": "Top-P", + "settings.top_p.tip": "Valor padrão é 1, quanto menor o valor, mais monótono será o conteúdo gerado pela IA, mas também mais fácil de entender; quanto maior o valor, maior será o vocabulário usado pela IA e mais diversificado será o conteúdo", + "suggestions.title": "Perguntas sugeridas", + "thinking": "Pensando", + "topics.auto_rename": "Gerar nome de tópico", + "topics.clear.title": "Limpar mensagens", + "topics.copy.image": "Copiar como imagem", + "topics.copy.md": "Copiar como Markdown", + "topics.copy.title": "Copiar", + "topics.delete.shortcut": "Pressione {{key}} para deletar diretamente", + "topics.edit.placeholder": "Digite novo nome", + "topics.edit.title": "Editar nome do tópico", + "topics.export.image": "Exportar como imagem", + "topics.export.md": "Exportar como Markdown", + "topics.export.notion": "Exportar para Notion", + "topics.export.title": "Exportar", + "topics.export.word": "Exportar como Word", + "topics.export.yuque": "Exportar para Yuque", + "topics.export.obsidian": "Exportar para Obsidian", + "topics.export.obsidian_not_configured": "Obsidian não configurado", + "topics.export.obsidian_title": "Título", + "topics.export.obsidian_title_placeholder": "Digite o título", + "topics.export.obsidian_title_required": "O título não pode estar vazio", + "topics.export.obsidian_tags": "Etiquetas", + "topics.export.obsidian_tags_placeholder": "Digite as etiquetas, use vírgulas para separar múltiplas etiquetas, Obsidian não aceita números puros", + "topics.export.obsidian_created": "Data de criação", + "topics.export.obsidian_created_placeholder": "Selecione a data de criação", + "topics.export.obsidian_source": "Fonte", + "topics.export.obsidian_source_placeholder": "Digite a fonte", + "topics.export.obsidian_operate": "Operação", + "topics.export.obsidian_operate_placeholder": "Selecione a operação", + "topics.export.obsidian_operate_append": "Anexar", + "topics.export.obsidian_operate_prepend": "Prepend", + "topics.export.obsidian_operate_new_or_overwrite": "Criar novo (substituir se existir)", + "topics.export.obsidian_atributes": "Configurar atributos da nota", + "topics.export.obsidian_btn": "Confirmar", + "topics.export.obsidian_export_success": "Exportação bem-sucedida", + "topics.export.obsidian_export_failed": "Exportação falhou", + "topics.export.joplin": "Exportar para Joplin", + "topics.list": "Lista de tópicos", + "topics.move_to": "Mover para", + "topics.pinned": "Fixar tópico", + "topics.prompt": "Prompt do tópico", + "topics.prompt.edit.title": "Editar prompt do tópico", + "topics.prompt.tips": "Prompt do tópico: fornecer prompts adicionais para o tópico atual", + "topics.title": "Tópicos", + "topics.unpinned": "Desfixar", + "topics.new": "Começar nova conversa", + "translate": "Traduzir" + }, + "code_block": { + "collapse": "Recolher", + "disable_wrap": "Desativar quebra de linha", + "enable_wrap": "Ativar quebra de linha", + "expand": "Expandir" + }, + "common": { + "add": "Adicionar", + "and": "e", + "assistant": "Agente Inteligente", + "avatar": "Avatar", + "back": "Voltar", + "cancel": "Cancelar", + "chat": "Bate-papo", + "clear": "Limpar", + "close": "Fechar", + "confirm": "Confirmar", + "copy": "Copiar", + "copied": "Copiado", + "cut": "Cortar", + "default": "Padrão", + "delete": "Excluir", + "description": "Descrição", + "docs": "Documentos", + "download": "Baixar", + "duplicate": "Duplicar", + "edit": "Editar", + "footnote": "Nota de rodapé", + "footnotes": "Notas de rodapé", + "fullscreen": "Entrou no modo de tela cheia, pressione F11 para sair", + "knowledge_base": "Base de Conhecimento", + "language": "Língua", + "model": "Modelo", + "models": "Modelos", + "name": "Nome", + "paste": "Colar", + "prompt": "Prompt", + "provider": "Fornecedor", + "regenerate": "Regenerar", + "rename": "Renomear", + "reset": "Redefinir", + "save": "Salvar", + "search": "Pesquisar", + "select": "Selecionar", + "topics": "Tópicos", + "warning": "Aviso", + "you": "Você", + "more": "Mais", + "advanced_settings": "Configurações Avançadas", + "expand": "Expandir" + }, + "docs": { + "title": "Documentação de Ajuda" + }, + "error": { + "http": { + "400": "Erro na solicitação, por favor verifique se os parâmetros da solicitação estão corretos. Se você alterou as configurações do modelo, redefina para as configurações padrão", + "401": "Falha na autenticação, por favor verifique se a chave da API está correta", + "403": "Acesso negado, por favor traduza a mensagem de erro específica para verificar o motivo, ou entre em contato com o fornecedor de serviços para perguntar sobre o motivo da proibição", + "404": "O modelo não existe ou a rota da solicitação está incorreta", + "429": "Taxa de solicitação excedeu o limite, por favor tente novamente mais tarde", + "500": "Erro do servidor, por favor tente novamente mais tarde", + "502": "Erro de gateway, por favor tente novamente mais tarde", + "503": "Serviço indisponível, por favor tente novamente mais tarde", + "504": "Tempo de espera do gateway excedido, por favor tente novamente mais tarde" + }, + "render": { + "title": "Erro de Renderização", + "description": "Falha ao renderizar a fórmula, por favor verifique se o formato da fórmula está correto" + }, + "backup.file_format": "Formato do arquivo de backup está incorreto", + "chat.response": "Ocorreu um erro, se a chave da API não foi configurada, por favor vá para Configurações > Provedores de Modelo para configurar a chave", + "model.exists": "O modelo já existe", + "no_api_key": "A chave da API não foi configurada", + "provider_disabled": "O provedor de modelos está desativado", + "user_message_not_found": "Não foi possível encontrar a mensagem original do usuário" + }, + "export": { + "assistant": "Assistente", + "attached_files": "Anexos", + "conversation_details": "Detalhes da Conversa", + "conversation_history": "Histórico da Conversa", + "created": "Criado em", + "last_updated": "Última Atualização", + "messages": "Mensagens", + "user": "Usuário" + }, + "files": { + "actions": "Ações", + "all": "Todos os Arquivos", + "count": "Número de Arquivos", + "created_at": "Data de Criação", + "delete": "Excluir", + "delete.content": "Excluir o arquivo removerá todas as referências ao arquivo em todas as mensagens. Tem certeza de que deseja excluir este arquivo?", + "delete.paintings.warning": "Esta imagem está incluída em um desenho e não pode ser excluída temporariamente", + "delete.title": "Excluir Arquivo", + "document": "Documento", + "edit": "Editar", + "file": "Arquivo", + "image": "Imagem", + "name": "Nome do Arquivo", + "open": "Abrir", + "size": "Tamanho", + "text": "Texto", + "title": "Arquivo", + "type": "Tipo" + }, + "history": { + "continue_chat": "Continuar conversando", + "locate.message": "Localizar mensagem", + "search.messages": "Procurar todas as mensagens", + "search.placeholder": "Procurar tópico ou mensagem...", + "search.topics.empty": "Nenhum tópico relacionado encontrado, clique em Enter para procurar todas as mensagens", + "title": "Procurar Tópicos" + }, + "knowledge": { + "add": { + "title": "Adicionar Base de Conhecimento" + }, + "add_directory": "Adicionar diretório", + "add_file": "Adicionar arquivo", + "add_note": "Adicionar nota", + "add_sitemap": "Adicionar mapa do site", + "add_url": "Adicionar URL", + "cancel_index": "Cancelar índice", + "chunk_overlap": "Sobreposição de bloco", + "chunk_overlap_placeholder": "Valor padrão (não recomendado alterar)", + "chunk_overlap_tooltip": "Quantidade de conteúdo repetido entre blocos de texto adjacentes, garantindo que os blocos de texto divididos ainda tenham conexões de contexto, melhorando o desempenho geral do modelo em textos longos", + "chunk_size": "Tamanho do bloco", + "chunk_size_change_warning": "A alteração do tamanho do bloco e da sobreposição de bloco é válida apenas para novos conteúdos adicionados", + "chunk_size_placeholder": "Valor padrão (não recomendado alterar)", + "chunk_size_too_large": "O tamanho do bloco não pode exceder o limite de contexto do modelo ({{max_context}})", + "chunk_size_tooltip": "Dividir o documento em blocos, o tamanho de cada bloco, que não pode exceder o limite de contexto do modelo", + "clear_selection": "Limpar seleção", + "delete": "Excluir", + "delete_confirm": "Tem certeza de que deseja excluir este repositório de conhecimento?", + "directories": "Diretórios", + "directory_placeholder": "Digite o caminho do diretório", + "document_count": "Número de fragmentos de documentos solicitados", + "document_count_default": "Padrão", + "document_count_help": "Quanto mais fragmentos de documentos solicitados, mais informações são incluídas, mas mais tokens são consumidos", + "drag_file": "Arraste o arquivo aqui", + "edit_remark": "Editar observação", + "edit_remark_placeholder": "Digite o conteúdo da observação", + "empty": "Sem repositório de conhecimento", + "file_hint": "Formatos suportados: {{file_types}}", + "index_all": "Índice total", + "index_cancelled": "Índice cancelado", + "index_started": "Índice iniciado", + "invalid_url": "URL inválida", + "model_info": "Informações do modelo", + "no_bases": "Sem repositório de conhecimento", + "no_match": "Não houve correspondência com o conteúdo do repositório de conhecimento", + "no_provider": "O provedor do modelo do repositório de conhecimento foi perdido, este repositório de conhecimento não será mais suportado, por favor, crie um novo repositório de conhecimento", + "not_set": "Não definido", + "not_support": "O motor de banco de dados do repositório de conhecimento foi atualizado, este repositório de conhecimento não será mais suportado, por favor, crie um novo repositório de conhecimento", + "notes": "Notas", + "notes_placeholder": "Digite informações adicionais ou contexto para este repositório de conhecimento...", + "rename": "Renomear", + "search": "Pesquisar repositório de conhecimento", + "search_placeholder": "Digite o conteúdo da consulta", + "settings": "Configurações do repositório de conhecimento", + "sitemap_placeholder": "Digite a URL do mapa do site", + "sitemaps": "Sites", + "source": "Fonte", + "status": "Status", + "status_completed": "Concluído", + "status_failed": "Falhou", + "status_new": "Adicionado", + "status_pending": "Pendente", + "status_processing": "Processando", + "threshold": "Limite de correspondência", + "threshold_placeholder": "Não definido", + "threshold_too_large_or_small": "O limite não pode ser maior que 1 ou menor que 0", + "threshold_tooltip": "Usado para medir a relevância entre a pergunta do usuário e o conteúdo do repositório de conhecimento (0-1)", + "topN": "Número de resultados retornados", + "topN_placeholder": "Não definido", + "topN__too_large_or_small": "O número de resultados retornados não pode ser maior que 100 ou menor que 1", + "topN_tooltip": "Número de resultados correspondentes retornados, quanto maior o valor, mais resultados correspondentes, mas mais tokens são consumidos", + "title": "Repositório de conhecimento", + "url_added": "URL adicionada", + "url_placeholder": "Digite a URL, várias URLs separadas por enter", + "urls": "URLs" + }, + "languages": { + "arabic": "Árabe", + "chinese": "Chinês Simplificado", + "chinese-traditional": "Chinês Tradicional", + "english": "Inglês", + "french": "Francês", + "german": "Alemão", + "italian": "Italiano", + "japanese": "Japonês", + "korean": "Coreano", + "portuguese": "Português", + "russian": "Russo", + "spanish": "Espanhol" + }, + "lmstudio": { + "keep_alive_time.description": "Tempo que o modelo permanece na memória após a conversa (padrão: 5 minutos)", + "keep_alive_time.placeholder": "minutos", + "keep_alive_time.title": "Manter tempo ativo", + "title": "LM Studio" + }, + "mermaid": { + "download": { + "png": "Baixar PNG", + "svg": "Baixar SVG" + }, + "resize": { + "zoom-in": "Aproximar", + "zoom-out": "Afastar" + }, + "tabs": { + "preview": "Pré-visualização", + "source": "Código-fonte" + }, + "title": "Gráfico Mermaid" + }, + "message": { + "attachments": { + "pasted_text": "Arquivo da área de transferência", + "pasted_image": "Imagem da área de transferência" + }, + "tools": { + "invoking": "Em execução", + "completed": "Completo" + }, + "api.check.model.title": "Selecione o modelo a ser verificado", + "api.connection.failed": "Conexão falhou", + "api.connection.success": "Conexão bem-sucedida", + "assistant.added.content": "Assistente adicionado com sucesso", + "backup.failed": "Backup falhou", + "backup.start.success": "Início do backup", + "backup.success": "Backup bem-sucedido", + "chat.completion.paused": "Conversa pausada", + "citations": "Citações", + "copied": "Copiado", + "copy.success": "Cópia bem-sucedida", + "copy.failed": "Cópia falhou", + "error.chunk_overlap_too_large": "A sobreposição de fragmentos não pode ser maior que o tamanho do fragmento", + "error.dimension_too_large": "Dimensão do conteúdo muito grande", + "error.enter.api.host": "Insira seu endereço API", + "error.enter.api.key": "Insira sua chave API", + "error.enter.model": "Selecione um modelo", + "error.enter.name": "Insira o nome da base de conhecimento", + "error.get_embedding_dimensions": "Falha ao obter dimensões de incorporação", + "error.invalid.api.host": "Endereço API inválido", + "error.invalid.api.key": "Chave API inválida", + "error.invalid.enter.model": "Selecione um modelo", + "error.invalid.proxy.url": "URL do proxy inválido", + "error.invalid.webdav": "Configuração WebDAV inválida", + "error.markdown.export.preconf": "Falha ao exportar arquivo Markdown para caminho pré-configurado", + "error.markdown.export.specified": "Falha ao exportar arquivo Markdown", + "error.notion.export": "Erro ao exportar Notion, verifique o status da conexão e a configuração de acordo com a documentação", + "error.notion.no_api_key": "API Key ou Notion Database ID não configurados", + "error.yuque.export": "Erro ao exportar Yuque, verifique o status da conexão e a configuração de acordo com a documentação", + "error.yuque.no_config": "Token Yuque ou URL da base de conhecimento não configurados", + "error.joplin.no_config": "Token de autorização Joplin ou URL não configurados", + "error.joplin.export": "Falha ao exportar Joplin, mantenha o Joplin em execução e verifique o status da conexão ou a configuração", + "group.delete.content": "Excluir mensagens de grupo removerá as perguntas dos usuários e todas as respostas do assistente", + "group.delete.title": "Excluir mensagens de grupo", + "ignore.knowledge.base": "Modo online ativado, ignorando base de conhecimento", + "info.notion.block_reach_limit": "Conversa muito longa, exportando em páginas para Notion", + "loading.notion.preparing": "Preparando exportação para Notion...", + "loading.notion.exporting_progress": "Exportando para Notion ({{current}}/{{total}})...", + "mention.title": "Alternar modelo de resposta", + "message.code_style": "Estilo de código", + "message.delete.content": "Tem certeza de que deseja excluir esta mensagem?", + "message.delete.title": "Excluir mensagem", + "message.multi_model_style": "Estilo de resposta multi-modelo", + "message.multi_model_style.fold": "Modo de etiqueta", + "message.multi_model_style.fold.compress": "Alternar para disposição compacta", + "message.multi_model_style.fold.expand": "Alternar para disposição expandida", + "message.multi_model_style.grid": "Layout de cartão", + "message.multi_model_style.horizontal": "Arranjo horizontal", + "message.multi_model_style.vertical": "Pilha vertical", + "message.style": "Estilo da mensagem", + "message.style.bubble": "Bolha", + "message.style.plain": "Simples", + "regenerate.confirm": "A regeneração substituirá a mensagem atual", + "reset.confirm.content": "Tem certeza de que deseja resetar todos os dados?", + "reset.double.confirm.content": "Todos os seus dados serão perdidos, se não houver backup, eles não poderão ser recuperados, tem certeza de que deseja continuar?", + "reset.double.confirm.title": "Perda de dados!!!", + "restore.failed": "Restauração falhou", + "restore.success": "Restauração bem-sucedida", + "save.success.title": "Salvo com sucesso", + "searching": "Pesquisando na internet...", + "success.markdown.export.preconf": "Arquivo Markdown exportado com sucesso para caminho pré-configurado", + "success.markdown.export.specified": "Arquivo Markdown exportado com sucesso", + "success.notion.export": "Exportado com sucesso para Notion", + "success.yuque.export": "Exportado com sucesso para Yuque", + "success.joplin.export": "Exportado com sucesso para Joplin", + "switch.disabled": "Aguarde a conclusão da resposta atual antes de operar", + "topic.added": "Tópico adicionado com sucesso", + "upgrade.success.button": "Reiniciar", + "upgrade.success.content": "Reinicie para concluir a atualização", + "upgrade.success.title": "Atualização bem-sucedida", + "warn.notion.exporting": "Exportando para Notion, não solicite novamente a exportação!", + "warning.rate.limit": "Envio muito frequente, aguarde {{seconds}} segundos antes de tentar novamente" + }, + "minapp": { + "sidebar.add.title": "Adicionar à barra lateral", + "sidebar.remove.title": "Remover da barra lateral", + "title": "Pequeno aplicativo" + }, + "miniwindow": { + "clipboard": { + "empty": "A área de transferência está vazia" + }, + "feature": { + "chat": "Responder a esta pergunta", + "explanation": "Explicação", + "summary": "Resumo do conteúdo", + "translate": "Tradução de texto" + }, + "footer": { + "copy_last_message": "Pressione C para copiar", + "esc": "Pressione ESC {{action}}", + "esc_back": "Voltar", + "esc_close": "Fechar janela" + }, + "input": { + "placeholder": { + "empty": "Pergunte a {{model}} para obter ajuda...", + "title": "O que você quer fazer com o texto abaixo" + } + } + }, + "models": { + "parameter_type": { + "boolean": "Valor booleano", + "json": "JSON", + "number": "Número", + "string": "Texto" + }, + "type": { + "embedding": "inserção", + "reasoning": "raciocínio", + "select": "selecione o tipo de modelo", + "text": "texto", + "vision": "imagem", + "function_calling": "chamada de função" + }, + "add_parameter": "Adicionar parâmetro", + "all": "Todos", + "custom_parameters": "Parâmetros personalizados", + "dimensions": "{{dimensions}} dimensões", + "edit": "Editar modelo", + "embedding": "Inscrição", + "embedding_model": "Modelo de inscrição", + "embedding_model_tooltip": "Clique no botão Gerenciar em Configurações -> Serviço de modelos para adicionar", + "rerank_model": "Modelo de reclassificação", + "rerank_model_tooltip": "Clique no botão Gerenciar em Configurações -> Serviço de modelos para adicionar", + "rerank_model_support_provider": "O modelo de reclassificação atualmente suporta apenas alguns provedores ({{provider}})", + "free": "Grátis", + "no_matches": "Nenhum modelo disponível", + "parameter_name": "Nome do parâmetro", + "pinned": "Fixado", + "reasoning": "Raciocínio", + "search": "Procurar modelo...", + "stream_output": "Saída em fluxo", + "function_calling": "Chamada de função", + "vision": "Visão", + "websearch": "Busca na web" + }, + "navbar": { + "expand": "Expandir caixa de diálogo", + "hide_sidebar": "Ocultar barra lateral", + "show_sidebar": "Mostrar barra lateral" + }, + "ollama": { + "keep_alive_time.description": "Tempo que o modelo permanece na memória após a conversa (padrão: 5 minutos)", + "keep_alive_time.placeholder": "minutos", + "keep_alive_time.title": "Manter tempo ativo", + "title": "Ollama" + }, + "paintings": { + "button.delete.image": "Excluir Imagem", + "button.delete.image.confirm": "Deseja realmente excluir esta imagem?", + "button.new.image": "Nova Imagem", + "guidance_scale": "Escala de Direção", + "guidance_scale_tip": "Sem direção do classificador. Controle o grau ao qual o modelo segue a palavra-chave ao procurar imagens relacionadas", + "image.size": "Tamanho da Imagem", + "inference_steps": "Passos de Inferência", + "inference_steps_tip": "Número de passos de inferência a serem executados. Quanto mais passos, melhor a qualidade, mas mais demorado", + "negative_prompt": "Prompt Negativo", + "negative_prompt_tip": "Descreva o que você não quer na imagem", + "number_images": "Quantidade de Imagens", + "number_images_tip": "Quantidade de imagens a serem geradas por vez (1-4)", + "prompt_enhancement": "Aumento do Prompt", + "prompt_enhancement_tip": "Ao ativar, o prompt será reescrito para uma versão detalhada e adequada ao modelo", + "prompt_placeholder": "Descreva a imagem que deseja criar, por exemplo: um lago tranquilo, com o pôr do sol, montanhas distantes", + "regenerate.confirm": "Isso substituirá as imagens já geradas, deseja continuar?", + "seed": "Semente Aleatória", + "seed_tip": "A mesma semente e palavra-chave podem gerar imagens semelhantes", + "title": "Imagem" + }, + "plantuml": { + "download": { + "failed": "Download falhou, por favor verifique a sua conexão com a internet", + "png": "Download PNG", + "svg": "Download SVG" + }, + "tabs": { + "preview": "Pré-visualização", + "source": "Código-fonte" + }, + "title": "Diagrama PlantUML" + }, + "prompts": { + "explanation": "Ajude-me a explicar este conceito", + "summarize": "Ajude-me a resumir este parágrafo", + "title": "Você é um assistente hábil em conversação, precisa resumir o diálogo do usuário em um título de até 10 caracteres, o idioma do título deve ser o mesmo que a principal língua do usuário, não use pontuação ou outros símbolos especiais" + }, + "provider": { + "aihubmix": "AiHubMix", + "anthropic": "Antropológico", + "azure-openai": "Azure OpenAI", + "baichuan": "BaiChuan", + "baidu-cloud": "Nuvem Baidu", + "dashscope": "Área de Atuação AliCloud", + "deepseek": "Busca Profunda", + "dmxapi": "DMXAPI", + "doubao": "Volcano Engine", + "fireworks": "Fogos de Artifício", + "gemini": "Gêmeos", + "gitee-ai": "Gitee IA", + "github": "GitHub Models", + "graphrag-kylin-mountain": "GraphRAG", + "grok": "Compreender", + "groq": "Groq", + "hunyuan": "Tencent Hún Yuán", + "hyperbolic": "Hiperbólico", + "infini": "Infinito", + "jina": "Jina", + "lmstudio": "Estúdio LM", + "minimax": "Minimax", + "mistral": "Mistral", + "modelscope": "ModelScope MôDá", + "moonshot": "Disparo Lunar", + "nvidia": "NVIDIA", + "o3": "O3", + "ocoolai": "ocoolAI", + "ollama": "Ollama", + "openai": "OpenAI", + "openrouter": "OpenRouter", + "perplexity": "Perplexidade", + "ppio": "PPIO Nuvem Piao", + "qwenlm": "QwenLM", + "silicon": "Silício em Fluxo", + "stepfun": "Função de Passo Estelar", + "tencent-cloud-ti": "Nuvem TI da Tencent", + "together": "Juntos", + "xirang": "XiRang do Nuvem Telecom", + "yi": "ZeroUmTudo", + "zhinao": "360 Inteligência Artificial", + "zhipu": "ZhiPu IA", + "copilot": "GitHub Copiloto", + "gpustack": "GPUStack", + "alayanew": "Alaya NeW" + }, + "restore": { + "progress": { + "completed": "Restauração concluída", + "copying_files": "Copiando arquivos... {{progress}}%", + "extracting": "Descompactando backup...", + "preparing": "Preparando restauração...", + "reading_data": "Lendo dados...", + "title": "Progresso da Restauração" + }, + "confirm": "Tem certeza de que deseja restaurar os dados?", + "confirm.button": "Selecione o arquivo de backup", + "content": "A operação de restauração usará os dados de backup para substituir todos os dados atuais do aplicativo. Por favor, note que o processo de restauração pode levar algum tempo. Agradecemos sua paciência.", + "title": "Restauração de Dados" + }, + "gpustack": { + "keep_alive_time.description": "O tempo que o modelo permanece na memória (padrão: 5 minutos)", + "keep_alive_time.placeholder": "minutos", + "keep_alive_time.title": "Manter tempo ativo", + "title": "GPUStack" + }, + "settings": { + "data": { + "clear_cache": { + "button": "Limpar cache", + "confirm": "Limpar cache removerá os dados armazenados em cache do aplicativo, incluindo dados de aplicativos minúsculos. Esta ação não pode ser desfeita, deseja continuar?", + "error": "Falha ao limpar cache", + "success": "Cache limpo com sucesso", + "title": "Limpar cache" + }, + "notion.check": { + "button": "Verificar", + "empty_api_key": "API key não configurada", + "empty_database_id": "Database ID não configurado", + "error": "Conexão anormal, por favor verifique a rede e se a API key e Database ID estão corretos", + "fail": "Falha na conexão, por favor verifique a rede e se a API key e Database ID estão corretos", + "success": "Conexão bem-sucedida" + }, + "webdav": { + "autoSync": "Backup automático", + "autoSync.off": "Desligar", + "backup.button": "Fazer backup para WebDAV", + "host": "Endereço WebDAV", + "host.placeholder": "http://localhost:8080", + "hour_interval_one": "{{count}} hora", + "hour_interval_other": "{{count}} horas", + "lastSync": "Último backup", + "minute_interval_one": "{{count}} minuto", + "minute_interval_other": "{{count}} minutos", + "noSync": "Aguardando próximo backup", + "password": "Senha WebDAV", + "path": "Caminho WebDAV", + "path.placeholder": "/backup", + "backup.modal.title": "Fazer backup para WebDAV", + "backup.modal.filename.placeholder": "Digite o nome do arquivo de backup", + "restore.modal.title": "Restaurar de WebDAV", + "restore.modal.select.placeholder": "Selecione o arquivo de backup para restaurar", + "restore.confirm.title": "Confirmar restauração", + "restore.confirm.content": "A restauração de WebDAV substituirá os dados atuais. Deseja continuar?", + "restore.button": "Restaurar de WebDAV", + "restore.content": "A restauração de WebDAV substituirá os dados atuais. Deseja continuar?", + "restore.title": "Restaurar de WebDAV", + "syncError": "Erro de backup", + "syncStatus": "Status de backup", + "title": "WebDAV", + "user": "Nome de usuário WebDAV" + }, + "yuque": { + "check": { + "button": "Verificar", + "empty_repo_url": "Por favor, insira primeiro a URL do repositório de conhecimento", + "empty_token": "Por favor, insira primeiro o Token do YuQue", + "fail": "Validação da conexão com o YuQue falhou", + "success": "Validação da conexão com o YuQue foi bem-sucedida" + }, + "help": "Obter Token do Yuque", + "repo_url": "URL da Base de Conhecimento", + "repo_url_placeholder": "https://www.yuque.com/username/xxx", + "title": "Configuração do Yuque", + "token": "Token do Yuque", + "token_placeholder": "Insira o Token do Yuque" + }, + "obsidian": { + "title": "Configuração do Obsidian", + "vault": "Cofre", + "vault_placeholder": "Insira o nome do cofre", + "folder": "Pasta", + "folder_placeholder": "Insira o nome da pasta", + "tags": "Tags Globais", + "tags_placeholder": "Insira o nome da tag, use vírgulas para separar múltiplas tags, o Obsidian não permite números puros" + }, + "joplin": { + "check": { + "button": "Verificar", + "empty_url": "Por favor, insira primeiro a URL de monitoramento do serviço de recorte do Joplin", + "empty_token": "Por favor, insira primeiro o token de autorização do Joplin", + "fail": "A validação da conexão com o Joplin falhou", + "success": "A validação da conexão com o Joplin foi bem-sucedida" + }, + "title": "Configuração do Joplin", + "help": "Na opção Joplin, ative o serviço de recorte da web (sem necessidade de instalar um plug-in do navegador), confirme a porta e copie o token de autorização", + "url": "URL para o qual o serviço de recorte do Joplin está escutando", + "url_placeholder": "http://127.0.0.1:41184/", + "token": "Token de autorização do Joplin", + "token_placeholder": "Insira o token de autorização do Joplin" + }, + "app_data": "Dados do aplicativo", + "app_knowledge": "Arquivo de base de conhecimento", + "app_knowledge.button.delete": "Excluir arquivo", + "app_knowledge.remove_all": "Excluir arquivos da base de conhecimento", + "app_knowledge.remove_all_confirm": "A exclusão dos arquivos da base de conhecimento reduzirá o uso do espaço de armazenamento, mas não excluirá os dados vetoriais da base de conhecimento. Após a exclusão, os arquivos originais não poderão ser abertos. Deseja excluir?", + "app_knowledge.remove_all_success": "Arquivo excluído com sucesso", + "app_logs": "Logs do aplicativo", + "data.title": "Diretório de dados", + "hour_interval_one": "{{count}} hora", + "hour_interval_other": "{{count}} horas", + "minute_interval_one": "{{count}} minuto", + "minute_interval_other": "{{count}} minutos", + "markdown_export.title": "Exportação Markdown", + "markdown_export.path": "Caminho padrão de exportação", + "markdown_export.path_placeholder": "Caminho de exportação", + "markdown_export.select": "Selecionar", + "markdown_export.help": "Se preenchido, será salvo automaticamente nesse caminho em cada exportação; caso contrário, uma caixa de diálogo de salvamento será exibida", + "markdown_export.force_dollar_math.title": "Forçar o uso de $$ para marcar fórmulas LaTeX", + "markdown_export.force_dollar_math.help": "Ao ativar, a exportação para Markdown forçará o uso de $$ para marcar fórmulas LaTeX. Nota: isso também afetará todas as formas de exportação via Markdown, como Notion, Yuque, etc.", + "notion.api_key": "Chave de API do Notion", + "notion.api_key_placeholder": "Insira a chave de API do Notion", + "notion.auto_split": "Dividir automaticamente ao exportar conversas", + "notion.auto_split_tip": "Divide automaticamente tópicos longos ao exportar para o Notion", + "notion.database_id": "ID do banco de dados do Notion", + "notion.database_id_placeholder": "Insira o ID do banco de dados do Notion", + "notion.help": "Documentação de configuração do Notion", + "notion.page_name_key": "Campo do título da página", + "notion.page_name_key_placeholder": "Insira o campo do título da página, por padrão é Nome", + "notion.split_size": "Tamanho de divisão automática", + "notion.split_size_help": "Para usuários gratuitos do Notion, recomendamos 90; para usuários premium, recomendamos 24990; o valor padrão é 90", + "notion.split_size_placeholder": "Insira o limite de blocos por página (padrão 90)", + "notion.title": "Configurações do Notion", + "title": "Configurações de dados" + }, + "mcp": { + "npx_list": { + "npm": "NPM", + "title": "Lista de Pacotes NPX", + "desc": "Pesquise e adicione pacotes npm como serviço MCP", + "scope_placeholder": "Insira o escopo npm (por exemplo, @sua-organizacao)", + "search": "Pesquisar", + "package_name": "Nome do Pacote", + "description": "Descrição", + "usage": "Uso", + "version": "Versão", + "actions": "Ações", + "scope_required": "Insira o escopo npm", + "no_packages": "Nenhum pacote encontrado", + "search_error": "Falha na pesquisa" + }, + "actions": "Ações", + "active": "Ativar", + "addServer": "Adicionar Servidor", + "addSuccess": "Servidor adicionado com sucesso", + "addError": "Falha ao adicionar servidor", + "args": "Argumentos", + "argsTooltip": "Cada argumento em uma linha", + "baseUrlTooltip": "Endereço de URL remoto", + "command": "Comando", + "commandRequired": "Digite o comando", + "config_description": "Configurar modelo de protocolo de contexto do servidor", + "confirmDelete": "Excluir servidor", + "confirmDeleteMessage": "Tem certeza de que deseja excluir este servidor?", + "deleteError": "Falha ao excluir servidor", + "deleteSuccess": "Servidor excluído com sucesso", + "description": "Descrição", + "duplicateName": "Já existe um servidor com o mesmo nome", + "editServer": "Editar servidor", + "env": "Variáveis de ambiente", + "envTooltip": "Formato: CHAVE=valor, uma por linha", + "findMore": "Mais servidores MCP", + "name": "Nome", + "nameRequired": "Digite o nome do servidor", + "noServers": "Nenhum servidor configurado", + "serverPlural": "Servidores", + "serverSingular": "Servidor", + "title": "Servidores MCP", + "type": "Tipo", + "updateSuccess": "Servidor atualizado com sucesso", + "updateError": "Falha ao atualizar servidor", + "url": "URL", + "toggleError": "Falha ao alternar", + "dependenciesInstalling": "Instalando dependências...", + "dependenciesInstall": "Instalar dependências", + "installSuccess": "Dependências instaladas com sucesso", + "installError": "Falha ao instalar dependências", + "missingDependencies": "Ausente, instale para continuar", + "install": "Instalar", + "editJson": "Editar JSON", + "jsonModeHint": "Edite a representação JSON da configuração do servidor MCP. Certifique-se de que o formato está correto antes de salvar.", + "jsonFormatError": "Erro de formatação JSON", + "jsonSaveSuccess": "Configuração JSON salva com sucesso", + "jsonSaveError": "Falha ao salvar configuração JSON" + }, + "provider": { + "copilot": { + "tooltip": "Para usar o Github Copilot, você precisa fazer login no Github", + "description": "Sua conta do Github precisa assinar o Copilot", + "login": "Fazer login no Github", + "connect": "Conectar ao Github", + "logout": "Sair do Github", + "auth_success_title": "Autenticação bem-sucedida", + "code_generated_title": "Obter Código do Dispositivo", + "code_generated_desc": "Por favor, copie o Código do Dispositivo para o link do navegador abaixo", + "code_failed": "Falha ao obter Código do Dispositivo, tente novamente", + "auth_success": "Autenticação do Github Copilot bem-sucedida", + "auth_failed": "Falha na autenticação do Github Copilot", + "logout_success": "Saiu com sucesso", + "logout_failed": "Falha ao sair, tente novamente", + "confirm_title": "Aviso de Risco", + "confirm_login": "O uso excessivo pode resultar no bloqueio da sua conta do Github, use com cuidado!!!!", + "rate_limit": "Limite de Taxa", + "custom_headers": "Cabeçalhos Personalizados", + "headers_description": "Cabeçalhos personalizados (formato json)", + "expand": "Expandir", + "model_setting": "Configuração do Modelo", + "invalid_json": "Formato JSON inválido", + "open_verification_first": "Por favor, clique no link acima para acessar a página de verificação" + }, + "add.name": "Nome do Fornecedor", + "add.name.placeholder": "Exemplo OpenAI", + "add.title": "Adicionar Fornecedor", + "add.type": "Tipo de Fornecedor", + "api.url.preview": "Pré-visualização: {{url}}", + "api.url.reset": "Redefinir", + "api.url.tip": "Ignorar v1 na versão finalizada com /, usar endereço de entrada forçado se terminar com #", + "api_host": "Endereço API", + "api_key": "Chave API", + "api_key.tip": "Use vírgula para separar várias chaves", + "api_version": "Versão da API", + "charge": "Recarregar", + "check": "Verificar", + "check_all_keys": "Verificar todas as chaves", + "check_multiple_keys": "Verificar várias chaves API", + "delete.content": "Tem certeza de que deseja excluir este fornecedor de modelo?", + "delete.title": "Excluir Fornecedor", + "docs_check": "Verificar", + "docs_more_details": "Obter mais detalhes", + "get_api_key": "Clique aqui para obter a chave", + "no_models": "Por favor, adicione um modelo antes de verificar a conexão da API", + "not_checked": "Não verificado", + "remove_duplicate_keys": "Remover chaves duplicadas", + "remove_invalid_keys": "Remover chaves inválidas", + "search": "Procurar plataforma de modelos...", + "search_placeholder": "Procurar ID ou nome do modelo", + "title": "Serviços de Modelos", + "is_not_support_array_content": "Ativar modo compatível" + }, + "proxy": { + "mode": { + "custom": "Proxy Personalizado", + "none": "Não Usar Proxy", + "system": "Proxy do Sistema", + "title": "Modo de Proxy" + }, + "title": "Configurações de Proxy" + }, + "quickAssistant": { + "click_tray_to_show": "Clique no ícone da bandeja para iniciar", + "enable_quick_assistant": "Ativar assistente rápido", + "title": "Assistente Rápido", + "use_shortcut_to_show": "Clique com o botão direito no ícone da bandeja ou use atalhos para iniciar", + "read_clipboard_at_startup": "Ler área de transferência ao iniciar" + }, + "shortcuts": { + "action": "Ação", + "clear_shortcut": "Limpar atalho", + "clear_topic": "Limpar mensagem", + "copy_last_message": "Copiar a última mensagem", + "key": "Tecla", + "mini_window": "Atalho de assistente", + "new_topic": "Novo tópico", + "press_shortcut": "Pressionar atalho", + "reset_defaults": "Redefinir atalhos padrão", + "reset_defaults_confirm": "Tem certeza de que deseja redefinir todos os atalhos?", + "reset_to_default": "Redefinir para padrão", + "search_message": "Pesquisar mensagem", + "show_app": "Exibir aplicativo", + "show_settings": "Abrir configurações", + "title": "Atalhos", + "toggle_new_context": "Limpar contexto", + "toggle_show_assistants": "Alternar exibição de assistentes", + "toggle_show_topics": "Alternar exibição de tópicos", + "zoom_in": "Ampliar interface", + "zoom_out": "Diminuir interface", + "zoom_reset": "Redefinir zoom" + }, + "websearch": { + "tavily": { + "api_key": "Chave de API do Tavily", + "api_key.placeholder": "Insira a chave de API do Tavily", + "description": "O Tavily é um mecanismo de busca projetado especificamente para agentes de IA, oferecendo resultados em tempo real, precisos, sugestões inteligentes de consulta e capacidades de pesquisa aprofundada", + "title": "Tavily" + }, + "blacklist": "Lista Negra", + "blacklist_description": "Os seguintes sites não aparecerão nos resultados da pesquisa", + "blacklist_tooltip": "Por favor, use o seguinte formato (separado por quebras de linha)\\nexample.com \\\\:nhttps://www.example.com \\\\:nhttps://example.com \\\\:n*://*.example.com", + "check": "Verificar", + "check_success": "Verificação bem-sucedida", + "check_failed": "Verificação falhou", + "get_api_key": "Clique aqui para obter a chave", + "no_provider_selected": "Selecione um provedor de pesquisa antes de verificar", + "search_max_result": "Número de resultados da pesquisa", + "search_provider": "Provedor de pesquisa", + "search_provider_placeholder": "Selecione um provedor de pesquisa", + "search_result_default": "Padrão", + "search_with_time": "Pesquisar com data", + "enhance_mode": "Modo de pesquisa avançada", + "enhance_mode_tooltip": "Use o modelo padrão para extrair palavras-chave e depois pesquise", + "title": "Pesquisa na Web" + }, + "about": "Sobre Nós", + "about.checkingUpdate": "Verificando atualizações...", + "about.checkUpdate": "Verificar atualizações", + "about.checkUpdate.available": "Atualizar agora", + "about.contact.button": "E-mail", + "about.contact.title": "Contato por e-mail", + "about.description": "Um assistente de IA criado para criadores", + "about.downloading": "Baixando atualizações...", + "about.feedback.button": "Feedback", + "about.feedback.title": "Enviar feedback", + "about.license.button": "Ver", + "about.license.title": "Licença", + "about.releases.button": "Ver", + "about.releases.title": "Registro de alterações", + "about.social.title": "Contas sociais", + "about.title": "Sobre nós", + "about.updateAvailable": "Nova versão disponível {{version}}", + "about.updateError": "Erro ao atualizar", + "about.updateNotAvailable": "Seu software já está atualizado", + "about.website.button": "Ver", + "about.website.title": "Site oficial", + "advanced.auto_switch_to_topics": "Alternar automaticamente para tópicos", + "advanced.title": "Configurações avançadas", + "assistant": "Assistente padrão", + "assistant.model_params": "Parâmetros do modelo", + "assistant.show.icon": "Mostrar ícone do modelo", + "assistant.title": "Assistente padrão", + "display.assistant.title": "Configurações do assistente", + "display.custom.css": "CSS personalizado", + "display.custom.css.cherrycss": "Obter do cherrycss.com", + "display.custom.css.placeholder": "/* Escreva seu CSS personalizado aqui */", + "display.minApp.disabled": "Aplicativos ocultos", + "display.minApp.empty": "Arraste os aplicativos que deseja ocultar da esquerda para cá", + "display.minApp.title": "Configurações de exibição de aplicativos", + "display.minApp.visible": "Aplicativos visíveis", + "display.sidebar.chat.hiddenMessage": "O assistente é uma funcionalidade básica e não pode ser ocultada", + "display.sidebar.disabled": "Ícones ocultos", + "display.sidebar.empty": "Arraste as funcionalidades que deseja ocultar da esquerda para cá", + "display.sidebar.files.icon": "Mostrar ícone de arquivo", + "display.sidebar.knowledge.icon": "Mostrar ícone de conhecimento", + "display.sidebar.minapp.icon": "Mostrar ícone de aplicativo", + "display.sidebar.painting.icon": "Mostrar ícone de pintura", + "display.sidebar.title": "Configurações de barra lateral", + "display.sidebar.translate.icon": "Mostrar ícone de tradução", + "display.sidebar.visible": "Ícones visíveis", + "display.title": "Configurações de exibição", + "display.topic.title": "Configurações de tópico", + "font_size.title": "Tamanho da fonte da mensagem", + "general": "Configurações gerais", + "general.avatar.reset": "Redefinir avatar", + "general.backup.button": "Backup", + "general.backup.title": "Backup e restauração de dados", + "general.display.title": "Configurações de exibição", + "general.emoji_picker": "Seletor de emojis", + "general.image_upload": "Carregar imagem", + "general.manually_check_update.title": "Desativar verificação de atualização", + "general.reset.button": "Redefinir", + "general.reset.title": "Redefinir dados", + "general.restore.button": "Restaurar", + "general.title": "Configurações gerais", + "general.user_name": "Nome de usuário", + "general.user_name.placeholder": "Digite o nome de usuário", + "general.view_webdav_settings": "Ver configurações WebDAV", + "input.auto_translate_with_space": "Traduzir com três espaços rápidos", + "input.target_language": "Língua alvo", + "input.target_language.chinese": "Chinês simplificado", + "input.target_language.chinese-traditional": "Chinês tradicional", + "input.target_language.english": "Inglês", + "input.target_language.japanese": "Japonês", + "input.target_language.russian": "Russo", + "messages.divider": "Divisor de mensagens", + "messages.navigation": "Botão de navegação de conversa", + "messages.navigation.none": "Não mostrar", + "messages.navigation.buttons": "Botões de cima e de baixo", + "messages.navigation.anchor": "Ancoragem de conversa", + "messages.grid_columns": "Número de colunas da grade de mensagens", + "messages.grid_popover_trigger": "Disparador de detalhes da grade", + "messages.grid_popover_trigger.click": "Clique para mostrar", + "messages.grid_popover_trigger.hover": "Passe o mouse para mostrar", + "messages.input.paste_long_text_as_file": "Colar texto longo como arquivo", + "messages.input.paste_long_text_threshold": "Limite de texto longo", + "messages.input.send_shortcuts": "Atalhos de envio", + "messages.input.show_estimated_tokens": "Mostrar número estimado de tokens", + "messages.input.title": "Configurações de entrada", + "messages.markdown_rendering_input_message": "Renderização de markdown na entrada de mensagens", + "messages.math_engine": "Motor de fórmulas matemáticas", + "messages.metrics": "Atraso inicial {{time_first_token_millsec}}ms | Taxa de token por segundo {{token_speed}} tokens", + "messages.model.title": "Configurações de modelo", + "messages.title": "Configurações de mensagem", + "messages.use_serif_font": "Usar fonte serif", + "model": "Modelo padrão", + "models.add.add_model": "Adicionar modelo", + "models.add.group_name": "Nome do grupo", + "models.add.group_name.placeholder": "Exemplo: ChatGPT", + "models.add.group_name.tooltip": "Exemplo: ChatGPT", + "models.add.model_id": "ID do modelo", + "models.add.model_id.placeholder": "Obrigatório Exemplo: gpt-3.5-turbo", + "models.add.model_id.tooltip": "Exemplo: gpt-3.5-turbo", + "models.add.model_name": "Nome do modelo", + "models.add.model_name.placeholder": "Exemplo: GPT-3.5", + "models.check.all": "Todos", + "models.check.all_models_passed": "Todos os modelos passaram na verificação", + "models.check.button_caption": "Verificação de saúde", + "models.check.disabled": "Desabilitado", + "models.check.enable_concurrent": "Verificação concorrente", + "models.check.enabled": "Habilitado", + "models.check.failed": "Falhou", + "models.check.keys_status_count": "Passou: {{count_passed}} chaves, falhou: {{count_failed}} chaves", + "models.check.model_status_summary": "{{provider}}: {{count_passed}} modelos completaram a verificação de saúde (entre eles, {{count_partial}} modelos não podem ser acessados com algumas chaves), {{count_failed}} modelos não podem ser acessados completamente.", + "models.check.no_api_keys": "Nenhuma chave API encontrada, adicione uma chave API primeiro.", + "models.check.passed": "Passou", + "models.check.select_api_key": "Selecione a chave API a ser usada:", + "models.check.single": "Individual", + "models.check.start": "Começar", + "models.check.title": "Verificação de saúde do modelo", + "models.check.use_all_keys": "Use chaves", + "models.default_assistant_model": "Modelo de assistente padrão", + "models.default_assistant_model_description": "Modelo usado ao criar um novo assistente, se o assistente não tiver um modelo definido, este será usado", + "models.empty": "Sem modelos", + "models.enable_topic_naming": "Renomeação automática de tópicos", + "models.manage.add_whole_group": "Adicionar todo o grupo", + "models.manage.remove_whole_group": "Remover todo o grupo", + "models.topic_naming_model": "Modelo de nomenclatura de tópicos", + "models.topic_naming_model_description": "Modelo usado para nomear tópicos automaticamente", + "models.topic_naming_model_setting_title": "Configurações do modelo de nomenclatura de tópicos", + "models.topic_naming_prompt": "Prompt de nomenclatura de tópicos", + "models.translate_model": "Modelo de tradução", + "models.translate_model_description": "Modelo usado para serviços de tradução", + "models.translate_model_prompt_message": "Digite o prompt do modelo de tradução", + "models.translate_model_prompt_title": "Prompt do modelo de tradução", + "moresetting": "Configurações adicionais", + "moresetting.check.confirm": "Confirmar seleção", + "moresetting.check.warn": "Por favor, selecione com cuidado esta opção, uma seleção incorreta pode impedir o uso normal dos modelos!!!", + "moresetting.warn": "Aviso de risco", + "proxy.title": "Endereço de proxy", + "theme.auto": "Automático", + "theme.dark": "Escuro", + "theme.light": "Claro", + "theme.title": "Tema", + "theme.window.style.opaque": "Janela opaca", + "theme.window.style.title": "Estilo de janela", + "theme.window.style.transparent": "Janela transparente", + "title": "Configurações", + "topic.position": "Posição do tópico", + "topic.position.left": "Esquerda", + "topic.position.right": "Direita", + "topic.show.time": "Mostrar tempo do tópico", + "tray.title": "Tray", + "tray.show": "Mostrar ícone de bandeja", + "tray.onclose": "Minimizar para bandeja ao fechar", + "launch.title": "Inicialização", + "launch.onboot": "Iniciar automaticamente ao ligar", + "launch.totray": "Minimizar para bandeja ao iniciar" + }, + "translate": { + "confirm": { + "content": "A tradução substituirá o texto original, deseja continuar?", + "title": "Confirmação de Tradução" + }, + "history": { + "clear": "Limpar Histórico", + "clear_description": "Limpar histórico irá deletar todos os registros de tradução. Deseja continuar?", + "delete": "Excluir", + "empty": "Nenhum histórico de tradução disponível", + "title": "Histórico de Tradução" + }, + "any.language": "qualquer idioma", + "button.translate": "Traduzir", + "close": "Fechar", + "error.failed": "Tradução falhou", + "error.not_configured": "Modelo de tradução não configurado", + "input.placeholder": "Digite o texto para traduzir", + "output.placeholder": "Tradução", + "processing": "Traduzindo...", + "scroll_sync.disable": "Desativar sincronização de rolagem", + "scroll_sync.enable": "Ativar sincronização de rolagem", + "title": "Tradução", + "tooltip.newline": "Quebra de linha" + }, + "tray": { + "quit": "Sair", + "show_mini_window": "Atalho de Assistente", + "show_window": "Exibir Janela" + }, + "words": { + "knowledgeGraph": "Gráfico de Conhecimento", + "quit": "Sair", + "show_window": "Exibir Janela", + "visualization": "Visualização" + } + } +} \ No newline at end of file diff --git a/src/renderer/src/pages/agents/agentGroupTranslations.ts b/src/renderer/src/pages/agents/agentGroupTranslations.ts index b5330a3f..201afc87 100644 --- a/src/renderer/src/pages/agents/agentGroupTranslations.ts +++ b/src/renderer/src/pages/agents/agentGroupTranslations.ts @@ -1,250 +1,390 @@ export type GroupTranslations = { [key: string]: { + 'el-GR': string 'en-US': string + 'es-ES': string + 'fr-FR': string 'zh-CN': string 'zh-TW': string 'ru-RU': string 'ja-JP': string + 'pt-PT': string } } export const groupTranslations: GroupTranslations = { 我的: { + 'el-GR': 'Τα δικά μου', 'en-US': 'My Agents', + 'es-ES': 'Mis agentes', + 'fr-FR': 'Mes agents', 'zh-CN': '我的', 'zh-TW': '我的', 'ru-RU': 'Мои агенты', - 'ja-JP': '私のエージェント' + 'ja-JP': '私のエージェント', + 'pt-PT': 'Meus Agentes' }, 职业: { + 'el-GR': 'Επαγγελμα', 'en-US': 'Career', + 'es-ES': 'Profesional', + 'fr-FR': 'Professionnel', 'zh-CN': '职业', 'zh-TW': '職業', 'ru-RU': 'Карьера', - 'ja-JP': 'キャリア' + 'ja-JP': 'キャリア', + 'pt-PT': 'Profissional' }, 商业: { + 'el-GR': 'Εμπορικός', 'en-US': 'Business', + 'es-ES': 'Negocio', + 'fr-FR': 'Commercial', 'zh-CN': '商业', 'zh-TW': '商業', 'ru-RU': 'Бизнес', - 'ja-JP': 'ビジネス' + 'ja-JP': 'ビジネス', + 'pt-PT': 'Negócio' }, 工具: { + 'el-GR': 'Εργαλεία', 'en-US': 'Tools', + 'es-ES': 'Herramientas', + 'fr-FR': 'Outils', 'zh-CN': '工具', 'zh-TW': '工具', 'ru-RU': 'Инструменты', - 'ja-JP': 'ツール' + 'ja-JP': 'ツール', + 'pt-PT': 'Ferramentas' }, 语言: { + 'el-GR': 'Γλώσσα', 'en-US': 'Language', + 'es-ES': 'Idioma', + 'fr-FR': 'Langue', 'zh-CN': '语言', 'zh-TW': '語言', 'ru-RU': 'Язык', - 'ja-JP': '言語' + 'ja-JP': '言語', + 'pt-PT': 'Idioma' }, 办公: { + 'el-GR': 'Γραφείο', 'en-US': 'Office', + 'es-ES': 'Oficina', + 'fr-FR': 'Bureau', 'zh-CN': '办公', 'zh-TW': '辦公', 'ru-RU': 'Офис', - 'ja-JP': 'オフィス' + 'ja-JP': 'オフィス', + 'pt-PT': 'Escritório' }, 通用: { + 'el-GR': 'Γενικά', 'en-US': 'General', + 'es-ES': 'General', + 'fr-FR': 'Général', 'zh-CN': '通用', 'zh-TW': '通用', 'ru-RU': 'Общее', - 'ja-JP': '一般' + 'ja-JP': '一般', + 'pt-PT': 'Geral' }, 写作: { + 'el-GR': 'Γράφημα', 'en-US': 'Writing', + 'es-ES': 'Escritura', + 'fr-FR': 'Écriture', 'zh-CN': '写作', 'zh-TW': '寫作', 'ru-RU': 'Письмо', - 'ja-JP': '書き込み' + 'ja-JP': '書き込み', + 'pt-PT': 'Escrita' }, 精选: { + 'el-GR': 'Επιλεγμένο', 'en-US': 'Featured', + 'es-ES': 'Destacado', + 'fr-FR': 'Sélection', 'zh-CN': '精选', 'zh-TW': '精選', 'ru-RU': 'Избранное', - 'ja-JP': '特集' + 'ja-JP': '特集', + 'pt-PT': 'Destaque' }, 编程: { + 'el-GR': 'Προγραμματισμός', 'en-US': 'Programming', + 'es-ES': 'Programación', + 'fr-FR': 'Programmation', 'zh-CN': '编程', 'zh-TW': '編程', 'ru-RU': 'Программирование', - 'ja-JP': 'プログラミング' + 'ja-JP': 'プログラミング', + 'pt-PT': 'Programação' }, 情感: { + 'el-GR': 'Αίσθημα', 'en-US': 'Emotion', + 'es-ES': 'Emoción', + 'fr-FR': 'Émotion', 'zh-CN': '情感', 'zh-TW': '情感', 'ru-RU': 'Эмоции', - 'ja-JP': '感情' + 'ja-JP': '感情', + 'pt-PT': 'Emoção' }, 教育: { + 'el-GR': 'Εκπαίδευση', 'en-US': 'Education', + 'es-ES': 'Educación', + 'fr-FR': 'Éducation', 'zh-CN': '教育', 'zh-TW': '教育', 'ru-RU': 'Образование', - 'ja-JP': '教育' + 'ja-JP': '教育', + 'pt-PT': 'Educação' }, 创意: { + 'el-GR': 'Κreativiteit', 'en-US': 'Creative', + 'es-ES': 'Creativo', + 'fr-FR': 'Créatif', 'zh-CN': '创意', 'zh-TW': '創意', 'ru-RU': 'Креатив', - 'ja-JP': 'クリエイティブ' + 'ja-JP': 'クリエイティブ', + 'pt-PT': 'Criativo' }, 学术: { + 'el-GR': 'Ακαδημικός', 'en-US': 'Academic', + 'es-ES': 'Académico', + 'fr-FR': 'Académique', 'zh-CN': '学术', 'zh-TW': '學術', 'ru-RU': 'Академический', - 'ja-JP': 'アカデミック' + 'ja-JP': 'アカデミック', + 'pt-PT': 'Académico' }, 设计: { + 'el-GR': 'Δημιουργικό', 'en-US': 'Design', + 'es-ES': 'Diseño', + 'fr-FR': 'Design', 'zh-CN': '设计', 'zh-TW': '設計', 'ru-RU': 'Дизайн', - 'ja-JP': 'デザイン' + 'ja-JP': 'デザイン', + 'pt-PT': 'Design' }, 艺术: { + 'el-GR': 'Τέχνη', 'en-US': 'Art', + 'es-ES': 'Arte', + 'fr-FR': 'Art', 'zh-CN': '艺术', 'zh-TW': '藝術', 'ru-RU': 'Искусство', - 'ja-JP': 'アート' + 'ja-JP': 'アート', + 'pt-PT': 'Arte' }, 娱乐: { + 'el-GR': 'Αναψυχή', 'en-US': 'Entertainment', + 'es-ES': 'Entretenimiento', + 'fr-FR': 'Divertissement', 'zh-CN': '娱乐', 'zh-TW': '娛樂', 'ru-RU': 'Развлечения', - 'ja-JP': 'エンターテイメント' + 'ja-JP': 'エンターテイメント', + 'pt-PT': 'Entretenimento' }, 生活: { + 'el-GR': 'Ζωή', 'en-US': 'Life', + 'es-ES': 'Vida', + 'fr-FR': 'Vie', 'zh-CN': '生活', 'zh-TW': '生活', 'ru-RU': 'Жизнь', - 'ja-JP': '生活' + 'ja-JP': '生活', + 'pt-PT': 'Vida' }, 医疗: { + 'el-GR': 'Υγεία', 'en-US': 'Medical', + 'es-ES': 'Médico', + 'fr-FR': 'Médical', 'zh-CN': '医疗', 'zh-TW': '醫療', 'ru-RU': 'Медицина', - 'ja-JP': '医療' + 'ja-JP': '医療', + 'pt-PT': 'Saúde' }, 游戏: { + 'el-GR': 'Παιχνίδια', 'en-US': 'Games', + 'es-ES': 'Juegos', + 'fr-FR': 'Jeux', 'zh-CN': '游戏', 'zh-TW': '遊戲', 'ru-RU': 'Игры', - 'ja-JP': 'ゲーム' + 'ja-JP': 'ゲーム', + 'pt-PT': 'Jogos' }, 翻译: { + 'el-GR': 'Γραφήματα', 'en-US': 'Translation', + 'es-ES': 'Traducción', + 'fr-FR': 'Traduction', 'zh-CN': '翻译', 'zh-TW': '翻譯', 'ru-RU': 'Перевод', - 'ja-JP': '翻訳' + 'ja-JP': '翻訳', + 'pt-PT': 'Tradução' }, 音乐: { + 'el-GR': 'Μουσική', 'en-US': 'Music', + 'es-ES': 'Música', + 'fr-FR': 'Musique', 'zh-CN': '音乐', 'zh-TW': '音樂', 'ru-RU': 'Музыка', - 'ja-JP': '音楽' + 'ja-JP': '音楽', + 'pt-PT': 'Música' }, 点评: { + 'el-GR': 'Αξιολόγηση', 'en-US': 'Review', + 'es-ES': 'Revisión', + 'fr-FR': 'Avis', 'zh-CN': '点评', 'zh-TW': '點評', 'ru-RU': 'Обзор', - 'ja-JP': 'レビュー' + 'ja-JP': 'レビュー', + 'pt-PT': 'Revisão' }, 文案: { + 'el-GR': 'Γραφήματα', 'en-US': 'Copywriting', + 'es-ES': 'Redacción', + 'fr-FR': 'Rédaction', 'zh-CN': '文案', 'zh-TW': '文案', 'ru-RU': 'Копирайтинг', - 'ja-JP': 'コピーライティング' + 'ja-JP': 'コピーライティング', + 'pt-PT': 'Escrita' }, 百科: { + 'el-GR': 'Εγκυκλοπαίδεια', 'en-US': 'Encyclopedia', + 'es-ES': 'Enciclopedia', + 'fr-FR': 'Encyclopédie', 'zh-CN': '百科', 'zh-TW': '百科', 'ru-RU': 'Энциклопедия', - 'ja-JP': '百科事典' + 'ja-JP': '百科事典', + 'pt-PT': 'Enciclopédia' }, 健康: { + 'el-GR': 'Υγεία', 'en-US': 'Health', + 'es-ES': 'Salud', + 'fr-FR': 'Santé', 'zh-CN': '健康', 'zh-TW': '健康', 'ru-RU': 'Здоровье', - 'ja-JP': '健康' + 'ja-JP': '健康', + 'pt-PT': 'Saúde' }, 营销: { + 'el-GR': 'Μάρκετινγκ', 'en-US': 'Marketing', + 'es-ES': 'Marketing', + 'fr-FR': 'Marketing', 'zh-CN': '营销', 'zh-TW': '營銷', 'ru-RU': 'Маркетинг', - 'ja-JP': 'マーケティング' + 'ja-JP': 'マーケティング', + 'pt-PT': 'Marketing' }, 科学: { + 'el-GR': 'Επιστήμη', 'en-US': 'Science', + 'es-ES': 'Ciencia', + 'fr-FR': 'Science', 'zh-CN': '科学', 'zh-TW': '科學', 'ru-RU': 'Наука', - 'ja-JP': '科学' + 'ja-JP': '科学', + 'pt-PT': 'Ciência' }, 分析: { + 'el-GR': 'Ανάλυση', 'en-US': 'Analysis', + 'es-ES': 'Análisis', + 'fr-FR': 'Analyse', 'zh-CN': '分析', 'zh-TW': '分析', 'ru-RU': 'Анализ', - 'ja-JP': '分析' + 'ja-JP': '分析', + 'pt-PT': 'Análise' }, 法律: { + 'el-GR': 'Νόμος', 'en-US': 'Legal', + 'es-ES': 'Legal', + 'fr-FR': 'Légal', 'zh-CN': '法律', 'zh-TW': '法律', 'ru-RU': 'Право', - 'ja-JP': '法律' + 'ja-JP': '法律', + 'pt-PT': 'Legal' }, 咨询: { + 'el-GR': 'Συμβουλή', 'en-US': 'Consulting', + 'es-ES': 'Consultoría', + 'fr-FR': 'Consultation', 'zh-CN': '咨询', 'zh-TW': '諮詢', 'ru-RU': 'Консалтинг', - 'ja-JP': 'コンサルティング' + 'ja-JP': 'コンサルティング', + 'pt-PT': 'Consultoria' }, 金融: { + 'el-GR': 'Φορολογία', 'en-US': 'Finance', + 'es-ES': 'Finanzas', + 'fr-FR': 'Finance', 'zh-CN': '金融', 'zh-TW': '金融', 'ru-RU': 'Финансы', - 'ja-JP': '金融' + 'ja-JP': '金融', + 'pt-PT': 'Finanças' }, 旅游: { + 'el-GR': 'Τουρισμός', 'en-US': 'Travel', + 'es-ES': 'Viajes', + 'fr-FR': 'Voyages', 'zh-CN': '旅游', 'zh-TW': '旅遊', 'ru-RU': 'Путешествия', - 'ja-JP': '旅行' + 'ja-JP': '旅行', + 'pt-PT': 'Viagens' }, 管理: { + 'el-GR': 'Διοίκηση', 'en-US': 'Management', + 'es-ES': 'Gestión', + 'fr-FR': 'Gestion', 'zh-CN': '管理', 'zh-TW': '管理', 'ru-RU': 'Управление', - 'ja-JP': '管理' + 'ja-JP': '管理', + 'pt-PT': 'Gestão' } } diff --git a/src/renderer/src/pages/settings/GeneralSettings.tsx b/src/renderer/src/pages/settings/GeneralSettings.tsx index eed439d8..34fe9d0c 100644 --- a/src/renderer/src/pages/settings/GeneralSettings.tsx +++ b/src/renderer/src/pages/settings/GeneralSettings.tsx @@ -96,8 +96,12 @@ const GeneralSettings: FC = () => { const languagesOptions: { value: LanguageVarious; label: string; flag: string }[] = [ { value: 'zh-CN', label: '中文', flag: '🇨🇳' }, { value: 'zh-TW', label: '中文(繁体)', flag: '🇭🇰' }, + { value: 'el-GR', label: 'Ελληνικά', flag: '🇬🇷' }, { value: 'en-US', label: 'English', flag: '🇺🇸' }, + { value: 'es-ES', label: 'Español', flag: '🇪🇸' }, + { value: 'fr-FR', label: 'Français', flag: '🇫🇷' }, { value: 'ja-JP', label: '日本語', flag: '🇯🇵' }, + { value: 'pt-PT', label: 'Português', flag: '🇵🇹' }, { value: 'ru-RU', label: 'Русский', flag: '🇷🇺' } ] diff --git a/src/renderer/src/types/index.ts b/src/renderer/src/types/index.ts index 10e981c8..e65a7f6b 100644 --- a/src/renderer/src/types/index.ts +++ b/src/renderer/src/types/index.ts @@ -199,9 +199,9 @@ export enum ThemeMode { auto = 'auto' } -export type LanguageVarious = 'zh-CN' | 'zh-TW' | 'en-US' | 'ru-RU' | 'ja-JP' +export type LanguageVarious = 'zh-CN' | 'zh-TW' | 'el-GR' | 'en-US' | 'es-ES' | 'fr-FR' | 'ja-JP' | 'pt-PT' | 'ru-RU' -export type TranslateLanguageVarious = 'chinese' | 'chinese-traditional' | 'english' | 'japanese' | 'russian' +export type TranslateLanguageVarious = 'chinese' | 'chinese-traditional' | 'greek' | 'english' | 'spanish' | 'french' | 'japanese' | 'portuguese' | 'russian' export type CodeStyleVarious = BuiltinTheme | 'auto'