From 284298b8b92c2af5af6840f6dc72d564d96f8139 Mon Sep 17 00:00:00 2001 From: Juliarscat Date: Sat, 13 Jun 2026 09:03:59 +0200 Subject: [PATCH 1/2] Added catalan translation --- i18n/locales/ca_ES.json | 5515 +++++++++++++++++++++++++++++ tools/msty_ca/GLOSSARI.md | 42 + tools/msty_ca/build.py | 93 + tools/msty_ca/source_paths.json | 3243 +++++++++++++++++ tools/msty_ca/source_strings.json | 3243 +++++++++++++++++ tools/msty_ca/tr_001.json | 131 + tools/msty_ca/tr_002.json | 201 ++ tools/msty_ca/tr_003.json | 191 + tools/msty_ca/tr_004.json | 220 ++ tools/msty_ca/tr_005.json | 221 ++ tools/msty_ca/tr_006.json | 217 ++ tools/msty_ca/tr_007.json | 216 ++ tools/msty_ca/tr_008.json | 221 ++ tools/msty_ca/tr_009.json | 221 ++ tools/msty_ca/tr_010.json | 221 ++ tools/msty_ca/tr_011.json | 221 ++ tools/msty_ca/tr_012.json | 221 ++ tools/msty_ca/tr_013.json | 221 ++ tools/msty_ca/tr_014.json | 221 ++ tools/msty_ca/tr_015.json | 201 ++ tools/msty_ca/tr_016.json | 127 + 21 files changed, 15408 insertions(+) create mode 100644 i18n/locales/ca_ES.json create mode 100644 tools/msty_ca/GLOSSARI.md create mode 100644 tools/msty_ca/build.py create mode 100644 tools/msty_ca/source_paths.json create mode 100644 tools/msty_ca/source_strings.json create mode 100644 tools/msty_ca/tr_001.json create mode 100644 tools/msty_ca/tr_002.json create mode 100644 tools/msty_ca/tr_003.json create mode 100644 tools/msty_ca/tr_004.json create mode 100644 tools/msty_ca/tr_005.json create mode 100644 tools/msty_ca/tr_006.json create mode 100644 tools/msty_ca/tr_007.json create mode 100644 tools/msty_ca/tr_008.json create mode 100644 tools/msty_ca/tr_009.json create mode 100644 tools/msty_ca/tr_010.json create mode 100644 tools/msty_ca/tr_011.json create mode 100644 tools/msty_ca/tr_012.json create mode 100644 tools/msty_ca/tr_013.json create mode 100644 tools/msty_ca/tr_014.json create mode 100644 tools/msty_ca/tr_015.json create mode 100644 tools/msty_ca/tr_016.json diff --git a/i18n/locales/ca_ES.json b/i18n/locales/ca_ES.json new file mode 100644 index 0000000..14d4b07 --- /dev/null +++ b/i18n/locales/ca_ES.json @@ -0,0 +1,5515 @@ +{ + "you": "Vós", + "select": "Selecciona", + "conversations": "Converses", + "copyToClipboard": "Copia al porta-retalls", + "toCopyMarkdownDirectly": "per copiar el markdown directament", + "clickToCopyMarkdownDirectly": "Feu clic per copiar el markdown directament", + "toShowMoreOptions": "per mostrar més opcions", + "longPressOrAltClickForMoreOptions": "Premeu llargament o Alt+clic per a més opcions", + "onMessage": "al missatge", + "selectModel": "@:select un model | @:select els models", + "manageModels": "@:manage els models", + "required": "Obligatori", + "optional": "Opcional", + "systemPrompt": "Indicació del sistema", + "systemPromptAttachMode": "Mode d'adjunció de la indicació del sistema", + "userPrompt": "Indicació de l'usuari", + "delete": "Suprimeix {item}", + "deleteAll": "Suprimeix-ho tot", + "create": "Crea", + "edit": "Edita", + "expandTextarea": "Amplia l'editor", + "collapseTextarea": "Replega l'editor", + "enable": "Activa", + "disable": "Desactiva", + "save": "Desa", + "saved": "Desat", + "cancel": "Cancel·la", + "close": "Tanca", + "bookmarked": "Marcat", + "pinned": "Fixat", + "update": "Actualitza", + "apply": "Aplica", + "reset": "Restableix", + "icon": "Icona", + "clear": "Esborra", + "apiKey": "Clau API", + "models": "Models", + "available": "{itemType} disponibles", + "unavailable": "No disponible", + "detected": "Detectat", + "continue": "Continua", + "undetected": "No detectat", + "welcome": "Us donem la benvinguda!", + "plan": "Pla", + "allChangesSaved": "S'han desat tots els canvis", + "toolbar": "Barra d'eines", + "bookmark": "Marcador | Marcadors", + "waitingMessage": { + "waiting": "S'està esperant :: Un moment :: Només un instant :: Un segon :: La paciència és una virtut :: Gairebé hi som :: S'està carregant la meravella", + "fetchingWebResults": "S'està cercant al web :: S'està navegant per internet :: S'està mirant en línia :: S'està escorcollant el web :: S'està consultant l'oracle :: S'està demanant amablement a internet :: S'està capbussant al ciberespai :: S'està minant el web", + "queryingKnowledgeStack": "S'està consultant la @:knowledgeStack.title :: S'està cercant en el vostre coneixement :: S'estan examinant els vostres documents :: S'està explorant la vostra base de coneixement :: S'està furgant en la vostra saviesa :: S'està consultant la vostra biblioteca digital :: S'estan examinant els vostres arxius :: S'està furgant en les vostres notes", + "preparingTools": "S'estan preparant les eines :: S'estan enllestint les eines :: S'estan configurant les eines :: S'estan carregant les eines :: S'estan esmolant els instruments :: S'està muntant la caixa d'eines :: S'estan escalfant els motors :: S'està preparant l'espai de treball", + "connectingToModel": "El model fa la seva màgia ✨ :: La IA està pensant :: S'està processant la vostra sol·licitud :: S'hi està treballant :: S'estan fent els càlculs :: Les neurones s'activen :: S'està reflexionant a fons :: S'està computant brillantor :: Mode cervell activat :: S'està invocant la intel·ligència", + "processingContext": "S'està processant el context :: S'està entenent el context :: S'està analitzant el context :: S'està llegint la situació :: S'estan lligant els caps :: S'està copsant la visió de conjunt :: S'està encaixant tot plegat :: S'està donant sentit a les coses", + "streaming": "S'està transmetent en temps real :: S'està enviant la resposta :: S'està lliurant la resposta :: S'està transmetent :: S'estan teletransportant els resultats :: De camí cap a vós :: En ruta cap a vós :: Arriba ben calent", + "scrubbingPIIData": "S'estan netejant les dades personals :: S'està protegint la vostra privadesa :: S'està suprimint la informació personal :: S'estan anonimitzant les dades :: S'estan guardant bé els secrets :: Mode de privadesa activat :: S'estan ocultant les parts sensibles :: Mode d'incògnit activat", + "synthesizingQuery": "S'està sintetitzant la consulta per a millors resultats :: S'està optimitzant la vostra pregunta :: S'està millorant la consulta :: S'estan afinant els termes de cerca :: S'està polint la vostra sol·licitud :: S'està ajustant la pregunta :: S'està creant la consulta perfecta :: S'està fent brillar les vostres paraules", + "fetchingLiveContexts": "S'estan obtenint els contextos en directe :: S'estan recollint dades en temps real :: S'estan obtenint coneixements nous :: S'està sincronitzant amb fonts en directe :: S'està accedint al flux de dades :: S'està recollint informació actual :: S'estan actualitzant els canals de context :: S'estan recol·lectant actualitzacions en directe :: S'està connectant amb el batec" + }, + "progress": { + "initializing": "S'està inicialitzant..." + }, + "add": "Afegeix", + "actionBar": { + "expandGroup": "Amplia {group}", + "collapseGroup": "Replega {group}", + "showExtraAddOns": "Mostra els complements addicionals", + "hideExtraAddOns": "Amaga els complements addicionals", + "groups": { + "model": "Model i indicacions", + "data": "Dades i coneixement", + "tools": "Eines i personalitats" + } + }, + "unauthorized": "No autoritzat", + "valid": "Vàlid", + "invalid": "No vàlid", + "done": "Fet!", + "confirm": "Confirma", + "shareWithSyncedSplits": "Comparteix amb les divisions sincronitzades", + "source": "Font | Fonts", + "groundingSources": "Fonts de fonamentació", + "manage": "Gestiona", + "chat": "Xat | Xats", + "advancedOptions": "Opcions avançades", + "duplicate": "Duplica", + "manageItem": "@:manage {item}", + "success": "Correcte!", + "notes": "Notes", + "viewNotes": "Mostra les notes", + "error": "Error!", + "warning": "Avís", + "authorized": "Autoritzat", + "notAuthorized": "No autoritzat", + "authorize": "Autoritza", + "reauthorize": "Torna a autoritzar", + "deauthorize": "Suprimeix l'autorització", + "failedToDelete": "No s'ha pogut suprimir", + "failedToSave": "No s'ha pogut desar", + "failedToUpdate": "No s'ha pogut actualitzar", + "updatedSuccess": "actualitzat.", + "applyAndShareWithSyncedSplits": "Aplica i comparteix amb les divisions sincronitzades", + "clickToEdit": "Feu clic per editar", + "clickToAddSystemPrompt": "Feu clic per afegir una indicació del sistema", + "pause": "Posa en pausa", + "resume": "Reprèn", + "retry": "Torna-ho a provar", + "stop": "Atura", + "run": "Executa", + "rerun": "Torna a executar", + "remove": "Elimina", + "skip": "Omet", + "unskip": "No ometis", + "startImporting": "Comença la importació", + "new": "Nou", + "entry": "Entrada | Entrades", + "import": "Importa", + "connect": "Connecta", + "disconnect": "Desconnecta", + "reconnect": "Torna a connectar", + "selectTargetFolder": "Selecciona la carpeta de destinació", + "createNewFolderForImport": "Crea una carpeta nova per als elements importats", + "newFolderName": "Nom de la carpeta nova", + "remote": "Remot", + "local": "Local", + "strength": "Punt fort | Punts forts", + "provider": "Proveïdor", + "capability": "{count} capacitat | {count} capacitats", + "preset": "Predefinit | Predefinits", + "saveAsPreset": "Desa com a predefinit", + "append": "Afegeix al final", + "prepend": "Afegeix al principi", + "replace": "Substitueix", + "description": "Descripció", + "mode": "Mode", + "addOns": "Complements", + "user": "Usuari", + "assistant": "Assistent", + "assistantMessage": "Missatge de l'assistent", + "connectionInfo": "Informació de connexió", + "export": "Exporta", + "exportOptions": "Opcions d'exportació", + "chooseFile": "Trieu un fitxer", + "purpose": "Finalitat", + "download": "Baixa", + "downloads": "Baixades", + "downloadAsJson": "Baixa com a JSON", + "install": "Instal·la", + "installed": "Instal·lat", + "modified": "Modificat", + "created": "Creat", + "minimize": "Minimitza", + "status": "Estat", + "type": "Tipus", + "yes": "Sí", + "fileSize": "Mida del fitxer", + "size": "Mida", + "likes": "M'agrada | M'agrada", + "cancelled": "Cancel·lat", + "parameterSize": "Mida dels paràmetres", + "quantization": "Quantització", + "quantizationLevel": "Nivell de quantització", + "contextSize": "Mida del context", + "defaultToModelMax": "Per defecte, el màxim del model", + "llamaCppContextSizeDescription": "Nombre màxim de tokens que el model processa alhora. Establiu-lo a 0 per fer servir el màxim del model. Els valors més alts augmenten l'ús de memòria. Aquest valor es desa globalment per a cada model amb LLaMa.cpp. El context es reparteix equitativament entre el nombre de sol·licituds simultànies definit a la configuració del servei LLaMa.cpp.", + "truncationStrategy": { + "truncateMiddle": "Trunca pel mig", + "truncateOld": "Trunca els antics", + "none": "Cap" + }, + "truncationStrategyDescription": "Com gestionar els missatges quan s'acosta el límit del context.", + "storage": "Emmagatzematge", + "params": "Paràmetres", + "arch": "Arquitectura", + "filter": "Filtre", + "treeControls": { + "title": "Ordena i mostra", + "searchPlaceholder": "Cerca...", + "clear": "Restableix", + "foldersFirst": "Primer les carpetes", + "itemsFirst": "Primer els elements", + "sort": { + "none": "Cap", + "name": "Nom", + "title": "Títol", + "created": "Creat", + "updated": "Actualitzat", + "lastUsed": "Darrer ús", + "ascending": "Ascendent", + "descending": "Descendent" + }, + "visibility": { + "label": "Visibilitat", + "empty": { + "show": "Mostra les carpetes buides", + "hide": "Amaga les carpetes buides" + }, + "counts": { + "show": "Mostra el recompte d'elements", + "hide": "Amaga el recompte d'elements" + } + } + }, + "noSearchResults": "No s'ha trobat cap {item} per a aquesta cerca", + "loading": "S'està carregant", + "invite": "Convida", + "refresh": "Actualitza", + "email": "Adreça electrònica", + "role": "Rol", + "admin": "Administrador", + "owner": "Propietari", + "inActive": "Inactiu", + "argument": "Argument|Arguments", + "abort": "Interromp", + "send": "Envia", + "remindMeLater": "Recorda-m'ho més tard", + "text": "Text", + "folders": "Carpetes", + "folder": "Carpeta | @:folders", + "title": "Títol", + "search": { + "label": "Cerca", + "scope": { + "active": "Actiu", + "archived": "Arxivat", + "all": "Tot" + } + }, + "fuzzySearch": { + "enabled": "Cerca aproximada activada", + "disabled": "Cerca aproximada desactivada", + "enabledHint": "Cerca aproximada activada. Feu clic per canviar", + "disabledHint": "Cerca aproximada desactivada. Feu clic per canviar" + }, + "none": "Cap", + "change": "Canvia", + "expandAllProjects": "Amplia tots els projectes", + "collapseAllProjects": "Replega tots els projectes", + "expandAllFolders": "Amplia totes les carpetes", + "collapseAllFolders": "Replega totes les carpetes", + "clone": { + "title": "Clona {item}", + "successMessage": { + "detail": "S'ha clonat {item}" + }, + "errorMessage": { + "detail": "No s'ha pogut clonar {item}" + } + }, + "notesPurposePlaceholder": "Afegiu notes que us ajudin a recordar la finalitat d'aquest {item}; també les veuran els models, cosa que els proporciona més detalls sobre com utilitzar aquest {item} (@:optional)", + "endpointTestResults": "Resultats de la prova del punt final", + "testConnection": "Prova la connexió", + "emptyPlaceholder": "No s'ha trobat cap {item}", + "selectItem": "@:select {item}", + "selectedItemLabel": "{count} {title}", + "feature": "Funcionalitat|Funcionalitats", + "raw": "En brut", + "rawOutput": "Sortida en brut", + "property": "Propietat|Propietats", + "configure": "Configura", + "context": "Context | Contextos", + "path": "Camí | Camins", + "project": { + "title": "Projecte | Projectes", + "createRootProject": "Projecte nou a l'arrel", + "projectName": "Nom del projecte", + "projectDescription": "Descripció del projecte", + "defaultModel": "Model per defecte", + "customInstructions": "Instruccions personalitzades", + "addChildProject": "Afegeix un projecte fill", + "promoteToRoot": { + "title": "Mou la carpeta a l'arrel", + "errorMessage": { + "detail": "No s'ha pogut moure el projecte a l'arrel." + }, + "successMessage": { + "detail": "El projecte s'ha mogut correctament a l'arrel." + } + }, + "deleteProject": "Suprimeix el projecte", + "setDefaultForNewConversations": "Estableix com a projecte per defecte", + "unsetDefaultForNewConversations": "Desfés el projecte per defecte", + "orphanageProjectName": "Divers", + "includeProjectContext": "Inclou el context del projecte", + "deleteConfirmation": { + "header": "Suprimeix el projecte", + "message": "Segur que voleu suprimir {projectName} i totes les seves converses?", + "rejectLabel": "@:cancel", + "acceptLabel": "Suprimeix", + "successMessage": { + "detail": "S'ha suprimit el projecte" + } + }, + "deleteAllConversations": { + "title": "Suprimeix totes les converses", + "description": "Segur que voleu suprimir totes les converses de {projectName}? Aquesta acció no es pot desfer.", + "successMessage": { + "detail": "S'ha suprimit {count} conversa | S'han suprimit {count} converses", + "empty": "No hi ha converses per suprimir" + }, + "errorMessage": { + "detail": "No s'han pogut suprimir les converses" + } + }, + "archiveAllConversations": { + "title": "Arxiva totes les converses", + "description": "Voleu arxivar totes les converses de {projectName}? Es mouran a l'arxiu i es podran restaurar més endavant.", + "confirmLabel": "Arxiva-ho tot", + "successMessage": { + "detail": "S'ha arxivat {count} conversa | S'han arxivat {count} converses" + }, + "errorMessage": { + "detail": "No s'han pogut arxivar les converses" + } + }, + "projectForm": { + "addFiles": "Afegeix fitxers", + "editProject": "Edita el projecte", + "createNewProject": "Projecte nou", + "dragAndDropFiles": "Arrossegueu i deixeu anar els fitxers que s'adjuntaran a cada conversa d'aquest projecte.", + "successMessage": { + "createDetail": "S'ha creat el projecte", + "createDetailHidden": "S'ha creat el projecte! De moment està amagat perquè és buit. Feu clic al botó de sota per mostrar-lo ara, o apareixerà automàticament quan hi afegiu la primera conversa.", + "updateDetail": "S'ha actualitzat el projecte" + }, + "errorMessage": { + "createDetail": "No s'ha pogut crear el projecte", + "updateDetail": "No s'ha pogut actualitzar el projecte" + } + }, + "emptyProjectVisibilityToast": { + "showButton": "Mostra els projectes buits", + "enabled": "Ara els projectes buits són visibles" + }, + "startNewToGetStarted": "Inicieu una conversa nova per començar" + }, + "selectedModel": "Model seleccionat", + "endpoint": "Punt final", + "authToken": "Testimoni d'autenticació", + "before": "Abans", + "after": "Després", + "method": "Mètode", + "httpMethod": "@:method HTTP", + "get": "Get", + "post": "Post", + "presetAlreadyExistsMessage": "Ja existeix un predefinit amb el mateix nom.", + "duplicatePresetOverwriteMessage": "@:presetAlreadyExistsMessage Si el deseu, se sobreescriurà el predefinit existent.", + "noPropsAvailable": "No hi ha cap {propsName} disponible. Afegiu-ne un de personalitzat.", + "localAI": "IA local", + "branch": { + "clickToLabel": "Feu clic per afegir una etiqueta", + "labelPlaceholder": "Etiqueta de la branca (màx. 30 car.)", + "labelBranch": "Etiqueta la branca...", + "labelDialogTitle": "Etiqueta la branca", + "noLabel": "Sense etiqueta", + "clickForOptions": "Feu clic per a més opcions", + "timeline": { + "title": "Explorador de branques", + "viewAll": "Explorador de branques...", + "branchNumber": "Branca {n}", + "current": "Actual", + "branches": "Branques", + "compare": "Compara" + }, + "diff": { + "title": "Compara les branques", + "compare": "Compara les branques", + "exitCompare": "Surt del mode de comparació", + "selectFirst": "Seleccioneu la primera branca a comparar", + "selectSecond": "Seleccioneu la segona branca a comparar", + "selected": "Seleccionat", + "identical": "El contingut és idèntic", + "leftBranch": "Primera branca", + "rightBranch": "Segona branca", + "selectBranch": "Seleccioneu una branca", + "selectBranchesToCompare": "Seleccioneu dues branques a dalt per comparar-ne el contingut", + "switchToBranch": "Canvia a {name}", + "viewDiff": "Diferències", + "viewSideBySide": "Costat per costat" + } + }, + "conversation": { + "title": "Conversa | Converses", + "conversationTitle": "Títol de la conversa", + "contextShieldErrorMessage": { + "summary": "No s'ha pogut generar el resum del context.", + "detail": "Consulteu Configuració > Notificacions per a més detalls." + }, + "sendErrorMessage": { + "summary": "No s'ha pogut enviar el missatge.", + "detail": "Consulteu Configuració > Notificacions per a més detalls. {error}" + }, + "contextSizeError": { + "summary": "El missatge supera el límit del context", + "detail": "El vostre missatge amb els resultats de la cerca i el context és massa gran per a aquest model. Proveu de: augmentar la mida del context des dels paràmetres del model, reduir els resultats de la cerca, esborrar l'historial de la conversa, fer servir un model amb un context més gran (16k+) o escurçar les instruccions del sistema." + }, + "deleteConversation": "Suprimeix la conversa", + "addNewConversation": "Afegeix una conversa nova", + "newConversation": "Conversa nova", + "treeControls": { + "title": "Ordena i mostra", + "projectSort": { + "none": "Cap", + "name": "Nom", + "created": "Creat", + "ascending": "Ascendent", + "descending": "Descendent", + "projectsFirst": "Primer els projectes" + }, + "conversationSort": { + "none": "Cap", + "title": "Títol", + "created": "Creat", + "lastActivity": "Darrera activitat", + "ascending": "Ascendent", + "descending": "Descendent" + }, + "priority": { + "none": "Sense prioritat", + "pinned": "Primer els fixats", + "bookmarked": "Primer els marcats" + }, + "visibility": { + "label": "Visibilitat", + "recents": { + "show": "Mostra els recents i els fixats", + "hide": "Amaga els recents i els fixats" + }, + "archive": { + "show": "Mostra l'arxiu", + "hide": "Amaga l'arxiu" + }, + "empty": { + "show": "Mostra els projectes buits", + "hide": "Amaga els projectes buits" + }, + "counts": { + "show": "Mostra el recompte de converses", + "hide": "Amaga el recompte de converses" + } + }, + "clear": "Restableix" + }, + "promptPlaceHolder": { + "normal": { + "focused": "Premeu {trigger} per a ordres ràpides O comenceu a escriure...", + "unfocused": "Premeu / per posar el focus aquí i començar a escriure" + } + }, + "deleteConfirmation": { + "header": "Suprimeix la conversa", + "message": "Segur que voleu suprimir la conversa seleccionada i totes les seves divisions de xat? | Segur que voleu suprimir les converses seleccionades i totes les seves divisions de xat?", + "rejectLabel": "Cancel·la", + "acceptLabel": "Suprimeix", + "successMessage": { + "detail": "S'ha suprimit la conversa" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir la conversa" + } + }, + "convertToChat": { + "title": "Converteix en xat", + "successMessage": { + "detail": "S'ha convertit la conversa en xat" + }, + "errorMessage": { + "detail": "No s'ha pogut convertir la conversa en xat" + } + }, + "convertToForgeCanvas": { + "title": "Converteix en @:forge.forgeCanvas", + "successMessage": { + "detail": "S'ha convertit la conversa en @:forge.forgeCanvas" + }, + "errorMessage": { + "detail": "No s'ha pogut convertir la conversa en @:forge.forgeCanvas" + } + }, + "cloneAncestorsSuccess": { + "detail": "Els missatges s'han clonat correctament a la nova divisió" + }, + "cloneAncestorsError": { + "detail": "No s'han pogut clonar els missatges a la nova divisió" + }, + "cloneAncestorsToNewConversationSuccess": { + "detail": "Els missatges s'han clonat correctament a la nova conversa" + }, + "cloneAncestorsToNewConversationError": { + "detail": "No s'han pogut clonar els missatges a la nova conversa" + }, + "archive": { + "groupLabel": "Arxiva", + "orphanProject": "Conversa òrfena", + "bannerMessage": "Aquesta conversa està arxivada. Desarxiveu-la per continuar la conversa.", + "bannerHint": "En enviar un missatge nou, es desarxivarà automàticament.", + "unarchiveAction": "Desarxiva", + "autoUnarchivedToast": "La conversa s'ha desarxivat automàticament.", + "archivedToast": "S'ha arxivat {count} conversa | S'han arxivat {count} converses", + "unarchivedToast": "S'ha restaurat {count} conversa | S'han restaurat {count} converses", + "archiveSingle": "Arxiva", + "unarchiveSingle": "Desarxiva", + "unload": "Descarrega els elements arxivats", + "unloaded": "S'han descarregat els elements arxivats", + "error": "No s'ha pogut actualitzar l'estat de l'arxiu. Torneu-ho a provar.", + "archiveMultiple": "Arxiva {item}" + } + }, + "conversationActions": { + "exportConversation": { + "title": "Exporta la conversa com a JSON", + "successMessage": "Les converses s'han exportat correctament com a JSON" + }, + "showAllSplits": "Mostra totes les divisions", + "saveSplitsAs": "Desa les divisions com a", + "newSingleSplitChat": "Xat nou d'una sola divisió", + "splitPreset": "Predefinit de divisió | Predefinits de divisió", + "splitPresetForm": { + "saveTitle": "Desa les divisions com a predefinit", + "editTitle": "Edita el predefinit de divisió {presetName}", + "presetName": "Nom del predefinit", + "presetOptions": "Opcions del predefinit", + "presetOptionsPlaceholder": "Selecciona les opcions del predefinit", + "savePreset": "Desa el predefinit", + "successMessage": { + "saveDetail": "S'ha afegit el predefinit de divisió", + "editDetail": "S'ha actualitzat el predefinit de divisió" + }, + "errorMessage": { + "saveDetail": "No s'ha pogut desar el predefinit de divisió" + } + }, + "deleteSplitPresetConfirmation": { + "header": "Suprimeix el predefinit de divisió", + "message": "Segur que voleu suprimir {splitPresetName}? ", + "successMessage": { + "detail": "S'ha suprimit el predefinit de divisió" + } + }, + "compactMode": "Mode compacte", + "enableCompactMode": "Activa el mode compacte", + "disableCompactMode": "Desactiva el mode compacte", + "splitWidths": { + "title": "Amplada de les divisions", + "slim": "Estret", + "balanced": "Equilibrat", + "roomy": "Ample", + "spacious": "Espaiós", + "full": "Complet" + } + }, + "responseConfiguration": { + "title": "Configuració de la resposta", + "selectPresetPlaceholder": "Seleccioneu un predefinit...", + "saveAsPreset": "Desa com a predefinit", + "commonSettings": { + "title": "Configuració comuna" + }, + "advancedParameters": { + "title": "Paràmetres avançats", + "description": "Objecte JSON per a paràmetres avançats del model", + "placeholder": "" + }, + "providerOptions": { + "title": "Opcions del proveïdor", + "description": "Configuració específica del proveïdor", + "placeholder": "" + }, + "thinkingConfig": { + "title": "Configuració del raonament", + "description": "Configuració del raonament ampliat", + "notice": "El proveïdor pot ignorar o respectar parcialment la configuració del raonament" + }, + "customParameters": { + "title": "Paràmetres personalitzats", + "helper": "El proveïdor pot ignorar-los o respectar-los parcialment", + "keyPlaceholder": "custom_param", + "valuePlaceholder": "valor", + "deleteConfirm": { + "title": "Suprimeix el paràmetre", + "message": "Voleu suprimir el paràmetre personalitzat «{param}»?" + }, + "errors": { + "missingKey": "La clau del paràmetre és obligatòria.", + "reserved": "Aquesta clau està reservada per als paràmetres integrats.", + "duplicate": "Ja existeix un paràmetre amb aquesta clau." + } + }, + "json": { + "invalid": "JSON no vàlid" + }, + "tooltips": { + "constraintMode": "El mode de restricció està activat", + "freeformMode": "El mode lliure està activat: sense límits mín./màx." + }, + "expandOtherOptions": "Amplia per veure altres opcions", + "collapseOtherOptions": "Replega les altres opcions", + "parameters": { + "temperature": { + "label": "Temperatura", + "helper": "Controla l'aleatorietat (0=concentrat, 2=creatiu)" + }, + "topP": { + "label": "Top P", + "helper": "Massa de probabilitat que es manté durant el mostreig de nucli" + }, + "topK": { + "label": "Top K", + "helper": "Limita la selecció de tokens als K tokens principals" + }, + "maxOutputTokens": { + "label": "Màxim de tokens de sortida", + "helper": "Nombre màxim de tokens per a les respostes", + "helperWithLimit": "Nombre màxim de tokens per a les respostes (límit {0})" + }, + "numCtx": { + "label": "Mida de la finestra de context", + "helper": "Nombre màxim de tokens acceptats a la indicació", + "helperWithLimit": "Nombre màxim de tokens acceptats a la indicació (límit {0})", + "llamaCppHint": "Establiu-lo a 0 per fer servir la mida màxima de context del model" + }, + "presencePenalty": { + "label": "Penalització de presència", + "helper": "Penalitza els tokens nous segons si ja apareixen al text" + }, + "frequencyPenalty": { + "label": "Penalització de freqüència", + "helper": "Penalitza els tokens segons la freqüència al text fins ara" + }, + "repeatPenalty": { + "label": "Penalització de repetició", + "helper": "Desincentiva la repetició de frases" + }, + "repeatLastN": { + "label": "Repeteix els últims N", + "helper": "Finestra de context per aplicar la penalització de repetició" + }, + "minP": { + "label": "Min P", + "helper": "Probabilitat acumulada mínima per a la selecció de tokens" + }, + "mirostat": { + "label": "Mirostat", + "helper": "Estabilitza la perplexitat dinàmicament", + "options": { + "off": "Desactivat", + "v1": "Mirostat 1.0", + "v2": "Mirostat 2.0" + } + }, + "mirostatTau": { + "label": "Mirostat Tau", + "helper": "Nivell de sorpresa objectiu (més baix = més segur)" + }, + "mirostatEta": { + "label": "Mirostat Eta", + "helper": "Taxa d'aprenentatge per a l'ajust de Mirostat" + }, + "numGpu": { + "label": "Capes de GPU", + "helper": "Nombre de capes que es descarreguen a la GPU" + }, + "numThread": { + "label": "Fils", + "helper": "Fils de CPU que s'utilitzen per a la generació" + } + } + }, + "modelParams": { + "params": "Paràmetres", + "title": "Paràmetres del model", + "advancedParams": "Paràmetres avançats", + "providerOptions": "Opcions del proveïdor", + "maxTokens": "Màxim de tokens de sortida (antic)", + "maxOutputTokens": "Màxim de tokens de sortida", + "temperature": "Temperatura", + "topP": "Top P", + "presencePenalty": "Penalització de presència", + "frequencyPenalty": "Penalització de freqüència", + "numCtx": "@:size de la finestra de context", + "numGpu": "Nombre de capes de GPU", + "selectPlaceholder": "@:select o insereix un paràmetre", + "selectPresetPlaceholder": "@:select un predefinit", + "saveAsPreset": "Desa com a predefinit", + "addParameter": "Afegeix un paràmetre nou", + "extraParams": "Paràmetres addicionals", + "applyAndSaveAsDefault": "Aplica i desa com a valor per defecte del model", + "savePresetForm": { + "title": "Desa els paràmetres com a predefinit", + "errorMessage": { + "detail": "No s'ha pogut desar el predefinit de paràmetres." + }, + "successMessage": { + "detail": "S'ha desat el predefinit de paràmetres." + } + }, + "deletePresetConfirm": { + "title": "Suprimeix el predefinit", + "message": "Segur que voleu suprimir {presetName}?", + "errorMessage": { + "detail": "No s'ha pogut suprimir el predefinit de paràmetres." + }, + "successMessage": { + "detail": "S'ha suprimit el predefinit de paràmetres." + } + }, + "thinkingEffort": { + "label": "Esforç de raonament", + "light": "Raona lleugerament", + "moderate": "Raona moderadament", + "deep": "Raona a fons", + "default": "Per defecte", + "none": "Cap", + "dynamic": "Dinàmic", + "exclude": "Exclou" + } + }, + "chatSplitActions": { + "title": "Opcions de divisió", + "addSplitChat": "Afegeix un xat dividit", + "hideSplit": "Amaga la divisió", + "copySplitToNewConversation": "Copia la divisió a una conversa nova", + "moveSplitToNewConversation": "Mou la divisió a una conversa nova", + "deleteSplit": "Suprimeix la divisió", + "removeSplit": "Elimina la divisió", + "splitRemoved": "S'ha eliminat la divisió", + "splitReset": "S'ha restablert la divisió", + "copySplitToNewConversationSuccess": { + "detail": "S'ha copiat la divisió a una conversa nova" + }, + "moveSplitToNewConversationSuccess": { + "detail": "S'ha mogut la divisió a una conversa nova" + }, + "copySplitToNewConversationError": { + "detail": "No s'ha pogut copiar la divisió a una conversa nova" + }, + "moveSplitToNewConversationError": { + "detail": "No s'ha pogut moure la divisió a una conversa nova" + }, + "exportOrCopyChat": { + "exportChat": "Exporta el xat", + "copyChat": "Copia el xat", + "activeBranchAsJson": "Branca activa com a JSON", + "activeBranchAsMarkdown": "Branca activa com a Markdown", + "allBranchesAsJson": "Totes les branques com a JSON", + "successMessage": "S'ha {action} el xat com a {format}", + "action": { + "export": "exportat", + "copy": "copiat" + } + }, + "showAllHiddenMessages": { + "title": "Mostra tots els missatges amagats", + "successMessage": { + "detail": "Ara tots els missatges amagats són visibles" + } + }, + "deleteConfirmation": { + "header": "Suprimeix la divisió", + "message": "Segur que voleu suprimir aquesta divisió?", + "rejectLabel": "@:cancel", + "acceptLabel": "Suprimeix" + } + }, + "message": { + "title": "Missatge|Missatges", + "currentMessageAndDescendants": "Missatge i descendents", + "sendOnEnter": "Envia amb Retorn", + "sendModifier": { + "label": "Modificador d'enviament", + "none": "Cap", + "shift": "Maj", + "alt": "Alt", + "ctrl": "Ctrl", + "meta": "Meta" + }, + "resendUserMessage": "Torna a enviar el missatge de l'usuari", + "sendAsAssistantMessage": "Envia com a missatge de l'assistent", + "sendAsAssistantMessageHelp": "Enviar un missatge com a «Assistent» us permet donar forma a la conversa afegint vós mateix respostes de la IA. La IA continuarà com si hagués escrit aquell missatge. És útil per aportar context o orientar les respostes.", + "sentAsAssistantBadge": "Enviat com a missatge de l'assistent", + "manuallyEdited": "Editat manualment", + "stopGeneration": "Atura", + "renderingActions": { + "bookmark": "Marca el missatge | Marca els missatges", + "removeBookmark": "Treu el marcador | Treu els marcadors", + "deleteMessage": "Suprimeix el missatge | Suprimeix els missatges", + "removeMessage": "Elimina el missatge", + "regenerateAssistantMessage": "Regenera el missatge de l'assistent com a branca nova", + "continueGeneration": "Continua la generació", + "useAsPromptInNewSplit": "Fes-lo servir com a indicació en una divisió nova", + "foldUp": "Plega els missatges de dalt", + "unfold": "Desplega els missatges de dalt", + "cloneAncestorsToNewSplit": "Clona amb els ascendents a una divisió nova", + "cloneAncestorsToNewConversation": "Clona amb els ascendents a una conversa nova", + "extraActions": "Accions addicionals" + }, + "noModelSelectedErrorMessage": { + "detail": "No s'ha seleccionat cap model. Seleccioneu un model per enviar un missatge" + }, + "currentMessageDeleteConfirmation": { + "header": "Suprimeix el missatge", + "message": "Segur que voleu suprimir aquest missatge?" + }, + "currentMessageAndDescendantsDeleteConfirmation": { + "header": "Suprimeix el missatge i els seus descendents", + "message": "Segur que voleu suprimir aquest missatge i tots els seus descendents?" + } + }, + "slashCommands": { + "title": "Ordres ràpides", + "noMatches": "No hi ha ordres coincidents", + "hint": "Escriviu \\ seguit d'una ordre o àlies", + "executed": { + "regenerate": "S'està regenerant el missatge...", + "shield": "S'ha aplicat l'escut de context", + "compress": "S'està comprimint amb l'escut...", + "bookmark": "Missatge marcat", + "copy": "S'ha copiat al porta-retalls", + "continue": "S'està continuant la generació...", + "resend": "S'està reenviant el missatge..." + } + }, + "shiftcutMode": { + "title": "Shiftcuts", + "description": "Activa o desactiva la funció Shiftcuts. A diferència de les dreceres de teclat estàndard, els Shiftcuts s'activen prement dues vegades la tecla Maj i després una altra tecla per executar una acció; per exemple: «t» per obrir un xat dividit nou, «e» per obrir el selector d'entorn, «1» per mostrar o amagar la barra lateral i «m» per obrir el minimapa." + }, + "urlEndpoint": "Punt final de l'URL", + "giveUniqueNamePlaceholder": "Poseu-li un nom únic", + "duplicateName": "El nom de {item} està duplicat o no és vàlid. Introduïu un nom únic.", + "manageData": { + "firstBackupReminder": "No heu fet cap còpia de seguretat de les dades. Voleu exportar-les per fer-ne una còpia?", + "scheduledBackupReminder": "Fa 24 h de la darrera còpia de seguretat. Voleu exportar les dades per fer-ne una còpia?", + "nonPersistentStorage": "El navegador pot esborrar l'emmagatzematge si hi ha manca d'espai. Us recomanem fer còpies de seguretat de les dades regularment.", + "exportData": "Exporta les dades", + "clearData": "Esborra les dades", + "restoreData": "Restaura les dades", + "dragAndDropExportedData": "Arrossegueu i deixeu anar la còpia de seguretat de les dades des de la qual voleu restaurar.", + "restoreDataWarning": "Restaurar des d'un fitxer de còpia de seguretat reemplaçarà totes les dades existents. Us recomanem exportar primer una còpia de seguretat.", + "exportErrorMessage": { + "detail": "No s'han pogut exportar les dades" + }, + "backupData": "Fes una còpia de seguretat de les dades", + "exportSuccessMessage": { + "detail": "S'han exportat les dades" + }, + "clearErrorMessage": { + "detail": "No s'han pogut esborrar les dades" + }, + "clearSuccessMessage": { + "detail": "S'han esborrat les dades" + }, + "confirmationActionPlaceholder": "Introduïu «{string}» aquí", + "proceedWithConfirmationAction": "Introduïu «{string}» a continuació per continuar", + "invalidConfirmationString": { + "summary": "@:warning", + "detail": "La confirmació no és vàlida. Introduïu «{string}» per continuar." + }, + "clearDataConfirmation": { + "header": "Esborra les dades", + "message": "Segur que voleu esborrar totes les dades? Aquesta acció no es pot desfer.", + "rejectLabel": "Cancel·la", + "acceptLabel": "Esborra" + }, + "restoreDataConfirmation": { + "fileNotSelectedWarning": { + "summary": "@:warning", + "message": "Seleccioneu un fitxer des del qual restaurar" + }, + "header": "Restaura les dades", + "message": "Segur que voleu restaurar totes les dades? Aquesta acció reemplaçarà totes les dades existents i no es pot desfer. Us recomanem exportar primer una còpia de seguretat.", + "rejectLabel": "Cancel·la", + "acceptLabel": "Restaura" + }, + "importDataSuccessMessage": { + "detail": "S'han importat les dades" + }, + "importDataErrorMessage": { + "detail": "No s'han pogut importar les dades" + } + }, + "setupItem": { + "label": "Configura {item}", + "success": "S'ha completat la configuració de {item}", + "failure": "No s'ha pogut configurar {item}" + }, + "onboard": { + "greeting": "Us donem la benvinguda a Msty Studio!", + "getStarted": "Necessitem com a mínim un proveïdor de models per començar.", + "desktop": { + "greeting": "Us donem la benvinguda a Msty!", + "getStarted": "Com voleu començar?", + "customLocation": { + "title": "Teniu models d'Ollama/Msty?", + "titleMLX": "Teniu models MLX?", + "titleLlamaCpp": "Teniu models de LLaMA.cpp?", + "description": "Podeu utilitzar directament els models d'Ollama o de Msty que ja tingueu, si en teniu, o bé especificar una ubicació personalitzada. Nota: continuarem fent servir el nostre propi servei per executar aquests models.", + "descriptionMLX": "Si encara no teniu cap model MLX, podeu especificar una ubicació personalitzada on voleu desar-los.", + "descriptionMLXWithSwama": "Hem trobat models MLX a la memòria cau del vostre Hugging Face Hub! Els podeu utilitzar directament o especificar una ubicació personalitzada.", + "descriptionLlamaCpp": "Especifiqueu una ubicació personalitzada on voleu desar els vostres models GGUF per a LLaMA.cpp.", + "noLocationSet": "No s'ha definit cap ubicació", + "setYourOwn": "Definiu-ne una de pròpia", + "notAvailableForMLX": "Les ubicacions de models personalitzades no estan disponibles per a MLX", + "placeholder": "Introduïu el camí dels models personalitzats" + }, + "setupLocalAI": { + "description": "Per començar, es baixarà {modelName}. Podeu triar un model diferent.", + "pros": { + "item1": "Feu servir models com ara DeepSeek R1, Meta Llama4, Microsoft Phi4, IBM Granite, Google Gemma, etc.", + "item2": "Useu-lo sense connexió i mantingueu les vostres dades privades", + "item3": "Els models es poden baixar i utilitzar de franc", + "item4": "Instal·leu i feu servir models especialitzats" + }, + "cons": { + "item1": "Necessita emmagatzematge i memòria addicionals" + }, + "successMessage": { + "summary": "Ja està!", + "detail": "Ara ja podeu començar a xatejar amb els vostres models de manera privada i segura." + }, + "errorMessage": { + "summary": "Error en configurar @:localAIService", + "detail": "No hem pogut configurar @:localAIService{'.'} Reviseu els registres per a més detalls. {errorMessage}", + "epermDetail": "Hi ha hagut un problema de permisos en configurar la IA local. Podeu tornar a executar l'aplicació com a administrador (no recomanat) o bé plantejar-vos instal·lar l'aplicació només per a un sol usuari (recomanat).", + "abortDetail": "{errorMessage} Plantegeu-vos instal·lar la IA local des dels fitxers d'arxiu si continueu rebent aquest error. Visiteu https://docs.msty.studio/getting-started/onboarding" + } + }, + "setupMLX": { + "errorMessage": { + "summary": "Error en configurar el servei MLX", + "detail": "No hem pogut configurar el servei MLX. Reviseu els registres per a més detalls. {errorMessage}" + }, + "description": "Per començar, es baixarà {modelName}. MLX és el marc de treball d'Apple optimitzat per a Apple Silicon.", + "experimentalInfo": "MLX es troba actualment en mode experimental. Pot tenir algunes limitacions i imperfeccions. Comuniqueu qualsevol problema a l'equip.", + "pros": { + "item1": "Optimitzat per a Apple Silicon (M1, M2, M3, M4)", + "item2": "Ús eficient de la memòria amb arquitectura de memòria unificada", + "item3": "Admet models MLX, SafeTensors i GGUF", + "item4": "Rendiment natiu a macOS" + }, + "cons": { + "item1": "Només disponible als Mac amb Apple Silicon", + "item2": "Selecció de models més reduïda en comparació amb Ollama" + }, + "successMessage": { + "summary": "Configuració d'MLX completada!", + "detail": "Ara podeu fer servir models MLX amb un rendiment òptim al vostre Mac." + }, + "progress": { + "checkingCompatibility": "S'està comprovant la compatibilitat del sistema...", + "downloadingBinary": "S'està baixant el servidor MLX...", + "startingService": "S'està iniciant el servei MLX...", + "settingUp": "S'està configurant l'MLX...", + "downloadProgress": "S'està baixant el model: {progress}%" + } + }, + "setupLlamaCpp": { + "experimentalInfo": "La compatibilitat amb LLaMA.cpp és experimental i s'està desenvolupant activament", + "errorMessage": { + "summary": "Error en configurar el servei LLaMA.cpp", + "detail": "No hem pogut configurar el servei LLaMA.cpp. Reviseu els registres per a més detalls. {errorMessage}" + }, + "description": "Per començar, es baixarà {modelName}. LLaMA.cpp ofereix una inferència d'IA eficient i multiplataforma.", + "pros": { + "item1": "Funciona a Windows, macOS i Linux", + "item2": "Admet acceleració tant per CPU com per GPU", + "item3": "Ús eficient de la memòria i inferència ràpida", + "item4": "Compatible amb el format de model GGUF" + }, + "cons": { + "item1": "Requereix l'aplicació d'escriptori", + "item2": "El rendiment depèn de la configuració del maquinari" + }, + "successMessage": { + "summary": "Configuració de LLaMA.cpp completada!", + "detail": "Ara podeu fer servir models de LLaMA.cpp amb un rendiment eficient al vostre sistema." + }, + "progress": { + "checkingCompatibility": "S'està comprovant la compatibilitat del sistema...", + "downloadingBinary": "S'està baixant el servidor de LLaMA.cpp...", + "startingService": "S'està iniciant el servei de LLaMA.cpp...", + "settingUp": "S'està configurant LLaMA.cpp...", + "downloadProgress": "S'està baixant: {progress}%" + } + }, + "addRemoteModelsProvider": { + "description": "Amb la majoria de proveïdors en línia, us caldrà obtenir una clau API del lloc web del proveïdor. {findYourKey}", + "findYourKey": "Trobeu la vostra clau API", + "pros": { + "item1": "Feu servir OpenAI, Azure, Claude Sonnet, Google Gemini, Perplexity, Ollama remot, Msty remot, etc.", + "item2": "Comenceu sense baixar cap model", + "item3": "Alguns proveïdors ofereixen funcions addicionals com ara la generació d'imatges, la cerca web, etc." + }, + "cons": { + "item1": "Requereix connexió a internet per xatejar", + "item2": "Es poden aplicar càrrecs del proveïdor" + } + } + }, + "modelsAvailableCount": "{count} model disponible | {count} models disponibles", + "modelsAddedCount": "S'ha afegit {count} model | S'han afegit {count} models", + "forgetThisProvider": "Oblida aquest proveïdor", + "submitAndContinue": "Som-hi!", + "getSidecar": "No teniu @:localAI? Obteniu @:remoteToolsConnector.title per a una configuració amb un sol clic", + "completedWithProvider": { + "summary": "Ja està!", + "detail": "Ara ja podeu xatejar amb un dels models de {providerName}." + }, + "continueSetup": "Continua la configuració de {service}" + }, + "login": { + "enterEmail": "Introduïu la vostra adreça electrònica", + "errorMessage": "L'adreça electrònica no és vàlida o alguna cosa ha anat malament. Torneu-ho a provar.", + "successMessage": "S'ha enviat l'enllaç d'inici de sessió a { email }" + }, + "modelHub": { + "title": "Centre de models", + "languageModelsProviders": { + "title": "Proveïdors de models", + "subtitle": "Accediu a models del núvol o de servidors remots.", + "autoFetchModels": "La llista de models s'obté automàticament", + "addLanguageModelsProvider": "Afegeix un proveïdor", + "prosAndCons": { + "pros": [ + "Feu servir OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Msty remot, Ollama remot, etc.", + "Comenceu ràpidament", + "No cal baixar res" + ], + "cons": [ + "Requereix connexió a internet per xatejar", + "Es poden aplicar càrrecs del proveïdor" + ] + }, + "deleteConfirmation": { + "header": "Suprimeix el proveïdor", + "message": "Segur que voleu suprimir {providerName}?", + "successMessage": { + "detail": "S'ha suprimit el proveïdor" + }, + "errorMessage": { + "summary": "Error", + "detail": "No s'ha pogut suprimir el proveïdor" + } + }, + "syncProviderWithWorkspaceForm": { + "titleNew": "Copia a un altre espai de treball", + "titleUpdate": "Copia/sincronitza a altres espais de treball", + "descriptionNew": "Copieu aquest proveïdor a un o més espais de treball.", + "descriptionUpdate": "Sincronitzeu aquest proveïdor a un o més espais de treball. Si s'havia copiat abans, s'actualitzarà. Si no, s'afegirà.", + "selectWorkspaces": "Selecciona els espais de treball", + "availableWorkspaces": "Espais de treball disponibles" + }, + "providerForm": { + "addTitle": "Afegeix un proveïdor", + "updateTitle": "Actualitza el proveïdor", + "newHeader": "Proveïdor de models de llenguatge nou", + "editHeader": "Edita el proveïdor de models de llenguatge", + "modelsProvider": "Proveïdor de models", + "modelId": "ID del model", + "modelName": "Nom del model", + "providerName": "Nom del proveïdor", + "providerUrl": "URL del proveïdor", + "providerToken": "Testimoni del proveïdor", + "saveProvider": "Desa el proveïdor", + "selectProvider": "Selecciona el proveïdor", + "namePlaceholder": "Poseu-li un nom (opcional)", + "selectModels": "Selecciona els models", + "availableModels": "Models disponibles", + "addCustomModel": "Afegeix un model personalitzat", + "inferenceEndpoint": "Punt final d'inferència (ha de començar per http:// o https://)", + "baseURL": "URL base", + "resourceName": "Nom del recurs (s'ignorarà si s'ha definit l'URL base)", + "apiVersion": "@:version de l'API", + "region": "Regió d'AWS", + "accessKeyId": "ID de la clau d'accés", + "secretAccessKey": "Clau d'accés secreta", + "sessionToken": "Testimoni de sessió (opcional)", + "notAllModelsCompatible": "No tots els models s'han provat amb Msty i pot ser que no admeti tots els models disponibles al proveïdor.", + "enterAndManuallyFetchModels": "Feu clic a «Recupera els models» per obtenir els models disponibles del proveïdor (pot caldre una clau API), o bé afegiu un model manualment a continuació.", + "enterAndFetchModels": "Introduïu la vostra clau API per intentar obtenir tots els models disponibles de {providerName}, o bé afegiu manualment un model personalitzat.", + "fetchModels": "Recupera els models", + "modelsFilter": { + "all": "Tots els models", + "selected": "Seleccionat", + "unselected": "No seleccionat" + }, + "purposeFilter": { + "all": "Totes les finalitats" + }, + "searchInModels": "Cerca models...", + "lmsCorsNote": "Heu de tenir CORS activat a LM Studio per treballar amb Msty", + "openAICompatibleNote": "La majoria de punts finals de proveïdors compatibles amb OpenAI necessiten el prefix /v1, p. ex. https://example.com/v1. Si teniu problemes, proveu d'afegir /v1 al final del punt final.", + "successMessage": { + "addDetail": "S'ha afegit el proveïdor de models {providerName}", + "updateDetail": "S'ha actualitzat el proveïdor de models {providerName}" + }, + "errorMessage": { + "addDetail": "No s'ha pogut afegir el proveïdor", + "updateDetail": "No s'ha pogut actualitzar el proveïdor" + }, + "bedrockLongTermCredsWarning": "No es recomana utilitzar credencials de llarga durada per a Amazon Bedrock.", + "awsRegionExample": "p. ex. us-east-1" + }, + "toggleVisibility": { + "errorMessage": { + "detail": "No s'ha pogut actualitzar la visibilitat del proveïdor" + }, + "successMessage": { + "detail": "Ara {provider} està {visibility}" + } + }, + "modelsCount": "Recompte de models", + "showInSelector": "Mostra al selector de models", + "availableModels": "Models disponibles", + "noModels": "No hi ha cap model disponible per a aquest proveïdor", + "modelUpdated": "El model s'ha actualitzat correctament", + "modelUpdateError": "No s'ha pogut actualitzar el model", + "manageProviders": "Gestiona", + "addNewProvider": "Afegeix-ne un de nou" + }, + "sidecarLocalAIProxyEndpoint": { + "title": "Punt final del proxy d'@:localAI de @:remoteToolsConnector.title", + "description": "Assegureu-vos que @:remoteToolsConnector.title s'està executant i és accessible a l'URL proporcionat mitjançant túnel. Copieu i enganxeu la informació completa de connexió del túnel amb el testimoni i l'URL." + }, + "mstyRemoteEndpoint": { + "description": "Assegureu-vos que Msty Desktop s'està executant amb les connexions remotes activades.", + "learnMore": "Apreneu com activar les connexions remotes" + }, + "mstyLocalEndpoint": { + "description": "Aquest servei s'executa sempre que l'aplicació està en marxa. És possible que hàgiu d'actualitzar el número de port si el port de la IA local ha canviat. Si no, val més deixar-lo tal com està." + }, + "ollamaRemoteEndpoint": { + "description": "Quan feu servir Ollama autoallotjat, assegureu-vos que Ollama s'està executant i és accessible a l'URL proporcionat. Heu d'afegir https://msty.studio als orígens permesos en iniciar el servei d'Ollama.", + "placeholder": "p. ex. http://localhost:11434 o https://ollama.com" + }, + "mlxEndpoint": { + "description": "Aquest proveïdor s'utilitza per executar models MLX als Mac amb Apple Silicon. El punt final es corregeix automàticament per assegurar que coincideix amb la vostra configuració local d'MLX. El podeu canviar temporalment si cal." + }, + "llamacppEndpoint": { + "description": "Aquest proveïdor s'utilitza per executar models de LLaMA.cpp. El més probable és que no calgui canviar el punt final per defecte. Si ho feu, assegureu-vos que el servei de LLaMA.cpp s'està executant i és accessible a l'URL proporcionat." + }, + "localModels": { + "title": "Models d'@:localAI", + "noCompatibleProviders": "No hi ha cap proveïdor compatible disponible per gestionar els models locals. Afegiu com a mínim un proveïdor de tipus Msty remot o Ollama remot per utilitzar els models locals.", + "activeDownloads": "{count} baixada activa | {count} baixades actives", + "featured": { + "title": "Models destacats" + }, + "installed": { + "title": "Models instal·lats" + }, + "customOllamaModelPlaceholder": "O bé instal·leu el model per etiqueta, p. ex. {example}", + "alreadyInstalledErrorMessage": { + "summary": "Ja instal·lat", + "detail": "El model {modelName} ja està instal·lat" + }, + "abortInstalling": { + "title": "Interromp la instal·lació de {modelName}", + "successMessage": { + "detail": "S'ha interromput la instal·lació de {modelName}" + } + }, + "deleteConfirmation": { + "header": "Desinstal·la el model", + "message": "Segur que voleu desinstal·lar {modelName}?", + "successMessage": { + "detail": "S'ha eliminat el model" + }, + "errorMessage": { + "detail": "No s'ha pogut desinstal·lar el model" + } + }, + "modelInstall": { + "successMessage": { + "detail": "El model {modelName} ja es pot fer servir" + }, + "errorMessage": { + "detail": "No s'ha pogut instal·lar el model {modelName}", + "newerVersion": "{modelName} requereix una versió més recent de la IA local. Actualitzeu a la darrera versió des de Configuració > IA local > Versió del servei > ... > Força l'actualització del servei de IA local" + } + }, + "ollamaModels": { + "title": "Models d'Ollama" + }, + "huggingfaceModels": { + "title": "Models de Hugging Face", + "searchPlaceholder": "Cerqueu per autor o model, o enganxeu l'URL d'un repositori de Hugging Face", + "searchPlaceholderAlt": "Trobeu models per nom, autor o URL. O bé comenceu amb una de les famílies de models de sota.", + "searching": "S'estan cercant models..." + }, + "ggufImport": { + "tabTitle": "Importa GGUF", + "title": "Importa un model GGUF", + "description": "Seleccioneu un fitxer de model GGUF del vostre sistema de fitxers per importar-lo a {providerLabel}.", + "activeImports": "Importacions actives", + "noFileSelected": "No s'ha seleccionat cap fitxer", + "selectGgufFilePrompt": "Feu clic al botó de sota per seleccionar un fitxer GGUF", + "dragDropOrClick": "Arrossegueu i deixeu anar un fitxer GGUF aquí, o feu clic al botó de sota", + "dropFileHere": "Deixeu anar el fitxer aquí", + "releaseToUpload": "Deixeu anar per seleccionar el fitxer", + "selectGgufFile": "Selecciona un fitxer GGUF", + "chooseDifferentFile": "Tria un fitxer diferent", + "importModel": "Importa el model", + "modelName": "Nom del model", + "modelNamePlaceholder": "p. ex., el-meu-model-personalitzat", + "modelNameDescription": "Aquest serà el nom que fareu servir per referir-vos al model a les converses.", + "removeFile": "Elimina el fitxer", + "dismissJob": "Descarta", + "useSymlink": "Usa un enllaç simbòlic (estalvia espai de disc)", + "symlinkDescription": "Crea un enllaç simbòlic en comptes de copiar el fitxer. Només està disponible per a servidors locals.", + "process": { + "calculatingDigest": "S'està calculant el resum del fitxer", + "uploadingFile": "S'està pujant el fitxer", + "creatingSymlink": "S'està creant l'enllaç simbòlic", + "creatingModel": "S'està creant el model" + }, + "success": "El model {modelName} s'ha importat correctament", + "labels": { + "name": "Nom", + "file": "Fitxer", + "status": "Estat", + "error": "Error" + }, + "status": { + "uploading": "S'està pujant", + "creating": "S'està creant el model", + "completed": "Completat", + "error": "Error", + "cancelled": "Cancel·lat" + }, + "errors": { + "invalidFile": "Seleccioneu un fitxer GGUF vàlid" + } + }, + "safetensorsImport": { + "tabTitle": "Importa Safetensors", + "title": "Importa un model Safetensors", + "description": "Seleccioneu un directori que contingui pesos de model safetensors per importar-los a {providerLabel}. Les arquitectures admeses inclouen Gemma, Llama, Mistral i Phi.", + "activeImports": "Importacions actives", + "noDirectorySelected": "No s'ha seleccionat cap directori", + "selectDirectoryHint": "El directori ha de contenir fitxers safetensors i un config.json", + "selectDirectoryTitle": "Selecciona el directori de Safetensors", + "selectDirectory": "Selecciona un directori", + "chooseDifferentDirectory": "Tria un directori diferent", + "importModel": "Importa el model", + "modelName": "Nom del model", + "modelNamePlaceholder": "p. ex., el-meu-model-personalitzat", + "modelNameDescription": "Aquest serà el nom que fareu servir per referir-vos al model a les converses.", + "removeDirectory": "Elimina el directori", + "process": { + "scanningDirectory": "S'està escanejant el directori", + "processingFile": "S'està processant el fitxer {current} de {total}", + "creatingModel": "S'està creant el model a partir de safetensors" + }, + "success": "El model {modelName} s'ha importat correctament", + "labels": { + "name": "Nom", + "directory": "Directori", + "status": "Estat", + "error": "Error" + }, + "status": { + "uploading": "S'estan pujant els fitxers", + "creating": "S'està creant el model", + "completed": "Completat", + "error": "Error", + "cancelled": "Cancel·lat" + }, + "filesSelected": "fitxers seleccionats", + "errors": { + "desktopOnly": "La importació de safetensors només està disponible a l'aplicació d'escriptori", + "selectFailed": "No s'ha pogut seleccionar el directori", + "noValidFiles": "No s'ha trobat cap fitxer safetensors vàlid al directori seleccionat" + } + } + }, + "llamacppModels": { + "title": "Models de LLaMA.cpp", + "activeDownloads": "{count} baixada activa de LLaMA.cpp | {count} baixades actives de LLaMA.cpp", + "alreadyInstalledErrorMessage": { + "summary": "Ja instal·lat", + "detail": "El model de LLaMA.cpp {modelName} ja està instal·lat" + }, + "installSuccessMessage": { + "summary": "Model a punt", + "detail": "El model de LLaMA.cpp {modelName} ja es pot fer servir" + }, + "installErrorMessage": { + "summary": "La instal·lació ha fallat", + "detail": "No s'ha pogut instal·lar el model de LLaMA.cpp {modelName}" + }, + "modelInstall": { + "successMessage": { + "detail": "S'ha instal·lat el model de LLaMA.cpp {modelName}" + }, + "errorMessage": { + "detail": "No s'ha pogut instal·lar el model de LLaMA.cpp {modelName}" + }, + "abortedMessage": { + "detail": "S'ha interromput la baixada del model de LLaMA.cpp {modelName}" + } + }, + "abortInstallErrorMessage": { + "detail": "No s'ha pogut cancel·lar la baixada del model de LLaMA.cpp" + }, + "abortInstallSuccessMessage": { + "detail": "S'ha cancel·lat la baixada del model de LLaMA.cpp {modelName}" + }, + "uninstallErrorMessage": { + "summary": "La desinstal·lació ha fallat", + "detail": "No s'ha pogut desinstal·lar el model de LLaMA.cpp {modelName}" + }, + "uninstallSuccessMessage": { + "summary": "S'ha eliminat el model", + "detail": "S'ha desinstal·lat el model de LLaMA.cpp {modelName}" + }, + "uninstallConfirmationMessage": { + "summary": "Desinstal·la el model de LLaMA.cpp", + "detail": "Segur que voleu desinstal·lar {modelName}?" + }, + "llamacppFeaturedModels": { + "title": "Models destacats de LLaMA.cpp" + }, + "llamacppInstalledModels": { + "title": "Models instal·lats de LLaMA.cpp" + }, + "llamacppCommunityModels": { + "title": "Models de la comunitat de LLaMA.cpp", + "description": "Navegueu, cerqueu i instal·leu models GGUF directament des de Hugging Face a la vostra carpeta local de models de LLaMA.cpp.", + "searchTitle": "Cerca models de la comunitat de LLaMA.cpp", + "searchPlaceholder": "Cerqueu models de LLaMA.cpp a Hugging Face", + "searchPlaceholderAlt": "Trobeu models GGUF compatibles amb LLaMA.cpp o trieu una de les famílies de models destacades de sota.", + "searching": "S'estan cercant models de LLaMA.cpp..." + } + }, + "mlxModels": { + "title": "Models MLX", + "notAppleSilicon": "Els models MLX només s'admeten als Mac amb Apple Silicon (M1, M2, M3, M4, etc.). El vostre dispositiu actual no és compatible.", + "noCompatibleProviders": "No hi ha cap proveïdor MLX compatible disponible. Afegiu com a mínim un proveïdor MLX per utilitzar els models MLX.", + "activeDownloads": "{count} baixada activa d'MLX | {count} baixades actives d'MLX", + "learnMore": "Més informació sobre MLX", + "featured": { + "title": "Models MLX destacats" + }, + "installed": { + "title": "Models MLX instal·lats" + }, + "alreadyInstalledErrorMessage": { + "summary": "Ja instal·lat", + "detail": "El model MLX {modelName} ja està instal·lat" + }, + "deleteConfirmation": { + "header": "Desinstal·la el model MLX", + "message": "Segur que voleu desinstal·lar {modelName}?", + "successMessage": { + "detail": "S'ha eliminat el model MLX" + }, + "errorMessage": { + "detail": "No s'ha pogut desinstal·lar el model MLX" + } + }, + "modelInstall": { + "successMessage": { + "detail": "El model MLX {modelName} ja es pot fer servir" + }, + "errorMessage": { + "detail": "No s'ha pogut instal·lar el model MLX {modelName}" + }, + "abortedMessage": { + "detail": "S'ha interromput la baixada del model MLX {modelName}" + } + }, + "mlxCommunityModels": { + "title": "Models de la comunitat d'MLX", + "searchTitle": "Cerca models de la comunitat d'MLX", + "searchPlaceholder": "Cerqueu models MLX de mlx-community de HuggingFace", + "searchPlaceholderAlt": "Trobeu models optimitzats per a MLX de HuggingFace. O bé comenceu amb una de les famílies de models de sota.", + "searching": "S'estan cercant models MLX..." + } + } + }, + "stickyPrompt": { + "title": "Indicació fixada", + "disableStickyPrompt": "Desactiva la indicació fixada", + "editDialog": { + "title": "Edita la indicació fixada", + "description": "Quan es fixa una indicació «fixada», s'afegeix al començament de cada missatge nou i s'ignoren les anteriors. Així la conversa es concentra en un únic context actiu. La indicació del sistema sempre s'inclou al context." + } + }, + "contextShield": { + "title": "Escut de context", + "enableContextShield": "Activa l'@:contextShield.title", + "enableContextShieldWithSplitsSync": "Activa l'@:contextShield.title{'.'} Mantingueu premut Opció/Alt per aplicar-lo a totes les divisions sincronitzades.", + "removeContextShield": "Treu l'@:contextShield.title", + "removeContextShieldWithSplitsSync": "Desactiva l'@:contextShield.title{'.'} Mantingueu premut Opció/Alt per treure'l de totes les divisions sincronitzades.", + "breakContext": "Trenca el context", + "customContext": "Context personalitzat", + "generateContextSummary": "Genera el resum del context", + "contextSummary": "Resum del context", + "editContextSummary": "Edita el resum del context", + "regenerateContextSummary": "Regenera el resum del context", + "clearContextSummary": "Esborra el resum del context", + "summaryDescriptionInfoHeader": "Aquest resum es genera a partir del context de les converses de dalt i s'inclou al context en generar missatges nous per sota d'aquest escut.", + "contextShieldWithSummary": "@:contextShield.title amb resum" + }, + "data": "Dades", + "advancedConfigurations": "Configuracions avançades", + "applicationInfo": { + "title": "Informació de l'aplicació", + "appVersion": { + "title": "Versió de l'aplicació", + "description": "Les darreres actualitzacions es comproven periòdicament i se us notificarà quan n'hi hagi una de nova disponible. També podeu comprovar les actualitzacions manualment, cosa que instal·larà automàticament les que hi hagi disponibles.", + "checkForUpdates": "Comprova i aplica les actualitzacions", + "enableAutoUpdates": "Activa les actualitzacions automàtiques", + "disableAutoUpdates": "Desactiva les actualitzacions automàtiques", + "viewChangelog": "Mostra el registre de canvis", + "checkingForUpdates": "S'estan comprovant les actualitzacions...", + "errorCheckingUpdates": "No s'han pogut comprovar les actualitzacions", + "autoUpdatesEnabled": "S'han activat les actualitzacions automàtiques", + "autoUpdatesDisabled": "S'han desactivat les actualitzacions automàtiques", + "updateAvailable": "Hi ha una actualització nova disponible", + "updateDownloading": "S'està baixant l'actualització...", + "noUpdatesAvailable": "Teniu la darrera versió" + }, + "modelsInfo": { + "title": "Informació dels models", + "description": "Actualitzeu les metadades dels vostres models locals. Aquesta informació inclou detalls de cada model, però no els fitxers del model. S'aplica tant als models emmagatzemats localment com als models en línia.", + "fetchLatest": "Recupera la darrera informació dels models", + "updated": "La informació dels models s'ha actualitzat correctament", + "errorUpdating": "No s'ha pogut actualitzar la informació dels models" + }, + "appSettings": { + "title": "Configuració de l'aplicació", + "description": "Restablir la configuració de l'aplicació als valors per defecte pot ajudar a resoldre possibles problemes. Això restaurarà les preferències per defecte de l'usuari, com ara l'aparença i el camí dels models, però no suprimirà cap dada, inclosos els xats o els models baixats o importats.", + "resetApp": "Restableix la configuració de l'aplicació", + "resetConfirm": { + "header": "Restableix la configuració de l'aplicació", + "message": "Segur que voleu restablir tota la configuració de l'aplicació als valors per defecte? Això restaurarà les preferències per defecte però no suprimirà les vostres dades." + }, + "resetSuccess": "La configuració de l'aplicació s'ha restablert correctament", + "resetError": "No s'ha pogut restablir la configuració de l'aplicació" + }, + "dataPaths": { + "title": "Camins de les dades", + "description": "Totes les dades, inclosos els models, les converses, la configuració i els registres, s'emmagatzemen localment al vostre dispositiu. Modifiqueu el contingut d'aquests directoris només si coneixeu l'estructura de fitxers de l'aplicació.", + "appData": "Dades de l'aplicació", + "appLogs": "Registres de l'aplicació", + "openInFinder": "Obre al Finder" + }, + "helpAndDiscussions": { + "title": "Ajuda i debats", + "description": "Connecteu amb la nostra comunitat a Discord per rebre assistència, compartir els vostres comentaris i estar al dia.", + "sayHi": "Saludeu!", + "viewDocs": "Mostra la documentació" + } + }, + "logViewer": { + "title": "Visualitzador de registres", + "description": "Visualitzeu i analitzeu els registres de l'aplicació en temps real. Feu servir els filtres i la cerca per resoldre problemes de manera eficient.", + "searchPlaceholder": "Cerca als registres...", + "refresh": "Actualitza els registres", + "autoRefreshOn": "Atura l'actualització automàtica", + "autoRefreshOff": "Activa l'actualització automàtica", + "pause": "Atura el desplaçament automàtic", + "resume": "Reprèn el desplaçament automàtic", + "copy": "Copia els registres al porta-retalls", + "download": "Baixa els registres", + "clearTemporarily": "Esborra la visualització dels registres", + "clearPermanently": "Esborra el fitxer de registres", + "showAllLogs": "Mostra tots els registres", + "clearPermanentlyConfirmation": { + "header": "Esborra el fitxer de registre", + "message": "Segur que voleu esborrar el fitxer de registre? Això suprimirà permanentment totes les entrades del registre." + }, + "loading": "S'estan carregant els registres...", + "noLogs": "No hi ha cap registre disponible", + "noMatchingLogs": "Cap registre coincideix amb els filtres actuals", + "totalLines": "{count} línia en total | {count} línies en total", + "filteredLines": "{count} línia filtrada | {count} línies filtrades", + "copiedToClipboard": "S'han copiat els registres al porta-retalls", + "downloaded": "Els registres s'han baixat correctament", + "clearedPermanently": "El fitxer de registre s'ha esborrat correctament", + "errorLoading": "No s'han pogut carregar els registres", + "errorCopying": "No s'han pogut copiar els registres", + "errorDownloading": "No s'han pogut baixar els registres", + "errorClearing": "No s'han pogut esborrar els registres", + "levels": { + "all": "Tots els nivells", + "error": "Error", + "warn": "@:warning", + "info": "Informació", + "debug": "Depuració" + } + }, + "notifications": { + "title": "Notificacions", + "description": "Reviseu i gestioneu les notificacions de l'aplicació, inclosos errors, avisos i esdeveniments informatius.", + "searchPlaceholder": "Cerca a les notificacions...", + "searchingAllLogs": "S'està cercant a totes les notificacions de la base de dades", + "refresh": "Actualitza les notificacions", + "autoRefreshOn": "Actualització automàtica activada", + "autoRefreshOff": "Activa l'actualització automàtica", + "copy": "Copia-ho tot al porta-retalls", + "copyLog": "Copia la notificació", + "download": "Baixa les notificacions", + "clearPermanently": "Esborra totes les notificacions", + "clearPermanentlyConfirmation": { + "header": "Esborra les notificacions", + "message": "Segur que voleu suprimir permanentment totes les notificacions? Aquesta acció no es pot desfer." + }, + "loading": "S'estan carregant les notificacions...", + "loadingMore": "S'està carregant més...", + "endOfList": "Final de la llista", + "noLogs": "No hi ha cap notificació disponible", + "totalLogs": "{count} notificació | {count} notificacions", + "displayedLogs": "Es mostren {count}", + "copiedToClipboard": "S'ha copiat la notificació al porta-retalls", + "downloaded": "Les notificacions s'han baixat correctament", + "clearedPermanently": "Les notificacions s'han esborrat correctament", + "deleted": "La notificació s'ha suprimit correctament", + "errorLoading": "No s'han pogut carregar les notificacions", + "errorCopying": "No s'ha pogut copiar la notificació", + "errorDownloading": "No s'han pogut baixar les notificacions", + "errorClearing": "No s'han pogut esborrar les notificacions", + "errorDeleting": "No s'ha pogut suprimir la notificació", + "purge": { + "label": "Purga les notificacions", + "olderThan1Day": "De fa més d'1 dia", + "olderThan7Days": "De fa més de 7 dies", + "olderThan15Days": "De fa més de 15 dies", + "olderThan30Days": "De fa més de 30 dies", + "all": "Tot", + "confirmHeader": "Purga les notificacions", + "confirmMessageDays": "Segur que voleu suprimir les notificacions de fa més de {days} dies? Aquesta acció no es pot desfer.", + "purge": "Purga", + "purged": "Les notificacions s'han purgat correctament", + "errorPurging": "No s'han pogut purgar les notificacions" + }, + "levels": { + "all": "Tots els nivells", + "error": "Errors", + "warn": "Avisos", + "info": "Informació" + } + }, + "sidebar": { + "expandGroup": "Amplia {group}", + "collapseGroup": "Replega {group}", + "showExtraItems": "Mostra els elements addicionals", + "hideExtraItems": "Amaga els elements addicionals", + "groups": { + "modelsPrompts": "Models i indicacions", + "personasTools": "Personalitats i eines", + "knowledgeInsights": "Coneixement i informació", + "system": "Sistema" + }, + "appUpdater": { + "version": "Versió {version}", + "restartToApply": "Reinicia per aplicar les actualitzacions", + "restart": "Reinicia ara", + "downloading": "S'està baixant l'actualització...", + "viewChangelog": "Mostra el registre de canvis", + "openingChangelog": "S'està obrint el registre de canvis...", + "errorHint": "Error d'actualització: feu clic per veure'n els detalls", + "readyHint": "Actualització a punt: reinicieu per aplicar-la", + "downloadingHint": "S'està baixant l'actualització... {percent}%", + "errorDialog": { + "header": "Error d'actualització", + "message": "S'ha produït un error en actualitzar: {error}", + "downloadManually": "Baixa manualment" + } + } + }, + "showInNativeFileManager": { + "mac": "Mostra al Finder", + "win": "Mostra a l'Explorador de fitxers", + "lin": "Mostra al gestor de fitxers" + }, + "settings": { + "title": "Configuració", + "general": "General", + "defaultPrompts": "Indicacions per defecte", + "prompts": { + "description": "Aquestes indicacions determinen com es generen els títols, es construeixen les consultes de cerca, es recupera el coneixement i es resumeix el context. Els canvis es desen a la configuració global d'aquest dispositiu (base de dades mestra) i s'apliquen a tots els espais de treball (no per espai de treball).", + "availablePrompts": "Indicacions disponibles", + "customized": "Personalitzat", + "customizedCount": "{count} personalitzades", + "modified": "Modificat", + "usingCustom": "S'usa la personalitzada", + "usingDefault": "S'usa la predeterminada", + "clickToEdit": "Feu clic per editar la indicació", + "variables": "Variables", + "lastModified": "Darrera modificació", + "selectPrompt": "Seleccioneu una indicació per personalitzar-la", + "clearContent": "Esborra el contingut", + "resetToDefault": "Restableix al valor per defecte", + "insertFromLibrary": "Insereix des de la biblioteca", + "saveChanges": "Desa els canvis", + "discardChanges": "Descarta els canvis", + "categories": { + "generation": "Generació de contingut", + "search": "Cerca i síntesi", + "analysis": "Anàlisi i extracció" + } + }, + "licenseAndAccess": "Llicència i accés", + "fontSize": "@:size de la lletra", + "defaultRTD": { + "sectionTitle": "Cerca de dades en temps real", + "title": "Proveïdor de RTD per defecte", + "description": "Trieu el proveïdor de cerca de dades en temps real per defecte que s'utilitzarà en crear converses noves.", + "saved": "{provider} s'ha establert com a proveïdor de RTD per defecte", + "saveError": "No s'ha pogut desar el proveïdor de RTD per defecte", + "noProvidersAvailable": "No hi ha cap proveïdor de RTD disponible", + "configureLabel": "Configura les opcions avançades de", + "configSaved": "S'ha desat la configuració de {provider}", + "mode": { + "title": "Mode de RTD per defecte", + "description": "Establiu el mode de RTD per defecte per a les converses noves.", + "pushHint": "Les converses noves utilitzaran el mode d'emissió (push) per defecte.", + "pullHint": "Les converses noves utilitzaran el mode de recepció (pull) per defecte.", + "pullGuardHint": "El mode de recepció (pull) requereix un pla Aurum.", + "saveError": "No s'ha pogut desar el mode de RTD per defecte" + } + }, + "teams": "Equips", + "appearance": "Aparença", + "conversation": { + "title": "Converses", + "autoArchive": { + "title": "Arxiva automàticament les converses inactives", + "description": "Mou automàticament les converses inactives a l'arxiu després del nombre de dies seleccionat. Feu servir «Activa l'arxivament automàtic» per activar-ho. «Arxiva ara» fa una neteja puntual amb el llindar de dies actual.", + "enableLabel": "Activa l'arxivament automàtic", + "disableLabel": "Desactiva l'arxivament automàtic", + "enableHint": "Les converses arxivades continuen sent accessibles des de la secció d'arxiu.", + "daysLabel": "Arxiva després de", + "suffix": "dia | dies", + "disabledHint": "Activeu-ho o desactiveu-ho des del menú", + "runNowLabel": "Arxiva ara", + "runNowDisabled": "Activeu l'arxivament automàtic i establiu dies > 0 per executar-lo", + "runNowResult": "S'ha arxivat {count} conversa | S'han arxivat {count} converses", + "daysSaved": "L'arxivament automàtic s'ha establert a {days} dia | L'arxivament automàtic s'ha establert a {days} dies", + "enabledToast": "S'ha activat l'arxivament automàtic", + "disabledToast": "S'ha desactivat l'arxivament automàtic" + } + }, + "setupService": "Configura {service}", + "workspaceLock": { + "title": "Bloqueig de l'espai de treball i xifratge de secrets", + "description": "Bloquegeu el vostre espai de treball amb una frase de pas perquè la configuració sensible i les claus API quedin amagades fins que el desbloquegeu. Desbloquegeu-lo un cop per sessió, canvieu la frase de pas quan vulgueu o desactiveu la protecció si canvieu d'opinió.", + "experimentalInfo": "El xifratge basat en frase de pas és experimental. Conserveu una còpia de seguretat dels vostres secrets abans d'activar-lo.", + "status": "Estat:", + "locked": "Bloquejat", + "unlocked": "Desbloquejat", + "lock": "Bloqueja", + "unlock": "Desbloqueja", + "protectedSection": "L'espai de treball està protegit. Desbloquegeu-lo amb la vostra frase de pas.", + "unprotected": "Sense protecció", + "unprotectedToast": "El bloqueig de l'espai de treball no està configurat. Definiu primer una frase de pas.", + "unlockTitle": "Introduïu la frase de pas", + "cancel": "Cancel·la", + "toastUnlocked": "L'espai de treball s'ha desbloquejat per a aquesta sessió", + "toastLocked": "S'ha bloquejat l'espai de treball", + "disable": "Desactiva el xifratge", + "disableHelp": "Introduïu la frase de pas per desxifrar i desactivar el xifratge.", + "disableProtection": "Desactiva la protecció", + "disableProtectionHelp": "Introduïu la vostra frase de pas per desactivar la protecció de l'espai de treball. Això eliminarà el xifratge dels vostres secrets i claus API emmagatzemats.", + "disableProtectionConfirmMessage": "Segur que voleu desactivar la protecció de l'espai de treball? Això desxifrarà permanentment tots els secrets i claus API xifrats de la vostra base de dades.", + "enableProtection": "Activa la protecció", + "setPassphrase": "Defineix la frase de pas", + "setPassphraseWarning": "Important: deseu la vostra frase de pas de manera segura. No es pot recuperar una frase de pas oblidada i, sense ella, perdreu l'accés a les dades xifrades del vostre espai de treball.", + "changePassphrase": "Canvia la frase de pas", + "changePassphraseWarning": "Important: deseu la vostra nova frase de pas de manera segura. No es pot recuperar una frase de pas oblidada i, sense ella, perdreu l'accés a les dades xifrades del vostre espai de treball.", + "updatePassphrase": "Actualitza la frase de pas", + "passphrase": "Frase de pas", + "passphraseCurrent": "Frase de pas actual", + "passphraseNew": "Frase de pas nova", + "passphraseConfirm": "Confirmeu la frase de pas", + "errorMinLength": "La frase de pas ha de tenir com a mínim 8 caràcters", + "errorMismatch": "Les frases de pas no coincideixen", + "errorInvalid": "Entrada no vàlida", + "setupSuccess": "S'ha configurat la frase de pas", + "setupFailed": "No s'ha pogut configurar la frase de pas", + "rotateSuccess": "S'ha actualitzat la frase de pas", + "rotateFailed": "No s'ha pogut actualitzar la frase de pas", + "disableConfirmMessage": "Voleu desxifrar els secrets emmagatzemats i treure la protecció de l'espai de treball?", + "disableSuccess": "S'ha desactivat el xifratge", + "disableFailed": "No s'ha pogut desactivar el xifratge", + "incorrectPassphrase": "La frase de pas és incorrecta", + "lockedWithName": "{workspaceName} està bloquejat", + "switchBackTitle": "No podeu desbloquejar aquest espai de treball?", + "switchBackDescription": "Torneu a {workspaceName} per continuar treballant.", + "switchBackAction": "Torna a {workspaceName}", + "switchBackError": "No s'han pogut canviar els espais de treball. Torneu-ho a provar." + }, + "dataBackup": { + "title": "Exporta les dades", + "description": "Seleccioneu el botó de sota per exportar una còpia de les vostres dades com a còpia de seguretat o per transferir-les a un altre dispositiu. Les dades exportades inclouen converses, indicacions, models, configuració i altres dades de l'aplicació de tots els espais de treball." + }, + "dataBackupReminderInterval": { + "title": "Interval de recordatori de còpia de seguretat de les dades", + "description": "Amb quina freqüència recordar-vos que feu una còpia de seguretat de les dades." + }, + "dangerZone": { + "title": "Zona de perill", + "description": "Les accions d'aquesta secció són irreversibles i poden provocar pèrdua de dades. Us recomanem exportar una còpia de les vostres dades abans de fer cap acció aquí.", + "clearData": { + "title": "Esborra les dades", + "description": "Suprimeix permanentment totes les dades de l'aplicació, incloses converses, indicacions, models, configuració i altra informació relacionada de tots els espais de treball." + }, + "restoreData": { + "title": "Restaura les dades des d'una còpia de seguretat", + "description": "Importeu un fitxer zip de dades exportat prèviament per restaurar converses, indicacions, models, configuració i altres dades de l'aplicació de tots els espais de treball. Aquesta acció sobreescriurà totes les dades existents." + } + }, + "dataMigrate": { + "action": "Migra", + "title": "Migració de l'Msty App 1.x a Studio", + "itemsToMigrate": { + "label": "Pas 2: Seleccioneu els elements a migrar", + "action": "Selecciona els elements" + }, + "pointsToRemember": { + "activeWorkspace": "Podeu importar indicacions de la biblioteca d'indicacions, proveïdors de models remots, converses i adjuncions a l'espai de treball on us trobeu actualment. Si voleu importar-les a un espai de treball diferent, canvieu-hi primer.", + "remoteModelProviders": "En migrar els proveïdors de models remots NO es transferiran les claus API; cal tornar-les a introduir. És possible que alguns models antics no s'admetin a Studio.", + "attachmentsMigration": "Si migreu adjuncions, comprimiu primer la carpeta d'adjuncions en un zip. Podeu migrar les adjuncions per separat després de migrar la base de dades o juntament amb la base de dades." + }, + "databaseMigration": { + "title": "Migració de la base de dades", + "label": "Pas 1: Seleccioneu el fitxer de base de dades de l'Msty App 1.x", + "action": "Arrossegueu i deixeu anar el vostre fitxer de base de dades de Msty", + "hint": "Els fitxers de base de dades de l'Msty App 1.x solen anomenar-se `msty.db`" + }, + "attachmentsMigration": { + "title": "Migració de les adjuncions", + "migrate": "Migra per separat", + "label": "Pas 3: Afegiu la carpeta d'adjuncions comprimida", + "success": "Les adjuncions s'han migrat correctament", + "error": "No s'han pogut migrar les adjuncions", + "action": "Arrossegueu i deixeu anar la vostra carpeta d'adjuncions comprimida", + "hint": "Comprimiu en un zip tota la carpeta d'adjuncions de l'Msty App 1.x. Després de seleccionar-la, podeu migrar-la per separat si l'afegiu després de la migració de la base de dades." + }, + "missingDataWarning": { + "description": "Seleccioneu un fitxer de base de dades i com a mínim una taula per migrar", + "title": "Falten dades" + }, + "description": "Migreu les vostres dades de l'Msty App 1.x a Studio. Les dades importades no sobreescriuran les dades existents.", + "successMessage": "S'ha migrat {item} correctament", + "errorMessage": "No s'ha pogut migrar {item}", + "migrationInProgress": "Migració en curs...", + "migrationComplete": "Migració de {item} completada", + "migrationFail": "La migració de {item} ha fallat", + "migratingItem": "S'està migrant {item}...", + "migrationError": { + "title": "Error de migració", + "action": "Mostra els detalls", + "message": "Missatge", + "cause": "Causa" + } + }, + "colorPreference": "Preferència de color", + "accentColor": "Color d'accent", + "dark": "Fosc", + "light": "Clar", + "default": "Predeterminat | Predeterminats", + "system": "Sistema", + "baseColor": "Color base", + "emerald": "Maragda", + "lime": "Llima", + "green": "Verd", + "red": "Vermell", + "orange": "Taronja", + "amber": "Ambre", + "yellow": "Groc", + "teal": "Xarxet", + "cyan": "Cian", + "sky": "Cel", + "indigo": "Indi", + "violet": "Violeta", + "purple": "Porpra", + "fuchsia": "Fúcsia", + "pink": "Rosa", + "rose": "Rosat", + "slate": "Pissarra", + "gray": "Gris", + "zinc": "Zinc", + "stone": "Pedra", + "sandy": "Sorra", + "lighter": "Més clar", + "codeTheme": "Tema del codi", + "rtlSupport": { + "title": "Compatibilitat amb RTL", + "sectionDescription": "Activeu les disposicions de dreta a esquerra per a llengües com l'àrab, l'hebreu i el persa. Tot l'espai de treball s'actualitza a l'instant en activar-ho.", + "toggleLabel": "Activa la disposició RTL", + "enabledHint": "La disposició de dreta a esquerra està activa a tota l'aplicació.", + "disabledHint": "L'aplicació utilitza actualment una disposició d'esquerra a dreta." + }, + "miniMap": { + "title": "Minimapa", + "description": "Activeu el navegador de missatges en minimapa amb previsualitzacions de branques. Quan està desactivat, s'utilitza un navegador més senzill de dalt/baix." + }, + "branchBreadcrumbs": { + "title": "Ruta de navegació de branques", + "description": "Mostra una barra de navegació compacta a la part superior de les converses quan hi ha branques." + }, + "spellcheck": { + "title": "Correcció ortogràfica", + "description": "Activeu o desactiveu la correcció ortogràfica als camps d'entrada de text. Desactivar-la pot ajudar quan treballeu amb diverses llengües o contingut tècnic. La configuració del corrector ortogràfic del vostre sistema operatiu pot prevaler sobre aquestes preferències. Reinicieu l'aplicació després de canviar aquest paràmetre perquè els canvis tinguin efecte complet." + }, + "language": { + "sectionTitle": "Llengua i localització", + "sectionDescription": "Canvieu entre les llengües de la interfície, previsualitzeu el mode de desenvolupador o importeu un fitxer de configuració regional temporal. Si voleu contribuir amb una traducció, visiteu https://github.com/cloudstack-llc/msty-studio-i18n", + "localeLabel": "Llengua", + "downloadTemplate": "Baixa la plantilla", + "downloadBuiltInLocale": "Baixa aquest fitxer JSON de configuració regional integrat.", + "downloadCustomLocale": "Baixa la configuració regional personalitzada actual que heu importat.", + "downloadDeveloperTemplate": "Baixa una plantilla buida basada en la configuració regional base.", + "importLocale": "Importa una configuració regional", + "importLocaleHint": "Les configuracions regionals importades només duren fins que reinicieu o actualitzeu l'aplicació.", + "importSuccessSummary": "S'ha importat la configuració regional", + "importSuccessDetail": "Ara s'utilitza {code}. Reviseu la interfície per confirmar les traduccions.", + "importError": "No hem pogut importar aquest fitxer de configuració regional. Assegureu-vos que sigui un JSON vàlid basat en la plantilla.", + "developerMode": { + "label": "Mode de desenvolupador" + } + }, + "security": { + "title": "Seguretat", + "subtitle": "Configureu els paràmetres de seguretat de l'aplicació" + }, + "webSecurity": { + "title": "Desactiva la seguretat web", + "description": "Això us pot ajudar a resoldre algun problema relacionat amb CORS. Tanmateix, no es recomana i pot exposar l'aplicació a riscos de seguretat. Desactiveu-la només si sabeu què feu. Heu de reiniciar l'aplicació perquè aquest paràmetre tingui efecte.", + "applyAndRestart": "Aplica i reinicia" + }, + "fontStyle": { + "title": "Estil de la lletra", + "galaxyFarAway": "Galaxy Far Away", + "everythingEverywhere": "Everything Everywhere", + "homeAlone": "Home Alone", + "lordOfTheLoops": "Lord of the Loops" + }, + "renderingModules": { + "title": "Mòduls de renderització", + "selectPlaceholder": "Selecciona els mòduls de renderització" + }, + "remoteToolsConnector": { + "description": "Permet que el web de Msty Studio es connecti a aquest dispositiu per executar eines remotes i accedir a models locals. Aquest servei s'ha d'estar executant activament per permetre les connexions remotes.", + "allowRemoteToolsConnection": "Activa el servei", + "connectionToken": { + "title": "Testimoni de connexió", + "rememberToken": "Recorda el testimoni", + "placeholder": "Introduïu un testimoni de connexió fort", + "description": "Aquest testimoni s'utilitza per autenticar la connexió entre Msty Studio i aquesta aplicació en connectar-se remotament. El podeu regenerar en qualsevol moment per invalidar el testimoni anterior. Assegureu-vos d'utilitzar un testimoni fort i mantingueu-lo en secret.", + "successMessage": { + "detail": "El servei remot ja està actiu" + }, + "errorMessage": { + "summary": "Error en activar el connector", + "detail": "No s'ha pogut activar el servei remot. Reviseu els registres per a més detalls" + }, + "copyConnectionInfo": "Copia l'URL local", + "copyTunnelConnectionInfo": "Copia l'URL del túnel", + "stopSuccessMessage": { + "detail": "El servei remot ja està desactivat" + } + }, + "enableTunneling": "Activa el túnel (experimental)" + }, + "copyLocalURL": "Copia l'URL local", + "localAI": { + "notInstalled": { + "description": "Configureu @:localAIService per executar models d'IA localment al vostre dispositiu." + }, + "modelsLocation": { + "title": "Ubicació dels models", + "description": "Configureu on s'emmagatzemen els vostres models de IA local." + }, + "existingModels": { + "title": "Usa els models existents", + "description": "Useu els models que ja teniu sense tornar-los a baixar." + }, + "serviceConfigurations": { + "title": "Configuracions del servei", + "description": "Aquestes configuracions s'apliquen a @:localAIService quan s'inicia. @:localAIService es reiniciarà automàticament després de desar qualsevol canvi.", + "configurePortNumber": { + "title": "Configura el número de port", + "description": "Número de port de @:localAIService{'.'} Deixeu-ho buit per fer servir el valor per defecte." + }, + "maximumParallelChats": { + "title": "Màxim de xats en paral·lel", + "description": "Nombre màxim de sessions de xat simultànies (quan s'utilitza el mode dividit)." + }, + "maximumLoadedModels": { + "title": "Màxim de models carregats", + "description": "Nombre màxim d'LLM carregats alhora. Mantenir més models a la memòria accelera les respostes inicials però consumeix més recursos del sistema." + }, + "enableNetworkAccess": { + "title": "Activa l'accés a la xarxa", + "description": "Permet que altres dispositius de la vostra xarxa accedeixin a @:localAIService a través de l'adreça IP d'aquest dispositiu." + }, + "allowedNetworkOrigins": { + "title": "Orígens de xarxa permesos", + "description": "Indiqueu aquí els orígens de xarxa permesos (separats per comes). Cada entrada ha de començar per http:// o https://. Feu servir * per permetre tots els orígens.", + "placeholder": "p. ex. https://msty.studio, http://localhost:3000, *" + }, + "allowMstyStudioAccess": { + "title": "Permet l'accés des de Msty Studio", + "description": "Permet les connexions des del web de Msty Studio a aquesta aplicació perquè pugui accedir a @:localAIService{'.'}" + }, + "captureServiceLogs": { + "title": "Captura els registres del servei", + "description": "Activeu el registre per capturar dades del servei per a la depuració. Feu servir aquesta opció només quan calgui." + }, + "advancedConfiguration": { + "description": "Introduïu un JSON vàlid per definir les variables d'entorn de @:localAIService{'.'}" + }, + "unsavedChanges": { + "message": "@:localAIService té canvis de configuració sense desar. Un cop els deseu, @:localAIService es reiniciarà amb les noves configuracions.", + "saveChanges": "Desa els canvis i reinicia el servei", + "successMessage": { + "detail": "S'han desat les configuracions de @:localAIService i s'ha reiniciat el servei" + }, + "errorMessage": { + "detail": "No s'han pogut desar les configuracions del servei. Reviseu els registres per a més detalls." + } + } + }, + "modelConfigurations": { + "title": "Configuracions del model", + "description": "Aquestes configuracions s'apliquen a tots els models durant les sessions de xat.", + "keepAliveTimeout": { + "title": "Temps d'espera de manteniment del model", + "description": "Temps (en minuts) després del qual el model es descarregarà de la memòria si no s'utilitza." + }, + "advancedConfiguration": { + "description": "Introduïu un JSON vàlid per passar paràmetres addicionals als models durant les sessions de xat." + }, + "unsavedChanges": { + "message": "Teniu canvis sense desar a @:settings.localAI.modelConfigurations.title{'.'} Assegureu-vos de desar-los abans d'iniciar una sessió de xat nova.", + "successMessage": { + "detail": "S'ha desat @:settings.localAI.modelConfigurations.title" + }, + "errorMessage": { + "detail": "No s'han pogut desar les configuracions del model. Reviseu els registres per a més detalls." + } + } + }, + "openSettings": "Obre la configuració de la IA local", + "manageModels": { + "title": "Gestiona els models de IA local", + "description": "Navegueu, instal·leu i gestioneu models d'IA per a la inferència local.", + "openModelHub": "Obre el centre de models de IA local" + } + }, + "vibeCliProxy": { + "shortTitle": "Vibe CLI Proxy", + "title": "Vibe CLI Proxy", + "subtitle": "Proxy unificat per a assistents de codi amb IA. Connecteu amb Claude Code, ChatGPT, Gemini i Qwen Code a través d'un únic punt final local.", + "install": { + "copy": "Instal·la el binari CLIProxyAPI per connectar assistents de codi amb IA (Claude Code, ChatGPT, Gemini, Qwen) mitjançant un proxy local amb autenticació OAuth.", + "button": "Instal·la el Vibe CLI Proxy" + }, + "health": { + "description": "Inicieu o atureu el servei Vibe CLI Proxy." + }, + "endpoint": { + "title": "Punt final del servei", + "description": "Useu aquest punt final per a les sol·licituds compatibles amb OpenAI encaminades a través del Vibe CLI Proxy.", + "network": "Amfitrió de xarxa: {host}", + "copied": "S'ha copiat el punt final" + }, + "version": { + "title": "Versió", + "description": "Versió de CLIProxyAPI instal·lada.", + "current": "Versió actual", + "reinstall": "Torna a instal·lar", + "unknown": "No instal·lat" + }, + "configs": { + "title": "Configuracions del servei", + "description": "Configureu el port, el directori d'autenticació i l'accés a la xarxa del proxy.", + "port": "Port", + "retries": "Reintents", + "authDir": "Directori d'autenticació", + "enableNetworkAccess": "Activa l'accés a la xarxa", + "enableNetworkAccessHelp": "Permet que altres dispositius de la xarxa arribin al proxy.", + "captureLogs": "Captura els registres del servei", + "captureLogsHelp": "Conserva els registres del proxy per a la resolució de problemes (pot augmentar l'ús del disc).", + "enableRemoteManagement": "Activa la gestió remota", + "enableRemoteManagementHelp": "Exposa els punts finals de gestió; requereix una clau secreta.", + "managementKey": "Clau secreta de gestió", + "updated": "S'han actualitzat les configuracions del Vibe CLI Proxy", + "failed": "No s'han pogut actualitzar les configuracions del Vibe CLI Proxy", + "portDescription": "El port local on el servei de proxy escolta les sol·licituds.", + "retriesDescription": "Nombre d'intents de reintent per a les sol·licituds amunt fallides.", + "authDirDescription": "Directori on s'emmagatzemen els testimonis d'autenticació.", + "managementKeyDescription": "Clau secreta necessària per a les operacions de gestió remota." + }, + "authPath": { + "title": "Carpeta d'autenticació", + "description": "Camí on el Vibe CLI Proxy emmagatzema els testimonis OAuth dels proveïdors connectats. Es gestiona automàticament; no és editable." + }, + "authStatus": { + "title": "Autenticació", + "description": "Enllaceu de manera segura els vostres comptes d'IA perquè el Vibe CLI Proxy pugui cridar les seves API en nom vostre. Quan us connecteu, s'obre una finestra del navegador per a aquell proveïdor on completeu l'inici de sessió.", + "connecting": "S'està obrint el navegador per a l'OAuth…", + "browser": "Completeu l'autenticació al navegador i, després, torneu aquí.", + "failed": "No s'ha pogut iniciar el flux d'OAuth", + "deviceCodeTitle": "Autorització del dispositiu", + "deviceCodeInstructions": "Introduïu el codi de sota a la pàgina d'autorització per completar l'autenticació.", + "copyCode": "Copia el codi", + "codeCopied": "S'ha copiat el codi al porta-retalls", + "openGitHub": "Obre GitHub" + }, + "setup": { + "disclaimer": "Important: el Vibe CLI Proxy és un proxy local cap a agents de codi de CLI de tercers. En continuar, accepteu tota la responsabilitat del compliment de les condicions del servei de cada proveïdor d'IA. Useu-lo sota la vostra responsabilitat. Msty no es fa responsable de cap problema de compte ni de cap violació del servei que en pugui derivar." + } + }, + "mlx": { + "notInstalled": { + "description": "Configureu @:mlxService per executar models d'IA optimitzats al vostre Mac amb Apple Silicon." + }, + "modelsLocation": { + "title": "Ubicació dels models", + "description": "Configureu on s'emmagatzemen els vostres models MLX." + }, + "existingModels": { + "title": "Usa els models existents", + "description": "Useu els models que ja teniu sense tornar-los a baixar." + }, + "openSettings": "Obre la configuració d'MLX", + "manageModels": { + "title": "Gestiona els models MLX", + "description": "Navegueu, instal·leu i gestioneu models MLX optimitzats per a Apple Silicon.", + "openModelHub": "Obre el centre de models MLX" + }, + "compatibility": { + "title": "Compatibilitat del sistema", + "description": "Comproveu si el vostre sistema és compatible amb MLX.", + "checkAgain": "Torna a comprovar", + "status": { + "notChecked": "No comprovat", + "compatible": "Compatible", + "notCompatible": "No compatible" + }, + "requirements": { + "title": "Requisits d'MLX:", + "appleSilicon": "Mac amb Apple Silicon (M1, M2, M3, M4)", + "macOS13": "macOS 13.0 o posterior", + "unifiedMemory": "Arquitectura de memòria unificada" + } + } + }, + "llamacpp": { + "notInstalled": { + "description": "Configureu @:llamacppService per executar models d'IA eficients a Windows, macOS i Linux." + }, + "modelsLocation": { + "title": "Ubicació dels models", + "description": "Configureu on s'emmagatzemen els vostres models de LLaMA.cpp." + }, + "existingModels": { + "title": "Usa els models existents", + "description": "Useu els models que ja teniu sense tornar-los a baixar." + }, + "openSettings": "Obre la configuració de LLaMA.cpp", + "manageModels": { + "title": "Gestiona els models de LLaMA.cpp", + "description": "Navegueu, instal·leu i gestioneu models de LLaMA.cpp per a la inferència multiplataforma.", + "openModelHub": "Obre el centre de models de LLaMA.cpp" + }, + "compatibility": { + "title": "Compatibilitat del sistema", + "description": "Comproveu si el vostre sistema és compatible amb LLaMA.cpp.", + "checkAgain": "Torna a comprovar", + "status": { + "notChecked": "No comprovat", + "compatible": "Compatible", + "notCompatible": "No compatible", + "requiresDesktop": "LLaMA.cpp requereix l'aplicació d'escriptori" + }, + "systemInfo": { + "title": "Informació del sistema", + "platform": "Plataforma", + "architecture": "Arquitectura", + "memory": "Memòria disponible", + "gpu": "GPU" + }, + "requirements": { + "title": "Requisits de LLaMA.cpp:", + "desktop": "Aplicació d'escriptori (Windows, macOS o Linux)", + "memory": "Com a mínim 4 GB de RAM (es recomanen 8 GB o més)", + "storage": "Emmagatzematge suficient per als models (varia segons la mida del model)", + "gpu": "Opcional: GPU per a l'acceleració (CUDA, Metal, OpenCL)" + } + }, + "serviceConfigurations": { + "threads": { + "title": "Fils de CPU", + "description": "Nombre de fils de CPU que s'utilitzen durant la inferència. Establiu-lo a -1 per detectar-lo automàticament segons el vostre sistema (correspon a l'indicador --threads)." + }, + "concurrentRequests": { + "title": "Sol·licituds simultànies", + "description": "Nombre de xats que poden executar-se alhora per model (correspon a l'indicador --parallel). Amb parallel=2, cada xat rep la meitat de la mida del context.", + "inputLabel": "Sol·licituds simultànies" + }, + "advancedConfiguration": { + "description": "Introduïu un JSON vàlid per definir les variables d'entorn del procés llama-server. Aquestes variables tenen menys prioritat que els arguments de CLI definits a les configuracions del servei i del model." + } + }, + "modelConfigurations": { + "title": "Configuracions del model", + "description": "Aquestes configuracions s'apliquen a tots els models durant les sessions de xat.", + "keepAliveTimeout": { + "title": "Temps d'espera de manteniment del model", + "description": "Temps (en minuts) després del qual el model es descarregarà de la memòria si no s'utilitza." + }, + "unsavedChanges": { + "message": "Teniu canvis sense desar a @:settings.llamacpp.modelConfigurations.title{'.'} Assegureu-vos de desar-los abans d'iniciar una sessió de xat nova.", + "successMessage": { + "detail": "S'ha desat @:settings.llamacpp.modelConfigurations.title" + }, + "errorMessage": { + "detail": "No s'han pogut desar les configuracions del model. Reviseu els registres per a més detalls." + } + } + } + } + }, + "mlx": "MLX", + "mlxService": "Servei @:mlx", + "llamacpp": "LLaMA.cpp", + "llamacppService": "Servei @:llamacpp", + "settingsAndConfigs": "Configuració i ajustos", + "prompts": "Prompts", + "apiKeys": "Claus API", + "workspaces": { + "createNewWorkspace": "Crea un espai de treball nou", + "switchWorkspace": "Canvia d'espai de treball", + "switchToCustomWorkspace": "Canvia a l'espai de treball {workspaceName}", + "hideWorkspaceTray": "Amaga la safata d'espais de treball", + "showWorkspaceTray": "Mostra la safata d'espais de treball", + "switchAction": { + "successMessage": { + "summary": "S'ha canviat d'espai de treball!", + "detail": "Ara {workspaceName} és l'espai de treball actiu" + } + }, + "deleteWorkspace": "Suprimeix l'espai de treball", + "workspaceIsActive": "L'espai de treball {workspaceName} està actiu", + "currentActiveWorkspace": "El vostre espai de treball actiu actual és: {workspaceName}", + "workspaceForm": { + "newTitle": "Espai de treball nou", + "editTitle": "Edita l'espai de treball", + "workspaceName": "Nom de l'espai de treball", + "whatToCopy": "Què voleu copiar de l'espai de treball {activeWorkspace}?", + "copyDisabledForLockedWorkspace": "La còpia d'elements està desactivada perquè l'espai de treball actiu té definida una frase de pas.", + "createAndSwitch": "Crea i canvia-hi", + "createOnly": "Crea i queda't", + "duplicateWorkspaceName": "El nom de l'espai de treball ja existeix", + "invalidWorkspaceName": "Nom d'espai de treball no vàlid o duplicat", + "updateSuccessMessage": { + "detail": "S'ha actualitzat l'espai de treball" + }, + "updateErrorMessage": { + "detail": "No s'ha pogut actualitzar l'espai de treball" + }, + "createAndSwitchSuccessMessage": { + "detail": "S'ha creat l'espai de treball i s'hi ha canviat" + }, + "createSuccessMessage": { + "detail": "S'ha creat l'espai de treball" + }, + "createErrorMessage": { + "detail": "No s'ha pogut crear l'espai de treball" + } + }, + "deleteConfirmation": { + "header": "Suprimeix l'espai de treball", + "message": "Segur que voleu suprimir {workspaceName}? Se suprimiran totes les dades associades a aquest espai de treball. Aquesta acció no es pot desfer.", + "downloadWorkspaceData": "Baixa les dades de l'espai de treball", + "successMessage": { + "detail": "S'ha suprimit l'espai de treball {workspaceName}" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir l'espai de treball" + } + }, + "exportWorkspace": { + "title": "Exporta l'espai de treball", + "successMessage": { + "detail": "Les dades de l'espai de treball {workspaceName} s'han exportat com a {fileName}" + }, + "errorMessage": { + "detail": "No s'ha pogut exportar l'espai de treball {workspaceName}" + } + }, + "importWorkspace": { + "title": "Importa un espai de treball", + "dragAndDropMessage": "Arrossegueu i deixeu anar un fitxer comprimit d'espai de treball de Msty per importar-lo i crear un espai de treball nou. En cas de noms duplicats, l'espai de treball importat es reanomenarà. El podeu canviar més endavant.", + "successMessage": { + "detail": "S'ha importat l'espai de treball {workspaceName}" + }, + "errorMessage": { + "detail": "No s'ha pogut importar l'espai de treball" + } + } + }, + "attachments": { + "title": "Adjuncions", + "documents": "Documents", + "images": "Imatges", + "webpages": "Pàgines web", + "youTubeLinks": "Enllaços de YouTube", + "dropThem": "Deixeu-los anar!", + "selectAll": "Selecciona-ho tot", + "deselectAll": "Desselecciona-ho tot", + "dragAnDropHere": "Arrossegueu i deixeu anar {attachmentType} aquí", + "addNew": "Afegeix adjuncions noves", + "addDocumentTypes": "Afegiu {documentTypes} i també altres fitxers de codi", + "addImageTypes": "Afegiu imatges .png, .jpg o jpeg", + "dragAndDropOrBrowseMore": "Arrossegueu i deixeu anar o exploreu-ne més", + "commaSeparatedUrls": "o enganxeu URL separats per comes", + "manageTooltip": "Feu clic per gestionar {attachmentType} adjuntats", + "modelMayNotSupportImages": "És possible que el model seleccionat no admeti adjuncions d'imatge.", + "clickToInstallVisionCapabilities": "Feu clic per instal·lar les capacitats de visió.", + "checkingVisionCapabilities": "S'estan comprovant les capacitats de visió...", + "installingVision": "S'estan instal·lant les capacitats de visió...", + "documentsAttachedCount": "{count} document adjuntat | {count} documents adjuntats", + "imagesAttachedCount": "{count} imatge adjuntada | {count} imatges adjuntades", + "webpagesAttachedCount": "{count} pàgina web adjuntada | {count} pàgines web adjuntades", + "webpageLinks": "un enllaç de pàgina web | enllaços de pàgines web", + "holdKeyToShareWithSyncedSplits": "Mantingueu premut {key} per compartir amb les divisions sincronitzades", + "youTubeLinksAttachedCount": "{count} enllaç de YouTube adjuntat | {count} enllaços de YouTube adjuntats", + "dropFiles": { + "errorMessage": { + "detail": "No s'han pogut adjuntar els fitxers" + } + }, + "dropWebpages": { + "errorMessage": { + "detail": "No s'han pogut adjuntar les pàgines web" + } + }, + "dropYouTubeLinks": { + "errorMessage": { + "detail": "No s'ha pogut importar la informació dels enllaços de YouTube. {errorMessage}" + } + }, + "detachAll": { + "title": "Desadjunta-ho tot", + "confirm": { + "header": "Desadjunta-ho tot", + "message": "Segur que voleu desadjuntar {attachmentType}? Aquests {attachmentType} ja no estaran disponibles a la conversa en cap divisió.", + "acceptLabel": "Suprimeix" + }, + "maxResult": { + "title": "Resultat màxim" + }, + "successMessage": { + "detail": "S'han desadjuntat les adjuncions" + } + } + }, + "jinaAPI": { + "manageJinaAPIKeys": "Gestiona les claus", + "jinaApiKeyRequired": "Cal una clau API de Jina vàlida per utilitzar aquesta funció. Podeu visitar l'enllaç següent per obtenir-ne una de franc:", + "willUseJina": { + "description": "Actualment teniu {count} clau(s) API de Jina afegida(es). Podeu afegir més claus i Msty triarà una clau vàlida a l'atzar per fer servir en la sol·licitud." + }, + "jinaAPIKeyForm": { + "newTitle": "Clau API de Jina nova", + "editTitle": "Edita la clau API de Jina", + "availableKeys": "Claus disponibles", + "reVerifyKey": "La clau està {status}. Feu clic per tornar a verificar-la", + "verifyKeyAndAdd": "Verifica la clau i afegeix-la", + "newDescription": "Afegiu una clau API de Jina nova per fer-la servir amb els punts finals Jina Reader i Search. Podeu afegir diverses claus i verificar-les per assegurar-vos que són vàlides. En fer servir les claus, Msty en triarà una de vàlida a l'atzar per a la sol·licitud.", + "keyIsGood": { + "summary": "Tot correcte!", + "detail": "La clau sembla vàlida i a punt per fer-se servir" + }, + "successMessage": { + "detail": "S'ha afegit la clau API de Jina" + }, + "errorMessage": { + "summary": "Error{status}!", + "detail": "No s'ha pogut afegir la clau API de Jina. Comproveu la clau API i assegureu-vos que sigui vàlida." + } + }, + "tokenBudget": { + "title": "Pressupost de tokens", + "description": "Nombre màxim de tokens que s'utilitzaran per a les sol·licituds de l'API de Jina. Això ajuda a controlar els costos i la longitud de la resposta." + } + }, + "rtd": { + "title": "@:data en temps real", + "enableRTD": "Feu clic per activar/desactivar la RTD; feu doble clic per configurar-la", + "contexts": "Contextos de @:rtd.title", + "removeSource": { + "successMessage": { + "detail": "S'ha eliminat la font" + }, + "errorMessage": { + "detail": "No s'ha pogut eliminar la font" + } + }, + "updateSource": { + "errorMessage": { + "detail": "No s'ha pogut actualitzar la font" + } + }, + "searchProvider": "Proveïdor de cerca", + "jina": "Jina", + "useRemoteConnector": "Usa @:remoteToolsConnector.title", + "noSources": "No hi ha cap font disponible", + "settings": { + "maxResult": { + "title": "Resultat màxim" + }, + "saveAsDefaultProvider": { + "title": "Desa {providerName} com a proveïdor de cerca per defecte", + "successMessage": { + "summary": "Doncs {providerName}!", + "detail": "Ara {providerName} és el proveïdor de cerca per defecte" + } + }, + "autoWithFallback": "Automàtic amb alternativa", + "google": "Google", + "brave": "Brave", + "ecosia": "Ecosia", + "customSearchQuery": { + "title": "Consulta de cerca personalitzada", + "placeholder": "Aquesta consulta s'utilitzarà per cercar. Deixeu-la buida per fer servir la indicació com a consulta" + }, + "limitByDomain": { + "title": "Limita per domini", + "placeholder": "p. ex. reddit.com o gov o (site:reddit.com OR site:gov)", + "commaDelimitedPlaceholder": "Introduïu dominis separats per comes, p. ex. reddit.com,wikipedia.com" + }, + "extraOperators": { + "title": "Operadors addicionals" + }, + "dateRange": { + "title": "Interval de dates de la cerca", + "placeholder": "Data posterior - Data anterior" + }, + "successMessage": { + "detail": "@:rtd.title activada" + }, + "types": { + "api": "API", + "rtc": "@:remoteToolsConnector.title" + } + }, + "useJinaLabel": "Usa @:rtd.jina", + "google": { + "useLabel": "Usa @:rtd.settings.google", + "apiKey": { + "placeholder": "@:apiKey de @:rtd.settings.google" + }, + "cseIdLabel": "ID de motor de cerca personalitzat", + "cseIdPlaceholder": "@:rtd.google.cseIdLabel de @:rtd.settings.google" + }, + "brave": { + "useLabel": "Usa @:rtd.settings.brave", + "resultFilter": "Filtra els resultats", + "apiKey": { + "placeholder": "@:apiKey de @:rtd.settings.brave" + } + }, + "searXng": { + "title": "SearXNG", + "engines": { + "title": "Motors", + "placeholder": "Llista de motors a utilitzar separats per comes, p. ex. google, brave, etc." + }, + "extraParams": { + "title": "Paràmetres addicionals", + "placeholder": "Afegiu paràmetres addicionals. Ha de ser un objecte JSON vàlid." + }, + "notice": "El vostre servidor SearXNG ha de tenir el JSON activat i servir-se per HTTPS. Per a una solució alternativa per HTTP en alguns navegadors, consulteu la nostra documentació a https://docs.msty.studio", + "useLabel": "Usa @:rtd.searXng.title" + }, + "tavily": { + "title": "Tavily", + "useLabel": "Usa @:rtd.tavily.title", + "searchTopic": { + "title": "Tema de cerca", + "placeholder": "Categoria de la cerca", + "general": "General", + "news": "Notícies", + "finance": "Finances" + }, + "apiKey": { + "placeholder": "Introduïu la @:apiKey de @:rtd.tavily.title" + }, + "searchDepth": { + "title": "Profunditat de la cerca", + "placeholder": "Profunditat de la cerca", + "advanced": "Avançada", + "basic": "Bàsica" + }, + "timeRange": { + "title": "Interval de temps", + "placeholder": "Interval de temps enrere des de la data actual" + } + }, + "exa": { + "title": "Exa", + "useLabel": "Usa @:rtd.exa.title", + "apiKey": { + "placeholder": "Introduïu la @:apiKey de @:rtd.exa.title" + } + }, + "ollama": { + "title": "Ollama", + "useLabel": "Usa @:rtd.ollama.title", + "apiKey": { + "placeholder": "Introduïu la @:apiKey de @:rtd.ollama.title" + } + }, + "disableRTD": { + "label": "Desactiva la @:rtd.title", + "successMessage": { + "detail": "@:rtd.title desactivada" + }, + "errorMessage": { + "detail": "No s'ha pogut desactivar la @:rtd.title" + } + } + }, + "remoteToolsConnector": { + "title": "Servei remot", + "connectionRequired": "Per fer servir aquesta funció, us heu de connectar amb @:remoteToolsConnector.title{'.'}", + "experimentalInfo": "La RTD és experimental i pot ser que no funcioni com s'espera.", + "isConnectedTooltip": "@:remoteToolsConnector.title - Connectat", + "isDisconnectedTooltip": "@:remoteToolsConnector.title - Desconnectat", + "connectNow": "@:connect amb @:remoteToolsConnector.title", + "connectFirst": "@:connect primer @:remoteToolsConnector.title", + "reconnectNow": "@:reconnect amb @:remoteToolsConnector.title", + "disconnectNow": "@:disconnect ara", + "checkHealth": "Comprova l'estat de la connexió", + "connectionDetails": "Edita els detalls de la connexió", + "noPermissionPolicy": "No teniu permís per accedir a aquesta funció", + "connect": { + "form": { + "title": "Connecta amb @:remoteToolsConnector.title", + "saveAndConnect": "Desa i connecta", + "rememberConnectionInfo": "Recorda la @:connectionInfo" + }, + "import": { + "title": "@:import la @:connectionInfo", + "dragAndDropMessage": "Arrossegueu i deixeu anar el fitxer de configuració de connexió remota de Msty per importar-lo i connectar amb @:remoteToolsConnector.title{'.'}", + "successMessage": { + "detail": "@:connectionInfo importada" + }, + "errorMessage": { + "detail": "No s'ha pogut importar la @:connectionInfo" + } + }, + "export": { + "title": "Exporta la @:connectionInfo desada", + "successMessage": { + "detail": "@:connectionInfo exportada" + }, + "errorMessage": { + "detail": "No s'ha pogut exportar la @:connectionInfo" + } + }, + "successMessage": { + "summary": "Connectat!", + "detail": "@:remoteToolsConnector.title connectat a {url}" + }, + "errorMessage": { + "detail": "No s'ha pogut connectar amb @:remoteToolsConnector.title{'.'} Assegureu-vos que @:remoteToolsConnector.title s'està executant i és accessible a l'URL proporcionat.", + "tokenMissing": "Falta el testimoni. Comproveu el testimoni i torneu-ho a provar." + }, + "forgetConnectionInfo": "Oblida la @:connectionInfo anterior", + "forgetSuccessMessage": { + "detail": "@:connectionInfo oblidada" + }, + "toolCommandPaths": { + "title": "Camins de les ordres de les eines", + "description": "Si feu servir conjunts d'eines, definiu els camins de les ordres que utilitzeu.", + "selectPlaceholder": "Seleccioneu o introduïu una ordre", + "pathPlaceholder": "Introduïu el camí complet de l'ordre", + "assignPath": "Assigna el camí" + } + }, + "disconnect": { + "successMessage": { + "summary": "Desconnectat!", + "detail": "Desconnectat de @:remoteToolsConnector.title" + } + } + }, + "forge": { + "forgeMode": { + "title": "Mode forja", + "description": "El mode forja us ofereix un llenç en blanc i un escriptor potent per crear, editar, donar estil i refinar contingut lliurement." + }, + "title": "Forja", + "forgeContent": "Contingut de la @:forge.title", + "forgingContent": "S'està forjant el contingut", + "editRawMarkdown": "Edita el Markdown en brut", + "editAsBranch": "Edita com a branca", + "disabledEditRawMarkdown": "Aquest contingut s'ha forjat. No es permet editar el Markdown en brut.", + "saveChanges": { + "title": "Desa els canvis", + "successMessage": { + "detail": "S'han desat els canvis" + }, + "errorMessage": { + "detail": "No s'han pogut desar els canvis" + } + }, + "placeholders": { + "writeSomething": "Escriviu alguna cosa o teclegeu / per veure les opcions...", + "detailsSummary": "Introduïu un resum dels detalls" + }, + "prompts": { + "simplify": "Simplifica", + "fixSpellingAndGrammar": "Corregeix l'ortografia i la gramàtica", + "makeShorter": "Escurça", + "makeLonger": "Allarga", + "tldr": "TL;DR;", + "emojify": "Emojifica", + "changeTone": { + "title": "@:change el to", + "academic": "Acadèmic", + "business": "Empresarial", + "casual": "Informal", + "childFriendly": "Apte per a infants", + "conversational": "Conversacional", + "emotional": "Emotiu", + "humorous": "Humorístic", + "informative": "Informatiu", + "inspirational": "Inspirador", + "professional": "Professional", + "narrative": "Narratiu", + "objective": "Objectiu", + "persuasive": "Persuasiu", + "poetic": "Poètic" + } + }, + "clearFormatting": "Esborra el format", + "bold": "Negreta", + "italic": "Cursiva", + "underline": "Subratllat", + "strikethrough": "Ratllat", + "code": "Codi", + "codeBlock": "Bloc de codi", + "blockQuote": "Cita", + "undo": "Desfés", + "redo": "Refés", + "texts": "Textos", + "paragraph": "Paràgraf", + "heading1": "Encapçalament 1", + "heading2": "Encapçalament 2", + "heading3": "Encapçalament 3", + "lists": "Llistes", + "bulletList": "Llista de pics", + "numberedList": "Llista numerada", + "taskList": "Llista de tasques", + "whatToForgePlaceholder": "Què voleu forjar avui?", + "forgeWriter": "Escriptor de la forja", + "inlinePrompt": { + "placeholder": "Escriviu la vostra indicació personalitzada...", + "ask": "Pregunta", + "askTooltip": "Demaneu al model que generi una resposta a partir d'una indicació personalitzada" + }, + "forgeCanvas": "Llenç de la @:forge.title", + "newForgeCanvas": "@:forge.forgeCanvas nou", + "addNewForgeCanvas": "Afegeix un @:forge.forgeCanvas nou" + }, + "preview": "Previsualització", + "prompt": "Indicació | Indicacions", + "discard": "Descarta", + "insert": "Insereix", + "regenerate": "Regenera", + "rewrite": "Reescriu", + "exit": "Surt", + "customPrompt": "Indicació personalitzada", + "markdown": "Markdown", + "json": "JSON", + "html": "HTML", + "formatted": "Amb format", + "invalidJson": "@:json no vàlid", + "downloadMarkdown": "@:download com a fitxer @:markdown", + "downloadJson": "@:download com a fitxer @:json", + "downloadHTML": "@:download com a fitxer HTML", + "copyMarkdownToClipboard": "Copia el @:markdown al porta-retalls", + "copyHTMLToClipboard": "Copia l'HTML al porta-retalls", + "copyFormattedToClipboard": "Copia el text al porta-retalls", + "copiedToClipboard": { + "summary": "Copiat!", + "markdownDetail": "S'ha copiat el contingut al porta-retalls com a @:markdown", + "htmlDetail": "S'ha copiat el contingut al porta-retalls com a HTML", + "formattedDetail": "S'ha copiat el contingut al porta-retalls com a text amb format", + "jsonDetail": "S'ha copiat el contingut al porta-retalls com a @:json", + "itemCopied": "S'ha copiat {item} al porta-retalls" + }, + "exportJsonToClipboard": "S'ha exportat el contingut al porta-retalls com a @:json", + "variable": "Variable | Variables", + "pinItem": { + "title": "@:pinned {item}", + "action": "Fixa {item}", + "successMessage": { + "detail": "S'ha fixat {item}" + }, + "errorMessage": { + "detail": "No s'ha pogut fixar {item}" + } + }, + "unpinItem": { + "action": "Deixa de fixar {item}", + "successMessage": { + "detail": "S'ha deixat de fixar {item}" + }, + "errorMessage": { + "detail": "No s'ha pogut deixar de fixar {item}" + } + }, + "setDefaultItem": { + "title": "{item} per defecte", + "action": "Estableix {item} com a predeterminat", + "successMessage": { + "detail": "S'ha establert {item} com a predeterminat" + }, + "errorMessage": { + "detail": "No s'ha pogut establir {item} com a predeterminat" + } + }, + "unsetDefaultItem": { + "action": "{item} per defecte. Feu clic per desfer-ho.", + "successMessage": { + "detail": "S'ha tret {item} com a predeterminat" + } + }, + "model": "Model", + "modelSelector": { + "filterControls": { + "title": "Ordena i mostra", + "searchPlaceholder": "Cerca models...", + "clear": "Restableix", + "providerSort": { + "label": "Ordenació dels proveïdors", + "none": "Cap", + "name": "Nom", + "createdAt": "Data de creació", + "ascending": "Ascendent", + "descending": "Descendent", + "groupByProvider": "Agrupa per proveïdor" + }, + "modelSort": { + "label": "Ordenació dels models", + "none": "Cap", + "name": "Nom", + "recent": "Recent", + "ascending": "Ascendent", + "descending": "Descendent" + }, + "purpose": { + "label": "Filtra per finalitat", + "placeholder": "Totes les finalitats" + } + } + }, + "modelSettings": "Configuració del model", + "syncSplit": "Sincronitza la divisió", + "name": "Nom", + "split": "Divisió | Divisions", + "template": "Plantilla | Plantilles", + "discardChanges": "Descarta els canvis", + "applyChanges": "Aplica els canvis", + "splitPreset": { + "title": "Predefinit de divisió | Predefinits de divisió", + "selectPlaceholder": "@:select un predefinit", + "new": "Predefinit nou", + "newSplit": "Predefinit nou", + "splits": { + "splitIndex": "Divisió {index}", + "delete": "Suprimeix el predefinit" + }, + "import": { + "title": "Importa un predefinit | Importa predefinits", + "dragAndDropMessage": "Arrossegueu i deixeu anar un fitxer comprimit de predefinits de Msty per importar-lo i crear predefinits nous. En cas de noms duplicats, els predefinits importats es reanomenaran. Els podeu canviar més endavant.", + "successMessage": { + "detail": "@:preset importat" + }, + "errorMessage": { + "detail": "No s'han pogut importar els predefinits" + } + }, + "export": { + "title": "Exporta el predefinit | Exporta els predefinits", + "selected": "Exporta el predefinit seleccionat | Exporta els predefinits seleccionats", + "successMessage": { + "detail": "El predefinit de divisió s'ha exportat com a {fileName} | Els predefinits de divisió s'han exportat com a {fileName}" + }, + "errorMessage": { + "detail": "No s'ha pogut exportar el predefinit | No s'han pogut exportar els predefinits" + } + }, + "delete": { + "title": "Suprimeix el predefinit | Suprimeix els predefinits", + "selected": "Suprimeix el predefinit seleccionat | Suprimeix els predefinits seleccionats", + "deleteConfirmation": { + "header": "Suprimeix el predefinit", + "description": "Segur que voleu suprimir {presetName}? | Segur que voleu suprimir {count} predefinits?" + }, + "successMessage": { + "detail": "S'ha suprimit el predefinit de divisió | S'han suprimit els predefinits de divisió" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir el predefinit de divisió | No s'han pogut suprimir els predefinits de divisió" + } + }, + "update": { + "successMessage": { + "detail": "S'ha actualitzat el predefinit de divisió" + }, + "errorMessage": { + "detail": "No s'ha pogut actualitzar el predefinit de divisió" + } + }, + "save": { + "successMessage": { + "detail": "S'ha desat el predefinit de divisió" + }, + "errorMessage": { + "detail": "No s'ha pogut desar el predefinit de divisió" + } + }, + "empty": { + "title": "No hi ha cap @:splitPreset.title disponible.", + "description": "Comenceu afegint o important un @:splitPreset.title nou" + }, + "invalidTemplatesMessage": { + "summary": "Plantilles no vàlides", + "detail": "Algunes plantilles no són vàlides o els falten camps obligatoris. Corregiu-les abans de continuar." + } + }, + "shadowPersonas": { + "title": "Personalitats ombra", + "create": "Crea una personalitat ombra", + "editTitle": "Edita la personalitat ombra", + "assignedPersona": "Personalitat assignada", + "changePersona": "Canvia la personalitat", + "changePersonaTitle": "Canvia la personalitat ombra", + "currentPersona": "Personalitat actual", + "selectNewPersona": "Selecciona una personalitat nova", + "waitingForCompletion": "S'està esperant que s'acabi", + "changePersonaWarning": "Canviar la personalitat restablirà el context d'anàlisi i pot afectar la continuïtat.", + "unassigned": "Cap personalitat assignada", + "hideSidebar": "Amaga les personalitats ombra", + "showSidebar": "Mostra les personalitats ombra", + "noMonitoring": "No s'està supervisant cap divisió", + "monitoringHiddenHint": "S'està supervisant {count} divisió (feu clic per mostrar) | S'estan supervisant {count} divisions (feu clic per mostrar)", + "monitoringSplitsHint": "S'està supervisant {count} divisió | S'estan supervisant {count} divisions", + "noSplitsMonitoredHint": "No s'està supervisant cap divisió", + "monitoringStatus": "S'està supervisant {count} divisió | S'estan supervisant {count} divisions", + "activate": "Activa", + "deactivate": "Desactiva", + "processNow": "Processa ara", + "processing": "S'està processant...", + "createAndAssign": "Crea i assigna", + "latestInsight": "Darrera observació", + "noOutputYet": "Encara no hi ha cap sortida", + "outputs": "Sortides", + "viewLatest": "Mostra l'última", + "viewHistory": "Mostra l'historial", + "noHistory": "No hi ha historial disponible", + "selectVersion": "Selecciona una versió", + "name": "Nom de la personalitat ombra", + "namePlaceholder": "p. ex., analista tècnic, monitor de rendiment", + "edit": "Edita la personalitat ombra", + "switchShadowPersona": "Canvia de personalitat ombra", + "selectShadowPersonaToSwitch": "Seleccioneu la personalitat ombra a la qual voleu canviar", + "selectShadowPersona": "Selecciona una personalitat ombra", + "searchShadowPersonas": "Cerca personalitats ombra...", + "description": "Descripció (opcional)", + "descriptionPlaceholder": "Descriviu què observa o analitza aquesta personalitat ombra", + "selectPersona": "Selecciona una personalitat", + "selectPersonaPlaceholder": "Trieu una personalitat per fer servir", + "selectSplits": "Selecciona les divisions a supervisar", + "selectSplitsPlaceholder": "Trieu les divisions a supervisar", + "selectSplitsPlaceholderOptional": "Trieu les divisions a supervisar (es pot definir més endavant)", + "splitsCanBeAssignedLater": "Les divisions es poden assignar i gestionar dinàmicament després de la creació", + "updateTrigger": "Activador d'actualització", + "messageInterval": "Interval de missatges", + "timeInterval": "Interval de temps", + "messagesPerSplit": "Missatges per divisió", + "maxContext": "Context màxim", + "synthesisMode": "Mode de síntesi", + "outputFormat": "Format de sortida", + "maxProcessingTime": "Temps màxim de processament", + "versionManagement": "Gestió de versions", + "maxVersions": "Màxim de versions", + "advancedSettings": "Configuració avançada", + "includeSystemMessages": "Inclou els missatges del sistema", + "autoDeleteOld": "Suprimeix automàticament les versions antigues", + "waitingForSplits": "S'estan esperant les divisions", + "processingNow": "S'està processant ara", + "empty": { + "title": "Cap personalitat ombra", + "description": "Creeu una personalitat ombra per supervisar i analitzar les divisions de les vostres converses" + }, + "unlock": "Desbloqueja les personalitats ombra", + "experimental": "Experimental", + "experimentalInfo": "Les personalitats ombra són una funció experimental que analitza les converses i genera perspectives i observacions alternatives en paral·lel.", + "noOutput": { + "title": "Encara no hi ha cap sortida", + "description": "Aquesta personalitat ombra encara no ha generat cap sortida" + }, + "saveToEnableProcessing": "Deseu aquesta conversa per activar el processament de la personalitat ombra", + "delete": { + "title": "Suprimeix la personalitat ombra", + "action": "Suprimeix", + "confirmMessage": "Segur que voleu suprimir «{name}»? «{name}» se suprimirà de totes les converses a les quals està adjuntada. Aquesta acció no es pot desfer.", + "successMessage": "S'ha suprimit la personalitat ombra correctament", + "errorMessage": "No s'ha pogut suprimir la personalitat ombra" + }, + "detach": { + "title": "Desadjunta la personalitat ombra", + "action": "Desadjunta", + "confirmMessage": "Voleu desadjuntar «{name}» d'aquesta conversa? La personalitat ombra continuarà disponible per a altres converses.", + "successMessage": "S'ha desadjuntat la personalitat ombra correctament", + "errorMessage": "No s'ha pogut desadjuntar la personalitat ombra" + }, + "switch": { + "successMessage": "S'ha canviat la personalitat ombra correctament", + "errorMessage": "No s'ha pogut canviar la personalitat ombra" + }, + "editToast": { + "successMessage": "S'ha actualitzat la personalitat ombra correctament", + "errorMessage": "No s'ha pogut actualitzar la personalitat ombra" + }, + "createToast": { + "successMessage": "S'ha creat la personalitat ombra correctament", + "errorMessage": "No s'ha pogut crear la personalitat ombra" + }, + "queueClearedToast": { + "summary": "S'ha buidat la cua", + "detail": "S'ha cancel·lat {cancelledCount} element en cua | S'han cancel·lat {cancelledCount} elements en cua" + }, + "queueUpdatedToast": { + "summary": "S'ha actualitzat la cua", + "detail": "S'ha cancel·lat {cancelledCount} element activat automàticament | S'han cancel·lat {cancelledCount} elements activats automàticament" + }, + "queueFullToast": { + "summary": "Cua plena", + "detail": "La cua de processament és plena. Espereu que s'acabin els elements actuals" + }, + "alreadyProcessingToast": { + "summary": "Ja s'està processant", + "detail": "Aquesta conversa ja s'està processant" + }, + "trigger": { + "everyMessage": "Cada missatge", + "everyNMessages": "Cada {n} missatges", + "manual": "Només manual", + "timeInterval": "Interval de temps", + "automatic": "Automàtic" + }, + "triggerHints": { + "everyMessage": "S'executa després de cada missatge (el més ràpid, més freqüent)", + "everyNMessages": "S'executa després de {n} missatges (per lots)", + "manual": "Només quan feu clic a «Processa ara»" + }, + "synthesis": { + "auto": "Automàtic", + "combined": "Anàlisi combinada", + "perSplit": "Per divisió", + "comparative": "Comparativa" + }, + "synthesisHints": { + "auto": "Tria el millor mode segons les divisions i la intenció", + "combined": "Un únic resum de totes les divisions", + "perSplit": "Mantén cada divisió separada i etiquetada", + "comparative": "Diferències i coincidències costat per costat" + }, + "synthesisAutoReasons": { + "singleSplit": "El mode automàtic farà servir Combinada perquè només hi ha una divisió.", + "multipleModels": "El mode automàtic farà servir Comparativa perquè s'utilitzen diversos models.", + "sameModel": "El mode automàtic farà servir Per divisió perquè les divisions utilitzen el mateix model." + }, + "format": { + "insights": "Observacions", + "summary": "Resum", + "recommendations": "Recomanacions", + "analysis": "Anàlisi" + }, + "monitoringSplits": "S'està supervisant {count} divisió | S'estan supervisant {count} divisions", + "locateSplits": "Localitza les divisions", + "manageSplits": "Gestiona les divisions", + "addAllSplits": "Afegeix totes les divisions", + "deselectAll": "Desselecciona-ho tot", + "selectAll": "Selecciona-ho tot", + "selectedCount": "{count} de {total} seleccionats", + "streaming": "Transmissió en temps real", + "starting": "S'està iniciant", + "collectingContext": "S'està recollint el context de les divisions...", + "waitingForConversationCompletion": "S'està esperant que s'acabi la conversa", + "analyzingConversationSplits": "S'estan analitzant les divisions de la conversa...", + "analyzeResponses": "La personalitat ombra analitzarà quan s'hagin rebut totes les respostes", + "toolCalls": "Crides a eines", + "reasoning": "Raonament", + "attachExisting": "Adjunta'n una d'existent", + "attachTitle": "Adjunta una personalitat ombra", + "previousVersion": "Versió anterior", + "nextVersion": "Versió següent", + "attach": "Adjunta", + "selectShadowPersonaToAttach": "Seleccioneu una personalitat ombra per adjuntar-la a aquesta conversa", + "selectShadowPersonaPlaceholder": "Trieu una personalitat ombra per adjuntar-la", + "queuedPosition": "En cua núm. {position}", + "addToQueue": "Afegeix a la cua", + "processingQueue": "Cua de processament", + "removeFromQueue": "Treu de la cua", + "removedFromQueue": "S'ha tret de la cua", + "inQueue": "a la cua", + "clearQueue": "Esborra-ho tot", + "queueEmpty": "No hi ha elements a la cua", + "estimatedWait": "Espera est.: {time}", + "queuedItems": "{count} element a la cua | {count} elements a la cua", + "monitoring": "Supervisió i cua", + "monitoredSplits": "Divisions supervisades" + }, + "toolbox": { + "title": "Caixa d'eines", + "toolsUsageWillSkip": "Msty @:remoteToolsConnector.title no s'està executant; s'ometrà l'ús de les eines.", + "tools": { + "title": "Eina | Eines", + "description": "Un conjunt d'eines per ajudar-vos amb la vostra feina amb LLM.", + "availableTools": "Eines disponibles", + "availableToolsets": "Conjunts d'eines disponibles", + "authorize": "Autoritza", + "setDefaultParams": "Defineix els paràmetres per defecte", + "setParams": "Defineix els paràmetres", + "missingThisDependency": "Sembla que aquesta dependència falta al vostre entorn. Sense ella, és possible que l'eina no funcioni com s'espera.", + "defaultParamsForm": { + "header": "Paràmetres per defecte de {toolName}", + "description": "Aquests paràmetres s'utilitzaran globalment per a totes les instàncies de l'eina {toolName}. Els podeu substituir en crear un conjunt d'eines.", + "args": { + "label": "Arguments", + "description": "Seleccioneu un @:argument i definiu-ne el valor. Deixeu-lo en blanc per no definir cap valor.", + "customArg": { + "label": "@:argument personalitzat", + "description": "Introduïu el nom del nou @:argument{'.'} Separeu diversos arguments amb una coma.", + "placeholder": "p. ex. --arg1, algunArg, -verbose" + } + }, + "env": { + "label": "Variables d'entorn", + "description": "Seleccioneu o introduïu una @:variable d'entorn nova i definiu-ne el valor.", + "addEnv": "Afegeix una @:variable d'entorn", + "selectPlaceholder": "Selecciona una @:variable d'entorn", + "enterNew": "Afegeix una @:variable d'entorn nova" + }, + "successMessage": { + "saveDetail": "S'han desat els paràmetres per defecte de {toolName}." + }, + "errorMessage": { + "saveDetail": "No s'han pogut desar els paràmetres per defecte." + } + }, + "addNewTool": { + "title": "Afegeix una eina nova", + "description": "Afegiu la vostra pròpia eina compatible amb MCP a la caixa d'eines. Un cop afegida, la podeu afegir a un conjunt d'eines, definir-ne els paràmetres i fer-la servir amb un model.", + "namePlaceholder": "Poseu-li un nom (per defecte fa servir l'ID de l'eina)", + "id": { + "label": "ID de l'eina", + "placeholder": "Identificador únic de l'eina (s'emplena automàticament si es detecta a la configuració)" + }, + "duplicateId": "Ja existeix una eina amb aquest ID. Introduïu un ID únic.", + "successMessage": { + "summary": "S'ha afegit l'eina", + "detail": "S'ha afegit l'eina a la caixa d'eines. Ara la podeu afegir a un conjunt d'eines i fer-la servir amb un model." + }, + "successMessageWithToolset": { + "summary": "S'ha afegit l'eina", + "detail": "S'ha afegit l'eina a la caixa d'eines i s'ha creat un conjunt d'eines corresponent. Ja es pot fer servir amb un model." + }, + "errorMessage": { + "detail": "No s'ha pogut afegir l'eina a la caixa d'eines. {error}" + }, + "toolConfig": { + "label": "Configuració de l'eina", + "placeholder": "Introduïu o enganxeu el JSON de configuració de l'eina. Accepta configuració directa o formats embolcallats (extraurà automàticament el toolId)", + "showExampleTitle": "Mostra'm un exemple de configuració d'eina", + "explanation": "La configuració de l'eina accepta diversos formats, inclosos els embolcallats amb mcpServers. Extraurà automàticament el toolId i el nom quan sigui possible. Com a mínim ha de contenir {command}. Els arguments dinàmics s'han d'envoltar amb claus {curly} d'aquesta manera: {argExample}. De la mateixa manera, les variables d'entorn dinàmiques es poden definir amb {envVarLabel}." + }, + "autoCreateToolset": { + "label": "Crea automàticament un conjunt d'eines amb el mateix nom" + } + }, + "editTool": { + "title": "Edita l'eina", + "description": "Actualitzeu el nom, les notes i la configuració de l'eina.", + "successMessage": { + "detail": "S'ha actualitzat l'eina correctament" + }, + "errorMessage": { + "detail": "No s'ha pogut actualitzar l'eina." + } + }, + "emptyPlaceholder": { + "description1": "Feu servir eines MCP externes impulsades per Msty @:remoteToolsConnector.title per ampliar les capacitats dels vostres models i millorar la vostra experiència amb LLM.", + "description2": "Podeu començar important moltes de les eines que inclou Msty o afegint les vostres pròpies eines.", + "description3": "Nota: aquestes eines no estan proporcionades, provades ni mantingudes per Msty. Simplement oferim una plataforma per fer-les servir i permetem importar-les com a comoditat. FEU-LES SERVIR SOTA LA VOSTRA RESPONSABILITAT. Msty no es fa responsable de cap problema que pugui sorgir de l'ús d'aquestes eines. A més, per a assistència, adreceu-vos a l'autor de l'eina." + }, + "importTools": { + "title": "Importa les @:toolbox.tools.title per defecte", + "successMessage": { + "detail": "S'han importat {count} eines per defecte correctament. Podeu crear conjunts d'eines i fer-los servir amb un model." + }, + "successMessageWithToolsets": { + "detail": "S'han importat {count} eines per defecte correctament i s'han creat automàticament {toolsetCount} conjunts d'eines corresponents." + }, + "errorMessage": { + "detail": "No s'han pogut importar les @:toolbox.tools.title per defecte" + } + }, + "deleteConfirmation": { + "header": "Suprimeix l'eina", + "description": "Segur que voleu suprimir {toolName}?", + "successMessage": { + "detail": "S'ha suprimit l'eina" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir l'eina" + } + }, + "deleteAll": { + "confirmationHeader": "Suprimeix totes les eines", + "confirmationMessage": "Segur que voleu suprimir totes les eines? Aquesta acció no es pot desfer.", + "successMessage": "S'han suprimit totes les eines correctament", + "errorMessage": "No s'han pogut suprimir totes les eines" + }, + "copiedToClipboard": "S'ha copiat la configuració de l'eina al porta-retalls", + "viewToolsUsage": { + "title": "Mostra l'ús de les eines", + "noToolCalls": { + "title": "No s'ha trobat cap crida a eines", + "description": "Sembla que hi havia algunes eines disponibles per al model, però no ha fet cap crida a eines. Pot ser que el model no hagi necessitat utilitzar cap eina." + } + } + }, + "toolsets": { + "title": "Conjunt d'eines | Conjunts d'eines", + "emptyPlaceholder": { + "title": "No s'ha trobat cap conjunt d'eines", + "description": "Els conjunts d'eines són un recull d'eines amb paràmetres. Podeu crear un conjunt d'eines i afegir-hi eines. Quan xategeu amb un model, podeu seleccionar un o més conjunts d'eines per fer-los servir amb el model." + }, + "addSomeTools": "Afegiu unes quantes eines per començar.", + "noTools": "No hi ha cap eina en aquest conjunt d'eines", + "tooltip": { + "selectedFeatures": "Funcions activades", + "loading": "S'estan carregant els detalls de la funció…", + "allFeatures": "Totes les funcions", + "unavailable": "No s'han pogut carregar els detalls de la funció" + }, + "addNewToolset": { + "title": "Afegeix un conjunt d'eines nou", + "description": "Creeu un conjunt d'eines nou per agrupar eines. Podeu afegir eines al conjunt i fer-lo servir amb un model. Assegureu-vos de definir o sobreescriure els paràmetres de cada eina del conjunt fent clic al botó {icon}.", + "setParams": { + "title": "Defineix els paràmetres de {toolName}", + "description": "Definiu els paràmetres de l'eina {toolName}. Podeu substituir els paràmetres per defecte definits per a l'eina. Feu servir la consola de l'eina per provar-la, veure les funcions disponibles i limitar-les si cal." + }, + "successMessage": { + "saveDetail": "S'ha desat el conjunt d'eines i s'ha afegit a la caixa d'eines. Ara el podeu fer servir amb un model." + }, + "errorMessage": { + "saveDetail": "No s'ha pogut desar el conjunt d'eines." + } + }, + "editToolset": { + "title": "Edita el conjunt d'eines", + "description": "Editeu el nom i les notes del conjunt d'eines. També podeu afegir o treure eines del conjunt i ajustar els paràmetres o limitar les funcions de cada eina fent clic al botó {icon}.", + "successMessage": { + "detail": "S'ha actualitzat el conjunt d'eines correctament" + }, + "errorMessage": { + "detail": "No s'ha pogut actualitzar el conjunt d'eines." + } + }, + "deleteConfirmation": { + "header": "Suprimeix el conjunt d'eines", + "description": "Segur que voleu suprimir {toolsetName}?", + "successMessage": { + "detail": "S'ha suprimit el conjunt d'eines" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir el conjunt d'eines" + } + }, + "deleteAll": { + "confirmationHeader": "Suprimeix tots els conjunts d'eines", + "confirmationMessage": "Segur que voleu suprimir tots els conjunts d'eines? Aquesta acció no es pot desfer.", + "successMessage": "S'han suprimit tots els conjunts d'eines correctament", + "errorMessage": "No s'han pogut suprimir tots els conjunts d'eines" + }, + "export": { + "title": "Exporta els conjunts d'eines", + "description": "Per seguretat, es poden eliminar els valors de configuració sensibles abans d'exportar. Seleccioneu quines variables d'entorn i arguments voleu netejar de cada eina.", + "envVarsToScrub": "Variables d'entorn a netejar", + "argsToScrub": "Arguments a netejar", + "scrubCustomArgs": "Neteja la cadena d'arguments personalitzats", + "selectEnvVarsPlaceholder": "Seleccioneu les variables d'entorn de les quals voleu eliminar els valors", + "selectArgsPlaceholder": "Seleccioneu els arguments dels quals voleu eliminar els valors", + "noScrubbableData": "No hi ha cap dada de configuració a netejar", + "sensitiveDataNote": "Els valors sensibles habituals estan preseleccionats per a la vostra seguretat.", + "copiedToClipboard": "S'ha copiat la configuració del conjunt d'eines al porta-retalls", + "downloadedAsJson": "S'ha baixat la configuració del conjunt d'eines", + "fetchError": "No s'han pogut obtenir les dades del conjunt d'eines per exportar-les" + }, + "import": { + "missingTools": "No s'han trobat algunes eines i s'han omès: {tools}" + }, + "noOfTools": "{count} eina | {count} eines", + "viewToolsAndNotes": "Mostra les eines i les notes", + "console": { + "title": "Consola de l'eina", + "description": "Podeu fer servir aquesta consola per provar {toolName} i veure'n la sortida. També la podeu utilitzar per provar l'eina amb paràmetres diferents o limitar les funcions disponibles. Totes les funcions estan activades per defecte; marqueu les caselles per limitar les funcions només a les seleccionades.", + "listTools": "Llista les funcions de {toolName}", + "missingRequiredArgument": "Falten {count} arguments obligatoris", + "continueWithMissingArgs": "Continua tot i que falti l'argument", + "viewSourceOnGitHub": "Mostra el codi font a GitHub", + "allowedFeaturesLabel": "Activa funcions específiques per a aquesta eina", + "allowedFeaturesPlaceholder": "Cerqueu o trieu les funcions que voleu permetre", + "selectedFeaturesLabel": "Funcions activades actualment", + "toolCall": { + "title": "Crida a l'eina", + "description": "Afegiu les propietats necessàries per cridar {featureName}. Si voleu, podeu afegir propietats addicionals. Aneu amb compte de no cridar l'eina sense més, sobretot sense els valors correctes.", + "selectPlaceholder": "@:select una propietat", + "enterNew": "Afegeix una propietat nova", + "execute": "Executa la @:toolbox.toolsets.console.toolCall" + } + }, + "manageTooltip": "Feu clic per gestionar els conjunts d'eines utilitzats", + "noModelSupport": "És possible que el model seleccionat no admeti eines.", + "toolsetsUsedCount": "{count} conjunt d'eines actiu | {count} conjunts d'eines actius" + } + }, + "liveContexts": { + "liveContextsUsedCount": "{count} context en directe actiu | {count} contextos en directe actius", + "title": "@:context en directe", + "contexts": "Contextos en directe", + "untitled": "Context en directe sense títol", + "selectSource": "Selecciona la font", + "selectSourceTooltip": "Activeu-ho per incloure o excloure aquesta font del context", + "addNew": { + "title": "Afegeix un context en directe nou", + "description": "Creeu una font de context en directe nova per afegir context de dades externes a la vostra conversa.", + "errorMessage": { + "detail": "No s'ha pogut afegir el context en directe" + }, + "successMessage": { + "detail": "S'ha afegit el context en directe" + } + }, + "edit": { + "title": "Edita el context en directe" + }, + "promptPlaceholder": "Indiqueu aquí una indicació per al mode d'emissió (push); incloeu qualsevol detall del mode de recepció (pull) a la secció de notes.", + "endpointDetails": "Detalls del punt final", + "method": "Mètode", + "url": "URL", + "customHeaders": "Capçaleres personalitzades", + "hasBody": "Té cos", + "customProcessing": "Processament personalitzat", + "promptTemplate": "Plantilla d'indicació", + "requestHeaders": { + "title": "Capçaleres de la sol·licitud", + "description": "Afegiu les capçaleres de la sol·licitud com a objecte JSON. S'enviaran amb la sol·licitud al punt final de l'API.", + "placeholder": "{'{'}\n \"Authorization\": \"Bearer {'{'}apiKey:'key'{'}'}\",\n \"X-From\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}" + }, + "requestBody": { + "title": "Cos de la sol·licitud", + "description": "Afegiu el cos de la sol·licitud com a objecte JSON. S'enviarà amb la sol·licitud al punt final de l'API.", + "placeholder": "{'{'}\n \"q\": \"{'{'}query:'term'{'}'}\",\n \"from\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}" + }, + "placeholders": { + "title": "Marcadors de posició dinàmics", + "tooltip": "Sintaxi dels marcadors de posició", + "label": "Marcadors de posició:" + }, + "processingFunction": { + "title": "Funció de processament", + "description": "Afegiu una funció de processament per transformar les dades de la resposta abans de fer-les servir a la conversa. La funció ha de retornar una cadena.", + "placeholderHeader": "function process({'{'}data, placeholders{'}'}) {'{'}", + "placeholder": " // accedeix a les dades i als marcadors de posició opcionals\n return JSON.stringify(data)", + "placeholderFooter": "{'}'}", + "tooltip": "Accedeix-hi mitjançant el paràmetre placeholders", + "usePlaceholders": "Feu servir marcadors de posició al codi:" + }, + "testVariables": { + "description": "Introduïu valors de prova per als marcadors de posició detectats per provar el punt final." + }, + "update": { + "successMessage": { + "detail": "S'ha actualitzat el context en directe" + }, + "errorMessage": { + "detail": "No s'ha pogut actualitzar el context en directe" + } + }, + "deleteConfirmation": { + "header": "Suprimeix el context en directe", + "description": "Segur que voleu suprimir {liveContextName}?", + "successMessage": { + "detail": "S'ha suprimit el context en directe" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir el context en directe" + } + }, + "emptyPlaceholder": { + "title": "No s'ha trobat cap context en directe", + "description": "Els @:liveContexts.title són contextos de dades externes que podeu afegir a la vostra conversa. Podeu crear una font de @:liveContexts.title nova i fer-la servir amb un model." + }, + "deleteAll": { + "confirmationHeader": "Suprimeix tots els contextos en directe", + "confirmationMessage": "Segur que voleu suprimir tots els contextos en directe? Aquesta acció no es pot desfer.", + "successMessage": "S'han suprimit tots els contextos en directe correctament", + "errorMessage": "No s'han pogut suprimir tots els contextos en directe" + }, + "export": { + "title": "Exporta el context en directe", + "headerScrubDescription": "Per seguretat, es poden eliminar els valors de capçalera sensibles abans d'exportar. Seleccioneu quines capçaleres voleu netejar.", + "selectHeadersToScrub": "Capçaleres a netejar", + "selectHeadersPlaceholder": "Seleccioneu les capçaleres de les quals voleu eliminar els valors", + "sensitiveHeadersNote": "Les capçaleres sensibles habituals estan preseleccionades per a la vostra seguretat.", + "copiedToClipboard": "S'ha copiat la configuració del context en directe al porta-retalls", + "downloadedAsJson": "S'ha baixat la configuració del context en directe" + }, + "modeLabel": "Mode", + "mode": { + "push": "Emissió (push)", + "pull": "Recepció (pull)", + "tooltip": { + "push": "Mode d'emissió (push): s'executa automàticament abans que el model respongui", + "pull": "Mode de recepció (pull): el model el crida sota demanda" + } + } + }, + "modes": { + "mode": "Mode | Modes", + "title": "@:modes.mode", + "exitMode": "Surt del mode {mode}", + "zenMode": { + "title": "Zen", + "quote": "un estat d'atenció serena", + "newConversation": "Conversa nova en mode Zen" + }, + "vaporMode": { + "title": "@:modes.mode @:modes.vaporMode.vapor", + "vapor": "Vapor", + "description": "Les converses no es desaran al vostre historial i desapareixeran quan ho desactiveu o navegueu cap a una altra banda", + "willDisappearTooltip": "Això desapareixerà quan desactiveu el @:modes.mode @:modes.vaporMode.vapor o navegueu cap a una altra banda", + "exitVaporMode": "Surt del @:modes.mode @:modes.vaporMode.vapor", + "enterVaporMode": "Entra al @:modes.mode @:modes.vaporMode.vapor", + "preserverChat": { + "saveConversation": "Desa la conversa", + "successMessage": { + "detail": "S'ha conservat el xat @:modes.vaporMode.vapor" + }, + "errorMessage": { + "detail": "No s'ha pogut conservar el xat @:modes.vaporMode.vapor" + } + } + }, + "focusMode": { + "title": "@:modes.mode Focus" + }, + "normalMode": { + "title": "@:modes.mode normal" + } + }, + "searchForm": { + "query": "Consulta", + "title": "Cerca elements", + "noResults": { + "title": "No s'ha trobat cap resultat", + "description": "Proveu de cercar un altre terme" + }, + "entity": { + "conversationTextMessages": "@:conversation.title", + "promptsLibraryPrompts": "Indicació | Indicacions" + }, + "foundResultsCount": "S'ha trobat {count} resultat | S'han trobat {count} resultats", + "labels": { + "title": "Cerca {entity}", + "description": "Cerqueu {entity} ràpidament amb paraules clau", + "tips": { + "default": { + "description": "La cerca coincideix amb totes les paraules per defecte (p. ex., {example} → coincideix amb text que conté totes dues paraules en qualsevol ordre)", + "example": "cotxe blau" + }, + "partial": { + "description": "Feu servir {operator} per a coincidències parcials (p. ex., {example})", + "operator": "*", + "example": "corr* → corre, corrent" + }, + "or": { + "description": "Feu servir {operator} per coincidir amb qualsevol terme (p. ex., {example})", + "operator": "OR", + "example": "poma OR taronja" + }, + "exact": { + "description": "Feu servir cometes dobles {operator} per a coincidències exactes (p. ex., {example})", + "operator": "\"\"", + "example": "\"cotxe blau\"" + }, + "specialCharacters": { + "description": "Feu servir {operator} per escapar caràcters especials (p. ex., {example})", + "operator": "\"\"", + "example": "\"C++\", \"node.js\"" + } + } + } + }, + "clearSearch": "Esborra la cerca", + "helpfulTips": "Consells útils", + "hideSearch": "Amaga la cerca", + "bookmarkItem": { + "action": "Marca {item}", + "jump": "Vés a {item} marcat", + "title": "{item} marcat", + "successMessage": { + "detail": "{item} marcat" + }, + "errorMessage": { + "detail": "No s'ha pogut marcar {item}" + }, + "deletedInfoMessage": { + "detail": "S'ha suprimit {item} marcat" + }, + "emptyState": { + "title": "No hi ha marcadors disponibles.", + "description": "Comenceu marcant {item}" + } + }, + "removeBookmarkedItem": { + "action": "Treu {item} dels marcadors", + "successMessage": { + "detail": "S'ha tret {item} dels marcadors" + }, + "errorMessage": { + "detail": "No s'ha pogut treure {item} dels marcadors" + } + }, + "turnstile": { + "title": "Turnstile | Turnstiles", + "newTurnstile": "@:turnstile.title nou", + "queueEntry": "Afegeix a la cua", + "selectPlaceholder": "@:select un @:turnstile.title", + "addQueueWithAlt": "Feu clic per obrir o Alt+clic per afegir a la cua", + "entriesQueued": "Cap @:entry en cua | {count}/{total} @:entry en cua | {count}/{total} @:entry en cua", + "emptyQueueMessage": "Quan la vostra indicació estigui a punt, feu clic a @:turnstile.queueEntry per afegir una entrada a la cua.", + "manageSavedTurnstiles": "Gestiona els Turnstiles desats", + "saveForm": { + "title": "Desa el @:turnstile.title com a", + "successMessage": { + "detail": "S'ha desat el @:turnstile.title correctament." + }, + "errorMessage": { + "detail": "No s'ha pogut desar el Turnstile." + } + }, + "loadTurnstiles": { + "title": "Carrega el @:turnstile.title", + "successMessage": { + "summary": "@:turnstile.title carregat!", + "detail": "S'ha carregat i encuat {count} entrada. | S'han carregat i encuat {count} entrades." + }, + "errorMessage": { + "detail": "No s'ha pogut carregar el Turnstile." + } + }, + "clearQueue": { + "title": "Buida la cua", + "clearQueueConfirmation": { + "message": "Segur que voleu buidar la cua? Això eliminarà tots els missatges que heu afegit." + } + }, + "newEntry": { + "title": "Entrada nova" + }, + "invalidEntriesMessage": { + "summary": "Entrades no vàlides", + "detail": "Algunes entrades no són vàlides o els falten camps obligatoris. Corregiu-les abans de continuar." + }, + "metaSendMissingRootNode": { + "detail": "No s'ha pogut executar {metaType}. Assegureu-vos que no sigui la primera entrada de la cua." + }, + "update": { + "successMessage": { + "detail": "S'ha actualitzat el @:turnstile.title correctament." + }, + "errorMessage": { + "detail": "No s'ha pogut actualitzar el Turnstile. Heu definit la indicació i el model?" + } + }, + "save": { + "successMessage": { + "detail": "S'ha desat el @:turnstile.title correctament." + }, + "errorMessage": { + "detail": "No s'ha pogut desar el Turnstile. Heu definit la indicació i el model?" + } + }, + "delete": { + "selected": "Suprimeix el @:turnstile.title seleccionat | Suprimeix els @:turnstile.title seleccionats", + "deleteConfirmation": { + "header": "Suprimeix el @:turnstile.title", + "description": "Segur que voleu suprimir {turnstileName}? | Segur que voleu suprimir {count} Turnstiles?" + } + }, + "empty": { + "title": "No hi ha cap @:turnstile.title disponible.", + "description": "Comenceu afegint o important un @:turnstile.title nou{'.'}" + }, + "new": "Turnstile nou", + "entryIndex": "@:entry {index}", + "addContinue": "Afegeix @:message.renderingActions.continueGeneration", + "addRegenerate": "Afegeix @:regenerate", + "addPersona": "Afegeix @:persona.title", + "addShield": "Afegeix @:contextShield.title", + "addShieldWithSummary": "Afegeix @:contextShield.contextShieldWithSummary", + "import": { + "title": "Importa el @:turnstile.title", + "dragAndDropMessage": "Arrossegueu i deixeu anar un @:turnstile.title de Msty comprimit per importar-lo i crear Turnstiles nous. En cas de noms duplicats, els Turnstiles importats es reanomenaran. Els podeu canviar més endavant.", + "successMessage": { + "detail": "S'han importat els Turnstiles" + }, + "errorMessage": { + "detail": "No s'han pogut importar els Turnstiles" + } + }, + "export": { + "title": "Exporta el @:turnstile.title", + "selected": "Exporta el @:turnstile.title seleccionat | Exporta els @:turnstile.title seleccionats", + "successMessage": { + "detail": "@:turnstile.title exportat com a {fileName} | @:turnstile.title exportats com a {fileName}" + }, + "errorMessage": { + "detail": "No s'ha pogut exportar el @:turnstile.title | No s'han pogut exportar els @:turnstile.title" + } + } + }, + "modelMatchmaker": { + "title": "Emparellador de models", + "description": "Ajusteu els controls lliscants de gravetat per a punts forts com ara la programació, el raonament o les matemàtiques, i l'Emparellador classificarà i recomanarà els millors models per a les vostres necessitats. Els resultats poden variar segons la qualitat de les dades, la mida del model i la complexitat de la tasca.", + "ctaIntro": "Heu trobat el vostre model?", + "ctaMessage": "Proveu-lo i compareu-lo a Msty Studio.", + "gravity": "Gravetat", + "remoteOnly": "Només remots", + "rankedModels": { + "title": "Models classificats", + "emptyMessage": "No s'ha trobat cap model. Proveu d'ajustar els vostres requisits." + }, + "strengthsLabel": { + "ca": { + "title": "Programació", + "description": "La capacitat d'escriure codi en un llenguatge de programació." + }, + "aca": { + "title": "Programació agèntica", + "description": "La capacitat agèntica d'escriure codi en un llenguatge de programació." + }, + "daa": { + "title": "Anàlisi de dades", + "description": "La capacitat d'analitzar dades i generar observacions." + }, + "ifa": { + "title": "Seguiment d'instruccions", + "description": "La capacitat de seguir instruccions i fer tasques." + }, + "jak": { + "title": "GOAT: generalista de tots els oficis", + "description": "La capacitat de fer una àmplia gamma de tasques." + }, + "la": { + "title": "Llengua", + "description": "La capacitat d'entendre i generar llenguatge humà." + }, + "ma": { + "title": "Matemàtiques", + "description": "La capacitat de fer càlculs matemàtics." + }, + "pp": { + "title": "Paràfrasi", + "description": "Capacitat demostrada de reescriptura per reformular qualsevol text." + }, + "ra": { + "title": "Raonament", + "description": "Pensament crític: la capacitat de raonar i prendre decisions." + }, + "sim": { + "title": "Simplificació", + "description": "La capacitat de simplificar qualsevol text complex." + }, + "stg": { + "title": "Generació d'històries", + "description": "La capacitat de generar històries o narracions." + }, + "sum": { + "title": "Resum", + "description": "La capacitat de resumir informació textual i numèrica." + }, + "tu": { + "title": "Ús d'eines", + "description": "La capacitat de cridar i fer servir eines externes." + }, + "mit": { + "title": "Màxim de tokens d'entrada", + "description": "El nombre màxim de tokens acceptats en una crida." + }, + "mot": { + "title": "Màxim de tokens de sortida", + "description": "El nombre màxim de tokens generats en una crida." + }, + "ics": { + "title": "Estalvi de tokens d'entrada", + "costTitle": "Cost d'entrada/milió de tokens", + "description": "L'estalvi de costos en generar tokens d'entrada." + }, + "ocs": { + "title": "Estalvi de tokens de sortida", + "costTitle": "Cost de sortida/milió de tokens", + "description": "L'estalvi de costos en generar tokens de sortida." + } + }, + "normalizedScore": "Puntuació normalitzada", + "resetStrengths": "Restableix els punts forts", + "savePresetForm": { + "title": "Desa els punts forts com a predefinit", + "errorMessage": { + "detail": "No s'ha pogut desar el predefinit de punts forts." + }, + "successMessage": { + "detail": "S'ha desat el predefinit de punts forts." + }, + "loadedMessage": { + "detail": "S'ha carregat el predefinit de punts forts." + } + }, + "deletePresetConfirm": { + "title": "Suprimeix el predefinit", + "message": "Segur que voleu suprimir {presetName}?", + "errorMessage": { + "detail": "No s'ha pogut suprimir el predefinit de punts forts." + }, + "successMessage": { + "detail": "S'ha suprimit el predefinit de punts forts." + } + } + }, + "costCalculator": { + "title": "Calculadora de cost dels models", + "description": "Calculeu i compareu els costos dels models d'IA d'OpenAI, Anthropic, Google i més. Estimeu les vostres despeses segons l'ús de tokens d'entrada/sortida i els preus del model. Són només estimacions i els costos reals poden variar.", + "tokenInputs": "Entrades de tokens", + "filters": "Filtres", + "ctaIntro": "Heu trobat el vostre model?", + "ctaMessage": "Proveu-lo i compareu-lo a Msty Studio." + }, + "vramCalculator": { + "title": "Calculadora de VRAM", + "description": "Comproveu si un model cap a la VRAM del vostre dispositiu abans de baixar-lo o executar-lo. Aquesta calculadora ofereix una estimació dels requisits de VRAM segons l'arquitectura i la mida del model. Seleccioneu una de les opcions de sota per començar.", + "ctaIntro": "Heu trobat el vostre model?", + "ctaMessage": "Proveu-lo i compareu-lo a Msty Studio." + }, + "copyOrMoveItemToWorkspace": { + "copyTitle": "Copia {item} als espais de treball", + "copyOrMoveTitle": "Copia/mou {item} als espais de treball", + "selectWorkspaces": "Selecciona els espais de treball", + "availableWorkspaces": "Espais de treball disponibles", + "actionLabel": "Acció", + "inputLabel": { + "copy": "Copieu {item} a un o més espais de treball.", + "copyOrMove": "Copieu/moveu {item} a un o més espais de treball.", + "edit": "Sincronitzeu aquest proveïdor a un o més espais de treball. Si s'havia copiat abans, s'actualitzarà. Si no, s'afegirà." + }, + "successMessage": { + "copyDetail": "S'ha copiat {item} a {count} espai de treball | S'ha copiat {item} a {count} espais de treball", + "moveDetail": "S'ha mogut {item} a {count} espai de treball | S'ha mogut {item} a {count} espais de treball" + }, + "errorMessage": { + "copyDetail": "No s'ha pogut copiar {item} a {count} espai de treball | No s'ha pogut copiar {item} a {count} espais de treball", + "moveDetail": "No s'ha pogut moure {item} a {count} espai de treball | No s'ha pogut moure {item} a {count} espais de treball" + }, + "partialCopyWarningMessage": { + "summary": "Copiat parcialment", + "detail": "No s'ha pogut copiar {item} a {count} espai de treball | No s'ha pogut copiar {item} a {count} espais de treball" + }, + "partialMovedWarningMessage": { + "summary": "Mogut parcialment", + "detail": "No s'ha pogut moure {item} a {count} espai de treball | No s'ha pogut moure {item} a {count} espais de treball" + }, + "existingCopiesInfo": "S'han omès alguns espais de treball ({workspaces}) perquè {item} ja hi existeix", + "skippingExistingCopies": "Les còpies ja existents de {item} s'ometran." + }, + "assignment": "Assignació | Assignacions", + "modelSquad": { + "title": "Esquadra de models", + "description": "@:modelSquad.title és un recull de models d'IA especialitzats, on cada model s'assigna per fer una tasca específica, com ara la generació automàtica de títols, la generació del resum de @:context, etc. Quan arriba el moment de fer aquesta tasca específica, el model assignat se selecciona automàticament.", + "addNewAssignment": "Afegeix una @:assignment nova", + "noTask": "No hi ha més tasques disponibles", + "tasks": { + "autoTitleGeneration": "Generació automàtica de títols", + "contextShieldSummaryGeneration": "Generació del resum de l'@:contextShield.title", + "realTimeDataPromptSynthesis": "Síntesi d'indicacions de @:rtd.title", + "forgeContentGeneration": "Generació de contingut de la forja", + "piiScrubbing": "@:pii.scrubbing.title", + "iconFinder": "Cercador d'icones" + }, + "save": { + "successMessage": { + "detail": "@:assignment desada" + }, + "errorMessage": { + "detail": "No s'ha pogut desar l'@:assignment" + } + }, + "assignment": { + "dialog": { + "title": "Assigna un model per a {task}", + "description": "Seleccioneu un model per assignar-lo a la tasca {task} a l'Esquadra de models.", + "selectModel": "Selecciona un model", + "selectModelPlaceholder": "Trieu un model...", + "currentlyAssigned": "Assignat actualment: {model}", + "unknownModel": "Model desconegut", + "assignButton": "Assigna el model", + "changeButton": "Canvia el model", + "helpText": "Aquest model s'utilitzarà automàticament quan es faci la tasca {task}." + }, + "success": "El model s'ha assignat a {task} correctament!", + "errors": { + "noModelSelected": "Seleccioneu un model per assignar-lo.", + "saveFailed": "No s'ha pogut desar l'assignació del model. Torneu-ho a provar." + } + } + }, + "pii": { + "title": "PII (informació d'identificació personal)", + "scrubbing": { + "title": "Neteja de PII", + "description": "Detecta i elimina automàticament la informació d'identificació personal del contingut de la pila de coneixement abans de mostrar-la a les converses.", + "info": { + "modelAssigned": "S'utilitza {model} per detectar i eliminar la PII." + }, + "warning": { + "noModel": "No hi ha cap model assignat per a @:pii.scrubbing.title a l'Esquadra de models. La recuperació de la pila de coneixement fallarà fins que s'assigni un model.", + "configurationError": "Error de configuració de @:pii.scrubbing.title: s'interromp la recuperació de la pila de coneixement per seguretat", + "setupError": "Error en configurar @:pii.scrubbing.title: s'interromp la recuperació de la pila de coneixement" + }, + "placeholders": { + "personName": "[PERSON_NAME]", + "emailAddress": "[EMAIL_ADDRESS]", + "phoneNumber": "[PHONE_NUMBER]", + "address": "[ADDRESS]", + "idNumber": "[ID_NUMBER]", + "creditCard": "[CREDIT_CARD]", + "bankAccount": "[BANK_ACCOUNT]", + "ipAddress": "[IP_ADDRESS]", + "dateOfBirth": "[DATE_OF_BIRTH]" + }, + "categories": { + "personalIdentifiers": "Identificadors personals", + "contactInformation": "Informació de contacte", + "financialInformation": "Informació financera", + "medicalInformation": "Informació mèdica", + "digitalIdentifiers": "Identificadors digitals", + "biometricData": "Dades biomètriques", + "locationData": "Dades d'ubicació" + } + } + }, + "persona": { + "title": "Personalitat | Personalitats", + "newPersona": "@:persona.title nova", + "activePersona": "@:persona.title activa", + "empty": { + "title": "No hi ha cap @:persona.title disponible.", + "description": "Comenceu afegint o important una @:persona.title nova{'.'} També podeu importar personalitats per defecte per començar." + }, + "contextShieldPosition": "Posició de l'@:contextShield.title", + "save": { + "successMessage": { + "detail": "@:persona.title desada" + }, + "errorMessage": { + "detail": "No s'ha pogut desar la @:persona.title" + } + }, + "update": { + "successMessage": { + "detail": "@:persona.title actualitzada" + }, + "errorMessage": { + "detail": "No s'ha pogut actualitzar la @:persona.title" + } + }, + "delete": { + "selected": "Suprimeix la @:persona.title seleccionada", + "deleteConfirmation": { + "header": "Suprimeix la @:persona.title", + "description": "Segur que voleu suprimir {personaName}? | Segur que voleu suprimir {count} @:persona.title{'?'}" + }, + "successMessage": { + "detail": "@:persona.title suprimida | @:persona.title suprimides" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir la @:persona.title | No s'han pogut suprimir les @:persona.title" + } + }, + "import": { + "title": "Importa la @:persona.title", + "dragAndDropMessage": "Arrossegueu i deixeu anar una @:persona.title de Msty comprimida per importar-la i crear personalitats noves. En cas de noms duplicats, les personalitats importades es reanomenaran. Les podeu canviar més endavant.", + "successMessage": { + "detail": "S'han importat les personalitats" + }, + "errorMessage": { + "detail": "No s'han pogut importar les personalitats" + } + }, + "export": { + "title": "Exporta la @:persona.title", + "selected": "Exporta la @:persona.title seleccionada | Exporta les @:persona.title seleccionades", + "successMessage": { + "detail": "@:persona.title exportada com a {fileName} | @:persona.title exportades com a {fileName}" + }, + "errorMessage": { + "detail": "No s'ha pogut exportar la @:persona.title | No s'han pogut exportar les @:persona.title" + } + }, + "messages": { + "deleteSuccess": "@:persona.title suprimida | @:persona.title suprimides" + }, + "deleteConfirmation": { + "header": "Suprimeix la @:persona.title", + "message": "Segur que voleu suprimir {personaName}? | Segur que voleu suprimir {count} @:persona.title{'?'}", + "errorMessage": { + "detail": "No s'ha pogut suprimir la @:persona.title | No s'han pogut suprimir les @:persona.title" + } + }, + "addTitle": "Afegeix @:persona.title", + "createRootFolder": "Carpeta nova a l'arrel", + "setDefaultFolder": "Estableix com a carpeta per defecte", + "unsetDefaultFolder": "Desfés la carpeta per defecte", + "folderForm": { + "updateSuccessMessage": { + "detail": "S'ha actualitzat la carpeta" + }, + "updateErrorMessage": { + "detail": "No s'ha pogut actualitzar la carpeta" + }, + "createSuccessMessage": { + "detail": "S'ha creat la carpeta" + }, + "createErrorMessage": { + "detail": "No s'ha pogut crear la carpeta" + }, + "deleteConfirmation": { + "header": "Suprimeix la carpeta", + "message": "Segur que voleu suprimir {folderName} amb totes les seves @:persona.title{'?'}", + "successMessage": { + "detail": "S'ha suprimit la carpeta" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir la carpeta" + } + } + }, + "selectPlaceholder": "@:select una @:persona.title", + "autoResponder": { + "turnOn": "Activa el responedor automàtic", + "turnOff": "Desactiva el responedor automàtic" + }, + "hideAndIsolateSystemPrompt": "Amaga i aïlla la indicació del sistema", + "isolateResponse": "Aïlla la resposta", + "autoResponderDefault": "Responedor automàtic", + "contextMessageCount": { + "title": "Recompte de context", + "description": "Definiu el nombre de missatges recents que s'utilitzaran com a context per a la @:persona.title{'.'}" + } + }, + "fewShotPrompts": { + "title": "Indicacions amb pocs exemples (few-shot)", + "description": "L'aprenentatge amb pocs exemples (few-shot) és una tècnica d'aprenentatge automàtic que us permet entrenar un model amb una petita quantitat de dades. Podeu fer servir indicacions few-shot per proporcionar exemples al model i ajudar-lo a entendre el context i generar respostes millors.", + "addNewShot": "Afegeix un exemple nou" + }, + "insights": "Observacions", + "cost": "Cost", + "costInUSD": "Cost en USD", + "promptTokens": "Tokens de la indicació", + "completionTokens": "Tokens de la compleció", + "totalTokens": "Tokens totals", + "usage": "Ús", + "tokens": "Tokens", + "tokensProcessed": "Tokens processats", + "selectProvider": "@:select un proveïdor | @:select proveïdors", + "tokensProcessedForProvider": "Tokens processats per a {provider}", + "totalUsage": "Ús total", + "fromTo": "De {from} a {to}", + "crunchingTheNumbers": "S'estan fent els càlculs", + "throughputForModel": { + "title": "Rendiment de {model}", + "unit": { + "description": "Mesurat en tokens per segon" + } + }, + "latencyForModel": { + "title": "Latència de {model}", + "unit": { + "description": "Mesurat en segons" + } + }, + "total": "Total", + "min": "Mín.", + "max": "Màx.", + "avg": "Mitj.", + "summary": "Resum", + "dates": { + "today": "Avui", + "last7Days": "Últims 7 dies", + "last14Days": "Últims 14 dies", + "last30Days": "Últims 30 dies", + "last3Months": "Últims 3 mesos", + "last6Months": "Últims 6 mesos", + "last12Months": "Últims 12 mesos", + "monthToDate": "Del mes fins ara", + "yearToDate": "De l'any fins ara", + "allTime": "Des de sempre", + "selectDateRange": "@:select l'interval de dates", + "month": "Mes", + "year": "Any", + "day": "Dia", + "week": "Setmana" + }, + "insightsSummary": { + "emptyState": { + "title": "Resum d'observacions", + "description": "No hi ha dades disponibles per a l'interval de dates i els proveïdors seleccionats." + } + }, + "insightsProviderTokensProcessed": { + "emptyState": { + "title": "Tokens processats", + "description": "No hi ha dades disponibles per a l'interval de dates i el proveïdor seleccionats." + } + }, + "insightsProviderThroughput": { + "emptyState": { + "title": "Rendiment", + "description": "No hi ha dades disponibles per a l'interval de dates, el proveïdor i el model seleccionats." + } + }, + "insightsProviderLatency": { + "emptyState": { + "title": "Latència", + "description": "No hi ha dades disponibles per a l'interval de dates, el proveïdor i el model seleccionats." + } + }, + "hideItem": { + "action": "Amaga {item}", + "successMessage": { + "detail": "S'ha amagat {item}" + }, + "errorMessage": { + "detail": "No s'ha pogut amagar {item}" + }, + "unhideParent": "Mostra el {item} pare", + "hiddenParentContentTitle": "Contingut pare amagat. Feu clic per mostrar-lo." + }, + "showItem": { + "action": "Mostra {item}" + }, + "licenseVerification": { + "errorMessage": "No s'ha pogut verificar la llicència. Torneu-ho a provar.", + "enterLicenseKey": "Introduïu la clau de llicència Aurum", + "licenseTypeInfo": "Esteu utilitzant la llicència {licenseType}.", + "licenseKey": "Clau de llicència", + "logout": "Tanca la sessió", + "licenseTypeInfoForAdmin": "Esteu utilitzant la llicència {licenseType} i heu iniciat la sessió com a propietari." + }, + "aurum": { + "activateLicense": "Activa la llicència Aurum", + "activateLicenseDescription": "Introduïu la vostra clau de llicència per desbloquejar les funcions premium", + "manageLicense": "Gestiona la llicència", + "lifetimeLicense": "Aurum de per vida", + "lifetimeLicenseDescription": "Compra única amb accés de per vida a les funcions premium", + "annualLicense": "Aurum anual", + "annualLicenseDescription": "Subscripció anual amb actualitzacions contínues i funcions premium", + "oneTimePurchase": "Compra única", + "yearlySubscription": "Subscripció anual", + "enterLicenseKey": "Clau de llicència", + "verifyAndActivate": "Verifica i activa", + "deactivateLicense": "Desactiva la llicència", + "licensedTo": "Llicència a nom de", + "expiresOn": "Caduca el", + "expired": "Caducada", + "expiresInDays": "Caduca d'aquí a {days} dies", + "needLicense": "Necessiteu una llicència?", + "purchaseLicense": "Compreu-la a msty.ai", + "hasLicense": "Ja teniu una llicència?", + "manageActivation": "Gestiona l'activació" + }, + "cloneItem": { + "action": "Clona {item}", + "successMessage": { + "detail": "S'ha clonat {item}" + }, + "errorMessage": { + "detail": "No s'ha pogut clonar {item}" + } + }, + "cloneItemTo": { + "action": "Clona a {item}", + "successMessage": { + "detail": "S'ha clonat correctament a un nou {item} " + }, + "errorMessage": { + "detail": "No s'ha pogut clonar a un nou {item}" + } + }, + "importJson": { + "clipboardTitle": "Importa {item} des del porta-retalls JSON", + "fileTitle": "Importa {item} des d'un fitxer JSON", + "successMessage": { + "detail": "S'han importat {count} {item} correctament", + "detailDestination": "@:importJson.successMessage.detail {item} a {destination}" + }, + "successMessageWithToolsets": { + "detail": "S'han importat {count} {item} correctament i s'han creat automàticament els conjunts d'eines corresponents" + }, + "invalidConfig": { + "detail": "La configuració no és vàlida o no hi ha res a importar. Assegureu-vos que el JSON sigui vàlid i torneu-ho a provar." + }, + "errorMessage": { + "detail": "No s'ha pogut importar. Comproveu el JSON i torneu-ho a provar." + }, + "partialError": { + "detail": "No s'han pogut importar {failed} elements: {items}" + }, + "dragAndDropMessage": "Arrossegueu i deixeu anar un fitxer JSON per importar {item}." + }, + "team": { + "label": "Equip | Equips", + "createTeam": "Crea un equip", + "inviteUserLabel": "Convida un usuari", + "overview": "Resum general", + "usersLabel": "Usuaris", + "allTeamLabel": "Tots els equips", + "createSuccess": "L'equip {teamName} s'ha creat correctament.", + "member": "Membre|Membres", + "allUsers": "Tots els usuaris", + "addTeamFormHeader": "Crea un equip nou", + "updateTeamFormHeader": "Edita l'equip", + "addUsers": "Afegeix usuaris", + "updateUsers": "Actualitza els usuaris", + "addUserToTeam": "Afegeix usuaris a l'equip", + "teamNameLabel": "Nom de l'equip", + "teamNamePlaceholder": "Introduïu el nom del nou equip", + "addTeamDescription": "Creeu un equip nou per gestionar recursos.", + "noUserInTeam": "No hi ha cap usuari assignat a aquest equip.", + "editTeam": "Edita l'equip", + "invited": "Convidat", + "shortDescription": "Gestioneu els vostres equips i usuaris.", + "empty": { + "description": "Un equip s'utilitza per gestionar recursos. Podeu afegir usuaris a l'equip per col·laborar i compartir l'accés als recursos." + }, + "deleteConfirmation": { + "header": "Suprimeix l'equip", + "message": "Segur que voleu suprimir", + "inputPlaceholder": "Escriviu {name} per confirmar la supressió.", + "rejectLabel": "@:cancel", + "acceptLabel": "Suprimeix" + }, + "policies": { + "title": "Política | Polítiques", + "toolbox": { + "title": "@:toolbox.title", + "description": "Permet que l'usuari faci servir la funció Caixa d'eines" + }, + "promptsLibrary": { + "title": "@:promptsLibrary.title", + "description": "Permet que l'usuari faci servir la funció Biblioteca d'indicacions" + }, + "persona": { + "title": "@:persona.title", + "description": "Permet que l'usuari faci servir la funció Personalitat" + }, + "turnstile": { + "title": "@:turnstile.title", + "description": "Permet que l'usuari faci servir la funció Turnstile" + }, + "knowledgeStack": { + "title": "@:knowledgeStack.title", + "description": "Permet que l'usuari faci servir la funció Pila de coneixement" + }, + "remoteToolsConnector": { + "title": "@:remoteToolsConnector.title", + "description": "Permet que l'usuari faci servir la funció @:remoteToolsConnector.title" + }, + "rtd": { + "title": "@:rtd.title", + "description": "Permet que l'usuari faci servir la funció @:rtd.title" + }, + "attachments": { + "title": "@:attachments.title", + "description": "Permet que l'usuari faci servir la funció @:attachments.title" + }, + "forgeMode": { + "title": "@:forge.forgeMode.title", + "description": "Permet que l'usuari faci servir la funció @:forge.forgeMode.title" + }, + "insights": { + "title": "@:insights", + "description": "Permet que l'usuari faci servir la funció @:insights" + }, + "platformWeb": { + "title": "Accés web a Msty Studio", + "description": "Permet que l'usuari accedeixi a Msty Studio des del navegador web" + }, + "platformDesktop": { + "title": "Accés d'escriptori a Msty Studio", + "description": "Permet que l'usuari accedeixi a Msty Studio des de l'aplicació d'escriptori" + }, + "platformAccess": "Accés a la plataforma", + "modelHub": { + "description": "Gestioneu l'accés a proveïdors de models específics." + } + }, + "user": { + "noAvailableSeats": "Heu arribat al límit per convidar usuaris.", + "licenceAndAccess": { + "loggedInAsLabel": "Sessió iniciada com a", + "useSignInWithEmail": "S'enviarà un enllaç d'inici de sessió segur a l'adreça electrònica proporcionada. Els titulars d'una llicència Aurum han de verificar la seva clau de llicència abans de fer servir aquesta funció.", + "continueWithlicenseLabel": "continua amb la clau de llicència", + "sendLoginLink": "Envia l'enllaç d'inici de sessió" + }, + "teamUserFormHeader": "Usuaris de l'equip", + "invitationVerification": { + "inProgress": "S'està verificant la vostra sol·licitud d'accés. Espereu", + "info": "Us han convidat a unir-vos a un compte de Msty Studio. ", + "error": "Alguna cosa ha anat malament; contacteu amb l'administrador del vostre compte." + }, + "invitationInfo": "S'enviarà un enllaç d'inici de sessió a l'adreça electrònica proporcionada més amunt.", + "invitation": { + "successMessage": { + "detail": "S'ha convidat l'usuari {email}." + }, + "invalidEmail": "Adreça electrònica no vàlida", + "errorMessageUserExist": "L'usuari ja existeix", + "errorMessage": { + "detail": "No s'ha pogut convidar {email}." + } + }, + "fetch": { + "errorMessage": { + "detail": "No s'ha pogut carregar la llista d'usuaris" + } + }, + "delete": { + "successMessage": { + "detail": "S'ha suprimit l'usuari {email} correctament." + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir l'usuari {email}" + } + }, + "deleteConfirmation": { + "header": "Suprimeix l'usuari", + "message": "Segur que voleu suprimir {email}?", + "rejectLabel": "@:cancel", + "acceptLabel": "Suprimeix" + }, + "assignUserToTeamLabel": "Assigna usuaris a l'equip {teamName}", + "assignUserToTeamSuccess": "S'ha assignat {user} a l'equip {teamName} correctament", + "unassignUserToTeamLabel": "Treu l'usuari de l'equip", + "unassignUserToTeamMessage": "Treu {user} de l'equip {teamName}", + "selectUserToAddToTeamPlaceholder": "@:select els usuaris a afegir" + } + }, + "updateItem": { + "action": "Actualitza {item}", + "editAction": "Edita {item}", + "successMessage": { + "detail": "S'ha actualitzat {item}" + }, + "errorMessage": { + "detail": "No s'ha pogut actualitzar {item}" + } + }, + "modelPurpose": { + "text": "Text", + "tools": "Eines", + "vision": "Visió", + "coding": "Programació", + "embedding": "Embedding", + "streaming": "Transmissió en temps real", + "image": "Imatge", + "thinking": "Raonament" + }, + "editModel": { + "inputLabels": { + "label": "Etiqueta", + "purpose": "Finalitat" + } + }, + "environment": { + "selectPlaceholder": "@:select un @:environment.title", + "new": "@:environment.title nou", + "title": "Entorn | Entorns", + "empty": { + "description": "Afegiu entorns nous per començar." + }, + "save": { + "successMessage": { + "detail": "@:environment.title desat" + }, + "errorMessage": { + "detail": "No s'ha pogut desar l'@:environment.title" + } + }, + "delete": { + "title": "Suprimeix l'@:environment.title | Suprimeix els @:environment.title", + "selected": "Suprimeix l'@:environment.title seleccionat | Suprimeix els @:environment.title seleccionats", + "deleteConfirmation": { + "header": "Suprimeix l'@:environment.title", + "description": "Segur que voleu suprimir {environmentName}? | Segur que voleu suprimir {count} entorns?" + }, + "successMessage": { + "detail": "@:environment.title suprimit | @:environment.title suprimits" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir l'@:environment.title | No s'han pogut suprimir els @:environment.title" + } + }, + "backup": { + "title": "Fes una còpia de seguretat de l'@:environment.title", + "successMessage": { + "detail": "S'ha fet una còpia de seguretat de l'@:environment.title" + }, + "errorMessage": { + "detail": "No s'ha pogut fer una còpia de seguretat de l'@:environment.title" + } + }, + "restore": { + "title": "Restaura l'@:environment.title", + "dragAndDropMessage": "Arrossegueu i deixeu anar un fitxer d'entorn de Msty per restaurar els entorns. Nota: tots els entorns existents se suprimiran i es reemplaçaran pels importats.", + "successMessage": { + "detail": "@:environment.title restaurat" + }, + "errorMessage": { + "detail": "No s'ha pogut restaurar l'@:environment.title" + } + }, + "quickSelect": { + "title": "Selecció ràpida de variable d'entorn", + "selectPlaceholder": "Cerqueu o seleccioneu una variable per copiar-la al porta-retalls" + } + }, + "makeActive": { + "title": "Fes que {itemType} sigui actiu", + "isActive": "{itemType} actiu", + "successMessage": { + "detail": "Ara {itemName} és el {itemType} actiu" + }, + "errorMessage": { + "detail": "No s'ha pogut fer que {itemName} sigui el {itemType} actiu" + } + }, + "moveItem": { + "action": "Mou {item}", + "moveLocation": "Mou {count} {sourceType} a {item}", + "confirmation": { + "message": "Segur que voleu moure el {item} seleccionat?" + }, + "successMessage": { + "detail": "S'ha mogut {item} | S'han mogut {item}" + }, + "errorMessage": { + "detail": "No s'ha pogut moure {item}" + }, + "errrorMessage": { + "detail": "No s'ha pogut moure {item}" + }, + "cannotDetermineTargetProject": "No s'ha pogut determinar el projecte de destinació.", + "cannotDetermineTargetFolder": "No s'ha pogut determinar la carpeta de destinació." + }, + "deleteItem": { + "action": "Suprimeix {item}", + "successMessage": { + "detail": "S'ha suprimit {item}" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir {item}" + } + }, + "promptsLibrary": { + "title": "Biblioteca d'indicacions", + "newPrompt": "@:prompt nova", + "search": "Cerca indicacions", + "quickPrompt": "@:prompt ràpida", + "saveToQuickPrompts": "Desa a les indicacions ràpides", + "copyPrompt": "Copia la @:prompt al porta-retalls", + "shortcutUsage": "Teclegeu / per cercar a la @:promptsLibrary.title", + "setDefaultFolder": "Estableix com a carpeta per defecte", + "unsetDefaultFolder": "Desfés la carpeta per defecte", + "createRootFolder": "Carpeta nova a l'arrel", + "folder": "@:folder", + "prompt": "@:prompt", + "deleteAllPrompt": { + "title": "Suprimeix totes les indicacions i carpetes", + "description": "Això esborrarà tota la @:promptsLibrary.title i les carpetes. No es poden recuperar després de suprimir-les.", + "successMessage": { + "detail": "S'han suprimit totes les indicacions" + } + }, + "empty": { + "title": "No hi ha cap @:persona.title disponible.", + "description": "Comenceu afegint o important una @:prompt nova{'.'} També podeu importar @:prompts per defecte per començar." + }, + "import": { + "title": "Importa les @:prompts per defecte", + "successMessage": { + "detail": "Ara podeu fer servir les indicacions importades a les vostres converses." + }, + "copyMultiplePrompts": "Copia {count} @:prompts al porta-retalls", + "errorMessage": { + "detail": "No s'han pogut importar les @:prompts per defecte" + }, + "copyErrorMessage": { + "detail": "No s'ha pogut copiar la @:prompt{'.'} Torneu-ho a provar." + } + }, + "folderForm": { + "updateSuccessMessage": { + "detail": "S'ha actualitzat la carpeta" + }, + "updateErrorMessage": { + "detail": "No s'ha pogut actualitzar la carpeta" + }, + "createSuccessMessage": { + "detail": "S'ha creat la carpeta" + }, + "createErrorMessage": { + "detail": "No s'ha pogut crear la carpeta" + }, + "deleteConfirmation": { + "header": "Suprimeix la carpeta", + "message": "Segur que voleu suprimir {folderName} amb totes les seves subcarpetes i indicacions?", + "successMessage": { + "detail": "S'ha suprimit la carpeta" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir la carpeta" + } + } + }, + "promptForm": { + "addTitle": "Afegeix una @:prompt nova", + "editTitle": "Edita la @:prompt", + "promptName": "Nom de la @:prompt", + "promptDescription": "@:description", + "updateSuccessMessage": { + "detail": "@:prompt actualitzada" + }, + "updateErrorMessage": { + "detail": "No s'ha pogut actualitzar la @:prompt" + }, + "createSuccessMessage": { + "detail": "@:prompt creada" + }, + "createErrorMessage": { + "detail": "No s'ha pogut crear la @:prompt" + }, + "deleteConfirmation": { + "header": "Suprimeix {count} @:prompt", + "message": "Segur que ho voleu suprimir?", + "successMessage": { + "detail": "@:prompt suprimida" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir la @:prompt" + } + } + } + }, + "importDefault": { + "title": "Importa {item} per defecte", + "successMessage": { + "detail": "S'ha importat {item} per defecte" + }, + "errorMessage": { + "detail": "No s'ha pogut importar {item} per defecte" + } + }, + "contextIsolation": { + "isolate": "Aïlla el @:context", + "unIsolate": "Treu l'aïllament del @:context", + "label": "@:context aïllat", + "clearAll": { + "title": "Esborra tots els aïllaments de context", + "successMessage": { + "detail": "S'han esborrat tots els aïllaments de context" + } + } + }, + "responseMetrics": { + "title": "Mètriques de la resposta", + "longPressOrAltClickToCycle": "Premeu llargament o Alt+clic per recórrer les mètriques" + }, + "quickView": "Vista ràpida", + "detailsView": "Vista de detalls", + "input": "Entrada | Entrades", + "output": "Sortida | Sortides", + "think": "Raona", + "reasoning": { + "emptyNotice": "El model ha fet un raonament intern però no ha retornat cap resum. Per activar els resums de raonament, apliqueu l'etiqueta «Raonament» a aquest model fent clic a la icona d'edició que hi ha al costat de la selecció del model." + }, + "service": "Servei | Serveis", + "localAIService": "@:service de @:localAI", + "version": "Versió | Versions", + "invalidConfig": "La configuració no és vàlida. Introduïu un objecte JSON vàlid.", + "unsavedChanges": "Canvis sense desar", + "saveChanges": "Desa els canvis", + "day": "Dia | Dies", + "every": "Cada", + "files": "Fitxers", + "file": "Fitxer | @:files", + "reallyDelete": "Segur que ho voleu suprimir?", + "similarity": "Similitud", + "saveAsDraft": "Desa com a esborrany", + "compose": "Redacta", + "embeddingModel": "Model d'embedding", + "document": "Document | Documents", + "matched": "Coincident", + "active": "Actiu", + "inactive": "Inactiu", + "folderName": "Nom de la carpeta", + "addNewFolder": "Afegeix una carpeta nova", + "editFolder": "Edita la carpeta", + "errorGeneric": "S'ha produït un error. Torneu-ho a provar més tard. Reviseu els registres per a més detalls.", + "sharedService": { + "modelsPath": { + "title": "Camí dels models", + "description": "Aquí és on {service} baixa i cerca els models. Podeu actualitzar el camí per fer servir una carpeta personalitzada.", + "edit": { + "title": "Edita el camí dels models", + "description": "Definiu la vostra ubicació preferida.", + "willRestartWarning": "Nota: canviar el camí dels models reiniciarà {service} perquè els canvis tinguin efecte.", + "selectModelsPath": "Selecciona el camí dels models", + "successMessage": { + "detail": "S'ha actualitzat el camí dels models" + }, + "errorMessage": { + "detail": "No s'ha pogut actualitzar el camí dels models" + } + } + }, + "quickPromptDialog": { + "title": "Desa a les indicacions ràpides", + "description": "Poseu un títol curt a la vostra indicació del sistema. S'afegirà a les indicacions ràpides per poder-la reutilitzar fàcilment.", + "nameLabel": "Nom de la @:prompt ràpida", + "successMessage": "S'ha desat la indicació del sistema a les indicacions ràpides.", + "errorMessage": "No s'ha pogut desar la indicació del sistema a les indicacions ràpides.", + "emptyPromptMessage": "Afegiu text a la indicació del sistema abans de desar-la a les indicacions ràpides." + }, + "serviceHealth": { + "title": "Estat del servei", + "description": "Estat del {service}. Teniu problemes? Proveu de reiniciar-lo o de revisar els registres.", + "serviceAction": { + "restartService": "Reinicia el servei", + "stopService": "Atura el servei", + "startService": "Inicia el servei", + "errorMessage": { + "detail": "No s'ha pogut fer {action} a {service}. Reviseu els registres per a més detalls." + }, + "restartSuccessMessage": { + "detail": "S'ha reiniciat {service}" + } + }, + "serviceStatus": { + "starting": "S'està iniciant", + "running": "En execució", + "stopped": "Aturat" + } + }, + "serviceEndpoint": { + "title": "Punt final del servei | Punts finals del servei", + "description": { + "base": "Punt final local de {service}. Feu-lo servir per connectar-vos des d'altres aplicacions que s'executen localment al dispositiu.", + "serviceIsNotRunning": "Quan el servei estigui en execució, l'adreça es mostrarà aquí.", + "serviceIsAvailableOnNetwork": "Com que el servei està disponible a la xarxa, també us hi podeu connectar fent servir l'URL del servei de xarxa des d'altres dispositius." + }, + "copyNetworkURL": "Copia l'URL de xarxa" + }, + "serviceVersion": { + "title": "Versió del servei", + "description": "Mostra la versió actual de {service}. Per garantir un rendiment òptim i l'accés a les funcions noves, mantingueu-lo actualitzat. També podeu tornar-lo a instal·lar si cal.", + "forceUpdate": { + "title": "Força l'actualització de {service}", + "forCpu": "Força l'actualització de {service} (CPU)", + "forCuda": "Força l'actualització de {service} (CUDA)", + "forCuda124": "Força l'actualització de {service} (CUDA 12.4)", + "forCuda131": "Força l'actualització de {service} (CUDA 13.1)", + "forVulkan": "Força l'actualització de {service} (Vulkan)", + "forRocm": "Força l'actualització de {service} (ROCm)", + "forOpencl": "Força l'actualització de {service} (OpenCL)", + "forSycl": "Força l'actualització de {service} (SYCL)", + "successMessage": { + "detail": "{service} s'ha actualitzat a la darrera versió {version}" + }, + "errorMessage": { + "detail": "No s'ha pogut actualitzar {service}. Reviseu els registres per a més detalls." + } + }, + "removeService": { + "title": "Elimina {service}", + "confirmationHeader": "Elimina {service}", + "confirmationMessage": "Segur que voleu eliminar {service}? Això suprimirà el binari del servei i totes les seves configuracions. El podeu tornar a instal·lar més endavant des de la pàgina de configuració.", + "confirmationAccept": "Elimina", + "successMessage": { + "detail": "S'ha eliminat {service} correctament" + }, + "errorMessage": { + "detail": "No s'ha pogut eliminar {service}. Reviseu els registres per a més detalls." + } + } + }, + "serviceConfigurations": { + "title": "Configuracions del servei", + "description": "Aquestes configuracions s'apliquen a {service} quan s'inicia. {service} es reiniciarà automàticament després de desar qualsevol canvi.", + "enableNetworkAccess": { + "title": "Activa l'accés a la xarxa", + "description": "Permet que altres dispositius de la vostra xarxa accedeixin a aquest {service} a través de l'adreça IP d'aquest dispositiu." + }, + "allowMstyStudioAccess": { + "title": "Permet l'accés des de Msty Studio", + "description": "Permet les connexions des del web de Msty Studio a aquesta aplicació perquè pugui accedir a {service}." + }, + "captureServiceLogs": { + "title": "Captura els registres del servei", + "description": "Activeu el registre per capturar dades del servei per a la depuració. Feu servir aquesta opció només quan calgui." + }, + "unsavedChanges": { + "message": "Teniu canvis sense desar a les configuracions de {service}. Un cop els deseu, {service} es reiniciarà amb les noves configuracions.", + "saveChanges": "Desa els canvis i reinicia el servei", + "successMessage": { + "detail": "S'han desat les configuracions de {service} i s'ha reiniciat el servei" + }, + "errorMessage": { + "detail": "No s'han pogut desar les configuracions de {service}. Reviseu els registres per a més detalls." + } + } + }, + "modelConfigurations": { + "title": "Configuracions del model", + "description": "Aquestes configuracions s'apliquen a tots els models durant les sessions de xat." + } + }, + "keyboardShortcuts": { + "title": "Dreceres de teclat", + "description": "Personalitzeu les dreceres de teclat per accedir ràpidament a les funcions", + "search": "Cerca dreceres...", + "searchByShortcut": "Cerca per drecera", + "searchByName": "Cerca per nom", + "pressShortcut": "Premeu qualsevol combinació de tecles...", + "pressKeys": "Premeu tecles...", + "notSet": "Sense definir", + "edit": "Edita la drecera", + "clear": "Esborra", + "global": "Global", + "saved": "S'ha desat la drecera", + "error": "Error en desar la drecera", + "reset": "S'ha restablert la drecera", + "resetToDefault": "Restableix al valor per defecte", + "resetAll": "Restableix totes les dreceres", + "allReset": "S'han restablert totes les dreceres als valors per defecte", + "noResults": "No s'ha trobat cap drecera", + "conflictWith": "Entra en conflicte amb: {name}", + "categories": { + "all": "Tot", + "general": "General", + "navigation": "Navegació", + "appearance": "@:settings.appearance", + "conversation": "Conversa" + }, + "resetAllConfirm": { + "title": "Restableix totes les dreceres", + "message": "Segur que voleu restablir totes les dreceres de teclat als seus valors per defecte?" + }, + "help": { + "title": "Dreceres de teclat", + "customizeButton": "Personalitza les dreceres" + }, + "contextual": "Contextual", + "systemWide": "A tot el sistema", + "perSplit": "Per divisió", + "macOptionHint": "Les dreceres amb la tecla Opció funcionen a Msty. Si en comptes d'això produeixen caràcters especials, comproveu Configuració del sistema > Teclat > Fonts d'entrada", + "example": { + "title": "Exemple de dreceres de teclat", + "description": "Aquest component mostra com registrar i fer servir dreceres de teclat als vostres components.", + "registeredShortcuts": "Dreceres registrades:", + "exampleAction1": "Acció d'exemple 1", + "scopedAction": "Acció amb àmbit", + "actions": "Accions:", + "updateFirstShortcut": "Actualitza la primera drecera", + "testConflictDetection": "Prova la detecció de conflictes", + "actionLog": "Registre d'accions:", + "noActionsYet": "Encara no hi ha cap acció. Proveu de prémer les dreceres!", + "developerNotes": { + "title": "Notes per a desenvolupadors:", + "items": [ + "Les dreceres es netegen automàticament quan el component es desmunta", + "Feu servir dreceres amb àmbit de component per evitar conflictes d'ID", + "Les assignacions específiques de plataforma es gestionen automàticament (Cmd a Mac, Ctrl a Windows)", + "Comproveu si hi ha conflictes abans de registrar dreceres que puguin xocar amb les existents", + "Les dreceres poden ser globals (funcionen a tot arreu) o específiques de context" + ] + } + }, + "splitRemoval": { + "selectSplitToRemove": "Seleccioneu la divisió a eliminar", + "pressKeysToCancel": "Premeu", + "remove": "Elimina" + } + }, + "createNew": "Crea'n una de nova", + "copy": "Copia", + "miniMapActions": { + "noMessageSelectedWarning": { + "summary": "Cap missatge seleccionat", + "detail": "Seleccioneu com a mínim un missatge per fer qualsevol acció" + }, + "exportOrCopyMessage": { + "exportMessage": "Exporta el missatge | Exporta els missatges", + "copyMessage": "Copia el missatge | Copia els missatges", + "asJson": "Com a JSON", + "asMarkdown": "Com a Markdown", + "successMessage": "S'han {action} els missatges com a {format}", + "action": { + "export": "exportat", + "copy": "copiat" + } + } + }, + "reIndexItem": { + "action": "Torna a indexar {item}", + "successMessage": { + "detail": "S'ha tornat a indexar {item} correctament" + }, + "errorMessage": { + "detail": "No s'ha pogut tornar a indexar {item}" + }, + "confirmationMessage": "Segur que voleu tornar a indexar {item}?" + }, + "recent": "Recent|Recents", + "recentsPinned": "Recents i fixats", + "knowledgeStack": { + "title": "Pila de coneixement | Piles de coneixement", + "contexts": "Contextos de la @:knowledgeStack.title", + "composeProgress": { + "processing": "S'està processant: {fileName}", + "composing": "S'està redactant", + "composingEllipsis": "S'està redactant…", + "files": "Fitxers", + "notes": "Notes", + "youtube": "YouTube", + "folders": "Carpetes", + "overallProgress": "Progrés general", + "inFlight": "En curs:" + }, + "itemStatus": { + "ignoredForRetrieval": "Ignorat per a la recuperació" + }, + "cloudShare": { + "importingFolder": "S'està important la carpeta: {name}", + "processingCount": "S'estan processant {count} piles de coneixement" + }, + "saveEdits": { + "title": "Desa les edicions", + "confirmation": { + "header": "Desa les edicions i marca com a esborrany", + "message": "Segur que voleu desar les vostres edicions? Això marcarà la pila de coneixement com a esborrany i n'impedirà l'ús en producció fins que no es torni a processar." + } + }, + "selectFolderForImport": "Trieu on importar la @:knowledgeStack.title", + "newKnowledgeStack": "@:knowledgeStack.title nova", + "addDescription": "Afegeix una descripció", + "editDescription": "Edita la descripció", + "descriptionPlaceholder": "Afegiu una descripció per a aquesta pila de coneixement...", + "autoSaving": "S'està desant...", + "autoSaved": "Desat {time}", + "basicInfo": "Informació bàsica", + "similarityThreshold": "Llindar de similitud", + "similarityMatch": "Coincidència de similitud", + "unsavedChanges": { + "confirmNavigation": "Teniu canvis sense desar. Segur que voleu sortir d'aquesta pàgina? Es perdran els vostres canvis.", + "confirmReload": "Teniu canvis sense desar que es perdran si torneu a carregar la pàgina." + }, + "empty": { + "title": "No s'ha seleccionat cap @:knowledgeStack.title", + "description": "La pila de coneixement us permet incorporar fitxers, carpetes, notes i transcripcions de YouTube, i fer-los cercables i a punt per al xat mitjançant la generació augmentada per recuperació (RAG)" + }, + "selectOrCreate": "Selecciona una @:knowledgeStack.title", + "selectFromTreeOrCreate": "Seleccioneu una @:knowledgeStack.title de l'arbre o creeu-ne una de nova", + "folderForm": { + "addTitle": "Afegeix una carpeta nova", + "editTitle": "Edita la carpeta", + "editIgnoreRules": "Edita les regles d'exclusió", + "editIgnoreRulesTitle": "Regles d'exclusió", + "ignoreRulesDescription": "Definiu patrons per excloure fitxers i carpetes del processament.", + "ignoreRulesHierarchySimple": "Prioritat: .mstyignore/.gitignore locals → Regles de la carpeta → Valors per defecte del sistema", + "ignoreRulesPlaceholder": "# Introduïu els patrons aquí, un per línia\n# Exemple: *.log, node_modules/, !important.txt", + "showExamples": "Mostra exemples i ajuda", + "ignoreExample1": "Fitxers de registre", + "ignoreExample2": "Fitxers temporals a tots els directoris", + "ignoreExample3": "Tot el directori", + "ignoreExample4": "Patró d'excepció", + "ignoreExample5": "Diversos tipus d'imatge", + "ignoreExample6": "Tots els fitxers de test i subdirectoris", + "ignoreExample7": "Coincidència sense distinció de majúscules", + "ignoreExample8": "Fitxers que comencen per secret-", + "insertTemplate": "Fes servir la plantilla", + "clearContent": "Esborra-ho tot", + "ignoreRulesUpdated": "Les regles d'exclusió s'han actualitzat correctament", + "ignoreRulesUpdateError": "No s'han pogut actualitzar les regles d'exclusió", + "deleteConfirmation": { + "header": "Suprimeix la carpeta «{folderName}»", + "message": "Segur que voleu suprimir aquesta carpeta? Se n'eliminaran totes les piles de coneixement que conté. Aquesta acció no es pot desfer.", + "successMessage": { + "detail": "S'ha suprimit la carpeta" + }, + "errorMessage": { + "detail": "No s'ha pogut suprimir la carpeta" + } + }, + "updateErrorMessage": { + "detail": "No s'ha pogut actualitzar la carpeta" + }, + "createSuccessMessage": { + "detail": "S'ha creat la carpeta" + }, + "createErrorMessage": { + "detail": "No s'ha pogut crear la carpeta" + } + }, + "setDefaultFolder": "Estableix com a carpeta per defecte", + "unsetDefaultFolder": "Desfés la carpeta per defecte", + "createRootFolder": "Carpeta nova a l'arrel", + "knowledgeStackForm": { + "addTitle": "Afegeix una @:knowledgeStack.title nova", + "deleteConfirmation": { + "header": "Suprimeix la @:knowledgeStack.title", + "message": "Segur que voleu suprimir aquesta pila de coneixement? Se n'eliminaran tots els elements que conté. Aquesta acció no es pot desfer." + } + }, + "deleteAllKnowledgeStack": { + "title": "Suprimeix totes les @:knowledgeStack.title", + "description": "Això esborrarà tota la @:knowledgeStack.title{'.'} No es poden recuperar després de suprimir-les.", + "successMessage": { + "detail": "S'han suprimit totes les @:knowledgeStack.title" + }, + "errorMessage": { + "detail": "No s'han pogut suprimir totes les @:knowledgeStack.title" + } + }, + "chunksConsole": { + "chunk": "Fragment | @:knowledgeStack.chunksConsole.chunks", + "chunks": "Fragments", + "title": "Consola de @:knowledgeStack.chunksConsole.chunks", + "description": "Feu servir aquesta consola per entendre com s'utilitza la vostra pila de coneixement, { title }, i quins fragments s'envien a un model quan xategeu. També podeu suprimir un fragment si penseu que no és rellevant o útil.", + "queryText": "Text de la consulta", + "similarityFilter": { + "title": "@:similarity", + "all": "Tot", + "highest": "Molt alta", + "high": "Alta", + "medium": "Mitjana", + "low": "Baixa" + }, + "matchCount": "Nre. de @:knowledgeStack.chunksConsole.chunks", + "sourceFile": "Fitxer d'origen", + "sourceNote": "Nota d'origen", + "sourceVideo": "Vídeo d'origen", + "source": "Origen", + "score": "Puntuació", + "searchResults": "Resultats de la cerca", + "noResultsFound": "No s'ha trobat cap resultat de cerca. Proveu d'ajustar la consulta o la configuració de cerca.", + "noResultsAfterFilter": "Cap resultat coincideix amb el filtre de similitud actual. Proveu d'ajustar el filtre per mostrar més resultats.", + "deleteChunk": { + "successMessage": { + "detail": "S'ha suprimit el @:knowledgeStack.chunksConsole.chunk" + } + }, + "searchType": { + "title": "Tipus de cerca", + "hybrid": "Cerca híbrida", + "semantic": "Cerca semàntica", + "keyword": "Cerca per paraules clau" + }, + "filterDisclaimer": "Aquest filtre només afecta quins resultats es mostren a sota. No canvia la consulta real.", + "tooltip": { + "scrubbed": "S'ha netejat el contingut per eliminar la PII", + "cached": "S'ha fet servir la versió netejada de la memòria cau", + "fresh": "Contingut netejat de nou" + }, + "runQuery": "Executa la consulta" + }, + "addon": { + "title": "@:knowledgeStack.title", + "selectedCount": "{count} seleccionats", + "selectedStacks": "Piles seleccionades", + "searchPlaceholder": "Cerca piles de coneixement...", + "recentlyUpdated": "Actualitzades recentment", + "searchResults": "Resultats de la cerca", + "noResults": "No s'ha trobat cap pila de coneixement", + "noStacks": "No hi ha cap pila de coneixement disponible", + "noDescription": "Sense descripció", + "numberOfChunks": "Nombre de @:knowledgeStack.chunksConsole.chunks", + "searchType": "Tipus de cerca", + "synthesizePrompt": "Sintetitza la consulta", + "enablePiiScrubbing": "Activa la neteja de PII", + "fullContentContextLimit": "Màxim de contextos de contingut complet", + "fullContentContextWarning": "Els contextos de contingut complet poden augmentar significativament l'ús de tokens i poden afectar el rendiment", + "manageStacks": "Gestiona les piles", + "onlyCompletedStacks": "Només es poden seleccionar les piles completades" + }, + "totalFiles": "Fitxers totals", + "vectorDimensions": "Dimensions del vector", + "wordCount": "Recompte de paraules", + "readingTime": "Temps de lectura", + "embeddingModel": { + "title": "Model d'embedding", + "noModel": "No s'ha configurat cap model d'embedding", + "modelMissing": "No s'ha trobat el model {modelId}", + "providerRemapped": "El proveïdor del model s'ha reassignat automàticament", + "changeModel": "Canvia el model d'embedding de la consulta", + "selectModel": "Selecciona el model d'embedding de la consulta", + "missingModelWarning": "El model d'embedding original d'aquesta pila de coneixement no està disponible. Seleccioneu un model nou.", + "providerRemappedInfo": "El proveïdor del model d'embedding s'ha reassignat automàticament a un proveïdor compatible.", + "currentModel": "Model actual", + "noModelConfigured": "No s'ha configurat cap model", + "selectNewModel": "Selecciona un model nou", + "defaultLocal": "Per defecte (local)" + }, + "buckets": { + "files": { + "title": "@:files", + "description": "Afegiu fitxers .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx o qualsevol altre tipus de fitxer admès.", + "dropZoneText": "Arrossegueu i deixeu anar els fitxers aquí", + "browseFiles": "Explora els fitxers", + "dropHint": "Deixeu anar els fitxers aquí" + }, + "folders": { + "title": "@:folders i magatzems d'Obsidian", + "description": "Afegiu carpetes que continguin fitxers. També podeu deixar-hi anar magatzems d'Obsidian.", + "dropZoneText": "Arrossegueu i deixeu anar les carpetes aquí", + "browseFolders": "Explora les carpetes", + "liveMode": "Mode en directe", + "liveModeDescription": "Les carpetes se supervisen per detectar canvis i actualitzen automàticament la pila de coneixement", + "duplicateFolder": "Carpeta duplicada", + "alreadyAdded": "La carpeta ja s'ha afegit", + "folderAlreadyExists": "Aquesta carpeta ja s'ha afegit a la @:knowledgeStack.title", + "folderAlreadyAdded": "La carpeta «{path}» ja s'ha afegit", + "folderProcessed": "Carpeta processada", + "filesAdded": "S'han afegit {count} fitxers correctament", + "onlyFoldersAllowed": "Aquí només s'hi poden afegir carpetes. Seleccioneu una carpeta en comptes de fitxers individuals.", + "selectFolder": "Selecciona una carpeta", + "useDirectoryPicker": "Feu servir el botó Explora per seleccionar una carpeta en mode web", + "processed": "Processat", + "processingError": "Error en processar la carpeta", + "folderExplorer": "Explorador de carpetes", + "showIgnoredFiles": "Mostra els fitxers ignorats", + "noFolders": "Encara no s'ha afegit cap carpeta", + "refresh": "Actualitza", + "showInFileManager": "Mostra al gestor de fitxers", + "remove": "Elimina", + "loadError": "No s'ha pogut carregar la carpeta", + "removed": "Carpeta eliminada", + "folderRemoved": "S'ha eliminat «{name}» de la pila de coneixement", + "removeError": "No s'ha pogut eliminar la carpeta", + "ignored": "Ignorat", + "loading": "S'està carregant...", + "loadingContents": "S'està carregant el contingut de la carpeta...", + "confirmRemove": "Segur que voleu eliminar «{name}» d'aquesta pila de coneixement? La carpeta i els seus fitxers es mantindran al vostre sistema.", + "expandFolder": "Amplia la carpeta", + "collapseFolder": "Replega la carpeta", + "folderIgnored": "Aquesta carpeta s'ignora segons les regles de .mstyignore o .gitignore", + "fileIgnored": "Aquest fitxer s'ignora segons les regles de .mstyignore o .gitignore", + "actionMenu": "Menú d'accions", + "emptyFolder": "Carpeta buida", + "itemCount": "{count} element | {count} elements", + "hiddenItemCount": "{count} element amagat | {count} elements amagats" + }, + "obsidianVaults": { + "title": "Magatzems d'Obsidian", + "description": "Afegiu magatzems d'Obsidian a la vostra pila de coneixement. Msty indexarà totes les notes del magatzem.", + "dropZoneText": "Arrossegueu i deixeu anar els magatzems d'Obsidian aquí", + "browseVaults": "Explora els magatzems d'Obsidian" + }, + "notes": { + "title": "Notes", + "description": "Afegiu les vostres pròpies notes a la pila de coneixement. Aquestes notes es fragmentaran i s'incrustaran (embedding) per a la cerca semàntica.", + "addNote": "Afegeix una nota", + "titlePlaceholder": "Introduïu el títol de la nota...", + "contentPlaceholder": "Introduïu el contingut de la nota...", + "empty": "Encara no s'ha afegit cap nota. Feu clic a «Afegeix una nota» per començar.", + "unsaved": "Encara no s'ha desat" + }, + "youTubeLinks": { + "title": "Enllaços de YouTube", + "description": "Afegiu enllaços de vídeos de YouTube per indexar-ne les transcripcions. Msty obtindrà les transcripcions i les farà cercables.", + "dropZoneText": "Arrossegueu i deixeu anar els enllaços de YouTube aquí o enganxeu-los a sota", + "inputPlaceholder": "Enganxeu els URL de YouTube aquí (separats per espais o comes)...", + "inputPlaceholderWithDetected": "Enganxeu els URL de YouTube aquí ({count} detectat) | Enganxeu els URL de YouTube aquí ({count} detectats)", + "autoDetection": "Obtén automàticament els URL detectats", + "detectedCount": "{count} URL detectat | {count} URL detectats", + "detectedUnpulledUrls": "{count} URL de YouTube detectat però encara no obtingut | {count} URL de YouTube detectats però encara no obtinguts" + } + }, + "itemActions": { + "markForReprocessing": "Marca per tornar a processar", + "lockTemporary": "Bloqueja temporalment", + "lockPermanent": "Bloqueja permanentment", + "unlock": "Desbloqueja", + "ignoreRetrieval": "Ignora per a la recuperació", + "unignoreRetrieval": "Inclou a la recuperació", + "moreActions": "Més accions" + }, + "loadMode": { + "title": "Mode de càrrega", + "dialogTitle": "Selecciona el mode de càrrega", + "distribution": "Distribució", + "dialogDescription": "Trieu com s'ha de carregar aquest fitxer durant la composició de la pila de coneixement.", + "staticFiles": "Fitxers estàtics", + "dynamicFiles": "Fitxers dinàmics", + "syncFiles": "Fitxers de sincronització", + "totalFiles": "Fitxers totals", + "specialModes": "Modes especials", + "specialModesRatio": "Proporció de modes especials", + "static": { + "label": "Mode estàtic", + "description": "Fa servir la versió de la memòria cau de quan es va afegir el fitxer. És ràpid i predictible, però no reflecteix els canvis recents.", + "shortDescription": "Contingut de la memòria cau carregat des de la indexació inicial", + "badge": "Per defecte" + }, + "dynamic": { + "label": "Mode dinàmic", + "description": "Carrega el contingut més recent del fitxer en cada composició. Una mica més lent però sempre actualitzat.", + "shortDescription": "Contingut nou carregat en cada composició", + "badge": "Recomanat" + }, + "sync": { + "label": "Mode de sincronització", + "description": "Vigila els canvis als fitxers i torna a compondre automàticament. Ideal per a fitxers petits que s'actualitzen sovint.", + "shortDescription": "Torna a compondre automàticament quan els fitxers canvien", + "badge": "Costós" + } + }, + "syncMode": { + "start": "Inicia el mode de sincronització", + "pause": "Posa en pausa el mode de sincronització", + "pauseAll": "Posa-ho tot en pausa", + "started": "S'ha iniciat el mode de sincronització", + "startedDetail": "Ara es vigilen els canvis dels fitxers de {name}", + "stopped": "S'ha posat en pausa el mode de sincronització", + "stoppedDetail": "S'ha posat en pausa la vigilància de fitxers", + "startFailed": "No s'ha pogut iniciar el mode de sincronització", + "startFailedDetail": "Assegureu-vos que la pila de coneixement té fitxers marcats per al mode de sincronització", + "allPaused": "S'han posat en pausa tots els modes de sincronització", + "allPausedDetail": "S'ha aturat la vigilància de fitxers de totes les piles de coneixement", + "active": "{count} actiu | {count} actius", + "activeTitle": "Modes de sincronització actius", + "filesWatching": "{count} fitxer | {count} fitxers", + "filesCount": "{count} fitxer | {count} fitxers", + "startedTime": "Iniciat {time}", + "totalStats": "{stacks} pila, {files} fitxers | {stacks} piles, {files} fitxers", + "hoursAgo": "fa {hours} h", + "daysAgo": "fa {days} d" + }, + "analytics": { + "title": "Analítiques i observacions", + "lastComposed": "Darrera composició", + "sections": "Seccions d'analítiques", + "performanceTimings": "Temps de rendiment", + "summaryStatistics": "Estadístiques resum", + "contentBreakdown": "Desglossament del contingut", + "querySettings": "Configuració de la consulta", + "readingStatistics": "Estadístiques de lectura", + "noAnalyticsAvailable": "No hi ha analítiques disponibles", + "noAnalyticsDescription": "Les analítiques estaran disponibles després de compondre aquesta pila de coneixement.", + "noSectionsSelected": "Cap secció d'analítiques seleccionada", + "noSectionsSelectedDescription": "Seleccioneu una o més seccions d'analítiques de dalt per veure observacions sobre la vostra pila de coneixement.", + "selectAllSections": "Selecciona totes les seccions", + "timings": { + "loadingItems": "S'estan carregant els elements", + "splittingChunks": "S'estan dividint els @:knowledgeStack.chunksConsole.chunks", + "embeddingChunks": "S'estan incrustant els @:knowledgeStack.chunksConsole.chunks", + "composingStack": "S'està component la pila", + "totalTime": "Temps total", + "parallelNote": "Algunes operacions poden executar-se en paral·lel, de manera que els temps individuals poden no sumar el temps total", + "fileReading": "Lectura de fitxers", + "databaseWrite": "Escriptura a la base de dades" + }, + "stats": { + "numberOfItems": "Nre. d'elements", + "totalChunks": "Total de @:knowledgeStack.chunksConsole.chunks", + "availableChunks": "@:knowledgeStack.chunksConsole.chunks disponibles", + "skippedChunks": "@:knowledgeStack.chunksConsole.chunks omesos", + "wordCount": "Recompte de paraules", + "characterCount": "Recompte de caràcters", + "readingTime": "Temps de lectura" + }, + "ignoredItems": "Elements ignorats", + "ignoredForRetrieval": "Ignorat per a la recuperació", + "ignoredItemsDescription": "Aquests elements s'exclouen de les operacions de cerca i recuperació", + "ignoredPercentage": "Percentatge d'elements ignorats", + "ofTotal": "de {total}", + "files": "Fitxers", + "notes": "Notes", + "youTubeLinks": "Vídeos de YouTube", + "noIgnoredItems": "Cap element ignorat", + "allItemsIncluded": "Tots els elements d'aquesta pila de coneixement s'inclouen a la cerca i la recuperació", + "recommendation": "Recomanació", + "contentTypes": { + "files": "FITXERS", + "obsidianVaults": "MAGATZEMS D'OBSIDIAN", + "folders": "CARPETES", + "notes": "NOTES", + "youTubeLinks": "ENLLAÇOS DE YOUTUBE" + }, + "piiScrubbing": { + "title": "Neteja de PII", + "totalChunks": "Total de @:knowledgeStack.chunksConsole.chunks", + "scrubbedChunks": "@:knowledgeStack.chunksConsole.chunks netejats", + "cachedChunks": "@:knowledgeStack.chunksConsole.chunks a la memòria cau", + "coverage": "Cobertura", + "progress": "Progrés de la neteja", + "loadAnalytics": "Carrega les analítiques", + "failedToLoadAnalytics": "No s'han pogut carregar les dades d'analítiques de PII", + "analyticsNotLoaded": "Analítiques de PII no carregades", + "clickToViewAnalytics": "Feu clic a «Carrega les analítiques» per veure les estadístiques de neteja de PII", + "scoreTooltip": "Aquesta puntuació reflecteix com d'exhaustivament s'aplica la neteja de PII a la vostra pila de coneixement. Una puntuació més alta significa que s'han processat més fragments per eliminar-ne la PII.", + "optionalDescription": "La neteja de PII és opcional. Activeu-la a la configuració de la consulta només si el vostre contingut conté informació personal sensible.", + "protectionDescription": "Mesura com de ben protegida està la informació sensible a la vostra pila de coneixement", + "status": { + "notEnabled": "No activat", + "wellProtected": "Ben protegit", + "partiallyProtected": "Parcialment protegit", + "limitedProtection": "Protecció limitada", + "minimalProtection": "Protecció mínima" + }, + "insights": { + "excellentPrivacy": "Protecció de la privadesa excel·lent: gairebé tot el contingut està assegurat", + "goodPrivacy": "Bona protecció de la privadesa: la major part del contingut està assegurat", + "partialPrivacy": "Protecció parcial de la privadesa: plantegeu-vos revisar la configuració", + "limitedPrivacy": "Protecció limitada de la privadesa: reviseu el contingut sensible", + "notEnabled": "La neteja de PII no està activada. Això està perfectament bé si el vostre contingut no conté informació personal sensible.", + "whenToEnable": "Plantegeu-vos activar la neteja de PII només si la vostra pila de coneixement conté noms, adreces, números de telèfon, adreces electròniques o altres dades personals.", + "significantReduction": "Reducció significativa del contingut ({percentage}%): s'ha trobat molta PII", + "moderateReduction": "Reducció moderada del contingut ({percentage}%): s'ha eliminat una mica de PII", + "minimalReduction": "Reducció mínima del contingut ({percentage}%): s'ha detectat poca PII", + "noContentChange": "Sense canvi en la mida del contingut: no s'ha detectat ni eliminat cap PII", + "allChunksProcessed": "S'han processat tots els fragments correctament", + "nearlyAllProcessed": "S'han processat gairebé tots els fragments correctament", + "mostProcessed": "S'han processat la majoria de fragments: alguns poden necessitar atenció", + "incompleteProcessing": "Processament incomplet: comproveu la configuració de la neteja de PII", + "largeKnowledgeBase": "Base de coneixement gran: plantegeu-vos augmentar la cobertura de detecció de PII", + "manyUnprocessed": "Molts fragments sense processar: reviseu la configuració de la neteja de PII", + "optionalFeature": "La neteja de PII és opcional. Activeu-la a la configuració de la consulta si el vostre contingut conté informació sensible com ara noms, adreces electròniques o números de telèfon.", + "privacyOption": "La neteja de PII ajuda a protegir la informació sensible. És opcional i es pot activar a la configuració de la consulta si cal." + }, + "labels": { + "securityStatus": "Estat de seguretat", + "privacyStatus": "Estat de privadesa", + "whenToEnable": "Quan activar-la", + "contentImpact": "Impacte en el contingut", + "processingEfficiency": "Eficiència del processament", + "scaleRecommendation": "Recomanació d'escala", + "coverageRecommendation": "Recomanació de cobertura", + "optionalFeature": "Funció opcional", + "privacyOption": "Opció de privadesa" + } + }, + "querySettingsDetails": { + "searchType": "Tipus de cerca", + "numberOfChunks": "Nombre de @:knowledgeStack.chunksConsole.chunks", + "promptPrefix": "Prefix de la indicació" + }, + "privacyOptimizationScore": "Puntuació d'optimització de la privadesa", + "piiProtectionLevel": "Nivell de protecció de PII", + "piiScrubbingStatus": "Estat de la neteja de PII", + "unscrubbedChunks": "@:knowledgeStack.chunksConsole.chunks sense netejar", + "originalSize": "Mida original", + "processedSize": "Mida processada", + "sizeReduction": "Reducció de mida", + "privacyInsights": "Privadesa", + "dataModified": "Les dades s'han modificat", + "showOutdatedData": "Mostra les dades obsoletes igualment", + "contentDistribution": "Distribució del contingut", + "contentContribution": "{label} aporten el {percentage}% de tots els fragments", + "processingIssue": "Problema de processament", + "lowEfficiency": "{label} tenen una eficiència baixa ({efficiency}%)", + "dataQualityIssue": "Problema de qualitat de les dades", + "highSkipRates": "{count} tipus de contingut tenen taxes d'omissió altes", + "contentDiversity": "Diversitat del contingut", + "singleContentType": "Un sol tipus de contingut: plantegeu-vos diversificar les fonts", + "excellentDiversity": "Excel·lent diversitat de contingut entre múltiples tipus de font", + "optimizationTip": "Consell d'optimització", + "reduceChunkSize": "Reduïu la mida dels fragments a 800-1200 caràcters per a una millor granularitat del contingut", + "increaseChunkSize": "Augmenteu la mida dels fragments a 1500-2000 caràcters per a una millor eficiència", + "embeddingThroughput": "Rendiment de l'embedding", + "chunksPerSecond": "{rate} fragments/s ({time} ms cadascun)", + "searchStrategy": "Estratègia de cerca", + "balancedSearch": "Enfocament equilibrat que combina cerca per paraules clau + semàntica", + "semanticSearch": "Cerca semàntica amb IA: ideal per a consultes conceptuals", + "keywordSearch": "Cerca tradicional per paraules clau: ideal per a termes exactes", + "retrievalVolume": "Volum de recuperació", + "lowChunkCount": "Un recompte de fragments molt baix pot ometre informació rellevant", + "highChunkCount": "Un recompte de fragments alt pot incloure soroll i alentir les respostes", + "optimalChunkCount": "Recompte de fragments òptim per a una recuperació equilibrada", + "contentFiltering": "Filtratge del contingut", + "relaxedFiltering": "Filtratge relaxat: pot incloure contingut poc relacionat", + "strictFiltering": "Filtratge estricte: resultats molt focalitzats", + "moderateFiltering": "Filtratge equilibrat per a contingut rellevant", + "guidedContext": "Context guiat", + "customPromptPrefix": "El prefix de la indicació personalitzat guiarà la interpretació de la consulta", + "lockIndicator": "Indicador de bloqueig", + "allItemsCanBeReprocessed": "Tots els elements es poden tornar a processar", + "itemsPartiallyLocked": "El {percentage}% dels elements estan bloquejats", + "mostItemsLocked": "La majoria d'elements estan bloquejats: capacitat de reprocessament limitada", + "privacySecurity": "Privadesa i seguretat", + "privacyProtectionEnabled": "Protecció de la privadesa activada per a dades sensibles", + "noPiiScrubbing": "Sense neteja de PII: assegureu-vos que el contingut no sigui sensible", + "scaleOptimization": "Optimització d'escala", + "largeKnowledgeBase": "Base de coneixement gran: augmenteu el recompte de fragments per a una millor cobertura", + "smallKnowledgeBase": "Base de coneixement petita: plantegeu-vos reduir el recompte de fragments", + "performanceProfile": "Perfil de rendiment", + "optimizedForSpeed": "Configuració optimitzada per a respostes ràpides", + "optimizedForQuality": "Configuració optimitzada per a resultats d'alta qualitat", + "highLockRate": "Taxa de bloqueig alta", + "lockedItemsPercentage": "El {percentage}% dels elements estan bloquejats i no es tornaran a processar", + "unlockRecommendation": "Plantegeu-vos desbloquejar els elements bloquejats temporalment si necessiten actualitzacions", + "overHalfLocked": "Més del 50% dels elements estan bloquejats. Això pot reduir significativament la capacitat de la base de coneixement de mantenir-se actualitzada.", + "lockStatus": "Estat del bloqueig", + "totalItems": "Elements totals", + "unlocked": "Desbloquejat", + "temporarilyLocked": "Bloquejat temporalment", + "permanentlyLocked": "Bloquejat permanentment", + "lockStatusByContentType": "Estat del bloqueig per tipus de contingut", + "tempLocked": "Bloq. temp.", + "permLocked": "Bloq. perm.", + "lockStatusInsights": "@:insights de l'estat del bloqueig", + "processingEfficiency": "Eficiència del processament", + "contentInsights": "@:insights del contingut", + "compositionOptimizationScore": "Puntuació d'optimització de la composició", + "compositionInsights": "@:insights de la composició", + "performanceInsights": "@:insights de rendiment", + "processingPhaseDetails": "Detalls de la fase de processament", + "loadingItems": "S'estan carregant els elements", + "splittingChunks": "S'estan dividint els @:knowledgeStack.chunksConsole.chunks", + "embeddingChunks": "S'estan incrustant els @:knowledgeStack.chunksConsole.chunks", + "fileReading": "Lectura de fitxers", + "databaseWrite": "Escriptura a la base de dades", + "composingStack": "S'està component la pila", + "totalProcessingTime": "Temps total de processament", + "totalLockedItems": "Elements bloquejats totals", + "efficiency": "Eficiència", + "loadMode": { + "title": "Analítiques del mode de càrrega", + "description": "Comportament de càrrega de fitxers a la vostra pila de coneixement", + "distribution": "Distribució del mode de càrrega", + "totalFiles": "Fitxers totals", + "staticFiles": "Mode estàtic", + "dynamicFiles": "Mode dinàmic", + "syncFiles": "Mode de sincronització", + "specialModes": "Modes especials", + "specialModesRatio": "% de modes especials", + "status": "Estat", + "active": "Actiu", + "inactive": "Inactiu", + "breakdown": "Desglossament visual", + "noFiles": "No hi ha fitxers en aquesta pila de coneixement", + "desktopOnly": "Les opcions del mode de càrrega només estan disponibles a l'aplicació d'escriptori", + "notAvailable": "Les opcions del mode de càrrega només estan disponibles a l'aplicació d'escriptori", + "noSpecialModes": "Tots els fitxers fan servir el mode estàtic. Activeu el mode dinàmic o de sincronització perquè els fitxers utilitzin el contingut més recent.", + "syncActive": "Mode de sincronització actiu", + "syncActiveDetails": "Es vigilen {files} • Iniciat {time}", + "staticDescription": "Contingut de la memòria cau carregat des de la indexació inicial", + "dynamicDescription": "Contingut nou carregat en cada composició", + "syncDescription": "Torna a compondre automàticament quan els fitxers canvien", + "staticBadge": "Per defecte", + "dynamicBadge": "Nou", + "syncBadge": "En directe", + "insights": { + "highSyncCount": { + "title": "Recompte alt de fitxers en sincronització", + "description": "{count} fitxers estan en mode de sincronització", + "recommendation": "Plantegeu-vos fer servir el mode dinàmic per als fitxers que s'actualitzen menys sovint per reduir l'ús de recursos" + }, + "syncEnabled": { + "title": "Mode de sincronització activat", + "description": "{count} fitxers s'actualitzen automàticament quan canvien" + }, + "highDynamicUsage": { + "title": "Ús alt del mode dinàmic", + "description": "El {percentage}% dels fitxers fan servir el mode dinàmic", + "recommendation": "El mode estàtic pot ser suficient per a fitxers que rarament canvien" + }, + "dynamicEnabled": { + "title": "Mode dinàmic actiu", + "description": "{count} fitxers carreguen contingut nou en cada composició" + }, + "staticOnly": { + "title": "Només mode estàtic", + "description": "Tots els fitxers fan servir contingut de la memòria cau de la indexació inicial", + "recommendation": "Activeu el mode dinàmic o de sincronització per als fitxers que s'actualitzen sovint per garantir contingut nou" + }, + "mixedModes": { + "title": "Modes de càrrega mixtos", + "description": "El {percentage}% dels fitxers fan servir modes de càrrega especials" + } + } + } + }, + "composeSettings": { + "title": "Configuració de la composició", + "chunkOverlapping": "Solapament de @:knowledgeStack.chunksConsole.chunk", + "embeddingModel": { + "title": "Model d'embedding", + "warning": "Canviar el model d'embedding requerirà tornar a compondre tota la pila de coneixement i, fins i tot llavors, hi ha la possibilitat que la recomposició falli.", + "learnMore": "Més informació sobre la compatibilitat del model d'embedding", + "defaultPlaceholder": "Per defecte (local)" + }, + "placeholders": { + "selectEmbeddingModel": "Seleccioneu un model d'embedding", + "selectChunkOverlapping": "Seleccioneu el solapament dels fragments", + "selectChunkSize": "Seleccioneu la mida dels fragments" + }, + "chunkingMethod": { + "title": "Mètode de fragmentació", + "recursiveCharacter": "Caràcter recursiu", + "sentence": "Frase", + "description": "Trieu com s'han de fragmentar els documents en trossos més petits per a una millor cerca i recuperació." + }, + "overlapping": { + "title": "Solapament", + "description": "Trieu quant solapament hi ha d'haver entre els fragments. Un solapament més alt pot millorar el context però augmenta l'ús de tokens." + }, + "chunkSize": { + "title": "Mida de @:knowledgeStack.chunksConsole.chunk", + "description": "Definiu la mida màxima de cada fragment en caràcters. Els fragments més petits poden millorar la precisió de la cerca però augmenten l'ús de tokens." + }, + "chunkSizesToIgnore": { + "title": "Mides de @:knowledgeStack.chunksConsole.chunk a ignorar", + "description": "Especifiqueu les mides de fragments que s'han d'ignorar durant el processament. És útil per excloure fragments molt petits o molt grans." + } + }, + "querySettings": { + "title": "Configuració de la consulta", + "numberOfChunks": "Nombre de @:knowledgeStack.chunksConsole.chunks", + "promptPrefix": "Prefix de la indicació", + "similarityThreshold": { + "low": "Baixa", + "medium": "Mitjana", + "high": "Alta", + "highest": "Molt alta" + }, + "searchTypes": { + "semantic": "Cerca semàntica", + "keyword": "Cerca per paraules clau", + "hybrid": "Cerca híbrida" + }, + "modes": { + "push": "Mode d'emissió (push)", + "pull": "Mode de recepció (pull)" + }, + "chunks": { + "title": "Context de la pila de coneixement", + "loadError": "No s'han pogut carregar els fragments de la pila de coneixement. Torneu-ho a provar.", + "searchSettings": "Configuració de la cerca", + "searchType": "Tipus de cerca", + "searchQuery": "Consulta de cerca", + "source": "Origen", + "content": "Contingut", + "fullContent": "Contingut complet", + "chunkInfo": "Informació de @:knowledgeStack.chunksConsole.chunk", + "knowledgeStack": "Pila de coneixement", + "chunks": "fragments", + "maxChunks": "Màxim de @:knowledgeStack.chunksConsole.chunks" + }, + "retrievalMode": { + "title": "Mode de recuperació de @:knowledgeStack.chunksConsole.chunk", + "description": "Trieu entre el mode d'emissió (push), on els fragments s'obtenen prèviament, o el mode de recepció (pull), on el model pot consultar les piles de coneixement directament" + } + }, + "chunks": { + "coverage": "Cobertura", + "skippedChunks": "@:knowledgeStack.chunksConsole.chunks omesos", + "availableChunks": "@:knowledgeStack.chunksConsole.chunks disponibles", + "numberOfChunks": "Nombre de @:knowledgeStack.chunksConsole.chunks", + "promptPrefix": "Prefix de la indicació", + "chunkingMethod": "Mètode de fragmentació", + "chunkSize": "Mida de @:knowledgeStack.chunksConsole.chunk", + "chunkOverlap": "Solapament de @:knowledgeStack.chunksConsole.chunk", + "totalChunks": "Total de @:knowledgeStack.chunksConsole.chunks", + "cachedChunks": "@:knowledgeStack.chunksConsole.chunks a la memòria cau", + "scrubbedChunks": "@:knowledgeStack.chunksConsole.chunks netejats", + "loadError": "No s'han pogut carregar els fragments de la pila de coneixement. Torneu-ho a provar.", + "searchSettings": "Configuració de la cerca", + "searchType": "Tipus de cerca", + "maxChunks": "Màxim de @:knowledgeStack.chunksConsole.chunks", + "searchQuery": "Consulta de cerca", + "synthesizedQuery": "Consulta sintetitzada", + "chunks": "fragment | fragments", + "source": "Origen", + "content": "Contingut", + "viewFull": "Mostra el contingut complet", + "fullContent": "Contingut complet de @:knowledgeStack.chunksConsole.chunk", + "chunkInfo": "Informació de @:knowledgeStack.chunksConsole.chunk", + "knowledgeStack": "Pila de coneixement", + "scrubbed": "Netejat", + "original": "Original", + "chunkId": "ID de @:knowledgeStack.chunksConsole.chunk", + "piiStatus": "Estat de la PII", + "piiScrubbed": "PII netejada", + "piiUnscrubbed": "PII sense netejar", + "tooltip": { + "scrubbed": "S'ha netejat el contingut per eliminar la PII", + "cached": "S'ha fet servir la versió netejada de la memòria cau", + "fresh": "Contingut netejat de nou", + "original": "Contingut original sense @:pii.scrubbing.title" + }, + "queryAnalysis": "Anàlisi de la consulta", + "fullContentRetrieved": "Context de contingut complet actiu", + "documentsRetrieved": "Documents recuperats", + "contentContext": "Context del contingut", + "keywords": "Paraules clau", + "fullDoc": "Doc. complet", + "type": "Tipus", + "fullDocument": "Document complet" + }, + "chunksVisualizer": { + "title": "Visualitzador de @:knowledgeStack.chunksConsole.chunks", + "description": "Visualitzeu com es fragmenten els documents", + "openStitcher": "Obre el visualitzador", + "viewStitcher": "Mostra el visualitzador", + "stitchableFiles": "Fitxers disponibles", + "loading": "S'estan carregant els fitxers...", + "noFiles": "No s'ha trobat cap fitxer", + "selectFile": "Selecciona un fitxer", + "selectFileDescription": "Trieu un fitxer de l'esquerra per visualitzar-ne els fragments i el contingut", + "mimeType": "Tipus MIME", + "chunks": "@:knowledgeStack.chunksConsole.chunks", + "overlaps": "Solapaments", + "stitchedSize": "Mida cosida", + "showOverlaps": "Mostra els solapaments", + "hideOverlaps": "Amaga els solapaments", + "showChunks": "Mostra els @:knowledgeStack.chunksConsole.chunks", + "showStitched": "Mostra el text cosit", + "copyContent": "Copia el contingut", + "stitchedContent": "Contingut cosit", + "scrubbedChunks": "@:knowledgeStack.chunksConsole.chunks netejats", + "unScrubbedChunks": "@:knowledgeStack.chunksConsole.chunks sense netejar", + "overlapRemoved": "S'han eliminat els solapaments per a una reconstrucció neta del text", + "chunkNumber": "@:knowledgeStack.chunksConsole.chunk {number}", + "overlapPrevious": "Solapament anterior", + "overlapNext": "Solapament següent", + "overlapWithPrevious": "Aquest text se solapa amb el fragment anterior", + "overlapWithNext": "Aquest text se solapa amb el fragment següent", + "chunkIndices": "Posicions dels caràcters al fitxer", + "coreIndices": "Contingut principal sense solapaments", + "chunkCount": "{count} fragments", + "showOriginal": "Mostra l'original", + "showScrubbed": "Mostra el netejat", + "showScrubbedOnly": "Mostra només el netejat", + "showAllChunks": "Mostra tots els @:knowledgeStack.chunksConsole.chunks", + "tooltip": { + "scrubbed": "S'ha netejat el contingut per eliminar la PII", + "cached": "S'ha fet servir la versió netejada de la memòria cau", + "fresh": "Contingut netejat de nou" + }, + "itemsPerPage": "Per pàgina", + "showingChunks": "{start}-{end} de {total} fragments", + "loadingChunks": "S'estan carregant els fragments...", + "noItems": "No s'ha trobat cap element", + "selectItem": "Selecciona un element", + "selectItemDescription": "Trieu un fitxer o una nota de l'esquerra per visualitzar-ne els fragments i el contingut", + "openConsole": "Obre la consola", + "selectedChunks": "{count} @:knowledgeStack.chunksConsole.chunk seleccionats", + "deleteSelected": "Suprimeix els seleccionats", + "clearSelection": "Esborra la selecció", + "confirmDelete": "Confirma la supressió", + "confirmDeleteMessage": "Segur que voleu suprimir {count} fragments seleccionats? Aquesta acció no es pot desfer.", + "deleteSuccess": "@:knowledgeStack.chunksConsole.chunks suprimits", + "deleteSuccessDetail": "S'han suprimit {count} fragments correctament", + "deletedChunksCount": "S'ha suprimit {count} @:knowledgeStack.chunksConsole.chunk correctament", + "deleteError": "La supressió ha fallat" + }, + "export": { + "forceCompose": "Força la composició", + "overallProgress": "Progrés general", + "itemsExported": "S'han exportat {count} elements", + "items": "Elements", + "skip": "Omet", + "exportCompleted": "L'exportació s'ha completat correctament!", + "savedTo": "Desat a: {path}", + "cancelAll": "Cancel·la-ho tot", + "done": "Fet", + "export": "Exporta", + "exporting": "S'està exportant", + "knowledgeStack": "Pila de coneixement", + "folder": "Carpeta", + "exportFailed": "L'exportació ha fallat", + "importFailed": "La importació ha fallat" + }, + "messages": { + "editsSaved": "S'han desat els vostres canvis a la pila de coneixement. Caldrà que la torneu a compondre per aplicar els canvis.", + "savedAndProcessing": "S'ha desat la pila de coneixement i ha començat el processament", + "cannotForceCompose": "No es pot forçar la composició: primer cal desar la pila de coneixement", + "failedToForceCompose": "No s'ha pogut forçar la composició de la pila de coneixement", + "forceComposeStarted": "S'ha iniciat la composició forçada: es tornaran a processar tots els elements", + "failedToUpdateQuerySettings": "No s'ha pogut actualitzar la configuració de la consulta", + "querySettingsUpdated": "S'ha actualitzat la configuració de la consulta", + "justNow": "ara mateix", + "minutesAgo": "fa {minutes} min", + "searchPlaceholder": "Cerca...", + "failedToSelectItem": "No s'ha pogut seleccionar l'element", + "failedToSelectFolder": "No s'ha pogut seleccionar la carpeta", + "processingCompleted": "El processament de la pila de coneixement {title} s'ha completat", + "processingFailed": "El processament de la pila de coneixement {title} ha fallat", + "nothingToCompose": "No hi ha res a compondre per a la pila de coneixement {title}", + "composeError": "Error en compondre la pila de coneixement {title}", + "downloadImportNotAvailableInWeb": "La importació des d'un URL només està disponible a l'aplicació d'escriptori", + "deleteSuccess": "S'han suprimit {count} @:knowledgeStack.title!", + "createError": "No s'ha pogut crear la @:knowledgeStack.title", + "saveEditsError": "No s'han pogut desar les edicions a la @:knowledgeStack.title", + "folderAdded": "S'ha afegit la carpeta «{name}» a la pila de coneixement" + }, + "folderLockedTemporary": "S'ha bloquejat la carpeta «{name}» temporalment", + "folderLockedPermanent": "S'ha bloquejat la carpeta «{name}» permanentment", + "lockFailed": "No s'ha pogut bloquejar la carpeta", + "folderUnlocked": "Folder '{name}' unlocked", + "unlockFailed": "Failed to unlock the folder", + "unlock": "Desbloqueja", + "status": { + "misc": "Divers", + "path": "Path: {path}", + "name": "Name: {name}", + "unknown": "Unknown", + "original": "Original", + "loadingPiiAnalytics": "Loading PII analytics...", + "allItemsUnlocked": "All items are unlocked and can be reprocessed when needed." + }, + "abortProcessing": "Abort Processing", + "errors": { + "processingFailed": "Processing Failed", + "errorMessage": "Error Message", + "occurredAt": "Occurred at", + "failedFile": "Failed File", + "errorSummary": "Error Summary", + "technicalDetails": "Technical Details", + "stackTrace": "Stack Trace", + "copyDetails": "Copy Details", + "detailsCopied": "Error details copied to clipboard", + "clickToSeeDetails": "Click to see error details", + "fileIsNull": "File is null", + "checkingPathError": "Error checking if path is directory", + "processingFolderError": "Error processing folder", + "lockFolderTemporaryFailed": "Failed to lock folder temporarily", + "lockFolderPermanentFailed": "Failed to lock folder permanently", + "unlockFolderFailed": "Failed to unlock folder", + "status": { + "completed": "Status: Completed", + "processing": "Status: Processing", + "pending": "Status: Pending", + "draft": "Status: Draft", + "needsReprocessing": "Status: Needs Reprocessing", + "error": "Status: Error", + "lockedTemporary": "Status: Temporarily Locked", + "lockedPermanent": "Status: Permanently Locked", + "aborted": "Status: Aborted", + "unknown": "Status: Unknown" + } + } + }, + "features": { + "showcase": { + "title": "Unlock Aurum Features", + "subtitle": "Upgrade to Aurum license for the most powerful AI features and advanced capabilities", + "eyebrow": "Everything you need", + "viewPricing": "View Pricing", + "featureMatrix": "Feature Matrix", + "activateLicense": "Activate License", + "licenses": { + "aurum": "Aurum" + } + } + }, + "images": { + "upload": "Upload image…", + "onlySupported": "Only image files are supported.", + "maxSize": "Image must be 1MB or smaller." + }, + "userAvatar": { + "updated": "Profile image updated.", + "updateFailed": "Failed to update image. Please try again.", + "changeHint": "Click to change profile image" + }, + "setting": { + "lostAndFound": { + "title": "Lost & Found", + "description": "Find and recover lost workspaces from your computer. Only workspace databases are scanned and discovered, not attachments.", + "experimentalInfo": "Lost & Found is experimental. Always keep backups of your workspace data before attempting recovery.", + "scanForLostWorkspaces": "Scan for Lost Workspaces", + "scanAppData": "Scan App Data", + "scanFolder": "Scan Folder…", + "workspace": "Workspace", + "file": "Fitxer", + "status": "Estat", + "lastModifiedColumn": "Last Modified", + "actions": "Actions", + "statusCurrent": "Actual", + "statusLinked": "Linked", + "statusFound": "Found", + "restoreCurrentWorkspace": "Restore current workspace", + "importAsNewWorkspace": "Import As New Workspace", + "restoreConfirmHeader": "Restore current workspace?", + "restoreConfirmMessage": "This will replace the data of the currently active workspace with the data from the selected recovered file. This cannot be undone.", + "restore": "Restaura", + "failedToImportWorkspace": "Failed to import workspace", + "workspaceImported": "Workspace imported", + "workspaceImportedDetail": "Recovered workspace has been imported. Switch to it from the workspace tray if needed.", + "failedToRestoreWorkspace": "Failed to restore workspace", + "workspaceRestored": "Workspace restored", + "workspaceRestoredDetail": "Current workspace has been restored from the recovered file.", + "showInFileExplorer": "Mostra a l'Explorador de fitxers", + "lastModified": "Darrera modificació", + "failedToImportRecoveredWorkspace": "Failed to import recovered workspace", + "failedToImportRecoveredWorkspaceUnexpected": "Failed to import recovered workspace (unexpected)", + "failedToRestoreFromRecoveredFile": "Failed to restore workspace from recovered file", + "failedToRestoreFromRecoveredFileUnexpected": "Failed to restore workspace from recovered file (unexpected)" + } + }, + "quickFilter": "Quick filter...", + "toggleFilter": "Toggle filter", + "toggleSidebar": "Toggle sidebar", + "adjust": "Adjust", + "experimentalInfo": "{item} is experimental and under active development. Please report any issues to the team.", + "attachmentsManager": { + "columnHeaders": { + "name": "Nom", + "fileType": "File Type", + "attachmentType": "Attachment Type", + "size": "Mida", + "actions": "Actions" + }, + "actions": { + "browseExisting": "Browse Existing Attachments", + "viewAssociations": "View Associations", + "attach": "Adjunta", + "delete": { + "title": "Delete Attachment | Delete Attachments", + "confirmationMessage": "Are you sure you want to delete the attachment? All the associations to the attachment will also be removed. This action cannot be undone. | Are you sure you want to delete the attachments? All the associations to the attachments will also be removed. This action cannot be undone.", + "successMessage": "Successfully deleted the attachment | Successfully deleted the attachments", + "errorMessage": "Failed to delete the attachment | Failed to delete the attachments" + } + }, + "search": "Search by Name", + "filter": "Filter by Attachment Type", + "title": "Attachments Manager", + "emptyState": { + "title": "No Attachments Found", + "description": "You have no attachments available." + }, + "associations": { + "title": "Associations for {attachmentName}", + "search": "Search by Association Name", + "filter": "Filter by Associated Entity", + "emptyState": { + "title": "No Associations Found", + "description": "You have not used this attachment anywhere yet." + }, + "columnHeaders": { + "associationName": "Association Name", + "associatedEntity": "Associated Entity", + "actions": "Actions" + }, + "actions": { + "jumpTo": "Jump to {entity}", + "detach": { + "action": "Desadjunta", + "title": "Detach Association", + "confirmationMessage": "Are you sure you want to detach the association from the {associationEntity}? This action cannot be undone.", + "successMessage": "Successfully detached the association", + "errorMessage": "Failed to detach the association" + } + } + } + }, + "iconSelector": { + "searchMode": "Cerca", + "aiMode": "AI Prompt", + "aiPlaceholder": "Describe what the icon represents...", + "findIcon": "Find Icon", + "finding": "Finding..." + } +} diff --git a/tools/msty_ca/GLOSSARI.md b/tools/msty_ca/GLOSSARI.md new file mode 100644 index 0000000..f5a202f --- /dev/null +++ b/tools/msty_ca/GLOSSARI.md @@ -0,0 +1,42 @@ +# Glossari Msty Studio — català (Softcatalà / TERMCAT) + +Registre: **impersonal/neutre**. Ordres i botons en **imperatiu** (Desa, Tanca, Suprimeix). +Missatges del programa cap a l'usuari: **impersonal** ("No s'ha pogut desar", "S'ha actualitzat"). +Evitar "tu" i "vostè". Variables `{x}` i enllaços `@:clau` es preserven. + +## Termes clau +- Msty / Msty Studio → *Msty / Msty Studio* (marca, no es tradueix) +- prompt → **indicació** (TERMCAT, IA generativa) + - System Prompt → indicació del sistema + - User Prompt → indicació de l'usuari +- token → **token** (manllevat consolidat en context LLM; plural *tokens*) +- embedding → **embedding** (manllevat; evitar inventar) +- model → model +- Knowledge Stack → **pila de coneixement** (funció de Msty) +- chat → **xat** (TERMCAT) +- conversation → conversa +- workspace → **espai de treball** +- attachment → **adjunció** +- settings → **configuració** (singular) +- persona → **personalitat** (de l'IA) / *persona* segons context de marca Msty → "persona" +- provider → **proveïdor** +- live context → **context en directe** +- toolbox → **caixa d'eines** +- forge → **forja** +- squad → **esquadra** / model squad → esquadra de models +- matchmaker → **emparellador** +- turnstile → **torn** (revisar context) + +## Ordres / botons (imperatiu) +Save→Desa · Saved→Desat · Cancel→Cancel·la · Close→Tanca · Delete→Suprimeix · +Remove→Elimina/Treu · Edit→Edita · Create→Crea · Add→Afegeix · Enable→Activa · +Disable→Desactiva · Apply→Aplica · Reset→Restableix · Clear→Esborra · Update→Actualitza · +Continue→Continua · Confirm→Confirma · Manage→Gestiona · Duplicate→Duplica · +Import→Importa · Connect→Connecta · Disconnect→Desconnecta · Reconnect→Torna a connectar · +Pause→Posa en pausa · Resume→Reprèn · Retry→Torna-ho a provar · Stop→Atura · Run→Executa · +Skip→Omet · Select→Selecciona · Search→Cerca · Copy→Copia · Paste→Enganxa · Share→Comparteix + +## Estats +Required→Obligatori · Optional→Opcional · Available→Disponible · Unavailable→No disponible · +Detected→Detectat · Valid→Vàlid · Invalid→No vàlid · Authorized→Autoritzat · +Success!→Fet! / Correcte! · Error!→Error! · Warning→Avís · Done!→Fet! diff --git a/tools/msty_ca/build.py b/tools/msty_ca/build.py new file mode 100644 index 0000000..5199578 --- /dev/null +++ b/tools/msty_ca/build.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +"""Reconstrueix ca_ES.json a partir d'en_US.json + lots de traduccio tr_*.json. +Valida que cada traduccio preserva variables {x}, enllacos @:clau, plurals | i alternatives ::. +""" +import json, re, glob, os, sys + +HERE = os.path.dirname(__file__) +ROOT = os.path.abspath(os.path.join(HERE, '..', '..')) +EN = os.path.join(ROOT, 'i18n', 'locales', 'en_US.json') +OUT = os.path.join(ROOT, 'i18n', 'locales', 'ca_ES.json') + +def load_translations(): + tr = {} + for f in sorted(glob.glob(os.path.join(HERE, 'tr_*.json'))): + data = json.load(open(f, encoding='utf-8')) + tr.update(data) + return tr + +PLACEHOLDER = re.compile(r'\{[^}]+\}') +# @:key or @.modifier:key (key may contain letters, digits, dots, underscores) +LINK = re.compile(r'@(?:\.[a-z]+)?:[A-Za-z0-9_.]+') + +LINKKEY = re.compile(r'@(?:\.[a-z]+)?:([A-Za-z0-9_.]+)') + +def validate(src, dst, valid_keys): + errs = [] + sp = sorted(PLACEHOLDER.findall(src)) + dp = sorted(PLACEHOLDER.findall(dst)) + if sp != dp: + errs.append('CRITIC: variables {} difereixen: %r vs %r' % (sp, dp)) + # cada enllac @: de la traduccio ha d'apuntar a una clau existent + for k in LINKKEY.findall(dst): + if k not in valid_keys: + errs.append('enllac @:%s no existeix a en_US' % k) + if src.count('|') != dst.count('|'): + errs.append('avis: nombre de | (plurals) difereix: %d vs %d' % (src.count('|'), dst.count('|'))) + if src.count('::') != dst.count('::'): + errs.append('avis: nombre de :: (alternatives) difereix: %d vs %d' % (src.count('::'), dst.count('::'))) + return errs + +def collect_keys(o, p='', out=None): + if out is None: out = set() + if isinstance(o, dict): + for k, v in o.items(): + np = (p + '.' + k) if p else k + out.add(np) + collect_keys(v, np, out) + return out + +def main(): + en = json.load(open(EN, encoding='utf-8')) + valid_keys = collect_keys(en) + tr = load_translations() + missing = [] + errors = [] + def walk(o, p=''): + if isinstance(o, dict): + return {k: walk(v, (p + '.' + k) if p else k) for k, v in o.items()} + if isinstance(o, list): + return [walk(v, p + '[' + str(i) + ']') for i, v in enumerate(o)] + src = o + if src in tr and tr[src] != '': + dst = tr[src] + for e in validate(src, dst, valid_keys): + errors.append((p, e, src, dst)) + return dst + missing.append((p, src)) + return src + out = walk(en) + with open(OUT, 'w', encoding='utf-8', newline='\n') as f: + json.dump(out, f, ensure_ascii=False, indent=2) + f.write('\n') + total_leaves = len(missing) + (count_leaves(en) - len(missing)) + tl = count_leaves(en) + print('Cadenes totals (fulles):', tl) + print('Tradudes:', tl - len(missing), '(%.1f%%)' % (100*(tl-len(missing))/tl)) + print('Pendents:', len(missing)) + if errors: + print('\n*** ERRORS DE VALIDACIO:', len(errors)) + for p, e, s, d in errors[:60]: + print(' [%s] %s\n SRC=%r\n DST=%r' % (p, e, s, d)) + if '--missing' in sys.argv: + print('\n--- PENDENTS ---') + for p, s in missing: + print('%s\t%s' % (p, s)) + +def count_leaves(o): + if isinstance(o, dict): return sum(count_leaves(v) for v in o.values()) + if isinstance(o, list): return sum(count_leaves(v) for v in o) + return 1 + +if __name__ == '__main__': + main() diff --git a/tools/msty_ca/source_paths.json b/tools/msty_ca/source_paths.json new file mode 100644 index 0000000..8489ae8 --- /dev/null +++ b/tools/msty_ca/source_paths.json @@ -0,0 +1,3243 @@ +{ +"You": "you", +"Select": "select", +"Conversations": "conversations", +"Copy to Clipboard": "copyToClipboard", +"to copy markdown directly": "toCopyMarkdownDirectly", +"Click to copy markdown directly": "clickToCopyMarkdownDirectly", +"to show more options": "toShowMoreOptions", +"Long press or Alt+click for more options": "longPressOrAltClickForMoreOptions", +"on message": "onMessage", +"@:select a model | @:select models": "selectModel", +"@:manage Models": "manageModels", +"Required": "required", +"Optional": "optional", +"System Prompt": "systemPrompt", +"@:systemPrompt Attach @:mode": "systemPromptAttachMode", +"@:user Prompt": "userPrompt", +"Delete {item}": "delete", +"Delete All": "deleteAll", +"Create": "create", +"Edit": "edit", +"Expand editor": "expandTextarea", +"Collapse editor": "collapseTextarea", +"Enable": "enable", +"Disable": "disable", +"Save": "save", +"Saved": "saved", +"Cancel": "cancel", +"Close": "close", +"Bookmarked": "bookmarked", +"Pinned": "pinned", +"Update": "update", +"Apply": "apply", +"Reset": "reset", +"Icon": "icon", +"Clear": "clear", +"API Key": "apiKey", +"Models": "models", +"Available {itemType}": "available", +"Unavailable": "unavailable", +"Detected": "detected", +"Continue": "continue", +"Undetected": "undetected", +"Welcome!": "welcome", +"Plan": "plan", +"All changes saved": "allChangesSaved", +"Toolbar": "toolbar", +"Bookmark | Bookmarks": "bookmark", +"Waiting :: Hold on :: Just a moment :: One second :: Patience is a virtue :: Almost there :: Loading awesomeness": "waitingMessage.waiting", +"Searching the Web :: Browsing the internet :: Looking online :: Scouring the web :: Consulting the oracle :: Asking the internet nicely :: Diving into cyberspace :: Mining the web": "waitingMessage.fetchingWebResults", +"Querying @:knowledgeStack.title :: Searching your knowledge :: Looking through your docs :: Exploring your knowledge base :: Rifling through your wisdom :: Consulting your digital library :: Scanning your archives :: Digging through your notes": "waitingMessage.queryingKnowledgeStack", +"Preparing Tools :: Getting tools ready :: Setting up tools :: Loading tools :: Sharpening the instruments :: Assembling the toolkit :: Warming up the engines :: Prepping the workspace": "waitingMessage.preparingTools", +"Model is doing its magic ✨ :: AI is thinking :: Processing your request :: Working on it :: Crunching the numbers :: Neurons firing :: Pondering deeply :: Computing brilliance :: Engaging brain mode :: Summoning intelligence": "waitingMessage.connectingToModel", +"Processing Context :: Understanding context :: Analyzing context :: Reading the situation :: Connecting the dots :: Grasping the big picture :: Piecing it together :: Making sense of things": "waitingMessage.processingContext", +"Streaming :: Sending response :: Delivering answer :: Transmitting :: Beaming down results :: Flowing your way :: En route to you :: Coming in hot": "waitingMessage.streaming", +"Scrubbing PII Data :: Protecting your privacy :: Removing personal info :: Anonymizing data :: Keeping secrets safe :: Privacy mode engaged :: Redacting the sensitive bits :: Going incognito": "waitingMessage.scrubbingPIIData", +"Synthesizing Query for Better Results :: Optimizing your question :: Enhancing query :: Refining search terms :: Polishing your request :: Fine-tuning the question :: Crafting the perfect query :: Making your words shine": "waitingMessage.synthesizingQuery", +"Fetching Live Contexts :: Gathering real-time data :: Pulling fresh insights :: Syncing with live sources :: Tapping into the data stream :: Collecting current intel :: Refreshing context feeds :: Harvesting live updates :: Connecting to the pulse": "waitingMessage.fetchingLiveContexts", +"Initializing...": "progress.initializing", +"Add": "add", +"Expand {group}": "actionBar.expandGroup", +"Collapse {group}": "actionBar.collapseGroup", +"Show extra add-ons": "actionBar.showExtraAddOns", +"Hide extra add-ons": "actionBar.hideExtraAddOns", +"Model & Prompts": "actionBar.groups.model", +"Data & Knowledge": "actionBar.groups.data", +"Tools & Personas": "actionBar.groups.tools", +"Unauthorized": "unauthorized", +"Valid": "valid", +"Invalid": "invalid", +"Done!": "done", +"Confirm": "confirm", +"Share with synced splits": "shareWithSyncedSplits", +"Source | Sources": "source", +"Grounding Sources": "groundingSources", +"Manage": "manage", +"Chat | Chats": "chat", +"Advanced Options": "advancedOptions", +"Duplicate": "duplicate", +"@:manage {item}": "manageItem", +"Success!": "success", +"Notes": "notes", +"View Notes": "viewNotes", +"Error!": "error", +"Warning": "warning", +"Authorized": "authorized", +"Not authorized": "notAuthorized", +"Authorize": "authorize", +"Re-authorize": "reauthorize", +"Remove authorization": "deauthorize", +"Failed to delete": "failedToDelete", +"Failed to save": "failedToSave", +"Failed to update": "failedToUpdate", +"updated.": "updatedSuccess", +"Apply and share with synced splits": "applyAndShareWithSyncedSplits", +"Click to edit": "clickToEdit", +"Click to add @:systemPrompt": "clickToAddSystemPrompt", +"Pause": "pause", +"Resume": "resume", +"Retry": "retry", +"Stop": "stop", +"Run": "run", +"Re-run": "rerun", +"Remove": "remove", +"Skip": "skip", +"Unskip": "unskip", +"Start Importing": "startImporting", +"New": "new", +"Entry | Entries": "entry", +"Import": "import", +"Connect": "connect", +"Disconnect": "disconnect", +"Reconnect": "reconnect", +"Select Target Folder": "selectTargetFolder", +"Create new folder for imported items": "createNewFolderForImport", +"New folder name": "newFolderName", +"Remote": "remote", +"Local": "local", +"Strength | Strengths": "strength", +"Provider": "provider", +"{count} Capability | {count} Capabilities": "capability", +"Preset | Presets": "preset", +"Save As @:preset": "saveAsPreset", +"Append": "append", +"Prepend": "prepend", +"Replace": "replace", +"Description": "description", +"Mode": "mode", +"Add-ons": "addOns", +"User": "user", +"Assistant": "assistant", +"@:assistant @:message.title": "assistantMessage", +"Connection Info": "connectionInfo", +"Export": "export", +"Export Options": "exportOptions", +"Choose File": "chooseFile", +"Purpose": "purpose", +"Download": "download", +"Downloads": "downloads", +"Download as JSON": "downloadAsJson", +"Install": "install", +"Installed": "installed", +"Modified": "modified", +"Created": "created", +"Minimize": "minimize", +"Status": "status", +"Type": "type", +"Yes": "yes", +"File Size": "fileSize", +"Size": "size", +"Like | Likes": "likes", +"Cancelled": "cancelled", +"Parameter @:size": "parameterSize", +"Quantization": "quantization", +"@:quantization Level": "quantizationLevel", +"Context Size": "contextSize", +"Default to model max": "defaultToModelMax", +"Maximum tokens the model processes at once. Set to 0 to use model's maximum. Larger values increase memory usage. This value is saved globally per model with LLaMa.cpp. Context is shared equally across the number of concurrent requests set via LLaMa.cpp service settings.": "llamaCppContextSizeDescription", +"Truncate Middle": "truncationStrategy.truncateMiddle", +"Truncate Old": "truncationStrategy.truncateOld", +"None": "truncationStrategy.none", +"How to handle messages when context limit is approached.": "truncationStrategyDescription", +"Storage": "storage", +"Params": "params", +"Arch": "arch", +"Filter": "filter", +"Sort & Display": "treeControls.title", +"Search...": "treeControls.searchPlaceholder", +"Folders first": "treeControls.foldersFirst", +"Items first": "treeControls.itemsFirst", +"Name": "treeControls.sort.name", +"Title": "treeControls.sort.title", +"Updated": "treeControls.sort.updated", +"Last Used": "treeControls.sort.lastUsed", +"Ascending": "treeControls.sort.ascending", +"Descending": "treeControls.sort.descending", +"Visibility": "treeControls.visibility.label", +"Show empty folders": "treeControls.visibility.empty.show", +"Hide empty folders": "treeControls.visibility.empty.hide", +"Show item counts": "treeControls.visibility.counts.show", +"Hide item counts": "treeControls.visibility.counts.hide", +"No {item} found for this search": "noSearchResults", +"Loading": "loading", +"Invite": "invite", +"Refresh": "refresh", +"Email": "email", +"Role": "role", +"Admin": "admin", +"Owner": "owner", +"Inactive": "inActive", +"Argument|Arguments": "argument", +"Abort": "abort", +"Send": "send", +"Remind Me Later": "remindMeLater", +"Text": "text", +"Folders": "folders", +"Folder | @:folders": "folder", +"Search": "search.label", +"Active": "search.scope.active", +"Archived": "search.scope.archived", +"All": "search.scope.all", +"Fuzzy search enabled": "fuzzySearch.enabled", +"Fuzzy search disabled": "fuzzySearch.disabled", +"Fuzzy Search Enabled. Click to Toggle": "fuzzySearch.enabledHint", +"Fuzzy Search Disabled. Click to Toggle": "fuzzySearch.disabledHint", +"Change": "change", +"Expand All Projects": "expandAllProjects", +"Collapse All Projects": "collapseAllProjects", +"Expand All Folders": "expandAllFolders", +"Collapse All Folders": "collapseAllFolders", +"Clone {item}": "clone.title", +"{item} cloned": "clone.successMessage.detail", +"Failed to clone {item}": "clone.errorMessage.detail", +"Add notes to help you remember the purpose of this {item}; this will also be seen by models which can provide them more details on how to use this {item} (@:optional)": "notesPurposePlaceholder", +"Endpoint Test Results": "endpointTestResults", +"Test Connection": "testConnection", +"No {item} found": "emptyPlaceholder", +"@:select {item}": "selectItem", +"{count} {title}": "selectedItemLabel", +"Feature|Features": "feature", +"Raw": "raw", +"Raw Output": "rawOutput", +"Property|Properties": "property", +"Configure": "configure", +"Context | Contexts": "context", +"Path | Paths": "path", +"Project | Projects": "project.title", +"New Project at Root": "project.createRootProject", +"Project Name": "project.projectName", +"Project Description": "project.projectDescription", +"Default Model": "project.defaultModel", +"Custom Instructions": "project.customInstructions", +"Add Child Project": "project.addChildProject", +"Move Folder to Root": "project.promoteToRoot.title", +"Failed to move project to root.": "project.promoteToRoot.errorMessage.detail", +"The project was successfully moved to the root.": "project.promoteToRoot.successMessage.detail", +"Delete Project": "project.deleteProject", +"Set as Default Project": "project.setDefaultForNewConversations", +"Unset Default Project": "project.unsetDefaultForNewConversations", +"Misc": "project.orphanageProjectName", +"Include Project Context": "project.includeProjectContext", +"Are you sure you want to delete {projectName} and all its conversations?": "project.deleteConfirmation.message", +"@:cancel": "project.deleteConfirmation.rejectLabel", +"@:delete": "project.deleteConfirmation.acceptLabel", +"Project deleted": "project.deleteConfirmation.successMessage.detail", +"Delete All Conversations": "project.deleteAllConversations.title", +"Are you sure you want to delete all conversations in {projectName}? This action cannot be undone.": "project.deleteAllConversations.description", +"Deleted {count} conversation | Deleted {count} conversations": "project.deleteAllConversations.successMessage.detail", +"No conversations to delete": "project.deleteAllConversations.successMessage.empty", +"Failed to delete conversations": "project.deleteAllConversations.errorMessage.detail", +"Archive All Conversations": "project.archiveAllConversations.title", +"Archive all conversations in {projectName}? They will move to the Archive and can be restored later.": "project.archiveAllConversations.description", +"Archive All": "project.archiveAllConversations.confirmLabel", +"Archived {count} conversation | Archived {count} conversations": "project.archiveAllConversations.successMessage.detail", +"Failed to archive conversations": "project.archiveAllConversations.errorMessage.detail", +"Add Files": "project.projectForm.addFiles", +"Edit Project": "project.projectForm.editProject", +"New Project": "project.projectForm.createNewProject", +"Drag and drop files that will get attached to each conversation in this project.": "project.projectForm.dragAndDropFiles", +"Project created": "project.projectForm.successMessage.createDetail", +"Project created! It's currently hidden because it's empty. Click the button below to show it now, or it will appear automatically when you add your first conversation.": "project.projectForm.successMessage.createDetailHidden", +"Project updated": "project.projectForm.successMessage.updateDetail", +"Failed to create Project": "project.projectForm.errorMessage.createDetail", +"Failed to update Project": "project.projectForm.errorMessage.updateDetail", +"Show Empty Projects": "project.emptyProjectVisibilityToast.showButton", +"Empty projects are now visible": "project.emptyProjectVisibilityToast.enabled", +"Start a New Conversation to Get Started": "project.startNewToGetStarted", +"Selected model": "selectedModel", +"Endpoint": "endpoint", +"Auth Token": "authToken", +"Before": "before", +"After": "after", +"Method": "method", +"HTTP @:method": "httpMethod", +"Get": "get", +"Post": "post", +"@:preset with the same name already exists.": "presetAlreadyExistsMessage", +"@:presetAlreadyExistsMessage If you save, it will overwrite the existing preset.": "duplicatePresetOverwriteMessage", +"No {propsName} available. Add a custom one.": "noPropsAvailable", +"@:local AI": "localAI", +"Click to add a label": "branch.clickToLabel", +"Branch label (max 30 chars)": "branch.labelPlaceholder", +"Label Branch...": "branch.labelBranch", +"Label Branch": "branch.labelDialogTitle", +"No label": "branch.noLabel", +"Click for more options": "branch.clickForOptions", +"Branch Explorer": "branch.timeline.title", +"Branch Explorer...": "branch.timeline.viewAll", +"Branch {n}": "branch.timeline.branchNumber", +"Current": "branch.timeline.current", +"Branches": "branch.timeline.branches", +"Compare": "branch.timeline.compare", +"Compare Branches": "branch.diff.title", +"Compare branches": "branch.diff.compare", +"Exit compare mode": "branch.diff.exitCompare", +"Select first branch to compare": "branch.diff.selectFirst", +"Select second branch to compare": "branch.diff.selectSecond", +"Selected": "branch.diff.selected", +"Content is identical": "branch.diff.identical", +"First branch": "branch.diff.leftBranch", +"Second branch": "branch.diff.rightBranch", +"Select branch": "branch.diff.selectBranch", +"Select two branches above to compare their content": "branch.diff.selectBranchesToCompare", +"Switch to {name}": "branch.diff.switchToBranch", +"Diff": "branch.diff.viewDiff", +"Side by Side": "branch.diff.viewSideBySide", +"Conversation | Conversations": "conversation.title", +"@:conversation.title Title": "conversation.conversationTitle", +"Failed to generate context summary.": "conversation.contextShieldErrorMessage.summary", +"Check Settings > Notifications for more details.": "conversation.contextShieldErrorMessage.detail", +"Failed to send message.": "conversation.sendErrorMessage.summary", +"Check Settings > Notifications for more details. {error}": "conversation.sendErrorMessage.detail", +"Message exceeds context limit": "conversation.contextSizeError.summary", +"Your message with search results and context is too large for this model. Try: increasing context size from model parameters, reducing search results, clearing conversation history, using a model with larger context (16k+), or shortening your system instructions.": "conversation.contextSizeError.detail", +"Delete @:conversation.title": "conversation.deleteConversation", +"Add New @:conversation.title": "conversation.addNewConversation", +"New @:conversation.title": "conversation.newConversation", +"Projects first": "conversation.treeControls.projectSort.projectsFirst", +"Last Activity": "conversation.treeControls.conversationSort.lastActivity", +"No priority": "conversation.treeControls.priority.none", +"@:pinned first": "conversation.treeControls.priority.pinned", +"@:bookmarked first": "conversation.treeControls.priority.bookmarked", +"Show Recents & @:pinned": "conversation.treeControls.visibility.recents.show", +"Hide Recents & @:pinned": "conversation.treeControls.visibility.recents.hide", +"Show Archive": "conversation.treeControls.visibility.archive.show", +"Hide Archive": "conversation.treeControls.visibility.archive.hide", +"Show empty projects": "conversation.treeControls.visibility.empty.show", +"Hide empty projects": "conversation.treeControls.visibility.empty.hide", +"Show conversation counts": "conversation.treeControls.visibility.counts.show", +"Hide conversation counts": "conversation.treeControls.visibility.counts.hide", +"Press {trigger} for quick commands OR start typing...": "conversation.promptPlaceHolder.normal.focused", +"Press / to focus here and start typing": "conversation.promptPlaceHolder.normal.unfocused", +"Are you sure you want to delete selected conversation and all its chat splits? | Are you sure you want to delete selected conversations and all their chat splits?": "conversation.deleteConfirmation.message", +"Delete": "conversation.deleteConfirmation.acceptLabel", +"@:conversation.title deleted": "conversation.deleteConfirmation.successMessage.detail", +"Failed to delete @:conversation.title": "conversation.deleteConfirmation.errorMessage.detail", +"Convert to Chat": "conversation.convertToChat.title", +"@:conversation.title converted to Chat": "conversation.convertToChat.successMessage.detail", +"Failed to convert conversation to Chat": "conversation.convertToChat.errorMessage.detail", +"Convert to @:forge.forgeCanvas": "conversation.convertToForgeCanvas.title", +"@:conversation.title converted to @:forge.forgeCanvas": "conversation.convertToForgeCanvas.successMessage.detail", +"Failed to convert conversation to @:forge.forgeCanvas": "conversation.convertToForgeCanvas.errorMessage.detail", +"Messages cloned to new split successfully": "conversation.cloneAncestorsSuccess.detail", +"Failed to clone messages to new split": "conversation.cloneAncestorsError.detail", +"Messages cloned to new conversation successfully": "conversation.cloneAncestorsToNewConversationSuccess.detail", +"Failed to clone messages to new conversation": "conversation.cloneAncestorsToNewConversationError.detail", +"Archive": "conversation.archive.groupLabel", +"Orphaned Conversation": "conversation.archive.orphanProject", +"This conversation is archived. Unarchive it to continue the discussion.": "conversation.archive.bannerMessage", +"Sending a new message will automatically unarchive.": "conversation.archive.bannerHint", +"Unarchive": "conversation.archive.unarchiveAction", +"Conversation unarchived automatically.": "conversation.archive.autoUnarchivedToast", +"{count} conversation archived | {count} conversations archived": "conversation.archive.archivedToast", +"{count} conversation restored | {count} conversations restored": "conversation.archive.unarchivedToast", +"Unload archived items": "conversation.archive.unload", +"Archived items unloaded": "conversation.archive.unloaded", +"Unable to update archive status. Please try again.": "conversation.archive.error", +"Archive {item}": "conversation.archive.archiveMultiple", +"Export @:conversation.title as JSON": "conversationActions.exportConversation.title", +"Successfully exported conversations as JSON": "conversationActions.exportConversation.successMessage", +"Show All Splits": "conversationActions.showAllSplits", +"Save Splits As": "conversationActions.saveSplitsAs", +"New Single Split Chat": "conversationActions.newSingleSplitChat", +"Split Preset | Split Presets": "conversationActions.splitPreset", +"Save Splits As @:preset": "conversationActions.splitPresetForm.saveTitle", +"Edit Split @:preset {presetName}": "conversationActions.splitPresetForm.editTitle", +"@:preset Name": "conversationActions.splitPresetForm.presetName", +"@:preset Options": "conversationActions.splitPresetForm.presetOptions", +"@:select @:preset Options": "conversationActions.splitPresetForm.presetOptionsPlaceholder", +"Save @:preset": "conversationActions.splitPresetForm.savePreset", +"Split @:preset added": "conversationActions.splitPresetForm.successMessage.saveDetail", +"Split @:preset updated": "conversationActions.splitPresetForm.successMessage.editDetail", +"Failed to save Split @:preset": "conversationActions.splitPresetForm.errorMessage.saveDetail", +"Delete Split @:preset": "conversationActions.deleteSplitPresetConfirmation.header", +"Are you sure you want to delete {splitPresetName}? ": "conversationActions.deleteSplitPresetConfirmation.message", +"Split @:preset deleted": "conversationActions.deleteSplitPresetConfirmation.successMessage.detail", +"Compact Mode": "conversationActions.compactMode", +"@:enable @:conversationActions.compactMode": "conversationActions.enableCompactMode", +"@:disable @:conversationActions.compactMode": "conversationActions.disableCompactMode", +"Split Widths": "conversationActions.splitWidths.title", +"Slim": "conversationActions.splitWidths.slim", +"Balanced": "conversationActions.splitWidths.balanced", +"Roomy": "conversationActions.splitWidths.roomy", +"Spacious": "conversationActions.splitWidths.spacious", +"Full": "conversationActions.splitWidths.full", +"Response Configuration": "responseConfiguration.title", +"Select a preset...": "responseConfiguration.selectPresetPlaceholder", +"Save as Preset": "responseConfiguration.saveAsPreset", +"Common Settings": "responseConfiguration.commonSettings.title", +"Advanced Parameters": "responseConfiguration.advancedParameters.title", +"JSON object for advanced model parameters": "responseConfiguration.advancedParameters.description", +"": "responseConfiguration.advancedParameters.placeholder", +"Provider Options": "responseConfiguration.providerOptions.title", +"Provider-specific configuration": "responseConfiguration.providerOptions.description", +"Thinking Configuration": "responseConfiguration.thinkingConfig.title", +"Extended thinking configuration": "responseConfiguration.thinkingConfig.description", +"Provider may ignore or partially honor thinking settings": "responseConfiguration.thinkingConfig.notice", +"Custom Parameters": "responseConfiguration.customParameters.title", +"Provider may ignore or partially honor these": "responseConfiguration.customParameters.helper", +"custom_param": "responseConfiguration.customParameters.keyPlaceholder", +"value": "responseConfiguration.customParameters.valuePlaceholder", +"Delete Parameter": "responseConfiguration.customParameters.deleteConfirm.title", +"Delete custom parameter \"{param}\"?": "responseConfiguration.customParameters.deleteConfirm.message", +"Parameter key is required.": "responseConfiguration.customParameters.errors.missingKey", +"This key is reserved for built-in parameters.": "responseConfiguration.customParameters.errors.reserved", +"A parameter with this key already exists.": "responseConfiguration.customParameters.errors.duplicate", +"Invalid JSON": "responseConfiguration.json.invalid", +"Constraint Mode is On": "responseConfiguration.tooltips.constraintMode", +"Freeform Mode is On - no min/max limits": "responseConfiguration.tooltips.freeformMode", +"Expand for other options": "responseConfiguration.expandOtherOptions", +"Collapse other options": "responseConfiguration.collapseOtherOptions", +"Temperature": "responseConfiguration.parameters.temperature.label", +"Controls randomness (0=focused, 2=creative)": "responseConfiguration.parameters.temperature.helper", +"Top P": "responseConfiguration.parameters.topP.label", +"Probability mass to keep during nucleus sampling": "responseConfiguration.parameters.topP.helper", +"Top K": "responseConfiguration.parameters.topK.label", +"Limit token selection to the top K tokens": "responseConfiguration.parameters.topK.helper", +"Max Output Tokens": "responseConfiguration.parameters.maxOutputTokens.label", +"Maximum tokens for responses": "responseConfiguration.parameters.maxOutputTokens.helper", +"Maximum tokens for responses (limit {0})": "responseConfiguration.parameters.maxOutputTokens.helperWithLimit", +"Context Window Size": "responseConfiguration.parameters.numCtx.label", +"Maximum tokens accepted in the prompt": "responseConfiguration.parameters.numCtx.helper", +"Maximum tokens accepted in the prompt (limit {0})": "responseConfiguration.parameters.numCtx.helperWithLimit", +"Set to 0 to use model's maximum context size": "responseConfiguration.parameters.numCtx.llamaCppHint", +"Presence Penalty": "responseConfiguration.parameters.presencePenalty.label", +"Penalize new tokens based on whether they appear in the text so far": "responseConfiguration.parameters.presencePenalty.helper", +"Frequency Penalty": "responseConfiguration.parameters.frequencyPenalty.label", +"Penalize tokens based on frequency in the text so far": "responseConfiguration.parameters.frequencyPenalty.helper", +"Repeat Penalty": "responseConfiguration.parameters.repeatPenalty.label", +"Discourage repeating phrases": "responseConfiguration.parameters.repeatPenalty.helper", +"Repeat Last N": "responseConfiguration.parameters.repeatLastN.label", +"Context window for applying repeat penalty": "responseConfiguration.parameters.repeatLastN.helper", +"Min P": "responseConfiguration.parameters.minP.label", +"Minimum cumulative probability for token selection": "responseConfiguration.parameters.minP.helper", +"Mirostat": "responseConfiguration.parameters.mirostat.label", +"Stabilize perplexity dynamically": "responseConfiguration.parameters.mirostat.helper", +"Off": "responseConfiguration.parameters.mirostat.options.off", +"Mirostat 1.0": "responseConfiguration.parameters.mirostat.options.v1", +"Mirostat 2.0": "responseConfiguration.parameters.mirostat.options.v2", +"Mirostat Tau": "responseConfiguration.parameters.mirostatTau.label", +"Target surprise level (lower = safer)": "responseConfiguration.parameters.mirostatTau.helper", +"Mirostat Eta": "responseConfiguration.parameters.mirostatEta.label", +"Learning rate for Mirostat adjustment": "responseConfiguration.parameters.mirostatEta.helper", +"GPU Layers": "responseConfiguration.parameters.numGpu.label", +"Number of layers to offload to GPU": "responseConfiguration.parameters.numGpu.helper", +"Threads": "responseConfiguration.parameters.numThread.label", +"CPU threads to use for generation": "responseConfiguration.parameters.numThread.helper", +"Model Parameters": "modelParams.title", +"Max Output Tokens (Legacy)": "modelParams.maxTokens", +"Context Window @:size": "modelParams.numCtx", +"Number of GPU Layers": "modelParams.numGpu", +"@:select or insert a parameter": "modelParams.selectPlaceholder", +"@:select a @:preset": "modelParams.selectPresetPlaceholder", +"Save as @:preset": "modelParams.saveAsPreset", +"Add New Parameter": "modelParams.addParameter", +"Extra @:params": "modelParams.extraParams", +"Apply and Save as Model Default": "modelParams.applyAndSaveAsDefault", +"Save @:modelParams.params As Preset": "modelParams.savePresetForm.title", +"Failed to save params preset.": "modelParams.savePresetForm.errorMessage.detail", +"@:modelParams.params preset saved.": "modelParams.savePresetForm.successMessage.detail", +"Delete @:preset": "modelParams.deletePresetConfirm.title", +"Are you sure you want to delete {presetName}?": "modelParams.deletePresetConfirm.message", +"Failed to delete params preset.": "modelParams.deletePresetConfirm.errorMessage.detail", +"@:modelParams.params preset deleted.": "modelParams.deletePresetConfirm.successMessage.detail", +"Thinking Effort": "modelParams.thinkingEffort.label", +"Think Lightly": "modelParams.thinkingEffort.light", +"Think Moderately": "modelParams.thinkingEffort.moderate", +"Think Deeply": "modelParams.thinkingEffort.deep", +"Default": "modelParams.thinkingEffort.default", +"Dynamic": "modelParams.thinkingEffort.dynamic", +"Exclude": "modelParams.thinkingEffort.exclude", +"Split Options": "chatSplitActions.title", +"Add Split Chat": "chatSplitActions.addSplitChat", +"Hide Split": "chatSplitActions.hideSplit", +"Copy Split to New Conversation": "chatSplitActions.copySplitToNewConversation", +"Move Split to New Conversation": "chatSplitActions.moveSplitToNewConversation", +"Delete Split": "chatSplitActions.deleteSplit", +"Remove Split": "chatSplitActions.removeSplit", +"Split removed": "chatSplitActions.splitRemoved", +"Split reset": "chatSplitActions.splitReset", +"Split copied to new conversation": "chatSplitActions.copySplitToNewConversationSuccess.detail", +"Split moved to new conversation": "chatSplitActions.moveSplitToNewConversationSuccess.detail", +"Failed to copy split to new conversation": "chatSplitActions.copySplitToNewConversationError.detail", +"Failed to move split to new conversation": "chatSplitActions.moveSplitToNewConversationError.detail", +"Export Chat": "chatSplitActions.exportOrCopyChat.exportChat", +"Copy Chat": "chatSplitActions.exportOrCopyChat.copyChat", +"Active Branch as JSON": "chatSplitActions.exportOrCopyChat.activeBranchAsJson", +"Active Branch as Markdown": "chatSplitActions.exportOrCopyChat.activeBranchAsMarkdown", +"All Branches as JSON": "chatSplitActions.exportOrCopyChat.allBranchesAsJson", +"Successfully {action} chat as {format}": "chatSplitActions.exportOrCopyChat.successMessage", +"exported": "chatSplitActions.exportOrCopyChat.action.export", +"copied": "chatSplitActions.exportOrCopyChat.action.copy", +"Show All Hidden Messages": "chatSplitActions.showAllHiddenMessages.title", +"All hidden messages are now visible": "chatSplitActions.showAllHiddenMessages.successMessage.detail", +"Are you sure you want to delete this Split?": "chatSplitActions.deleteConfirmation.message", +"Message|Messages": "message.title", +"Message and Descendants": "message.currentMessageAndDescendants", +"Send on Enter": "message.sendOnEnter", +"Send Modifier": "message.sendModifier.label", +"Shift": "message.sendModifier.shift", +"Alt": "message.sendModifier.alt", +"Ctrl": "message.sendModifier.ctrl", +"Meta": "message.sendModifier.meta", +"Re-send user message": "message.resendUserMessage", +"Send as @:assistant Message": "message.sendAsAssistantMessage", +"Sending a message as \"Assistant\" lets you shape the conversation by adding AI responses yourself. The AI will continue as if it wrote that message. Useful for providing context or guiding responses.": "message.sendAsAssistantMessageHelp", +"Sent as Assistant Message": "message.sentAsAssistantBadge", +"Manually Edited": "message.manuallyEdited", +"@:bookmark Message | @:bookmark Messages": "message.renderingActions.bookmark", +"Remove @:bookmark | Remove Bookmarks": "message.renderingActions.removeBookmark", +"Delete Message | Delete Messages": "message.renderingActions.deleteMessage", +"Remove Message": "message.renderingActions.removeMessage", +"Regenerate assistant message as a new branch": "message.renderingActions.regenerateAssistantMessage", +"@:continue Generation": "message.renderingActions.continueGeneration", +"Use as prompt in new split": "message.renderingActions.useAsPromptInNewSplit", +"Fold Messages Above": "message.renderingActions.foldUp", +"Unfold Messages Above": "message.renderingActions.unfold", +"Clone with Ancestors to New Split": "message.renderingActions.cloneAncestorsToNewSplit", +"Clone with Ancestors to New Conversation": "message.renderingActions.cloneAncestorsToNewConversation", +"Extra Actions": "message.renderingActions.extraActions", +"No model selected. Please select a model to send a message": "message.noModelSelectedErrorMessage.detail", +"Delete Message": "message.currentMessageDeleteConfirmation.header", +"Are you sure you want to delete this message?": "message.currentMessageDeleteConfirmation.message", +"Delete Message and its descendants": "message.currentMessageAndDescendantsDeleteConfirmation.header", +"Are you sure you want to delete this message and all its descendants?": "message.currentMessageAndDescendantsDeleteConfirmation.message", +"Quick Commands": "slashCommands.title", +"No matching commands": "slashCommands.noMatches", +"Type \\ followed by command or alias": "slashCommands.hint", +"Regenerating message...": "slashCommands.executed.regenerate", +"Context shield applied": "slashCommands.executed.shield", +"Compressing with shield...": "slashCommands.executed.compress", +"Message @:bookmarked": "slashCommands.executed.bookmark", +"Copied to clipboard": "slashCommands.executed.copy", +"Continuing generation...": "slashCommands.executed.continue", +"Resending message...": "slashCommands.executed.resend", +"Shiftcuts": "shiftcutMode.title", +"Enable or disable the Shiftcuts feature. Unlike standard keyboard shortcuts, Shiftcuts are triggered by double-tapping the Shift key and then pressing another key to perform an action; including: 't' to open new split chat, 'e' to open environment selector, '1' to toggle sidebar, and 'm' to open minimap.": "shiftcutMode.description", +"URL Endpoint": "urlEndpoint", +"Give it a unique name": "giveUniqueNamePlaceholder", +"Duplicate or invalid {item} name. Please enter a unique name.": "duplicateName", +"You have not backed up your data, would you like to export your data for backup?": "manageData.firstBackupReminder", +"It has been 24hrs since your last backup, would you like to export your data for backup?": "manageData.scheduledBackupReminder", +"Storage may be cleared by the browser under storage pressure. We recommend backing up your data regularly.": "manageData.nonPersistentStorage", +"Export @:data": "manageData.exportData", +"Clear @:data": "manageData.clearData", +"Restore @:data": "manageData.restoreData", +"Drag and drop your data backup to restore from.": "manageData.dragAndDropExportedData", +"Restoring from backup file will replace all existing data. We recommend to export a backup first.": "manageData.restoreDataWarning", +"Failed to export data": "manageData.exportErrorMessage.detail", +"Backup @:data": "manageData.backupData", +"@:data exported": "manageData.exportSuccessMessage.detail", +"Failed to clear data": "manageData.clearErrorMessage.detail", +"@:data has been cleared": "manageData.clearSuccessMessage.detail", +"Enter '{string}' here": "manageData.confirmationActionPlaceholder", +"Please enter '{string}' below to proceed": "manageData.proceedWithConfirmationAction", +"@:warning": "manageData.invalidConfirmationString.summary", +"Invalid confirmation. Please enter '{string}' to proceed.": "manageData.invalidConfirmationString.detail", +"Are you sure you want to clear all data? This action cannot be undone.": "manageData.clearDataConfirmation.message", +"Please select a file to restore from": "manageData.restoreDataConfirmation.fileNotSelectedWarning.message", +"Are you sure you want to restore all data? This action will replace all existing data and cannot be undone. We recommend to export a backup first.": "manageData.restoreDataConfirmation.message", +"Restore": "manageData.restoreDataConfirmation.acceptLabel", +"@:data Imported": "manageData.importDataSuccessMessage.detail", +"Failed to Import @:data": "manageData.importDataErrorMessage.detail", +"Setup {item}": "setupItem.label", +"{item} setup completed": "setupItem.success", +"Could not setup {item}": "setupItem.failure", +"Welcome to Msty Studio!": "onboard.greeting", +"We'd need at least one model provider to get started.": "onboard.getStarted", +"Welcome to Msty!": "onboard.desktop.greeting", +"How would you like to get started?": "onboard.desktop.getStarted", +"Got Ollama/Msty Models?": "onboard.desktop.customLocation.title", +"Got MLX Models?": "onboard.desktop.customLocation.titleMLX", +"Got LLaMA.cpp Models?": "onboard.desktop.customLocation.titleLlamaCpp", +"You can use your existing Ollama or Msty models directly, if any, or specify a custom location. Note: we will still be using our own service to run those models.": "onboard.desktop.customLocation.description", +"If you don't have any MLX models yet, you can specify a custom location where you'd like to store them.": "onboard.desktop.customLocation.descriptionMLX", +"We found MLX models in your Hugging Face Hub cache! You can use them directly or specify a custom location.": "onboard.desktop.customLocation.descriptionMLXWithSwama", +"Specify a custom location where you'd like to store your GGUF models for LLaMA.cpp.": "onboard.desktop.customLocation.descriptionLlamaCpp", +"No location set": "onboard.desktop.customLocation.noLocationSet", +"Set Your Own": "onboard.desktop.customLocation.setYourOwn", +"Custom model locations are not available for MLX": "onboard.desktop.customLocation.notAvailableForMLX", +"Enter custom models path": "onboard.desktop.customLocation.placeholder", +"To get you started, {modelName} will be downloaded. You can choose a different model.": "onboard.desktop.setupLocalAI.description", +"Use models like DeepSeek R1, Meta Llama4, Microsoft Phi4, IBM Granite, Google Gemma, etc": "onboard.desktop.setupLocalAI.pros.item1", +"Use offline and keep your @:data private": "onboard.desktop.setupLocalAI.pros.item2", +"Models are free to download and use": "onboard.desktop.setupLocalAI.pros.item3", +"Install and use specialized models": "onboard.desktop.setupLocalAI.pros.item4", +"Needs extra storage and memory": "onboard.desktop.setupLocalAI.cons.item1", +"That's it!": "onboard.desktop.setupLocalAI.successMessage.summary", +"You can now start chatting with your models privately and securely.": "onboard.desktop.setupLocalAI.successMessage.detail", +"Error Setting Up @:localAIService": "onboard.desktop.setupLocalAI.errorMessage.summary", +"We could not set up @:localAIService{'.'} Please check the logs for more details. {errorMessage}": "onboard.desktop.setupLocalAI.errorMessage.detail", +"There was a permission issue setting up Local AI. You can rerun the app as an admin (not recommended) or consider installing the app as for a single user only (recommended).": "onboard.desktop.setupLocalAI.errorMessage.epermDetail", +"{errorMessage} Consider installing Local AI from archive files if you continue to get this error. Please visit https://docs.msty.studio/getting-started/onboarding": "onboard.desktop.setupLocalAI.errorMessage.abortDetail", +"Error Setting Up MLX Service": "onboard.desktop.setupMLX.errorMessage.summary", +"We could not set up MLX Service. Please check the logs for more details. {errorMessage}": "onboard.desktop.setupMLX.errorMessage.detail", +"To get you started, {modelName} will be downloaded. MLX is Apple's optimized framework for Apple Silicon.": "onboard.desktop.setupMLX.description", +"MLX is currently in experimental mode. It may have some limitations and rough edges. Please report any issues to the team.": "onboard.desktop.setupMLX.experimentalInfo", +"Optimized for Apple Silicon (M1, M2, M3, M4)": "onboard.desktop.setupMLX.pros.item1", +"Efficient memory usage with unified memory architecture": "onboard.desktop.setupMLX.pros.item2", +"Supports MLX, SafeTensors, and GGUF models": "onboard.desktop.setupMLX.pros.item3", +"Native performance on macOS": "onboard.desktop.setupMLX.pros.item4", +"Only available on Apple Silicon Macs": "onboard.desktop.setupMLX.cons.item1", +"Smaller model selection compared to Ollama": "onboard.desktop.setupMLX.cons.item2", +"MLX Setup Complete!": "onboard.desktop.setupMLX.successMessage.summary", +"You can now use MLX models with optimal performance on your Mac.": "onboard.desktop.setupMLX.successMessage.detail", +"Checking system compatibility...": "onboard.desktop.setupMLX.progress.checkingCompatibility", +"Downloading MLX server...": "onboard.desktop.setupMLX.progress.downloadingBinary", +"Starting MLX service...": "onboard.desktop.setupMLX.progress.startingService", +"Setting up MLX...": "onboard.desktop.setupMLX.progress.settingUp", +"Downloading Model: {progress}%": "onboard.desktop.setupMLX.progress.downloadProgress", +"LLaMA.cpp support is experimental and under active development": "onboard.desktop.setupLlamaCpp.experimentalInfo", +"Error Setting Up LLaMA.cpp Service": "onboard.desktop.setupLlamaCpp.errorMessage.summary", +"We could not set up LLaMA.cpp Service. Please check the logs for more details. {errorMessage}": "onboard.desktop.setupLlamaCpp.errorMessage.detail", +"To get you started, {modelName} will be downloaded. LLaMA.cpp provides efficient cross-platform AI inference.": "onboard.desktop.setupLlamaCpp.description", +"Works on Windows, macOS, and Linux": "onboard.desktop.setupLlamaCpp.pros.item1", +"Supports both CPU and GPU acceleration": "onboard.desktop.setupLlamaCpp.pros.item2", +"Efficient memory usage and fast inference": "onboard.desktop.setupLlamaCpp.pros.item3", +"Compatible with GGUF model format": "onboard.desktop.setupLlamaCpp.pros.item4", +"Requires desktop application": "onboard.desktop.setupLlamaCpp.cons.item1", +"Performance depends on hardware configuration": "onboard.desktop.setupLlamaCpp.cons.item2", +"LLaMA.cpp Setup Complete!": "onboard.desktop.setupLlamaCpp.successMessage.summary", +"You can now use LLaMA.cpp models with efficient performance on your system.": "onboard.desktop.setupLlamaCpp.successMessage.detail", +"Downloading LLaMA.cpp server...": "onboard.desktop.setupLlamaCpp.progress.downloadingBinary", +"Starting LLaMA.cpp service...": "onboard.desktop.setupLlamaCpp.progress.startingService", +"Setting up LLaMA.cpp...": "onboard.desktop.setupLlamaCpp.progress.settingUp", +"Downloading: {progress}%": "onboard.desktop.setupLlamaCpp.progress.downloadProgress", +"With most online providers, you'd need to get an API key from the provider's website. {findYourKey}": "onboard.desktop.addRemoteModelsProvider.description", +"Find your API key": "onboard.desktop.addRemoteModelsProvider.findYourKey", +"Use OpenAI, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Ollama, Remote Msty, etc": "onboard.desktop.addRemoteModelsProvider.pros.item1", +"Get started without downloading models": "onboard.desktop.addRemoteModelsProvider.pros.item2", +"Some vendors provide extra features like image generation, web search, etc": "onboard.desktop.addRemoteModelsProvider.pros.item3", +"Requires internet connection to chat": "onboard.desktop.addRemoteModelsProvider.cons.item1", +"Vendor charges may apply": "onboard.desktop.addRemoteModelsProvider.cons.item2", +"{count} model available | {count} models available": "onboard.modelsAvailableCount", +"{count} model added | {count} models added": "onboard.modelsAddedCount", +"Forget this provider": "onboard.forgetThisProvider", +"Let's Go!": "onboard.submitAndContinue", +"No @:localAI? Get @:remoteToolsConnector.title for 1-click Setup": "onboard.getSidecar", +"You are now ready to chat with one of the models from {providerName}.": "onboard.completedWithProvider.detail", +"Continue {service} Setup": "onboard.continueSetup", +"Enter your email": "login.enterEmail", +"Invalid email or something went wrong. Please try again.": "login.errorMessage", +"Login link sent to { email }": "login.successMessage", +"Model Hub": "modelHub.title", +"Model Providers": "modelHub.languageModelsProviders.title", +"Access models from the cloud or remote servers.": "modelHub.languageModelsProviders.subtitle", +"Models list is pulled automatically": "modelHub.languageModelsProviders.autoFetchModels", +"Add Provider": "modelHub.languageModelsProviders.addLanguageModelsProvider", +"Use OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Msty, Remote Ollama, etc.": "modelHub.languageModelsProviders.prosAndCons.pros[0]", +"Get started quickly": "modelHub.languageModelsProviders.prosAndCons.pros[1]", +"No download required": "modelHub.languageModelsProviders.prosAndCons.pros[2]", +"Delete Provider": "modelHub.languageModelsProviders.deleteConfirmation.header", +"Are you sure you want to delete {providerName}?": "modelHub.languageModelsProviders.deleteConfirmation.message", +"Provider deleted": "modelHub.languageModelsProviders.deleteConfirmation.successMessage.detail", +"Error": "modelHub.languageModelsProviders.deleteConfirmation.errorMessage.summary", +"Failed to delete provider": "modelHub.languageModelsProviders.deleteConfirmation.errorMessage.detail", +"Copy to Other Workspace": "modelHub.languageModelsProviders.syncProviderWithWorkspaceForm.titleNew", +"Copy/Sync to Other Workspaces": "modelHub.languageModelsProviders.syncProviderWithWorkspaceForm.titleUpdate", +"Copy this provider to one or more workspaces.": "modelHub.languageModelsProviders.syncProviderWithWorkspaceForm.descriptionNew", +"Sync this provider to one or more workspaces. If this provider was copied before, it will be updated. If not, it will be added.": "modelHub.languageModelsProviders.syncProviderWithWorkspaceForm.descriptionUpdate", +"@:select Workspaces": "modelHub.languageModelsProviders.syncProviderWithWorkspaceForm.selectWorkspaces", +"Available Workspaces": "modelHub.languageModelsProviders.syncProviderWithWorkspaceForm.availableWorkspaces", +"Update Provider": "modelHub.languageModelsProviders.providerForm.updateTitle", +"New Language Models Provider": "modelHub.languageModelsProviders.providerForm.newHeader", +"Edit Language Model Provider": "modelHub.languageModelsProviders.providerForm.editHeader", +"Models Provider": "modelHub.languageModelsProviders.providerForm.modelsProvider", +"Model ID": "modelHub.languageModelsProviders.providerForm.modelId", +"Model Name": "modelHub.languageModelsProviders.providerForm.modelName", +"Provider Name": "modelHub.languageModelsProviders.providerForm.providerName", +"Provider URL": "modelHub.languageModelsProviders.providerForm.providerUrl", +"Provider Token": "modelHub.languageModelsProviders.providerForm.providerToken", +"Save Provider": "modelHub.languageModelsProviders.providerForm.saveProvider", +"@:select Provider": "modelHub.languageModelsProviders.providerForm.selectProvider", +"Give it a name (optional)": "modelHub.languageModelsProviders.providerForm.namePlaceholder", +"@:select Models": "modelHub.languageModelsProviders.providerForm.selectModels", +"Available Models": "modelHub.languageModelsProviders.providerForm.availableModels", +"Add Custom Model": "modelHub.languageModelsProviders.providerForm.addCustomModel", +"Inference Endpoint (must start with http:// or https://)": "modelHub.languageModelsProviders.providerForm.inferenceEndpoint", +"Base URL": "modelHub.languageModelsProviders.providerForm.baseURL", +"Resource Name (will be ignored if Base URL is set)": "modelHub.languageModelsProviders.providerForm.resourceName", +"API @:version": "modelHub.languageModelsProviders.providerForm.apiVersion", +"AWS Region": "modelHub.languageModelsProviders.providerForm.region", +"Access Key ID": "modelHub.languageModelsProviders.providerForm.accessKeyId", +"Secret Access Key": "modelHub.languageModelsProviders.providerForm.secretAccessKey", +"Session Token (Optional)": "modelHub.languageModelsProviders.providerForm.sessionToken", +"Not all models have been tested with Msty and it may not support all the models available in the provider.": "modelHub.languageModelsProviders.providerForm.notAllModelsCompatible", +"Click 'Fetch Models' to retrieve available models from the provider (an API key may be required), or manually add a model below.": "modelHub.languageModelsProviders.providerForm.enterAndManuallyFetchModels", +"Enter your API key to try to retrieve all the available models from {providerName}, or manually add a custom model.": "modelHub.languageModelsProviders.providerForm.enterAndFetchModels", +"Fetch Models": "modelHub.languageModelsProviders.providerForm.fetchModels", +"All Models": "modelHub.languageModelsProviders.providerForm.modelsFilter.all", +"Unselected": "modelHub.languageModelsProviders.providerForm.modelsFilter.unselected", +"All Purposes": "modelHub.languageModelsProviders.providerForm.purposeFilter.all", +"Search models...": "modelHub.languageModelsProviders.providerForm.searchInModels", +"You must have CORS enabled in LM Studio to work with Msty": "modelHub.languageModelsProviders.providerForm.lmsCorsNote", +"Most of the OpenAI compatible providers endpoint need /v1 prefix e.g. https://example.com/v1 If you are running into issues, try appending /v1 to the endpoint.": "modelHub.languageModelsProviders.providerForm.openAICompatibleNote", +"Models Provider {providerName} added": "modelHub.languageModelsProviders.providerForm.successMessage.addDetail", +"Models Provider {providerName} updated": "modelHub.languageModelsProviders.providerForm.successMessage.updateDetail", +"Failed to add Provider": "modelHub.languageModelsProviders.providerForm.errorMessage.addDetail", +"Failed to update Provider": "modelHub.languageModelsProviders.providerForm.errorMessage.updateDetail", +"Using long-term credentials for Amazon Bedrock is not recommended.": "modelHub.languageModelsProviders.providerForm.bedrockLongTermCredsWarning", +"e.g. us-east-1": "modelHub.languageModelsProviders.providerForm.awsRegionExample", +"Failed to update provider visibility": "modelHub.languageModelsProviders.toggleVisibility.errorMessage.detail", +"{provider} is now {visibility}": "modelHub.languageModelsProviders.toggleVisibility.successMessage.detail", +"Models Count": "modelHub.languageModelsProviders.modelsCount", +"Show in Model Selector": "modelHub.languageModelsProviders.showInSelector", +"No models available for this provider": "modelHub.languageModelsProviders.noModels", +"Model updated successfully": "modelHub.languageModelsProviders.modelUpdated", +"Failed to update model": "modelHub.languageModelsProviders.modelUpdateError", +"Add New": "modelHub.languageModelsProviders.addNewProvider", +"@:remoteToolsConnector.title Proxy @:localAI Endpoint": "modelHub.sidecarLocalAIProxyEndpoint.title", +"Make sure @:remoteToolsConnector.title is running and accessible at the provided URL via Tunneling. Copy and paste the full Tunnel Connection Info with token and URL.": "modelHub.sidecarLocalAIProxyEndpoint.description", +"Make sure Msty Desktop is running with remote connections enabled.": "modelHub.mstyRemoteEndpoint.description", +"Learn how to enable remote connections": "modelHub.mstyRemoteEndpoint.learnMore", +"This service runs whenever the app itself is up and running. You may have to update the port number if Local AI port got changed. Otherwise, it's best to leave it as is.": "modelHub.mstyLocalEndpoint.description", +"When using self-hosted Ollama, make sure Ollama is running and accessible at the provided URL. You must add https://msty.studio to the allowed origins when starting Ollama service.": "modelHub.ollamaRemoteEndpoint.description", +"e.g. http://localhost:11434 or https://ollama.com": "modelHub.ollamaRemoteEndpoint.placeholder", +"This provider is used to run MLX models on Apple Silicon Macs. The endpoint is auto-corrected to make sure it matches with your local MLX setup. You can change it temporarily if needed.": "modelHub.mlxEndpoint.description", +"This provider is used to run LLaMA.cpp models. Most likely, you won't need to change the default endpoint. If you do, make sure LLaMA.cpp service is running and accessible at the provided URL.": "modelHub.llamacppEndpoint.description", +"@:localAI Models": "modelHub.localModels.title", +"There are no compatible providers available to manage Local Models. Please add at least one provider of type Msty Remote or Ollama Remote to use Local Models.": "modelHub.localModels.noCompatibleProviders", +"{count} Active Download | {count} Active Downloads": "modelHub.localModels.activeDownloads", +"Featured Models": "modelHub.localModels.featured.title", +"Installed Models": "modelHub.localModels.installed.title", +"Or Install model by tag e.g. {example}": "modelHub.localModels.customOllamaModelPlaceholder", +"Already Installed": "modelHub.localModels.alreadyInstalledErrorMessage.summary", +"Model {modelName} is already installed": "modelHub.localModels.alreadyInstalledErrorMessage.detail", +"Abort Installation of {modelName}": "modelHub.localModels.abortInstalling.title", +"Installation of {modelName} aborted": "modelHub.localModels.abortInstalling.successMessage.detail", +"Uninstall Model": "modelHub.localModels.deleteConfirmation.header", +"Are you sure you want to uninstall {modelName}?": "modelHub.localModels.deleteConfirmation.message", +"Model removed": "modelHub.localModels.deleteConfirmation.successMessage.detail", +"Failed to uninstall model": "modelHub.localModels.deleteConfirmation.errorMessage.detail", +"Model {modelName} is ready to use": "modelHub.localModels.modelInstall.successMessage.detail", +"Failed to install model {modelName}": "modelHub.localModels.modelInstall.errorMessage.detail", +"{modelName} requires a newer version of Local AI. Please update to the latest version from Settings > Local AI > Service Version > ... > Force Update Local AI Service": "modelHub.localModels.modelInstall.errorMessage.newerVersion", +"Ollama Models": "modelHub.localModels.ollamaModels.title", +"Hugging Face Models": "modelHub.localModels.huggingfaceModels.title", +"Search by author, model, or paste a Hugging Face repo URL": "modelHub.localModels.huggingfaceModels.searchPlaceholder", +"Find models by name, author, or URL. Or get started with one of the model families below.": "modelHub.localModels.huggingfaceModels.searchPlaceholderAlt", +"Searching for models...": "modelHub.localModels.huggingfaceModels.searching", +"Import GGUF": "modelHub.localModels.ggufImport.tabTitle", +"Import GGUF Model": "modelHub.localModels.ggufImport.title", +"Select a GGUF model file from your file system to import into {providerLabel}.": "modelHub.localModels.ggufImport.description", +"Active Imports": "modelHub.localModels.ggufImport.activeImports", +"No file selected": "modelHub.localModels.ggufImport.noFileSelected", +"Click the button below to select a GGUF file": "modelHub.localModels.ggufImport.selectGgufFilePrompt", +"Drag and drop a GGUF file here, or click the button below": "modelHub.localModels.ggufImport.dragDropOrClick", +"Drop file here": "modelHub.localModels.ggufImport.dropFileHere", +"Release to select file": "modelHub.localModels.ggufImport.releaseToUpload", +"Select GGUF File": "modelHub.localModels.ggufImport.selectGgufFile", +"Choose Different File": "modelHub.localModels.ggufImport.chooseDifferentFile", +"Import Model": "modelHub.localModels.ggufImport.importModel", +"e.g., my-custom-model": "modelHub.localModels.ggufImport.modelNamePlaceholder", +"This will be the name you use to reference the model in conversations.": "modelHub.localModels.ggufImport.modelNameDescription", +"Remove file": "modelHub.localModels.ggufImport.removeFile", +"Dismiss": "modelHub.localModels.ggufImport.dismissJob", +"Use symlink (saves disk space)": "modelHub.localModels.ggufImport.useSymlink", +"Creates a symbolic link instead of copying the file. Only available for local servers.": "modelHub.localModels.ggufImport.symlinkDescription", +"Calculating file digest": "modelHub.localModels.ggufImport.process.calculatingDigest", +"Uploading file": "modelHub.localModels.ggufImport.process.uploadingFile", +"Creating symlink": "modelHub.localModels.ggufImport.process.creatingSymlink", +"Creating model": "modelHub.localModels.ggufImport.process.creatingModel", +"Model {modelName} imported successfully": "modelHub.localModels.ggufImport.success", +"File": "modelHub.localModels.ggufImport.labels.file", +"Uploading": "modelHub.localModels.ggufImport.status.uploading", +"Completed": "modelHub.localModels.ggufImport.status.completed", +"Please select a valid GGUF file": "modelHub.localModels.ggufImport.errors.invalidFile", +"Import Safetensors": "modelHub.localModels.safetensorsImport.tabTitle", +"Import Safetensors Model": "modelHub.localModels.safetensorsImport.title", +"Select a directory containing safetensors model weights to import into {providerLabel}. Supported architectures include Gemma, Llama, Mistral, and Phi.": "modelHub.localModels.safetensorsImport.description", +"No directory selected": "modelHub.localModels.safetensorsImport.noDirectorySelected", +"The directory should contain safetensors files and a config.json": "modelHub.localModels.safetensorsImport.selectDirectoryHint", +"Select Safetensors Directory": "modelHub.localModels.safetensorsImport.selectDirectoryTitle", +"Select Directory": "modelHub.localModels.safetensorsImport.selectDirectory", +"Choose Different Directory": "modelHub.localModels.safetensorsImport.chooseDifferentDirectory", +"Remove directory": "modelHub.localModels.safetensorsImport.removeDirectory", +"Scanning directory": "modelHub.localModels.safetensorsImport.process.scanningDirectory", +"Processing file {current} of {total}": "modelHub.localModels.safetensorsImport.process.processingFile", +"Creating model from safetensors": "modelHub.localModels.safetensorsImport.process.creatingModel", +"Directory": "modelHub.localModels.safetensorsImport.labels.directory", +"Uploading files": "modelHub.localModels.safetensorsImport.status.uploading", +"files selected": "modelHub.localModels.safetensorsImport.filesSelected", +"Safetensors import is only available in the desktop app": "modelHub.localModels.safetensorsImport.errors.desktopOnly", +"Failed to select directory": "modelHub.localModels.safetensorsImport.errors.selectFailed", +"No valid safetensors files found in the selected directory": "modelHub.localModels.safetensorsImport.errors.noValidFiles", +"LLaMA.cpp Models": "modelHub.llamacppModels.title", +"{count} Active LLaMA.cpp Download | {count} Active LLaMA.cpp Downloads": "modelHub.llamacppModels.activeDownloads", +"LLaMA.cpp model {modelName} is already installed": "modelHub.llamacppModels.alreadyInstalledErrorMessage.detail", +"Model Ready": "modelHub.llamacppModels.installSuccessMessage.summary", +"LLaMA.cpp model {modelName} is ready to use": "modelHub.llamacppModels.installSuccessMessage.detail", +"Installation Failed": "modelHub.llamacppModels.installErrorMessage.summary", +"Failed to install LLaMA.cpp model {modelName}": "modelHub.llamacppModels.installErrorMessage.detail", +"LLaMA.cpp model {modelName} installed": "modelHub.llamacppModels.modelInstall.successMessage.detail", +"Downloading of LLaMA.cpp model {modelName} was aborted": "modelHub.llamacppModels.modelInstall.abortedMessage.detail", +"Failed to cancel LLaMA.cpp model download": "modelHub.llamacppModels.abortInstallErrorMessage.detail", +"Cancelled download of LLaMA.cpp model {modelName}": "modelHub.llamacppModels.abortInstallSuccessMessage.detail", +"Uninstall Failed": "modelHub.llamacppModels.uninstallErrorMessage.summary", +"Failed to uninstall LLaMA.cpp model {modelName}": "modelHub.llamacppModels.uninstallErrorMessage.detail", +"Model Removed": "modelHub.llamacppModels.uninstallSuccessMessage.summary", +"Uninstalled LLaMA.cpp model {modelName}": "modelHub.llamacppModels.uninstallSuccessMessage.detail", +"Uninstall LLaMA.cpp Model": "modelHub.llamacppModels.uninstallConfirmationMessage.summary", +"Featured LLaMA.cpp Models": "modelHub.llamacppModels.llamacppFeaturedModels.title", +"Installed LLaMA.cpp Models": "modelHub.llamacppModels.llamacppInstalledModels.title", +"LLaMA.cpp Community Models": "modelHub.llamacppModels.llamacppCommunityModels.title", +"Browse, search, and install GGUF models directly from Hugging Face to your local LLaMA.cpp models folder.": "modelHub.llamacppModels.llamacppCommunityModels.description", +"Search LLaMA.cpp Community Models": "modelHub.llamacppModels.llamacppCommunityModels.searchTitle", +"Search LLaMA.cpp models from Hugging Face": "modelHub.llamacppModels.llamacppCommunityModels.searchPlaceholder", +"Find LLaMA.cpp compatible GGUF models or pick one of the featured model families below.": "modelHub.llamacppModels.llamacppCommunityModels.searchPlaceholderAlt", +"Searching for LLaMA.cpp models...": "modelHub.llamacppModels.llamacppCommunityModels.searching", +"MLX Models": "modelHub.mlxModels.title", +"MLX models are only supported on Apple Silicon Macs (M1, M2, M3, M4, etc.). Your current device is not compatible.": "modelHub.mlxModels.notAppleSilicon", +"There are no compatible MLX providers available. Please add at least one MLX provider to use MLX Models.": "modelHub.mlxModels.noCompatibleProviders", +"{count} Active MLX Download | {count} Active MLX Downloads": "modelHub.mlxModels.activeDownloads", +"Learn More about MLX": "modelHub.mlxModels.learnMore", +"Featured MLX Models": "modelHub.mlxModels.featured.title", +"Installed MLX Models": "modelHub.mlxModels.installed.title", +"MLX Model {modelName} is already installed": "modelHub.mlxModels.alreadyInstalledErrorMessage.detail", +"Uninstall MLX Model": "modelHub.mlxModels.deleteConfirmation.header", +"MLX Model removed": "modelHub.mlxModels.deleteConfirmation.successMessage.detail", +"Failed to uninstall MLX model": "modelHub.mlxModels.deleteConfirmation.errorMessage.detail", +"MLX Model {modelName} is ready to use": "modelHub.mlxModels.modelInstall.successMessage.detail", +"Failed to install MLX model {modelName}": "modelHub.mlxModels.modelInstall.errorMessage.detail", +"Downloading of MLX model {modelName} was aborted": "modelHub.mlxModels.modelInstall.abortedMessage.detail", +"MLX Community Models": "modelHub.mlxModels.mlxCommunityModels.title", +"Search MLX Community Models": "modelHub.mlxModels.mlxCommunityModels.searchTitle", +"Search MLX models from HuggingFace mlx-community": "modelHub.mlxModels.mlxCommunityModels.searchPlaceholder", +"Find MLX optimized models from HuggingFace. Or get started with one of the model families below.": "modelHub.mlxModels.mlxCommunityModels.searchPlaceholderAlt", +"Searching for MLX models...": "modelHub.mlxModels.mlxCommunityModels.searching", +"Sticky Prompt": "stickyPrompt.title", +"Disable Sticky Prompt": "stickyPrompt.disableStickyPrompt", +"Edit Sticky Prompt": "stickyPrompt.editDialog.title", +"When a 'sticky' prompt is pinned, it is added to the beginning of each new message while ignoring any previous ones. This effectively makes the conversation focused on one active context. System prompt is always included in the context.": "stickyPrompt.editDialog.description", +"@:context Shield": "contextShield.title", +"Enable @:contextShield.title": "contextShield.enableContextShield", +"Enable @:contextShield.title{'.'} Hold Option/Alt to @:contextShield.title all synced splits.": "contextShield.enableContextShieldWithSplitsSync", +"Remove @:contextShield.title": "contextShield.removeContextShield", +"Disable @:contextShield.title{'.'} Hold Option/Alt to remove @:contextShield.title from all synced splits.": "contextShield.removeContextShieldWithSplitsSync", +"Break @:context": "contextShield.breakContext", +"Custom @:context": "contextShield.customContext", +"Generate @:context @:summary": "contextShield.generateContextSummary", +"@:context @:summary": "contextShield.contextSummary", +"Edit @:context @:summary": "contextShield.editContextSummary", +"Regenerate @:context @:summary": "contextShield.regenerateContextSummary", +"Clear @:context @:summary": "contextShield.clearContextSummary", +"This summary is generated from the context of the conversations above and is included in the context when generating new messages below this shield.": "contextShield.summaryDescriptionInfoHeader", +"@:contextShield.title with @:summary": "contextShield.contextShieldWithSummary", +"Data": "data", +"Advanced Configurations": "advancedConfigurations", +"Application Info": "applicationInfo.title", +"App Version": "applicationInfo.appVersion.title", +"The latest updates are checked periodically and you will be notified when a new update is available. You can also manually check for updates, which will then automatically install any available updates.": "applicationInfo.appVersion.description", +"Check and Apply Updates": "applicationInfo.appVersion.checkForUpdates", +"Enable Auto Updates": "applicationInfo.appVersion.enableAutoUpdates", +"Disable Auto Updates": "applicationInfo.appVersion.disableAutoUpdates", +"View Changelog": "applicationInfo.appVersion.viewChangelog", +"Checking for updates...": "applicationInfo.appVersion.checkingForUpdates", +"Failed to check for updates": "applicationInfo.appVersion.errorCheckingUpdates", +"Auto updates enabled": "applicationInfo.appVersion.autoUpdatesEnabled", +"Auto updates disabled": "applicationInfo.appVersion.autoUpdatesDisabled", +"New update available": "applicationInfo.appVersion.updateAvailable", +"Downloading update...": "applicationInfo.appVersion.updateDownloading", +"You're on the latest version": "applicationInfo.appVersion.noUpdatesAvailable", +"Models Info": "applicationInfo.modelsInfo.title", +"Update your local model metadata. This information includes details about each model, but not the model files themselves. This applies to both locally stored and online models.": "applicationInfo.modelsInfo.description", +"Fetch Latest Models Info": "applicationInfo.modelsInfo.fetchLatest", +"Models info updated successfully": "applicationInfo.modelsInfo.updated", +"Failed to update models info": "applicationInfo.modelsInfo.errorUpdating", +"App Settings": "applicationInfo.appSettings.title", +"Resetting app settings to their defaults can help resolve potential issues. This will restore the default user preferences, such as appearance and models path, but will not delete any data, including chats or downloaded/imported models.": "applicationInfo.appSettings.description", +"Reset App Settings": "applicationInfo.appSettings.resetApp", +"Are you sure you want to reset all app settings to their defaults? This will restore default preferences but won't delete your data.": "applicationInfo.appSettings.resetConfirm.message", +"App settings reset successfully": "applicationInfo.appSettings.resetSuccess", +"Failed to reset app settings": "applicationInfo.appSettings.resetError", +"Data Paths": "applicationInfo.dataPaths.title", +"All data, including models, conversations, settings, and logs, are stored locally on your device. Only modify the contents of these directories if you are familiar with the application's file structure.": "applicationInfo.dataPaths.description", +"App Data": "applicationInfo.dataPaths.appData", +"App Logs": "applicationInfo.dataPaths.appLogs", +"Open in Finder": "applicationInfo.dataPaths.openInFinder", +"Help & Discussions": "applicationInfo.helpAndDiscussions.title", +"Connect with our community on Discord to get support, share your feedback, and stay informed.": "applicationInfo.helpAndDiscussions.description", +"Say Hi!": "applicationInfo.helpAndDiscussions.sayHi", +"View Docs": "applicationInfo.helpAndDiscussions.viewDocs", +"Log Viewer": "logViewer.title", +"View and analyze application logs in real-time. Use filters and search to troubleshoot issues efficiently.": "logViewer.description", +"Search Logs...": "logViewer.searchPlaceholder", +"Refresh Logs": "logViewer.refresh", +"Stop Auto-Refresh": "logViewer.autoRefreshOn", +"Enable Auto-Refresh": "logViewer.autoRefreshOff", +"Stop Auto-Scroll": "logViewer.pause", +"Resume Auto-Scroll": "logViewer.resume", +"Copy Logs to Clipboard": "logViewer.copy", +"Download Logs": "logViewer.download", +"Clear Logs Display": "logViewer.clearTemporarily", +"Clear Logs File": "logViewer.clearPermanently", +"Show All Logs": "logViewer.showAllLogs", +"Clear Log File": "logViewer.clearPermanentlyConfirmation.header", +"Are you sure you want to clear the log file? This will permanently delete all log entries.": "logViewer.clearPermanentlyConfirmation.message", +"Loading logs...": "logViewer.loading", +"No logs available": "logViewer.noLogs", +"No logs match the current filters": "logViewer.noMatchingLogs", +"{count} total line | {count} total lines": "logViewer.totalLines", +"{count} filtered line | {count} filtered lines": "logViewer.filteredLines", +"Logs copied to clipboard": "logViewer.copiedToClipboard", +"Logs downloaded successfully": "logViewer.downloaded", +"Log file cleared successfully": "logViewer.clearedPermanently", +"Failed to load logs": "logViewer.errorLoading", +"Failed to copy logs": "logViewer.errorCopying", +"Failed to download logs": "logViewer.errorDownloading", +"Failed to clear logs": "logViewer.errorClearing", +"All Levels": "logViewer.levels.all", +"Info": "logViewer.levels.info", +"Debug": "logViewer.levels.debug", +"Notifications": "notifications.title", +"Review and manage application notifications including errors, warnings, and info events.": "notifications.description", +"Search Notifications...": "notifications.searchPlaceholder", +"Searching all notifications in database": "notifications.searchingAllLogs", +"Refresh Notifications": "notifications.refresh", +"Auto-Refresh Enabled": "notifications.autoRefreshOn", +"Copy All to Clipboard": "notifications.copy", +"Copy Notification": "notifications.copyLog", +"Download Notifications": "notifications.download", +"Clear All Notifications": "notifications.clearPermanently", +"Clear Notifications": "notifications.clearPermanentlyConfirmation.header", +"Are you sure you want to permanently delete all notifications? This action cannot be undone.": "notifications.clearPermanentlyConfirmation.message", +"Loading notifications...": "notifications.loading", +"Loading more...": "notifications.loadingMore", +"End of list": "notifications.endOfList", +"No notifications available": "notifications.noLogs", +"{count} notification | {count} notifications": "notifications.totalLogs", +"Showing {count}": "notifications.displayedLogs", +"Notification copied to clipboard": "notifications.copiedToClipboard", +"Notifications downloaded successfully": "notifications.downloaded", +"Notifications cleared successfully": "notifications.clearedPermanently", +"Notification deleted successfully": "notifications.deleted", +"Failed to load notifications": "notifications.errorLoading", +"Failed to copy notification": "notifications.errorCopying", +"Failed to download notifications": "notifications.errorDownloading", +"Failed to clear notifications": "notifications.errorClearing", +"Failed to delete notification": "notifications.errorDeleting", +"Purge Notifications": "notifications.purge.label", +"Older than 1 day": "notifications.purge.olderThan1Day", +"Older than 7 days": "notifications.purge.olderThan7Days", +"Older than 15 days": "notifications.purge.olderThan15Days", +"Older than 30 days": "notifications.purge.olderThan30Days", +"Are you sure you want to delete notifications older than {days} days? This action cannot be undone.": "notifications.purge.confirmMessageDays", +"Purge": "notifications.purge.purge", +"Notifications purged successfully": "notifications.purge.purged", +"Failed to purge notifications": "notifications.purge.errorPurging", +"Errors": "notifications.levels.error", +"Warnings": "notifications.levels.warn", +"Show extra items": "sidebar.showExtraItems", +"Hide extra items": "sidebar.hideExtraItems", +"Models & Prompts": "sidebar.groups.modelsPrompts", +"Personas & Tools": "sidebar.groups.personasTools", +"Knowledge & Insights": "sidebar.groups.knowledgeInsights", +"System": "sidebar.groups.system", +"Version {version}": "sidebar.appUpdater.version", +"Restart to Apply Updates": "sidebar.appUpdater.restartToApply", +"Restart Now": "sidebar.appUpdater.restart", +"Downloading Update...": "sidebar.appUpdater.downloading", +"Opening Changelog...": "sidebar.appUpdater.openingChangelog", +"Update error - click for details": "sidebar.appUpdater.errorHint", +"Update ready - restart to apply": "sidebar.appUpdater.readyHint", +"Downloading update... {percent}%": "sidebar.appUpdater.downloadingHint", +"Update Error": "sidebar.appUpdater.errorDialog.header", +"An error occurred while updating: {error}": "sidebar.appUpdater.errorDialog.message", +"Download Manually": "sidebar.appUpdater.errorDialog.downloadManually", +"Show in Finder": "showInNativeFileManager.mac", +"Show in File Explorer": "showInNativeFileManager.win", +"Show in File Manager": "showInNativeFileManager.lin", +"Settings": "settings.title", +"General": "settings.general", +"Default Prompts": "settings.defaultPrompts", +"These prompts shape how titles are generated, search queries are built, knowledge is retrieved, and context is summarized. Changes are saved to this device’s global settings (master database) and apply across all workspaces (not per workspace).": "settings.prompts.description", +"Available Prompts": "settings.prompts.availablePrompts", +"Customized": "settings.prompts.customized", +"{count} customized": "settings.prompts.customizedCount", +"Using Custom": "settings.prompts.usingCustom", +"Using Default": "settings.prompts.usingDefault", +"Click to edit prompt": "settings.prompts.clickToEdit", +"Variables": "settings.prompts.variables", +"Last modified": "settings.prompts.lastModified", +"Select a prompt to customize": "settings.prompts.selectPrompt", +"Clear Content": "settings.prompts.clearContent", +"Reset to Default": "settings.prompts.resetToDefault", +"Insert from Library": "settings.prompts.insertFromLibrary", +"Save Changes": "settings.prompts.saveChanges", +"Discard Changes": "settings.prompts.discardChanges", +"Content Generation": "settings.prompts.categories.generation", +"Search & Synthesis": "settings.prompts.categories.search", +"Analysis & Extraction": "settings.prompts.categories.analysis", +"License and Access": "settings.licenseAndAccess", +"Font @:size": "settings.fontSize", +"Real-Time Data Search": "settings.defaultRTD.sectionTitle", +"Default RTD Provider": "settings.defaultRTD.title", +"Choose the default Real-Time Data search provider that will be used when creating new conversations.": "settings.defaultRTD.description", +"{provider} set as default RTD provider": "settings.defaultRTD.saved", +"Failed to save default RTD provider": "settings.defaultRTD.saveError", +"No RTD providers available": "settings.defaultRTD.noProvidersAvailable", +"Configure advanced options for": "settings.defaultRTD.configureLabel", +"Configuration saved for {provider}": "settings.defaultRTD.configSaved", +"Default RTD Mode": "settings.defaultRTD.mode.title", +"Set the default RTD mode for new conversations.": "settings.defaultRTD.mode.description", +"New conversations will use push mode by default.": "settings.defaultRTD.mode.pushHint", +"New conversations will use pull mode by default.": "settings.defaultRTD.mode.pullHint", +"Pull mode requires an Aurum plan.": "settings.defaultRTD.mode.pullGuardHint", +"Failed to save default RTD mode": "settings.defaultRTD.mode.saveError", +"Teams": "settings.teams", +"Appearance": "settings.appearance", +"Auto-archive inactive conversations": "settings.conversation.autoArchive.title", +"Automatically move inactive conversations to Archive after the selected number of days. Use Enable auto-archive to turn it on. Run archive now performs a one-time cleanup using the current day threshold.": "settings.conversation.autoArchive.description", +"Enable auto-archive": "settings.conversation.autoArchive.enableLabel", +"Disable auto-archive": "settings.conversation.autoArchive.disableLabel", +"Archived conversations stay accessible from the Archive section.": "settings.conversation.autoArchive.enableHint", +"Archive after": "settings.conversation.autoArchive.daysLabel", +"day | days": "settings.conversation.autoArchive.suffix", +"Enable or disable from the menu": "settings.conversation.autoArchive.disabledHint", +"Run archive now": "settings.conversation.autoArchive.runNowLabel", +"Enable auto-archive and set days > 0 to run": "settings.conversation.autoArchive.runNowDisabled", +"Auto-archive set to {days} day | Auto-archive set to {days} days": "settings.conversation.autoArchive.daysSaved", +"Auto-archive enabled": "settings.conversation.autoArchive.enabledToast", +"Auto-archive disabled": "settings.conversation.autoArchive.disabledToast", +"Setup {service}": "settings.setupService", +"Workspace Lock & Secrets Encryption": "settings.workspaceLock.title", +"Lock your workspace with a passphrase so sensitive settings and API keys stay hidden until you unlock. Unlock once per session, rotate the passphrase anytime, or turn protection off if you change your mind.": "settings.workspaceLock.description", +"Passphrase-based encryption is experimental. Please keep a backup of your secrets before enabling.": "settings.workspaceLock.experimentalInfo", +"Status:": "settings.workspaceLock.status", +"Locked": "settings.workspaceLock.locked", +"Unlocked": "settings.workspaceLock.unlocked", +"Lock": "settings.workspaceLock.lock", +"Unlock": "settings.workspaceLock.unlock", +"Workspace is protected. Unlock with your passphrase.": "settings.workspaceLock.protectedSection", +"Unprotected": "settings.workspaceLock.unprotected", +"Workspace lock is not configured. Set a passphrase first.": "settings.workspaceLock.unprotectedToast", +"Enter Passphrase": "settings.workspaceLock.unlockTitle", +"Workspace unlocked for this session": "settings.workspaceLock.toastUnlocked", +"Workspace locked": "settings.workspaceLock.toastLocked", +"Disable Encryption": "settings.workspaceLock.disable", +"Enter passphrase to decrypt and disable encryption.": "settings.workspaceLock.disableHelp", +"Disable Protection": "settings.workspaceLock.disableProtection", +"Enter your passphrase to disable workspace protection. This will remove encryption from your stored secrets and API keys.": "settings.workspaceLock.disableProtectionHelp", +"Are you sure you want to disable workspace protection? This will permanently decrypt all encrypted secrets and API keys in your database.": "settings.workspaceLock.disableProtectionConfirmMessage", +"Enable Protection": "settings.workspaceLock.enableProtection", +"Set Passphrase": "settings.workspaceLock.setPassphrase", +"Important: Save your passphrase safely and securely. You cannot recover a forgotten passphrase, and without it, you will lose access to your encrypted workspace data.": "settings.workspaceLock.setPassphraseWarning", +"Change Passphrase": "settings.workspaceLock.changePassphrase", +"Important: Save your new passphrase safely and securely. You cannot recover a forgotten passphrase, and without it, you will lose access to your encrypted workspace data.": "settings.workspaceLock.changePassphraseWarning", +"Update Passphrase": "settings.workspaceLock.updatePassphrase", +"Passphrase": "settings.workspaceLock.passphrase", +"Current passphrase": "settings.workspaceLock.passphraseCurrent", +"New passphrase": "settings.workspaceLock.passphraseNew", +"Confirm passphrase": "settings.workspaceLock.passphraseConfirm", +"Passphrase must be at least 8 characters": "settings.workspaceLock.errorMinLength", +"Passphrases do not match": "settings.workspaceLock.errorMismatch", +"Invalid input": "settings.workspaceLock.errorInvalid", +"Passphrase configured": "settings.workspaceLock.setupSuccess", +"Failed to configure passphrase": "settings.workspaceLock.setupFailed", +"Passphrase updated": "settings.workspaceLock.rotateSuccess", +"Failed to update passphrase": "settings.workspaceLock.rotateFailed", +"Decrypt stored secrets and remove workspace protection?": "settings.workspaceLock.disableConfirmMessage", +"Encryption disabled": "settings.workspaceLock.disableSuccess", +"Failed to disable encryption": "settings.workspaceLock.disableFailed", +"Incorrect passphrase": "settings.workspaceLock.incorrectPassphrase", +"{workspaceName} is locked": "settings.workspaceLock.lockedWithName", +"Can't unlock this workspace?": "settings.workspaceLock.switchBackTitle", +"Switch back to {workspaceName} so you can keep working.": "settings.workspaceLock.switchBackDescription", +"Switch back to {workspaceName}": "settings.workspaceLock.switchBackAction", +"Unable to switch workspaces. Please try again.": "settings.workspaceLock.switchBackError", +"Select the button below to export a copy of your data for backup or transfer to another device. The exported data includes conversations, prompts, models, settings, and other application data across all Workspaces.": "settings.dataBackup.description", +"@:data Backup Reminder Interval": "settings.dataBackupReminderInterval.title", +"How often to remind you to backup your data.": "settings.dataBackupReminderInterval.description", +"Danger Zone": "settings.dangerZone.title", +"Actions in this section are irreversible and may result in data loss. We recommend exporting a copy of your data before performing any actions here.": "settings.dangerZone.description", +"Clear Data": "settings.dangerZone.clearData.title", +"Permanently delete all application data including conversations, prompts, models, settings, and other related information across all Workspaces.": "settings.dangerZone.clearData.description", +"Restore @:data from Backup": "settings.dangerZone.restoreData.title", +"Import a previously exported data zip file to restore conversations, prompts, models, settings, and other application data across all Workspaces. This action will overwrite all existing data.": "settings.dangerZone.restoreData.description", +"Migrate": "settings.dataMigrate.action", +"Msty App 1.x to Studio Migration": "settings.dataMigrate.title", +"Step 2: Select Items to Migrate": "settings.dataMigrate.itemsToMigrate.label", +"Select Items": "settings.dataMigrate.itemsToMigrate.action", +"You can import Prompt Library Prompts, Remote Model Providers, Conversations, and Attachments into the current workspace you are in. If you want to import into a different workspace, please switch to that workspace first.": "settings.dataMigrate.pointsToRemember.activeWorkspace", +"Migrating remote model providers will NOT carry over API keys, they must be re-entered. Some legacy models may not be supported in Studio.": "settings.dataMigrate.pointsToRemember.remoteModelProviders", +"If migrating attachments, first zip the attachments folder. You can migrate attachments separately after migrating the database or together with the database.": "settings.dataMigrate.pointsToRemember.attachmentsMigration", +"Database Migration": "settings.dataMigrate.databaseMigration.title", +"Step 1: Select Msty App 1.x Database File": "settings.dataMigrate.databaseMigration.label", +"Drag and drop your Msty Database file": "settings.dataMigrate.databaseMigration.action", +"Msty App 1.x database files are typically named `msty.db`": "settings.dataMigrate.databaseMigration.hint", +"Attachments Migration": "settings.dataMigrate.attachmentsMigration.title", +"Migrate Separately": "settings.dataMigrate.attachmentsMigration.migrate", +"Step 3: Add Zipped Attachments Folder": "settings.dataMigrate.attachmentsMigration.label", +"Successfully migrated the attachments": "settings.dataMigrate.attachmentsMigration.success", +"Failed to migrate the attachments": "settings.dataMigrate.attachmentsMigration.error", +"Drag and drop your zipped attachments folder": "settings.dataMigrate.attachmentsMigration.action", +"Zip the entire attachments folder from Msty App 1.x. After selecting, you can migrate separately if adding after database migration.": "settings.dataMigrate.attachmentsMigration.hint", +"Please select a database file and at least one table to migrate": "settings.dataMigrate.missingDataWarning.description", +"Missing Data": "settings.dataMigrate.missingDataWarning.title", +"Migrate your data from Msty App 1.x into Studio. Imported data will not overwrite existing data.": "settings.dataMigrate.description", +"Successfully migrated {item}": "settings.dataMigrate.successMessage", +"Failed to migrate {item}": "settings.dataMigrate.errorMessage", +"Migration In Progress...": "settings.dataMigrate.migrationInProgress", +"{item} Migration Completed": "settings.dataMigrate.migrationComplete", +"{item} Migration Failed": "settings.dataMigrate.migrationFail", +"Migrating {item}...": "settings.dataMigrate.migratingItem", +"Migration Error": "settings.dataMigrate.migrationError.title", +"View Details": "settings.dataMigrate.migrationError.action", +"Message": "settings.dataMigrate.migrationError.message", +"Cause": "settings.dataMigrate.migrationError.cause", +"Color Preference": "settings.colorPreference", +"Accent Color": "settings.accentColor", +"Dark": "settings.dark", +"Light": "settings.light", +"Default | Defaults": "settings.default", +"Base Color": "settings.baseColor", +"Emerald": "settings.emerald", +"Lime": "settings.lime", +"Green": "settings.green", +"Red": "settings.red", +"Orange": "settings.orange", +"Amber": "settings.amber", +"Yellow": "settings.yellow", +"Teal": "settings.teal", +"Cyan": "settings.cyan", +"Sky": "settings.sky", +"Indigo": "settings.indigo", +"Violet": "settings.violet", +"Purple": "settings.purple", +"Fuchsia": "settings.fuchsia", +"Pink": "settings.pink", +"Rose": "settings.rose", +"Slate": "settings.slate", +"Gray": "settings.gray", +"Zinc": "settings.zinc", +"Stone": "settings.stone", +"Sandy": "settings.sandy", +"Lighter": "settings.lighter", +"Code Theme": "settings.codeTheme", +"RTL Support": "settings.rtlSupport.title", +"Enable right-to-left layouts for languages like Arabic, Hebrew, and Persian. The entire workspace updates instantly when toggled.": "settings.rtlSupport.sectionDescription", +"Enable RTL Layout": "settings.rtlSupport.toggleLabel", +"Right-to-left layout is active across the app.": "settings.rtlSupport.enabledHint", +"The app is currently using a left-to-right layout.": "settings.rtlSupport.disabledHint", +"Mini Map": "settings.miniMap.title", +"Enable the inline mini map message navigator with branch previews. When disabled, a simpler Top/Bottom navigator is used.": "settings.miniMap.description", +"Branch Breadcrumbs": "settings.branchBreadcrumbs.title", +"Show a compact navigation bar at the top of conversations when branches exist.": "settings.branchBreadcrumbs.description", +"Spellcheck": "settings.spellcheck.title", +"Enable or disable spellcheck for text input fields. Disabling can help when working with multiple languages or technical content. Your operating system's spell checker settings may override these preferences. Restart the application after changing this setting for the changes to take full effect.": "settings.spellcheck.description", +"Language & Localization": "settings.language.sectionTitle", +"Switch between interface languages, preview developer mode, or import a temporary locale file. If you want to contribute a translation, please visit https://github.com/cloudstack-llc/msty-studio-i18n": "settings.language.sectionDescription", +"Language": "settings.language.localeLabel", +"Download Template": "settings.language.downloadTemplate", +"Download this built-in locale JSON file.": "settings.language.downloadBuiltInLocale", +"Download the current custom locale you imported.": "settings.language.downloadCustomLocale", +"Download an empty template based on the base locale.": "settings.language.downloadDeveloperTemplate", +"Import Locale": "settings.language.importLocale", +"Imported locales last only until you restart or refresh the app.": "settings.language.importLocaleHint", +"Locale Imported": "settings.language.importSuccessSummary", +"Now using {code}. Review the interface to confirm translations.": "settings.language.importSuccessDetail", +"We couldn't import that locale file. Make sure it's valid JSON based on the template.": "settings.language.importError", +"Developer Mode": "settings.language.developerMode.label", +"Security": "settings.security.title", +"Configure security settings for the application": "settings.security.subtitle", +"Disable Web Security": "settings.webSecurity.title", +"This may help you resolve some CORS related issue. However, this is not recommended and may expose your application to security risks. Disable it only if you know what you are doing. You must restart the app for this setting to take effect.": "settings.webSecurity.description", +"Apply & Restart": "settings.webSecurity.applyAndRestart", +"Font Style": "settings.fontStyle.title", +"Galaxy Far Away": "settings.fontStyle.galaxyFarAway", +"Everything Everywhere": "settings.fontStyle.everythingEverywhere", +"Home Alone": "settings.fontStyle.homeAlone", +"Lord of the Loops": "settings.fontStyle.lordOfTheLoops", +"Rendering Modules": "settings.renderingModules.title", +"@:select Rendering Modules": "settings.renderingModules.selectPlaceholder", +"Allow Msty Studio web to connect to this device to run remote tools and access local models. This service must be actively running to allow remote connections.": "settings.remoteToolsConnector.description", +"Enable Service": "settings.remoteToolsConnector.allowRemoteToolsConnection", +"Connection Token": "settings.remoteToolsConnector.connectionToken.title", +"Remember Token": "settings.remoteToolsConnector.connectionToken.rememberToken", +"Enter a strong connection token": "settings.remoteToolsConnector.connectionToken.placeholder", +"This token is used to authenticate the connection between Msty Studio and this app when connecting remotely. You can regenerate it at any time to invalidate the previous token. Make sure to use a strong token and keep it secret.": "settings.remoteToolsConnector.connectionToken.description", +"Remote Service is now active": "settings.remoteToolsConnector.connectionToken.successMessage.detail", +"Error Enabling Connector": "settings.remoteToolsConnector.connectionToken.errorMessage.summary", +"Failed to enable Remote Service. Please check the logs for more details": "settings.remoteToolsConnector.connectionToken.errorMessage.detail", +"Copy Local URL": "settings.remoteToolsConnector.connectionToken.copyConnectionInfo", +"Copy Tunnel URL": "settings.remoteToolsConnector.connectionToken.copyTunnelConnectionInfo", +"Remote Service is now disabled": "settings.remoteToolsConnector.connectionToken.stopSuccessMessage.detail", +"Enable Tunneling (Experimental)": "settings.remoteToolsConnector.enableTunneling", +"Set up @:localAIService to run AI models locally on your device.": "settings.localAI.notInstalled.description", +"Models Location": "settings.localAI.modelsLocation.title", +"Configure where your Local AI models are stored.": "settings.localAI.modelsLocation.description", +"Use Existing Models": "settings.localAI.existingModels.title", +"Use models you already have without downloading them again.": "settings.localAI.existingModels.description", +"@:service Configurations": "settings.localAI.serviceConfigurations.title", +"These configurations are applied to the @:localAIService when it starts. @:localAIService will automatically restart after you save any changes.": "settings.localAI.serviceConfigurations.description", +"Configure Port Number": "settings.localAI.serviceConfigurations.configurePortNumber.title", +"Port number for @:localAIService{'.'} Leave empty to use default.": "settings.localAI.serviceConfigurations.configurePortNumber.description", +"Maximum Parallel Chats": "settings.localAI.serviceConfigurations.maximumParallelChats.title", +"Maximum number of concurrent chat sessions (when using split mode).": "settings.localAI.serviceConfigurations.maximumParallelChats.description", +"Maximum Loaded Models": "settings.localAI.serviceConfigurations.maximumLoadedModels.title", +"Maximum number of LLMs loaded at the same time. Keeping more models in memory speeds up initial responses but uses more system resources.": "settings.localAI.serviceConfigurations.maximumLoadedModels.description", +"Enable Network Access": "settings.localAI.serviceConfigurations.enableNetworkAccess.title", +"Allow other devices on your network to access this @:localAIService through this device’s IP address.": "settings.localAI.serviceConfigurations.enableNetworkAccess.description", +"Allowed Network Origins": "settings.localAI.serviceConfigurations.allowedNetworkOrigins.title", +"List permitted network origins here (comma-separated). Each entry must begin with http:// or https://. Use * to permit all origins.": "settings.localAI.serviceConfigurations.allowedNetworkOrigins.description", +"e.g. https://msty.studio, http://localhost:3000, *": "settings.localAI.serviceConfigurations.allowedNetworkOrigins.placeholder", +"Allow Access from Msty Studio": "settings.localAI.serviceConfigurations.allowMstyStudioAccess.title", +"Allow connections from Msty Studio Web to this app so it can access @:localAIService{'.'}": "settings.localAI.serviceConfigurations.allowMstyStudioAccess.description", +"Capture @:service Logs": "settings.localAI.serviceConfigurations.captureServiceLogs.title", +"Enable logging to capture service data for debugging. Use this option only when necessary.": "settings.localAI.serviceConfigurations.captureServiceLogs.description", +"Enter valid JSON to set environment variables for the @:localAIService{'.'}": "settings.localAI.serviceConfigurations.advancedConfiguration.description", +"You have unsaved changes in the @:localAIService Configurations. Once you save, @:localAIService will be restarted with the new configurations.": "settings.localAI.serviceConfigurations.unsavedChanges.message", +"Save Changes and Restart Service": "settings.localAI.serviceConfigurations.unsavedChanges.saveChanges", +"@:localAIService Configurations saved and service restarted": "settings.localAI.serviceConfigurations.unsavedChanges.successMessage.detail", +"Failed to save @:localAIService Configurations. Please check the logs for more details.": "settings.localAI.serviceConfigurations.unsavedChanges.errorMessage.detail", +"@:model Configurations": "settings.localAI.modelConfigurations.title", +"These configurations get applied to all models during chat sessions.": "settings.localAI.modelConfigurations.description", +"Model Keep-Alive Timeout": "settings.localAI.modelConfigurations.keepAliveTimeout.title", +"Time (in minutes) after which the model will be unloaded from memory if not used.": "settings.localAI.modelConfigurations.keepAliveTimeout.description", +"Enter valid JSON to pass extra parameters to models during chat sessions.": "settings.localAI.modelConfigurations.advancedConfiguration.description", +"You have unsaved changes in the @:settings.localAI.modelConfigurations.title{'.'} Make sure to save them before starting a new chat session.": "settings.localAI.modelConfigurations.unsavedChanges.message", +"@:settings.localAI.modelConfigurations.title saved": "settings.localAI.modelConfigurations.unsavedChanges.successMessage.detail", +"Failed to save @:settings.localAI.modelConfigurations.title. Please check the logs for more details.": "settings.localAI.modelConfigurations.unsavedChanges.errorMessage.detail", +"Open Local AI Settings": "settings.localAI.openSettings", +"Manage Local AI Models": "settings.localAI.manageModels.title", +"Browse, install, and manage AI models for local inference.": "settings.localAI.manageModels.description", +"Open Local AI Models Hub": "settings.localAI.manageModels.openModelHub", +"Vibe CLI Proxy": "settings.vibeCliProxy.shortTitle", +"Unified proxy for AI coding assistants. Connect to Claude Code, ChatGPT, Gemini, Qwen Code through a single local endpoint.": "settings.vibeCliProxy.subtitle", +"Installs CLIProxyAPI binary to connect AI coding assistants (Claude Code, ChatGPT, Gemini, Qwen) via local proxy with OAuth authentication.": "settings.vibeCliProxy.install.copy", +"Install Vibe CLI Proxy": "settings.vibeCliProxy.install.button", +"Start or stop the Vibe CLI Proxy service.": "settings.vibeCliProxy.health.description", +"Service Endpoint": "settings.vibeCliProxy.endpoint.title", +"Use this endpoint for OpenAI-compatible requests routed through Vibe CLI Proxy.": "settings.vibeCliProxy.endpoint.description", +"Network host: {host}": "settings.vibeCliProxy.endpoint.network", +"Endpoint copied": "settings.vibeCliProxy.endpoint.copied", +"Version": "settings.vibeCliProxy.version.title", +"Installed CLIProxyAPI version.": "settings.vibeCliProxy.version.description", +"Current version": "settings.vibeCliProxy.version.current", +"Reinstall": "settings.vibeCliProxy.version.reinstall", +"Not installed": "settings.vibeCliProxy.version.unknown", +"Service Configurations": "settings.vibeCliProxy.configs.title", +"Configure port, authentication directory, and network access for the proxy.": "settings.vibeCliProxy.configs.description", +"Port": "settings.vibeCliProxy.configs.port", +"Retries": "settings.vibeCliProxy.configs.retries", +"Auth directory": "settings.vibeCliProxy.configs.authDir", +"Enable network access": "settings.vibeCliProxy.configs.enableNetworkAccess", +"Allow other devices on the network to reach the proxy.": "settings.vibeCliProxy.configs.enableNetworkAccessHelp", +"Capture service logs": "settings.vibeCliProxy.configs.captureLogs", +"Persist proxy logs for troubleshooting (may increase disk usage).": "settings.vibeCliProxy.configs.captureLogsHelp", +"Enable remote management": "settings.vibeCliProxy.configs.enableRemoteManagement", +"Expose management endpoints; requires a secret key.": "settings.vibeCliProxy.configs.enableRemoteManagementHelp", +"Management secret key": "settings.vibeCliProxy.configs.managementKey", +"Vibe CLI Proxy configurations updated": "settings.vibeCliProxy.configs.updated", +"Failed to update Vibe CLI Proxy configurations": "settings.vibeCliProxy.configs.failed", +"The local port where the proxy service listens for requests.": "settings.vibeCliProxy.configs.portDescription", +"Number of retry attempts for failed upstream requests.": "settings.vibeCliProxy.configs.retriesDescription", +"Directory where authentication tokens are stored.": "settings.vibeCliProxy.configs.authDirDescription", +"Secret key required for remote management operations.": "settings.vibeCliProxy.configs.managementKeyDescription", +"Auth Folder": "settings.vibeCliProxy.authPath.title", +"Path where Vibe CLI Proxy stores OAuth tokens for connected providers. Managed automatically; not editable.": "settings.vibeCliProxy.authPath.description", +"Authentication": "settings.vibeCliProxy.authStatus.title", +"Securely link your AI accounts so Vibe CLI Proxy can call their APIs on your behalf. When you connect, a browser window opens for that provider where you complete sign-in.": "settings.vibeCliProxy.authStatus.description", +"Opening browser for OAuth…": "settings.vibeCliProxy.authStatus.connecting", +"Complete authentication in your browser, then return here.": "settings.vibeCliProxy.authStatus.browser", +"Failed to start OAuth flow": "settings.vibeCliProxy.authStatus.failed", +"Device Authorization": "settings.vibeCliProxy.authStatus.deviceCodeTitle", +"Enter the code below at the authorization page to complete authentication.": "settings.vibeCliProxy.authStatus.deviceCodeInstructions", +"Copy Code": "settings.vibeCliProxy.authStatus.copyCode", +"Code copied to clipboard": "settings.vibeCliProxy.authStatus.codeCopied", +"Open GitHub": "settings.vibeCliProxy.authStatus.openGitHub", +"Important: Vibe CLI Proxy is a local proxy to third-party CLI coding agents. By proceeding, you accept full responsibility for compliance with each AI provider's terms of service. Use at your own risk. Msty is not liable for any account issues or service violations that may arise.": "settings.vibeCliProxy.setup.disclaimer", +"Set @:mlxService to run optimized AI models on your Apple Silicon Mac.": "settings.mlx.notInstalled.description", +"Configure where your MLX models are stored.": "settings.mlx.modelsLocation.description", +"Open MLX Settings": "settings.mlx.openSettings", +"Manage MLX Models": "settings.mlx.manageModels.title", +"Browse, install, and manage MLX models optimized for Apple Silicon.": "settings.mlx.manageModels.description", +"Open MLX Models Hub": "settings.mlx.manageModels.openModelHub", +"System Compatibility": "settings.mlx.compatibility.title", +"Check if your system is compatible with MLX.": "settings.mlx.compatibility.description", +"Check Again": "settings.mlx.compatibility.checkAgain", +"Not checked": "settings.mlx.compatibility.status.notChecked", +"Compatible": "settings.mlx.compatibility.status.compatible", +"Not compatible": "settings.mlx.compatibility.status.notCompatible", +"MLX Requirements:": "settings.mlx.compatibility.requirements.title", +"Apple Silicon Mac (M1, M2, M3, M4)": "settings.mlx.compatibility.requirements.appleSilicon", +"macOS 13.0 or later": "settings.mlx.compatibility.requirements.macOS13", +"Unified memory architecture": "settings.mlx.compatibility.requirements.unifiedMemory", +"Set @:llamacppService to run efficient AI models on Windows, macOS, and Linux.": "settings.llamacpp.notInstalled.description", +"Configure where your LLaMA.cpp models are stored.": "settings.llamacpp.modelsLocation.description", +"Open LLaMA.cpp Settings": "settings.llamacpp.openSettings", +"Manage LLaMA.cpp Models": "settings.llamacpp.manageModels.title", +"Browse, install, and manage LLaMA.cpp models for cross-platform inference.": "settings.llamacpp.manageModels.description", +"Open LLaMA.cpp Models Hub": "settings.llamacpp.manageModels.openModelHub", +"Check if your system is compatible with LLaMA.cpp.": "settings.llamacpp.compatibility.description", +"LLaMA.cpp requires the desktop application": "settings.llamacpp.compatibility.status.requiresDesktop", +"System Information": "settings.llamacpp.compatibility.systemInfo.title", +"Platform": "settings.llamacpp.compatibility.systemInfo.platform", +"Architecture": "settings.llamacpp.compatibility.systemInfo.architecture", +"Available Memory": "settings.llamacpp.compatibility.systemInfo.memory", +"GPU": "settings.llamacpp.compatibility.systemInfo.gpu", +"LLaMA.cpp Requirements:": "settings.llamacpp.compatibility.requirements.title", +"Desktop application (Windows, macOS, or Linux)": "settings.llamacpp.compatibility.requirements.desktop", +"At least 4GB RAM (8GB+ recommended)": "settings.llamacpp.compatibility.requirements.memory", +"Sufficient storage for models (varies by model size)": "settings.llamacpp.compatibility.requirements.storage", +"Optional: GPU for acceleration (CUDA, Metal, OpenCL)": "settings.llamacpp.compatibility.requirements.gpu", +"CPU Threads": "settings.llamacpp.serviceConfigurations.threads.title", +"Number of CPU threads to use during inference. Set to -1 to auto-detect based on your system (maps to the --threads flag).": "settings.llamacpp.serviceConfigurations.threads.description", +"Concurrent Requests": "settings.llamacpp.serviceConfigurations.concurrentRequests.title", +"Number of chats that can run at the same time per model (maps to --parallel flag). With parallel=2, each chat gets half the context size.": "settings.llamacpp.serviceConfigurations.concurrentRequests.description", +"Concurrent requests": "settings.llamacpp.serviceConfigurations.concurrentRequests.inputLabel", +"Enter valid JSON to set environment variables for llama-server process. These variables have less priority than CLI args set in the Service and Model Configurations.": "settings.llamacpp.serviceConfigurations.advancedConfiguration.description", +"You have unsaved changes in the @:settings.llamacpp.modelConfigurations.title{'.'} Make sure to save them before starting a new chat session.": "settings.llamacpp.modelConfigurations.unsavedChanges.message", +"@:settings.llamacpp.modelConfigurations.title saved": "settings.llamacpp.modelConfigurations.unsavedChanges.successMessage.detail", +"Failed to save @:settings.llamacpp.modelConfigurations.title. Please check the logs for more details.": "settings.llamacpp.modelConfigurations.unsavedChanges.errorMessage.detail", +"MLX": "mlx", +"@:mlx Service": "mlxService", +"LLaMA.cpp": "llamacpp", +"@:llamacpp Service": "llamacppService", +"Settings and Configs": "settingsAndConfigs", +"Prompts": "prompts", +"API Keys": "apiKeys", +"Create New Workspace": "workspaces.createNewWorkspace", +"Switch Workspace": "workspaces.switchWorkspace", +"Switch to {workspaceName} Workspace": "workspaces.switchToCustomWorkspace", +"Hide Workspace Tray": "workspaces.hideWorkspaceTray", +"Show Workspace Tray": "workspaces.showWorkspaceTray", +"Workspace switched!": "workspaces.switchAction.successMessage.summary", +"{workspaceName} is now the active workspace": "workspaces.switchAction.successMessage.detail", +"Delete Workspace": "workspaces.deleteWorkspace", +"Workspace {workspaceName} is active": "workspaces.workspaceIsActive", +"Your current active Workspace is: {workspaceName}": "workspaces.currentActiveWorkspace", +"New Workspace": "workspaces.workspaceForm.newTitle", +"Edit Workspace": "workspaces.workspaceForm.editTitle", +"Workspace Name": "workspaces.workspaceForm.workspaceName", +"What to copy from {activeWorkspace} workspace?": "workspaces.workspaceForm.whatToCopy", +"Copying items is disabled because the active workspace has a passphrase set.": "workspaces.workspaceForm.copyDisabledForLockedWorkspace", +"Create and Switch": "workspaces.workspaceForm.createAndSwitch", +"Create and Stay": "workspaces.workspaceForm.createOnly", +"Workspace name already exists": "workspaces.workspaceForm.duplicateWorkspaceName", +"Invalid or duplicate workspace name": "workspaces.workspaceForm.invalidWorkspaceName", +"Workspace updated": "workspaces.workspaceForm.updateSuccessMessage.detail", +"Failed to update Workspace": "workspaces.workspaceForm.updateErrorMessage.detail", +"Workspace created and switched": "workspaces.workspaceForm.createAndSwitchSuccessMessage.detail", +"Workspace created": "workspaces.workspaceForm.createSuccessMessage.detail", +"Failed to create Workspace": "workspaces.workspaceForm.createErrorMessage.detail", +"Are you sure you want to delete {workspaceName}? All data associated with this workspace will be deleted. This action cannot be undone.": "workspaces.deleteConfirmation.message", +"@:download Workspace @:data": "workspaces.deleteConfirmation.downloadWorkspaceData", +"Workspace {workspaceName} deleted": "workspaces.deleteConfirmation.successMessage.detail", +"Failed to delete Workspace": "workspaces.deleteConfirmation.errorMessage.detail", +"Export Workspace": "workspaces.exportWorkspace.title", +"Workspace {workspaceName} data exported as {fileName}": "workspaces.exportWorkspace.successMessage.detail", +"Failed to export Workspace {workspaceName}": "workspaces.exportWorkspace.errorMessage.detail", +"@:import Workspace": "workspaces.importWorkspace.title", +"Drag and drop a zipped Msty Workspace file to import and create a new Workspace. In case of duplicate names, the imported workspace will be renamed. You can change it later.": "workspaces.importWorkspace.dragAndDropMessage", +"Workspace {workspaceName} has been imported": "workspaces.importWorkspace.successMessage.detail", +"Failed to import Workspace": "workspaces.importWorkspace.errorMessage.detail", +"Attachments": "attachments.title", +"Documents": "attachments.documents", +"Images": "attachments.images", +"Webpages": "attachments.webpages", +"YouTube Links": "attachments.youTubeLinks", +"Drop Them!": "attachments.dropThem", +"@:select all": "attachments.selectAll", +"Deselect all": "attachments.deselectAll", +"Drag-and-drop {attachmentType} here": "attachments.dragAnDropHere", +"Add New Attachments": "attachments.addNew", +"Add {documentTypes} as well as some other code files": "attachments.addDocumentTypes", +"Add .png, .jpg, or jpeg images": "attachments.addImageTypes", +"Drag-and-drop or browse more": "attachments.dragAndDropOrBrowseMore", +"or paste comma-separated URLs": "attachments.commaSeparatedUrls", +"Click to manage attached {attachmentType}": "attachments.manageTooltip", +"Selected model may not support image attachments.": "attachments.modelMayNotSupportImages", +"Click to install vision capabilities.": "attachments.clickToInstallVisionCapabilities", +"Checking vision capabilities...": "attachments.checkingVisionCapabilities", +"Installing vision capabilities...": "attachments.installingVision", +"{count} document attached | {count} documents attached": "attachments.documentsAttachedCount", +"{count} image attached | {count} images attached": "attachments.imagesAttachedCount", +"{count} webpage attached | {count} webpages attached": "attachments.webpagesAttachedCount", +"a webpage link | webpage links": "attachments.webpageLinks", +"Hold {key} to share with Synced Splits": "attachments.holdKeyToShareWithSyncedSplits", +"{count} YouTube link attached | {count} YouTube links attached": "attachments.youTubeLinksAttachedCount", +"Failed to attach files": "attachments.dropFiles.errorMessage.detail", +"Failed to attach webpages": "attachments.dropWebpages.errorMessage.detail", +"Failed to import YouTube links info. {errorMessage}": "attachments.dropYouTubeLinks.errorMessage.detail", +"Detach all": "attachments.detachAll.title", +"Detach All": "attachments.detachAll.confirm.header", +"Are you sure you want to detach all {attachmentType}? These {attachmentType} will not be available in the conversation anymore across all splits.": "attachments.detachAll.confirm.message", +"Maximum Result": "attachments.detachAll.maxResult.title", +"Attachments detached": "attachments.detachAll.successMessage.detail", +"Manage keys": "jinaAPI.manageJinaAPIKeys", +"A valid Jina API Key is required to use this feature. You can visit the following link to get one for free:": "jinaAPI.jinaApiKeyRequired", +"You currently have {count} Jina API key(s) added. You can add add more keys and Msty will pick a random valid key to use for the request.": "jinaAPI.willUseJina.description", +"New Jina API Key": "jinaAPI.jinaAPIKeyForm.newTitle", +"Edit Jina API Key": "jinaAPI.jinaAPIKeyForm.editTitle", +"Available Keys": "jinaAPI.jinaAPIKeyForm.availableKeys", +"Key is {status}. Click to re-verify": "jinaAPI.jinaAPIKeyForm.reVerifyKey", +"Verify Key and Add": "jinaAPI.jinaAPIKeyForm.verifyKeyAndAdd", +"Add a new Jina API key to use with the Jina Reader and Search endpoints. You can add multiple keys and verify them to ensure they are valid. When using the keys, Msty will pick a random valid key to use for the request.": "jinaAPI.jinaAPIKeyForm.newDescription", +"All Good!": "jinaAPI.jinaAPIKeyForm.keyIsGood.summary", +"Key seems to be valid and ready to use": "jinaAPI.jinaAPIKeyForm.keyIsGood.detail", +"Jina API Key added": "jinaAPI.jinaAPIKeyForm.successMessage.detail", +"Error{status}!": "jinaAPI.jinaAPIKeyForm.errorMessage.summary", +"Failed to add Jina API Key. Please check the API key and make sure it is valid.": "jinaAPI.jinaAPIKeyForm.errorMessage.detail", +"Token Budget": "jinaAPI.tokenBudget.title", +"Maximum number of tokens to use for Jina API requests. This helps control costs and response length.": "jinaAPI.tokenBudget.description", +"Real Time @:data": "rtd.title", +"Click to toggle RTD; double-click to configure": "rtd.enableRTD", +"@:rtd.title Contexts": "rtd.contexts", +"Source removed": "rtd.removeSource.successMessage.detail", +"Failed to remove source": "rtd.removeSource.errorMessage.detail", +"Failed to update source": "rtd.updateSource.errorMessage.detail", +"Search Provider": "rtd.searchProvider", +"Jina": "rtd.jina", +"Use @:remoteToolsConnector.title": "rtd.useRemoteConnector", +"No sources available": "rtd.noSources", +"Save {providerName} as default search provider": "rtd.settings.saveAsDefaultProvider.title", +"{providerName} it is!": "rtd.settings.saveAsDefaultProvider.successMessage.summary", +"{providerName} is now the default search provider": "rtd.settings.saveAsDefaultProvider.successMessage.detail", +"Auto with Fallback": "rtd.settings.autoWithFallback", +"Google": "rtd.settings.google", +"Brave": "rtd.settings.brave", +"Ecosia": "rtd.settings.ecosia", +"Custom Search Query": "rtd.settings.customSearchQuery.title", +"This query will be used for searching. Leave it empty to use the prompt as a query": "rtd.settings.customSearchQuery.placeholder", +"Limit by Domain": "rtd.settings.limitByDomain.title", +"e.g. reddit.com or gov or (site:reddit.com OR site:gov)": "rtd.settings.limitByDomain.placeholder", +"Enter comma separated domains e.g. reddit.com,wikipedia.com": "rtd.settings.limitByDomain.commaDelimitedPlaceholder", +"Extra Operators": "rtd.settings.extraOperators.title", +"Search Date Range": "rtd.settings.dateRange.title", +"After date - Before date": "rtd.settings.dateRange.placeholder", +"@:rtd.title Enabled": "rtd.settings.successMessage.detail", +"API": "rtd.settings.types.api", +"@:remoteToolsConnector.title": "rtd.settings.types.rtc", +"Use @:rtd.jina": "rtd.useJinaLabel", +"Use @:rtd.settings.google": "rtd.google.useLabel", +"@:rtd.settings.google @:apiKey": "rtd.google.apiKey.placeholder", +"Custom Search Engine ID": "rtd.google.cseIdLabel", +"@:rtd.settings.google @:rtd.google.cseIdLabel": "rtd.google.cseIdPlaceholder", +"Use @:rtd.settings.brave": "rtd.brave.useLabel", +"Filter Results": "rtd.brave.resultFilter", +"@:rtd.settings.brave @:apiKey": "rtd.brave.apiKey.placeholder", +"SearXNG": "rtd.searXng.title", +"Engines": "rtd.searXng.engines.title", +"Comma-separated list of engines to use e.g. google, brave etc.": "rtd.searXng.engines.placeholder", +"Extra Params": "rtd.searXng.extraParams.title", +"Add extra params. This should be a valid JSON object.": "rtd.searXng.extraParams.placeholder", +"Your SearXNG server must have JSON enabled as well as be served over HTTPS. For a workaround over HTTP on some browsers, check out our docs at https://docs.msty.studio": "rtd.searXng.notice", +"Use @:rtd.searXng.title": "rtd.searXng.useLabel", +"Tavily": "rtd.tavily.title", +"Use @:rtd.tavily.title": "rtd.tavily.useLabel", +"Search Topic": "rtd.tavily.searchTopic.title", +"Category of search": "rtd.tavily.searchTopic.placeholder", +"News": "rtd.tavily.searchTopic.news", +"Finance": "rtd.tavily.searchTopic.finance", +"Enter @:rtd.tavily.title @:apiKey": "rtd.tavily.apiKey.placeholder", +"Search Depth": "rtd.tavily.searchDepth.title", +"Depth of the search": "rtd.tavily.searchDepth.placeholder", +"Advance": "rtd.tavily.searchDepth.advanced", +"Basic": "rtd.tavily.searchDepth.basic", +"Time Range": "rtd.tavily.timeRange.title", +"Time range back from the current date": "rtd.tavily.timeRange.placeholder", +"Exa": "rtd.exa.title", +"Use @:rtd.exa.title": "rtd.exa.useLabel", +"Enter @:rtd.exa.title @:apiKey": "rtd.exa.apiKey.placeholder", +"Ollama": "rtd.ollama.title", +"Use @:rtd.ollama.title": "rtd.ollama.useLabel", +"Enter @:rtd.ollama.title @:apiKey": "rtd.ollama.apiKey.placeholder", +"Disable @:rtd.title": "rtd.disableRTD.label", +"@:rtd.title disabled": "rtd.disableRTD.successMessage.detail", +"Failed to disable @:rtd.title": "rtd.disableRTD.errorMessage.detail", +"Remote Service": "remoteToolsConnector.title", +"To use this feature, you need to connect with @:remoteToolsConnector.title{'.'}": "remoteToolsConnector.connectionRequired", +"RTD is experimental and may not work as expected.": "remoteToolsConnector.experimentalInfo", +"@:remoteToolsConnector.title - Connected": "remoteToolsConnector.isConnectedTooltip", +"@:remoteToolsConnector.title - Disconnected": "remoteToolsConnector.isDisconnectedTooltip", +"@:connect with @:remoteToolsConnector.title": "remoteToolsConnector.connectNow", +"@:connect @:remoteToolsConnector.title first": "remoteToolsConnector.connectFirst", +"@:reconnect with @:remoteToolsConnector.title": "remoteToolsConnector.reconnectNow", +"@:disconnect Now": "remoteToolsConnector.disconnectNow", +"Check Connection Health": "remoteToolsConnector.checkHealth", +"Edit Connection Details": "remoteToolsConnector.connectionDetails", +"You do not have permission to access this feature": "remoteToolsConnector.noPermissionPolicy", +"Connect to @:remoteToolsConnector.title": "remoteToolsConnector.connect.form.title", +"Save and Connect": "remoteToolsConnector.connect.form.saveAndConnect", +"Remember @:connectionInfo": "remoteToolsConnector.connect.form.rememberConnectionInfo", +"@:import @:connectionInfo": "remoteToolsConnector.connect.import.title", +"Drag and drop Msty Remote Connection Config file to import and connect to @:remoteToolsConnector.title{'.'}": "remoteToolsConnector.connect.import.dragAndDropMessage", +"@:connectionInfo imported": "remoteToolsConnector.connect.import.successMessage.detail", +"Failed to import @:connectionInfo": "remoteToolsConnector.connect.import.errorMessage.detail", +"Export Saved @:connectionInfo": "remoteToolsConnector.connect.export.title", +"@:connectionInfo exported": "remoteToolsConnector.connect.export.successMessage.detail", +"Failed to export @:connectionInfo": "remoteToolsConnector.connect.export.errorMessage.detail", +"Connected!": "remoteToolsConnector.connect.successMessage.summary", +"@:remoteToolsConnector.title connected at {url}": "remoteToolsConnector.connect.successMessage.detail", +"Failed to connect with @:remoteToolsConnector.title{'.'} Make sure the @:remoteToolsConnector.title is running and accessible at the provided URL.": "remoteToolsConnector.connect.errorMessage.detail", +"Token is missing. Please check the token and try again.": "remoteToolsConnector.connect.errorMessage.tokenMissing", +"Forget Previous @:connectionInfo": "remoteToolsConnector.connect.forgetConnectionInfo", +"@:connectionInfo forgotten": "remoteToolsConnector.connect.forgetSuccessMessage.detail", +"Tool Command Paths": "remoteToolsConnector.connect.toolCommandPaths.title", +"If you are using Toolsets, set the paths to the commands you are using.": "remoteToolsConnector.connect.toolCommandPaths.description", +"@:select or enter a command": "remoteToolsConnector.connect.toolCommandPaths.selectPlaceholder", +"Enter full path to the command": "remoteToolsConnector.connect.toolCommandPaths.pathPlaceholder", +"Assign @:path": "remoteToolsConnector.connect.toolCommandPaths.assignPath", +"Disconnected!": "remoteToolsConnector.disconnect.successMessage.summary", +"Disconnected from @:remoteToolsConnector.title": "remoteToolsConnector.disconnect.successMessage.detail", +"Forge Mode": "forge.forgeMode.title", +"Forge mode gives you a blank canvas and a powerful writer to create, edit, style and refine content freely.": "forge.forgeMode.description", +"Forge": "forge.title", +"@:forge.title Content": "forge.forgeContent", +"Forging Content": "forge.forgingContent", +"Edit Raw Markdown": "forge.editRawMarkdown", +"Edit as Branch": "forge.editAsBranch", +"This content has been forged. Raw markdown editing is not allowed.": "forge.disabledEditRawMarkdown", +"Changes saved": "forge.saveChanges.successMessage.detail", +"Failed to save changes": "forge.saveChanges.errorMessage.detail", +"Write something or type / for options...": "forge.placeholders.writeSomething", +"Enter details summary": "forge.placeholders.detailsSummary", +"Simplify": "forge.prompts.simplify", +"Fix Spelling & Grammar": "forge.prompts.fixSpellingAndGrammar", +"Make Shorter": "forge.prompts.makeShorter", +"Make Longer": "forge.prompts.makeLonger", +"TL;DR;": "forge.prompts.tldr", +"Emojify": "forge.prompts.emojify", +"@:change Tone": "forge.prompts.changeTone.title", +"Academic": "forge.prompts.changeTone.academic", +"Business": "forge.prompts.changeTone.business", +"Casual": "forge.prompts.changeTone.casual", +"Child Friendly": "forge.prompts.changeTone.childFriendly", +"Conversational": "forge.prompts.changeTone.conversational", +"Emotional": "forge.prompts.changeTone.emotional", +"Humorous": "forge.prompts.changeTone.humorous", +"Informative": "forge.prompts.changeTone.informative", +"Inspirational": "forge.prompts.changeTone.inspirational", +"Professional": "forge.prompts.changeTone.professional", +"Narrative": "forge.prompts.changeTone.narrative", +"Objective": "forge.prompts.changeTone.objective", +"Persuasive": "forge.prompts.changeTone.persuasive", +"Poetic": "forge.prompts.changeTone.poetic", +"Clear Formatting": "forge.clearFormatting", +"Bold": "forge.bold", +"Italic": "forge.italic", +"Underline": "forge.underline", +"Strikethrough": "forge.strikethrough", +"Code": "forge.code", +"Code Block": "forge.codeBlock", +"Blockquote": "forge.blockQuote", +"Undo": "forge.undo", +"Redo": "forge.redo", +"Texts": "forge.texts", +"Paragraph": "forge.paragraph", +"Heading 1": "forge.heading1", +"Heading 2": "forge.heading2", +"Heading 3": "forge.heading3", +"Lists": "forge.lists", +"Bullet List": "forge.bulletList", +"Numbered List": "forge.numberedList", +"Task List": "forge.taskList", +"What do you want to forge today?": "forge.whatToForgePlaceholder", +"Forge Writer": "forge.forgeWriter", +"Type your custom prompt...": "forge.inlinePrompt.placeholder", +"Ask": "forge.inlinePrompt.ask", +"Ask the model to generate a response based on a custom prompt": "forge.inlinePrompt.askTooltip", +"@:forge.title Canvas": "forge.forgeCanvas", +"New @:forge.forgeCanvas": "forge.newForgeCanvas", +"Add New @:forge.forgeCanvas": "forge.addNewForgeCanvas", +"Preview": "preview", +"Prompt | Prompts": "prompt", +"Discard": "discard", +"Insert": "insert", +"Regenerate": "regenerate", +"Rewrite": "rewrite", +"Exit": "exit", +"Custom Prompt": "customPrompt", +"Markdown": "markdown", +"JSON": "json", +"HTML": "html", +"Formatted": "formatted", +"Invalid @:json": "invalidJson", +"@:download as @:markdown file": "downloadMarkdown", +"@:download as @:json file": "downloadJson", +"@:download as HTML file": "downloadHTML", +"Copy @:markdown to Clipboard": "copyMarkdownToClipboard", +"Copy HTML to Clipboard": "copyHTMLToClipboard", +"Copy Text to Clipboard": "copyFormattedToClipboard", +"Copied!": "copiedToClipboard.summary", +"Content copied to clipboard as @:markdown": "copiedToClipboard.markdownDetail", +"Content copied to clipboard as HTML": "copiedToClipboard.htmlDetail", +"Content copied to clipboard as formatted text": "copiedToClipboard.formattedDetail", +"Content copied to clipboard as @:json": "copiedToClipboard.jsonDetail", +"{item} copied to clipboard": "copiedToClipboard.itemCopied", +"Content exported to clipboard as @:json": "exportJsonToClipboard", +"Variable | Variables": "variable", +"@:pinned {item}": "pinItem.title", +"Pin {item}": "pinItem.action", +"{item} pinned": "pinItem.successMessage.detail", +"Unable to pin {item}": "pinItem.errorMessage.detail", +"Unpin {item}": "unpinItem.action", +"{item} unpinned": "unpinItem.successMessage.detail", +"Unable to unpin {item}": "unpinItem.errorMessage.detail", +"Default {item}": "setDefaultItem.title", +"Set {item} as default": "setDefaultItem.action", +"{item} set as default": "setDefaultItem.successMessage.detail", +"Unable to set {item} as default": "setDefaultItem.errorMessage.detail", +"Default {item}. Click to unset.": "unsetDefaultItem.action", +"{item} removed as default": "unsetDefaultItem.successMessage.detail", +"Model": "model", +"Provider sorting": "modelSelector.filterControls.providerSort.label", +"Created At": "modelSelector.filterControls.providerSort.createdAt", +"Group by provider": "modelSelector.filterControls.providerSort.groupByProvider", +"Model sorting": "modelSelector.filterControls.modelSort.label", +"Recent": "modelSelector.filterControls.modelSort.recent", +"Filter by purpose": "modelSelector.filterControls.purpose.label", +"All purposes": "modelSelector.filterControls.purpose.placeholder", +"@:model Settings": "modelSettings", +"Sync @:split": "syncSplit", +"Split | Splits": "split", +"Template | Templates": "template", +"Apply Changes": "applyChanges", +"Split @:preset | Split @:preset": "splitPreset.title", +"New @:preset": "splitPreset.new", +"Split {index}": "splitPreset.splits.splitIndex", +"@:delete @:preset": "splitPreset.splits.delete", +"Import @:preset | Import @:preset": "splitPreset.import.title", +"Drag and drop a zipped Msty presets file to import and create new presets. In case of duplicate names, the imported presets will be renamed. You can change it later.": "splitPreset.import.dragAndDropMessage", +"@:preset imported": "splitPreset.import.successMessage.detail", +"Failed to import presets": "splitPreset.import.errorMessage.detail", +"Export @:preset | Export @:preset": "splitPreset.export.title", +"Export Selected @:preset | Export Selected @:preset": "splitPreset.export.selected", +"Split preset exported as {fileName} | Split presets exported as {fileName}": "splitPreset.export.successMessage.detail", +"Failed to export preset | Failed to export presets": "splitPreset.export.errorMessage.detail", +"@:delete @:preset | Delete @:preset": "splitPreset.delete.title", +"@:delete Selected @:preset | Delete Selected @:preset": "splitPreset.delete.selected", +"Are you sure you want to delete {presetName}? | Are you sure you want to delete {count} presets?": "splitPreset.delete.deleteConfirmation.description", +"Split preset deleted | Split presets deleted": "splitPreset.delete.successMessage.detail", +"Could not delete split preset | Could not delete split presets": "splitPreset.delete.errorMessage.detail", +"Split preset updated": "splitPreset.update.successMessage.detail", +"Could not update split preset": "splitPreset.update.errorMessage.detail", +"Split preset saved": "splitPreset.save.successMessage.detail", +"Could not save split preset": "splitPreset.save.errorMessage.detail", +"No @:splitPreset.title available.": "splitPreset.empty.title", +"Get started by adding or importing a new @:splitPreset.title": "splitPreset.empty.description", +"Invalid Templates": "splitPreset.invalidTemplatesMessage.summary", +"Some templates are invalid or missing required fields. Please correct them before continuing.": "splitPreset.invalidTemplatesMessage.detail", +"Shadow Personas": "shadowPersonas.title", +"Create Shadow Persona": "shadowPersonas.create", +"Edit Shadow Persona": "shadowPersonas.editTitle", +"Assigned Persona": "shadowPersonas.assignedPersona", +"Change Persona": "shadowPersonas.changePersona", +"Change Shadow Persona": "shadowPersonas.changePersonaTitle", +"Current Persona": "shadowPersonas.currentPersona", +"Select New Persona": "shadowPersonas.selectNewPersona", +"Waiting for completion": "shadowPersonas.waitingForCompletion", +"Changing the persona will reset the analysis context and may affect continuity.": "shadowPersonas.changePersonaWarning", +"No Persona Assigned": "shadowPersonas.unassigned", +"Hide Shadow Personas": "shadowPersonas.hideSidebar", +"Show Shadow Personas": "shadowPersonas.showSidebar", +"No splits being monitored": "shadowPersonas.noMonitoring", +"Monitoring {count} split (click to show) | Monitoring {count} splits (click to show)": "shadowPersonas.monitoringHiddenHint", +"Monitoring {count} split | Monitoring {count} splits": "shadowPersonas.monitoringSplitsHint", +"Activate": "shadowPersonas.activate", +"Deactivate": "shadowPersonas.deactivate", +"Process Now": "shadowPersonas.processNow", +"Processing...": "shadowPersonas.processing", +"Create and Assign": "shadowPersonas.createAndAssign", +"Latest Insight": "shadowPersonas.latestInsight", +"No output yet": "shadowPersonas.noOutputYet", +"Outputs": "shadowPersonas.outputs", +"View Latest": "shadowPersonas.viewLatest", +"View History": "shadowPersonas.viewHistory", +"No history available": "shadowPersonas.noHistory", +"Select version": "shadowPersonas.selectVersion", +"Shadow Persona Name": "shadowPersonas.name", +"e.g., Technical Analyst, Performance Monitor": "shadowPersonas.namePlaceholder", +"Switch Shadow Persona": "shadowPersonas.switchShadowPersona", +"Select a shadow persona to switch to": "shadowPersonas.selectShadowPersonaToSwitch", +"Select Shadow Persona": "shadowPersonas.selectShadowPersona", +"Search shadow personas...": "shadowPersonas.searchShadowPersonas", +"Description (Optional)": "shadowPersonas.description", +"Describe what this shadow persona observes or analyzes": "shadowPersonas.descriptionPlaceholder", +"Select Persona": "shadowPersonas.selectPersona", +"Choose a persona to use": "shadowPersonas.selectPersonaPlaceholder", +"Select Splits to Monitor": "shadowPersonas.selectSplits", +"Choose splits to monitor": "shadowPersonas.selectSplitsPlaceholder", +"Choose splits to monitor (can be set later)": "shadowPersonas.selectSplitsPlaceholderOptional", +"Splits can be dynamically assigned and managed after creation": "shadowPersonas.splitsCanBeAssignedLater", +"Update Trigger": "shadowPersonas.updateTrigger", +"Message Interval": "shadowPersonas.messageInterval", +"Time Interval": "shadowPersonas.timeInterval", +"Messages Per Split": "shadowPersonas.messagesPerSplit", +"Max Context": "shadowPersonas.maxContext", +"Synthesis Mode": "shadowPersonas.synthesisMode", +"Output Format": "shadowPersonas.outputFormat", +"Max Processing Time": "shadowPersonas.maxProcessingTime", +"Version Management": "shadowPersonas.versionManagement", +"Max Versions": "shadowPersonas.maxVersions", +"Advanced Settings": "shadowPersonas.advancedSettings", +"Include System Messages": "shadowPersonas.includeSystemMessages", +"Auto Delete Old Versions": "shadowPersonas.autoDeleteOld", +"Waiting for splits": "shadowPersonas.waitingForSplits", +"Processing now": "shadowPersonas.processingNow", +"No Shadow Personas": "shadowPersonas.empty.title", +"Create a Shadow Persona to monitor and analyze your conversation splits": "shadowPersonas.empty.description", +"Unlock Shadow Personas": "shadowPersonas.unlock", +"Experimental": "shadowPersonas.experimental", +"Shadow Personas is an experimental feature that analyzes conversations and generates alternative perspectives and insights in parallel.": "shadowPersonas.experimentalInfo", +"No Output Yet": "shadowPersonas.noOutput.title", +"This Shadow Persona hasn't generated any output yet": "shadowPersonas.noOutput.description", +"Save this conversation to enable Shadow Persona processing": "shadowPersonas.saveToEnableProcessing", +"Delete Shadow Persona": "shadowPersonas.delete.title", +"Are you sure you want to delete \"{name}\"? \"{name}\" will be deleted from all the conversations it is attached to. This action cannot be undone.": "shadowPersonas.delete.confirmMessage", +"Successfully deleted the shadow persona": "shadowPersonas.delete.successMessage", +"Failed to delete the shadow persona": "shadowPersonas.delete.errorMessage", +"Detach Shadow Persona": "shadowPersonas.detach.title", +"Detach": "shadowPersonas.detach.action", +"Detach \"{name}\" from this conversation? The shadow persona will remain available for other conversations.": "shadowPersonas.detach.confirmMessage", +"Successfully detached the shadow persona": "shadowPersonas.detach.successMessage", +"Failed to detach the shadow persona": "shadowPersonas.detach.errorMessage", +"Successfully switched the shadow persona": "shadowPersonas.switch.successMessage", +"Failed to switch the shadow persona": "shadowPersonas.switch.errorMessage", +"Successfully updated the shadow persona": "shadowPersonas.editToast.successMessage", +"Failed to update the shadow persona": "shadowPersonas.editToast.errorMessage", +"Successfully created the shadow persona": "shadowPersonas.createToast.successMessage", +"Failed to create the shadow persona": "shadowPersonas.createToast.errorMessage", +"Queue Cleared": "shadowPersonas.queueClearedToast.summary", +"Cancelled {cancelledCount} queued item | Cancelled {cancelledCount} queued items": "shadowPersonas.queueClearedToast.detail", +"Queue Updated": "shadowPersonas.queueUpdatedToast.summary", +"Cancelled {cancelledCount} auto-triggered item | Cancelled {cancelledCount} auto-triggered items": "shadowPersonas.queueUpdatedToast.detail", +"Queue Full": "shadowPersonas.queueFullToast.summary", +"Processing queue is full. Please wait for current items to complete": "shadowPersonas.queueFullToast.detail", +"Already Processing": "shadowPersonas.alreadyProcessingToast.summary", +"This conversation is already being processed": "shadowPersonas.alreadyProcessingToast.detail", +"Every Message": "shadowPersonas.trigger.everyMessage", +"Every {n} Messages": "shadowPersonas.trigger.everyNMessages", +"Manual Only": "shadowPersonas.trigger.manual", +"Automatic": "shadowPersonas.trigger.automatic", +"Runs after each message (fastest, more frequent)": "shadowPersonas.triggerHints.everyMessage", +"Runs after {n} messages (batched)": "shadowPersonas.triggerHints.everyNMessages", +"Only when you click Process Now": "shadowPersonas.triggerHints.manual", +"Auto": "shadowPersonas.synthesis.auto", +"Combined Analysis": "shadowPersonas.synthesis.combined", +"Per Split": "shadowPersonas.synthesis.perSplit", +"Comparative": "shadowPersonas.synthesis.comparative", +"Picks the best mode based on splits and intent": "shadowPersonas.synthesisHints.auto", +"One summary across all splits": "shadowPersonas.synthesisHints.combined", +"Keep each split separate and labeled": "shadowPersonas.synthesisHints.perSplit", +"Side-by-side differences and agreements": "shadowPersonas.synthesisHints.comparative", +"Auto will use Combined because only one split is present.": "shadowPersonas.synthesisAutoReasons.singleSplit", +"Auto will use Comparative because multiple models are in use.": "shadowPersonas.synthesisAutoReasons.multipleModels", +"Auto will use Per Split because splits use the same model.": "shadowPersonas.synthesisAutoReasons.sameModel", +"Insights": "shadowPersonas.format.insights", +"Summary": "shadowPersonas.format.summary", +"Recommendations": "shadowPersonas.format.recommendations", +"Analysis": "shadowPersonas.format.analysis", +"Locate splits": "shadowPersonas.locateSplits", +"Manage Splits": "shadowPersonas.manageSplits", +"Add all splits": "shadowPersonas.addAllSplits", +"Select all": "shadowPersonas.selectAll", +"{count} of {total} selected": "shadowPersonas.selectedCount", +"Streaming": "shadowPersonas.streaming", +"Starting": "shadowPersonas.starting", +"Collecting context from splits...": "shadowPersonas.collectingContext", +"Waiting for conversation to complete": "shadowPersonas.waitingForConversationCompletion", +"Analyzing conversation splits...": "shadowPersonas.analyzingConversationSplits", +"Shadow Persona will analyze once all responses are received": "shadowPersonas.analyzeResponses", +"Tool Calls": "shadowPersonas.toolCalls", +"Reasoning": "shadowPersonas.reasoning", +"Attach Existing": "shadowPersonas.attachExisting", +"Attach Shadow Persona": "shadowPersonas.attachTitle", +"Previous Version": "shadowPersonas.previousVersion", +"Next Version": "shadowPersonas.nextVersion", +"Attach": "shadowPersonas.attach", +"Select a shadow persona to attach to this conversation": "shadowPersonas.selectShadowPersonaToAttach", +"Choose a shadow persona to attach": "shadowPersonas.selectShadowPersonaPlaceholder", +"Queued #{position}": "shadowPersonas.queuedPosition", +"Add to Queue": "shadowPersonas.addToQueue", +"Processing Queue": "shadowPersonas.processingQueue", +"Remove from Queue": "shadowPersonas.removeFromQueue", +"Removed from queue": "shadowPersonas.removedFromQueue", +"in queue": "shadowPersonas.inQueue", +"Clear All": "shadowPersonas.clearQueue", +"No items in queue": "shadowPersonas.queueEmpty", +"Est. wait: {time}": "shadowPersonas.estimatedWait", +"{count} item in queue | {count} items in queue": "shadowPersonas.queuedItems", +"Monitoring & Queue": "shadowPersonas.monitoring", +"Monitored Splits": "shadowPersonas.monitoredSplits", +"Toolbox": "toolbox.title", +"Msty @:remoteToolsConnector.title is not running; tools usage will be skipped.": "toolbox.toolsUsageWillSkip", +"Tool | Tools": "toolbox.tools.title", +"A collection of tools to help you with your LLM work.": "toolbox.tools.description", +"Available Tools": "toolbox.tools.availableTools", +"Available Toolsets": "toolbox.tools.availableToolsets", +"Set Default Parameters": "toolbox.tools.setDefaultParams", +"Set Parameters": "toolbox.tools.setParams", +"This dependency seems to be missing from your environment. Without this, the tool may not work as expected.": "toolbox.tools.missingThisDependency", +"Default Parameters for {toolName}": "toolbox.tools.defaultParamsForm.header", +"These parameters will be used globally for all instances of {toolName} tool. You can override these when creating a toolset.": "toolbox.tools.defaultParamsForm.description", +"Arguments": "toolbox.tools.defaultParamsForm.args.label", +"@:select an @:argument and set its value. Leave it blank to skip setting a value.": "toolbox.tools.defaultParamsForm.args.description", +"Custom @:argument": "toolbox.tools.defaultParamsForm.args.customArg.label", +"Enter the name of the new @:argument{'.'} Separate multiple arguments with a comma.": "toolbox.tools.defaultParamsForm.args.customArg.description", +"eg. --arg1, someArg, -verbose": "toolbox.tools.defaultParamsForm.args.customArg.placeholder", +"Environment Variables": "toolbox.tools.defaultParamsForm.env.label", +"@:select or enter a new Environment @:variable and set its value.": "toolbox.tools.defaultParamsForm.env.description", +"Add Environment @:variable": "toolbox.tools.defaultParamsForm.env.addEnv", +"@:select an Environment @:variable": "toolbox.tools.defaultParamsForm.env.selectPlaceholder", +"Add a new Environment @:variable": "toolbox.tools.defaultParamsForm.env.enterNew", +"Default parameters saved for {toolName}.": "toolbox.tools.defaultParamsForm.successMessage.saveDetail", +"Failed to save default parameters.": "toolbox.tools.defaultParamsForm.errorMessage.saveDetail", +"Add New Tool": "toolbox.tools.addNewTool.title", +"Add your own MCP compatible tool to the toolbox. Once added, you can add it to a toolset, set parameters, and use it with a model.": "toolbox.tools.addNewTool.description", +"Give it a name (uses the tool ID by default)": "toolbox.tools.addNewTool.namePlaceholder", +"Tool ID": "toolbox.tools.addNewTool.id.label", +"Unique tool identifier (auto-filled if detected from config)": "toolbox.tools.addNewTool.id.placeholder", +"Tool with this ID already exists. Please enter a unique ID.": "toolbox.tools.addNewTool.duplicateId", +"Tool Added": "toolbox.tools.addNewTool.successMessage.summary", +"Tool added to the toolbox. You can now add it to a toolset and use it with a model.": "toolbox.tools.addNewTool.successMessage.detail", +"Tool added to the toolbox and a matching toolset was created. It's ready to use with a model.": "toolbox.tools.addNewTool.successMessageWithToolset.detail", +"Failed to add tool to the toolbox. {error}": "toolbox.tools.addNewTool.errorMessage.detail", +"Tool Configuration": "toolbox.tools.addNewTool.toolConfig.label", +"Enter or paste tool configuration JSON. Accepts direct config or wrapped formats (will auto-extract toolId)": "toolbox.tools.addNewTool.toolConfig.placeholder", +"Show me an example of a tool configuration": "toolbox.tools.addNewTool.toolConfig.showExampleTitle", +"The tool configuration accepts multiple formats including wrapped configs with mcpServers. It will auto-extract the toolId and name when possible. Must contain at minimum {command}. Dynamic arguments need to be wrapped in curly braces {curly} like so: {argExample}. Similarly, dynamic environment variables can be set using {envVarLabel}.": "toolbox.tools.addNewTool.toolConfig.explanation", +"Auto-create toolset with same name": "toolbox.tools.addNewTool.autoCreateToolset.label", +"Edit Tool": "toolbox.tools.editTool.title", +"Update the name, notes, and configuration of the tool.": "toolbox.tools.editTool.description", +"Tool @:updatedSuccess": "toolbox.tools.editTool.successMessage.detail", +"@:failedToUpdate tool.": "toolbox.tools.editTool.errorMessage.detail", +"Use external MCP tools powered by Msty @:remoteToolsConnector.title to extend your models' capabilities and enhance your LLM experience.": "toolbox.tools.emptyPlaceholder.description1", +"You can get started by importing many of the tools that Msty ships with or adding your own tools.": "toolbox.tools.emptyPlaceholder.description2", +"Note: These tools are not provided, tested, or maintained by Msty. We are merely providing a platform to use these and allowing to import them as a convenience. PLEASE USE THEM AT YOUR OWN RISK. Msty is not responsible for any issues that may arise from using these tools. Also, for support, please reach out to the tool's author.": "toolbox.tools.emptyPlaceholder.description3", +"Import Default @:toolbox.tools.title": "toolbox.tools.importTools.title", +"{count} default tools imported successfully. You can create toolsets and use them with a model.": "toolbox.tools.importTools.successMessage.detail", +"{count} default tools imported successfully and {toolsetCount} corresponding toolsets auto-created.": "toolbox.tools.importTools.successMessageWithToolsets.detail", +"Failed to import default @:toolbox.tools.title": "toolbox.tools.importTools.errorMessage.detail", +"Delete Tool": "toolbox.tools.deleteConfirmation.header", +"Are you sure you want to delete {toolName}?": "toolbox.tools.deleteConfirmation.description", +"Tool deleted": "toolbox.tools.deleteConfirmation.successMessage.detail", +"@:failedToDelete tool": "toolbox.tools.deleteConfirmation.errorMessage.detail", +"Delete All Tools": "toolbox.tools.deleteAll.confirmationHeader", +"Are you sure you want to delete all tools? This action cannot be undone.": "toolbox.tools.deleteAll.confirmationMessage", +"All tools have been deleted successfully": "toolbox.tools.deleteAll.successMessage", +"Failed to delete all tools": "toolbox.tools.deleteAll.errorMessage", +"Tool configuration copied to clipboard": "toolbox.tools.copiedToClipboard", +"View Tools Usage": "toolbox.tools.viewToolsUsage.title", +"No Tool Calls Found": "toolbox.tools.viewToolsUsage.noToolCalls.title", +"It seems there were some tools being able to the model but it did not make any tool calls. This could be because the model did not need to use any tools.": "toolbox.tools.viewToolsUsage.noToolCalls.description", +"Toolset | Toolsets": "toolbox.toolsets.title", +"No Toolsets found": "toolbox.toolsets.emptyPlaceholder.title", +"Toolsets are a collection of tools with parameters. You can create a toolset and add tools to it. When chatting with a model, you can select one or multiple toolsets to use with the model.": "toolbox.toolsets.emptyPlaceholder.description", +"Please add some tools to get started.": "toolbox.toolsets.addSomeTools", +"No tools in this toolset": "toolbox.toolsets.noTools", +"Enabled features": "toolbox.toolsets.tooltip.selectedFeatures", +"Loading feature details…": "toolbox.toolsets.tooltip.loading", +"All features": "toolbox.toolsets.tooltip.allFeatures", +"Unable to load feature details": "toolbox.toolsets.tooltip.unavailable", +"Add New @:toolbox.toolsets.title": "toolbox.toolsets.addNewToolset.title", +"Create a new toolset to group tools together. You can add tools to the toolset and use it with a model. Make sure to set/overwrite the parameters for each tool in the toolset by clicking {icon} button.": "toolbox.toolsets.addNewToolset.description", +"Set Parameters for {toolName}": "toolbox.toolsets.addNewToolset.setParams.title", +"Set parameters for the {toolName} tool. You can override the default parameters set for the tool. Use the Tool Console to test the tool, view available features, and limit features if needed.": "toolbox.toolsets.addNewToolset.setParams.description", +"Toolset saved and added to the toolbox. You can now use it with a model.": "toolbox.toolsets.addNewToolset.successMessage.saveDetail", +"@:failedToSave toolset.": "toolbox.toolsets.addNewToolset.errorMessage.saveDetail", +"Edit Toolset": "toolbox.toolsets.editToolset.title", +"Edit the name and notes of the toolset. You can also add or remove tools from the toolset and tweak the parameters or limit features for each tool by clicking {icon} button.": "toolbox.toolsets.editToolset.description", +"Toolset @:updatedSuccess": "toolbox.toolsets.editToolset.successMessage.detail", +"@:failedToUpdate toolset.": "toolbox.toolsets.editToolset.errorMessage.detail", +"Delete Toolset": "toolbox.toolsets.deleteConfirmation.header", +"Are you sure you want to delete {toolsetName}?": "toolbox.toolsets.deleteConfirmation.description", +"Toolset deleted": "toolbox.toolsets.deleteConfirmation.successMessage.detail", +"@:failedToDelete toolset": "toolbox.toolsets.deleteConfirmation.errorMessage.detail", +"Delete All Toolsets": "toolbox.toolsets.deleteAll.confirmationHeader", +"Are you sure you want to delete all toolsets? This action cannot be undone.": "toolbox.toolsets.deleteAll.confirmationMessage", +"All toolsets have been deleted successfully": "toolbox.toolsets.deleteAll.successMessage", +"Failed to delete all toolsets": "toolbox.toolsets.deleteAll.errorMessage", +"Export @:toolbox.toolsets.title": "toolbox.toolsets.export.title", +"For security, sensitive configuration values can be removed before exporting. Select which environment variables and arguments to scrub for each tool.": "toolbox.toolsets.export.description", +"Environment variables to scrub": "toolbox.toolsets.export.envVarsToScrub", +"Arguments to scrub": "toolbox.toolsets.export.argsToScrub", +"Scrub custom arguments string": "toolbox.toolsets.export.scrubCustomArgs", +"Select environment variables to remove values": "toolbox.toolsets.export.selectEnvVarsPlaceholder", +"Select arguments to remove values": "toolbox.toolsets.export.selectArgsPlaceholder", +"No configuration data to scrub": "toolbox.toolsets.export.noScrubbableData", +"Common sensitive values are pre-selected for your security.": "toolbox.toolsets.export.sensitiveDataNote", +"Toolset configuration copied to clipboard": "toolbox.toolsets.export.copiedToClipboard", +"Toolset configuration downloaded": "toolbox.toolsets.export.downloadedAsJson", +"Failed to fetch toolset data for export": "toolbox.toolsets.export.fetchError", +"Some tools were not found and skipped: {tools}": "toolbox.toolsets.import.missingTools", +"{count} tool | {count} tools": "toolbox.toolsets.noOfTools", +"View Tools & Notes": "toolbox.toolsets.viewToolsAndNotes", +"Tool Console": "toolbox.toolsets.console.title", +"You can use this console to test {toolName} and see the output. You can also use it to test the tool with different parameters or limit the available features. All features are enabled by default, select the checkboxes to limit the features to only those selected.": "toolbox.toolsets.console.description", +"List {toolName}'s Features": "toolbox.toolsets.console.listTools", +"Missing {count} Required @:argument": "toolbox.toolsets.console.missingRequiredArgument", +"@:continue with Missing @:argument": "toolbox.toolsets.console.continueWithMissingArgs", +"View Source on GitHub": "toolbox.toolsets.console.viewSourceOnGitHub", +"Enable specific features for this tool": "toolbox.toolsets.console.allowedFeaturesLabel", +"Search or pick features to allow": "toolbox.toolsets.console.allowedFeaturesPlaceholder", +"Currently enabled features": "toolbox.toolsets.console.selectedFeaturesLabel", +"Tool Call": "toolbox.toolsets.console.toolCall.title", +"Add the required properties to call {featureName}. You can add extra properties if you want. Be careful with calling the tool just like that esp. without the right values.": "toolbox.toolsets.console.toolCall.description", +"@:select a property": "toolbox.toolsets.console.toolCall.selectPlaceholder", +"Add a new property": "toolbox.toolsets.console.toolCall.enterNew", +"Execute @:toolbox.toolsets.console.toolCall": "toolbox.toolsets.console.toolCall.execute", +"Click to manage used toolsets": "toolbox.toolsets.manageTooltip", +"@:select model may not support tools.": "toolbox.toolsets.noModelSupport", +"{count} Active Toolset | {count} Active Toolsets": "toolbox.toolsets.toolsetsUsedCount", +"{count} Active Live Context | {count} Active Live Contexts": "liveContexts.liveContextsUsedCount", +"Live @:context": "liveContexts.title", +"Live Contexts": "liveContexts.contexts", +"Untitled Live Context": "liveContexts.untitled", +"Select Source": "liveContexts.selectSource", +"Toggle to include or exclude this source from the context": "liveContexts.selectSourceTooltip", +"Add New @:liveContexts.title": "liveContexts.addNew.title", +"Create a new @:liveContexts.title source to add external data context to your conversation.": "liveContexts.addNew.description", +"Failed to add @:liveContexts.title": "liveContexts.addNew.errorMessage.detail", +"@:liveContexts.title added": "liveContexts.addNew.successMessage.detail", +"Edit @:liveContexts.title": "liveContexts.edit.title", +"Provide a prompt for Push-mode here; include any Pull-mode details in the Notes section.": "liveContexts.promptPlaceholder", +"Endpoint Details": "liveContexts.endpointDetails", +"URL": "liveContexts.url", +"Custom Headers": "liveContexts.customHeaders", +"Has Body": "liveContexts.hasBody", +"Custom Processing": "liveContexts.customProcessing", +"Prompt Template": "liveContexts.promptTemplate", +"Request Headers": "liveContexts.requestHeaders.title", +"Add request headers as a JSON object. This will be sent with the request to the API endpoint.": "liveContexts.requestHeaders.description", +"{'{'}\n \"Authorization\": \"Bearer {'{'}apiKey:'key'{'}'}\",\n \"X-From\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}": "liveContexts.requestHeaders.placeholder", +"Request Body": "liveContexts.requestBody.title", +"Add request body as a JSON object. This will be sent with the request to the API endpoint.": "liveContexts.requestBody.description", +"{'{'}\n \"q\": \"{'{'}query:'term'{'}'}\",\n \"from\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}": "liveContexts.requestBody.placeholder", +"Dynamic Placeholders": "liveContexts.placeholders.title", +"Placeholder syntax": "liveContexts.placeholders.tooltip", +"Placeholders:": "liveContexts.placeholders.label", +"Processing Function": "liveContexts.processingFunction.title", +"Add a processing function to transform the response data before using it in the conversation. The function should return a string.": "liveContexts.processingFunction.description", +"function process({'{'}data, placeholders{'}'}) {'{'}": "liveContexts.processingFunction.placeholderHeader", +" // access data and optional placeholders\n return JSON.stringify(data)": "liveContexts.processingFunction.placeholder", +"{'}'}": "liveContexts.processingFunction.placeholderFooter", +"Access via placeholders param": "liveContexts.processingFunction.tooltip", +"Use placeholders in code:": "liveContexts.processingFunction.usePlaceholders", +"Enter test values for detected placeholders to test the endpoint.": "liveContexts.testVariables.description", +"@:liveContexts.title updated": "liveContexts.update.successMessage.detail", +"Failed to update @:liveContexts.title": "liveContexts.update.errorMessage.detail", +"Delete @:liveContexts.title": "liveContexts.deleteConfirmation.header", +"Are you sure you want to delete {liveContextName}?": "liveContexts.deleteConfirmation.description", +"@:liveContexts.title deleted": "liveContexts.deleteConfirmation.successMessage.detail", +"Failed to delete @:liveContexts.title": "liveContexts.deleteConfirmation.errorMessage.detail", +"No @:liveContexts.title found": "liveContexts.emptyPlaceholder.title", +"@:liveContexts.title are external data contexts that you can add to your conversation. You can create a new @:liveContexts.title source and use it with a model.": "liveContexts.emptyPlaceholder.description", +"Delete All @:liveContexts.contexts": "liveContexts.deleteAll.confirmationHeader", +"Are you sure you want to delete all live contexts? This action cannot be undone.": "liveContexts.deleteAll.confirmationMessage", +"All live contexts have been deleted successfully": "liveContexts.deleteAll.successMessage", +"Failed to delete all live contexts": "liveContexts.deleteAll.errorMessage", +"Export @:liveContexts.title": "liveContexts.export.title", +"For security, sensitive header values can be removed before exporting. Select which headers to scrub.": "liveContexts.export.headerScrubDescription", +"Headers to scrub": "liveContexts.export.selectHeadersToScrub", +"Select headers to remove values": "liveContexts.export.selectHeadersPlaceholder", +"Common sensitive headers are pre-selected for your security.": "liveContexts.export.sensitiveHeadersNote", +"Live context configuration copied to clipboard": "liveContexts.export.copiedToClipboard", +"Live context configuration downloaded": "liveContexts.export.downloadedAsJson", +"Push": "liveContexts.mode.push", +"Pull": "liveContexts.mode.pull", +"Push mode: runs automatically before the model replies": "liveContexts.mode.tooltip.push", +"Pull mode: called on-demand by model": "liveContexts.mode.tooltip.pull", +"Mode | Modes": "modes.mode", +"@:modes.mode": "modes.title", +"Exit {mode} @:modes.mode": "modes.exitMode", +"Zen": "modes.zenMode.title", +"a state of calm attentiveness": "modes.zenMode.quote", +"New @:modes.zenMode.title @:conversation.title": "modes.zenMode.newConversation", +"@:modes.vaporMode.vapor @:modes.mode": "modes.vaporMode.title", +"Vapor": "modes.vaporMode.vapor", +"Conversations will not be saved in your history and will disappear when you turn it off or navigate away": "modes.vaporMode.description", +"This will disappear when you turn off @:modes.vaporMode.vapor @:modes.mode or navigate away": "modes.vaporMode.willDisappearTooltip", +"Exit @:modes.vaporMode.vapor @:modes.mode": "modes.vaporMode.exitVaporMode", +"Enter @:modes.vaporMode.vapor @:modes.mode": "modes.vaporMode.enterVaporMode", +"@:save @:conversation.title": "modes.vaporMode.preserverChat.saveConversation", +"@:modes.vaporMode.vapor chat has been preserved": "modes.vaporMode.preserverChat.successMessage.detail", +"Failed to preserve @:modes.vaporMode.vapor chat": "modes.vaporMode.preserverChat.errorMessage.detail", +"Focus @:modes.mode": "modes.focusMode.title", +"Normal @:modes.mode": "modes.normalMode.title", +"Query": "searchForm.query", +"Search Items": "searchForm.title", +"No results found": "searchForm.noResults.title", +"Try searching for a different term": "searchForm.noResults.description", +"@:conversation.title": "searchForm.entity.conversationTextMessages", +"Found {count} result | Found {count} results": "searchForm.foundResultsCount", +"Search {entity}": "searchForm.labels.title", +"Look up {entity} quickly using keywords": "searchForm.labels.description", +"Search matches all words by default (e.g., {example} → matches text containing both words in any order)": "searchForm.labels.tips.default.description", +"blue car": "searchForm.labels.tips.default.example", +"Use {operator} for partial matches (e.g., {example})": "searchForm.labels.tips.partial.description", +"*": "searchForm.labels.tips.partial.operator", +"run* → runs, running": "searchForm.labels.tips.partial.example", +"@:user {operator} to match any term (e.g., {example})": "searchForm.labels.tips.or.description", +"OR": "searchForm.labels.tips.or.operator", +"apple OR orange": "searchForm.labels.tips.or.example", +"Use double quotes {operator} for exact matches (e.g., {example})": "searchForm.labels.tips.exact.description", +"\"\"": "searchForm.labels.tips.exact.operator", +"\"blue car\"": "searchForm.labels.tips.exact.example", +"Use {operator} to escape special characters (e.g., {example})": "searchForm.labels.tips.specialCharacters.description", +"\"C++\", \"node.js\"": "searchForm.labels.tips.specialCharacters.example", +"Clear Search": "clearSearch", +"Helpful Tips": "helpfulTips", +"Hide Search": "hideSearch", +"@:bookmark {item}": "bookmarkItem.action", +"Jump to @:bookmarked {item}": "bookmarkItem.jump", +"@:bookmarked {item}": "bookmarkItem.title", +"{item} @:bookmarked": "bookmarkItem.successMessage.detail", +"Unable to bookmark {item}": "bookmarkItem.errorMessage.detail", +"@:bookmarked {item} has been deleted": "bookmarkItem.deletedInfoMessage.detail", +"No bookmarks available.": "bookmarkItem.emptyState.title", +"Get started by bookmarking {item}": "bookmarkItem.emptyState.description", +"Remove @:bookmarked {item}": "removeBookmarkedItem.action", +"{item} removed from bookmarks": "removeBookmarkedItem.successMessage.detail", +"Unable to remove {item} from bookmarks": "removeBookmarkedItem.errorMessage.detail", +"Turnstile | Turnstiles": "turnstile.title", +"New @:turnstile.title": "turnstile.newTurnstile", +"@:select a @:turnstile.title": "turnstile.selectPlaceholder", +"Click to open or Alt+Click to add to queue": "turnstile.addQueueWithAlt", +"No Queued @:entry | {count}/{total} @:entry Queued | {count}/{total} @:entry Queued": "turnstile.entriesQueued", +"Once your prompt is ready, click @:turnstile.queueEntry to add an entry to the queue.": "turnstile.emptyQueueMessage", +"Manage Saved Turnstiles": "turnstile.manageSavedTurnstiles", +"Save @:turnstile.title As": "turnstile.saveForm.title", +"@:turnstile.title has been saved.": "turnstile.saveForm.successMessage.detail", +"Failed to save turnstile.": "turnstile.saveForm.errorMessage.detail", +"Load @:turnstile.title": "turnstile.loadTurnstiles.title", +"@:turnstile.title Loaded!": "turnstile.loadTurnstiles.successMessage.summary", +"{count} entry loaded and enqueued. | {count} entries are loaded and enqueued.": "turnstile.loadTurnstiles.successMessage.detail", +"Failed to load turnstile.": "turnstile.loadTurnstiles.errorMessage.detail", +"Clear Queue": "turnstile.clearQueue.title", +"Are you sure you want to clear the queue? This will remove all the messages you have added.": "turnstile.clearQueue.clearQueueConfirmation.message", +"New Entry": "turnstile.newEntry.title", +"Invalid Entries": "turnstile.invalidEntriesMessage.summary", +"Some entries are invalid or missing required fields. Please correct them before continuing.": "turnstile.invalidEntriesMessage.detail", +"Couldn't run {metaType}. Please make sure that it is not the first entry in the queue.": "turnstile.metaSendMissingRootNode.detail", +"@:turnstile.title has been updated.": "turnstile.update.successMessage.detail", +"Failed to update turnstile. Have you set prompt and model?": "turnstile.update.errorMessage.detail", +"Failed to save turnstile. Have you set prompt and model?": "turnstile.save.errorMessage.detail", +"Delete Selected @:turnstile.title | Delete Selected @:turnstile.title": "turnstile.delete.selected", +"Delete @:turnstile.title": "turnstile.delete.deleteConfirmation.header", +"Are you sure you want to delete {turnstileName}? | Are you sure you want to delete {count} turnstiles?": "turnstile.delete.deleteConfirmation.description", +"No @:turnstile.title Available.": "turnstile.empty.title", +"Get started by adding or importing a new @:turnstile.title{'.'}": "turnstile.empty.description", +"@:new @:turnstile.title": "turnstile.new", +"@:entry {index}": "turnstile.entryIndex", +"Add @:message.renderingActions.continueGeneration": "turnstile.addContinue", +"Add @:regenerate": "turnstile.addRegenerate", +"Add @:persona.title": "turnstile.addPersona", +"Add @:contextShield.title": "turnstile.addShield", +"Add @:contextShield.contextShieldWithSummary": "turnstile.addShieldWithSummary", +"Import @:turnstile.title": "turnstile.import.title", +"Drag and drop a zipped Msty @:turnstile.title to import and create new turnstiles. In case of duplicate names, the imported turnstiles will be renamed. You can change it later.": "turnstile.import.dragAndDropMessage", +"Turnstiles imported": "turnstile.import.successMessage.detail", +"Failed to import turnstiles": "turnstile.import.errorMessage.detail", +"Export @:turnstile.title": "turnstile.export.title", +"Export Selected @:turnstile.title | Export Selected @:turnstile.title": "turnstile.export.selected", +"@:turnstile.title exported as {fileName} | @:turnstile.title exported as {fileName}": "turnstile.export.successMessage.detail", +"Failed to export @:turnstile.title | Failed to export @:turnstile.title": "turnstile.export.errorMessage.detail", +"Model Matchmaker": "modelMatchmaker.title", +"Adjust the gravity sliders for strengths like coding, reasoning, or math, and Matchmaker will rank and recommend the best models for your needs. Results may vary by data quality, model size, and task complexity.": "modelMatchmaker.description", +"Found your model?": "modelMatchmaker.ctaIntro", +"Test and compare in Msty Studio.": "modelMatchmaker.ctaMessage", +"Gravity": "modelMatchmaker.gravity", +"Remote Only": "modelMatchmaker.remoteOnly", +"Ranked Models": "modelMatchmaker.rankedModels.title", +"No models found. Try adjusting your requirements.": "modelMatchmaker.rankedModels.emptyMessage", +"Coding": "modelMatchmaker.strengthsLabel.ca.title", +"The ability to write code in a programming language.": "modelMatchmaker.strengthsLabel.ca.description", +"Agentic Coding": "modelMatchmaker.strengthsLabel.aca.title", +"The agentic ability to write code in a programming language.": "modelMatchmaker.strengthsLabel.aca.description", +"@:data Analysis": "modelMatchmaker.strengthsLabel.daa.title", +"The ability to analyze data and generate insights.": "modelMatchmaker.strengthsLabel.daa.description", +"Instructions Following": "modelMatchmaker.strengthsLabel.ifa.title", +"The ability to follow instructions and perform tasks.": "modelMatchmaker.strengthsLabel.ifa.description", +"GOAT: Generalist of All Trades": "modelMatchmaker.strengthsLabel.jak.title", +"The ability to perform a wide range of tasks.": "modelMatchmaker.strengthsLabel.jak.description", +"The ability to understand and generate human language.": "modelMatchmaker.strengthsLabel.la.description", +"Mathematics": "modelMatchmaker.strengthsLabel.ma.title", +"The ability to perform mathematical calculations.": "modelMatchmaker.strengthsLabel.ma.description", +"Paraphrasing": "modelMatchmaker.strengthsLabel.pp.title", +"Demonstrated rewriting ability to rephrase any given text.": "modelMatchmaker.strengthsLabel.pp.description", +"Critical Thinking - the ability to reason and make decisions.": "modelMatchmaker.strengthsLabel.ra.description", +"Simplification": "modelMatchmaker.strengthsLabel.sim.title", +"The ability to simplify any given complex text.": "modelMatchmaker.strengthsLabel.sim.description", +"Story Generation": "modelMatchmaker.strengthsLabel.stg.title", +"The ability to generate stories or narratives.": "modelMatchmaker.strengthsLabel.stg.description", +"Summarization": "modelMatchmaker.strengthsLabel.sum.title", +"The ability of summarizing textual and numerical information.": "modelMatchmaker.strengthsLabel.sum.description", +"Tools Usage": "modelMatchmaker.strengthsLabel.tu.title", +"The ability to call and use external tools.": "modelMatchmaker.strengthsLabel.tu.description", +"Max Input Tokens": "modelMatchmaker.strengthsLabel.mit.title", +"The max no. of tokens accepted in one call.": "modelMatchmaker.strengthsLabel.mit.description", +"The max no. of tokens generated in one call.": "modelMatchmaker.strengthsLabel.mot.description", +"Input Tokens Savings": "modelMatchmaker.strengthsLabel.ics.title", +"Input Cost/Million Tokens": "modelMatchmaker.strengthsLabel.ics.costTitle", +"The cost savings of generating input tokens.": "modelMatchmaker.strengthsLabel.ics.description", +"Output Tokens Savings": "modelMatchmaker.strengthsLabel.ocs.title", +"Output Cost/Million Tokens": "modelMatchmaker.strengthsLabel.ocs.costTitle", +"The cost savings of generating output tokens.": "modelMatchmaker.strengthsLabel.ocs.description", +"Normalized Score": "modelMatchmaker.normalizedScore", +"Reset Strengths": "modelMatchmaker.resetStrengths", +"@:save Strengths As @:preset": "modelMatchmaker.savePresetForm.title", +"Failed to save strengths preset.": "modelMatchmaker.savePresetForm.errorMessage.detail", +"Strengths preset saved.": "modelMatchmaker.savePresetForm.successMessage.detail", +"Strengths preset loaded.": "modelMatchmaker.savePresetForm.loadedMessage.detail", +"Failed to delete strengths preset.": "modelMatchmaker.deletePresetConfirm.errorMessage.detail", +"Strengths preset deleted.": "modelMatchmaker.deletePresetConfirm.successMessage.detail", +"Model Cost Calculator": "costCalculator.title", +"Calculate and compare costs for AI models from OpenAI, Anthropic, Google, and more. Estimate your expenses based on input/output token usage and model pricing. These are estimates only and actual costs may vary.": "costCalculator.description", +"Token Inputs": "costCalculator.tokenInputs", +"Filters": "costCalculator.filters", +"VRAM Calculator": "vramCalculator.title", +"Check to see if a model fits your device's VRAM before downloading or running it. This calculator provides estimated VRAM requirements based on model architecture and size. Select one of the options below to get started.": "vramCalculator.description", +"Copy {item} to Workspaces": "copyOrMoveItemToWorkspace.copyTitle", +"Copy/Move {item} to Workspaces": "copyOrMoveItemToWorkspace.copyOrMoveTitle", +"Action": "copyOrMoveItemToWorkspace.actionLabel", +"Copy {item} to one or more workspaces.": "copyOrMoveItemToWorkspace.inputLabel.copy", +"Copy/Move {item} to one or more workspaces.": "copyOrMoveItemToWorkspace.inputLabel.copyOrMove", +"{item} copied to {count} workspace | {item} copied to {count} workspaces": "copyOrMoveItemToWorkspace.successMessage.copyDetail", +"{item} moved to {count} workspace | {item} moved to {count} workspaces": "copyOrMoveItemToWorkspace.successMessage.moveDetail", +"Failed to copy {item} to {count} workspace | Failed to copy {item} to {count} workspaces": "copyOrMoveItemToWorkspace.errorMessage.copyDetail", +"Failed to move {item} to {count} workspace | Failed to move {item} to {count} workspaces": "copyOrMoveItemToWorkspace.errorMessage.moveDetail", +"Partially Copied": "copyOrMoveItemToWorkspace.partialCopyWarningMessage.summary", +"Could not copy {item} to {count} workspace | Could not copy {item} to {count} workspaces": "copyOrMoveItemToWorkspace.partialCopyWarningMessage.detail", +"Partially Moved": "copyOrMoveItemToWorkspace.partialMovedWarningMessage.summary", +"Could not move {item} to {count} workspace | Could not move {item} to {count} workspaces": "copyOrMoveItemToWorkspace.partialMovedWarningMessage.detail", +"Some workspaces({workspaces}) were skipped because {item} already exists in them": "copyOrMoveItemToWorkspace.existingCopiesInfo", +"Already existing copies of {item} will be skipped.": "copyOrMoveItemToWorkspace.skippingExistingCopies", +"Assignment | Assignments": "assignment", +"Model Squad": "modelSquad.title", +"@:modelSquad.title is a collection of specialized AI models, where each models is assigned to perform a specific task, such as Auto Title Generation, @:context Summary Generation, etc. When it's time to perform that specific task, the assigned model is selected automatically.": "modelSquad.description", +"Add New @:assignment": "modelSquad.addNewAssignment", +"No more tasks available": "modelSquad.noTask", +"Auto Title Generation": "modelSquad.tasks.autoTitleGeneration", +"@:contextShield.title Summary Generation": "modelSquad.tasks.contextShieldSummaryGeneration", +"@:rtd.title Prompt Synthesis": "modelSquad.tasks.realTimeDataPromptSynthesis", +"Forge Content Generation": "modelSquad.tasks.forgeContentGeneration", +"@:pii.scrubbing.title": "modelSquad.tasks.piiScrubbing", +"Icon Finder": "modelSquad.tasks.iconFinder", +"@:assignment saved": "modelSquad.save.successMessage.detail", +"@:assignment failed to save": "modelSquad.save.errorMessage.detail", +"Assign Model for {task}": "modelSquad.assignment.dialog.title", +"Select a model to assign to the {task} task in ModelSquad.": "modelSquad.assignment.dialog.description", +"Select Model": "modelSquad.assignment.dialog.selectModel", +"Choose a model...": "modelSquad.assignment.dialog.selectModelPlaceholder", +"Currently assigned: {model}": "modelSquad.assignment.dialog.currentlyAssigned", +"Unknown model": "modelSquad.assignment.dialog.unknownModel", +"Assign Model": "modelSquad.assignment.dialog.assignButton", +"Change Model": "modelSquad.assignment.dialog.changeButton", +"This model will be used automatically when the {task} task is performed.": "modelSquad.assignment.dialog.helpText", +"Model assigned to {task} successfully!": "modelSquad.assignment.success", +"Please select a model to assign.": "modelSquad.assignment.errors.noModelSelected", +"Failed to save model assignment. Please try again.": "modelSquad.assignment.errors.saveFailed", +"PII (Personally Identifiable Information)": "pii.title", +"PII Scrubbing": "pii.scrubbing.title", +"Automatically detect and remove personally identifiable information from Knowledge Stack content before displaying it in conversations.": "pii.scrubbing.description", +"Using {model} for PII detection and removal.": "pii.scrubbing.info.modelAssigned", +"No model assigned for @:pii.scrubbing.title in ModelSquad. Knowledge Stack retrieval will fail until a model is assigned.": "pii.scrubbing.warning.noModel", +"@:pii.scrubbing.title configuration error - aborting Knowledge Stack retrieval for security": "pii.scrubbing.warning.configurationError", +"Error setting up @:pii.scrubbing.title - aborting Knowledge Stack retrieval": "pii.scrubbing.warning.setupError", +"[PERSON_NAME]": "pii.scrubbing.placeholders.personName", +"[EMAIL_ADDRESS]": "pii.scrubbing.placeholders.emailAddress", +"[PHONE_NUMBER]": "pii.scrubbing.placeholders.phoneNumber", +"[ADDRESS]": "pii.scrubbing.placeholders.address", +"[ID_NUMBER]": "pii.scrubbing.placeholders.idNumber", +"[CREDIT_CARD]": "pii.scrubbing.placeholders.creditCard", +"[BANK_ACCOUNT]": "pii.scrubbing.placeholders.bankAccount", +"[IP_ADDRESS]": "pii.scrubbing.placeholders.ipAddress", +"[DATE_OF_BIRTH]": "pii.scrubbing.placeholders.dateOfBirth", +"Personal Identifiers": "pii.scrubbing.categories.personalIdentifiers", +"Contact Information": "pii.scrubbing.categories.contactInformation", +"Financial Information": "pii.scrubbing.categories.financialInformation", +"Medical Information": "pii.scrubbing.categories.medicalInformation", +"Digital Identifiers": "pii.scrubbing.categories.digitalIdentifiers", +"Biometric Data": "pii.scrubbing.categories.biometricData", +"Location Data": "pii.scrubbing.categories.locationData", +"Persona | Personas": "persona.title", +"New @:persona.title": "persona.newPersona", +"Active @:persona.title": "persona.activePersona", +"No @:persona.title Available.": "persona.empty.title", +"Get started by adding or importing a new @:persona.title{'.'} You can also import default Personas to get started.": "persona.empty.description", +"@:contextShield.title Position": "persona.contextShieldPosition", +"@:persona.title saved": "persona.save.successMessage.detail", +"@:persona.title failed to save": "persona.save.errorMessage.detail", +"@:persona.title updated": "persona.update.successMessage.detail", +"Could not update @:persona.title": "persona.update.errorMessage.detail", +"Delete Selected @:persona.title": "persona.delete.selected", +"Delete @:persona.title": "persona.delete.deleteConfirmation.header", +"Are you sure you want to delete {personaName}? | Are you sure you want to delete {count} @:persona.title{'?'}": "persona.delete.deleteConfirmation.description", +"@:persona.title deleted | @:persona.title deleted": "persona.delete.successMessage.detail", +"Could not delete @:persona.title | Could not delete @:persona.title": "persona.delete.errorMessage.detail", +"Import @:persona.title": "persona.import.title", +"Drag and drop a zipped Msty @:persona.title to import and create new Personas. In case of duplicate names, the imported Personas will be renamed. You can change it later.": "persona.import.dragAndDropMessage", +"Personas imported": "persona.import.successMessage.detail", +"Failed to import Personas": "persona.import.errorMessage.detail", +"Export @:persona.title": "persona.export.title", +"Export Selected @:persona.title | Export Selected @:persona.title": "persona.export.selected", +"@:persona.title exported as {fileName} | @:persona.title exported as {fileName}": "persona.export.successMessage.detail", +"Failed to export @:persona.title | Failed to export @:persona.title": "persona.export.errorMessage.detail", +"New Folder at Root": "persona.createRootFolder", +"Set as Default Folder": "persona.setDefaultFolder", +"Unset Default Folder": "persona.unsetDefaultFolder", +"@:folder updated": "persona.folderForm.updateSuccessMessage.detail", +"Failed to update @:folder": "persona.folderForm.updateErrorMessage.detail", +"@:folder created": "persona.folderForm.createSuccessMessage.detail", +"Failed to create @:folder": "persona.folderForm.createErrorMessage.detail", +"Delete @:folder": "persona.folderForm.deleteConfirmation.header", +"Are you sure you want to delete {folderName} with all its @:persona.title{'?'}": "persona.folderForm.deleteConfirmation.message", +"@:folder deleted": "persona.folderForm.deleteConfirmation.successMessage.detail", +"Failed to delete @:folder": "persona.folderForm.deleteConfirmation.errorMessage.detail", +"@:select a @:persona.title": "persona.selectPlaceholder", +"Turn Auto Responder On": "persona.autoResponder.turnOn", +"Turn Auto Responder Off": "persona.autoResponder.turnOff", +"Hide and Isolate System Prompt": "persona.hideAndIsolateSystemPrompt", +"Isolate Response": "persona.isolateResponse", +"Auto Responder": "persona.autoResponderDefault", +"Context Count": "persona.contextMessageCount.title", +"Set the number of recent messages to use as context for the @:persona.title{'.'}": "persona.contextMessageCount.description", +"Few-Shot Prompts": "fewShotPrompts.title", +"Few-shot learning is a machine learning technique that allows you to train a model with a small amount of data. You can use few-shot prompts to provide examples to the model to help it understand the context and generate better responses.": "fewShotPrompts.description", +"Add New Shot": "fewShotPrompts.addNewShot", +"Cost": "cost", +"Cost in USD": "costInUSD", +"Prompt Tokens": "promptTokens", +"Completion Tokens": "completionTokens", +"Total Tokens": "totalTokens", +"Usage": "usage", +"Tokens": "tokens", +"Tokens Processed": "tokensProcessed", +"@:select a provider | @:select providers": "selectProvider", +"Tokens Processed for {provider}": "tokensProcessedForProvider", +"Total Usage": "totalUsage", +"From {from} to {to}": "fromTo", +"Crunching the numbers": "crunchingTheNumbers", +"Throughput for {model}": "throughputForModel.title", +"Measured in tokens per second": "throughputForModel.unit.description", +"Latency for {model}": "latencyForModel.title", +"Measured in seconds": "latencyForModel.unit.description", +"Total": "total", +"Min": "min", +"Max": "max", +"Avg": "avg", +"Today": "dates.today", +"Last 7 days": "dates.last7Days", +"Last 14 days": "dates.last14Days", +"Last 30 days": "dates.last30Days", +"Last 3 months": "dates.last3Months", +"Last 6 months": "dates.last6Months", +"Last 12 months": "dates.last12Months", +"Month to date": "dates.monthToDate", +"Year to date": "dates.yearToDate", +"All time": "dates.allTime", +"@:select date range": "dates.selectDateRange", +"Month": "dates.month", +"Year": "dates.year", +"Day": "dates.day", +"Week": "dates.week", +"Insights Summary": "insightsSummary.emptyState.title", +"No data available for the selected date range and providers.": "insightsSummary.emptyState.description", +"No data available for the selected date range and provider.": "insightsProviderTokensProcessed.emptyState.description", +"Throughput": "insightsProviderThroughput.emptyState.title", +"No data available for the selected date range, provider and model.": "insightsProviderThroughput.emptyState.description", +"Latency": "insightsProviderLatency.emptyState.title", +"Hide {item}": "hideItem.action", +"{item} has been hidden": "hideItem.successMessage.detail", +"Unable to hide {item}": "hideItem.errorMessage.detail", +"Unhide Parent {item}": "hideItem.unhideParent", +"Hidden Parent Content. Click to unhide.": "hideItem.hiddenParentContentTitle", +"Show {item}": "showItem.action", +"Failed to verify license. Please try again.": "licenseVerification.errorMessage", +"Enter Aurum License Key": "licenseVerification.enterLicenseKey", +"You are using the {licenseType} license.": "licenseVerification.licenseTypeInfo", +"License Key": "licenseVerification.licenseKey", +"Logout": "licenseVerification.logout", +"You are using the {licenseType} license and logged in as Owner.": "licenseVerification.licenseTypeInfoForAdmin", +"Activate Aurum License": "aurum.activateLicense", +"Enter your license key to unlock premium features": "aurum.activateLicenseDescription", +"Manage License": "aurum.manageLicense", +"Aurum Lifetime": "aurum.lifetimeLicense", +"One-time purchase with lifetime access to premium features": "aurum.lifetimeLicenseDescription", +"Aurum Annual": "aurum.annualLicense", +"Yearly subscription with continuous updates and premium features": "aurum.annualLicenseDescription", +"One-time purchase": "aurum.oneTimePurchase", +"Yearly subscription": "aurum.yearlySubscription", +"Verify & Activate": "aurum.verifyAndActivate", +"Deactivate License": "aurum.deactivateLicense", +"Licensed to": "aurum.licensedTo", +"Expires on": "aurum.expiresOn", +"Expired": "aurum.expired", +"Expires in {days} days": "aurum.expiresInDays", +"Need a license?": "aurum.needLicense", +"Purchase at msty.ai": "aurum.purchaseLicense", +"Already have a license?": "aurum.hasLicense", +"Manage Activation": "aurum.manageActivation", +"{item} has been cloned": "cloneItem.successMessage.detail", +"Unable to clone {item}": "cloneItem.errorMessage.detail", +"Clone to {item}": "cloneItemTo.action", +"Successfully cloned to a new {item} ": "cloneItemTo.successMessage.detail", +"Unable to clone to a new {item}": "cloneItemTo.errorMessage.detail", +"Import {item} from JSON Clipboard": "importJson.clipboardTitle", +"Import {item} from JSON File": "importJson.fileTitle", +"{count} {item} imported successfully": "importJson.successMessage.detail", +"@:importJson.successMessage.detail {item} to {destination}": "importJson.successMessage.detailDestination", +"{count} {item} imported successfully and corresponding toolsets auto-created": "importJson.successMessageWithToolsets.detail", +"Invalid config or nothing to import. Please make sure the JSON is valid and try again.": "importJson.invalidConfig.detail", +"Failed to import. Please check the JSON and try again.": "importJson.errorMessage.detail", +"Failed to import {failed} items: {items}": "importJson.partialError.detail", +"Drag and drop a JSON file to import {item}.": "importJson.dragAndDropMessage", +"Team | Teams": "team.label", +"@:create @:team.label": "team.createTeam", +"Invite User": "team.inviteUserLabel", +"Overview": "team.overview", +"Users": "team.usersLabel", +"All Teams": "team.allTeamLabel", +"Team {teamName} successfully created.": "team.createSuccess", +"Member|Members": "team.member", +"All Users": "team.allUsers", +"Create New Team": "team.addTeamFormHeader", +"Edit Team": "team.updateTeamFormHeader", +"Add Users": "team.addUsers", +"Update Users": "team.updateUsers", +"Add Users to Team": "team.addUserToTeam", +"Team Name": "team.teamNameLabel", +"Enter the new team name": "team.teamNamePlaceholder", +"Create a new team to manage resources.": "team.addTeamDescription", +"No users assigned to this team.": "team.noUserInTeam", +"Invited": "team.invited", +"Manage your teams and users.": "team.shortDescription", +"A team is used to manage resources. You can add users to the team to collaborate and share access to resources.": "team.empty.description", +"Delete Team": "team.deleteConfirmation.header", +"Are you sure you want to delete": "team.deleteConfirmation.message", +"Please type {name} to confirm deletion.": "team.deleteConfirmation.inputPlaceholder", +"Policy | Policies": "team.policies.title", +"@:toolbox.title": "team.policies.toolbox.title", +"Allow user to use Toolbox feature": "team.policies.toolbox.description", +"@:promptsLibrary.title": "team.policies.promptsLibrary.title", +"Allow user to use Prompts Library feature": "team.policies.promptsLibrary.description", +"@:persona.title": "team.policies.persona.title", +"Allow user to use Persona feature": "team.policies.persona.description", +"@:turnstile.title": "team.policies.turnstile.title", +"Allow user to use Turnstile feature": "team.policies.turnstile.description", +"@:knowledgeStack.title": "team.policies.knowledgeStack.title", +"Allow user to use Knowledge Stack feature": "team.policies.knowledgeStack.description", +"Allow user to use @:remoteToolsConnector.title feature": "team.policies.remoteToolsConnector.description", +"@:rtd.title": "team.policies.rtd.title", +"Allow user to use @:rtd.title feature": "team.policies.rtd.description", +"@:attachments.title": "team.policies.attachments.title", +"Allow user to use @:attachments.title feature": "team.policies.attachments.description", +"@:forge.forgeMode.title": "team.policies.forgeMode.title", +"Allow user to use @:forge.forgeMode.title feature": "team.policies.forgeMode.description", +"@:insights": "team.policies.insights.title", +"Allow user to use @:insights feature": "team.policies.insights.description", +"Msty Studio Web Access": "team.policies.platformWeb.title", +"Allow user to access Msty Studio from web browser": "team.policies.platformWeb.description", +"Msty Studio Desktop Access": "team.policies.platformDesktop.title", +"Allow user to access Msty Studio from desktop application": "team.policies.platformDesktop.description", +"Platform Access": "team.policies.platformAccess", +"Manage access to specific model providers.": "team.policies.modelHub.description", +"You have reached your limit to invite users.": "team.user.noAvailableSeats", +"Logged In As": "team.user.licenceAndAccess.loggedInAsLabel", +"A secure login link will be sent to the provided email address. Aurum license holders must verify their license key before using this feature.": "team.user.licenceAndAccess.useSignInWithEmail", +"continue with License Key": "team.user.licenceAndAccess.continueWithlicenseLabel", +"Send Login Link": "team.user.licenceAndAccess.sendLoginLink", +"Team Users": "team.user.teamUserFormHeader", +"Verifying you request to access. Please wait": "team.user.invitationVerification.inProgress", +"You have been invited to join an account on Msty Studio. ": "team.user.invitationVerification.info", +"Something went wrong, please contact you account Admin.": "team.user.invitationVerification.error", +"A login link will be sent to the email provided above.": "team.user.invitationInfo", +"User {email} invited.": "team.user.invitation.successMessage.detail", +"@:invalid @:email": "team.user.invitation.invalidEmail", +"User already exists": "team.user.invitation.errorMessageUserExist", +"Failed to invite {email}.": "team.user.invitation.errorMessage.detail", +"Unable to load users list": "team.user.fetch.errorMessage.detail", +"User {email} delete successfully.": "team.user.delete.successMessage.detail", +"Unable to delete user {email}": "team.user.delete.errorMessage.detail", +"Delete User": "team.user.deleteConfirmation.header", +"Are you sure you want to delete {email}?": "team.user.deleteConfirmation.message", +"Assign users to team {teamName}": "team.user.assignUserToTeamLabel", +"Successfully assigned {user} to team {teamName}": "team.user.assignUserToTeamSuccess", +"Remove user from team": "team.user.unassignUserToTeamLabel", +"Drop {user} from team {teamName}": "team.user.unassignUserToTeamMessage", +"@:select users to add": "team.user.selectUserToAddToTeamPlaceholder", +"Update {item}": "updateItem.action", +"Edit {item}": "updateItem.editAction", +"{item} has been updated": "updateItem.successMessage.detail", +"Unable to update {item}": "updateItem.errorMessage.detail", +"Tools": "modelPurpose.tools", +"Vision": "modelPurpose.vision", +"Embedding": "modelPurpose.embedding", +"Image": "modelPurpose.image", +"Thinking": "modelPurpose.thinking", +"Label": "editModel.inputLabels.label", +"@:select an @:environment.title": "environment.selectPlaceholder", +"New @:environment.title": "environment.new", +"Environment | Environments": "environment.title", +"Add new environments to get started.": "environment.empty.description", +"@:environment.title saved": "environment.save.successMessage.detail", +"@:environment.title failed to save": "environment.save.errorMessage.detail", +"@:delete @:environment.title | Delete @:environment.title": "environment.delete.title", +"@:delete Selected @:environment.title | Delete Selected @:environment.title": "environment.delete.selected", +"@:delete @:environment.title": "environment.delete.deleteConfirmation.header", +"Are you sure you want to delete {environmentName}? | Are you sure you want to delete {count} environments?": "environment.delete.deleteConfirmation.description", +"@:environment.title deleted | @:environment.title deleted": "environment.delete.successMessage.detail", +"Could not delete @:environment.title | Could not delete @:environment.title": "environment.delete.errorMessage.detail", +"Backup @:environment.title": "environment.backup.title", +"@:environment.title backed up": "environment.backup.successMessage.detail", +"Failed to backup @:environment.title": "environment.backup.errorMessage.detail", +"Restore @:environment.title": "environment.restore.title", +"Drag and drop a Msty Environment file to restore Environments. Note: All existing environments will be deleted and replaced with the imported ones.": "environment.restore.dragAndDropMessage", +"@:environment.title restored": "environment.restore.successMessage.detail", +"Failed to restore @:environment.title": "environment.restore.errorMessage.detail", +"Quick @:select Environment Variable": "environment.quickSelect.title", +"Search or select a variable to copy it to the clipboard": "environment.quickSelect.selectPlaceholder", +"Make Active {itemType}": "makeActive.title", +"Active {itemType}": "makeActive.isActive", +"{itemName} is now the active {itemType}": "makeActive.successMessage.detail", +"Failed to make {itemName} as the active {itemType}": "makeActive.errorMessage.detail", +"Move {item}": "moveItem.action", +"Move {count} {sourceType} to {item}": "moveItem.moveLocation", +"Are you sure you want to move the selected {item}?": "moveItem.confirmation.message", +"{item} has been moved | {item} have been moved": "moveItem.successMessage.detail", +"Unable to move {item}": "moveItem.errorMessage.detail", +"Could not determine the target project.": "moveItem.cannotDetermineTargetProject", +"Could not determine the target folder.": "moveItem.cannotDetermineTargetFolder", +"{item} has been deleted": "deleteItem.successMessage.detail", +"Unable to delete {item}": "deleteItem.errorMessage.detail", +"@:prompts Library": "promptsLibrary.title", +"New @:prompt": "promptsLibrary.newPrompt", +"@:search.label @:prompt": "promptsLibrary.search", +"Quick @:prompt": "promptsLibrary.quickPrompt", +"Save to Quick @:prompts": "promptsLibrary.saveToQuickPrompts", +"Copy @:prompt to Clipboard": "promptsLibrary.copyPrompt", +"Type / to search the @:promptsLibrary.title": "promptsLibrary.shortcutUsage", +"@:folder": "promptsLibrary.folder", +"@:prompt": "promptsLibrary.prompt", +"Delete all @:prompt and @:folders": "promptsLibrary.deleteAllPrompt.title", +"This will clear entire @:promptsLibrary.title and @:folder@:folders. There is no way to recover them after deletion.": "promptsLibrary.deleteAllPrompt.description", +"All @:prompt deleted": "promptsLibrary.deleteAllPrompt.successMessage.detail", +"Get started by adding or importing a new @:prompt{'.'} You can also import default @:prompts to get started.": "promptsLibrary.empty.description", +"Import Default @:prompts": "promptsLibrary.import.title", +"You can now use the imported prompts in your conversations.": "promptsLibrary.import.successMessage.detail", +"Copy {count} @:prompts to clipboard": "promptsLibrary.import.copyMultiplePrompts", +"Failed to import default @:prompts": "promptsLibrary.import.errorMessage.detail", +"Failed to copy @:prompt{'.'} Please try again.": "promptsLibrary.import.copyErrorMessage.detail", +"Are you sure you want to delete {folderName} with all its sub-folders and prompts?": "promptsLibrary.folderForm.deleteConfirmation.message", +"Add New @:prompt": "promptsLibrary.promptForm.addTitle", +"Edit @:prompt": "promptsLibrary.promptForm.editTitle", +"@:prompt Name": "promptsLibrary.promptForm.promptName", +"@:description": "promptsLibrary.promptForm.promptDescription", +"@:prompt updated": "promptsLibrary.promptForm.updateSuccessMessage.detail", +"Failed to update @:prompt": "promptsLibrary.promptForm.updateErrorMessage.detail", +"@:prompt created": "promptsLibrary.promptForm.createSuccessMessage.detail", +"Failed to create @:prompt": "promptsLibrary.promptForm.createErrorMessage.detail", +"Delete {count} @:prompt": "promptsLibrary.promptForm.deleteConfirmation.header", +"Are you sure you want to delete?": "promptsLibrary.promptForm.deleteConfirmation.message", +"@:prompt deleted": "promptsLibrary.promptForm.deleteConfirmation.successMessage.detail", +"Failed to delete @:prompt": "promptsLibrary.promptForm.deleteConfirmation.errorMessage.detail", +"Import Default {item}": "importDefault.title", +"Default {item} imported": "importDefault.successMessage.detail", +"Failed to import default {item}": "importDefault.errorMessage.detail", +"Isolate @:context": "contextIsolation.isolate", +"Remove @:context Isolation": "contextIsolation.unIsolate", +"Isolated @:context": "contextIsolation.label", +"Clear All @:context Isolations": "contextIsolation.clearAll.title", +"All @:context Isolations cleared": "contextIsolation.clearAll.successMessage.detail", +"Response Metrics": "responseMetrics.title", +"Long press or Alt click to cycle metrics": "responseMetrics.longPressOrAltClickToCycle", +"Quick View": "quickView", +"Details View": "detailsView", +"Input | Inputs": "input", +"Output | Outputs": "output", +"Think": "think", +"The model performed internal thinking but didn’t return a summary. To enable thinking summaries, apply the 'Thinking' tag to this model by clicking on the edit icon next to the model selection.": "reasoning.emptyNotice", +"Service | Services": "service", +"@:localAI @:service": "localAIService", +"Version | Versions": "version", +"Invalid config. Please enter a valid JSON object.": "invalidConfig", +"Unsaved Changes": "unsavedChanges", +"Day | Days": "day", +"Every": "every", +"Files": "files", +"File | @:files": "file", +"Really Delete?": "reallyDelete", +"Similarity": "similarity", +"Save as Draft": "saveAsDraft", +"Compose": "compose", +"Embedding Model": "embeddingModel", +"Document | Documents": "document", +"Matched": "matched", +"@:folder Name": "folderName", +"Add New @:folder": "addNewFolder", +"Edit @:folder": "editFolder", +"An error occurred. Please try again later. Check logs for more details.": "errorGeneric", +"Models Path": "sharedService.modelsPath.title", +"This is where {service} downloads and looks for models. You can update the path to use a custom folder.": "sharedService.modelsPath.description", +"Edit Models Path": "sharedService.modelsPath.edit.title", +"Set your preferred location.": "sharedService.modelsPath.edit.description", +"Note: Changing the models path will restart the {service} for the changes to take effect.": "sharedService.modelsPath.edit.willRestartWarning", +"Select Models Path": "sharedService.modelsPath.edit.selectModelsPath", +"Models path updated": "sharedService.modelsPath.edit.successMessage.detail", +"Failed to update models path": "sharedService.modelsPath.edit.errorMessage.detail", +"Give your system prompt a short title. It will be added to Quick Prompts for easy reuse.": "sharedService.quickPromptDialog.description", +"Quick @:prompt Name": "sharedService.quickPromptDialog.nameLabel", +"System prompt saved to Quick Prompts.": "sharedService.quickPromptDialog.successMessage", +"Failed to save system prompt to Quick Prompts.": "sharedService.quickPromptDialog.errorMessage", +"Add some system prompt text before saving to Quick Prompts.": "sharedService.quickPromptDialog.emptyPromptMessage", +"Service Health": "sharedService.serviceHealth.title", +"Status of the {service}. Having trouble? Try restarting or reviewing the logs.": "sharedService.serviceHealth.description", +"Restart Service": "sharedService.serviceHealth.serviceAction.restartService", +"Stop Service": "sharedService.serviceHealth.serviceAction.stopService", +"Start Service": "sharedService.serviceHealth.serviceAction.startService", +"Failed to perform {action} on {service}. Please check the logs for more details.": "sharedService.serviceHealth.serviceAction.errorMessage.detail", +"{service} Restarted": "sharedService.serviceHealth.serviceAction.restartSuccessMessage.detail", +"Running": "sharedService.serviceHealth.serviceStatus.running", +"Stopped": "sharedService.serviceHealth.serviceStatus.stopped", +"Service Endpoint | Service Endpoints": "sharedService.serviceEndpoint.title", +"Local endpoint for {service}. Use this to connect from other applications running locally on device.": "sharedService.serviceEndpoint.description.base", +"Once the service is running, the address will be displayed here.": "sharedService.serviceEndpoint.description.serviceIsNotRunning", +"Because the service is available on the network, you can also connect to it using the Network Service URL from other devices.": "sharedService.serviceEndpoint.description.serviceIsAvailableOnNetwork", +"Copy Network URL": "sharedService.serviceEndpoint.copyNetworkURL", +"Service Version": "sharedService.serviceVersion.title", +"Shows the current version of {service}. To ensure optimal performance and access to new features, keep it up to date. Reinstallation is also available if needed.": "sharedService.serviceVersion.description", +"Force Update {service}": "sharedService.serviceVersion.forceUpdate.title", +"Force Update {service} (CPU)": "sharedService.serviceVersion.forceUpdate.forCpu", +"Force Update {service} (CUDA)": "sharedService.serviceVersion.forceUpdate.forCuda", +"Force Update {service} (CUDA 12.4)": "sharedService.serviceVersion.forceUpdate.forCuda124", +"Force Update {service} (CUDA 13.1)": "sharedService.serviceVersion.forceUpdate.forCuda131", +"Force Update {service} (Vulkan)": "sharedService.serviceVersion.forceUpdate.forVulkan", +"Force Update {service} (ROCm)": "sharedService.serviceVersion.forceUpdate.forRocm", +"Force Update {service} (OpenCL)": "sharedService.serviceVersion.forceUpdate.forOpencl", +"Force Update {service} (SYCL)": "sharedService.serviceVersion.forceUpdate.forSycl", +"{service} is updated to the latest version {version}": "sharedService.serviceVersion.forceUpdate.successMessage.detail", +"Failed to update {service}. Please check the logs for more details.": "sharedService.serviceVersion.forceUpdate.errorMessage.detail", +"Remove {service}": "sharedService.serviceVersion.removeService.title", +"Are you sure you want to remove {service}? This will delete the service binary and all its configurations. You can reinstall it later from the settings page.": "sharedService.serviceVersion.removeService.confirmationMessage", +"{service} has been removed successfully": "sharedService.serviceVersion.removeService.successMessage.detail", +"Failed to remove {service}. Please check the logs for more details.": "sharedService.serviceVersion.removeService.errorMessage.detail", +"These configurations are applied to the {service} when it starts. {service} will automatically restart after you save any changes.": "sharedService.serviceConfigurations.description", +"Allow other devices on your network to access this {service} through this device's IP address.": "sharedService.serviceConfigurations.enableNetworkAccess.description", +"Allow connections from Msty Studio Web to this app so it can access {service}.": "sharedService.serviceConfigurations.allowMstyStudioAccess.description", +"Capture Service Logs": "sharedService.serviceConfigurations.captureServiceLogs.title", +"You have unsaved changes in the {service} Configurations. Once you save, {service} will be restarted with the new configurations.": "sharedService.serviceConfigurations.unsavedChanges.message", +"{service} Configurations saved and service restarted": "sharedService.serviceConfigurations.unsavedChanges.successMessage.detail", +"Failed to save {service} Configurations. Please check the logs for more details.": "sharedService.serviceConfigurations.unsavedChanges.errorMessage.detail", +"Keyboard Shortcuts": "keyboardShortcuts.title", +"Customize keyboard shortcuts for quick access to features": "keyboardShortcuts.description", +"Search shortcuts...": "keyboardShortcuts.search", +"Search by shortcut": "keyboardShortcuts.searchByShortcut", +"Search by name": "keyboardShortcuts.searchByName", +"Press any key combination...": "keyboardShortcuts.pressShortcut", +"Press keys...": "keyboardShortcuts.pressKeys", +"Not set": "keyboardShortcuts.notSet", +"Edit shortcut": "keyboardShortcuts.edit", +"Global": "keyboardShortcuts.global", +"Shortcut saved": "keyboardShortcuts.saved", +"Error saving shortcut": "keyboardShortcuts.error", +"Shortcut reset": "keyboardShortcuts.reset", +"Reset to default": "keyboardShortcuts.resetToDefault", +"Reset all shortcuts": "keyboardShortcuts.resetAll", +"All shortcuts reset to defaults": "keyboardShortcuts.allReset", +"No shortcuts found": "keyboardShortcuts.noResults", +"Conflicts with: {name}": "keyboardShortcuts.conflictWith", +"Navigation": "keyboardShortcuts.categories.navigation", +"@:settings.appearance": "keyboardShortcuts.categories.appearance", +"Conversation": "keyboardShortcuts.categories.conversation", +"Reset All Shortcuts": "keyboardShortcuts.resetAllConfirm.title", +"Are you sure you want to reset all keyboard shortcuts to their default values?": "keyboardShortcuts.resetAllConfirm.message", +"Customize Shortcuts": "keyboardShortcuts.help.customizeButton", +"Contextual": "keyboardShortcuts.contextual", +"System Wide": "keyboardShortcuts.systemWide", +"Option key shortcuts work in Msty. If they produce special characters instead, check System Settings > Keyboard > Input Sources": "keyboardShortcuts.macOptionHint", +"Keyboard Shortcuts Example": "keyboardShortcuts.example.title", +"This component demonstrates how to register and use keyboard shortcuts in your components.": "keyboardShortcuts.example.description", +"Registered Shortcuts:": "keyboardShortcuts.example.registeredShortcuts", +"Example Action 1": "keyboardShortcuts.example.exampleAction1", +"Scoped Action": "keyboardShortcuts.example.scopedAction", +"Actions:": "keyboardShortcuts.example.actions", +"Update First Shortcut": "keyboardShortcuts.example.updateFirstShortcut", +"Test Conflict Detection": "keyboardShortcuts.example.testConflictDetection", +"Action Log:": "keyboardShortcuts.example.actionLog", +"No actions yet. Try pressing the shortcuts!": "keyboardShortcuts.example.noActionsYet", +"Developer Notes:": "keyboardShortcuts.example.developerNotes.title", +"Shortcuts are automatically cleaned up when the component unmounts": "keyboardShortcuts.example.developerNotes.items[0]", +"Use component-scoped shortcuts to avoid ID conflicts": "keyboardShortcuts.example.developerNotes.items[1]", +"Platform-specific bindings are handled automatically (Cmd on Mac, Ctrl on Windows)": "keyboardShortcuts.example.developerNotes.items[2]", +"Check for conflicts before registering shortcuts that might collide with existing ones": "keyboardShortcuts.example.developerNotes.items[3]", +"Shortcuts can be global (work everywhere) or context-specific": "keyboardShortcuts.example.developerNotes.items[4]", +"Select split to remove": "keyboardShortcuts.splitRemoval.selectSplitToRemove", +"Press": "keyboardShortcuts.splitRemoval.pressKeysToCancel", +"Create New": "createNew", +"Copy": "copy", +"No Messages Selected": "miniMapActions.noMessageSelectedWarning.summary", +"Select at least one message to perform any actions": "miniMapActions.noMessageSelectedWarning.detail", +"Export Message | Export Messages": "miniMapActions.exportOrCopyMessage.exportMessage", +"Copy Message | Copy Messages": "miniMapActions.exportOrCopyMessage.copyMessage", +"As JSON": "miniMapActions.exportOrCopyMessage.asJson", +"As Markdown": "miniMapActions.exportOrCopyMessage.asMarkdown", +"Successfully {action} messages as {format}": "miniMapActions.exportOrCopyMessage.successMessage", +"Re-index {item}": "reIndexItem.action", +"{item} re-indexed successfully": "reIndexItem.successMessage.detail", +"Failed to re-index {item}": "reIndexItem.errorMessage.detail", +"Are you sure you want to re-index {item}?": "reIndexItem.confirmationMessage", +"Recent|Recents": "recent", +"Recents & @:pinned": "recentsPinned", +"Knowledge Stack | Knowledge Stacks": "knowledgeStack.title", +"@:knowledgeStack.title Contexts": "knowledgeStack.contexts", +"Processing: {fileName}": "knowledgeStack.composeProgress.processing", +"Composing": "knowledgeStack.composeProgress.composing", +"Composing…": "knowledgeStack.composeProgress.composingEllipsis", +"YouTube": "knowledgeStack.composeProgress.youtube", +"Overall progress": "knowledgeStack.composeProgress.overallProgress", +"In-flight:": "knowledgeStack.composeProgress.inFlight", +"Ignored for retrieval": "knowledgeStack.itemStatus.ignoredForRetrieval", +"Importing folder: {name}": "knowledgeStack.cloudShare.importingFolder", +"Processing {count} knowledge stack(s)": "knowledgeStack.cloudShare.processingCount", +"Save Edits": "knowledgeStack.saveEdits.title", +"Save Edits and Mark as Draft": "knowledgeStack.saveEdits.confirmation.header", +"Are you sure you want to save your edits? This will mark the Knowledge Stack as a draft and prevent it from being used in production until processed again.": "knowledgeStack.saveEdits.confirmation.message", +"Choose where to import the @:knowledgeStack.title": "knowledgeStack.selectFolderForImport", +"New @:knowledgeStack.title": "knowledgeStack.newKnowledgeStack", +"Add description": "knowledgeStack.addDescription", +"Edit description": "knowledgeStack.editDescription", +"Add a description for this Knowledge Stack...": "knowledgeStack.descriptionPlaceholder", +"Saving...": "knowledgeStack.autoSaving", +"Saved {time}": "knowledgeStack.autoSaved", +"Basic Information": "knowledgeStack.basicInfo", +"@:similarity Threshold": "knowledgeStack.similarityThreshold", +"@:similarity Match": "knowledgeStack.similarityMatch", +"You have unsaved changes. Are you sure you want to leave this page? Your changes will be lost.": "knowledgeStack.unsavedChanges.confirmNavigation", +"You have unsaved changes that will be lost if you reload the page.": "knowledgeStack.unsavedChanges.confirmReload", +"No @:knowledgeStack.title selected": "knowledgeStack.empty.title", +"Knowledge Stack lets you bring in files, folders, notes, and YouTube transcripts, making them searchable and chat-ready through Retrieval-Augmented Generation (RAG)": "knowledgeStack.empty.description", +"Select a @:knowledgeStack.title": "knowledgeStack.selectOrCreate", +"Select a @:knowledgeStack.title from the tree or create a new one": "knowledgeStack.selectFromTreeOrCreate", +"Edit Ignore Rules": "knowledgeStack.folderForm.editIgnoreRules", +"Ignore Rules": "knowledgeStack.folderForm.editIgnoreRulesTitle", +"Define patterns to exclude files and folders from processing.": "knowledgeStack.folderForm.ignoreRulesDescription", +"Priority: Local .mstyignore/.gitignore → Folder rules → System defaults": "knowledgeStack.folderForm.ignoreRulesHierarchySimple", +"# Enter patterns here, one per line\n# Example: *.log, node_modules/, !important.txt": "knowledgeStack.folderForm.ignoreRulesPlaceholder", +"Show examples & help": "knowledgeStack.folderForm.showExamples", +"Log files": "knowledgeStack.folderForm.ignoreExample1", +"Temp files in all dirs": "knowledgeStack.folderForm.ignoreExample2", +"Entire directory": "knowledgeStack.folderForm.ignoreExample3", +"Exception pattern": "knowledgeStack.folderForm.ignoreExample4", +"Multiple image types": "knowledgeStack.folderForm.ignoreExample5", +"All files in test & subdirs": "knowledgeStack.folderForm.ignoreExample6", +"Case-insensitive match": "knowledgeStack.folderForm.ignoreExample7", +"Files starting with secret-": "knowledgeStack.folderForm.ignoreExample8", +"Use template": "knowledgeStack.folderForm.insertTemplate", +"Clear all": "knowledgeStack.folderForm.clearContent", +"Ignore rules updated successfully": "knowledgeStack.folderForm.ignoreRulesUpdated", +"Failed to update ignore rules": "knowledgeStack.folderForm.ignoreRulesUpdateError", +"Delete @:folder '{folderName}'": "knowledgeStack.folderForm.deleteConfirmation.header", +"Are you sure you want to delete this folder? All Knowledge Stacks inside it will be removed. There is no undo for this action.": "knowledgeStack.folderForm.deleteConfirmation.message", +"Add New @:knowledgeStack.title": "knowledgeStack.knowledgeStackForm.addTitle", +"Delete @:knowledgeStack.title": "knowledgeStack.knowledgeStackForm.deleteConfirmation.header", +"Are you sure you want to delete this Knowledge Stack? All items inside it will be removed. There is no undo for this action.": "knowledgeStack.knowledgeStackForm.deleteConfirmation.message", +"Delete All @:knowledgeStack.title": "knowledgeStack.deleteAllKnowledgeStack.title", +"This will clear entire @:knowledgeStack.title{'.'} There is no way to recover them after deletion.": "knowledgeStack.deleteAllKnowledgeStack.description", +"All @:knowledgeStack.title deleted": "knowledgeStack.deleteAllKnowledgeStack.successMessage.detail", +"Failed to delete all @:knowledgeStack.title": "knowledgeStack.deleteAllKnowledgeStack.errorMessage.detail", +"Chunk | @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.chunksConsole.chunk", +"Chunks": "knowledgeStack.chunksConsole.chunks", +"@:knowledgeStack.chunksConsole.chunks Console": "knowledgeStack.chunksConsole.title", +"Use this console to understand how your Knowledge Stack, { title }, is being used and what chunks are being sent to a model when chatting. You can also delete a chunk if you think it's not relevant or useful.": "knowledgeStack.chunksConsole.description", +"Query Text": "knowledgeStack.chunksConsole.queryText", +"@:similarity": "knowledgeStack.chunksConsole.similarityFilter.title", +"Highest": "knowledgeStack.chunksConsole.similarityFilter.highest", +"High": "knowledgeStack.chunksConsole.similarityFilter.high", +"Medium": "knowledgeStack.chunksConsole.similarityFilter.medium", +"Low": "knowledgeStack.chunksConsole.similarityFilter.low", +"# of @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.chunksConsole.matchCount", +"Source File": "knowledgeStack.chunksConsole.sourceFile", +"Source Note": "knowledgeStack.chunksConsole.sourceNote", +"Source Video": "knowledgeStack.chunksConsole.sourceVideo", +"Source": "knowledgeStack.chunksConsole.source", +"Score": "knowledgeStack.chunksConsole.score", +"Search Results": "knowledgeStack.chunksConsole.searchResults", +"No search results found. Try adjusting your query or search settings.": "knowledgeStack.chunksConsole.noResultsFound", +"No results match the current similarity filter. Try adjusting the filter to show more results.": "knowledgeStack.chunksConsole.noResultsAfterFilter", +"@:knowledgeStack.chunksConsole.chunk has been deleted": "knowledgeStack.chunksConsole.deleteChunk.successMessage.detail", +"Search Type": "knowledgeStack.chunksConsole.searchType.title", +"Hybrid Search": "knowledgeStack.chunksConsole.searchType.hybrid", +"Semantic Search": "knowledgeStack.chunksConsole.searchType.semantic", +"Keyword Search": "knowledgeStack.chunksConsole.searchType.keyword", +"This filter only affects which results are displayed below. It does not change the actual query.": "knowledgeStack.chunksConsole.filterDisclaimer", +"Content has been scrubbed for PII removal": "knowledgeStack.chunksConsole.tooltip.scrubbed", +"Used cached scrubbed version": "knowledgeStack.chunksConsole.tooltip.cached", +"Freshly scrubbed content": "knowledgeStack.chunksConsole.tooltip.fresh", +"Run Query": "knowledgeStack.chunksConsole.runQuery", +"{count} selected": "knowledgeStack.addon.selectedCount", +"Selected Stacks": "knowledgeStack.addon.selectedStacks", +"Search Knowledge Stacks...": "knowledgeStack.addon.searchPlaceholder", +"Recently Updated": "knowledgeStack.addon.recentlyUpdated", +"No Knowledge Stacks found": "knowledgeStack.addon.noResults", +"No Knowledge Stacks available": "knowledgeStack.addon.noStacks", +"No description": "knowledgeStack.addon.noDescription", +"Number of @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.addon.numberOfChunks", +"Synthesize Query": "knowledgeStack.addon.synthesizePrompt", +"Enable PII Scrubbing": "knowledgeStack.addon.enablePiiScrubbing", +"Max Full Content Contexts": "knowledgeStack.addon.fullContentContextLimit", +"Full Content Contexts can significantly increase token usage and may impact performance": "knowledgeStack.addon.fullContentContextWarning", +"Manage Stacks": "knowledgeStack.addon.manageStacks", +"Only completed stacks can be selected": "knowledgeStack.addon.onlyCompletedStacks", +"Total Files": "knowledgeStack.totalFiles", +"Vector Dimensions": "knowledgeStack.vectorDimensions", +"Word Count": "knowledgeStack.wordCount", +"Reading Time": "knowledgeStack.readingTime", +"No embedding model configured": "knowledgeStack.embeddingModel.noModel", +"Model {modelId} not found": "knowledgeStack.embeddingModel.modelMissing", +"Model provider was automatically remapped": "knowledgeStack.embeddingModel.providerRemapped", +"Change Query Embedding model": "knowledgeStack.embeddingModel.changeModel", +"Select Query Embedding Model": "knowledgeStack.embeddingModel.selectModel", +"The original embedding model for this Knowledge Stack is not available. Please select a new model.": "knowledgeStack.embeddingModel.missingModelWarning", +"The embedding model provider was automatically remapped to a compatible provider.": "knowledgeStack.embeddingModel.providerRemappedInfo", +"Current Model": "knowledgeStack.embeddingModel.currentModel", +"No model configured": "knowledgeStack.embeddingModel.noModelConfigured", +"Select New Model": "knowledgeStack.embeddingModel.selectNewModel", +"Default (Local)": "knowledgeStack.embeddingModel.defaultLocal", +"@:files": "knowledgeStack.buckets.files.title", +"Add .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx or any other supported file types.": "knowledgeStack.buckets.files.description", +"Drag and drop files here": "knowledgeStack.buckets.files.dropZoneText", +"Browse Files": "knowledgeStack.buckets.files.browseFiles", +"Drop files here": "knowledgeStack.buckets.files.dropHint", +"@:folders & Obsidian Vaults": "knowledgeStack.buckets.folders.title", +"Add folders containing files. You can drop Obsidian Vaults as well.": "knowledgeStack.buckets.folders.description", +"Drag and drop folders here": "knowledgeStack.buckets.folders.dropZoneText", +"Browse Folders": "knowledgeStack.buckets.folders.browseFolders", +"Live Mode": "knowledgeStack.buckets.folders.liveMode", +"Folders are monitored for changes and automatically update the Knowledge Stack": "knowledgeStack.buckets.folders.liveModeDescription", +"Duplicate Folder": "knowledgeStack.buckets.folders.duplicateFolder", +"Folder Already Added": "knowledgeStack.buckets.folders.alreadyAdded", +"This folder has already been added to the @:knowledgeStack.title": "knowledgeStack.buckets.folders.folderAlreadyExists", +"The folder '{path}' has already been added": "knowledgeStack.buckets.folders.folderAlreadyAdded", +"Folder Processed": "knowledgeStack.buckets.folders.folderProcessed", +"{count} files added successfully": "knowledgeStack.buckets.folders.filesAdded", +"Only folders can be added here. Please select a folder instead of individual files.": "knowledgeStack.buckets.folders.onlyFoldersAllowed", +"Select Folder": "knowledgeStack.buckets.folders.selectFolder", +"Please use the Browse button to select a folder in web mode": "knowledgeStack.buckets.folders.useDirectoryPicker", +"Processed": "knowledgeStack.buckets.folders.processed", +"Error Processing Folder": "knowledgeStack.buckets.folders.processingError", +"Folder Explorer": "knowledgeStack.buckets.folders.folderExplorer", +"Show Ignored Files": "knowledgeStack.buckets.folders.showIgnoredFiles", +"No folders added yet": "knowledgeStack.buckets.folders.noFolders", +"Failed to Load Folder": "knowledgeStack.buckets.folders.loadError", +"Folder Removed": "knowledgeStack.buckets.folders.removed", +"'{name}' has been removed from the Knowledge Stack": "knowledgeStack.buckets.folders.folderRemoved", +"Failed to Remove Folder": "knowledgeStack.buckets.folders.removeError", +"Ignored": "knowledgeStack.buckets.folders.ignored", +"Loading...": "knowledgeStack.buckets.folders.loading", +"Loading folder contents...": "knowledgeStack.buckets.folders.loadingContents", +"Are you sure you want to remove \"{name}\" from this Knowledge Stack? The folder and its files will remain on your system.": "knowledgeStack.buckets.folders.confirmRemove", +"Expand folder": "knowledgeStack.buckets.folders.expandFolder", +"Collapse folder": "knowledgeStack.buckets.folders.collapseFolder", +"This folder is ignored based on .mstyignore or .gitignore rules": "knowledgeStack.buckets.folders.folderIgnored", +"This file is ignored based on .mstyignore or .gitignore rules": "knowledgeStack.buckets.folders.fileIgnored", +"Actions menu": "knowledgeStack.buckets.folders.actionMenu", +"Empty folder": "knowledgeStack.buckets.folders.emptyFolder", +"{count} item | {count} items": "knowledgeStack.buckets.folders.itemCount", +"{count} hidden item | {count} hidden items": "knowledgeStack.buckets.folders.hiddenItemCount", +"Obsidian Vaults": "knowledgeStack.buckets.obsidianVaults.title", +"Add Obsidian Vaults to your Knowledge Stack. Msty will index all the notes in the vault.": "knowledgeStack.buckets.obsidianVaults.description", +"Drag and drop Obsidian Vaults here": "knowledgeStack.buckets.obsidianVaults.dropZoneText", +"Browse Obsidian Vaults": "knowledgeStack.buckets.obsidianVaults.browseVaults", +"Add your own notes to the Knowledge Stack. These notes will be chunked and embedded for semantic search.": "knowledgeStack.buckets.notes.description", +"Add Note": "knowledgeStack.buckets.notes.addNote", +"Enter note title...": "knowledgeStack.buckets.notes.titlePlaceholder", +"Enter note content...": "knowledgeStack.buckets.notes.contentPlaceholder", +"No notes added yet. Click 'Add Note' to get started.": "knowledgeStack.buckets.notes.empty", +"Not saved yet": "knowledgeStack.buckets.notes.unsaved", +"Add YouTube video links to index their transcripts. Msty will fetch transcripts and make them searchable.": "knowledgeStack.buckets.youTubeLinks.description", +"Drag and drop YouTube links here or paste them below": "knowledgeStack.buckets.youTubeLinks.dropZoneText", +"Paste YouTube URLs here (space or comma separated)...": "knowledgeStack.buckets.youTubeLinks.inputPlaceholder", +"Paste YouTube URLs here ({count} detected) | Paste YouTube URLs here ({count} detected)": "knowledgeStack.buckets.youTubeLinks.inputPlaceholderWithDetected", +"Auto-pull detected URLs": "knowledgeStack.buckets.youTubeLinks.autoDetection", +"{count} URL detected | {count} URLs detected": "knowledgeStack.buckets.youTubeLinks.detectedCount", +"{count} YouTube URL detected but not pulled yet | {count} YouTube URLs detected but not pulled yet": "knowledgeStack.buckets.youTubeLinks.detectedUnpulledUrls", +"Mark for Reprocessing": "knowledgeStack.itemActions.markForReprocessing", +"Lock Temporarily": "knowledgeStack.itemActions.lockTemporary", +"Lock Permanently": "knowledgeStack.itemActions.lockPermanent", +"Ignore for Retrieval": "knowledgeStack.itemActions.ignoreRetrieval", +"Include in Retrieval": "knowledgeStack.itemActions.unignoreRetrieval", +"More actions": "knowledgeStack.itemActions.moreActions", +"Load Mode": "knowledgeStack.loadMode.title", +"Select Load Mode": "knowledgeStack.loadMode.dialogTitle", +"Distribution": "knowledgeStack.loadMode.distribution", +"Choose how this file should be loaded during Knowledge Stack composition.": "knowledgeStack.loadMode.dialogDescription", +"Static Files": "knowledgeStack.loadMode.staticFiles", +"Dynamic Files": "knowledgeStack.loadMode.dynamicFiles", +"Sync Files": "knowledgeStack.loadMode.syncFiles", +"Special Modes": "knowledgeStack.loadMode.specialModes", +"Special Modes Ratio": "knowledgeStack.loadMode.specialModesRatio", +"Static Mode": "knowledgeStack.loadMode.static.label", +"Uses the cached version from when the file was added. Fast and predictable, but doesn't reflect recent changes.": "knowledgeStack.loadMode.static.description", +"Cached content loaded from initial indexing": "knowledgeStack.loadMode.static.shortDescription", +"Dynamic Mode": "knowledgeStack.loadMode.dynamic.label", +"Loads the latest file content on each composition. Slightly slower but always up-to-date.": "knowledgeStack.loadMode.dynamic.description", +"Fresh content loaded on each composition": "knowledgeStack.loadMode.dynamic.shortDescription", +"Recommended": "knowledgeStack.loadMode.dynamic.badge", +"Sync Mode": "knowledgeStack.loadMode.sync.label", +"Watches for file changes and automatically recomposes. Best for small, frequently updated files.": "knowledgeStack.loadMode.sync.description", +"Auto-recomposes when files change": "knowledgeStack.loadMode.sync.shortDescription", +"Expensive": "knowledgeStack.loadMode.sync.badge", +"Start Sync Mode": "knowledgeStack.syncMode.start", +"Pause Sync Mode": "knowledgeStack.syncMode.pause", +"Pause All": "knowledgeStack.syncMode.pauseAll", +"Sync Mode Started": "knowledgeStack.syncMode.started", +"Now watching file changes for {name}": "knowledgeStack.syncMode.startedDetail", +"Sync Mode Paused": "knowledgeStack.syncMode.stopped", +"File watching has been paused": "knowledgeStack.syncMode.stoppedDetail", +"Failed to Start Sync Mode": "knowledgeStack.syncMode.startFailed", +"Please ensure the Knowledge Stack has files marked for Sync Mode": "knowledgeStack.syncMode.startFailedDetail", +"All Sync Modes Paused": "knowledgeStack.syncMode.allPaused", +"File watching has been stopped for all knowledge stacks": "knowledgeStack.syncMode.allPausedDetail", +"{count} Active | {count} Active": "knowledgeStack.syncMode.active", +"Active Sync Modes": "knowledgeStack.syncMode.activeTitle", +"{count} file | {count} files": "knowledgeStack.syncMode.filesWatching", +"Started {time}": "knowledgeStack.syncMode.startedTime", +"{stacks} stack, {files} files | {stacks} stacks, {files} files": "knowledgeStack.syncMode.totalStats", +"{hours}h ago": "knowledgeStack.syncMode.hoursAgo", +"{days}d ago": "knowledgeStack.syncMode.daysAgo", +"Analytics and Insights": "knowledgeStack.analytics.title", +"Last Composed": "knowledgeStack.analytics.lastComposed", +"Analytics Sections": "knowledgeStack.analytics.sections", +"Performance Timings": "knowledgeStack.analytics.performanceTimings", +"Summary Statistics": "knowledgeStack.analytics.summaryStatistics", +"Content Breakdown": "knowledgeStack.analytics.contentBreakdown", +"Query Settings": "knowledgeStack.analytics.querySettings", +"Reading Statistics": "knowledgeStack.analytics.readingStatistics", +"No Analytics Available": "knowledgeStack.analytics.noAnalyticsAvailable", +"Analytics will be available after composing this Knowledge Stack.": "knowledgeStack.analytics.noAnalyticsDescription", +"No Analytics Sections Selected": "knowledgeStack.analytics.noSectionsSelected", +"Please select one or more analytics sections above to view insights about your Knowledge Stack.": "knowledgeStack.analytics.noSectionsSelectedDescription", +"Select All Sections": "knowledgeStack.analytics.selectAllSections", +"Loading Items": "knowledgeStack.analytics.timings.loadingItems", +"Splitting @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.timings.splittingChunks", +"Embedding @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.timings.embeddingChunks", +"Composing Stack": "knowledgeStack.analytics.timings.composingStack", +"Total Time": "knowledgeStack.analytics.timings.totalTime", +"Some operations may run in parallel, so individual times may not sum to total time": "knowledgeStack.analytics.timings.parallelNote", +"File Reading": "knowledgeStack.analytics.timings.fileReading", +"Database Write": "knowledgeStack.analytics.timings.databaseWrite", +"# of Items": "knowledgeStack.analytics.stats.numberOfItems", +"Total @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.stats.totalChunks", +"Available @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.stats.availableChunks", +"Skipped @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.stats.skippedChunks", +"Character Count": "knowledgeStack.analytics.stats.characterCount", +"Ignored Items": "knowledgeStack.analytics.ignoredItems", +"Ignored for Retrieval": "knowledgeStack.analytics.ignoredForRetrieval", +"These items are excluded from search and retrieval operations": "knowledgeStack.analytics.ignoredItemsDescription", +"Percentage of items ignored": "knowledgeStack.analytics.ignoredPercentage", +"of {total}": "knowledgeStack.analytics.ofTotal", +"YouTube Videos": "knowledgeStack.analytics.youTubeLinks", +"No Ignored Items": "knowledgeStack.analytics.noIgnoredItems", +"All items in this Knowledge Stack are included in search and retrieval": "knowledgeStack.analytics.allItemsIncluded", +"Recommendation": "knowledgeStack.analytics.recommendation", +"FILES": "knowledgeStack.analytics.contentTypes.files", +"OBSIDIAN VAULTS": "knowledgeStack.analytics.contentTypes.obsidianVaults", +"FOLDERS": "knowledgeStack.analytics.contentTypes.folders", +"NOTES": "knowledgeStack.analytics.contentTypes.notes", +"YOUTUBE LINKS": "knowledgeStack.analytics.contentTypes.youTubeLinks", +"Scrubbed @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.piiScrubbing.scrubbedChunks", +"Cached @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.piiScrubbing.cachedChunks", +"Coverage": "knowledgeStack.analytics.piiScrubbing.coverage", +"Scrubbing Progress": "knowledgeStack.analytics.piiScrubbing.progress", +"Load Analytics": "knowledgeStack.analytics.piiScrubbing.loadAnalytics", +"Failed to load PII analytics data": "knowledgeStack.analytics.piiScrubbing.failedToLoadAnalytics", +"PII Analytics Not Loaded": "knowledgeStack.analytics.piiScrubbing.analyticsNotLoaded", +"Click \"Load Analytics\" to view PII scrubbing statistics": "knowledgeStack.analytics.piiScrubbing.clickToViewAnalytics", +"This score reflects how comprehensively PII scrubbing is applied to your Knowledge Stack. A higher score means more chunks have been processed for PII removal.": "knowledgeStack.analytics.piiScrubbing.scoreTooltip", +"PII scrubbing is optional. Enable it in query settings only if your content contains sensitive personal information.": "knowledgeStack.analytics.piiScrubbing.optionalDescription", +"Measures how well sensitive information is protected in your Knowledge Stack": "knowledgeStack.analytics.piiScrubbing.protectionDescription", +"Not Enabled": "knowledgeStack.analytics.piiScrubbing.status.notEnabled", +"Well Protected": "knowledgeStack.analytics.piiScrubbing.status.wellProtected", +"Partially Protected": "knowledgeStack.analytics.piiScrubbing.status.partiallyProtected", +"Limited Protection": "knowledgeStack.analytics.piiScrubbing.status.limitedProtection", +"Minimal Protection": "knowledgeStack.analytics.piiScrubbing.status.minimalProtection", +"Excellent privacy protection - nearly all content secured": "knowledgeStack.analytics.piiScrubbing.insights.excellentPrivacy", +"Good privacy protection - most content is secured": "knowledgeStack.analytics.piiScrubbing.insights.goodPrivacy", +"Partial privacy protection - consider reviewing settings": "knowledgeStack.analytics.piiScrubbing.insights.partialPrivacy", +"Limited privacy protection - review sensitive content": "knowledgeStack.analytics.piiScrubbing.insights.limitedPrivacy", +"PII scrubbing is not enabled. This is completely fine if your content doesn't contain sensitive personal information.": "knowledgeStack.analytics.piiScrubbing.insights.notEnabled", +"Consider enabling PII scrubbing only if your Knowledge Stack contains names, addresses, phone numbers, emails, or other personal data.": "knowledgeStack.analytics.piiScrubbing.insights.whenToEnable", +"Significant content reduction ({percentage}%) - extensive PII found": "knowledgeStack.analytics.piiScrubbing.insights.significantReduction", +"Moderate content reduction ({percentage}%) - some PII removed": "knowledgeStack.analytics.piiScrubbing.insights.moderateReduction", +"Minimal content reduction ({percentage}%) - low PII detected": "knowledgeStack.analytics.piiScrubbing.insights.minimalReduction", +"No content size change - no PII detected or removed": "knowledgeStack.analytics.piiScrubbing.insights.noContentChange", +"All chunks processed successfully": "knowledgeStack.analytics.piiScrubbing.insights.allChunksProcessed", +"Nearly all chunks processed successfully": "knowledgeStack.analytics.piiScrubbing.insights.nearlyAllProcessed", +"Most chunks processed - some may need attention": "knowledgeStack.analytics.piiScrubbing.insights.mostProcessed", +"Incomplete processing - check PII scrubbing configuration": "knowledgeStack.analytics.piiScrubbing.insights.incompleteProcessing", +"Large knowledge base - consider increasing PII detection coverage": "knowledgeStack.analytics.piiScrubbing.insights.largeKnowledgeBase", +"Many unprocessed chunks - review PII scrubbing settings": "knowledgeStack.analytics.piiScrubbing.insights.manyUnprocessed", +"PII scrubbing is optional. Enable it in query settings if your content contains sensitive information like names, emails, or phone numbers.": "knowledgeStack.analytics.piiScrubbing.insights.optionalFeature", +"PII scrubbing helps protect sensitive information. It's optional and can be enabled in query settings if needed.": "knowledgeStack.analytics.piiScrubbing.insights.privacyOption", +"Security Status": "knowledgeStack.analytics.piiScrubbing.labels.securityStatus", +"Privacy Status": "knowledgeStack.analytics.piiScrubbing.labels.privacyStatus", +"When to Enable": "knowledgeStack.analytics.piiScrubbing.labels.whenToEnable", +"Content Impact": "knowledgeStack.analytics.piiScrubbing.labels.contentImpact", +"Processing Efficiency": "knowledgeStack.analytics.piiScrubbing.labels.processingEfficiency", +"Scale Recommendation": "knowledgeStack.analytics.piiScrubbing.labels.scaleRecommendation", +"Coverage Recommendation": "knowledgeStack.analytics.piiScrubbing.labels.coverageRecommendation", +"Optional Feature": "knowledgeStack.analytics.piiScrubbing.labels.optionalFeature", +"Privacy Option": "knowledgeStack.analytics.piiScrubbing.labels.privacyOption", +"Prompt Prefix": "knowledgeStack.analytics.querySettingsDetails.promptPrefix", +"Privacy Optimization Score": "knowledgeStack.analytics.privacyOptimizationScore", +"PII Protection Level": "knowledgeStack.analytics.piiProtectionLevel", +"PII Scrubbing Status": "knowledgeStack.analytics.piiScrubbingStatus", +"Unscrubbed @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.unscrubbedChunks", +"Original Size": "knowledgeStack.analytics.originalSize", +"Processed Size": "knowledgeStack.analytics.processedSize", +"Size Reduction": "knowledgeStack.analytics.sizeReduction", +"Privacy @:insgiths": "knowledgeStack.analytics.privacyInsights", +"Data has been modified": "knowledgeStack.analytics.dataModified", +"Show outdated data anyway": "knowledgeStack.analytics.showOutdatedData", +"Content Distribution": "knowledgeStack.analytics.contentDistribution", +"{label} contribute {percentage}% of all chunks": "knowledgeStack.analytics.contentContribution", +"Processing Issue": "knowledgeStack.analytics.processingIssue", +"{label} have low efficiency ({efficiency}%)": "knowledgeStack.analytics.lowEfficiency", +"Data Quality Issue": "knowledgeStack.analytics.dataQualityIssue", +"{count} content type(s) have high skip rates": "knowledgeStack.analytics.highSkipRates", +"Content Diversity": "knowledgeStack.analytics.contentDiversity", +"Single content type - consider diversifying sources": "knowledgeStack.analytics.singleContentType", +"Excellent content diversity across multiple source types": "knowledgeStack.analytics.excellentDiversity", +"Optimization Tip": "knowledgeStack.analytics.optimizationTip", +"Reduce chunk size to 800-1200 characters for better content granularity": "knowledgeStack.analytics.reduceChunkSize", +"Increase chunk size to 1500-2000 characters for better efficiency": "knowledgeStack.analytics.increaseChunkSize", +"Embedding Throughput": "knowledgeStack.analytics.embeddingThroughput", +"{rate} chunks/sec ({time}ms each)": "knowledgeStack.analytics.chunksPerSecond", +"Search Strategy": "knowledgeStack.analytics.searchStrategy", +"Balanced approach combining keyword + semantic search": "knowledgeStack.analytics.balancedSearch", +"AI-powered semantic search - best for conceptual queries": "knowledgeStack.analytics.semanticSearch", +"Traditional keyword search - best for exact terms": "knowledgeStack.analytics.keywordSearch", +"Retrieval Volume": "knowledgeStack.analytics.retrievalVolume", +"Very low chunk count may miss relevant information": "knowledgeStack.analytics.lowChunkCount", +"High chunk count may include noise and slow responses": "knowledgeStack.analytics.highChunkCount", +"Optimal chunk count for balanced retrieval": "knowledgeStack.analytics.optimalChunkCount", +"Content Filtering": "knowledgeStack.analytics.contentFiltering", +"Relaxed filtering - may include loosely related content": "knowledgeStack.analytics.relaxedFiltering", +"Strict filtering - highly focused results": "knowledgeStack.analytics.strictFiltering", +"Balanced filtering for relevant content": "knowledgeStack.analytics.moderateFiltering", +"Guided Context": "knowledgeStack.analytics.guidedContext", +"Custom prompt prefix will guide query interpretation": "knowledgeStack.analytics.customPromptPrefix", +"Lock Indicator": "knowledgeStack.analytics.lockIndicator", +"All items can be reprocessed": "knowledgeStack.analytics.allItemsCanBeReprocessed", +"{percentage}% of items are locked": "knowledgeStack.analytics.itemsPartiallyLocked", +"Most items are locked - limited reprocessing capability": "knowledgeStack.analytics.mostItemsLocked", +"Privacy & Security": "knowledgeStack.analytics.privacySecurity", +"Privacy protection enabled for sensitive data": "knowledgeStack.analytics.privacyProtectionEnabled", +"No PII scrubbing - ensure content is not sensitive": "knowledgeStack.analytics.noPiiScrubbing", +"Scale Optimization": "knowledgeStack.analytics.scaleOptimization", +"Large knowledge base - increase chunk count for better coverage": "knowledgeStack.analytics.largeKnowledgeBase", +"Small knowledge base - consider reducing chunk count": "knowledgeStack.analytics.smallKnowledgeBase", +"Performance Profile": "knowledgeStack.analytics.performanceProfile", +"Configuration optimized for fast responses": "knowledgeStack.analytics.optimizedForSpeed", +"Configuration optimized for high-quality results": "knowledgeStack.analytics.optimizedForQuality", +"High Lock Rate": "knowledgeStack.analytics.highLockRate", +"{percentage}% of items are locked and won't be reprocessed": "knowledgeStack.analytics.lockedItemsPercentage", +"Consider unlocking temporarily locked items if they need updates": "knowledgeStack.analytics.unlockRecommendation", +"Over 50% of items are locked. This may significantly reduce the knowledge base's ability to stay updated.": "knowledgeStack.analytics.overHalfLocked", +"Lock Status": "knowledgeStack.analytics.lockStatus", +"Total Items": "knowledgeStack.analytics.totalItems", +"Temporarily Locked": "knowledgeStack.analytics.temporarilyLocked", +"Permanently Locked": "knowledgeStack.analytics.permanentlyLocked", +"Lock Status by Content Type": "knowledgeStack.analytics.lockStatusByContentType", +"Temp. Locked": "knowledgeStack.analytics.tempLocked", +"Perm. Locked": "knowledgeStack.analytics.permLocked", +"Lock Status @:insights": "knowledgeStack.analytics.lockStatusInsights", +"Content @:insights": "knowledgeStack.analytics.contentInsights", +"Composition Optimization Score": "knowledgeStack.analytics.compositionOptimizationScore", +"Composition @:insights": "knowledgeStack.analytics.compositionInsights", +"Performance @:insights": "knowledgeStack.analytics.performanceInsights", +"Processing Phase Details": "knowledgeStack.analytics.processingPhaseDetails", +"Total Processing Time": "knowledgeStack.analytics.totalProcessingTime", +"Total Locked Items": "knowledgeStack.analytics.totalLockedItems", +"Efficiency": "knowledgeStack.analytics.efficiency", +"Load Mode Analytics": "knowledgeStack.analytics.loadMode.title", +"File loading behavior across your Knowledge Stack": "knowledgeStack.analytics.loadMode.description", +"Load Mode Distribution": "knowledgeStack.analytics.loadMode.distribution", +"Special Modes %": "knowledgeStack.analytics.loadMode.specialModesRatio", +"Visual Breakdown": "knowledgeStack.analytics.loadMode.breakdown", +"No files in this Knowledge Stack": "knowledgeStack.analytics.loadMode.noFiles", +"Load Mode options are only available in the desktop application": "knowledgeStack.analytics.loadMode.desktopOnly", +"All files are using Static Mode. Enable Dynamic or Sync Mode for files to use the latest content.": "knowledgeStack.analytics.loadMode.noSpecialModes", +"Sync Mode Active": "knowledgeStack.analytics.loadMode.syncActive", +"Watching {files} • Started {time}": "knowledgeStack.analytics.loadMode.syncActiveDetails", +"Fresh": "knowledgeStack.analytics.loadMode.dynamicBadge", +"Live": "knowledgeStack.analytics.loadMode.syncBadge", +"High Sync File Count": "knowledgeStack.analytics.loadMode.insights.highSyncCount.title", +"{count} files are in Sync Mode": "knowledgeStack.analytics.loadMode.insights.highSyncCount.description", +"Consider using Dynamic Mode for less frequently updated files to reduce resource usage": "knowledgeStack.analytics.loadMode.insights.highSyncCount.recommendation", +"Sync Mode Enabled": "knowledgeStack.analytics.loadMode.insights.syncEnabled.title", +"{count} files are automatically updating when changed": "knowledgeStack.analytics.loadMode.insights.syncEnabled.description", +"High Dynamic Mode Usage": "knowledgeStack.analytics.loadMode.insights.highDynamicUsage.title", +"{percentage}% of files are using Dynamic Mode": "knowledgeStack.analytics.loadMode.insights.highDynamicUsage.description", +"Static Mode may be sufficient for files that rarely change": "knowledgeStack.analytics.loadMode.insights.highDynamicUsage.recommendation", +"Dynamic Mode Active": "knowledgeStack.analytics.loadMode.insights.dynamicEnabled.title", +"{count} files are loading fresh content on each composition": "knowledgeStack.analytics.loadMode.insights.dynamicEnabled.description", +"Static Mode Only": "knowledgeStack.analytics.loadMode.insights.staticOnly.title", +"All files are using cached content from initial indexing": "knowledgeStack.analytics.loadMode.insights.staticOnly.description", +"Enable Dynamic or Sync Mode for frequently updated files to ensure fresh content": "knowledgeStack.analytics.loadMode.insights.staticOnly.recommendation", +"Mixed Load Modes": "knowledgeStack.analytics.loadMode.insights.mixedModes.title", +"{percentage}% of files are using special load modes": "knowledgeStack.analytics.loadMode.insights.mixedModes.description", +"Compose Settings": "knowledgeStack.composeSettings.title", +"@:knowledgeStack.chunksConsole.chunk Overlapping": "knowledgeStack.composeSettings.chunkOverlapping", +"Changing the embedding model will require recomposing the entire Knowledge Stack and even then there is a chance that recomposition will fail.": "knowledgeStack.composeSettings.embeddingModel.warning", +"Learn more about embedding model compatibility": "knowledgeStack.composeSettings.embeddingModel.learnMore", +"Select an embedding model": "knowledgeStack.composeSettings.placeholders.selectEmbeddingModel", +"Select chunk overlapping": "knowledgeStack.composeSettings.placeholders.selectChunkOverlapping", +"Select chunk size": "knowledgeStack.composeSettings.placeholders.selectChunkSize", +"Chunking Method": "knowledgeStack.composeSettings.chunkingMethod.title", +"Recursive Character": "knowledgeStack.composeSettings.chunkingMethod.recursiveCharacter", +"Sentence": "knowledgeStack.composeSettings.chunkingMethod.sentence", +"Choose how documents should be chunked into smaller pieces for better search and retrieval.": "knowledgeStack.composeSettings.chunkingMethod.description", +"Overlapping": "knowledgeStack.composeSettings.overlapping.title", +"Choose how much overlap should be between chunks. Higher overlap can improve context but increase token usage.": "knowledgeStack.composeSettings.overlapping.description", +"@:knowledgeStack.chunksConsole.chunk Size": "knowledgeStack.composeSettings.chunkSize.title", +"Set the maximum size of each chunk in characters. Smaller chunks can improve search accuracy but increase token usage.": "knowledgeStack.composeSettings.chunkSize.description", +"@:knowledgeStack.chunksConsole.chunk Sizes To Ignore": "knowledgeStack.composeSettings.chunkSizesToIgnore.title", +"Specify chunk sizes that should be ignored during processing. Useful for excluding very small or very large chunks.": "knowledgeStack.composeSettings.chunkSizesToIgnore.description", +"Push Mode": "knowledgeStack.querySettings.modes.push", +"Pull Mode": "knowledgeStack.querySettings.modes.pull", +"Knowledge Stack Context": "knowledgeStack.querySettings.chunks.title", +"Failed to load Knowledge Stack chunks. Please try again.": "knowledgeStack.querySettings.chunks.loadError", +"Search Settings": "knowledgeStack.querySettings.chunks.searchSettings", +"Search Query": "knowledgeStack.querySettings.chunks.searchQuery", +"Content": "knowledgeStack.querySettings.chunks.content", +"Full Content": "knowledgeStack.querySettings.chunks.fullContent", +"@:knowledgeStack.chunksConsole.chunk Information": "knowledgeStack.querySettings.chunks.chunkInfo", +"Knowledge Stack": "knowledgeStack.querySettings.chunks.knowledgeStack", +"chunks": "knowledgeStack.querySettings.chunks.chunks", +"Max @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.querySettings.chunks.maxChunks", +"@:knowledgeStack.chunksConsole.chunk Retrieval Mode": "knowledgeStack.querySettings.retrievalMode.title", +"Choose between Push mode where chunks are pre-fetched, or Pull Mode where the model can query Knowledge Stacks directly": "knowledgeStack.querySettings.retrievalMode.description", +"@:knowledgeStack.chunksConsole.chunk Overlap": "knowledgeStack.chunks.chunkOverlap", +"Synthesized Query": "knowledgeStack.chunks.synthesizedQuery", +"chunk | chunks": "knowledgeStack.chunks.chunks", +"View Full Content": "knowledgeStack.chunks.viewFull", +"Full @:knowledgeStack.chunksConsole.chunk Content": "knowledgeStack.chunks.fullContent", +"Scrubbed": "knowledgeStack.chunks.scrubbed", +"Original": "knowledgeStack.chunks.original", +"@:knowledgeStack.chunksConsole.chunk ID": "knowledgeStack.chunks.chunkId", +"PII Status": "knowledgeStack.chunks.piiStatus", +"PII Scrubbed": "knowledgeStack.chunks.piiScrubbed", +"PII Un-scrubbed": "knowledgeStack.chunks.piiUnscrubbed", +"Original content without @:pii.scrubbing.title": "knowledgeStack.chunks.tooltip.original", +"Query Analysis": "knowledgeStack.chunks.queryAnalysis", +"Full Content Context Active": "knowledgeStack.chunks.fullContentRetrieved", +"Documents Retrieved": "knowledgeStack.chunks.documentsRetrieved", +"Content Context": "knowledgeStack.chunks.contentContext", +"Keywords": "knowledgeStack.chunks.keywords", +"Full Doc": "knowledgeStack.chunks.fullDoc", +"Full Document": "knowledgeStack.chunks.fullDocument", +"@:knowledgeStack.chunksConsole.chunks Visualizer": "knowledgeStack.chunksVisualizer.title", +"Visualize how documents are chunked": "knowledgeStack.chunksVisualizer.description", +"Open Visualizer": "knowledgeStack.chunksVisualizer.openStitcher", +"View Visualizer": "knowledgeStack.chunksVisualizer.viewStitcher", +"Available Files": "knowledgeStack.chunksVisualizer.stitchableFiles", +"Loading files...": "knowledgeStack.chunksVisualizer.loading", +"No files found": "knowledgeStack.chunksVisualizer.noFiles", +"Select a File": "knowledgeStack.chunksVisualizer.selectFile", +"Choose a file from the left to visualize its chunks and content": "knowledgeStack.chunksVisualizer.selectFileDescription", +"MIME Type": "knowledgeStack.chunksVisualizer.mimeType", +"@:knowledgeStack.chunksConsole.chunks": "knowledgeStack.chunksVisualizer.chunks", +"Overlaps": "knowledgeStack.chunksVisualizer.overlaps", +"Stitched Size": "knowledgeStack.chunksVisualizer.stitchedSize", +"Show Overlaps": "knowledgeStack.chunksVisualizer.showOverlaps", +"Hide Overlaps": "knowledgeStack.chunksVisualizer.hideOverlaps", +"Show @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.chunksVisualizer.showChunks", +"Show Stitched": "knowledgeStack.chunksVisualizer.showStitched", +"Copy Content": "knowledgeStack.chunksVisualizer.copyContent", +"Stitched Content": "knowledgeStack.chunksVisualizer.stitchedContent", +"Un-scrubbed @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.chunksVisualizer.unScrubbedChunks", +"Overlaps have been removed for clean text reconstruction": "knowledgeStack.chunksVisualizer.overlapRemoved", +"@:knowledgeStack.chunksConsole.chunk {number}": "knowledgeStack.chunksVisualizer.chunkNumber", +"Overlap Previous": "knowledgeStack.chunksVisualizer.overlapPrevious", +"Overlap Next": "knowledgeStack.chunksVisualizer.overlapNext", +"This text overlaps with the previous chunk": "knowledgeStack.chunksVisualizer.overlapWithPrevious", +"This text overlaps with the next chunk": "knowledgeStack.chunksVisualizer.overlapWithNext", +"Character positions in file": "knowledgeStack.chunksVisualizer.chunkIndices", +"Core content without overlaps": "knowledgeStack.chunksVisualizer.coreIndices", +"{count} chunks": "knowledgeStack.chunksVisualizer.chunkCount", +"Show Original": "knowledgeStack.chunksVisualizer.showOriginal", +"Show Scrubbed": "knowledgeStack.chunksVisualizer.showScrubbed", +"Show Scrubbed Only": "knowledgeStack.chunksVisualizer.showScrubbedOnly", +"Show All @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.chunksVisualizer.showAllChunks", +"Per Page": "knowledgeStack.chunksVisualizer.itemsPerPage", +"{start}-{end} of {total} chunks": "knowledgeStack.chunksVisualizer.showingChunks", +"Loading chunks...": "knowledgeStack.chunksVisualizer.loadingChunks", +"No items found": "knowledgeStack.chunksVisualizer.noItems", +"Select an Item": "knowledgeStack.chunksVisualizer.selectItem", +"Choose a file or note from the left to visualize its chunks and content": "knowledgeStack.chunksVisualizer.selectItemDescription", +"Open Console": "knowledgeStack.chunksVisualizer.openConsole", +"{count} @:knowledgeStack.chunksConsole.chunk Selected": "knowledgeStack.chunksVisualizer.selectedChunks", +"Delete Selected": "knowledgeStack.chunksVisualizer.deleteSelected", +"Clear Selection": "knowledgeStack.chunksVisualizer.clearSelection", +"Confirm Delete": "knowledgeStack.chunksVisualizer.confirmDelete", +"Are you sure you want to delete {count} selected chunks? This action cannot be undone.": "knowledgeStack.chunksVisualizer.confirmDeleteMessage", +"@:knowledgeStack.chunksConsole.chunks Deleted": "knowledgeStack.chunksVisualizer.deleteSuccess", +"Successfully deleted {count} chunks": "knowledgeStack.chunksVisualizer.deleteSuccessDetail", +"{count} @:knowledgeStack.chunksConsole.chunk deleted successfully": "knowledgeStack.chunksVisualizer.deletedChunksCount", +"Delete Failed": "knowledgeStack.chunksVisualizer.deleteError", +"Force Compose": "knowledgeStack.export.forceCompose", +"Overall Progress": "knowledgeStack.export.overallProgress", +"{count} items exported": "knowledgeStack.export.itemsExported", +"Items": "knowledgeStack.export.items", +"Export completed successfully!": "knowledgeStack.export.exportCompleted", +"Saved to: {path}": "knowledgeStack.export.savedTo", +"Cancel All": "knowledgeStack.export.cancelAll", +"Done": "knowledgeStack.export.done", +"Exporting": "knowledgeStack.export.exporting", +"Folder": "knowledgeStack.export.folder", +"Export failed": "knowledgeStack.export.exportFailed", +"Import failed": "knowledgeStack.export.importFailed", +"Your changes to the Knowledge Stack have been saved. You will need to recompose it to apply the changes.": "knowledgeStack.messages.editsSaved", +"Knowledge stack saved and processing started": "knowledgeStack.messages.savedAndProcessing", +"Cannot force compose: Knowledge stack must be saved first": "knowledgeStack.messages.cannotForceCompose", +"Failed to force compose Knowledge Stack": "knowledgeStack.messages.failedToForceCompose", +"Force compose started - all items will be reprocessed": "knowledgeStack.messages.forceComposeStarted", +"Failed to update query settings": "knowledgeStack.messages.failedToUpdateQuerySettings", +"Query settings updated": "knowledgeStack.messages.querySettingsUpdated", +"just now": "knowledgeStack.messages.justNow", +"{minutes}m ago": "knowledgeStack.messages.minutesAgo", +"Failed to select item": "knowledgeStack.messages.failedToSelectItem", +"Failed to select folder": "knowledgeStack.messages.failedToSelectFolder", +"Knowledge Stack {title} processing completed": "knowledgeStack.messages.processingCompleted", +"Knowledge Stack {title} processing failed": "knowledgeStack.messages.processingFailed", +"Nothing to compose for Knowledge Stack {title}": "knowledgeStack.messages.nothingToCompose", +"Error composing Knowledge Stack {title}": "knowledgeStack.messages.composeError", +"Importing from URL is only available in the desktop application": "knowledgeStack.messages.downloadImportNotAvailableInWeb", +"{count} @:knowledgeStack.title deleted!": "knowledgeStack.messages.deleteSuccess", +"Failed to create the @:knowledgeStack.title": "knowledgeStack.messages.createError", +"Failed to save edits to the @:knowledgeStack.title": "knowledgeStack.messages.saveEditsError", +"Folder '{name}' added to the Knowledge Stack": "knowledgeStack.messages.folderAdded", +"Folder '{name}' locked temporarily": "knowledgeStack.folderLockedTemporary", +"Folder '{name}' locked permanently": "knowledgeStack.folderLockedPermanent", +"Failed to lock the folder": "knowledgeStack.lockFailed", +"Folder '{name}' unlocked": "knowledgeStack.folderUnlocked", +"Failed to unlock the folder": "knowledgeStack.unlockFailed", +"Path: {path}": "knowledgeStack.status.path", +"Name: {name}": "knowledgeStack.status.name", +"Unknown": "knowledgeStack.status.unknown", +"Loading PII analytics...": "knowledgeStack.status.loadingPiiAnalytics", +"All items are unlocked and can be reprocessed when needed.": "knowledgeStack.status.allItemsUnlocked", +"Abort Processing": "knowledgeStack.abortProcessing", +"Processing Failed": "knowledgeStack.errors.processingFailed", +"Error Message": "knowledgeStack.errors.errorMessage", +"Occurred at": "knowledgeStack.errors.occurredAt", +"Failed File": "knowledgeStack.errors.failedFile", +"Error Summary": "knowledgeStack.errors.errorSummary", +"Technical Details": "knowledgeStack.errors.technicalDetails", +"Stack Trace": "knowledgeStack.errors.stackTrace", +"Copy Details": "knowledgeStack.errors.copyDetails", +"Error details copied to clipboard": "knowledgeStack.errors.detailsCopied", +"Click to see error details": "knowledgeStack.errors.clickToSeeDetails", +"File is null": "knowledgeStack.errors.fileIsNull", +"Error checking if path is directory": "knowledgeStack.errors.checkingPathError", +"Error processing folder": "knowledgeStack.errors.processingFolderError", +"Failed to lock folder temporarily": "knowledgeStack.errors.lockFolderTemporaryFailed", +"Failed to lock folder permanently": "knowledgeStack.errors.lockFolderPermanentFailed", +"Failed to unlock folder": "knowledgeStack.errors.unlockFolderFailed", +"Status: Completed": "knowledgeStack.errors.status.completed", +"Status: Processing": "knowledgeStack.errors.status.processing", +"Status: Pending": "knowledgeStack.errors.status.pending", +"Status: Draft": "knowledgeStack.errors.status.draft", +"Status: Needs Reprocessing": "knowledgeStack.errors.status.needsReprocessing", +"Status: Error": "knowledgeStack.errors.status.error", +"Status: Temporarily Locked": "knowledgeStack.errors.status.lockedTemporary", +"Status: Permanently Locked": "knowledgeStack.errors.status.lockedPermanent", +"Status: Aborted": "knowledgeStack.errors.status.aborted", +"Status: Unknown": "knowledgeStack.errors.status.unknown", +"Unlock Aurum Features": "features.showcase.title", +"Upgrade to Aurum license for the most powerful AI features and advanced capabilities": "features.showcase.subtitle", +"Everything you need": "features.showcase.eyebrow", +"View Pricing": "features.showcase.viewPricing", +"Feature Matrix": "features.showcase.featureMatrix", +"Activate License": "features.showcase.activateLicense", +"Aurum": "features.showcase.licenses.aurum", +"Upload image…": "images.upload", +"Only image files are supported.": "images.onlySupported", +"Image must be 1MB or smaller.": "images.maxSize", +"Profile image updated.": "userAvatar.updated", +"Failed to update image. Please try again.": "userAvatar.updateFailed", +"Click to change profile image": "userAvatar.changeHint", +"Lost & Found": "setting.lostAndFound.title", +"Find and recover lost workspaces from your computer. Only workspace databases are scanned and discovered, not attachments.": "setting.lostAndFound.description", +"Lost & Found is experimental. Always keep backups of your workspace data before attempting recovery.": "setting.lostAndFound.experimentalInfo", +"Scan for Lost Workspaces": "setting.lostAndFound.scanForLostWorkspaces", +"Scan App Data": "setting.lostAndFound.scanAppData", +"Scan Folder…": "setting.lostAndFound.scanFolder", +"Workspace": "setting.lostAndFound.workspace", +"Last Modified": "setting.lostAndFound.lastModifiedColumn", +"Actions": "setting.lostAndFound.actions", +"Linked": "setting.lostAndFound.statusLinked", +"Found": "setting.lostAndFound.statusFound", +"Restore current workspace": "setting.lostAndFound.restoreCurrentWorkspace", +"Import As New Workspace": "setting.lostAndFound.importAsNewWorkspace", +"Restore current workspace?": "setting.lostAndFound.restoreConfirmHeader", +"This will replace the data of the currently active workspace with the data from the selected recovered file. This cannot be undone.": "setting.lostAndFound.restoreConfirmMessage", +"Failed to import workspace": "setting.lostAndFound.failedToImportWorkspace", +"Workspace imported": "setting.lostAndFound.workspaceImported", +"Recovered workspace has been imported. Switch to it from the workspace tray if needed.": "setting.lostAndFound.workspaceImportedDetail", +"Failed to restore workspace": "setting.lostAndFound.failedToRestoreWorkspace", +"Workspace restored": "setting.lostAndFound.workspaceRestored", +"Current workspace has been restored from the recovered file.": "setting.lostAndFound.workspaceRestoredDetail", +"Failed to import recovered workspace": "setting.lostAndFound.failedToImportRecoveredWorkspace", +"Failed to import recovered workspace (unexpected)": "setting.lostAndFound.failedToImportRecoveredWorkspaceUnexpected", +"Failed to restore workspace from recovered file": "setting.lostAndFound.failedToRestoreFromRecoveredFile", +"Failed to restore workspace from recovered file (unexpected)": "setting.lostAndFound.failedToRestoreFromRecoveredFileUnexpected", +"Quick filter...": "quickFilter", +"Toggle filter": "toggleFilter", +"Toggle sidebar": "toggleSidebar", +"Adjust": "adjust", +"{item} is experimental and under active development. Please report any issues to the team.": "experimentalInfo", +"File Type": "attachmentsManager.columnHeaders.fileType", +"Attachment Type": "attachmentsManager.columnHeaders.attachmentType", +"Browse Existing Attachments": "attachmentsManager.actions.browseExisting", +"View Associations": "attachmentsManager.actions.viewAssociations", +"Delete Attachment | Delete Attachments": "attachmentsManager.actions.delete.title", +"Are you sure you want to delete the attachment? All the associations to the attachment will also be removed. This action cannot be undone. | Are you sure you want to delete the attachments? All the associations to the attachments will also be removed. This action cannot be undone.": "attachmentsManager.actions.delete.confirmationMessage", +"Successfully deleted the attachment | Successfully deleted the attachments": "attachmentsManager.actions.delete.successMessage", +"Failed to delete the attachment | Failed to delete the attachments": "attachmentsManager.actions.delete.errorMessage", +"Search by Name": "attachmentsManager.search", +"Filter by Attachment Type": "attachmentsManager.filter", +"Attachments Manager": "attachmentsManager.title", +"No Attachments Found": "attachmentsManager.emptyState.title", +"You have no attachments available.": "attachmentsManager.emptyState.description", +"Associations for {attachmentName}": "attachmentsManager.associations.title", +"Search by Association Name": "attachmentsManager.associations.search", +"Filter by Associated Entity": "attachmentsManager.associations.filter", +"No Associations Found": "attachmentsManager.associations.emptyState.title", +"You have not used this attachment anywhere yet.": "attachmentsManager.associations.emptyState.description", +"Association Name": "attachmentsManager.associations.columnHeaders.associationName", +"Associated Entity": "attachmentsManager.associations.columnHeaders.associatedEntity", +"Jump to {entity}": "attachmentsManager.associations.actions.jumpTo", +"Detach Association": "attachmentsManager.associations.actions.detach.title", +"Are you sure you want to detach the association from the {associationEntity}? This action cannot be undone.": "attachmentsManager.associations.actions.detach.confirmationMessage", +"Successfully detached the association": "attachmentsManager.associations.actions.detach.successMessage", +"Failed to detach the association": "attachmentsManager.associations.actions.detach.errorMessage", +"AI Prompt": "iconSelector.aiMode", +"Describe what the icon represents...": "iconSelector.aiPlaceholder", +"Find Icon": "iconSelector.findIcon", +"Finding...": "iconSelector.finding" +} \ No newline at end of file diff --git a/tools/msty_ca/source_strings.json b/tools/msty_ca/source_strings.json new file mode 100644 index 0000000..b0a6dfe --- /dev/null +++ b/tools/msty_ca/source_strings.json @@ -0,0 +1,3243 @@ +[ +"You", +"Select", +"Conversations", +"Copy to Clipboard", +"to copy markdown directly", +"Click to copy markdown directly", +"to show more options", +"Long press or Alt+click for more options", +"on message", +"@:select a model | @:select models", +"@:manage Models", +"Required", +"Optional", +"System Prompt", +"@:systemPrompt Attach @:mode", +"@:user Prompt", +"Delete {item}", +"Delete All", +"Create", +"Edit", +"Expand editor", +"Collapse editor", +"Enable", +"Disable", +"Save", +"Saved", +"Cancel", +"Close", +"Bookmarked", +"Pinned", +"Update", +"Apply", +"Reset", +"Icon", +"Clear", +"API Key", +"Models", +"Available {itemType}", +"Unavailable", +"Detected", +"Continue", +"Undetected", +"Welcome!", +"Plan", +"All changes saved", +"Toolbar", +"Bookmark | Bookmarks", +"Waiting :: Hold on :: Just a moment :: One second :: Patience is a virtue :: Almost there :: Loading awesomeness", +"Searching the Web :: Browsing the internet :: Looking online :: Scouring the web :: Consulting the oracle :: Asking the internet nicely :: Diving into cyberspace :: Mining the web", +"Querying @:knowledgeStack.title :: Searching your knowledge :: Looking through your docs :: Exploring your knowledge base :: Rifling through your wisdom :: Consulting your digital library :: Scanning your archives :: Digging through your notes", +"Preparing Tools :: Getting tools ready :: Setting up tools :: Loading tools :: Sharpening the instruments :: Assembling the toolkit :: Warming up the engines :: Prepping the workspace", +"Model is doing its magic ✨ :: AI is thinking :: Processing your request :: Working on it :: Crunching the numbers :: Neurons firing :: Pondering deeply :: Computing brilliance :: Engaging brain mode :: Summoning intelligence", +"Processing Context :: Understanding context :: Analyzing context :: Reading the situation :: Connecting the dots :: Grasping the big picture :: Piecing it together :: Making sense of things", +"Streaming :: Sending response :: Delivering answer :: Transmitting :: Beaming down results :: Flowing your way :: En route to you :: Coming in hot", +"Scrubbing PII Data :: Protecting your privacy :: Removing personal info :: Anonymizing data :: Keeping secrets safe :: Privacy mode engaged :: Redacting the sensitive bits :: Going incognito", +"Synthesizing Query for Better Results :: Optimizing your question :: Enhancing query :: Refining search terms :: Polishing your request :: Fine-tuning the question :: Crafting the perfect query :: Making your words shine", +"Fetching Live Contexts :: Gathering real-time data :: Pulling fresh insights :: Syncing with live sources :: Tapping into the data stream :: Collecting current intel :: Refreshing context feeds :: Harvesting live updates :: Connecting to the pulse", +"Initializing...", +"Add", +"Expand {group}", +"Collapse {group}", +"Show extra add-ons", +"Hide extra add-ons", +"Model & Prompts", +"Data & Knowledge", +"Tools & Personas", +"Unauthorized", +"Valid", +"Invalid", +"Done!", +"Confirm", +"Share with synced splits", +"Source | Sources", +"Grounding Sources", +"Manage", +"Chat | Chats", +"Advanced Options", +"Duplicate", +"@:manage {item}", +"Success!", +"Notes", +"View Notes", +"Error!", +"Warning", +"Authorized", +"Not authorized", +"Authorize", +"Re-authorize", +"Remove authorization", +"Failed to delete", +"Failed to save", +"Failed to update", +"updated.", +"Apply and share with synced splits", +"Click to edit", +"Click to add @:systemPrompt", +"Pause", +"Resume", +"Retry", +"Stop", +"Run", +"Re-run", +"Remove", +"Skip", +"Unskip", +"Start Importing", +"New", +"Entry | Entries", +"Import", +"Connect", +"Disconnect", +"Reconnect", +"Select Target Folder", +"Create new folder for imported items", +"New folder name", +"Remote", +"Local", +"Strength | Strengths", +"Provider", +"{count} Capability | {count} Capabilities", +"Preset | Presets", +"Save As @:preset", +"Append", +"Prepend", +"Replace", +"Description", +"Mode", +"Add-ons", +"User", +"Assistant", +"@:assistant @:message.title", +"Connection Info", +"Export", +"Export Options", +"Choose File", +"Purpose", +"Download", +"Downloads", +"Download as JSON", +"Install", +"Installed", +"Modified", +"Created", +"Minimize", +"Status", +"Type", +"Yes", +"File Size", +"Size", +"Like | Likes", +"Cancelled", +"Parameter @:size", +"Quantization", +"@:quantization Level", +"Context Size", +"Default to model max", +"Maximum tokens the model processes at once. Set to 0 to use model's maximum. Larger values increase memory usage. This value is saved globally per model with LLaMa.cpp. Context is shared equally across the number of concurrent requests set via LLaMa.cpp service settings.", +"Truncate Middle", +"Truncate Old", +"None", +"How to handle messages when context limit is approached.", +"Storage", +"Params", +"Arch", +"Filter", +"Sort & Display", +"Search...", +"Folders first", +"Items first", +"Name", +"Title", +"Updated", +"Last Used", +"Ascending", +"Descending", +"Visibility", +"Show empty folders", +"Hide empty folders", +"Show item counts", +"Hide item counts", +"No {item} found for this search", +"Loading", +"Invite", +"Refresh", +"Email", +"Role", +"Admin", +"Owner", +"Inactive", +"Argument|Arguments", +"Abort", +"Send", +"Remind Me Later", +"Text", +"Folders", +"Folder | @:folders", +"Search", +"Active", +"Archived", +"All", +"Fuzzy search enabled", +"Fuzzy search disabled", +"Fuzzy Search Enabled. Click to Toggle", +"Fuzzy Search Disabled. Click to Toggle", +"Change", +"Expand All Projects", +"Collapse All Projects", +"Expand All Folders", +"Collapse All Folders", +"Clone {item}", +"{item} cloned", +"Failed to clone {item}", +"Add notes to help you remember the purpose of this {item}; this will also be seen by models which can provide them more details on how to use this {item} (@:optional)", +"Endpoint Test Results", +"Test Connection", +"No {item} found", +"@:select {item}", +"{count} {title}", +"Feature|Features", +"Raw", +"Raw Output", +"Property|Properties", +"Configure", +"Context | Contexts", +"Path | Paths", +"Project | Projects", +"New Project at Root", +"Project Name", +"Project Description", +"Default Model", +"Custom Instructions", +"Add Child Project", +"Move Folder to Root", +"Failed to move project to root.", +"The project was successfully moved to the root.", +"Delete Project", +"Set as Default Project", +"Unset Default Project", +"Misc", +"Include Project Context", +"Are you sure you want to delete {projectName} and all its conversations?", +"@:cancel", +"@:delete", +"Project deleted", +"Delete All Conversations", +"Are you sure you want to delete all conversations in {projectName}? This action cannot be undone.", +"Deleted {count} conversation | Deleted {count} conversations", +"No conversations to delete", +"Failed to delete conversations", +"Archive All Conversations", +"Archive all conversations in {projectName}? They will move to the Archive and can be restored later.", +"Archive All", +"Archived {count} conversation | Archived {count} conversations", +"Failed to archive conversations", +"Add Files", +"Edit Project", +"New Project", +"Drag and drop files that will get attached to each conversation in this project.", +"Project created", +"Project created! It's currently hidden because it's empty. Click the button below to show it now, or it will appear automatically when you add your first conversation.", +"Project updated", +"Failed to create Project", +"Failed to update Project", +"Show Empty Projects", +"Empty projects are now visible", +"Start a New Conversation to Get Started", +"Selected model", +"Endpoint", +"Auth Token", +"Before", +"After", +"Method", +"HTTP @:method", +"Get", +"Post", +"@:preset with the same name already exists.", +"@:presetAlreadyExistsMessage If you save, it will overwrite the existing preset.", +"No {propsName} available. Add a custom one.", +"@:local AI", +"Click to add a label", +"Branch label (max 30 chars)", +"Label Branch...", +"Label Branch", +"No label", +"Click for more options", +"Branch Explorer", +"Branch Explorer...", +"Branch {n}", +"Current", +"Branches", +"Compare", +"Compare Branches", +"Compare branches", +"Exit compare mode", +"Select first branch to compare", +"Select second branch to compare", +"Selected", +"Content is identical", +"First branch", +"Second branch", +"Select branch", +"Select two branches above to compare their content", +"Switch to {name}", +"Diff", +"Side by Side", +"Conversation | Conversations", +"@:conversation.title Title", +"Failed to generate context summary.", +"Check Settings > Notifications for more details.", +"Failed to send message.", +"Check Settings > Notifications for more details. {error}", +"Message exceeds context limit", +"Your message with search results and context is too large for this model. Try: increasing context size from model parameters, reducing search results, clearing conversation history, using a model with larger context (16k+), or shortening your system instructions.", +"Delete @:conversation.title", +"Add New @:conversation.title", +"New @:conversation.title", +"Projects first", +"Last Activity", +"No priority", +"@:pinned first", +"@:bookmarked first", +"Show Recents & @:pinned", +"Hide Recents & @:pinned", +"Show Archive", +"Hide Archive", +"Show empty projects", +"Hide empty projects", +"Show conversation counts", +"Hide conversation counts", +"Press {trigger} for quick commands OR start typing...", +"Press / to focus here and start typing", +"Are you sure you want to delete selected conversation and all its chat splits? | Are you sure you want to delete selected conversations and all their chat splits?", +"Delete", +"@:conversation.title deleted", +"Failed to delete @:conversation.title", +"Convert to Chat", +"@:conversation.title converted to Chat", +"Failed to convert conversation to Chat", +"Convert to @:forge.forgeCanvas", +"@:conversation.title converted to @:forge.forgeCanvas", +"Failed to convert conversation to @:forge.forgeCanvas", +"Messages cloned to new split successfully", +"Failed to clone messages to new split", +"Messages cloned to new conversation successfully", +"Failed to clone messages to new conversation", +"Archive", +"Orphaned Conversation", +"This conversation is archived. Unarchive it to continue the discussion.", +"Sending a new message will automatically unarchive.", +"Unarchive", +"Conversation unarchived automatically.", +"{count} conversation archived | {count} conversations archived", +"{count} conversation restored | {count} conversations restored", +"Unload archived items", +"Archived items unloaded", +"Unable to update archive status. Please try again.", +"Archive {item}", +"Export @:conversation.title as JSON", +"Successfully exported conversations as JSON", +"Show All Splits", +"Save Splits As", +"New Single Split Chat", +"Split Preset | Split Presets", +"Save Splits As @:preset", +"Edit Split @:preset {presetName}", +"@:preset Name", +"@:preset Options", +"@:select @:preset Options", +"Save @:preset", +"Split @:preset added", +"Split @:preset updated", +"Failed to save Split @:preset", +"Delete Split @:preset", +"Are you sure you want to delete {splitPresetName}? ", +"Split @:preset deleted", +"Compact Mode", +"@:enable @:conversationActions.compactMode", +"@:disable @:conversationActions.compactMode", +"Split Widths", +"Slim", +"Balanced", +"Roomy", +"Spacious", +"Full", +"Response Configuration", +"Select a preset...", +"Save as Preset", +"Common Settings", +"Advanced Parameters", +"JSON object for advanced model parameters", +"", +"Provider Options", +"Provider-specific configuration", +"Thinking Configuration", +"Extended thinking configuration", +"Provider may ignore or partially honor thinking settings", +"Custom Parameters", +"Provider may ignore or partially honor these", +"custom_param", +"value", +"Delete Parameter", +"Delete custom parameter \"{param}\"?", +"Parameter key is required.", +"This key is reserved for built-in parameters.", +"A parameter with this key already exists.", +"Invalid JSON", +"Constraint Mode is On", +"Freeform Mode is On - no min/max limits", +"Expand for other options", +"Collapse other options", +"Temperature", +"Controls randomness (0=focused, 2=creative)", +"Top P", +"Probability mass to keep during nucleus sampling", +"Top K", +"Limit token selection to the top K tokens", +"Max Output Tokens", +"Maximum tokens for responses", +"Maximum tokens for responses (limit {0})", +"Context Window Size", +"Maximum tokens accepted in the prompt", +"Maximum tokens accepted in the prompt (limit {0})", +"Set to 0 to use model's maximum context size", +"Presence Penalty", +"Penalize new tokens based on whether they appear in the text so far", +"Frequency Penalty", +"Penalize tokens based on frequency in the text so far", +"Repeat Penalty", +"Discourage repeating phrases", +"Repeat Last N", +"Context window for applying repeat penalty", +"Min P", +"Minimum cumulative probability for token selection", +"Mirostat", +"Stabilize perplexity dynamically", +"Off", +"Mirostat 1.0", +"Mirostat 2.0", +"Mirostat Tau", +"Target surprise level (lower = safer)", +"Mirostat Eta", +"Learning rate for Mirostat adjustment", +"GPU Layers", +"Number of layers to offload to GPU", +"Threads", +"CPU threads to use for generation", +"Model Parameters", +"Max Output Tokens (Legacy)", +"Context Window @:size", +"Number of GPU Layers", +"@:select or insert a parameter", +"@:select a @:preset", +"Save as @:preset", +"Add New Parameter", +"Extra @:params", +"Apply and Save as Model Default", +"Save @:modelParams.params As Preset", +"Failed to save params preset.", +"@:modelParams.params preset saved.", +"Delete @:preset", +"Are you sure you want to delete {presetName}?", +"Failed to delete params preset.", +"@:modelParams.params preset deleted.", +"Thinking Effort", +"Think Lightly", +"Think Moderately", +"Think Deeply", +"Default", +"Dynamic", +"Exclude", +"Split Options", +"Add Split Chat", +"Hide Split", +"Copy Split to New Conversation", +"Move Split to New Conversation", +"Delete Split", +"Remove Split", +"Split removed", +"Split reset", +"Split copied to new conversation", +"Split moved to new conversation", +"Failed to copy split to new conversation", +"Failed to move split to new conversation", +"Export Chat", +"Copy Chat", +"Active Branch as JSON", +"Active Branch as Markdown", +"All Branches as JSON", +"Successfully {action} chat as {format}", +"exported", +"copied", +"Show All Hidden Messages", +"All hidden messages are now visible", +"Are you sure you want to delete this Split?", +"Message|Messages", +"Message and Descendants", +"Send on Enter", +"Send Modifier", +"Shift", +"Alt", +"Ctrl", +"Meta", +"Re-send user message", +"Send as @:assistant Message", +"Sending a message as \"Assistant\" lets you shape the conversation by adding AI responses yourself. The AI will continue as if it wrote that message. Useful for providing context or guiding responses.", +"Sent as Assistant Message", +"Manually Edited", +"@:bookmark Message | @:bookmark Messages", +"Remove @:bookmark | Remove Bookmarks", +"Delete Message | Delete Messages", +"Remove Message", +"Regenerate assistant message as a new branch", +"@:continue Generation", +"Use as prompt in new split", +"Fold Messages Above", +"Unfold Messages Above", +"Clone with Ancestors to New Split", +"Clone with Ancestors to New Conversation", +"Extra Actions", +"No model selected. Please select a model to send a message", +"Delete Message", +"Are you sure you want to delete this message?", +"Delete Message and its descendants", +"Are you sure you want to delete this message and all its descendants?", +"Quick Commands", +"No matching commands", +"Type \\ followed by command or alias", +"Regenerating message...", +"Context shield applied", +"Compressing with shield...", +"Message @:bookmarked", +"Copied to clipboard", +"Continuing generation...", +"Resending message...", +"Shiftcuts", +"Enable or disable the Shiftcuts feature. Unlike standard keyboard shortcuts, Shiftcuts are triggered by double-tapping the Shift key and then pressing another key to perform an action; including: 't' to open new split chat, 'e' to open environment selector, '1' to toggle sidebar, and 'm' to open minimap.", +"URL Endpoint", +"Give it a unique name", +"Duplicate or invalid {item} name. Please enter a unique name.", +"You have not backed up your data, would you like to export your data for backup?", +"It has been 24hrs since your last backup, would you like to export your data for backup?", +"Storage may be cleared by the browser under storage pressure. We recommend backing up your data regularly.", +"Export @:data", +"Clear @:data", +"Restore @:data", +"Drag and drop your data backup to restore from.", +"Restoring from backup file will replace all existing data. We recommend to export a backup first.", +"Failed to export data", +"Backup @:data", +"@:data exported", +"Failed to clear data", +"@:data has been cleared", +"Enter '{string}' here", +"Please enter '{string}' below to proceed", +"@:warning", +"Invalid confirmation. Please enter '{string}' to proceed.", +"Are you sure you want to clear all data? This action cannot be undone.", +"Please select a file to restore from", +"Are you sure you want to restore all data? This action will replace all existing data and cannot be undone. We recommend to export a backup first.", +"Restore", +"@:data Imported", +"Failed to Import @:data", +"Setup {item}", +"{item} setup completed", +"Could not setup {item}", +"Welcome to Msty Studio!", +"We'd need at least one model provider to get started.", +"Welcome to Msty!", +"How would you like to get started?", +"Got Ollama/Msty Models?", +"Got MLX Models?", +"Got LLaMA.cpp Models?", +"You can use your existing Ollama or Msty models directly, if any, or specify a custom location. Note: we will still be using our own service to run those models.", +"If you don't have any MLX models yet, you can specify a custom location where you'd like to store them.", +"We found MLX models in your Hugging Face Hub cache! You can use them directly or specify a custom location.", +"Specify a custom location where you'd like to store your GGUF models for LLaMA.cpp.", +"No location set", +"Set Your Own", +"Custom model locations are not available for MLX", +"Enter custom models path", +"To get you started, {modelName} will be downloaded. You can choose a different model.", +"Use models like DeepSeek R1, Meta Llama4, Microsoft Phi4, IBM Granite, Google Gemma, etc", +"Use offline and keep your @:data private", +"Models are free to download and use", +"Install and use specialized models", +"Needs extra storage and memory", +"That's it!", +"You can now start chatting with your models privately and securely.", +"Error Setting Up @:localAIService", +"We could not set up @:localAIService{'.'} Please check the logs for more details. {errorMessage}", +"There was a permission issue setting up Local AI. You can rerun the app as an admin (not recommended) or consider installing the app as for a single user only (recommended).", +"{errorMessage} Consider installing Local AI from archive files if you continue to get this error. Please visit https://docs.msty.studio/getting-started/onboarding", +"Error Setting Up MLX Service", +"We could not set up MLX Service. Please check the logs for more details. {errorMessage}", +"To get you started, {modelName} will be downloaded. MLX is Apple's optimized framework for Apple Silicon.", +"MLX is currently in experimental mode. It may have some limitations and rough edges. Please report any issues to the team.", +"Optimized for Apple Silicon (M1, M2, M3, M4)", +"Efficient memory usage with unified memory architecture", +"Supports MLX, SafeTensors, and GGUF models", +"Native performance on macOS", +"Only available on Apple Silicon Macs", +"Smaller model selection compared to Ollama", +"MLX Setup Complete!", +"You can now use MLX models with optimal performance on your Mac.", +"Checking system compatibility...", +"Downloading MLX server...", +"Starting MLX service...", +"Setting up MLX...", +"Downloading Model: {progress}%", +"LLaMA.cpp support is experimental and under active development", +"Error Setting Up LLaMA.cpp Service", +"We could not set up LLaMA.cpp Service. Please check the logs for more details. {errorMessage}", +"To get you started, {modelName} will be downloaded. LLaMA.cpp provides efficient cross-platform AI inference.", +"Works on Windows, macOS, and Linux", +"Supports both CPU and GPU acceleration", +"Efficient memory usage and fast inference", +"Compatible with GGUF model format", +"Requires desktop application", +"Performance depends on hardware configuration", +"LLaMA.cpp Setup Complete!", +"You can now use LLaMA.cpp models with efficient performance on your system.", +"Downloading LLaMA.cpp server...", +"Starting LLaMA.cpp service...", +"Setting up LLaMA.cpp...", +"Downloading: {progress}%", +"With most online providers, you'd need to get an API key from the provider's website. {findYourKey}", +"Find your API key", +"Use OpenAI, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Ollama, Remote Msty, etc", +"Get started without downloading models", +"Some vendors provide extra features like image generation, web search, etc", +"Requires internet connection to chat", +"Vendor charges may apply", +"{count} model available | {count} models available", +"{count} model added | {count} models added", +"Forget this provider", +"Let's Go!", +"No @:localAI? Get @:remoteToolsConnector.title for 1-click Setup", +"You are now ready to chat with one of the models from {providerName}.", +"Continue {service} Setup", +"Enter your email", +"Invalid email or something went wrong. Please try again.", +"Login link sent to { email }", +"Model Hub", +"Model Providers", +"Access models from the cloud or remote servers.", +"Models list is pulled automatically", +"Add Provider", +"Use OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Msty, Remote Ollama, etc.", +"Get started quickly", +"No download required", +"Delete Provider", +"Are you sure you want to delete {providerName}?", +"Provider deleted", +"Error", +"Failed to delete provider", +"Copy to Other Workspace", +"Copy/Sync to Other Workspaces", +"Copy this provider to one or more workspaces.", +"Sync this provider to one or more workspaces. If this provider was copied before, it will be updated. If not, it will be added.", +"@:select Workspaces", +"Available Workspaces", +"Update Provider", +"New Language Models Provider", +"Edit Language Model Provider", +"Models Provider", +"Model ID", +"Model Name", +"Provider Name", +"Provider URL", +"Provider Token", +"Save Provider", +"@:select Provider", +"Give it a name (optional)", +"@:select Models", +"Available Models", +"Add Custom Model", +"Inference Endpoint (must start with http:// or https://)", +"Base URL", +"Resource Name (will be ignored if Base URL is set)", +"API @:version", +"AWS Region", +"Access Key ID", +"Secret Access Key", +"Session Token (Optional)", +"Not all models have been tested with Msty and it may not support all the models available in the provider.", +"Click 'Fetch Models' to retrieve available models from the provider (an API key may be required), or manually add a model below.", +"Enter your API key to try to retrieve all the available models from {providerName}, or manually add a custom model.", +"Fetch Models", +"All Models", +"Unselected", +"All Purposes", +"Search models...", +"You must have CORS enabled in LM Studio to work with Msty", +"Most of the OpenAI compatible providers endpoint need /v1 prefix e.g. https://example.com/v1 If you are running into issues, try appending /v1 to the endpoint.", +"Models Provider {providerName} added", +"Models Provider {providerName} updated", +"Failed to add Provider", +"Failed to update Provider", +"Using long-term credentials for Amazon Bedrock is not recommended.", +"e.g. us-east-1", +"Failed to update provider visibility", +"{provider} is now {visibility}", +"Models Count", +"Show in Model Selector", +"No models available for this provider", +"Model updated successfully", +"Failed to update model", +"Add New", +"@:remoteToolsConnector.title Proxy @:localAI Endpoint", +"Make sure @:remoteToolsConnector.title is running and accessible at the provided URL via Tunneling. Copy and paste the full Tunnel Connection Info with token and URL.", +"Make sure Msty Desktop is running with remote connections enabled.", +"Learn how to enable remote connections", +"This service runs whenever the app itself is up and running. You may have to update the port number if Local AI port got changed. Otherwise, it's best to leave it as is.", +"When using self-hosted Ollama, make sure Ollama is running and accessible at the provided URL. You must add https://msty.studio to the allowed origins when starting Ollama service.", +"e.g. http://localhost:11434 or https://ollama.com", +"This provider is used to run MLX models on Apple Silicon Macs. The endpoint is auto-corrected to make sure it matches with your local MLX setup. You can change it temporarily if needed.", +"This provider is used to run LLaMA.cpp models. Most likely, you won't need to change the default endpoint. If you do, make sure LLaMA.cpp service is running and accessible at the provided URL.", +"@:localAI Models", +"There are no compatible providers available to manage Local Models. Please add at least one provider of type Msty Remote or Ollama Remote to use Local Models.", +"{count} Active Download | {count} Active Downloads", +"Featured Models", +"Installed Models", +"Or Install model by tag e.g. {example}", +"Already Installed", +"Model {modelName} is already installed", +"Abort Installation of {modelName}", +"Installation of {modelName} aborted", +"Uninstall Model", +"Are you sure you want to uninstall {modelName}?", +"Model removed", +"Failed to uninstall model", +"Model {modelName} is ready to use", +"Failed to install model {modelName}", +"{modelName} requires a newer version of Local AI. Please update to the latest version from Settings > Local AI > Service Version > ... > Force Update Local AI Service", +"Ollama Models", +"Hugging Face Models", +"Search by author, model, or paste a Hugging Face repo URL", +"Find models by name, author, or URL. Or get started with one of the model families below.", +"Searching for models...", +"Import GGUF", +"Import GGUF Model", +"Select a GGUF model file from your file system to import into {providerLabel}.", +"Active Imports", +"No file selected", +"Click the button below to select a GGUF file", +"Drag and drop a GGUF file here, or click the button below", +"Drop file here", +"Release to select file", +"Select GGUF File", +"Choose Different File", +"Import Model", +"e.g., my-custom-model", +"This will be the name you use to reference the model in conversations.", +"Remove file", +"Dismiss", +"Use symlink (saves disk space)", +"Creates a symbolic link instead of copying the file. Only available for local servers.", +"Calculating file digest", +"Uploading file", +"Creating symlink", +"Creating model", +"Model {modelName} imported successfully", +"File", +"Uploading", +"Completed", +"Please select a valid GGUF file", +"Import Safetensors", +"Import Safetensors Model", +"Select a directory containing safetensors model weights to import into {providerLabel}. Supported architectures include Gemma, Llama, Mistral, and Phi.", +"No directory selected", +"The directory should contain safetensors files and a config.json", +"Select Safetensors Directory", +"Select Directory", +"Choose Different Directory", +"Remove directory", +"Scanning directory", +"Processing file {current} of {total}", +"Creating model from safetensors", +"Directory", +"Uploading files", +"files selected", +"Safetensors import is only available in the desktop app", +"Failed to select directory", +"No valid safetensors files found in the selected directory", +"LLaMA.cpp Models", +"{count} Active LLaMA.cpp Download | {count} Active LLaMA.cpp Downloads", +"LLaMA.cpp model {modelName} is already installed", +"Model Ready", +"LLaMA.cpp model {modelName} is ready to use", +"Installation Failed", +"Failed to install LLaMA.cpp model {modelName}", +"LLaMA.cpp model {modelName} installed", +"Downloading of LLaMA.cpp model {modelName} was aborted", +"Failed to cancel LLaMA.cpp model download", +"Cancelled download of LLaMA.cpp model {modelName}", +"Uninstall Failed", +"Failed to uninstall LLaMA.cpp model {modelName}", +"Model Removed", +"Uninstalled LLaMA.cpp model {modelName}", +"Uninstall LLaMA.cpp Model", +"Featured LLaMA.cpp Models", +"Installed LLaMA.cpp Models", +"LLaMA.cpp Community Models", +"Browse, search, and install GGUF models directly from Hugging Face to your local LLaMA.cpp models folder.", +"Search LLaMA.cpp Community Models", +"Search LLaMA.cpp models from Hugging Face", +"Find LLaMA.cpp compatible GGUF models or pick one of the featured model families below.", +"Searching for LLaMA.cpp models...", +"MLX Models", +"MLX models are only supported on Apple Silicon Macs (M1, M2, M3, M4, etc.). Your current device is not compatible.", +"There are no compatible MLX providers available. Please add at least one MLX provider to use MLX Models.", +"{count} Active MLX Download | {count} Active MLX Downloads", +"Learn More about MLX", +"Featured MLX Models", +"Installed MLX Models", +"MLX Model {modelName} is already installed", +"Uninstall MLX Model", +"MLX Model removed", +"Failed to uninstall MLX model", +"MLX Model {modelName} is ready to use", +"Failed to install MLX model {modelName}", +"Downloading of MLX model {modelName} was aborted", +"MLX Community Models", +"Search MLX Community Models", +"Search MLX models from HuggingFace mlx-community", +"Find MLX optimized models from HuggingFace. Or get started with one of the model families below.", +"Searching for MLX models...", +"Sticky Prompt", +"Disable Sticky Prompt", +"Edit Sticky Prompt", +"When a 'sticky' prompt is pinned, it is added to the beginning of each new message while ignoring any previous ones. This effectively makes the conversation focused on one active context. System prompt is always included in the context.", +"@:context Shield", +"Enable @:contextShield.title", +"Enable @:contextShield.title{'.'} Hold Option/Alt to @:contextShield.title all synced splits.", +"Remove @:contextShield.title", +"Disable @:contextShield.title{'.'} Hold Option/Alt to remove @:contextShield.title from all synced splits.", +"Break @:context", +"Custom @:context", +"Generate @:context @:summary", +"@:context @:summary", +"Edit @:context @:summary", +"Regenerate @:context @:summary", +"Clear @:context @:summary", +"This summary is generated from the context of the conversations above and is included in the context when generating new messages below this shield.", +"@:contextShield.title with @:summary", +"Data", +"Advanced Configurations", +"Application Info", +"App Version", +"The latest updates are checked periodically and you will be notified when a new update is available. You can also manually check for updates, which will then automatically install any available updates.", +"Check and Apply Updates", +"Enable Auto Updates", +"Disable Auto Updates", +"View Changelog", +"Checking for updates...", +"Failed to check for updates", +"Auto updates enabled", +"Auto updates disabled", +"New update available", +"Downloading update...", +"You're on the latest version", +"Models Info", +"Update your local model metadata. This information includes details about each model, but not the model files themselves. This applies to both locally stored and online models.", +"Fetch Latest Models Info", +"Models info updated successfully", +"Failed to update models info", +"App Settings", +"Resetting app settings to their defaults can help resolve potential issues. This will restore the default user preferences, such as appearance and models path, but will not delete any data, including chats or downloaded/imported models.", +"Reset App Settings", +"Are you sure you want to reset all app settings to their defaults? This will restore default preferences but won't delete your data.", +"App settings reset successfully", +"Failed to reset app settings", +"Data Paths", +"All data, including models, conversations, settings, and logs, are stored locally on your device. Only modify the contents of these directories if you are familiar with the application's file structure.", +"App Data", +"App Logs", +"Open in Finder", +"Help & Discussions", +"Connect with our community on Discord to get support, share your feedback, and stay informed.", +"Say Hi!", +"View Docs", +"Log Viewer", +"View and analyze application logs in real-time. Use filters and search to troubleshoot issues efficiently.", +"Search Logs...", +"Refresh Logs", +"Stop Auto-Refresh", +"Enable Auto-Refresh", +"Stop Auto-Scroll", +"Resume Auto-Scroll", +"Copy Logs to Clipboard", +"Download Logs", +"Clear Logs Display", +"Clear Logs File", +"Show All Logs", +"Clear Log File", +"Are you sure you want to clear the log file? This will permanently delete all log entries.", +"Loading logs...", +"No logs available", +"No logs match the current filters", +"{count} total line | {count} total lines", +"{count} filtered line | {count} filtered lines", +"Logs copied to clipboard", +"Logs downloaded successfully", +"Log file cleared successfully", +"Failed to load logs", +"Failed to copy logs", +"Failed to download logs", +"Failed to clear logs", +"All Levels", +"Info", +"Debug", +"Notifications", +"Review and manage application notifications including errors, warnings, and info events.", +"Search Notifications...", +"Searching all notifications in database", +"Refresh Notifications", +"Auto-Refresh Enabled", +"Copy All to Clipboard", +"Copy Notification", +"Download Notifications", +"Clear All Notifications", +"Clear Notifications", +"Are you sure you want to permanently delete all notifications? This action cannot be undone.", +"Loading notifications...", +"Loading more...", +"End of list", +"No notifications available", +"{count} notification | {count} notifications", +"Showing {count}", +"Notification copied to clipboard", +"Notifications downloaded successfully", +"Notifications cleared successfully", +"Notification deleted successfully", +"Failed to load notifications", +"Failed to copy notification", +"Failed to download notifications", +"Failed to clear notifications", +"Failed to delete notification", +"Purge Notifications", +"Older than 1 day", +"Older than 7 days", +"Older than 15 days", +"Older than 30 days", +"Are you sure you want to delete notifications older than {days} days? This action cannot be undone.", +"Purge", +"Notifications purged successfully", +"Failed to purge notifications", +"Errors", +"Warnings", +"Show extra items", +"Hide extra items", +"Models & Prompts", +"Personas & Tools", +"Knowledge & Insights", +"System", +"Version {version}", +"Restart to Apply Updates", +"Restart Now", +"Downloading Update...", +"Opening Changelog...", +"Update error - click for details", +"Update ready - restart to apply", +"Downloading update... {percent}%", +"Update Error", +"An error occurred while updating: {error}", +"Download Manually", +"Show in Finder", +"Show in File Explorer", +"Show in File Manager", +"Settings", +"General", +"Default Prompts", +"These prompts shape how titles are generated, search queries are built, knowledge is retrieved, and context is summarized. Changes are saved to this device’s global settings (master database) and apply across all workspaces (not per workspace).", +"Available Prompts", +"Customized", +"{count} customized", +"Using Custom", +"Using Default", +"Click to edit prompt", +"Variables", +"Last modified", +"Select a prompt to customize", +"Clear Content", +"Reset to Default", +"Insert from Library", +"Save Changes", +"Discard Changes", +"Content Generation", +"Search & Synthesis", +"Analysis & Extraction", +"License and Access", +"Font @:size", +"Real-Time Data Search", +"Default RTD Provider", +"Choose the default Real-Time Data search provider that will be used when creating new conversations.", +"{provider} set as default RTD provider", +"Failed to save default RTD provider", +"No RTD providers available", +"Configure advanced options for", +"Configuration saved for {provider}", +"Default RTD Mode", +"Set the default RTD mode for new conversations.", +"New conversations will use push mode by default.", +"New conversations will use pull mode by default.", +"Pull mode requires an Aurum plan.", +"Failed to save default RTD mode", +"Teams", +"Appearance", +"Auto-archive inactive conversations", +"Automatically move inactive conversations to Archive after the selected number of days. Use Enable auto-archive to turn it on. Run archive now performs a one-time cleanup using the current day threshold.", +"Enable auto-archive", +"Disable auto-archive", +"Archived conversations stay accessible from the Archive section.", +"Archive after", +"day | days", +"Enable or disable from the menu", +"Run archive now", +"Enable auto-archive and set days > 0 to run", +"Auto-archive set to {days} day | Auto-archive set to {days} days", +"Auto-archive enabled", +"Auto-archive disabled", +"Setup {service}", +"Workspace Lock & Secrets Encryption", +"Lock your workspace with a passphrase so sensitive settings and API keys stay hidden until you unlock. Unlock once per session, rotate the passphrase anytime, or turn protection off if you change your mind.", +"Passphrase-based encryption is experimental. Please keep a backup of your secrets before enabling.", +"Status:", +"Locked", +"Unlocked", +"Lock", +"Unlock", +"Workspace is protected. Unlock with your passphrase.", +"Unprotected", +"Workspace lock is not configured. Set a passphrase first.", +"Enter Passphrase", +"Workspace unlocked for this session", +"Workspace locked", +"Disable Encryption", +"Enter passphrase to decrypt and disable encryption.", +"Disable Protection", +"Enter your passphrase to disable workspace protection. This will remove encryption from your stored secrets and API keys.", +"Are you sure you want to disable workspace protection? This will permanently decrypt all encrypted secrets and API keys in your database.", +"Enable Protection", +"Set Passphrase", +"Important: Save your passphrase safely and securely. You cannot recover a forgotten passphrase, and without it, you will lose access to your encrypted workspace data.", +"Change Passphrase", +"Important: Save your new passphrase safely and securely. You cannot recover a forgotten passphrase, and without it, you will lose access to your encrypted workspace data.", +"Update Passphrase", +"Passphrase", +"Current passphrase", +"New passphrase", +"Confirm passphrase", +"Passphrase must be at least 8 characters", +"Passphrases do not match", +"Invalid input", +"Passphrase configured", +"Failed to configure passphrase", +"Passphrase updated", +"Failed to update passphrase", +"Decrypt stored secrets and remove workspace protection?", +"Encryption disabled", +"Failed to disable encryption", +"Incorrect passphrase", +"{workspaceName} is locked", +"Can't unlock this workspace?", +"Switch back to {workspaceName} so you can keep working.", +"Switch back to {workspaceName}", +"Unable to switch workspaces. Please try again.", +"Select the button below to export a copy of your data for backup or transfer to another device. The exported data includes conversations, prompts, models, settings, and other application data across all Workspaces.", +"@:data Backup Reminder Interval", +"How often to remind you to backup your data.", +"Danger Zone", +"Actions in this section are irreversible and may result in data loss. We recommend exporting a copy of your data before performing any actions here.", +"Clear Data", +"Permanently delete all application data including conversations, prompts, models, settings, and other related information across all Workspaces.", +"Restore @:data from Backup", +"Import a previously exported data zip file to restore conversations, prompts, models, settings, and other application data across all Workspaces. This action will overwrite all existing data.", +"Migrate", +"Msty App 1.x to Studio Migration", +"Step 2: Select Items to Migrate", +"Select Items", +"You can import Prompt Library Prompts, Remote Model Providers, Conversations, and Attachments into the current workspace you are in. If you want to import into a different workspace, please switch to that workspace first.", +"Migrating remote model providers will NOT carry over API keys, they must be re-entered. Some legacy models may not be supported in Studio.", +"If migrating attachments, first zip the attachments folder. You can migrate attachments separately after migrating the database or together with the database.", +"Database Migration", +"Step 1: Select Msty App 1.x Database File", +"Drag and drop your Msty Database file", +"Msty App 1.x database files are typically named `msty.db`", +"Attachments Migration", +"Migrate Separately", +"Step 3: Add Zipped Attachments Folder", +"Successfully migrated the attachments", +"Failed to migrate the attachments", +"Drag and drop your zipped attachments folder", +"Zip the entire attachments folder from Msty App 1.x. After selecting, you can migrate separately if adding after database migration.", +"Please select a database file and at least one table to migrate", +"Missing Data", +"Migrate your data from Msty App 1.x into Studio. Imported data will not overwrite existing data.", +"Successfully migrated {item}", +"Failed to migrate {item}", +"Migration In Progress...", +"{item} Migration Completed", +"{item} Migration Failed", +"Migrating {item}...", +"Migration Error", +"View Details", +"Message", +"Cause", +"Color Preference", +"Accent Color", +"Dark", +"Light", +"Default | Defaults", +"Base Color", +"Emerald", +"Lime", +"Green", +"Red", +"Orange", +"Amber", +"Yellow", +"Teal", +"Cyan", +"Sky", +"Indigo", +"Violet", +"Purple", +"Fuchsia", +"Pink", +"Rose", +"Slate", +"Gray", +"Zinc", +"Stone", +"Sandy", +"Lighter", +"Code Theme", +"RTL Support", +"Enable right-to-left layouts for languages like Arabic, Hebrew, and Persian. The entire workspace updates instantly when toggled.", +"Enable RTL Layout", +"Right-to-left layout is active across the app.", +"The app is currently using a left-to-right layout.", +"Mini Map", +"Enable the inline mini map message navigator with branch previews. When disabled, a simpler Top/Bottom navigator is used.", +"Branch Breadcrumbs", +"Show a compact navigation bar at the top of conversations when branches exist.", +"Spellcheck", +"Enable or disable spellcheck for text input fields. Disabling can help when working with multiple languages or technical content. Your operating system's spell checker settings may override these preferences. Restart the application after changing this setting for the changes to take full effect.", +"Language & Localization", +"Switch between interface languages, preview developer mode, or import a temporary locale file. If you want to contribute a translation, please visit https://github.com/cloudstack-llc/msty-studio-i18n", +"Language", +"Download Template", +"Download this built-in locale JSON file.", +"Download the current custom locale you imported.", +"Download an empty template based on the base locale.", +"Import Locale", +"Imported locales last only until you restart or refresh the app.", +"Locale Imported", +"Now using {code}. Review the interface to confirm translations.", +"We couldn't import that locale file. Make sure it's valid JSON based on the template.", +"Developer Mode", +"Security", +"Configure security settings for the application", +"Disable Web Security", +"This may help you resolve some CORS related issue. However, this is not recommended and may expose your application to security risks. Disable it only if you know what you are doing. You must restart the app for this setting to take effect.", +"Apply & Restart", +"Font Style", +"Galaxy Far Away", +"Everything Everywhere", +"Home Alone", +"Lord of the Loops", +"Rendering Modules", +"@:select Rendering Modules", +"Allow Msty Studio web to connect to this device to run remote tools and access local models. This service must be actively running to allow remote connections.", +"Enable Service", +"Connection Token", +"Remember Token", +"Enter a strong connection token", +"This token is used to authenticate the connection between Msty Studio and this app when connecting remotely. You can regenerate it at any time to invalidate the previous token. Make sure to use a strong token and keep it secret.", +"Remote Service is now active", +"Error Enabling Connector", +"Failed to enable Remote Service. Please check the logs for more details", +"Copy Local URL", +"Copy Tunnel URL", +"Remote Service is now disabled", +"Enable Tunneling (Experimental)", +"Set up @:localAIService to run AI models locally on your device.", +"Models Location", +"Configure where your Local AI models are stored.", +"Use Existing Models", +"Use models you already have without downloading them again.", +"@:service Configurations", +"These configurations are applied to the @:localAIService when it starts. @:localAIService will automatically restart after you save any changes.", +"Configure Port Number", +"Port number for @:localAIService{'.'} Leave empty to use default.", +"Maximum Parallel Chats", +"Maximum number of concurrent chat sessions (when using split mode).", +"Maximum Loaded Models", +"Maximum number of LLMs loaded at the same time. Keeping more models in memory speeds up initial responses but uses more system resources.", +"Enable Network Access", +"Allow other devices on your network to access this @:localAIService through this device’s IP address.", +"Allowed Network Origins", +"List permitted network origins here (comma-separated). Each entry must begin with http:// or https://. Use * to permit all origins.", +"e.g. https://msty.studio, http://localhost:3000, *", +"Allow Access from Msty Studio", +"Allow connections from Msty Studio Web to this app so it can access @:localAIService{'.'}", +"Capture @:service Logs", +"Enable logging to capture service data for debugging. Use this option only when necessary.", +"Enter valid JSON to set environment variables for the @:localAIService{'.'}", +"You have unsaved changes in the @:localAIService Configurations. Once you save, @:localAIService will be restarted with the new configurations.", +"Save Changes and Restart Service", +"@:localAIService Configurations saved and service restarted", +"Failed to save @:localAIService Configurations. Please check the logs for more details.", +"@:model Configurations", +"These configurations get applied to all models during chat sessions.", +"Model Keep-Alive Timeout", +"Time (in minutes) after which the model will be unloaded from memory if not used.", +"Enter valid JSON to pass extra parameters to models during chat sessions.", +"You have unsaved changes in the @:settings.localAI.modelConfigurations.title{'.'} Make sure to save them before starting a new chat session.", +"@:settings.localAI.modelConfigurations.title saved", +"Failed to save @:settings.localAI.modelConfigurations.title. Please check the logs for more details.", +"Open Local AI Settings", +"Manage Local AI Models", +"Browse, install, and manage AI models for local inference.", +"Open Local AI Models Hub", +"Vibe CLI Proxy", +"Unified proxy for AI coding assistants. Connect to Claude Code, ChatGPT, Gemini, Qwen Code through a single local endpoint.", +"Installs CLIProxyAPI binary to connect AI coding assistants (Claude Code, ChatGPT, Gemini, Qwen) via local proxy with OAuth authentication.", +"Install Vibe CLI Proxy", +"Start or stop the Vibe CLI Proxy service.", +"Service Endpoint", +"Use this endpoint for OpenAI-compatible requests routed through Vibe CLI Proxy.", +"Network host: {host}", +"Endpoint copied", +"Version", +"Installed CLIProxyAPI version.", +"Current version", +"Reinstall", +"Not installed", +"Service Configurations", +"Configure port, authentication directory, and network access for the proxy.", +"Port", +"Retries", +"Auth directory", +"Enable network access", +"Allow other devices on the network to reach the proxy.", +"Capture service logs", +"Persist proxy logs for troubleshooting (may increase disk usage).", +"Enable remote management", +"Expose management endpoints; requires a secret key.", +"Management secret key", +"Vibe CLI Proxy configurations updated", +"Failed to update Vibe CLI Proxy configurations", +"The local port where the proxy service listens for requests.", +"Number of retry attempts for failed upstream requests.", +"Directory where authentication tokens are stored.", +"Secret key required for remote management operations.", +"Auth Folder", +"Path where Vibe CLI Proxy stores OAuth tokens for connected providers. Managed automatically; not editable.", +"Authentication", +"Securely link your AI accounts so Vibe CLI Proxy can call their APIs on your behalf. When you connect, a browser window opens for that provider where you complete sign-in.", +"Opening browser for OAuth…", +"Complete authentication in your browser, then return here.", +"Failed to start OAuth flow", +"Device Authorization", +"Enter the code below at the authorization page to complete authentication.", +"Copy Code", +"Code copied to clipboard", +"Open GitHub", +"Important: Vibe CLI Proxy is a local proxy to third-party CLI coding agents. By proceeding, you accept full responsibility for compliance with each AI provider's terms of service. Use at your own risk. Msty is not liable for any account issues or service violations that may arise.", +"Set @:mlxService to run optimized AI models on your Apple Silicon Mac.", +"Configure where your MLX models are stored.", +"Open MLX Settings", +"Manage MLX Models", +"Browse, install, and manage MLX models optimized for Apple Silicon.", +"Open MLX Models Hub", +"System Compatibility", +"Check if your system is compatible with MLX.", +"Check Again", +"Not checked", +"Compatible", +"Not compatible", +"MLX Requirements:", +"Apple Silicon Mac (M1, M2, M3, M4)", +"macOS 13.0 or later", +"Unified memory architecture", +"Set @:llamacppService to run efficient AI models on Windows, macOS, and Linux.", +"Configure where your LLaMA.cpp models are stored.", +"Open LLaMA.cpp Settings", +"Manage LLaMA.cpp Models", +"Browse, install, and manage LLaMA.cpp models for cross-platform inference.", +"Open LLaMA.cpp Models Hub", +"Check if your system is compatible with LLaMA.cpp.", +"LLaMA.cpp requires the desktop application", +"System Information", +"Platform", +"Architecture", +"Available Memory", +"GPU", +"LLaMA.cpp Requirements:", +"Desktop application (Windows, macOS, or Linux)", +"At least 4GB RAM (8GB+ recommended)", +"Sufficient storage for models (varies by model size)", +"Optional: GPU for acceleration (CUDA, Metal, OpenCL)", +"CPU Threads", +"Number of CPU threads to use during inference. Set to -1 to auto-detect based on your system (maps to the --threads flag).", +"Concurrent Requests", +"Number of chats that can run at the same time per model (maps to --parallel flag). With parallel=2, each chat gets half the context size.", +"Concurrent requests", +"Enter valid JSON to set environment variables for llama-server process. These variables have less priority than CLI args set in the Service and Model Configurations.", +"You have unsaved changes in the @:settings.llamacpp.modelConfigurations.title{'.'} Make sure to save them before starting a new chat session.", +"@:settings.llamacpp.modelConfigurations.title saved", +"Failed to save @:settings.llamacpp.modelConfigurations.title. Please check the logs for more details.", +"MLX", +"@:mlx Service", +"LLaMA.cpp", +"@:llamacpp Service", +"Settings and Configs", +"Prompts", +"API Keys", +"Create New Workspace", +"Switch Workspace", +"Switch to {workspaceName} Workspace", +"Hide Workspace Tray", +"Show Workspace Tray", +"Workspace switched!", +"{workspaceName} is now the active workspace", +"Delete Workspace", +"Workspace {workspaceName} is active", +"Your current active Workspace is: {workspaceName}", +"New Workspace", +"Edit Workspace", +"Workspace Name", +"What to copy from {activeWorkspace} workspace?", +"Copying items is disabled because the active workspace has a passphrase set.", +"Create and Switch", +"Create and Stay", +"Workspace name already exists", +"Invalid or duplicate workspace name", +"Workspace updated", +"Failed to update Workspace", +"Workspace created and switched", +"Workspace created", +"Failed to create Workspace", +"Are you sure you want to delete {workspaceName}? All data associated with this workspace will be deleted. This action cannot be undone.", +"@:download Workspace @:data", +"Workspace {workspaceName} deleted", +"Failed to delete Workspace", +"Export Workspace", +"Workspace {workspaceName} data exported as {fileName}", +"Failed to export Workspace {workspaceName}", +"@:import Workspace", +"Drag and drop a zipped Msty Workspace file to import and create a new Workspace. In case of duplicate names, the imported workspace will be renamed. You can change it later.", +"Workspace {workspaceName} has been imported", +"Failed to import Workspace", +"Attachments", +"Documents", +"Images", +"Webpages", +"YouTube Links", +"Drop Them!", +"@:select all", +"Deselect all", +"Drag-and-drop {attachmentType} here", +"Add New Attachments", +"Add {documentTypes} as well as some other code files", +"Add .png, .jpg, or jpeg images", +"Drag-and-drop or browse more", +"or paste comma-separated URLs", +"Click to manage attached {attachmentType}", +"Selected model may not support image attachments.", +"Click to install vision capabilities.", +"Checking vision capabilities...", +"Installing vision capabilities...", +"{count} document attached | {count} documents attached", +"{count} image attached | {count} images attached", +"{count} webpage attached | {count} webpages attached", +"a webpage link | webpage links", +"Hold {key} to share with Synced Splits", +"{count} YouTube link attached | {count} YouTube links attached", +"Failed to attach files", +"Failed to attach webpages", +"Failed to import YouTube links info. {errorMessage}", +"Detach all", +"Detach All", +"Are you sure you want to detach all {attachmentType}? These {attachmentType} will not be available in the conversation anymore across all splits.", +"Maximum Result", +"Attachments detached", +"Manage keys", +"A valid Jina API Key is required to use this feature. You can visit the following link to get one for free:", +"You currently have {count} Jina API key(s) added. You can add add more keys and Msty will pick a random valid key to use for the request.", +"New Jina API Key", +"Edit Jina API Key", +"Available Keys", +"Key is {status}. Click to re-verify", +"Verify Key and Add", +"Add a new Jina API key to use with the Jina Reader and Search endpoints. You can add multiple keys and verify them to ensure they are valid. When using the keys, Msty will pick a random valid key to use for the request.", +"All Good!", +"Key seems to be valid and ready to use", +"Jina API Key added", +"Error{status}!", +"Failed to add Jina API Key. Please check the API key and make sure it is valid.", +"Token Budget", +"Maximum number of tokens to use for Jina API requests. This helps control costs and response length.", +"Real Time @:data", +"Click to toggle RTD; double-click to configure", +"@:rtd.title Contexts", +"Source removed", +"Failed to remove source", +"Failed to update source", +"Search Provider", +"Jina", +"Use @:remoteToolsConnector.title", +"No sources available", +"Save {providerName} as default search provider", +"{providerName} it is!", +"{providerName} is now the default search provider", +"Auto with Fallback", +"Google", +"Brave", +"Ecosia", +"Custom Search Query", +"This query will be used for searching. Leave it empty to use the prompt as a query", +"Limit by Domain", +"e.g. reddit.com or gov or (site:reddit.com OR site:gov)", +"Enter comma separated domains e.g. reddit.com,wikipedia.com", +"Extra Operators", +"Search Date Range", +"After date - Before date", +"@:rtd.title Enabled", +"API", +"@:remoteToolsConnector.title", +"Use @:rtd.jina", +"Use @:rtd.settings.google", +"@:rtd.settings.google @:apiKey", +"Custom Search Engine ID", +"@:rtd.settings.google @:rtd.google.cseIdLabel", +"Use @:rtd.settings.brave", +"Filter Results", +"@:rtd.settings.brave @:apiKey", +"SearXNG", +"Engines", +"Comma-separated list of engines to use e.g. google, brave etc.", +"Extra Params", +"Add extra params. This should be a valid JSON object.", +"Your SearXNG server must have JSON enabled as well as be served over HTTPS. For a workaround over HTTP on some browsers, check out our docs at https://docs.msty.studio", +"Use @:rtd.searXng.title", +"Tavily", +"Use @:rtd.tavily.title", +"Search Topic", +"Category of search", +"News", +"Finance", +"Enter @:rtd.tavily.title @:apiKey", +"Search Depth", +"Depth of the search", +"Advance", +"Basic", +"Time Range", +"Time range back from the current date", +"Exa", +"Use @:rtd.exa.title", +"Enter @:rtd.exa.title @:apiKey", +"Ollama", +"Use @:rtd.ollama.title", +"Enter @:rtd.ollama.title @:apiKey", +"Disable @:rtd.title", +"@:rtd.title disabled", +"Failed to disable @:rtd.title", +"Remote Service", +"To use this feature, you need to connect with @:remoteToolsConnector.title{'.'}", +"RTD is experimental and may not work as expected.", +"@:remoteToolsConnector.title - Connected", +"@:remoteToolsConnector.title - Disconnected", +"@:connect with @:remoteToolsConnector.title", +"@:connect @:remoteToolsConnector.title first", +"@:reconnect with @:remoteToolsConnector.title", +"@:disconnect Now", +"Check Connection Health", +"Edit Connection Details", +"You do not have permission to access this feature", +"Connect to @:remoteToolsConnector.title", +"Save and Connect", +"Remember @:connectionInfo", +"@:import @:connectionInfo", +"Drag and drop Msty Remote Connection Config file to import and connect to @:remoteToolsConnector.title{'.'}", +"@:connectionInfo imported", +"Failed to import @:connectionInfo", +"Export Saved @:connectionInfo", +"@:connectionInfo exported", +"Failed to export @:connectionInfo", +"Connected!", +"@:remoteToolsConnector.title connected at {url}", +"Failed to connect with @:remoteToolsConnector.title{'.'} Make sure the @:remoteToolsConnector.title is running and accessible at the provided URL.", +"Token is missing. Please check the token and try again.", +"Forget Previous @:connectionInfo", +"@:connectionInfo forgotten", +"Tool Command Paths", +"If you are using Toolsets, set the paths to the commands you are using.", +"@:select or enter a command", +"Enter full path to the command", +"Assign @:path", +"Disconnected!", +"Disconnected from @:remoteToolsConnector.title", +"Forge Mode", +"Forge mode gives you a blank canvas and a powerful writer to create, edit, style and refine content freely.", +"Forge", +"@:forge.title Content", +"Forging Content", +"Edit Raw Markdown", +"Edit as Branch", +"This content has been forged. Raw markdown editing is not allowed.", +"Changes saved", +"Failed to save changes", +"Write something or type / for options...", +"Enter details summary", +"Simplify", +"Fix Spelling & Grammar", +"Make Shorter", +"Make Longer", +"TL;DR;", +"Emojify", +"@:change Tone", +"Academic", +"Business", +"Casual", +"Child Friendly", +"Conversational", +"Emotional", +"Humorous", +"Informative", +"Inspirational", +"Professional", +"Narrative", +"Objective", +"Persuasive", +"Poetic", +"Clear Formatting", +"Bold", +"Italic", +"Underline", +"Strikethrough", +"Code", +"Code Block", +"Blockquote", +"Undo", +"Redo", +"Texts", +"Paragraph", +"Heading 1", +"Heading 2", +"Heading 3", +"Lists", +"Bullet List", +"Numbered List", +"Task List", +"What do you want to forge today?", +"Forge Writer", +"Type your custom prompt...", +"Ask", +"Ask the model to generate a response based on a custom prompt", +"@:forge.title Canvas", +"New @:forge.forgeCanvas", +"Add New @:forge.forgeCanvas", +"Preview", +"Prompt | Prompts", +"Discard", +"Insert", +"Regenerate", +"Rewrite", +"Exit", +"Custom Prompt", +"Markdown", +"JSON", +"HTML", +"Formatted", +"Invalid @:json", +"@:download as @:markdown file", +"@:download as @:json file", +"@:download as HTML file", +"Copy @:markdown to Clipboard", +"Copy HTML to Clipboard", +"Copy Text to Clipboard", +"Copied!", +"Content copied to clipboard as @:markdown", +"Content copied to clipboard as HTML", +"Content copied to clipboard as formatted text", +"Content copied to clipboard as @:json", +"{item} copied to clipboard", +"Content exported to clipboard as @:json", +"Variable | Variables", +"@:pinned {item}", +"Pin {item}", +"{item} pinned", +"Unable to pin {item}", +"Unpin {item}", +"{item} unpinned", +"Unable to unpin {item}", +"Default {item}", +"Set {item} as default", +"{item} set as default", +"Unable to set {item} as default", +"Default {item}. Click to unset.", +"{item} removed as default", +"Model", +"Provider sorting", +"Created At", +"Group by provider", +"Model sorting", +"Recent", +"Filter by purpose", +"All purposes", +"@:model Settings", +"Sync @:split", +"Split | Splits", +"Template | Templates", +"Apply Changes", +"Split @:preset | Split @:preset", +"New @:preset", +"Split {index}", +"@:delete @:preset", +"Import @:preset | Import @:preset", +"Drag and drop a zipped Msty presets file to import and create new presets. In case of duplicate names, the imported presets will be renamed. You can change it later.", +"@:preset imported", +"Failed to import presets", +"Export @:preset | Export @:preset", +"Export Selected @:preset | Export Selected @:preset", +"Split preset exported as {fileName} | Split presets exported as {fileName}", +"Failed to export preset | Failed to export presets", +"@:delete @:preset | Delete @:preset", +"@:delete Selected @:preset | Delete Selected @:preset", +"Are you sure you want to delete {presetName}? | Are you sure you want to delete {count} presets?", +"Split preset deleted | Split presets deleted", +"Could not delete split preset | Could not delete split presets", +"Split preset updated", +"Could not update split preset", +"Split preset saved", +"Could not save split preset", +"No @:splitPreset.title available.", +"Get started by adding or importing a new @:splitPreset.title", +"Invalid Templates", +"Some templates are invalid or missing required fields. Please correct them before continuing.", +"Shadow Personas", +"Create Shadow Persona", +"Edit Shadow Persona", +"Assigned Persona", +"Change Persona", +"Change Shadow Persona", +"Current Persona", +"Select New Persona", +"Waiting for completion", +"Changing the persona will reset the analysis context and may affect continuity.", +"No Persona Assigned", +"Hide Shadow Personas", +"Show Shadow Personas", +"No splits being monitored", +"Monitoring {count} split (click to show) | Monitoring {count} splits (click to show)", +"Monitoring {count} split | Monitoring {count} splits", +"Activate", +"Deactivate", +"Process Now", +"Processing...", +"Create and Assign", +"Latest Insight", +"No output yet", +"Outputs", +"View Latest", +"View History", +"No history available", +"Select version", +"Shadow Persona Name", +"e.g., Technical Analyst, Performance Monitor", +"Switch Shadow Persona", +"Select a shadow persona to switch to", +"Select Shadow Persona", +"Search shadow personas...", +"Description (Optional)", +"Describe what this shadow persona observes or analyzes", +"Select Persona", +"Choose a persona to use", +"Select Splits to Monitor", +"Choose splits to monitor", +"Choose splits to monitor (can be set later)", +"Splits can be dynamically assigned and managed after creation", +"Update Trigger", +"Message Interval", +"Time Interval", +"Messages Per Split", +"Max Context", +"Synthesis Mode", +"Output Format", +"Max Processing Time", +"Version Management", +"Max Versions", +"Advanced Settings", +"Include System Messages", +"Auto Delete Old Versions", +"Waiting for splits", +"Processing now", +"No Shadow Personas", +"Create a Shadow Persona to monitor and analyze your conversation splits", +"Unlock Shadow Personas", +"Experimental", +"Shadow Personas is an experimental feature that analyzes conversations and generates alternative perspectives and insights in parallel.", +"No Output Yet", +"This Shadow Persona hasn't generated any output yet", +"Save this conversation to enable Shadow Persona processing", +"Delete Shadow Persona", +"Are you sure you want to delete \"{name}\"? \"{name}\" will be deleted from all the conversations it is attached to. This action cannot be undone.", +"Successfully deleted the shadow persona", +"Failed to delete the shadow persona", +"Detach Shadow Persona", +"Detach", +"Detach \"{name}\" from this conversation? The shadow persona will remain available for other conversations.", +"Successfully detached the shadow persona", +"Failed to detach the shadow persona", +"Successfully switched the shadow persona", +"Failed to switch the shadow persona", +"Successfully updated the shadow persona", +"Failed to update the shadow persona", +"Successfully created the shadow persona", +"Failed to create the shadow persona", +"Queue Cleared", +"Cancelled {cancelledCount} queued item | Cancelled {cancelledCount} queued items", +"Queue Updated", +"Cancelled {cancelledCount} auto-triggered item | Cancelled {cancelledCount} auto-triggered items", +"Queue Full", +"Processing queue is full. Please wait for current items to complete", +"Already Processing", +"This conversation is already being processed", +"Every Message", +"Every {n} Messages", +"Manual Only", +"Automatic", +"Runs after each message (fastest, more frequent)", +"Runs after {n} messages (batched)", +"Only when you click Process Now", +"Auto", +"Combined Analysis", +"Per Split", +"Comparative", +"Picks the best mode based on splits and intent", +"One summary across all splits", +"Keep each split separate and labeled", +"Side-by-side differences and agreements", +"Auto will use Combined because only one split is present.", +"Auto will use Comparative because multiple models are in use.", +"Auto will use Per Split because splits use the same model.", +"Insights", +"Summary", +"Recommendations", +"Analysis", +"Locate splits", +"Manage Splits", +"Add all splits", +"Select all", +"{count} of {total} selected", +"Streaming", +"Starting", +"Collecting context from splits...", +"Waiting for conversation to complete", +"Analyzing conversation splits...", +"Shadow Persona will analyze once all responses are received", +"Tool Calls", +"Reasoning", +"Attach Existing", +"Attach Shadow Persona", +"Previous Version", +"Next Version", +"Attach", +"Select a shadow persona to attach to this conversation", +"Choose a shadow persona to attach", +"Queued #{position}", +"Add to Queue", +"Processing Queue", +"Remove from Queue", +"Removed from queue", +"in queue", +"Clear All", +"No items in queue", +"Est. wait: {time}", +"{count} item in queue | {count} items in queue", +"Monitoring & Queue", +"Monitored Splits", +"Toolbox", +"Msty @:remoteToolsConnector.title is not running; tools usage will be skipped.", +"Tool | Tools", +"A collection of tools to help you with your LLM work.", +"Available Tools", +"Available Toolsets", +"Set Default Parameters", +"Set Parameters", +"This dependency seems to be missing from your environment. Without this, the tool may not work as expected.", +"Default Parameters for {toolName}", +"These parameters will be used globally for all instances of {toolName} tool. You can override these when creating a toolset.", +"Arguments", +"@:select an @:argument and set its value. Leave it blank to skip setting a value.", +"Custom @:argument", +"Enter the name of the new @:argument{'.'} Separate multiple arguments with a comma.", +"eg. --arg1, someArg, -verbose", +"Environment Variables", +"@:select or enter a new Environment @:variable and set its value.", +"Add Environment @:variable", +"@:select an Environment @:variable", +"Add a new Environment @:variable", +"Default parameters saved for {toolName}.", +"Failed to save default parameters.", +"Add New Tool", +"Add your own MCP compatible tool to the toolbox. Once added, you can add it to a toolset, set parameters, and use it with a model.", +"Give it a name (uses the tool ID by default)", +"Tool ID", +"Unique tool identifier (auto-filled if detected from config)", +"Tool with this ID already exists. Please enter a unique ID.", +"Tool Added", +"Tool added to the toolbox. You can now add it to a toolset and use it with a model.", +"Tool added to the toolbox and a matching toolset was created. It's ready to use with a model.", +"Failed to add tool to the toolbox. {error}", +"Tool Configuration", +"Enter or paste tool configuration JSON. Accepts direct config or wrapped formats (will auto-extract toolId)", +"Show me an example of a tool configuration", +"The tool configuration accepts multiple formats including wrapped configs with mcpServers. It will auto-extract the toolId and name when possible. Must contain at minimum {command}. Dynamic arguments need to be wrapped in curly braces {curly} like so: {argExample}. Similarly, dynamic environment variables can be set using {envVarLabel}.", +"Auto-create toolset with same name", +"Edit Tool", +"Update the name, notes, and configuration of the tool.", +"Tool @:updatedSuccess", +"@:failedToUpdate tool.", +"Use external MCP tools powered by Msty @:remoteToolsConnector.title to extend your models' capabilities and enhance your LLM experience.", +"You can get started by importing many of the tools that Msty ships with or adding your own tools.", +"Note: These tools are not provided, tested, or maintained by Msty. We are merely providing a platform to use these and allowing to import them as a convenience. PLEASE USE THEM AT YOUR OWN RISK. Msty is not responsible for any issues that may arise from using these tools. Also, for support, please reach out to the tool's author.", +"Import Default @:toolbox.tools.title", +"{count} default tools imported successfully. You can create toolsets and use them with a model.", +"{count} default tools imported successfully and {toolsetCount} corresponding toolsets auto-created.", +"Failed to import default @:toolbox.tools.title", +"Delete Tool", +"Are you sure you want to delete {toolName}?", +"Tool deleted", +"@:failedToDelete tool", +"Delete All Tools", +"Are you sure you want to delete all tools? This action cannot be undone.", +"All tools have been deleted successfully", +"Failed to delete all tools", +"Tool configuration copied to clipboard", +"View Tools Usage", +"No Tool Calls Found", +"It seems there were some tools being able to the model but it did not make any tool calls. This could be because the model did not need to use any tools.", +"Toolset | Toolsets", +"No Toolsets found", +"Toolsets are a collection of tools with parameters. You can create a toolset and add tools to it. When chatting with a model, you can select one or multiple toolsets to use with the model.", +"Please add some tools to get started.", +"No tools in this toolset", +"Enabled features", +"Loading feature details…", +"All features", +"Unable to load feature details", +"Add New @:toolbox.toolsets.title", +"Create a new toolset to group tools together. You can add tools to the toolset and use it with a model. Make sure to set/overwrite the parameters for each tool in the toolset by clicking {icon} button.", +"Set Parameters for {toolName}", +"Set parameters for the {toolName} tool. You can override the default parameters set for the tool. Use the Tool Console to test the tool, view available features, and limit features if needed.", +"Toolset saved and added to the toolbox. You can now use it with a model.", +"@:failedToSave toolset.", +"Edit Toolset", +"Edit the name and notes of the toolset. You can also add or remove tools from the toolset and tweak the parameters or limit features for each tool by clicking {icon} button.", +"Toolset @:updatedSuccess", +"@:failedToUpdate toolset.", +"Delete Toolset", +"Are you sure you want to delete {toolsetName}?", +"Toolset deleted", +"@:failedToDelete toolset", +"Delete All Toolsets", +"Are you sure you want to delete all toolsets? This action cannot be undone.", +"All toolsets have been deleted successfully", +"Failed to delete all toolsets", +"Export @:toolbox.toolsets.title", +"For security, sensitive configuration values can be removed before exporting. Select which environment variables and arguments to scrub for each tool.", +"Environment variables to scrub", +"Arguments to scrub", +"Scrub custom arguments string", +"Select environment variables to remove values", +"Select arguments to remove values", +"No configuration data to scrub", +"Common sensitive values are pre-selected for your security.", +"Toolset configuration copied to clipboard", +"Toolset configuration downloaded", +"Failed to fetch toolset data for export", +"Some tools were not found and skipped: {tools}", +"{count} tool | {count} tools", +"View Tools & Notes", +"Tool Console", +"You can use this console to test {toolName} and see the output. You can also use it to test the tool with different parameters or limit the available features. All features are enabled by default, select the checkboxes to limit the features to only those selected.", +"List {toolName}'s Features", +"Missing {count} Required @:argument", +"@:continue with Missing @:argument", +"View Source on GitHub", +"Enable specific features for this tool", +"Search or pick features to allow", +"Currently enabled features", +"Tool Call", +"Add the required properties to call {featureName}. You can add extra properties if you want. Be careful with calling the tool just like that esp. without the right values.", +"@:select a property", +"Add a new property", +"Execute @:toolbox.toolsets.console.toolCall", +"Click to manage used toolsets", +"@:select model may not support tools.", +"{count} Active Toolset | {count} Active Toolsets", +"{count} Active Live Context | {count} Active Live Contexts", +"Live @:context", +"Live Contexts", +"Untitled Live Context", +"Select Source", +"Toggle to include or exclude this source from the context", +"Add New @:liveContexts.title", +"Create a new @:liveContexts.title source to add external data context to your conversation.", +"Failed to add @:liveContexts.title", +"@:liveContexts.title added", +"Edit @:liveContexts.title", +"Provide a prompt for Push-mode here; include any Pull-mode details in the Notes section.", +"Endpoint Details", +"URL", +"Custom Headers", +"Has Body", +"Custom Processing", +"Prompt Template", +"Request Headers", +"Add request headers as a JSON object. This will be sent with the request to the API endpoint.", +"{'{'}\n \"Authorization\": \"Bearer {'{'}apiKey:'key'{'}'}\",\n \"X-From\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}", +"Request Body", +"Add request body as a JSON object. This will be sent with the request to the API endpoint.", +"{'{'}\n \"q\": \"{'{'}query:'term'{'}'}\",\n \"from\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}", +"Dynamic Placeholders", +"Placeholder syntax", +"Placeholders:", +"Processing Function", +"Add a processing function to transform the response data before using it in the conversation. The function should return a string.", +"function process({'{'}data, placeholders{'}'}) {'{'}", +" // access data and optional placeholders\n return JSON.stringify(data)", +"{'}'}", +"Access via placeholders param", +"Use placeholders in code:", +"Enter test values for detected placeholders to test the endpoint.", +"@:liveContexts.title updated", +"Failed to update @:liveContexts.title", +"Delete @:liveContexts.title", +"Are you sure you want to delete {liveContextName}?", +"@:liveContexts.title deleted", +"Failed to delete @:liveContexts.title", +"No @:liveContexts.title found", +"@:liveContexts.title are external data contexts that you can add to your conversation. You can create a new @:liveContexts.title source and use it with a model.", +"Delete All @:liveContexts.contexts", +"Are you sure you want to delete all live contexts? This action cannot be undone.", +"All live contexts have been deleted successfully", +"Failed to delete all live contexts", +"Export @:liveContexts.title", +"For security, sensitive header values can be removed before exporting. Select which headers to scrub.", +"Headers to scrub", +"Select headers to remove values", +"Common sensitive headers are pre-selected for your security.", +"Live context configuration copied to clipboard", +"Live context configuration downloaded", +"Push", +"Pull", +"Push mode: runs automatically before the model replies", +"Pull mode: called on-demand by model", +"Mode | Modes", +"@:modes.mode", +"Exit {mode} @:modes.mode", +"Zen", +"a state of calm attentiveness", +"New @:modes.zenMode.title @:conversation.title", +"@:modes.vaporMode.vapor @:modes.mode", +"Vapor", +"Conversations will not be saved in your history and will disappear when you turn it off or navigate away", +"This will disappear when you turn off @:modes.vaporMode.vapor @:modes.mode or navigate away", +"Exit @:modes.vaporMode.vapor @:modes.mode", +"Enter @:modes.vaporMode.vapor @:modes.mode", +"@:save @:conversation.title", +"@:modes.vaporMode.vapor chat has been preserved", +"Failed to preserve @:modes.vaporMode.vapor chat", +"Focus @:modes.mode", +"Normal @:modes.mode", +"Query", +"Search Items", +"No results found", +"Try searching for a different term", +"@:conversation.title", +"Found {count} result | Found {count} results", +"Search {entity}", +"Look up {entity} quickly using keywords", +"Search matches all words by default (e.g., {example} → matches text containing both words in any order)", +"blue car", +"Use {operator} for partial matches (e.g., {example})", +"*", +"run* → runs, running", +"@:user {operator} to match any term (e.g., {example})", +"OR", +"apple OR orange", +"Use double quotes {operator} for exact matches (e.g., {example})", +"\"\"", +"\"blue car\"", +"Use {operator} to escape special characters (e.g., {example})", +"\"C++\", \"node.js\"", +"Clear Search", +"Helpful Tips", +"Hide Search", +"@:bookmark {item}", +"Jump to @:bookmarked {item}", +"@:bookmarked {item}", +"{item} @:bookmarked", +"Unable to bookmark {item}", +"@:bookmarked {item} has been deleted", +"No bookmarks available.", +"Get started by bookmarking {item}", +"Remove @:bookmarked {item}", +"{item} removed from bookmarks", +"Unable to remove {item} from bookmarks", +"Turnstile | Turnstiles", +"New @:turnstile.title", +"@:select a @:turnstile.title", +"Click to open or Alt+Click to add to queue", +"No Queued @:entry | {count}/{total} @:entry Queued | {count}/{total} @:entry Queued", +"Once your prompt is ready, click @:turnstile.queueEntry to add an entry to the queue.", +"Manage Saved Turnstiles", +"Save @:turnstile.title As", +"@:turnstile.title has been saved.", +"Failed to save turnstile.", +"Load @:turnstile.title", +"@:turnstile.title Loaded!", +"{count} entry loaded and enqueued. | {count} entries are loaded and enqueued.", +"Failed to load turnstile.", +"Clear Queue", +"Are you sure you want to clear the queue? This will remove all the messages you have added.", +"New Entry", +"Invalid Entries", +"Some entries are invalid or missing required fields. Please correct them before continuing.", +"Couldn't run {metaType}. Please make sure that it is not the first entry in the queue.", +"@:turnstile.title has been updated.", +"Failed to update turnstile. Have you set prompt and model?", +"Failed to save turnstile. Have you set prompt and model?", +"Delete Selected @:turnstile.title | Delete Selected @:turnstile.title", +"Delete @:turnstile.title", +"Are you sure you want to delete {turnstileName}? | Are you sure you want to delete {count} turnstiles?", +"No @:turnstile.title Available.", +"Get started by adding or importing a new @:turnstile.title{'.'}", +"@:new @:turnstile.title", +"@:entry {index}", +"Add @:message.renderingActions.continueGeneration", +"Add @:regenerate", +"Add @:persona.title", +"Add @:contextShield.title", +"Add @:contextShield.contextShieldWithSummary", +"Import @:turnstile.title", +"Drag and drop a zipped Msty @:turnstile.title to import and create new turnstiles. In case of duplicate names, the imported turnstiles will be renamed. You can change it later.", +"Turnstiles imported", +"Failed to import turnstiles", +"Export @:turnstile.title", +"Export Selected @:turnstile.title | Export Selected @:turnstile.title", +"@:turnstile.title exported as {fileName} | @:turnstile.title exported as {fileName}", +"Failed to export @:turnstile.title | Failed to export @:turnstile.title", +"Model Matchmaker", +"Adjust the gravity sliders for strengths like coding, reasoning, or math, and Matchmaker will rank and recommend the best models for your needs. Results may vary by data quality, model size, and task complexity.", +"Found your model?", +"Test and compare in Msty Studio.", +"Gravity", +"Remote Only", +"Ranked Models", +"No models found. Try adjusting your requirements.", +"Coding", +"The ability to write code in a programming language.", +"Agentic Coding", +"The agentic ability to write code in a programming language.", +"@:data Analysis", +"The ability to analyze data and generate insights.", +"Instructions Following", +"The ability to follow instructions and perform tasks.", +"GOAT: Generalist of All Trades", +"The ability to perform a wide range of tasks.", +"The ability to understand and generate human language.", +"Mathematics", +"The ability to perform mathematical calculations.", +"Paraphrasing", +"Demonstrated rewriting ability to rephrase any given text.", +"Critical Thinking - the ability to reason and make decisions.", +"Simplification", +"The ability to simplify any given complex text.", +"Story Generation", +"The ability to generate stories or narratives.", +"Summarization", +"The ability of summarizing textual and numerical information.", +"Tools Usage", +"The ability to call and use external tools.", +"Max Input Tokens", +"The max no. of tokens accepted in one call.", +"The max no. of tokens generated in one call.", +"Input Tokens Savings", +"Input Cost/Million Tokens", +"The cost savings of generating input tokens.", +"Output Tokens Savings", +"Output Cost/Million Tokens", +"The cost savings of generating output tokens.", +"Normalized Score", +"Reset Strengths", +"@:save Strengths As @:preset", +"Failed to save strengths preset.", +"Strengths preset saved.", +"Strengths preset loaded.", +"Failed to delete strengths preset.", +"Strengths preset deleted.", +"Model Cost Calculator", +"Calculate and compare costs for AI models from OpenAI, Anthropic, Google, and more. Estimate your expenses based on input/output token usage and model pricing. These are estimates only and actual costs may vary.", +"Token Inputs", +"Filters", +"VRAM Calculator", +"Check to see if a model fits your device's VRAM before downloading or running it. This calculator provides estimated VRAM requirements based on model architecture and size. Select one of the options below to get started.", +"Copy {item} to Workspaces", +"Copy/Move {item} to Workspaces", +"Action", +"Copy {item} to one or more workspaces.", +"Copy/Move {item} to one or more workspaces.", +"{item} copied to {count} workspace | {item} copied to {count} workspaces", +"{item} moved to {count} workspace | {item} moved to {count} workspaces", +"Failed to copy {item} to {count} workspace | Failed to copy {item} to {count} workspaces", +"Failed to move {item} to {count} workspace | Failed to move {item} to {count} workspaces", +"Partially Copied", +"Could not copy {item} to {count} workspace | Could not copy {item} to {count} workspaces", +"Partially Moved", +"Could not move {item} to {count} workspace | Could not move {item} to {count} workspaces", +"Some workspaces({workspaces}) were skipped because {item} already exists in them", +"Already existing copies of {item} will be skipped.", +"Assignment | Assignments", +"Model Squad", +"@:modelSquad.title is a collection of specialized AI models, where each models is assigned to perform a specific task, such as Auto Title Generation, @:context Summary Generation, etc. When it's time to perform that specific task, the assigned model is selected automatically.", +"Add New @:assignment", +"No more tasks available", +"Auto Title Generation", +"@:contextShield.title Summary Generation", +"@:rtd.title Prompt Synthesis", +"Forge Content Generation", +"@:pii.scrubbing.title", +"Icon Finder", +"@:assignment saved", +"@:assignment failed to save", +"Assign Model for {task}", +"Select a model to assign to the {task} task in ModelSquad.", +"Select Model", +"Choose a model...", +"Currently assigned: {model}", +"Unknown model", +"Assign Model", +"Change Model", +"This model will be used automatically when the {task} task is performed.", +"Model assigned to {task} successfully!", +"Please select a model to assign.", +"Failed to save model assignment. Please try again.", +"PII (Personally Identifiable Information)", +"PII Scrubbing", +"Automatically detect and remove personally identifiable information from Knowledge Stack content before displaying it in conversations.", +"Using {model} for PII detection and removal.", +"No model assigned for @:pii.scrubbing.title in ModelSquad. Knowledge Stack retrieval will fail until a model is assigned.", +"@:pii.scrubbing.title configuration error - aborting Knowledge Stack retrieval for security", +"Error setting up @:pii.scrubbing.title - aborting Knowledge Stack retrieval", +"[PERSON_NAME]", +"[EMAIL_ADDRESS]", +"[PHONE_NUMBER]", +"[ADDRESS]", +"[ID_NUMBER]", +"[CREDIT_CARD]", +"[BANK_ACCOUNT]", +"[IP_ADDRESS]", +"[DATE_OF_BIRTH]", +"Personal Identifiers", +"Contact Information", +"Financial Information", +"Medical Information", +"Digital Identifiers", +"Biometric Data", +"Location Data", +"Persona | Personas", +"New @:persona.title", +"Active @:persona.title", +"No @:persona.title Available.", +"Get started by adding or importing a new @:persona.title{'.'} You can also import default Personas to get started.", +"@:contextShield.title Position", +"@:persona.title saved", +"@:persona.title failed to save", +"@:persona.title updated", +"Could not update @:persona.title", +"Delete Selected @:persona.title", +"Delete @:persona.title", +"Are you sure you want to delete {personaName}? | Are you sure you want to delete {count} @:persona.title{'?'}", +"@:persona.title deleted | @:persona.title deleted", +"Could not delete @:persona.title | Could not delete @:persona.title", +"Import @:persona.title", +"Drag and drop a zipped Msty @:persona.title to import and create new Personas. In case of duplicate names, the imported Personas will be renamed. You can change it later.", +"Personas imported", +"Failed to import Personas", +"Export @:persona.title", +"Export Selected @:persona.title | Export Selected @:persona.title", +"@:persona.title exported as {fileName} | @:persona.title exported as {fileName}", +"Failed to export @:persona.title | Failed to export @:persona.title", +"New Folder at Root", +"Set as Default Folder", +"Unset Default Folder", +"@:folder updated", +"Failed to update @:folder", +"@:folder created", +"Failed to create @:folder", +"Delete @:folder", +"Are you sure you want to delete {folderName} with all its @:persona.title{'?'}", +"@:folder deleted", +"Failed to delete @:folder", +"@:select a @:persona.title", +"Turn Auto Responder On", +"Turn Auto Responder Off", +"Hide and Isolate System Prompt", +"Isolate Response", +"Auto Responder", +"Context Count", +"Set the number of recent messages to use as context for the @:persona.title{'.'}", +"Few-Shot Prompts", +"Few-shot learning is a machine learning technique that allows you to train a model with a small amount of data. You can use few-shot prompts to provide examples to the model to help it understand the context and generate better responses.", +"Add New Shot", +"Cost", +"Cost in USD", +"Prompt Tokens", +"Completion Tokens", +"Total Tokens", +"Usage", +"Tokens", +"Tokens Processed", +"@:select a provider | @:select providers", +"Tokens Processed for {provider}", +"Total Usage", +"From {from} to {to}", +"Crunching the numbers", +"Throughput for {model}", +"Measured in tokens per second", +"Latency for {model}", +"Measured in seconds", +"Total", +"Min", +"Max", +"Avg", +"Today", +"Last 7 days", +"Last 14 days", +"Last 30 days", +"Last 3 months", +"Last 6 months", +"Last 12 months", +"Month to date", +"Year to date", +"All time", +"@:select date range", +"Month", +"Year", +"Day", +"Week", +"Insights Summary", +"No data available for the selected date range and providers.", +"No data available for the selected date range and provider.", +"Throughput", +"No data available for the selected date range, provider and model.", +"Latency", +"Hide {item}", +"{item} has been hidden", +"Unable to hide {item}", +"Unhide Parent {item}", +"Hidden Parent Content. Click to unhide.", +"Show {item}", +"Failed to verify license. Please try again.", +"Enter Aurum License Key", +"You are using the {licenseType} license.", +"License Key", +"Logout", +"You are using the {licenseType} license and logged in as Owner.", +"Activate Aurum License", +"Enter your license key to unlock premium features", +"Manage License", +"Aurum Lifetime", +"One-time purchase with lifetime access to premium features", +"Aurum Annual", +"Yearly subscription with continuous updates and premium features", +"One-time purchase", +"Yearly subscription", +"Verify & Activate", +"Deactivate License", +"Licensed to", +"Expires on", +"Expired", +"Expires in {days} days", +"Need a license?", +"Purchase at msty.ai", +"Already have a license?", +"Manage Activation", +"{item} has been cloned", +"Unable to clone {item}", +"Clone to {item}", +"Successfully cloned to a new {item} ", +"Unable to clone to a new {item}", +"Import {item} from JSON Clipboard", +"Import {item} from JSON File", +"{count} {item} imported successfully", +"@:importJson.successMessage.detail {item} to {destination}", +"{count} {item} imported successfully and corresponding toolsets auto-created", +"Invalid config or nothing to import. Please make sure the JSON is valid and try again.", +"Failed to import. Please check the JSON and try again.", +"Failed to import {failed} items: {items}", +"Drag and drop a JSON file to import {item}.", +"Team | Teams", +"@:create @:team.label", +"Invite User", +"Overview", +"Users", +"All Teams", +"Team {teamName} successfully created.", +"Member|Members", +"All Users", +"Create New Team", +"Edit Team", +"Add Users", +"Update Users", +"Add Users to Team", +"Team Name", +"Enter the new team name", +"Create a new team to manage resources.", +"No users assigned to this team.", +"Invited", +"Manage your teams and users.", +"A team is used to manage resources. You can add users to the team to collaborate and share access to resources.", +"Delete Team", +"Are you sure you want to delete", +"Please type {name} to confirm deletion.", +"Policy | Policies", +"@:toolbox.title", +"Allow user to use Toolbox feature", +"@:promptsLibrary.title", +"Allow user to use Prompts Library feature", +"@:persona.title", +"Allow user to use Persona feature", +"@:turnstile.title", +"Allow user to use Turnstile feature", +"@:knowledgeStack.title", +"Allow user to use Knowledge Stack feature", +"Allow user to use @:remoteToolsConnector.title feature", +"@:rtd.title", +"Allow user to use @:rtd.title feature", +"@:attachments.title", +"Allow user to use @:attachments.title feature", +"@:forge.forgeMode.title", +"Allow user to use @:forge.forgeMode.title feature", +"@:insights", +"Allow user to use @:insights feature", +"Msty Studio Web Access", +"Allow user to access Msty Studio from web browser", +"Msty Studio Desktop Access", +"Allow user to access Msty Studio from desktop application", +"Platform Access", +"Manage access to specific model providers.", +"You have reached your limit to invite users.", +"Logged In As", +"A secure login link will be sent to the provided email address. Aurum license holders must verify their license key before using this feature.", +"continue with License Key", +"Send Login Link", +"Team Users", +"Verifying you request to access. Please wait", +"You have been invited to join an account on Msty Studio. ", +"Something went wrong, please contact you account Admin.", +"A login link will be sent to the email provided above.", +"User {email} invited.", +"@:invalid @:email", +"User already exists", +"Failed to invite {email}.", +"Unable to load users list", +"User {email} delete successfully.", +"Unable to delete user {email}", +"Delete User", +"Are you sure you want to delete {email}?", +"Assign users to team {teamName}", +"Successfully assigned {user} to team {teamName}", +"Remove user from team", +"Drop {user} from team {teamName}", +"@:select users to add", +"Update {item}", +"Edit {item}", +"{item} has been updated", +"Unable to update {item}", +"Tools", +"Vision", +"Embedding", +"Image", +"Thinking", +"Label", +"@:select an @:environment.title", +"New @:environment.title", +"Environment | Environments", +"Add new environments to get started.", +"@:environment.title saved", +"@:environment.title failed to save", +"@:delete @:environment.title | Delete @:environment.title", +"@:delete Selected @:environment.title | Delete Selected @:environment.title", +"@:delete @:environment.title", +"Are you sure you want to delete {environmentName}? | Are you sure you want to delete {count} environments?", +"@:environment.title deleted | @:environment.title deleted", +"Could not delete @:environment.title | Could not delete @:environment.title", +"Backup @:environment.title", +"@:environment.title backed up", +"Failed to backup @:environment.title", +"Restore @:environment.title", +"Drag and drop a Msty Environment file to restore Environments. Note: All existing environments will be deleted and replaced with the imported ones.", +"@:environment.title restored", +"Failed to restore @:environment.title", +"Quick @:select Environment Variable", +"Search or select a variable to copy it to the clipboard", +"Make Active {itemType}", +"Active {itemType}", +"{itemName} is now the active {itemType}", +"Failed to make {itemName} as the active {itemType}", +"Move {item}", +"Move {count} {sourceType} to {item}", +"Are you sure you want to move the selected {item}?", +"{item} has been moved | {item} have been moved", +"Unable to move {item}", +"Could not determine the target project.", +"Could not determine the target folder.", +"{item} has been deleted", +"Unable to delete {item}", +"@:prompts Library", +"New @:prompt", +"@:search.label @:prompt", +"Quick @:prompt", +"Save to Quick @:prompts", +"Copy @:prompt to Clipboard", +"Type / to search the @:promptsLibrary.title", +"@:folder", +"@:prompt", +"Delete all @:prompt and @:folders", +"This will clear entire @:promptsLibrary.title and @:folder@:folders. There is no way to recover them after deletion.", +"All @:prompt deleted", +"Get started by adding or importing a new @:prompt{'.'} You can also import default @:prompts to get started.", +"Import Default @:prompts", +"You can now use the imported prompts in your conversations.", +"Copy {count} @:prompts to clipboard", +"Failed to import default @:prompts", +"Failed to copy @:prompt{'.'} Please try again.", +"Are you sure you want to delete {folderName} with all its sub-folders and prompts?", +"Add New @:prompt", +"Edit @:prompt", +"@:prompt Name", +"@:description", +"@:prompt updated", +"Failed to update @:prompt", +"@:prompt created", +"Failed to create @:prompt", +"Delete {count} @:prompt", +"Are you sure you want to delete?", +"@:prompt deleted", +"Failed to delete @:prompt", +"Import Default {item}", +"Default {item} imported", +"Failed to import default {item}", +"Isolate @:context", +"Remove @:context Isolation", +"Isolated @:context", +"Clear All @:context Isolations", +"All @:context Isolations cleared", +"Response Metrics", +"Long press or Alt click to cycle metrics", +"Quick View", +"Details View", +"Input | Inputs", +"Output | Outputs", +"Think", +"The model performed internal thinking but didn’t return a summary. To enable thinking summaries, apply the 'Thinking' tag to this model by clicking on the edit icon next to the model selection.", +"Service | Services", +"@:localAI @:service", +"Version | Versions", +"Invalid config. Please enter a valid JSON object.", +"Unsaved Changes", +"Day | Days", +"Every", +"Files", +"File | @:files", +"Really Delete?", +"Similarity", +"Save as Draft", +"Compose", +"Embedding Model", +"Document | Documents", +"Matched", +"@:folder Name", +"Add New @:folder", +"Edit @:folder", +"An error occurred. Please try again later. Check logs for more details.", +"Models Path", +"This is where {service} downloads and looks for models. You can update the path to use a custom folder.", +"Edit Models Path", +"Set your preferred location.", +"Note: Changing the models path will restart the {service} for the changes to take effect.", +"Select Models Path", +"Models path updated", +"Failed to update models path", +"Give your system prompt a short title. It will be added to Quick Prompts for easy reuse.", +"Quick @:prompt Name", +"System prompt saved to Quick Prompts.", +"Failed to save system prompt to Quick Prompts.", +"Add some system prompt text before saving to Quick Prompts.", +"Service Health", +"Status of the {service}. Having trouble? Try restarting or reviewing the logs.", +"Restart Service", +"Stop Service", +"Start Service", +"Failed to perform {action} on {service}. Please check the logs for more details.", +"{service} Restarted", +"Running", +"Stopped", +"Service Endpoint | Service Endpoints", +"Local endpoint for {service}. Use this to connect from other applications running locally on device.", +"Once the service is running, the address will be displayed here.", +"Because the service is available on the network, you can also connect to it using the Network Service URL from other devices.", +"Copy Network URL", +"Service Version", +"Shows the current version of {service}. To ensure optimal performance and access to new features, keep it up to date. Reinstallation is also available if needed.", +"Force Update {service}", +"Force Update {service} (CPU)", +"Force Update {service} (CUDA)", +"Force Update {service} (CUDA 12.4)", +"Force Update {service} (CUDA 13.1)", +"Force Update {service} (Vulkan)", +"Force Update {service} (ROCm)", +"Force Update {service} (OpenCL)", +"Force Update {service} (SYCL)", +"{service} is updated to the latest version {version}", +"Failed to update {service}. Please check the logs for more details.", +"Remove {service}", +"Are you sure you want to remove {service}? This will delete the service binary and all its configurations. You can reinstall it later from the settings page.", +"{service} has been removed successfully", +"Failed to remove {service}. Please check the logs for more details.", +"These configurations are applied to the {service} when it starts. {service} will automatically restart after you save any changes.", +"Allow other devices on your network to access this {service} through this device's IP address.", +"Allow connections from Msty Studio Web to this app so it can access {service}.", +"Capture Service Logs", +"You have unsaved changes in the {service} Configurations. Once you save, {service} will be restarted with the new configurations.", +"{service} Configurations saved and service restarted", +"Failed to save {service} Configurations. Please check the logs for more details.", +"Keyboard Shortcuts", +"Customize keyboard shortcuts for quick access to features", +"Search shortcuts...", +"Search by shortcut", +"Search by name", +"Press any key combination...", +"Press keys...", +"Not set", +"Edit shortcut", +"Global", +"Shortcut saved", +"Error saving shortcut", +"Shortcut reset", +"Reset to default", +"Reset all shortcuts", +"All shortcuts reset to defaults", +"No shortcuts found", +"Conflicts with: {name}", +"Navigation", +"@:settings.appearance", +"Conversation", +"Reset All Shortcuts", +"Are you sure you want to reset all keyboard shortcuts to their default values?", +"Customize Shortcuts", +"Contextual", +"System Wide", +"Option key shortcuts work in Msty. If they produce special characters instead, check System Settings > Keyboard > Input Sources", +"Keyboard Shortcuts Example", +"This component demonstrates how to register and use keyboard shortcuts in your components.", +"Registered Shortcuts:", +"Example Action 1", +"Scoped Action", +"Actions:", +"Update First Shortcut", +"Test Conflict Detection", +"Action Log:", +"No actions yet. Try pressing the shortcuts!", +"Developer Notes:", +"Shortcuts are automatically cleaned up when the component unmounts", +"Use component-scoped shortcuts to avoid ID conflicts", +"Platform-specific bindings are handled automatically (Cmd on Mac, Ctrl on Windows)", +"Check for conflicts before registering shortcuts that might collide with existing ones", +"Shortcuts can be global (work everywhere) or context-specific", +"Select split to remove", +"Press", +"Create New", +"Copy", +"No Messages Selected", +"Select at least one message to perform any actions", +"Export Message | Export Messages", +"Copy Message | Copy Messages", +"As JSON", +"As Markdown", +"Successfully {action} messages as {format}", +"Re-index {item}", +"{item} re-indexed successfully", +"Failed to re-index {item}", +"Are you sure you want to re-index {item}?", +"Recent|Recents", +"Recents & @:pinned", +"Knowledge Stack | Knowledge Stacks", +"@:knowledgeStack.title Contexts", +"Processing: {fileName}", +"Composing", +"Composing…", +"YouTube", +"Overall progress", +"In-flight:", +"Ignored for retrieval", +"Importing folder: {name}", +"Processing {count} knowledge stack(s)", +"Save Edits", +"Save Edits and Mark as Draft", +"Are you sure you want to save your edits? This will mark the Knowledge Stack as a draft and prevent it from being used in production until processed again.", +"Choose where to import the @:knowledgeStack.title", +"New @:knowledgeStack.title", +"Add description", +"Edit description", +"Add a description for this Knowledge Stack...", +"Saving...", +"Saved {time}", +"Basic Information", +"@:similarity Threshold", +"@:similarity Match", +"You have unsaved changes. Are you sure you want to leave this page? Your changes will be lost.", +"You have unsaved changes that will be lost if you reload the page.", +"No @:knowledgeStack.title selected", +"Knowledge Stack lets you bring in files, folders, notes, and YouTube transcripts, making them searchable and chat-ready through Retrieval-Augmented Generation (RAG)", +"Select a @:knowledgeStack.title", +"Select a @:knowledgeStack.title from the tree or create a new one", +"Edit Ignore Rules", +"Ignore Rules", +"Define patterns to exclude files and folders from processing.", +"Priority: Local .mstyignore/.gitignore → Folder rules → System defaults", +"# Enter patterns here, one per line\n# Example: *.log, node_modules/, !important.txt", +"Show examples & help", +"Log files", +"Temp files in all dirs", +"Entire directory", +"Exception pattern", +"Multiple image types", +"All files in test & subdirs", +"Case-insensitive match", +"Files starting with secret-", +"Use template", +"Clear all", +"Ignore rules updated successfully", +"Failed to update ignore rules", +"Delete @:folder '{folderName}'", +"Are you sure you want to delete this folder? All Knowledge Stacks inside it will be removed. There is no undo for this action.", +"Add New @:knowledgeStack.title", +"Delete @:knowledgeStack.title", +"Are you sure you want to delete this Knowledge Stack? All items inside it will be removed. There is no undo for this action.", +"Delete All @:knowledgeStack.title", +"This will clear entire @:knowledgeStack.title{'.'} There is no way to recover them after deletion.", +"All @:knowledgeStack.title deleted", +"Failed to delete all @:knowledgeStack.title", +"Chunk | @:knowledgeStack.chunksConsole.chunks", +"Chunks", +"@:knowledgeStack.chunksConsole.chunks Console", +"Use this console to understand how your Knowledge Stack, { title }, is being used and what chunks are being sent to a model when chatting. You can also delete a chunk if you think it's not relevant or useful.", +"Query Text", +"@:similarity", +"Highest", +"High", +"Medium", +"Low", +"# of @:knowledgeStack.chunksConsole.chunks", +"Source File", +"Source Note", +"Source Video", +"Source", +"Score", +"Search Results", +"No search results found. Try adjusting your query or search settings.", +"No results match the current similarity filter. Try adjusting the filter to show more results.", +"@:knowledgeStack.chunksConsole.chunk has been deleted", +"Search Type", +"Hybrid Search", +"Semantic Search", +"Keyword Search", +"This filter only affects which results are displayed below. It does not change the actual query.", +"Content has been scrubbed for PII removal", +"Used cached scrubbed version", +"Freshly scrubbed content", +"Run Query", +"{count} selected", +"Selected Stacks", +"Search Knowledge Stacks...", +"Recently Updated", +"No Knowledge Stacks found", +"No Knowledge Stacks available", +"No description", +"Number of @:knowledgeStack.chunksConsole.chunks", +"Synthesize Query", +"Enable PII Scrubbing", +"Max Full Content Contexts", +"Full Content Contexts can significantly increase token usage and may impact performance", +"Manage Stacks", +"Only completed stacks can be selected", +"Total Files", +"Vector Dimensions", +"Word Count", +"Reading Time", +"No embedding model configured", +"Model {modelId} not found", +"Model provider was automatically remapped", +"Change Query Embedding model", +"Select Query Embedding Model", +"The original embedding model for this Knowledge Stack is not available. Please select a new model.", +"The embedding model provider was automatically remapped to a compatible provider.", +"Current Model", +"No model configured", +"Select New Model", +"Default (Local)", +"@:files", +"Add .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx or any other supported file types.", +"Drag and drop files here", +"Browse Files", +"Drop files here", +"@:folders & Obsidian Vaults", +"Add folders containing files. You can drop Obsidian Vaults as well.", +"Drag and drop folders here", +"Browse Folders", +"Live Mode", +"Folders are monitored for changes and automatically update the Knowledge Stack", +"Duplicate Folder", +"Folder Already Added", +"This folder has already been added to the @:knowledgeStack.title", +"The folder '{path}' has already been added", +"Folder Processed", +"{count} files added successfully", +"Only folders can be added here. Please select a folder instead of individual files.", +"Select Folder", +"Please use the Browse button to select a folder in web mode", +"Processed", +"Error Processing Folder", +"Folder Explorer", +"Show Ignored Files", +"No folders added yet", +"Failed to Load Folder", +"Folder Removed", +"'{name}' has been removed from the Knowledge Stack", +"Failed to Remove Folder", +"Ignored", +"Loading...", +"Loading folder contents...", +"Are you sure you want to remove \"{name}\" from this Knowledge Stack? The folder and its files will remain on your system.", +"Expand folder", +"Collapse folder", +"This folder is ignored based on .mstyignore or .gitignore rules", +"This file is ignored based on .mstyignore or .gitignore rules", +"Actions menu", +"Empty folder", +"{count} item | {count} items", +"{count} hidden item | {count} hidden items", +"Obsidian Vaults", +"Add Obsidian Vaults to your Knowledge Stack. Msty will index all the notes in the vault.", +"Drag and drop Obsidian Vaults here", +"Browse Obsidian Vaults", +"Add your own notes to the Knowledge Stack. These notes will be chunked and embedded for semantic search.", +"Add Note", +"Enter note title...", +"Enter note content...", +"No notes added yet. Click 'Add Note' to get started.", +"Not saved yet", +"Add YouTube video links to index their transcripts. Msty will fetch transcripts and make them searchable.", +"Drag and drop YouTube links here or paste them below", +"Paste YouTube URLs here (space or comma separated)...", +"Paste YouTube URLs here ({count} detected) | Paste YouTube URLs here ({count} detected)", +"Auto-pull detected URLs", +"{count} URL detected | {count} URLs detected", +"{count} YouTube URL detected but not pulled yet | {count} YouTube URLs detected but not pulled yet", +"Mark for Reprocessing", +"Lock Temporarily", +"Lock Permanently", +"Ignore for Retrieval", +"Include in Retrieval", +"More actions", +"Load Mode", +"Select Load Mode", +"Distribution", +"Choose how this file should be loaded during Knowledge Stack composition.", +"Static Files", +"Dynamic Files", +"Sync Files", +"Special Modes", +"Special Modes Ratio", +"Static Mode", +"Uses the cached version from when the file was added. Fast and predictable, but doesn't reflect recent changes.", +"Cached content loaded from initial indexing", +"Dynamic Mode", +"Loads the latest file content on each composition. Slightly slower but always up-to-date.", +"Fresh content loaded on each composition", +"Recommended", +"Sync Mode", +"Watches for file changes and automatically recomposes. Best for small, frequently updated files.", +"Auto-recomposes when files change", +"Expensive", +"Start Sync Mode", +"Pause Sync Mode", +"Pause All", +"Sync Mode Started", +"Now watching file changes for {name}", +"Sync Mode Paused", +"File watching has been paused", +"Failed to Start Sync Mode", +"Please ensure the Knowledge Stack has files marked for Sync Mode", +"All Sync Modes Paused", +"File watching has been stopped for all knowledge stacks", +"{count} Active | {count} Active", +"Active Sync Modes", +"{count} file | {count} files", +"Started {time}", +"{stacks} stack, {files} files | {stacks} stacks, {files} files", +"{hours}h ago", +"{days}d ago", +"Analytics and Insights", +"Last Composed", +"Analytics Sections", +"Performance Timings", +"Summary Statistics", +"Content Breakdown", +"Query Settings", +"Reading Statistics", +"No Analytics Available", +"Analytics will be available after composing this Knowledge Stack.", +"No Analytics Sections Selected", +"Please select one or more analytics sections above to view insights about your Knowledge Stack.", +"Select All Sections", +"Loading Items", +"Splitting @:knowledgeStack.chunksConsole.chunks", +"Embedding @:knowledgeStack.chunksConsole.chunks", +"Composing Stack", +"Total Time", +"Some operations may run in parallel, so individual times may not sum to total time", +"File Reading", +"Database Write", +"# of Items", +"Total @:knowledgeStack.chunksConsole.chunks", +"Available @:knowledgeStack.chunksConsole.chunks", +"Skipped @:knowledgeStack.chunksConsole.chunks", +"Character Count", +"Ignored Items", +"Ignored for Retrieval", +"These items are excluded from search and retrieval operations", +"Percentage of items ignored", +"of {total}", +"YouTube Videos", +"No Ignored Items", +"All items in this Knowledge Stack are included in search and retrieval", +"Recommendation", +"FILES", +"OBSIDIAN VAULTS", +"FOLDERS", +"NOTES", +"YOUTUBE LINKS", +"Scrubbed @:knowledgeStack.chunksConsole.chunks", +"Cached @:knowledgeStack.chunksConsole.chunks", +"Coverage", +"Scrubbing Progress", +"Load Analytics", +"Failed to load PII analytics data", +"PII Analytics Not Loaded", +"Click \"Load Analytics\" to view PII scrubbing statistics", +"This score reflects how comprehensively PII scrubbing is applied to your Knowledge Stack. A higher score means more chunks have been processed for PII removal.", +"PII scrubbing is optional. Enable it in query settings only if your content contains sensitive personal information.", +"Measures how well sensitive information is protected in your Knowledge Stack", +"Not Enabled", +"Well Protected", +"Partially Protected", +"Limited Protection", +"Minimal Protection", +"Excellent privacy protection - nearly all content secured", +"Good privacy protection - most content is secured", +"Partial privacy protection - consider reviewing settings", +"Limited privacy protection - review sensitive content", +"PII scrubbing is not enabled. This is completely fine if your content doesn't contain sensitive personal information.", +"Consider enabling PII scrubbing only if your Knowledge Stack contains names, addresses, phone numbers, emails, or other personal data.", +"Significant content reduction ({percentage}%) - extensive PII found", +"Moderate content reduction ({percentage}%) - some PII removed", +"Minimal content reduction ({percentage}%) - low PII detected", +"No content size change - no PII detected or removed", +"All chunks processed successfully", +"Nearly all chunks processed successfully", +"Most chunks processed - some may need attention", +"Incomplete processing - check PII scrubbing configuration", +"Large knowledge base - consider increasing PII detection coverage", +"Many unprocessed chunks - review PII scrubbing settings", +"PII scrubbing is optional. Enable it in query settings if your content contains sensitive information like names, emails, or phone numbers.", +"PII scrubbing helps protect sensitive information. It's optional and can be enabled in query settings if needed.", +"Security Status", +"Privacy Status", +"When to Enable", +"Content Impact", +"Processing Efficiency", +"Scale Recommendation", +"Coverage Recommendation", +"Optional Feature", +"Privacy Option", +"Prompt Prefix", +"Privacy Optimization Score", +"PII Protection Level", +"PII Scrubbing Status", +"Unscrubbed @:knowledgeStack.chunksConsole.chunks", +"Original Size", +"Processed Size", +"Size Reduction", +"Privacy @:insgiths", +"Data has been modified", +"Show outdated data anyway", +"Content Distribution", +"{label} contribute {percentage}% of all chunks", +"Processing Issue", +"{label} have low efficiency ({efficiency}%)", +"Data Quality Issue", +"{count} content type(s) have high skip rates", +"Content Diversity", +"Single content type - consider diversifying sources", +"Excellent content diversity across multiple source types", +"Optimization Tip", +"Reduce chunk size to 800-1200 characters for better content granularity", +"Increase chunk size to 1500-2000 characters for better efficiency", +"Embedding Throughput", +"{rate} chunks/sec ({time}ms each)", +"Search Strategy", +"Balanced approach combining keyword + semantic search", +"AI-powered semantic search - best for conceptual queries", +"Traditional keyword search - best for exact terms", +"Retrieval Volume", +"Very low chunk count may miss relevant information", +"High chunk count may include noise and slow responses", +"Optimal chunk count for balanced retrieval", +"Content Filtering", +"Relaxed filtering - may include loosely related content", +"Strict filtering - highly focused results", +"Balanced filtering for relevant content", +"Guided Context", +"Custom prompt prefix will guide query interpretation", +"Lock Indicator", +"All items can be reprocessed", +"{percentage}% of items are locked", +"Most items are locked - limited reprocessing capability", +"Privacy & Security", +"Privacy protection enabled for sensitive data", +"No PII scrubbing - ensure content is not sensitive", +"Scale Optimization", +"Large knowledge base - increase chunk count for better coverage", +"Small knowledge base - consider reducing chunk count", +"Performance Profile", +"Configuration optimized for fast responses", +"Configuration optimized for high-quality results", +"High Lock Rate", +"{percentage}% of items are locked and won't be reprocessed", +"Consider unlocking temporarily locked items if they need updates", +"Over 50% of items are locked. This may significantly reduce the knowledge base's ability to stay updated.", +"Lock Status", +"Total Items", +"Temporarily Locked", +"Permanently Locked", +"Lock Status by Content Type", +"Temp. Locked", +"Perm. Locked", +"Lock Status @:insights", +"Content @:insights", +"Composition Optimization Score", +"Composition @:insights", +"Performance @:insights", +"Processing Phase Details", +"Total Processing Time", +"Total Locked Items", +"Efficiency", +"Load Mode Analytics", +"File loading behavior across your Knowledge Stack", +"Load Mode Distribution", +"Special Modes %", +"Visual Breakdown", +"No files in this Knowledge Stack", +"Load Mode options are only available in the desktop application", +"All files are using Static Mode. Enable Dynamic or Sync Mode for files to use the latest content.", +"Sync Mode Active", +"Watching {files} • Started {time}", +"Fresh", +"Live", +"High Sync File Count", +"{count} files are in Sync Mode", +"Consider using Dynamic Mode for less frequently updated files to reduce resource usage", +"Sync Mode Enabled", +"{count} files are automatically updating when changed", +"High Dynamic Mode Usage", +"{percentage}% of files are using Dynamic Mode", +"Static Mode may be sufficient for files that rarely change", +"Dynamic Mode Active", +"{count} files are loading fresh content on each composition", +"Static Mode Only", +"All files are using cached content from initial indexing", +"Enable Dynamic or Sync Mode for frequently updated files to ensure fresh content", +"Mixed Load Modes", +"{percentage}% of files are using special load modes", +"Compose Settings", +"@:knowledgeStack.chunksConsole.chunk Overlapping", +"Changing the embedding model will require recomposing the entire Knowledge Stack and even then there is a chance that recomposition will fail.", +"Learn more about embedding model compatibility", +"Select an embedding model", +"Select chunk overlapping", +"Select chunk size", +"Chunking Method", +"Recursive Character", +"Sentence", +"Choose how documents should be chunked into smaller pieces for better search and retrieval.", +"Overlapping", +"Choose how much overlap should be between chunks. Higher overlap can improve context but increase token usage.", +"@:knowledgeStack.chunksConsole.chunk Size", +"Set the maximum size of each chunk in characters. Smaller chunks can improve search accuracy but increase token usage.", +"@:knowledgeStack.chunksConsole.chunk Sizes To Ignore", +"Specify chunk sizes that should be ignored during processing. Useful for excluding very small or very large chunks.", +"Push Mode", +"Pull Mode", +"Knowledge Stack Context", +"Failed to load Knowledge Stack chunks. Please try again.", +"Search Settings", +"Search Query", +"Content", +"Full Content", +"@:knowledgeStack.chunksConsole.chunk Information", +"Knowledge Stack", +"chunks", +"Max @:knowledgeStack.chunksConsole.chunks", +"@:knowledgeStack.chunksConsole.chunk Retrieval Mode", +"Choose between Push mode where chunks are pre-fetched, or Pull Mode where the model can query Knowledge Stacks directly", +"@:knowledgeStack.chunksConsole.chunk Overlap", +"Synthesized Query", +"chunk | chunks", +"View Full Content", +"Full @:knowledgeStack.chunksConsole.chunk Content", +"Scrubbed", +"Original", +"@:knowledgeStack.chunksConsole.chunk ID", +"PII Status", +"PII Scrubbed", +"PII Un-scrubbed", +"Original content without @:pii.scrubbing.title", +"Query Analysis", +"Full Content Context Active", +"Documents Retrieved", +"Content Context", +"Keywords", +"Full Doc", +"Full Document", +"@:knowledgeStack.chunksConsole.chunks Visualizer", +"Visualize how documents are chunked", +"Open Visualizer", +"View Visualizer", +"Available Files", +"Loading files...", +"No files found", +"Select a File", +"Choose a file from the left to visualize its chunks and content", +"MIME Type", +"@:knowledgeStack.chunksConsole.chunks", +"Overlaps", +"Stitched Size", +"Show Overlaps", +"Hide Overlaps", +"Show @:knowledgeStack.chunksConsole.chunks", +"Show Stitched", +"Copy Content", +"Stitched Content", +"Un-scrubbed @:knowledgeStack.chunksConsole.chunks", +"Overlaps have been removed for clean text reconstruction", +"@:knowledgeStack.chunksConsole.chunk {number}", +"Overlap Previous", +"Overlap Next", +"This text overlaps with the previous chunk", +"This text overlaps with the next chunk", +"Character positions in file", +"Core content without overlaps", +"{count} chunks", +"Show Original", +"Show Scrubbed", +"Show Scrubbed Only", +"Show All @:knowledgeStack.chunksConsole.chunks", +"Per Page", +"{start}-{end} of {total} chunks", +"Loading chunks...", +"No items found", +"Select an Item", +"Choose a file or note from the left to visualize its chunks and content", +"Open Console", +"{count} @:knowledgeStack.chunksConsole.chunk Selected", +"Delete Selected", +"Clear Selection", +"Confirm Delete", +"Are you sure you want to delete {count} selected chunks? This action cannot be undone.", +"@:knowledgeStack.chunksConsole.chunks Deleted", +"Successfully deleted {count} chunks", +"{count} @:knowledgeStack.chunksConsole.chunk deleted successfully", +"Delete Failed", +"Force Compose", +"Overall Progress", +"{count} items exported", +"Items", +"Export completed successfully!", +"Saved to: {path}", +"Cancel All", +"Done", +"Exporting", +"Folder", +"Export failed", +"Import failed", +"Your changes to the Knowledge Stack have been saved. You will need to recompose it to apply the changes.", +"Knowledge stack saved and processing started", +"Cannot force compose: Knowledge stack must be saved first", +"Failed to force compose Knowledge Stack", +"Force compose started - all items will be reprocessed", +"Failed to update query settings", +"Query settings updated", +"just now", +"{minutes}m ago", +"Failed to select item", +"Failed to select folder", +"Knowledge Stack {title} processing completed", +"Knowledge Stack {title} processing failed", +"Nothing to compose for Knowledge Stack {title}", +"Error composing Knowledge Stack {title}", +"Importing from URL is only available in the desktop application", +"{count} @:knowledgeStack.title deleted!", +"Failed to create the @:knowledgeStack.title", +"Failed to save edits to the @:knowledgeStack.title", +"Folder '{name}' added to the Knowledge Stack", +"Folder '{name}' locked temporarily", +"Folder '{name}' locked permanently", +"Failed to lock the folder", +"Folder '{name}' unlocked", +"Failed to unlock the folder", +"Path: {path}", +"Name: {name}", +"Unknown", +"Loading PII analytics...", +"All items are unlocked and can be reprocessed when needed.", +"Abort Processing", +"Processing Failed", +"Error Message", +"Occurred at", +"Failed File", +"Error Summary", +"Technical Details", +"Stack Trace", +"Copy Details", +"Error details copied to clipboard", +"Click to see error details", +"File is null", +"Error checking if path is directory", +"Error processing folder", +"Failed to lock folder temporarily", +"Failed to lock folder permanently", +"Failed to unlock folder", +"Status: Completed", +"Status: Processing", +"Status: Pending", +"Status: Draft", +"Status: Needs Reprocessing", +"Status: Error", +"Status: Temporarily Locked", +"Status: Permanently Locked", +"Status: Aborted", +"Status: Unknown", +"Unlock Aurum Features", +"Upgrade to Aurum license for the most powerful AI features and advanced capabilities", +"Everything you need", +"View Pricing", +"Feature Matrix", +"Activate License", +"Aurum", +"Upload image…", +"Only image files are supported.", +"Image must be 1MB or smaller.", +"Profile image updated.", +"Failed to update image. Please try again.", +"Click to change profile image", +"Lost & Found", +"Find and recover lost workspaces from your computer. Only workspace databases are scanned and discovered, not attachments.", +"Lost & Found is experimental. Always keep backups of your workspace data before attempting recovery.", +"Scan for Lost Workspaces", +"Scan App Data", +"Scan Folder…", +"Workspace", +"Last Modified", +"Actions", +"Linked", +"Found", +"Restore current workspace", +"Import As New Workspace", +"Restore current workspace?", +"This will replace the data of the currently active workspace with the data from the selected recovered file. This cannot be undone.", +"Failed to import workspace", +"Workspace imported", +"Recovered workspace has been imported. Switch to it from the workspace tray if needed.", +"Failed to restore workspace", +"Workspace restored", +"Current workspace has been restored from the recovered file.", +"Failed to import recovered workspace", +"Failed to import recovered workspace (unexpected)", +"Failed to restore workspace from recovered file", +"Failed to restore workspace from recovered file (unexpected)", +"Quick filter...", +"Toggle filter", +"Toggle sidebar", +"Adjust", +"{item} is experimental and under active development. Please report any issues to the team.", +"File Type", +"Attachment Type", +"Browse Existing Attachments", +"View Associations", +"Delete Attachment | Delete Attachments", +"Are you sure you want to delete the attachment? All the associations to the attachment will also be removed. This action cannot be undone. | Are you sure you want to delete the attachments? All the associations to the attachments will also be removed. This action cannot be undone.", +"Successfully deleted the attachment | Successfully deleted the attachments", +"Failed to delete the attachment | Failed to delete the attachments", +"Search by Name", +"Filter by Attachment Type", +"Attachments Manager", +"No Attachments Found", +"You have no attachments available.", +"Associations for {attachmentName}", +"Search by Association Name", +"Filter by Associated Entity", +"No Associations Found", +"You have not used this attachment anywhere yet.", +"Association Name", +"Associated Entity", +"Jump to {entity}", +"Detach Association", +"Are you sure you want to detach the association from the {associationEntity}? This action cannot be undone.", +"Successfully detached the association", +"Failed to detach the association", +"AI Prompt", +"Describe what the icon represents...", +"Find Icon", +"Finding..." +] \ No newline at end of file diff --git a/tools/msty_ca/tr_001.json b/tools/msty_ca/tr_001.json new file mode 100644 index 0000000..e9bf9be --- /dev/null +++ b/tools/msty_ca/tr_001.json @@ -0,0 +1,131 @@ +{ + "You": "Vós", + "Select": "Selecciona", + "Conversations": "Converses", + "Copy to Clipboard": "Copia al porta-retalls", + "to copy markdown directly": "per copiar el markdown directament", + "Click to copy markdown directly": "Feu clic per copiar el markdown directament", + "to show more options": "per mostrar més opcions", + "Long press or Alt+click for more options": "Premeu llargament o Alt+clic per a més opcions", + "on message": "al missatge", + "@:select a model | @:select models": "@:select un model | @:select els models", + "@:manage Models": "@:manage els models", + "Required": "Obligatori", + "Optional": "Opcional", + "System Prompt": "Indicació del sistema", + "@:systemPrompt Attach @:mode": "Mode d'adjunció de la indicació del sistema", + "@:user Prompt": "Indicació de l'usuari", + "Delete {item}": "Suprimeix {item}", + "Delete All": "Suprimeix-ho tot", + "Create": "Crea", + "Edit": "Edita", + "Expand editor": "Amplia l'editor", + "Collapse editor": "Replega l'editor", + "Enable": "Activa", + "Disable": "Desactiva", + "Save": "Desa", + "Saved": "Desat", + "Cancel": "Cancel·la", + "Close": "Tanca", + "Bookmarked": "Marcat", + "Pinned": "Fixat", + "Update": "Actualitza", + "Apply": "Aplica", + "Reset": "Restableix", + "Icon": "Icona", + "Clear": "Esborra", + "API Key": "Clau API", + "Models": "Models", + "Available {itemType}": "{itemType} disponibles", + "Unavailable": "No disponible", + "Detected": "Detectat", + "Continue": "Continua", + "Undetected": "No detectat", + "Welcome!": "Us donem la benvinguda!", + "Plan": "Pla", + "All changes saved": "S'han desat tots els canvis", + "Toolbar": "Barra d'eines", + "Bookmark | Bookmarks": "Marcador | Marcadors", + "Waiting :: Hold on :: Just a moment :: One second :: Patience is a virtue :: Almost there :: Loading awesomeness": "S'està esperant :: Un moment :: Només un instant :: Un segon :: La paciència és una virtut :: Gairebé hi som :: S'està carregant la meravella", + "Searching the Web :: Browsing the internet :: Looking online :: Scouring the web :: Consulting the oracle :: Asking the internet nicely :: Diving into cyberspace :: Mining the web": "S'està cercant al web :: S'està navegant per internet :: S'està mirant en línia :: S'està escorcollant el web :: S'està consultant l'oracle :: S'està demanant amablement a internet :: S'està capbussant al ciberespai :: S'està minant el web", + "Querying @:knowledgeStack.title :: Searching your knowledge :: Looking through your docs :: Exploring your knowledge base :: Rifling through your wisdom :: Consulting your digital library :: Scanning your archives :: Digging through your notes": "S'està consultant la @:knowledgeStack.title :: S'està cercant en el vostre coneixement :: S'estan examinant els vostres documents :: S'està explorant la vostra base de coneixement :: S'està furgant en la vostra saviesa :: S'està consultant la vostra biblioteca digital :: S'estan examinant els vostres arxius :: S'està furgant en les vostres notes", + "Preparing Tools :: Getting tools ready :: Setting up tools :: Loading tools :: Sharpening the instruments :: Assembling the toolkit :: Warming up the engines :: Prepping the workspace": "S'estan preparant les eines :: S'estan enllestint les eines :: S'estan configurant les eines :: S'estan carregant les eines :: S'estan esmolant els instruments :: S'està muntant la caixa d'eines :: S'estan escalfant els motors :: S'està preparant l'espai de treball", + "Model is doing its magic ✨ :: AI is thinking :: Processing your request :: Working on it :: Crunching the numbers :: Neurons firing :: Pondering deeply :: Computing brilliance :: Engaging brain mode :: Summoning intelligence": "El model fa la seva màgia ✨ :: La IA està pensant :: S'està processant la vostra sol·licitud :: S'hi està treballant :: S'estan fent els càlculs :: Les neurones s'activen :: S'està reflexionant a fons :: S'està computant brillantor :: Mode cervell activat :: S'està invocant la intel·ligència", + "Processing Context :: Understanding context :: Analyzing context :: Reading the situation :: Connecting the dots :: Grasping the big picture :: Piecing it together :: Making sense of things": "S'està processant el context :: S'està entenent el context :: S'està analitzant el context :: S'està llegint la situació :: S'estan lligant els caps :: S'està copsant la visió de conjunt :: S'està encaixant tot plegat :: S'està donant sentit a les coses", + "Streaming :: Sending response :: Delivering answer :: Transmitting :: Beaming down results :: Flowing your way :: En route to you :: Coming in hot": "S'està transmetent en temps real :: S'està enviant la resposta :: S'està lliurant la resposta :: S'està transmetent :: S'estan teletransportant els resultats :: De camí cap a vós :: En ruta cap a vós :: Arriba ben calent", + "Scrubbing PII Data :: Protecting your privacy :: Removing personal info :: Anonymizing data :: Keeping secrets safe :: Privacy mode engaged :: Redacting the sensitive bits :: Going incognito": "S'estan netejant les dades personals :: S'està protegint la vostra privadesa :: S'està suprimint la informació personal :: S'estan anonimitzant les dades :: S'estan guardant bé els secrets :: Mode de privadesa activat :: S'estan ocultant les parts sensibles :: Mode d'incògnit activat", + "Synthesizing Query for Better Results :: Optimizing your question :: Enhancing query :: Refining search terms :: Polishing your request :: Fine-tuning the question :: Crafting the perfect query :: Making your words shine": "S'està sintetitzant la consulta per a millors resultats :: S'està optimitzant la vostra pregunta :: S'està millorant la consulta :: S'estan afinant els termes de cerca :: S'està polint la vostra sol·licitud :: S'està ajustant la pregunta :: S'està creant la consulta perfecta :: S'està fent brillar les vostres paraules", + "Fetching Live Contexts :: Gathering real-time data :: Pulling fresh insights :: Syncing with live sources :: Tapping into the data stream :: Collecting current intel :: Refreshing context feeds :: Harvesting live updates :: Connecting to the pulse": "S'estan obtenint els contextos en directe :: S'estan recollint dades en temps real :: S'estan obtenint coneixements nous :: S'està sincronitzant amb fonts en directe :: S'està accedint al flux de dades :: S'està recollint informació actual :: S'estan actualitzant els canals de context :: S'estan recol·lectant actualitzacions en directe :: S'està connectant amb el batec", + "Initializing...": "S'està inicialitzant...", + "Add": "Afegeix", + "Expand {group}": "Amplia {group}", + "Collapse {group}": "Replega {group}", + "Show extra add-ons": "Mostra els complements addicionals", + "Hide extra add-ons": "Amaga els complements addicionals", + "Model & Prompts": "Model i indicacions", + "Data & Knowledge": "Dades i coneixement", + "Tools & Personas": "Eines i personalitats", + "Unauthorized": "No autoritzat", + "Valid": "Vàlid", + "Invalid": "No vàlid", + "Done!": "Fet!", + "Confirm": "Confirma", + "Share with synced splits": "Comparteix amb les divisions sincronitzades", + "Source | Sources": "Font | Fonts", + "Grounding Sources": "Fonts de fonamentació", + "Manage": "Gestiona", + "Chat | Chats": "Xat | Xats", + "Advanced Options": "Opcions avançades", + "Duplicate": "Duplica", + "@:manage {item}": "@:manage {item}", + "Success!": "Correcte!", + "Notes": "Notes", + "View Notes": "Mostra les notes", + "Error!": "Error!", + "Warning": "Avís", + "Authorized": "Autoritzat", + "Not authorized": "No autoritzat", + "Authorize": "Autoritza", + "Re-authorize": "Torna a autoritzar", + "Remove authorization": "Suprimeix l'autorització", + "Failed to delete": "No s'ha pogut suprimir", + "Failed to save": "No s'ha pogut desar", + "Failed to update": "No s'ha pogut actualitzar", + "updated.": "actualitzat.", + "Apply and share with synced splits": "Aplica i comparteix amb les divisions sincronitzades", + "Click to edit": "Feu clic per editar", + "Click to add @:systemPrompt": "Feu clic per afegir una indicació del sistema", + "Pause": "Posa en pausa", + "Resume": "Reprèn", + "Retry": "Torna-ho a provar", + "Stop": "Atura", + "Run": "Executa", + "Re-run": "Torna a executar", + "Remove": "Elimina", + "Skip": "Omet", + "Unskip": "No ometis", + "Start Importing": "Comença la importació", + "New": "Nou", + "Entry | Entries": "Entrada | Entrades", + "Import": "Importa", + "Connect": "Connecta", + "Disconnect": "Desconnecta", + "Reconnect": "Torna a connectar", + "Select Target Folder": "Selecciona la carpeta de destinació", + "Create new folder for imported items": "Crea una carpeta nova per als elements importats", + "New folder name": "Nom de la carpeta nova", + "Remote": "Remot", + "Local": "Local", + "Strength | Strengths": "Punt fort | Punts forts", + "Provider": "Proveïdor", + "{count} Capability | {count} Capabilities": "{count} capacitat | {count} capacitats", + "Preset | Presets": "Predefinit | Predefinits", + "Save As @:preset": "Desa com a predefinit", + "Append": "Afegeix al final", + "Prepend": "Afegeix al principi", + "Replace": "Substitueix", + "Description": "Descripció", + "Mode": "Mode", + "Add-ons": "Complements", + "User": "Usuari" +} diff --git a/tools/msty_ca/tr_002.json b/tools/msty_ca/tr_002.json new file mode 100644 index 0000000..ad68630 --- /dev/null +++ b/tools/msty_ca/tr_002.json @@ -0,0 +1,201 @@ +{ + "Assistant": "Assistent", + "@:assistant @:message.title": "Missatge de l'assistent", + "Connection Info": "Informació de connexió", + "Export": "Exporta", + "Export Options": "Opcions d'exportació", + "Choose File": "Trieu un fitxer", + "Purpose": "Finalitat", + "Download": "Baixa", + "Downloads": "Baixades", + "Download as JSON": "Baixa com a JSON", + "Install": "Instal·la", + "Installed": "Instal·lat", + "Modified": "Modificat", + "Created": "Creat", + "Minimize": "Minimitza", + "Status": "Estat", + "Type": "Tipus", + "Yes": "Sí", + "File Size": "Mida del fitxer", + "Size": "Mida", + "Like | Likes": "M'agrada | M'agrada", + "Cancelled": "Cancel·lat", + "Parameter @:size": "Mida dels paràmetres", + "Quantization": "Quantització", + "@:quantization Level": "Nivell de quantització", + "Context Size": "Mida del context", + "Default to model max": "Per defecte, el màxim del model", + "Maximum tokens the model processes at once. Set to 0 to use model's maximum. Larger values increase memory usage. This value is saved globally per model with LLaMa.cpp. Context is shared equally across the number of concurrent requests set via LLaMa.cpp service settings.": "Nombre màxim de tokens que el model processa alhora. Establiu-lo a 0 per fer servir el màxim del model. Els valors més alts augmenten l'ús de memòria. Aquest valor es desa globalment per a cada model amb LLaMa.cpp. El context es reparteix equitativament entre el nombre de sol·licituds simultànies definit a la configuració del servei LLaMa.cpp.", + "Truncate Middle": "Trunca pel mig", + "Truncate Old": "Trunca els antics", + "None": "Cap", + "How to handle messages when context limit is approached.": "Com gestionar els missatges quan s'acosta el límit del context.", + "Storage": "Emmagatzematge", + "Params": "Paràmetres", + "Arch": "Arquitectura", + "Filter": "Filtre", + "Sort & Display": "Ordena i mostra", + "Search...": "Cerca...", + "Folders first": "Primer les carpetes", + "Items first": "Primer els elements", + "Name": "Nom", + "Title": "Títol", + "Updated": "Actualitzat", + "Last Used": "Darrer ús", + "Ascending": "Ascendent", + "Descending": "Descendent", + "Visibility": "Visibilitat", + "Show empty folders": "Mostra les carpetes buides", + "Hide empty folders": "Amaga les carpetes buides", + "Show item counts": "Mostra el recompte d'elements", + "Hide item counts": "Amaga el recompte d'elements", + "No {item} found for this search": "No s'ha trobat cap {item} per a aquesta cerca", + "Loading": "S'està carregant", + "Invite": "Convida", + "Refresh": "Actualitza", + "Email": "Adreça electrònica", + "Role": "Rol", + "Admin": "Administrador", + "Owner": "Propietari", + "Inactive": "Inactiu", + "Argument|Arguments": "Argument|Arguments", + "Abort": "Interromp", + "Send": "Envia", + "Remind Me Later": "Recorda-m'ho més tard", + "Text": "Text", + "Folders": "Carpetes", + "Folder | @:folders": "Carpeta | @:folders", + "Search": "Cerca", + "Active": "Actiu", + "Archived": "Arxivat", + "All": "Tot", + "Fuzzy search enabled": "Cerca aproximada activada", + "Fuzzy search disabled": "Cerca aproximada desactivada", + "Fuzzy Search Enabled. Click to Toggle": "Cerca aproximada activada. Feu clic per canviar", + "Fuzzy Search Disabled. Click to Toggle": "Cerca aproximada desactivada. Feu clic per canviar", + "Change": "Canvia", + "Expand All Projects": "Amplia tots els projectes", + "Collapse All Projects": "Replega tots els projectes", + "Expand All Folders": "Amplia totes les carpetes", + "Collapse All Folders": "Replega totes les carpetes", + "Clone {item}": "Clona {item}", + "{item} cloned": "S'ha clonat {item}", + "Failed to clone {item}": "No s'ha pogut clonar {item}", + "Add notes to help you remember the purpose of this {item}; this will also be seen by models which can provide them more details on how to use this {item} (@:optional)": "Afegiu notes que us ajudin a recordar la finalitat d'aquest {item}; també les veuran els models, cosa que els proporciona més detalls sobre com utilitzar aquest {item} (@:optional)", + "Endpoint Test Results": "Resultats de la prova del punt final", + "Test Connection": "Prova la connexió", + "No {item} found": "No s'ha trobat cap {item}", + "@:select {item}": "@:select {item}", + "{count} {title}": "{count} {title}", + "Feature|Features": "Funcionalitat|Funcionalitats", + "Raw": "En brut", + "Raw Output": "Sortida en brut", + "Property|Properties": "Propietat|Propietats", + "Configure": "Configura", + "Context | Contexts": "Context | Contextos", + "Path | Paths": "Camí | Camins", + "Project | Projects": "Projecte | Projectes", + "New Project at Root": "Projecte nou a l'arrel", + "Project Name": "Nom del projecte", + "Project Description": "Descripció del projecte", + "Default Model": "Model per defecte", + "Custom Instructions": "Instruccions personalitzades", + "Add Child Project": "Afegeix un projecte fill", + "Move Folder to Root": "Mou la carpeta a l'arrel", + "Failed to move project to root.": "No s'ha pogut moure el projecte a l'arrel.", + "The project was successfully moved to the root.": "El projecte s'ha mogut correctament a l'arrel.", + "Delete Project": "Suprimeix el projecte", + "Set as Default Project": "Estableix com a projecte per defecte", + "Unset Default Project": "Desfés el projecte per defecte", + "Misc": "Divers", + "Include Project Context": "Inclou el context del projecte", + "Are you sure you want to delete {projectName} and all its conversations?": "Segur que voleu suprimir {projectName} i totes les seves converses?", + "@:cancel": "@:cancel", + "@:delete": "Suprimeix", + "Project deleted": "S'ha suprimit el projecte", + "Delete All Conversations": "Suprimeix totes les converses", + "Are you sure you want to delete all conversations in {projectName}? This action cannot be undone.": "Segur que voleu suprimir totes les converses de {projectName}? Aquesta acció no es pot desfer.", + "Deleted {count} conversation | Deleted {count} conversations": "S'ha suprimit {count} conversa | S'han suprimit {count} converses", + "No conversations to delete": "No hi ha converses per suprimir", + "Failed to delete conversations": "No s'han pogut suprimir les converses", + "Archive All Conversations": "Arxiva totes les converses", + "Archive all conversations in {projectName}? They will move to the Archive and can be restored later.": "Voleu arxivar totes les converses de {projectName}? Es mouran a l'arxiu i es podran restaurar més endavant.", + "Archive All": "Arxiva-ho tot", + "Archived {count} conversation | Archived {count} conversations": "S'ha arxivat {count} conversa | S'han arxivat {count} converses", + "Failed to archive conversations": "No s'han pogut arxivar les converses", + "Add Files": "Afegeix fitxers", + "Edit Project": "Edita el projecte", + "New Project": "Projecte nou", + "Drag and drop files that will get attached to each conversation in this project.": "Arrossegueu i deixeu anar els fitxers que s'adjuntaran a cada conversa d'aquest projecte.", + "Project created": "S'ha creat el projecte", + "Project created! It's currently hidden because it's empty. Click the button below to show it now, or it will appear automatically when you add your first conversation.": "S'ha creat el projecte! De moment està amagat perquè és buit. Feu clic al botó de sota per mostrar-lo ara, o apareixerà automàticament quan hi afegiu la primera conversa.", + "Project updated": "S'ha actualitzat el projecte", + "Failed to create Project": "No s'ha pogut crear el projecte", + "Failed to update Project": "No s'ha pogut actualitzar el projecte", + "Show Empty Projects": "Mostra els projectes buits", + "Empty projects are now visible": "Ara els projectes buits són visibles", + "Start a New Conversation to Get Started": "Inicieu una conversa nova per començar", + "Selected model": "Model seleccionat", + "Endpoint": "Punt final", + "Auth Token": "Testimoni d'autenticació", + "Before": "Abans", + "After": "Després", + "Method": "Mètode", + "HTTP @:method": "@:method HTTP", + "Get": "Get", + "Post": "Post", + "@:preset with the same name already exists.": "Ja existeix un predefinit amb el mateix nom.", + "@:presetAlreadyExistsMessage If you save, it will overwrite the existing preset.": "@:presetAlreadyExistsMessage Si el deseu, se sobreescriurà el predefinit existent.", + "No {propsName} available. Add a custom one.": "No hi ha cap {propsName} disponible. Afegiu-ne un de personalitzat.", + "@:local AI": "IA local", + "Click to add a label": "Feu clic per afegir una etiqueta", + "Branch label (max 30 chars)": "Etiqueta de la branca (màx. 30 car.)", + "Label Branch...": "Etiqueta la branca...", + "Label Branch": "Etiqueta la branca", + "No label": "Sense etiqueta", + "Click for more options": "Feu clic per a més opcions", + "Branch Explorer": "Explorador de branques", + "Branch Explorer...": "Explorador de branques...", + "Branch {n}": "Branca {n}", + "Current": "Actual", + "Branches": "Branques", + "Compare": "Compara", + "Compare Branches": "Compara les branques", + "Compare branches": "Compara les branques", + "Exit compare mode": "Surt del mode de comparació", + "Select first branch to compare": "Seleccioneu la primera branca a comparar", + "Select second branch to compare": "Seleccioneu la segona branca a comparar", + "Selected": "Seleccionat", + "Content is identical": "El contingut és idèntic", + "First branch": "Primera branca", + "Second branch": "Segona branca", + "Select branch": "Seleccioneu una branca", + "Select two branches above to compare their content": "Seleccioneu dues branques a dalt per comparar-ne el contingut", + "Switch to {name}": "Canvia a {name}", + "Diff": "Diferències", + "Side by Side": "Costat per costat", + "Conversation | Conversations": "Conversa | Converses", + "@:conversation.title Title": "Títol de la conversa", + "Failed to generate context summary.": "No s'ha pogut generar el resum del context.", + "Check Settings > Notifications for more details.": "Consulteu Configuració > Notificacions per a més detalls.", + "Failed to send message.": "No s'ha pogut enviar el missatge.", + "Check Settings > Notifications for more details. {error}": "Consulteu Configuració > Notificacions per a més detalls. {error}", + "Message exceeds context limit": "El missatge supera el límit del context", + "Your message with search results and context is too large for this model. Try: increasing context size from model parameters, reducing search results, clearing conversation history, using a model with larger context (16k+), or shortening your system instructions.": "El vostre missatge amb els resultats de la cerca i el context és massa gran per a aquest model. Proveu de: augmentar la mida del context des dels paràmetres del model, reduir els resultats de la cerca, esborrar l'historial de la conversa, fer servir un model amb un context més gran (16k+) o escurçar les instruccions del sistema.", + "Delete @:conversation.title": "Suprimeix la conversa", + "Add New @:conversation.title": "Afegeix una conversa nova", + "New @:conversation.title": "Conversa nova", + "Projects first": "Primer els projectes", + "Last Activity": "Darrera activitat", + "No priority": "Sense prioritat", + "@:pinned first": "Primer els fixats", + "@:bookmarked first": "Primer els marcats", + "Show Recents & @:pinned": "Mostra els recents i els fixats", + "Hide Recents & @:pinned": "Amaga els recents i els fixats", + "Show Archive": "Mostra l'arxiu", + "Hide Archive": "Amaga l'arxiu", + "Show empty projects": "Mostra els projectes buits", + "Hide empty projects": "Amaga els projectes buits", + "Show conversation counts": "Mostra el recompte de converses" +} diff --git a/tools/msty_ca/tr_003.json b/tools/msty_ca/tr_003.json new file mode 100644 index 0000000..dd86e2c --- /dev/null +++ b/tools/msty_ca/tr_003.json @@ -0,0 +1,191 @@ +{ + "Hide conversation counts": "Amaga el recompte de converses", + "Press {trigger} for quick commands OR start typing...": "Premeu {trigger} per a ordres ràpides O comenceu a escriure...", + "Press / to focus here and start typing": "Premeu / per posar el focus aquí i començar a escriure", + "Are you sure you want to delete selected conversation and all its chat splits? | Are you sure you want to delete selected conversations and all their chat splits?": "Segur que voleu suprimir la conversa seleccionada i totes les seves divisions de xat? | Segur que voleu suprimir les converses seleccionades i totes les seves divisions de xat?", + "Delete": "Suprimeix", + "@:conversation.title deleted": "S'ha suprimit la conversa", + "Failed to delete @:conversation.title": "No s'ha pogut suprimir la conversa", + "Convert to Chat": "Converteix en xat", + "@:conversation.title converted to Chat": "S'ha convertit la conversa en xat", + "Failed to convert conversation to Chat": "No s'ha pogut convertir la conversa en xat", + "Convert to @:forge.forgeCanvas": "Converteix en @:forge.forgeCanvas", + "@:conversation.title converted to @:forge.forgeCanvas": "S'ha convertit la conversa en @:forge.forgeCanvas", + "Failed to convert conversation to @:forge.forgeCanvas": "No s'ha pogut convertir la conversa en @:forge.forgeCanvas", + "Messages cloned to new split successfully": "Els missatges s'han clonat correctament a la nova divisió", + "Failed to clone messages to new split": "No s'han pogut clonar els missatges a la nova divisió", + "Messages cloned to new conversation successfully": "Els missatges s'han clonat correctament a la nova conversa", + "Failed to clone messages to new conversation": "No s'han pogut clonar els missatges a la nova conversa", + "Archive": "Arxiva", + "Orphaned Conversation": "Conversa òrfena", + "This conversation is archived. Unarchive it to continue the discussion.": "Aquesta conversa està arxivada. Desarxiveu-la per continuar la conversa.", + "Sending a new message will automatically unarchive.": "En enviar un missatge nou, es desarxivarà automàticament.", + "Unarchive": "Desarxiva", + "Conversation unarchived automatically.": "La conversa s'ha desarxivat automàticament.", + "{count} conversation archived | {count} conversations archived": "S'ha arxivat {count} conversa | S'han arxivat {count} converses", + "{count} conversation restored | {count} conversations restored": "S'ha restaurat {count} conversa | S'han restaurat {count} converses", + "Unload archived items": "Descarrega els elements arxivats", + "Archived items unloaded": "S'han descarregat els elements arxivats", + "Unable to update archive status. Please try again.": "No s'ha pogut actualitzar l'estat de l'arxiu. Torneu-ho a provar.", + "Archive {item}": "Arxiva {item}", + "Export @:conversation.title as JSON": "Exporta la conversa com a JSON", + "Successfully exported conversations as JSON": "Les converses s'han exportat correctament com a JSON", + "Show All Splits": "Mostra totes les divisions", + "Save Splits As": "Desa les divisions com a", + "New Single Split Chat": "Xat nou d'una sola divisió", + "Split Preset | Split Presets": "Predefinit de divisió | Predefinits de divisió", + "Save Splits As @:preset": "Desa les divisions com a predefinit", + "Edit Split @:preset {presetName}": "Edita el predefinit de divisió {presetName}", + "@:preset Name": "Nom del predefinit", + "@:preset Options": "Opcions del predefinit", + "@:select @:preset Options": "Selecciona les opcions del predefinit", + "Save @:preset": "Desa el predefinit", + "Split @:preset added": "S'ha afegit el predefinit de divisió", + "Split @:preset updated": "S'ha actualitzat el predefinit de divisió", + "Failed to save Split @:preset": "No s'ha pogut desar el predefinit de divisió", + "Delete Split @:preset": "Suprimeix el predefinit de divisió", + "Are you sure you want to delete {splitPresetName}? ": "Segur que voleu suprimir {splitPresetName}? ", + "Split @:preset deleted": "S'ha suprimit el predefinit de divisió", + "Compact Mode": "Mode compacte", + "@:enable @:conversationActions.compactMode": "Activa el mode compacte", + "@:disable @:conversationActions.compactMode": "Desactiva el mode compacte", + "Split Widths": "Amplada de les divisions", + "Slim": "Estret", + "Balanced": "Equilibrat", + "Roomy": "Ample", + "Spacious": "Espaiós", + "Full": "Complet", + "Response Configuration": "Configuració de la resposta", + "Select a preset...": "Seleccioneu un predefinit...", + "Save as Preset": "Desa com a predefinit", + "Common Settings": "Configuració comuna", + "Advanced Parameters": "Paràmetres avançats", + "JSON object for advanced model parameters": "Objecte JSON per a paràmetres avançats del model", + "Provider Options": "Opcions del proveïdor", + "Provider-specific configuration": "Configuració específica del proveïdor", + "Thinking Configuration": "Configuració del raonament", + "Extended thinking configuration": "Configuració del raonament ampliat", + "Provider may ignore or partially honor thinking settings": "El proveïdor pot ignorar o respectar parcialment la configuració del raonament", + "Custom Parameters": "Paràmetres personalitzats", + "Provider may ignore or partially honor these": "El proveïdor pot ignorar-los o respectar-los parcialment", + "value": "valor", + "Delete Parameter": "Suprimeix el paràmetre", + "Delete custom parameter \"{param}\"?": "Voleu suprimir el paràmetre personalitzat «{param}»?", + "Parameter key is required.": "La clau del paràmetre és obligatòria.", + "This key is reserved for built-in parameters.": "Aquesta clau està reservada per als paràmetres integrats.", + "A parameter with this key already exists.": "Ja existeix un paràmetre amb aquesta clau.", + "Invalid JSON": "JSON no vàlid", + "Constraint Mode is On": "El mode de restricció està activat", + "Freeform Mode is On - no min/max limits": "El mode lliure està activat: sense límits mín./màx.", + "Expand for other options": "Amplia per veure altres opcions", + "Collapse other options": "Replega les altres opcions", + "Temperature": "Temperatura", + "Controls randomness (0=focused, 2=creative)": "Controla l'aleatorietat (0=concentrat, 2=creatiu)", + "Probability mass to keep during nucleus sampling": "Massa de probabilitat que es manté durant el mostreig de nucli", + "Limit token selection to the top K tokens": "Limita la selecció de tokens als K tokens principals", + "Max Output Tokens": "Màxim de tokens de sortida", + "Maximum tokens for responses": "Nombre màxim de tokens per a les respostes", + "Maximum tokens for responses (limit {0})": "Nombre màxim de tokens per a les respostes (límit {0})", + "Context Window Size": "Mida de la finestra de context", + "Maximum tokens accepted in the prompt": "Nombre màxim de tokens acceptats a la indicació", + "Maximum tokens accepted in the prompt (limit {0})": "Nombre màxim de tokens acceptats a la indicació (límit {0})", + "Set to 0 to use model's maximum context size": "Establiu-lo a 0 per fer servir la mida màxima de context del model", + "Presence Penalty": "Penalització de presència", + "Penalize new tokens based on whether they appear in the text so far": "Penalitza els tokens nous segons si ja apareixen al text", + "Frequency Penalty": "Penalització de freqüència", + "Penalize tokens based on frequency in the text so far": "Penalitza els tokens segons la freqüència al text fins ara", + "Repeat Penalty": "Penalització de repetició", + "Discourage repeating phrases": "Desincentiva la repetició de frases", + "Repeat Last N": "Repeteix els últims N", + "Context window for applying repeat penalty": "Finestra de context per aplicar la penalització de repetició", + "Minimum cumulative probability for token selection": "Probabilitat acumulada mínima per a la selecció de tokens", + "Stabilize perplexity dynamically": "Estabilitza la perplexitat dinàmicament", + "Off": "Desactivat", + "Target surprise level (lower = safer)": "Nivell de sorpresa objectiu (més baix = més segur)", + "Learning rate for Mirostat adjustment": "Taxa d'aprenentatge per a l'ajust de Mirostat", + "GPU Layers": "Capes de GPU", + "Number of layers to offload to GPU": "Nombre de capes que es descarreguen a la GPU", + "Threads": "Fils", + "CPU threads to use for generation": "Fils de CPU que s'utilitzen per a la generació", + "Model Parameters": "Paràmetres del model", + "Max Output Tokens (Legacy)": "Màxim de tokens de sortida (antic)", + "Context Window @:size": "@:size de la finestra de context", + "Number of GPU Layers": "Nombre de capes de GPU", + "@:select or insert a parameter": "@:select o insereix un paràmetre", + "@:select a @:preset": "@:select un predefinit", + "Save as @:preset": "Desa com a predefinit", + "Add New Parameter": "Afegeix un paràmetre nou", + "Extra @:params": "Paràmetres addicionals", + "Apply and Save as Model Default": "Aplica i desa com a valor per defecte del model", + "Save @:modelParams.params As Preset": "Desa els paràmetres com a predefinit", + "Failed to save params preset.": "No s'ha pogut desar el predefinit de paràmetres.", + "@:modelParams.params preset saved.": "S'ha desat el predefinit de paràmetres.", + "Delete @:preset": "Suprimeix el predefinit", + "Are you sure you want to delete {presetName}?": "Segur que voleu suprimir {presetName}?", + "Failed to delete params preset.": "No s'ha pogut suprimir el predefinit de paràmetres.", + "@:modelParams.params preset deleted.": "S'ha suprimit el predefinit de paràmetres.", + "Thinking Effort": "Esforç de raonament", + "Think Lightly": "Raona lleugerament", + "Think Moderately": "Raona moderadament", + "Think Deeply": "Raona a fons", + "Default": "Per defecte", + "Dynamic": "Dinàmic", + "Exclude": "Exclou", + "Split Options": "Opcions de divisió", + "Add Split Chat": "Afegeix un xat dividit", + "Hide Split": "Amaga la divisió", + "Copy Split to New Conversation": "Copia la divisió a una conversa nova", + "Move Split to New Conversation": "Mou la divisió a una conversa nova", + "Delete Split": "Suprimeix la divisió", + "Remove Split": "Elimina la divisió", + "Split removed": "S'ha eliminat la divisió", + "Split reset": "S'ha restablert la divisió", + "Split copied to new conversation": "S'ha copiat la divisió a una conversa nova", + "Split moved to new conversation": "S'ha mogut la divisió a una conversa nova", + "Failed to copy split to new conversation": "No s'ha pogut copiar la divisió a una conversa nova", + "Failed to move split to new conversation": "No s'ha pogut moure la divisió a una conversa nova", + "Export Chat": "Exporta el xat", + "Copy Chat": "Copia el xat", + "Active Branch as JSON": "Branca activa com a JSON", + "Active Branch as Markdown": "Branca activa com a Markdown", + "All Branches as JSON": "Totes les branques com a JSON", + "Successfully {action} chat as {format}": "S'ha {action} el xat com a {format}", + "exported": "exportat", + "copied": "copiat", + "Show All Hidden Messages": "Mostra tots els missatges amagats", + "All hidden messages are now visible": "Ara tots els missatges amagats són visibles", + "Are you sure you want to delete this Split?": "Segur que voleu suprimir aquesta divisió?", + "Message|Messages": "Missatge|Missatges", + "Message and Descendants": "Missatge i descendents", + "Send on Enter": "Envia amb Retorn", + "Send Modifier": "Modificador d'enviament", + "Shift": "Maj", + "Alt": "Alt", + "Ctrl": "Ctrl", + "Meta": "Meta", + "Re-send user message": "Torna a enviar el missatge de l'usuari", + "Send as @:assistant Message": "Envia com a missatge de l'assistent", + "Sending a message as \"Assistant\" lets you shape the conversation by adding AI responses yourself. The AI will continue as if it wrote that message. Useful for providing context or guiding responses.": "Enviar un missatge com a «Assistent» us permet donar forma a la conversa afegint vós mateix respostes de la IA. La IA continuarà com si hagués escrit aquell missatge. És útil per aportar context o orientar les respostes.", + "Sent as Assistant Message": "Enviat com a missatge de l'assistent", + "Manually Edited": "Editat manualment", + "@:bookmark Message | @:bookmark Messages": "Marca el missatge | Marca els missatges", + "Remove @:bookmark | Remove Bookmarks": "Treu el marcador | Treu els marcadors", + "Delete Message | Delete Messages": "Suprimeix el missatge | Suprimeix els missatges", + "Remove Message": "Elimina el missatge", + "Regenerate assistant message as a new branch": "Regenera el missatge de l'assistent com a branca nova", + "@:continue Generation": "Continua la generació", + "Use as prompt in new split": "Fes-lo servir com a indicació en una divisió nova", + "Fold Messages Above": "Plega els missatges de dalt", + "Unfold Messages Above": "Desplega els missatges de dalt", + "Clone with Ancestors to New Split": "Clona amb els ascendents a una divisió nova", + "Clone with Ancestors to New Conversation": "Clona amb els ascendents a una conversa nova", + "Extra Actions": "Accions addicionals", + "No model selected. Please select a model to send a message": "No s'ha seleccionat cap model. Seleccioneu un model per enviar un missatge", + "Delete Message": "Suprimeix el missatge", + "Are you sure you want to delete this message?": "Segur que voleu suprimir aquest missatge?", + "Delete Message and its descendants": "Suprimeix el missatge i els seus descendents", + "Are you sure you want to delete this message and all its descendants?": "Segur que voleu suprimir aquest missatge i tots els seus descendents?", + "Quick Commands": "Ordres ràpides", + "No matching commands": "No hi ha ordres coincidents", + "Type \\ followed by command or alias": "Escriviu \\ seguit d'una ordre o àlies" +} diff --git a/tools/msty_ca/tr_004.json b/tools/msty_ca/tr_004.json new file mode 100644 index 0000000..6a92e9b --- /dev/null +++ b/tools/msty_ca/tr_004.json @@ -0,0 +1,220 @@ +{ + "Regenerating message...": "S'està regenerant el missatge...", + "Context shield applied": "S'ha aplicat l'escut de context", + "Compressing with shield...": "S'està comprimint amb l'escut...", + "Message @:bookmarked": "Missatge marcat", + "Copied to clipboard": "S'ha copiat al porta-retalls", + "Continuing generation...": "S'està continuant la generació...", + "Resending message...": "S'està reenviant el missatge...", + "Enable or disable the Shiftcuts feature. Unlike standard keyboard shortcuts, Shiftcuts are triggered by double-tapping the Shift key and then pressing another key to perform an action; including: 't' to open new split chat, 'e' to open environment selector, '1' to toggle sidebar, and 'm' to open minimap.": "Activa o desactiva la funció Shiftcuts. A diferència de les dreceres de teclat estàndard, els Shiftcuts s'activen prement dues vegades la tecla Maj i després una altra tecla per executar una acció; per exemple: «t» per obrir un xat dividit nou, «e» per obrir el selector d'entorn, «1» per mostrar o amagar la barra lateral i «m» per obrir el minimapa.", + "URL Endpoint": "Punt final de l'URL", + "Give it a unique name": "Poseu-li un nom únic", + "Duplicate or invalid {item} name. Please enter a unique name.": "El nom de {item} està duplicat o no és vàlid. Introduïu un nom únic.", + "You have not backed up your data, would you like to export your data for backup?": "No heu fet cap còpia de seguretat de les dades. Voleu exportar-les per fer-ne una còpia?", + "It has been 24hrs since your last backup, would you like to export your data for backup?": "Fa 24 h de la darrera còpia de seguretat. Voleu exportar les dades per fer-ne una còpia?", + "Storage may be cleared by the browser under storage pressure. We recommend backing up your data regularly.": "El navegador pot esborrar l'emmagatzematge si hi ha manca d'espai. Us recomanem fer còpies de seguretat de les dades regularment.", + "Export @:data": "Exporta les dades", + "Clear @:data": "Esborra les dades", + "Restore @:data": "Restaura les dades", + "Drag and drop your data backup to restore from.": "Arrossegueu i deixeu anar la còpia de seguretat de les dades des de la qual voleu restaurar.", + "Restoring from backup file will replace all existing data. We recommend to export a backup first.": "Restaurar des d'un fitxer de còpia de seguretat reemplaçarà totes les dades existents. Us recomanem exportar primer una còpia de seguretat.", + "Failed to export data": "No s'han pogut exportar les dades", + "Backup @:data": "Fes una còpia de seguretat de les dades", + "@:data exported": "S'han exportat les dades", + "Failed to clear data": "No s'han pogut esborrar les dades", + "@:data has been cleared": "S'han esborrat les dades", + "Enter '{string}' here": "Introduïu «{string}» aquí", + "Please enter '{string}' below to proceed": "Introduïu «{string}» a continuació per continuar", + "@:warning": "@:warning", + "Invalid confirmation. Please enter '{string}' to proceed.": "La confirmació no és vàlida. Introduïu «{string}» per continuar.", + "Are you sure you want to clear all data? This action cannot be undone.": "Segur que voleu esborrar totes les dades? Aquesta acció no es pot desfer.", + "Please select a file to restore from": "Seleccioneu un fitxer des del qual restaurar", + "Are you sure you want to restore all data? This action will replace all existing data and cannot be undone. We recommend to export a backup first.": "Segur que voleu restaurar totes les dades? Aquesta acció reemplaçarà totes les dades existents i no es pot desfer. Us recomanem exportar primer una còpia de seguretat.", + "Restore": "Restaura", + "@:data Imported": "S'han importat les dades", + "Failed to Import @:data": "No s'han pogut importar les dades", + "Setup {item}": "Configura {item}", + "{item} setup completed": "S'ha completat la configuració de {item}", + "Could not setup {item}": "No s'ha pogut configurar {item}", + "Welcome to Msty Studio!": "Us donem la benvinguda a Msty Studio!", + "We'd need at least one model provider to get started.": "Necessitem com a mínim un proveïdor de models per començar.", + "Welcome to Msty!": "Us donem la benvinguda a Msty!", + "How would you like to get started?": "Com voleu començar?", + "Got Ollama/Msty Models?": "Teniu models d'Ollama/Msty?", + "Got MLX Models?": "Teniu models MLX?", + "Got LLaMA.cpp Models?": "Teniu models de LLaMA.cpp?", + "You can use your existing Ollama or Msty models directly, if any, or specify a custom location. Note: we will still be using our own service to run those models.": "Podeu utilitzar directament els models d'Ollama o de Msty que ja tingueu, si en teniu, o bé especificar una ubicació personalitzada. Nota: continuarem fent servir el nostre propi servei per executar aquests models.", + "If you don't have any MLX models yet, you can specify a custom location where you'd like to store them.": "Si encara no teniu cap model MLX, podeu especificar una ubicació personalitzada on voleu desar-los.", + "We found MLX models in your Hugging Face Hub cache! You can use them directly or specify a custom location.": "Hem trobat models MLX a la memòria cau del vostre Hugging Face Hub! Els podeu utilitzar directament o especificar una ubicació personalitzada.", + "Specify a custom location where you'd like to store your GGUF models for LLaMA.cpp.": "Especifiqueu una ubicació personalitzada on voleu desar els vostres models GGUF per a LLaMA.cpp.", + "No location set": "No s'ha definit cap ubicació", + "Set Your Own": "Definiu-ne una de pròpia", + "Custom model locations are not available for MLX": "Les ubicacions de models personalitzades no estan disponibles per a MLX", + "Enter custom models path": "Introduïu el camí dels models personalitzats", + "To get you started, {modelName} will be downloaded. You can choose a different model.": "Per començar, es baixarà {modelName}. Podeu triar un model diferent.", + "Use models like DeepSeek R1, Meta Llama4, Microsoft Phi4, IBM Granite, Google Gemma, etc": "Feu servir models com ara DeepSeek R1, Meta Llama4, Microsoft Phi4, IBM Granite, Google Gemma, etc.", + "Use offline and keep your @:data private": "Useu-lo sense connexió i mantingueu les vostres dades privades", + "Models are free to download and use": "Els models es poden baixar i utilitzar de franc", + "Install and use specialized models": "Instal·leu i feu servir models especialitzats", + "Needs extra storage and memory": "Necessita emmagatzematge i memòria addicionals", + "That's it!": "Ja està!", + "You can now start chatting with your models privately and securely.": "Ara ja podeu començar a xatejar amb els vostres models de manera privada i segura.", + "Error Setting Up @:localAIService": "Error en configurar @:localAIService", + "We could not set up @:localAIService{'.'} Please check the logs for more details. {errorMessage}": "No hem pogut configurar @:localAIService{'.'} Reviseu els registres per a més detalls. {errorMessage}", + "There was a permission issue setting up Local AI. You can rerun the app as an admin (not recommended) or consider installing the app as for a single user only (recommended).": "Hi ha hagut un problema de permisos en configurar la IA local. Podeu tornar a executar l'aplicació com a administrador (no recomanat) o bé plantejar-vos instal·lar l'aplicació només per a un sol usuari (recomanat).", + "{errorMessage} Consider installing Local AI from archive files if you continue to get this error. Please visit https://docs.msty.studio/getting-started/onboarding": "{errorMessage} Plantegeu-vos instal·lar la IA local des dels fitxers d'arxiu si continueu rebent aquest error. Visiteu https://docs.msty.studio/getting-started/onboarding", + "Error Setting Up MLX Service": "Error en configurar el servei MLX", + "We could not set up MLX Service. Please check the logs for more details. {errorMessage}": "No hem pogut configurar el servei MLX. Reviseu els registres per a més detalls. {errorMessage}", + "To get you started, {modelName} will be downloaded. MLX is Apple's optimized framework for Apple Silicon.": "Per començar, es baixarà {modelName}. MLX és el marc de treball d'Apple optimitzat per a Apple Silicon.", + "MLX is currently in experimental mode. It may have some limitations and rough edges. Please report any issues to the team.": "MLX es troba actualment en mode experimental. Pot tenir algunes limitacions i imperfeccions. Comuniqueu qualsevol problema a l'equip.", + "Optimized for Apple Silicon (M1, M2, M3, M4)": "Optimitzat per a Apple Silicon (M1, M2, M3, M4)", + "Efficient memory usage with unified memory architecture": "Ús eficient de la memòria amb arquitectura de memòria unificada", + "Supports MLX, SafeTensors, and GGUF models": "Admet models MLX, SafeTensors i GGUF", + "Native performance on macOS": "Rendiment natiu a macOS", + "Only available on Apple Silicon Macs": "Només disponible als Mac amb Apple Silicon", + "Smaller model selection compared to Ollama": "Selecció de models més reduïda en comparació amb Ollama", + "MLX Setup Complete!": "Configuració d'MLX completada!", + "You can now use MLX models with optimal performance on your Mac.": "Ara podeu fer servir models MLX amb un rendiment òptim al vostre Mac.", + "Checking system compatibility...": "S'està comprovant la compatibilitat del sistema...", + "Downloading MLX server...": "S'està baixant el servidor MLX...", + "Starting MLX service...": "S'està iniciant el servei MLX...", + "Setting up MLX...": "S'està configurant l'MLX...", + "Downloading Model: {progress}%": "S'està baixant el model: {progress}%", + "LLaMA.cpp support is experimental and under active development": "La compatibilitat amb LLaMA.cpp és experimental i s'està desenvolupant activament", + "Error Setting Up LLaMA.cpp Service": "Error en configurar el servei LLaMA.cpp", + "We could not set up LLaMA.cpp Service. Please check the logs for more details. {errorMessage}": "No hem pogut configurar el servei LLaMA.cpp. Reviseu els registres per a més detalls. {errorMessage}", + "To get you started, {modelName} will be downloaded. LLaMA.cpp provides efficient cross-platform AI inference.": "Per començar, es baixarà {modelName}. LLaMA.cpp ofereix una inferència d'IA eficient i multiplataforma.", + "Works on Windows, macOS, and Linux": "Funciona a Windows, macOS i Linux", + "Supports both CPU and GPU acceleration": "Admet acceleració tant per CPU com per GPU", + "Efficient memory usage and fast inference": "Ús eficient de la memòria i inferència ràpida", + "Compatible with GGUF model format": "Compatible amb el format de model GGUF", + "Requires desktop application": "Requereix l'aplicació d'escriptori", + "Performance depends on hardware configuration": "El rendiment depèn de la configuració del maquinari", + "LLaMA.cpp Setup Complete!": "Configuració de LLaMA.cpp completada!", + "You can now use LLaMA.cpp models with efficient performance on your system.": "Ara podeu fer servir models de LLaMA.cpp amb un rendiment eficient al vostre sistema.", + "Downloading LLaMA.cpp server...": "S'està baixant el servidor de LLaMA.cpp...", + "Starting LLaMA.cpp service...": "S'està iniciant el servei de LLaMA.cpp...", + "Setting up LLaMA.cpp...": "S'està configurant LLaMA.cpp...", + "Downloading: {progress}%": "S'està baixant: {progress}%", + "With most online providers, you'd need to get an API key from the provider's website. {findYourKey}": "Amb la majoria de proveïdors en línia, us caldrà obtenir una clau API del lloc web del proveïdor. {findYourKey}", + "Find your API key": "Trobeu la vostra clau API", + "Use OpenAI, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Ollama, Remote Msty, etc": "Feu servir OpenAI, Azure, Claude Sonnet, Google Gemini, Perplexity, Ollama remot, Msty remot, etc.", + "Get started without downloading models": "Comenceu sense baixar cap model", + "Some vendors provide extra features like image generation, web search, etc": "Alguns proveïdors ofereixen funcions addicionals com ara la generació d'imatges, la cerca web, etc.", + "Requires internet connection to chat": "Requereix connexió a internet per xatejar", + "Vendor charges may apply": "Es poden aplicar càrrecs del proveïdor", + "{count} model available | {count} models available": "{count} model disponible | {count} models disponibles", + "{count} model added | {count} models added": "S'ha afegit {count} model | S'han afegit {count} models", + "Forget this provider": "Oblida aquest proveïdor", + "Let's Go!": "Som-hi!", + "No @:localAI? Get @:remoteToolsConnector.title for 1-click Setup": "No teniu @:localAI? Obteniu @:remoteToolsConnector.title per a una configuració amb un sol clic", + "You are now ready to chat with one of the models from {providerName}.": "Ara ja podeu xatejar amb un dels models de {providerName}.", + "Continue {service} Setup": "Continua la configuració de {service}", + "Enter your email": "Introduïu la vostra adreça electrònica", + "Invalid email or something went wrong. Please try again.": "L'adreça electrònica no és vàlida o alguna cosa ha anat malament. Torneu-ho a provar.", + "Login link sent to { email }": "S'ha enviat l'enllaç d'inici de sessió a { email }", + "Model Hub": "Centre de models", + "Model Providers": "Proveïdors de models", + "Access models from the cloud or remote servers.": "Accediu a models del núvol o de servidors remots.", + "Models list is pulled automatically": "La llista de models s'obté automàticament", + "Add Provider": "Afegeix un proveïdor", + "Use OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Msty, Remote Ollama, etc.": "Feu servir OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Msty remot, Ollama remot, etc.", + "Get started quickly": "Comenceu ràpidament", + "No download required": "No cal baixar res", + "Delete Provider": "Suprimeix el proveïdor", + "Are you sure you want to delete {providerName}?": "Segur que voleu suprimir {providerName}?", + "Provider deleted": "S'ha suprimit el proveïdor", + "Error": "Error", + "Failed to delete provider": "No s'ha pogut suprimir el proveïdor", + "Copy to Other Workspace": "Copia a un altre espai de treball", + "Copy/Sync to Other Workspaces": "Copia/sincronitza a altres espais de treball", + "Copy this provider to one or more workspaces.": "Copieu aquest proveïdor a un o més espais de treball.", + "Sync this provider to one or more workspaces. If this provider was copied before, it will be updated. If not, it will be added.": "Sincronitzeu aquest proveïdor a un o més espais de treball. Si s'havia copiat abans, s'actualitzarà. Si no, s'afegirà.", + "@:select Workspaces": "Selecciona els espais de treball", + "Available Workspaces": "Espais de treball disponibles", + "Update Provider": "Actualitza el proveïdor", + "New Language Models Provider": "Proveïdor de models de llenguatge nou", + "Edit Language Model Provider": "Edita el proveïdor de models de llenguatge", + "Models Provider": "Proveïdor de models", + "Model ID": "ID del model", + "Model Name": "Nom del model", + "Provider Name": "Nom del proveïdor", + "Provider URL": "URL del proveïdor", + "Provider Token": "Testimoni del proveïdor", + "Save Provider": "Desa el proveïdor", + "@:select Provider": "Selecciona el proveïdor", + "Give it a name (optional)": "Poseu-li un nom (opcional)", + "@:select Models": "Selecciona els models", + "Available Models": "Models disponibles", + "Add Custom Model": "Afegeix un model personalitzat", + "Inference Endpoint (must start with http:// or https://)": "Punt final d'inferència (ha de començar per http:// o https://)", + "Base URL": "URL base", + "Resource Name (will be ignored if Base URL is set)": "Nom del recurs (s'ignorarà si s'ha definit l'URL base)", + "API @:version": "@:version de l'API", + "AWS Region": "Regió d'AWS", + "Access Key ID": "ID de la clau d'accés", + "Secret Access Key": "Clau d'accés secreta", + "Session Token (Optional)": "Testimoni de sessió (opcional)", + "Not all models have been tested with Msty and it may not support all the models available in the provider.": "No tots els models s'han provat amb Msty i pot ser que no admeti tots els models disponibles al proveïdor.", + "Click 'Fetch Models' to retrieve available models from the provider (an API key may be required), or manually add a model below.": "Feu clic a «Recupera els models» per obtenir els models disponibles del proveïdor (pot caldre una clau API), o bé afegiu un model manualment a continuació.", + "Enter your API key to try to retrieve all the available models from {providerName}, or manually add a custom model.": "Introduïu la vostra clau API per intentar obtenir tots els models disponibles de {providerName}, o bé afegiu manualment un model personalitzat.", + "Fetch Models": "Recupera els models", + "All Models": "Tots els models", + "Unselected": "No seleccionat", + "All Purposes": "Totes les finalitats", + "Search models...": "Cerca models...", + "You must have CORS enabled in LM Studio to work with Msty": "Heu de tenir CORS activat a LM Studio per treballar amb Msty", + "Most of the OpenAI compatible providers endpoint need /v1 prefix e.g. https://example.com/v1 If you are running into issues, try appending /v1 to the endpoint.": "La majoria de punts finals de proveïdors compatibles amb OpenAI necessiten el prefix /v1, p. ex. https://example.com/v1. Si teniu problemes, proveu d'afegir /v1 al final del punt final.", + "Models Provider {providerName} added": "S'ha afegit el proveïdor de models {providerName}", + "Models Provider {providerName} updated": "S'ha actualitzat el proveïdor de models {providerName}", + "Failed to add Provider": "No s'ha pogut afegir el proveïdor", + "Failed to update Provider": "No s'ha pogut actualitzar el proveïdor", + "Using long-term credentials for Amazon Bedrock is not recommended.": "No es recomana utilitzar credencials de llarga durada per a Amazon Bedrock.", + "e.g. us-east-1": "p. ex. us-east-1", + "Failed to update provider visibility": "No s'ha pogut actualitzar la visibilitat del proveïdor", + "{provider} is now {visibility}": "Ara {provider} està {visibility}", + "Models Count": "Recompte de models", + "Show in Model Selector": "Mostra al selector de models", + "No models available for this provider": "No hi ha cap model disponible per a aquest proveïdor", + "Model updated successfully": "El model s'ha actualitzat correctament", + "Failed to update model": "No s'ha pogut actualitzar el model", + "Add New": "Afegeix-ne un de nou", + "@:remoteToolsConnector.title Proxy @:localAI Endpoint": "Punt final del proxy d'@:localAI de @:remoteToolsConnector.title", + "Make sure @:remoteToolsConnector.title is running and accessible at the provided URL via Tunneling. Copy and paste the full Tunnel Connection Info with token and URL.": "Assegureu-vos que @:remoteToolsConnector.title s'està executant i és accessible a l'URL proporcionat mitjançant túnel. Copieu i enganxeu la informació completa de connexió del túnel amb el testimoni i l'URL.", + "Make sure Msty Desktop is running with remote connections enabled.": "Assegureu-vos que Msty Desktop s'està executant amb les connexions remotes activades.", + "Learn how to enable remote connections": "Apreneu com activar les connexions remotes", + "This service runs whenever the app itself is up and running. You may have to update the port number if Local AI port got changed. Otherwise, it's best to leave it as is.": "Aquest servei s'executa sempre que l'aplicació està en marxa. És possible que hàgiu d'actualitzar el número de port si el port de la IA local ha canviat. Si no, val més deixar-lo tal com està.", + "When using self-hosted Ollama, make sure Ollama is running and accessible at the provided URL. You must add https://msty.studio to the allowed origins when starting Ollama service.": "Quan feu servir Ollama autoallotjat, assegureu-vos que Ollama s'està executant i és accessible a l'URL proporcionat. Heu d'afegir https://msty.studio als orígens permesos en iniciar el servei d'Ollama.", + "e.g. http://localhost:11434 or https://ollama.com": "p. ex. http://localhost:11434 o https://ollama.com", + "This provider is used to run MLX models on Apple Silicon Macs. The endpoint is auto-corrected to make sure it matches with your local MLX setup. You can change it temporarily if needed.": "Aquest proveïdor s'utilitza per executar models MLX als Mac amb Apple Silicon. El punt final es corregeix automàticament per assegurar que coincideix amb la vostra configuració local d'MLX. El podeu canviar temporalment si cal.", + "This provider is used to run LLaMA.cpp models. Most likely, you won't need to change the default endpoint. If you do, make sure LLaMA.cpp service is running and accessible at the provided URL.": "Aquest proveïdor s'utilitza per executar models de LLaMA.cpp. El més probable és que no calgui canviar el punt final per defecte. Si ho feu, assegureu-vos que el servei de LLaMA.cpp s'està executant i és accessible a l'URL proporcionat.", + "@:localAI Models": "Models d'@:localAI", + "There are no compatible providers available to manage Local Models. Please add at least one provider of type Msty Remote or Ollama Remote to use Local Models.": "No hi ha cap proveïdor compatible disponible per gestionar els models locals. Afegiu com a mínim un proveïdor de tipus Msty remot o Ollama remot per utilitzar els models locals.", + "{count} Active Download | {count} Active Downloads": "{count} baixada activa | {count} baixades actives", + "Featured Models": "Models destacats", + "Installed Models": "Models instal·lats", + "Or Install model by tag e.g. {example}": "O bé instal·leu el model per etiqueta, p. ex. {example}", + "Already Installed": "Ja instal·lat", + "Model {modelName} is already installed": "El model {modelName} ja està instal·lat", + "Abort Installation of {modelName}": "Interromp la instal·lació de {modelName}", + "Installation of {modelName} aborted": "S'ha interromput la instal·lació de {modelName}", + "Uninstall Model": "Desinstal·la el model", + "Are you sure you want to uninstall {modelName}?": "Segur que voleu desinstal·lar {modelName}?", + "Model removed": "S'ha eliminat el model", + "Failed to uninstall model": "No s'ha pogut desinstal·lar el model", + "Model {modelName} is ready to use": "El model {modelName} ja es pot fer servir", + "Failed to install model {modelName}": "No s'ha pogut instal·lar el model {modelName}", + "{modelName} requires a newer version of Local AI. Please update to the latest version from Settings > Local AI > Service Version > ... > Force Update Local AI Service": "{modelName} requereix una versió més recent de la IA local. Actualitzeu a la darrera versió des de Configuració > IA local > Versió del servei > ... > Força l'actualització del servei de IA local", + "Ollama Models": "Models d'Ollama", + "Hugging Face Models": "Models de Hugging Face", + "Search by author, model, or paste a Hugging Face repo URL": "Cerqueu per autor o model, o enganxeu l'URL d'un repositori de Hugging Face", + "Find models by name, author, or URL. Or get started with one of the model families below.": "Trobeu models per nom, autor o URL. O bé comenceu amb una de les famílies de models de sota.", + "Searching for models...": "S'estan cercant models...", + "Import GGUF": "Importa GGUF", + "Import GGUF Model": "Importa un model GGUF", + "Select a GGUF model file from your file system to import into {providerLabel}.": "Seleccioneu un fitxer de model GGUF del vostre sistema de fitxers per importar-lo a {providerLabel}.", + "Active Imports": "Importacions actives", + "No file selected": "No s'ha seleccionat cap fitxer", + "Click the button below to select a GGUF file": "Feu clic al botó de sota per seleccionar un fitxer GGUF", + "Drag and drop a GGUF file here, or click the button below": "Arrossegueu i deixeu anar un fitxer GGUF aquí, o feu clic al botó de sota" +} diff --git a/tools/msty_ca/tr_005.json b/tools/msty_ca/tr_005.json new file mode 100644 index 0000000..5ff3b86 --- /dev/null +++ b/tools/msty_ca/tr_005.json @@ -0,0 +1,221 @@ +{ + "Drop file here": "Deixeu anar el fitxer aquí", + "Release to select file": "Deixeu anar per seleccionar el fitxer", + "Select GGUF File": "Selecciona un fitxer GGUF", + "Choose Different File": "Tria un fitxer diferent", + "Import Model": "Importa el model", + "e.g., my-custom-model": "p. ex., el-meu-model-personalitzat", + "This will be the name you use to reference the model in conversations.": "Aquest serà el nom que fareu servir per referir-vos al model a les converses.", + "Remove file": "Elimina el fitxer", + "Dismiss": "Descarta", + "Use symlink (saves disk space)": "Usa un enllaç simbòlic (estalvia espai de disc)", + "Creates a symbolic link instead of copying the file. Only available for local servers.": "Crea un enllaç simbòlic en comptes de copiar el fitxer. Només està disponible per a servidors locals.", + "Calculating file digest": "S'està calculant el resum del fitxer", + "Uploading file": "S'està pujant el fitxer", + "Creating symlink": "S'està creant l'enllaç simbòlic", + "Creating model": "S'està creant el model", + "Model {modelName} imported successfully": "El model {modelName} s'ha importat correctament", + "File": "Fitxer", + "Uploading": "S'està pujant", + "Completed": "Completat", + "Please select a valid GGUF file": "Seleccioneu un fitxer GGUF vàlid", + "Import Safetensors": "Importa Safetensors", + "Import Safetensors Model": "Importa un model Safetensors", + "Select a directory containing safetensors model weights to import into {providerLabel}. Supported architectures include Gemma, Llama, Mistral, and Phi.": "Seleccioneu un directori que contingui pesos de model safetensors per importar-los a {providerLabel}. Les arquitectures admeses inclouen Gemma, Llama, Mistral i Phi.", + "No directory selected": "No s'ha seleccionat cap directori", + "The directory should contain safetensors files and a config.json": "El directori ha de contenir fitxers safetensors i un config.json", + "Select Safetensors Directory": "Selecciona el directori de Safetensors", + "Select Directory": "Selecciona un directori", + "Choose Different Directory": "Tria un directori diferent", + "Remove directory": "Elimina el directori", + "Scanning directory": "S'està escanejant el directori", + "Processing file {current} of {total}": "S'està processant el fitxer {current} de {total}", + "Creating model from safetensors": "S'està creant el model a partir de safetensors", + "Directory": "Directori", + "Uploading files": "S'estan pujant els fitxers", + "files selected": "fitxers seleccionats", + "Safetensors import is only available in the desktop app": "La importació de safetensors només està disponible a l'aplicació d'escriptori", + "Failed to select directory": "No s'ha pogut seleccionar el directori", + "No valid safetensors files found in the selected directory": "No s'ha trobat cap fitxer safetensors vàlid al directori seleccionat", + "LLaMA.cpp Models": "Models de LLaMA.cpp", + "{count} Active LLaMA.cpp Download | {count} Active LLaMA.cpp Downloads": "{count} baixada activa de LLaMA.cpp | {count} baixades actives de LLaMA.cpp", + "LLaMA.cpp model {modelName} is already installed": "El model de LLaMA.cpp {modelName} ja està instal·lat", + "Model Ready": "Model a punt", + "LLaMA.cpp model {modelName} is ready to use": "El model de LLaMA.cpp {modelName} ja es pot fer servir", + "Installation Failed": "La instal·lació ha fallat", + "Failed to install LLaMA.cpp model {modelName}": "No s'ha pogut instal·lar el model de LLaMA.cpp {modelName}", + "LLaMA.cpp model {modelName} installed": "S'ha instal·lat el model de LLaMA.cpp {modelName}", + "Downloading of LLaMA.cpp model {modelName} was aborted": "S'ha interromput la baixada del model de LLaMA.cpp {modelName}", + "Failed to cancel LLaMA.cpp model download": "No s'ha pogut cancel·lar la baixada del model de LLaMA.cpp", + "Cancelled download of LLaMA.cpp model {modelName}": "S'ha cancel·lat la baixada del model de LLaMA.cpp {modelName}", + "Uninstall Failed": "La desinstal·lació ha fallat", + "Failed to uninstall LLaMA.cpp model {modelName}": "No s'ha pogut desinstal·lar el model de LLaMA.cpp {modelName}", + "Model Removed": "S'ha eliminat el model", + "Uninstalled LLaMA.cpp model {modelName}": "S'ha desinstal·lat el model de LLaMA.cpp {modelName}", + "Uninstall LLaMA.cpp Model": "Desinstal·la el model de LLaMA.cpp", + "Featured LLaMA.cpp Models": "Models destacats de LLaMA.cpp", + "Installed LLaMA.cpp Models": "Models instal·lats de LLaMA.cpp", + "LLaMA.cpp Community Models": "Models de la comunitat de LLaMA.cpp", + "Browse, search, and install GGUF models directly from Hugging Face to your local LLaMA.cpp models folder.": "Navegueu, cerqueu i instal·leu models GGUF directament des de Hugging Face a la vostra carpeta local de models de LLaMA.cpp.", + "Search LLaMA.cpp Community Models": "Cerca models de la comunitat de LLaMA.cpp", + "Search LLaMA.cpp models from Hugging Face": "Cerqueu models de LLaMA.cpp a Hugging Face", + "Find LLaMA.cpp compatible GGUF models or pick one of the featured model families below.": "Trobeu models GGUF compatibles amb LLaMA.cpp o trieu una de les famílies de models destacades de sota.", + "Searching for LLaMA.cpp models...": "S'estan cercant models de LLaMA.cpp...", + "MLX Models": "Models MLX", + "MLX models are only supported on Apple Silicon Macs (M1, M2, M3, M4, etc.). Your current device is not compatible.": "Els models MLX només s'admeten als Mac amb Apple Silicon (M1, M2, M3, M4, etc.). El vostre dispositiu actual no és compatible.", + "There are no compatible MLX providers available. Please add at least one MLX provider to use MLX Models.": "No hi ha cap proveïdor MLX compatible disponible. Afegiu com a mínim un proveïdor MLX per utilitzar els models MLX.", + "{count} Active MLX Download | {count} Active MLX Downloads": "{count} baixada activa d'MLX | {count} baixades actives d'MLX", + "Learn More about MLX": "Més informació sobre MLX", + "Featured MLX Models": "Models MLX destacats", + "Installed MLX Models": "Models MLX instal·lats", + "MLX Model {modelName} is already installed": "El model MLX {modelName} ja està instal·lat", + "Uninstall MLX Model": "Desinstal·la el model MLX", + "MLX Model removed": "S'ha eliminat el model MLX", + "Failed to uninstall MLX model": "No s'ha pogut desinstal·lar el model MLX", + "MLX Model {modelName} is ready to use": "El model MLX {modelName} ja es pot fer servir", + "Failed to install MLX model {modelName}": "No s'ha pogut instal·lar el model MLX {modelName}", + "Downloading of MLX model {modelName} was aborted": "S'ha interromput la baixada del model MLX {modelName}", + "MLX Community Models": "Models de la comunitat d'MLX", + "Search MLX Community Models": "Cerca models de la comunitat d'MLX", + "Search MLX models from HuggingFace mlx-community": "Cerqueu models MLX de mlx-community de HuggingFace", + "Find MLX optimized models from HuggingFace. Or get started with one of the model families below.": "Trobeu models optimitzats per a MLX de HuggingFace. O bé comenceu amb una de les famílies de models de sota.", + "Searching for MLX models...": "S'estan cercant models MLX...", + "Sticky Prompt": "Indicació fixada", + "Disable Sticky Prompt": "Desactiva la indicació fixada", + "Edit Sticky Prompt": "Edita la indicació fixada", + "When a 'sticky' prompt is pinned, it is added to the beginning of each new message while ignoring any previous ones. This effectively makes the conversation focused on one active context. System prompt is always included in the context.": "Quan es fixa una indicació «fixada», s'afegeix al començament de cada missatge nou i s'ignoren les anteriors. Així la conversa es concentra en un únic context actiu. La indicació del sistema sempre s'inclou al context.", + "@:context Shield": "Escut de context", + "Enable @:contextShield.title": "Activa l'@:contextShield.title", + "Enable @:contextShield.title{'.'} Hold Option/Alt to @:contextShield.title all synced splits.": "Activa l'@:contextShield.title{'.'} Mantingueu premut Opció/Alt per aplicar-lo a totes les divisions sincronitzades.", + "Remove @:contextShield.title": "Treu l'@:contextShield.title", + "Disable @:contextShield.title{'.'} Hold Option/Alt to remove @:contextShield.title from all synced splits.": "Desactiva l'@:contextShield.title{'.'} Mantingueu premut Opció/Alt per treure'l de totes les divisions sincronitzades.", + "Break @:context": "Trenca el context", + "Custom @:context": "Context personalitzat", + "Generate @:context @:summary": "Genera el resum del context", + "@:context @:summary": "Resum del context", + "Edit @:context @:summary": "Edita el resum del context", + "Regenerate @:context @:summary": "Regenera el resum del context", + "Clear @:context @:summary": "Esborra el resum del context", + "This summary is generated from the context of the conversations above and is included in the context when generating new messages below this shield.": "Aquest resum es genera a partir del context de les converses de dalt i s'inclou al context en generar missatges nous per sota d'aquest escut.", + "@:contextShield.title with @:summary": "@:contextShield.title amb resum", + "Data": "Dades", + "Advanced Configurations": "Configuracions avançades", + "Application Info": "Informació de l'aplicació", + "App Version": "Versió de l'aplicació", + "The latest updates are checked periodically and you will be notified when a new update is available. You can also manually check for updates, which will then automatically install any available updates.": "Les darreres actualitzacions es comproven periòdicament i se us notificarà quan n'hi hagi una de nova disponible. També podeu comprovar les actualitzacions manualment, cosa que instal·larà automàticament les que hi hagi disponibles.", + "Check and Apply Updates": "Comprova i aplica les actualitzacions", + "Enable Auto Updates": "Activa les actualitzacions automàtiques", + "Disable Auto Updates": "Desactiva les actualitzacions automàtiques", + "View Changelog": "Mostra el registre de canvis", + "Checking for updates...": "S'estan comprovant les actualitzacions...", + "Failed to check for updates": "No s'han pogut comprovar les actualitzacions", + "Auto updates enabled": "S'han activat les actualitzacions automàtiques", + "Auto updates disabled": "S'han desactivat les actualitzacions automàtiques", + "New update available": "Hi ha una actualització nova disponible", + "Downloading update...": "S'està baixant l'actualització...", + "You're on the latest version": "Teniu la darrera versió", + "Models Info": "Informació dels models", + "Update your local model metadata. This information includes details about each model, but not the model files themselves. This applies to both locally stored and online models.": "Actualitzeu les metadades dels vostres models locals. Aquesta informació inclou detalls de cada model, però no els fitxers del model. S'aplica tant als models emmagatzemats localment com als models en línia.", + "Fetch Latest Models Info": "Recupera la darrera informació dels models", + "Models info updated successfully": "La informació dels models s'ha actualitzat correctament", + "Failed to update models info": "No s'ha pogut actualitzar la informació dels models", + "App Settings": "Configuració de l'aplicació", + "Resetting app settings to their defaults can help resolve potential issues. This will restore the default user preferences, such as appearance and models path, but will not delete any data, including chats or downloaded/imported models.": "Restablir la configuració de l'aplicació als valors per defecte pot ajudar a resoldre possibles problemes. Això restaurarà les preferències per defecte de l'usuari, com ara l'aparença i el camí dels models, però no suprimirà cap dada, inclosos els xats o els models baixats o importats.", + "Reset App Settings": "Restableix la configuració de l'aplicació", + "Are you sure you want to reset all app settings to their defaults? This will restore default preferences but won't delete your data.": "Segur que voleu restablir tota la configuració de l'aplicació als valors per defecte? Això restaurarà les preferències per defecte però no suprimirà les vostres dades.", + "App settings reset successfully": "La configuració de l'aplicació s'ha restablert correctament", + "Failed to reset app settings": "No s'ha pogut restablir la configuració de l'aplicació", + "Data Paths": "Camins de les dades", + "All data, including models, conversations, settings, and logs, are stored locally on your device. Only modify the contents of these directories if you are familiar with the application's file structure.": "Totes les dades, inclosos els models, les converses, la configuració i els registres, s'emmagatzemen localment al vostre dispositiu. Modifiqueu el contingut d'aquests directoris només si coneixeu l'estructura de fitxers de l'aplicació.", + "App Data": "Dades de l'aplicació", + "App Logs": "Registres de l'aplicació", + "Open in Finder": "Obre al Finder", + "Help & Discussions": "Ajuda i debats", + "Connect with our community on Discord to get support, share your feedback, and stay informed.": "Connecteu amb la nostra comunitat a Discord per rebre assistència, compartir els vostres comentaris i estar al dia.", + "Say Hi!": "Saludeu!", + "View Docs": "Mostra la documentació", + "Log Viewer": "Visualitzador de registres", + "View and analyze application logs in real-time. Use filters and search to troubleshoot issues efficiently.": "Visualitzeu i analitzeu els registres de l'aplicació en temps real. Feu servir els filtres i la cerca per resoldre problemes de manera eficient.", + "Search Logs...": "Cerca als registres...", + "Refresh Logs": "Actualitza els registres", + "Stop Auto-Refresh": "Atura l'actualització automàtica", + "Enable Auto-Refresh": "Activa l'actualització automàtica", + "Stop Auto-Scroll": "Atura el desplaçament automàtic", + "Resume Auto-Scroll": "Reprèn el desplaçament automàtic", + "Copy Logs to Clipboard": "Copia els registres al porta-retalls", + "Download Logs": "Baixa els registres", + "Clear Logs Display": "Esborra la visualització dels registres", + "Clear Logs File": "Esborra el fitxer de registres", + "Show All Logs": "Mostra tots els registres", + "Clear Log File": "Esborra el fitxer de registre", + "Are you sure you want to clear the log file? This will permanently delete all log entries.": "Segur que voleu esborrar el fitxer de registre? Això suprimirà permanentment totes les entrades del registre.", + "Loading logs...": "S'estan carregant els registres...", + "No logs available": "No hi ha cap registre disponible", + "No logs match the current filters": "Cap registre coincideix amb els filtres actuals", + "{count} total line | {count} total lines": "{count} línia en total | {count} línies en total", + "{count} filtered line | {count} filtered lines": "{count} línia filtrada | {count} línies filtrades", + "Logs copied to clipboard": "S'han copiat els registres al porta-retalls", + "Logs downloaded successfully": "Els registres s'han baixat correctament", + "Log file cleared successfully": "El fitxer de registre s'ha esborrat correctament", + "Failed to load logs": "No s'han pogut carregar els registres", + "Failed to copy logs": "No s'han pogut copiar els registres", + "Failed to download logs": "No s'han pogut baixar els registres", + "Failed to clear logs": "No s'han pogut esborrar els registres", + "All Levels": "Tots els nivells", + "Info": "Informació", + "Debug": "Depuració", + "Notifications": "Notificacions", + "Review and manage application notifications including errors, warnings, and info events.": "Reviseu i gestioneu les notificacions de l'aplicació, inclosos errors, avisos i esdeveniments informatius.", + "Search Notifications...": "Cerca a les notificacions...", + "Searching all notifications in database": "S'està cercant a totes les notificacions de la base de dades", + "Refresh Notifications": "Actualitza les notificacions", + "Auto-Refresh Enabled": "Actualització automàtica activada", + "Copy All to Clipboard": "Copia-ho tot al porta-retalls", + "Copy Notification": "Copia la notificació", + "Download Notifications": "Baixa les notificacions", + "Clear All Notifications": "Esborra totes les notificacions", + "Clear Notifications": "Esborra les notificacions", + "Are you sure you want to permanently delete all notifications? This action cannot be undone.": "Segur que voleu suprimir permanentment totes les notificacions? Aquesta acció no es pot desfer.", + "Loading notifications...": "S'estan carregant les notificacions...", + "Loading more...": "S'està carregant més...", + "End of list": "Final de la llista", + "No notifications available": "No hi ha cap notificació disponible", + "{count} notification | {count} notifications": "{count} notificació | {count} notificacions", + "Showing {count}": "Es mostren {count}", + "Notification copied to clipboard": "S'ha copiat la notificació al porta-retalls", + "Notifications downloaded successfully": "Les notificacions s'han baixat correctament", + "Notifications cleared successfully": "Les notificacions s'han esborrat correctament", + "Notification deleted successfully": "La notificació s'ha suprimit correctament", + "Failed to load notifications": "No s'han pogut carregar les notificacions", + "Failed to copy notification": "No s'ha pogut copiar la notificació", + "Failed to download notifications": "No s'han pogut baixar les notificacions", + "Failed to clear notifications": "No s'han pogut esborrar les notificacions", + "Failed to delete notification": "No s'ha pogut suprimir la notificació", + "Purge Notifications": "Purga les notificacions", + "Older than 1 day": "De fa més d'1 dia", + "Older than 7 days": "De fa més de 7 dies", + "Older than 15 days": "De fa més de 15 dies", + "Older than 30 days": "De fa més de 30 dies", + "Are you sure you want to delete notifications older than {days} days? This action cannot be undone.": "Segur que voleu suprimir les notificacions de fa més de {days} dies? Aquesta acció no es pot desfer.", + "Purge": "Purga", + "Notifications purged successfully": "Les notificacions s'han purgat correctament", + "Failed to purge notifications": "No s'han pogut purgar les notificacions", + "Errors": "Errors", + "Warnings": "Avisos", + "Show extra items": "Mostra els elements addicionals", + "Hide extra items": "Amaga els elements addicionals", + "Models & Prompts": "Models i indicacions", + "Personas & Tools": "Personalitats i eines", + "Knowledge & Insights": "Coneixement i informació", + "System": "Sistema", + "Version {version}": "Versió {version}", + "Restart to Apply Updates": "Reinicia per aplicar les actualitzacions", + "Restart Now": "Reinicia ara", + "Downloading Update...": "S'està baixant l'actualització...", + "Opening Changelog...": "S'està obrint el registre de canvis...", + "Update error - click for details": "Error d'actualització: feu clic per veure'n els detalls", + "Update ready - restart to apply": "Actualització a punt: reinicieu per aplicar-la", + "Downloading update... {percent}%": "S'està baixant l'actualització... {percent}%", + "Update Error": "Error d'actualització", + "An error occurred while updating: {error}": "S'ha produït un error en actualitzar: {error}" +} diff --git a/tools/msty_ca/tr_006.json b/tools/msty_ca/tr_006.json new file mode 100644 index 0000000..3f9343c --- /dev/null +++ b/tools/msty_ca/tr_006.json @@ -0,0 +1,217 @@ +{ + "Download Manually": "Baixa manualment", + "Show in Finder": "Mostra al Finder", + "Show in File Explorer": "Mostra a l'Explorador de fitxers", + "Show in File Manager": "Mostra al gestor de fitxers", + "Settings": "Configuració", + "General": "General", + "Default Prompts": "Indicacions per defecte", + "These prompts shape how titles are generated, search queries are built, knowledge is retrieved, and context is summarized. Changes are saved to this device’s global settings (master database) and apply across all workspaces (not per workspace).": "Aquestes indicacions determinen com es generen els títols, es construeixen les consultes de cerca, es recupera el coneixement i es resumeix el context. Els canvis es desen a la configuració global d'aquest dispositiu (base de dades mestra) i s'apliquen a tots els espais de treball (no per espai de treball).", + "Available Prompts": "Indicacions disponibles", + "Customized": "Personalitzat", + "{count} customized": "{count} personalitzades", + "Using Custom": "S'usa la personalitzada", + "Using Default": "S'usa la predeterminada", + "Click to edit prompt": "Feu clic per editar la indicació", + "Variables": "Variables", + "Last modified": "Darrera modificació", + "Select a prompt to customize": "Seleccioneu una indicació per personalitzar-la", + "Clear Content": "Esborra el contingut", + "Reset to Default": "Restableix al valor per defecte", + "Insert from Library": "Insereix des de la biblioteca", + "Save Changes": "Desa els canvis", + "Discard Changes": "Descarta els canvis", + "Content Generation": "Generació de contingut", + "Search & Synthesis": "Cerca i síntesi", + "Analysis & Extraction": "Anàlisi i extracció", + "License and Access": "Llicència i accés", + "Font @:size": "@:size de la lletra", + "Real-Time Data Search": "Cerca de dades en temps real", + "Default RTD Provider": "Proveïdor de RTD per defecte", + "Choose the default Real-Time Data search provider that will be used when creating new conversations.": "Trieu el proveïdor de cerca de dades en temps real per defecte que s'utilitzarà en crear converses noves.", + "{provider} set as default RTD provider": "{provider} s'ha establert com a proveïdor de RTD per defecte", + "Failed to save default RTD provider": "No s'ha pogut desar el proveïdor de RTD per defecte", + "No RTD providers available": "No hi ha cap proveïdor de RTD disponible", + "Configure advanced options for": "Configura les opcions avançades de", + "Configuration saved for {provider}": "S'ha desat la configuració de {provider}", + "Default RTD Mode": "Mode de RTD per defecte", + "Set the default RTD mode for new conversations.": "Establiu el mode de RTD per defecte per a les converses noves.", + "New conversations will use push mode by default.": "Les converses noves utilitzaran el mode d'emissió (push) per defecte.", + "New conversations will use pull mode by default.": "Les converses noves utilitzaran el mode de recepció (pull) per defecte.", + "Pull mode requires an Aurum plan.": "El mode de recepció (pull) requereix un pla Aurum.", + "Failed to save default RTD mode": "No s'ha pogut desar el mode de RTD per defecte", + "Teams": "Equips", + "Appearance": "Aparença", + "Auto-archive inactive conversations": "Arxiva automàticament les converses inactives", + "Automatically move inactive conversations to Archive after the selected number of days. Use Enable auto-archive to turn it on. Run archive now performs a one-time cleanup using the current day threshold.": "Mou automàticament les converses inactives a l'arxiu després del nombre de dies seleccionat. Feu servir «Activa l'arxivament automàtic» per activar-ho. «Arxiva ara» fa una neteja puntual amb el llindar de dies actual.", + "Enable auto-archive": "Activa l'arxivament automàtic", + "Disable auto-archive": "Desactiva l'arxivament automàtic", + "Archived conversations stay accessible from the Archive section.": "Les converses arxivades continuen sent accessibles des de la secció d'arxiu.", + "Archive after": "Arxiva després de", + "day | days": "dia | dies", + "Enable or disable from the menu": "Activeu-ho o desactiveu-ho des del menú", + "Run archive now": "Arxiva ara", + "Enable auto-archive and set days > 0 to run": "Activeu l'arxivament automàtic i establiu dies > 0 per executar-lo", + "Auto-archive set to {days} day | Auto-archive set to {days} days": "L'arxivament automàtic s'ha establert a {days} dia | L'arxivament automàtic s'ha establert a {days} dies", + "Auto-archive enabled": "S'ha activat l'arxivament automàtic", + "Auto-archive disabled": "S'ha desactivat l'arxivament automàtic", + "Setup {service}": "Configura {service}", + "Workspace Lock & Secrets Encryption": "Bloqueig de l'espai de treball i xifratge de secrets", + "Lock your workspace with a passphrase so sensitive settings and API keys stay hidden until you unlock. Unlock once per session, rotate the passphrase anytime, or turn protection off if you change your mind.": "Bloquegeu el vostre espai de treball amb una frase de pas perquè la configuració sensible i les claus API quedin amagades fins que el desbloquegeu. Desbloquegeu-lo un cop per sessió, canvieu la frase de pas quan vulgueu o desactiveu la protecció si canvieu d'opinió.", + "Passphrase-based encryption is experimental. Please keep a backup of your secrets before enabling.": "El xifratge basat en frase de pas és experimental. Conserveu una còpia de seguretat dels vostres secrets abans d'activar-lo.", + "Status:": "Estat:", + "Locked": "Bloquejat", + "Unlocked": "Desbloquejat", + "Lock": "Bloqueja", + "Unlock": "Desbloqueja", + "Workspace is protected. Unlock with your passphrase.": "L'espai de treball està protegit. Desbloquegeu-lo amb la vostra frase de pas.", + "Unprotected": "Sense protecció", + "Workspace lock is not configured. Set a passphrase first.": "El bloqueig de l'espai de treball no està configurat. Definiu primer una frase de pas.", + "Enter Passphrase": "Introduïu la frase de pas", + "Workspace unlocked for this session": "L'espai de treball s'ha desbloquejat per a aquesta sessió", + "Workspace locked": "S'ha bloquejat l'espai de treball", + "Disable Encryption": "Desactiva el xifratge", + "Enter passphrase to decrypt and disable encryption.": "Introduïu la frase de pas per desxifrar i desactivar el xifratge.", + "Disable Protection": "Desactiva la protecció", + "Enter your passphrase to disable workspace protection. This will remove encryption from your stored secrets and API keys.": "Introduïu la vostra frase de pas per desactivar la protecció de l'espai de treball. Això eliminarà el xifratge dels vostres secrets i claus API emmagatzemats.", + "Are you sure you want to disable workspace protection? This will permanently decrypt all encrypted secrets and API keys in your database.": "Segur que voleu desactivar la protecció de l'espai de treball? Això desxifrarà permanentment tots els secrets i claus API xifrats de la vostra base de dades.", + "Enable Protection": "Activa la protecció", + "Set Passphrase": "Defineix la frase de pas", + "Important: Save your passphrase safely and securely. You cannot recover a forgotten passphrase, and without it, you will lose access to your encrypted workspace data.": "Important: deseu la vostra frase de pas de manera segura. No es pot recuperar una frase de pas oblidada i, sense ella, perdreu l'accés a les dades xifrades del vostre espai de treball.", + "Change Passphrase": "Canvia la frase de pas", + "Important: Save your new passphrase safely and securely. You cannot recover a forgotten passphrase, and without it, you will lose access to your encrypted workspace data.": "Important: deseu la vostra nova frase de pas de manera segura. No es pot recuperar una frase de pas oblidada i, sense ella, perdreu l'accés a les dades xifrades del vostre espai de treball.", + "Update Passphrase": "Actualitza la frase de pas", + "Passphrase": "Frase de pas", + "Current passphrase": "Frase de pas actual", + "New passphrase": "Frase de pas nova", + "Confirm passphrase": "Confirmeu la frase de pas", + "Passphrase must be at least 8 characters": "La frase de pas ha de tenir com a mínim 8 caràcters", + "Passphrases do not match": "Les frases de pas no coincideixen", + "Invalid input": "Entrada no vàlida", + "Passphrase configured": "S'ha configurat la frase de pas", + "Failed to configure passphrase": "No s'ha pogut configurar la frase de pas", + "Passphrase updated": "S'ha actualitzat la frase de pas", + "Failed to update passphrase": "No s'ha pogut actualitzar la frase de pas", + "Decrypt stored secrets and remove workspace protection?": "Voleu desxifrar els secrets emmagatzemats i treure la protecció de l'espai de treball?", + "Encryption disabled": "S'ha desactivat el xifratge", + "Failed to disable encryption": "No s'ha pogut desactivar el xifratge", + "Incorrect passphrase": "La frase de pas és incorrecta", + "{workspaceName} is locked": "{workspaceName} està bloquejat", + "Can't unlock this workspace?": "No podeu desbloquejar aquest espai de treball?", + "Switch back to {workspaceName} so you can keep working.": "Torneu a {workspaceName} per continuar treballant.", + "Switch back to {workspaceName}": "Torna a {workspaceName}", + "Unable to switch workspaces. Please try again.": "No s'han pogut canviar els espais de treball. Torneu-ho a provar.", + "Select the button below to export a copy of your data for backup or transfer to another device. The exported data includes conversations, prompts, models, settings, and other application data across all Workspaces.": "Seleccioneu el botó de sota per exportar una còpia de les vostres dades com a còpia de seguretat o per transferir-les a un altre dispositiu. Les dades exportades inclouen converses, indicacions, models, configuració i altres dades de l'aplicació de tots els espais de treball.", + "@:data Backup Reminder Interval": "Interval de recordatori de còpia de seguretat de les dades", + "How often to remind you to backup your data.": "Amb quina freqüència recordar-vos que feu una còpia de seguretat de les dades.", + "Danger Zone": "Zona de perill", + "Actions in this section are irreversible and may result in data loss. We recommend exporting a copy of your data before performing any actions here.": "Les accions d'aquesta secció són irreversibles i poden provocar pèrdua de dades. Us recomanem exportar una còpia de les vostres dades abans de fer cap acció aquí.", + "Clear Data": "Esborra les dades", + "Permanently delete all application data including conversations, prompts, models, settings, and other related information across all Workspaces.": "Suprimeix permanentment totes les dades de l'aplicació, incloses converses, indicacions, models, configuració i altra informació relacionada de tots els espais de treball.", + "Restore @:data from Backup": "Restaura les dades des d'una còpia de seguretat", + "Import a previously exported data zip file to restore conversations, prompts, models, settings, and other application data across all Workspaces. This action will overwrite all existing data.": "Importeu un fitxer zip de dades exportat prèviament per restaurar converses, indicacions, models, configuració i altres dades de l'aplicació de tots els espais de treball. Aquesta acció sobreescriurà totes les dades existents.", + "Migrate": "Migra", + "Msty App 1.x to Studio Migration": "Migració de l'Msty App 1.x a Studio", + "Step 2: Select Items to Migrate": "Pas 2: Seleccioneu els elements a migrar", + "Select Items": "Selecciona els elements", + "You can import Prompt Library Prompts, Remote Model Providers, Conversations, and Attachments into the current workspace you are in. If you want to import into a different workspace, please switch to that workspace first.": "Podeu importar indicacions de la biblioteca d'indicacions, proveïdors de models remots, converses i adjuncions a l'espai de treball on us trobeu actualment. Si voleu importar-les a un espai de treball diferent, canvieu-hi primer.", + "Migrating remote model providers will NOT carry over API keys, they must be re-entered. Some legacy models may not be supported in Studio.": "En migrar els proveïdors de models remots NO es transferiran les claus API; cal tornar-les a introduir. És possible que alguns models antics no s'admetin a Studio.", + "If migrating attachments, first zip the attachments folder. You can migrate attachments separately after migrating the database or together with the database.": "Si migreu adjuncions, comprimiu primer la carpeta d'adjuncions en un zip. Podeu migrar les adjuncions per separat després de migrar la base de dades o juntament amb la base de dades.", + "Database Migration": "Migració de la base de dades", + "Step 1: Select Msty App 1.x Database File": "Pas 1: Seleccioneu el fitxer de base de dades de l'Msty App 1.x", + "Drag and drop your Msty Database file": "Arrossegueu i deixeu anar el vostre fitxer de base de dades de Msty", + "Msty App 1.x database files are typically named `msty.db`": "Els fitxers de base de dades de l'Msty App 1.x solen anomenar-se `msty.db`", + "Attachments Migration": "Migració de les adjuncions", + "Migrate Separately": "Migra per separat", + "Step 3: Add Zipped Attachments Folder": "Pas 3: Afegiu la carpeta d'adjuncions comprimida", + "Successfully migrated the attachments": "Les adjuncions s'han migrat correctament", + "Failed to migrate the attachments": "No s'han pogut migrar les adjuncions", + "Drag and drop your zipped attachments folder": "Arrossegueu i deixeu anar la vostra carpeta d'adjuncions comprimida", + "Zip the entire attachments folder from Msty App 1.x. After selecting, you can migrate separately if adding after database migration.": "Comprimiu en un zip tota la carpeta d'adjuncions de l'Msty App 1.x. Després de seleccionar-la, podeu migrar-la per separat si l'afegiu després de la migració de la base de dades.", + "Please select a database file and at least one table to migrate": "Seleccioneu un fitxer de base de dades i com a mínim una taula per migrar", + "Missing Data": "Falten dades", + "Migrate your data from Msty App 1.x into Studio. Imported data will not overwrite existing data.": "Migreu les vostres dades de l'Msty App 1.x a Studio. Les dades importades no sobreescriuran les dades existents.", + "Successfully migrated {item}": "S'ha migrat {item} correctament", + "Failed to migrate {item}": "No s'ha pogut migrar {item}", + "Migration In Progress...": "Migració en curs...", + "{item} Migration Completed": "Migració de {item} completada", + "{item} Migration Failed": "La migració de {item} ha fallat", + "Migrating {item}...": "S'està migrant {item}...", + "Migration Error": "Error de migració", + "View Details": "Mostra els detalls", + "Message": "Missatge", + "Cause": "Causa", + "Color Preference": "Preferència de color", + "Accent Color": "Color d'accent", + "Dark": "Fosc", + "Light": "Clar", + "Default | Defaults": "Predeterminat | Predeterminats", + "Base Color": "Color base", + "Emerald": "Maragda", + "Lime": "Llima", + "Green": "Verd", + "Red": "Vermell", + "Orange": "Taronja", + "Amber": "Ambre", + "Yellow": "Groc", + "Teal": "Xarxet", + "Cyan": "Cian", + "Sky": "Cel", + "Indigo": "Indi", + "Violet": "Violeta", + "Purple": "Porpra", + "Fuchsia": "Fúcsia", + "Pink": "Rosa", + "Rose": "Rosat", + "Slate": "Pissarra", + "Gray": "Gris", + "Zinc": "Zinc", + "Stone": "Pedra", + "Sandy": "Sorra", + "Lighter": "Més clar", + "Code Theme": "Tema del codi", + "RTL Support": "Compatibilitat amb RTL", + "Enable right-to-left layouts for languages like Arabic, Hebrew, and Persian. The entire workspace updates instantly when toggled.": "Activeu les disposicions de dreta a esquerra per a llengües com l'àrab, l'hebreu i el persa. Tot l'espai de treball s'actualitza a l'instant en activar-ho.", + "Enable RTL Layout": "Activa la disposició RTL", + "Right-to-left layout is active across the app.": "La disposició de dreta a esquerra està activa a tota l'aplicació.", + "The app is currently using a left-to-right layout.": "L'aplicació utilitza actualment una disposició d'esquerra a dreta.", + "Mini Map": "Minimapa", + "Enable the inline mini map message navigator with branch previews. When disabled, a simpler Top/Bottom navigator is used.": "Activeu el navegador de missatges en minimapa amb previsualitzacions de branques. Quan està desactivat, s'utilitza un navegador més senzill de dalt/baix.", + "Branch Breadcrumbs": "Ruta de navegació de branques", + "Show a compact navigation bar at the top of conversations when branches exist.": "Mostra una barra de navegació compacta a la part superior de les converses quan hi ha branques.", + "Spellcheck": "Correcció ortogràfica", + "Enable or disable spellcheck for text input fields. Disabling can help when working with multiple languages or technical content. Your operating system's spell checker settings may override these preferences. Restart the application after changing this setting for the changes to take full effect.": "Activeu o desactiveu la correcció ortogràfica als camps d'entrada de text. Desactivar-la pot ajudar quan treballeu amb diverses llengües o contingut tècnic. La configuració del corrector ortogràfic del vostre sistema operatiu pot prevaler sobre aquestes preferències. Reinicieu l'aplicació després de canviar aquest paràmetre perquè els canvis tinguin efecte complet.", + "Language & Localization": "Llengua i localització", + "Switch between interface languages, preview developer mode, or import a temporary locale file. If you want to contribute a translation, please visit https://github.com/cloudstack-llc/msty-studio-i18n": "Canvieu entre les llengües de la interfície, previsualitzeu el mode de desenvolupador o importeu un fitxer de configuració regional temporal. Si voleu contribuir amb una traducció, visiteu https://github.com/cloudstack-llc/msty-studio-i18n", + "Language": "Llengua", + "Download Template": "Baixa la plantilla", + "Download this built-in locale JSON file.": "Baixa aquest fitxer JSON de configuració regional integrat.", + "Download the current custom locale you imported.": "Baixa la configuració regional personalitzada actual que heu importat.", + "Download an empty template based on the base locale.": "Baixa una plantilla buida basada en la configuració regional base.", + "Import Locale": "Importa una configuració regional", + "Imported locales last only until you restart or refresh the app.": "Les configuracions regionals importades només duren fins que reinicieu o actualitzeu l'aplicació.", + "Locale Imported": "S'ha importat la configuració regional", + "Now using {code}. Review the interface to confirm translations.": "Ara s'utilitza {code}. Reviseu la interfície per confirmar les traduccions.", + "We couldn't import that locale file. Make sure it's valid JSON based on the template.": "No hem pogut importar aquest fitxer de configuració regional. Assegureu-vos que sigui un JSON vàlid basat en la plantilla.", + "Developer Mode": "Mode de desenvolupador", + "Security": "Seguretat", + "Configure security settings for the application": "Configureu els paràmetres de seguretat de l'aplicació", + "Disable Web Security": "Desactiva la seguretat web", + "This may help you resolve some CORS related issue. However, this is not recommended and may expose your application to security risks. Disable it only if you know what you are doing. You must restart the app for this setting to take effect.": "Això us pot ajudar a resoldre algun problema relacionat amb CORS. Tanmateix, no es recomana i pot exposar l'aplicació a riscos de seguretat. Desactiveu-la només si sabeu què feu. Heu de reiniciar l'aplicació perquè aquest paràmetre tingui efecte.", + "Apply & Restart": "Aplica i reinicia", + "Font Style": "Estil de la lletra", + "Rendering Modules": "Mòduls de renderització", + "@:select Rendering Modules": "Selecciona els mòduls de renderització", + "Allow Msty Studio web to connect to this device to run remote tools and access local models. This service must be actively running to allow remote connections.": "Permet que el web de Msty Studio es connecti a aquest dispositiu per executar eines remotes i accedir a models locals. Aquest servei s'ha d'estar executant activament per permetre les connexions remotes.", + "Enable Service": "Activa el servei", + "Connection Token": "Testimoni de connexió", + "Remember Token": "Recorda el testimoni", + "Enter a strong connection token": "Introduïu un testimoni de connexió fort", + "This token is used to authenticate the connection between Msty Studio and this app when connecting remotely. You can regenerate it at any time to invalidate the previous token. Make sure to use a strong token and keep it secret.": "Aquest testimoni s'utilitza per autenticar la connexió entre Msty Studio i aquesta aplicació en connectar-se remotament. El podeu regenerar en qualsevol moment per invalidar el testimoni anterior. Assegureu-vos d'utilitzar un testimoni fort i mantingueu-lo en secret.", + "Remote Service is now active": "El servei remot ja està actiu", + "Error Enabling Connector": "Error en activar el connector", + "Failed to enable Remote Service. Please check the logs for more details": "No s'ha pogut activar el servei remot. Reviseu els registres per a més detalls", + "Copy Local URL": "Copia l'URL local", + "Copy Tunnel URL": "Copia l'URL del túnel", + "Remote Service is now disabled": "El servei remot ja està desactivat" +} diff --git a/tools/msty_ca/tr_007.json b/tools/msty_ca/tr_007.json new file mode 100644 index 0000000..7df774e --- /dev/null +++ b/tools/msty_ca/tr_007.json @@ -0,0 +1,216 @@ +{ + "Enable Tunneling (Experimental)": "Activa el túnel (experimental)", + "Set up @:localAIService to run AI models locally on your device.": "Configureu @:localAIService per executar models d'IA localment al vostre dispositiu.", + "Models Location": "Ubicació dels models", + "Configure where your Local AI models are stored.": "Configureu on s'emmagatzemen els vostres models de IA local.", + "Use Existing Models": "Usa els models existents", + "Use models you already have without downloading them again.": "Useu els models que ja teniu sense tornar-los a baixar.", + "@:service Configurations": "Configuracions del servei", + "These configurations are applied to the @:localAIService when it starts. @:localAIService will automatically restart after you save any changes.": "Aquestes configuracions s'apliquen a @:localAIService quan s'inicia. @:localAIService es reiniciarà automàticament després de desar qualsevol canvi.", + "Configure Port Number": "Configura el número de port", + "Port number for @:localAIService{'.'} Leave empty to use default.": "Número de port de @:localAIService{'.'} Deixeu-ho buit per fer servir el valor per defecte.", + "Maximum Parallel Chats": "Màxim de xats en paral·lel", + "Maximum number of concurrent chat sessions (when using split mode).": "Nombre màxim de sessions de xat simultànies (quan s'utilitza el mode dividit).", + "Maximum Loaded Models": "Màxim de models carregats", + "Maximum number of LLMs loaded at the same time. Keeping more models in memory speeds up initial responses but uses more system resources.": "Nombre màxim d'LLM carregats alhora. Mantenir més models a la memòria accelera les respostes inicials però consumeix més recursos del sistema.", + "Enable Network Access": "Activa l'accés a la xarxa", + "Allow other devices on your network to access this @:localAIService through this device’s IP address.": "Permet que altres dispositius de la vostra xarxa accedeixin a @:localAIService a través de l'adreça IP d'aquest dispositiu.", + "Allowed Network Origins": "Orígens de xarxa permesos", + "List permitted network origins here (comma-separated). Each entry must begin with http:// or https://. Use * to permit all origins.": "Indiqueu aquí els orígens de xarxa permesos (separats per comes). Cada entrada ha de començar per http:// o https://. Feu servir * per permetre tots els orígens.", + "e.g. https://msty.studio, http://localhost:3000, *": "p. ex. https://msty.studio, http://localhost:3000, *", + "Allow Access from Msty Studio": "Permet l'accés des de Msty Studio", + "Allow connections from Msty Studio Web to this app so it can access @:localAIService{'.'}": "Permet les connexions des del web de Msty Studio a aquesta aplicació perquè pugui accedir a @:localAIService{'.'}", + "Capture @:service Logs": "Captura els registres del servei", + "Enable logging to capture service data for debugging. Use this option only when necessary.": "Activeu el registre per capturar dades del servei per a la depuració. Feu servir aquesta opció només quan calgui.", + "Enter valid JSON to set environment variables for the @:localAIService{'.'}": "Introduïu un JSON vàlid per definir les variables d'entorn de @:localAIService{'.'}", + "You have unsaved changes in the @:localAIService Configurations. Once you save, @:localAIService will be restarted with the new configurations.": "@:localAIService té canvis de configuració sense desar. Un cop els deseu, @:localAIService es reiniciarà amb les noves configuracions.", + "Save Changes and Restart Service": "Desa els canvis i reinicia el servei", + "@:localAIService Configurations saved and service restarted": "S'han desat les configuracions de @:localAIService i s'ha reiniciat el servei", + "Failed to save @:localAIService Configurations. Please check the logs for more details.": "No s'han pogut desar les configuracions del servei. Reviseu els registres per a més detalls.", + "@:model Configurations": "Configuracions del model", + "These configurations get applied to all models during chat sessions.": "Aquestes configuracions s'apliquen a tots els models durant les sessions de xat.", + "Model Keep-Alive Timeout": "Temps d'espera de manteniment del model", + "Time (in minutes) after which the model will be unloaded from memory if not used.": "Temps (en minuts) després del qual el model es descarregarà de la memòria si no s'utilitza.", + "Enter valid JSON to pass extra parameters to models during chat sessions.": "Introduïu un JSON vàlid per passar paràmetres addicionals als models durant les sessions de xat.", + "You have unsaved changes in the @:settings.localAI.modelConfigurations.title{'.'} Make sure to save them before starting a new chat session.": "Teniu canvis sense desar a @:settings.localAI.modelConfigurations.title{'.'} Assegureu-vos de desar-los abans d'iniciar una sessió de xat nova.", + "@:settings.localAI.modelConfigurations.title saved": "S'ha desat @:settings.localAI.modelConfigurations.title", + "Failed to save @:settings.localAI.modelConfigurations.title. Please check the logs for more details.": "No s'han pogut desar les configuracions del model. Reviseu els registres per a més detalls.", + "Open Local AI Settings": "Obre la configuració de la IA local", + "Manage Local AI Models": "Gestiona els models de IA local", + "Browse, install, and manage AI models for local inference.": "Navegueu, instal·leu i gestioneu models d'IA per a la inferència local.", + "Open Local AI Models Hub": "Obre el centre de models de IA local", + "Unified proxy for AI coding assistants. Connect to Claude Code, ChatGPT, Gemini, Qwen Code through a single local endpoint.": "Proxy unificat per a assistents de codi amb IA. Connecteu amb Claude Code, ChatGPT, Gemini i Qwen Code a través d'un únic punt final local.", + "Installs CLIProxyAPI binary to connect AI coding assistants (Claude Code, ChatGPT, Gemini, Qwen) via local proxy with OAuth authentication.": "Instal·la el binari CLIProxyAPI per connectar assistents de codi amb IA (Claude Code, ChatGPT, Gemini, Qwen) mitjançant un proxy local amb autenticació OAuth.", + "Install Vibe CLI Proxy": "Instal·la el Vibe CLI Proxy", + "Start or stop the Vibe CLI Proxy service.": "Inicieu o atureu el servei Vibe CLI Proxy.", + "Service Endpoint": "Punt final del servei", + "Use this endpoint for OpenAI-compatible requests routed through Vibe CLI Proxy.": "Useu aquest punt final per a les sol·licituds compatibles amb OpenAI encaminades a través del Vibe CLI Proxy.", + "Network host: {host}": "Amfitrió de xarxa: {host}", + "Endpoint copied": "S'ha copiat el punt final", + "Version": "Versió", + "Installed CLIProxyAPI version.": "Versió de CLIProxyAPI instal·lada.", + "Current version": "Versió actual", + "Reinstall": "Torna a instal·lar", + "Not installed": "No instal·lat", + "Service Configurations": "Configuracions del servei", + "Configure port, authentication directory, and network access for the proxy.": "Configureu el port, el directori d'autenticació i l'accés a la xarxa del proxy.", + "Port": "Port", + "Retries": "Reintents", + "Auth directory": "Directori d'autenticació", + "Enable network access": "Activa l'accés a la xarxa", + "Allow other devices on the network to reach the proxy.": "Permet que altres dispositius de la xarxa arribin al proxy.", + "Capture service logs": "Captura els registres del servei", + "Persist proxy logs for troubleshooting (may increase disk usage).": "Conserva els registres del proxy per a la resolució de problemes (pot augmentar l'ús del disc).", + "Enable remote management": "Activa la gestió remota", + "Expose management endpoints; requires a secret key.": "Exposa els punts finals de gestió; requereix una clau secreta.", + "Management secret key": "Clau secreta de gestió", + "Vibe CLI Proxy configurations updated": "S'han actualitzat les configuracions del Vibe CLI Proxy", + "Failed to update Vibe CLI Proxy configurations": "No s'han pogut actualitzar les configuracions del Vibe CLI Proxy", + "The local port where the proxy service listens for requests.": "El port local on el servei de proxy escolta les sol·licituds.", + "Number of retry attempts for failed upstream requests.": "Nombre d'intents de reintent per a les sol·licituds amunt fallides.", + "Directory where authentication tokens are stored.": "Directori on s'emmagatzemen els testimonis d'autenticació.", + "Secret key required for remote management operations.": "Clau secreta necessària per a les operacions de gestió remota.", + "Auth Folder": "Carpeta d'autenticació", + "Path where Vibe CLI Proxy stores OAuth tokens for connected providers. Managed automatically; not editable.": "Camí on el Vibe CLI Proxy emmagatzema els testimonis OAuth dels proveïdors connectats. Es gestiona automàticament; no és editable.", + "Authentication": "Autenticació", + "Securely link your AI accounts so Vibe CLI Proxy can call their APIs on your behalf. When you connect, a browser window opens for that provider where you complete sign-in.": "Enllaceu de manera segura els vostres comptes d'IA perquè el Vibe CLI Proxy pugui cridar les seves API en nom vostre. Quan us connecteu, s'obre una finestra del navegador per a aquell proveïdor on completeu l'inici de sessió.", + "Opening browser for OAuth…": "S'està obrint el navegador per a l'OAuth…", + "Complete authentication in your browser, then return here.": "Completeu l'autenticació al navegador i, després, torneu aquí.", + "Failed to start OAuth flow": "No s'ha pogut iniciar el flux d'OAuth", + "Device Authorization": "Autorització del dispositiu", + "Enter the code below at the authorization page to complete authentication.": "Introduïu el codi de sota a la pàgina d'autorització per completar l'autenticació.", + "Copy Code": "Copia el codi", + "Code copied to clipboard": "S'ha copiat el codi al porta-retalls", + "Open GitHub": "Obre GitHub", + "Important: Vibe CLI Proxy is a local proxy to third-party CLI coding agents. By proceeding, you accept full responsibility for compliance with each AI provider's terms of service. Use at your own risk. Msty is not liable for any account issues or service violations that may arise.": "Important: el Vibe CLI Proxy és un proxy local cap a agents de codi de CLI de tercers. En continuar, accepteu tota la responsabilitat del compliment de les condicions del servei de cada proveïdor d'IA. Useu-lo sota la vostra responsabilitat. Msty no es fa responsable de cap problema de compte ni de cap violació del servei que en pugui derivar.", + "Set @:mlxService to run optimized AI models on your Apple Silicon Mac.": "Configureu @:mlxService per executar models d'IA optimitzats al vostre Mac amb Apple Silicon.", + "Configure where your MLX models are stored.": "Configureu on s'emmagatzemen els vostres models MLX.", + "Open MLX Settings": "Obre la configuració d'MLX", + "Manage MLX Models": "Gestiona els models MLX", + "Browse, install, and manage MLX models optimized for Apple Silicon.": "Navegueu, instal·leu i gestioneu models MLX optimitzats per a Apple Silicon.", + "Open MLX Models Hub": "Obre el centre de models MLX", + "System Compatibility": "Compatibilitat del sistema", + "Check if your system is compatible with MLX.": "Comproveu si el vostre sistema és compatible amb MLX.", + "Check Again": "Torna a comprovar", + "Not checked": "No comprovat", + "Compatible": "Compatible", + "Not compatible": "No compatible", + "MLX Requirements:": "Requisits d'MLX:", + "Apple Silicon Mac (M1, M2, M3, M4)": "Mac amb Apple Silicon (M1, M2, M3, M4)", + "macOS 13.0 or later": "macOS 13.0 o posterior", + "Unified memory architecture": "Arquitectura de memòria unificada", + "Set @:llamacppService to run efficient AI models on Windows, macOS, and Linux.": "Configureu @:llamacppService per executar models d'IA eficients a Windows, macOS i Linux.", + "Configure where your LLaMA.cpp models are stored.": "Configureu on s'emmagatzemen els vostres models de LLaMA.cpp.", + "Open LLaMA.cpp Settings": "Obre la configuració de LLaMA.cpp", + "Manage LLaMA.cpp Models": "Gestiona els models de LLaMA.cpp", + "Browse, install, and manage LLaMA.cpp models for cross-platform inference.": "Navegueu, instal·leu i gestioneu models de LLaMA.cpp per a la inferència multiplataforma.", + "Open LLaMA.cpp Models Hub": "Obre el centre de models de LLaMA.cpp", + "Check if your system is compatible with LLaMA.cpp.": "Comproveu si el vostre sistema és compatible amb LLaMA.cpp.", + "LLaMA.cpp requires the desktop application": "LLaMA.cpp requereix l'aplicació d'escriptori", + "System Information": "Informació del sistema", + "Platform": "Plataforma", + "Architecture": "Arquitectura", + "Available Memory": "Memòria disponible", + "LLaMA.cpp Requirements:": "Requisits de LLaMA.cpp:", + "Desktop application (Windows, macOS, or Linux)": "Aplicació d'escriptori (Windows, macOS o Linux)", + "At least 4GB RAM (8GB+ recommended)": "Com a mínim 4 GB de RAM (es recomanen 8 GB o més)", + "Sufficient storage for models (varies by model size)": "Emmagatzematge suficient per als models (varia segons la mida del model)", + "Optional: GPU for acceleration (CUDA, Metal, OpenCL)": "Opcional: GPU per a l'acceleració (CUDA, Metal, OpenCL)", + "CPU Threads": "Fils de CPU", + "Number of CPU threads to use during inference. Set to -1 to auto-detect based on your system (maps to the --threads flag).": "Nombre de fils de CPU que s'utilitzen durant la inferència. Establiu-lo a -1 per detectar-lo automàticament segons el vostre sistema (correspon a l'indicador --threads).", + "Concurrent Requests": "Sol·licituds simultànies", + "Number of chats that can run at the same time per model (maps to --parallel flag). With parallel=2, each chat gets half the context size.": "Nombre de xats que poden executar-se alhora per model (correspon a l'indicador --parallel). Amb parallel=2, cada xat rep la meitat de la mida del context.", + "Concurrent requests": "Sol·licituds simultànies", + "Enter valid JSON to set environment variables for llama-server process. These variables have less priority than CLI args set in the Service and Model Configurations.": "Introduïu un JSON vàlid per definir les variables d'entorn del procés llama-server. Aquestes variables tenen menys prioritat que els arguments de CLI definits a les configuracions del servei i del model.", + "You have unsaved changes in the @:settings.llamacpp.modelConfigurations.title{'.'} Make sure to save them before starting a new chat session.": "Teniu canvis sense desar a @:settings.llamacpp.modelConfigurations.title{'.'} Assegureu-vos de desar-los abans d'iniciar una sessió de xat nova.", + "@:settings.llamacpp.modelConfigurations.title saved": "S'ha desat @:settings.llamacpp.modelConfigurations.title", + "Failed to save @:settings.llamacpp.modelConfigurations.title. Please check the logs for more details.": "No s'han pogut desar les configuracions del model. Reviseu els registres per a més detalls.", + "@:mlx Service": "Servei @:mlx", + "@:llamacpp Service": "Servei @:llamacpp", + "Settings and Configs": "Configuració i ajustos", + "API Keys": "Claus API", + "Create New Workspace": "Crea un espai de treball nou", + "Switch Workspace": "Canvia d'espai de treball", + "Switch to {workspaceName} Workspace": "Canvia a l'espai de treball {workspaceName}", + "Hide Workspace Tray": "Amaga la safata d'espais de treball", + "Show Workspace Tray": "Mostra la safata d'espais de treball", + "Workspace switched!": "S'ha canviat d'espai de treball!", + "{workspaceName} is now the active workspace": "Ara {workspaceName} és l'espai de treball actiu", + "Delete Workspace": "Suprimeix l'espai de treball", + "Workspace {workspaceName} is active": "L'espai de treball {workspaceName} està actiu", + "Your current active Workspace is: {workspaceName}": "El vostre espai de treball actiu actual és: {workspaceName}", + "New Workspace": "Espai de treball nou", + "Edit Workspace": "Edita l'espai de treball", + "Workspace Name": "Nom de l'espai de treball", + "What to copy from {activeWorkspace} workspace?": "Què voleu copiar de l'espai de treball {activeWorkspace}?", + "Copying items is disabled because the active workspace has a passphrase set.": "La còpia d'elements està desactivada perquè l'espai de treball actiu té definida una frase de pas.", + "Create and Switch": "Crea i canvia-hi", + "Create and Stay": "Crea i queda't", + "Workspace name already exists": "El nom de l'espai de treball ja existeix", + "Invalid or duplicate workspace name": "Nom d'espai de treball no vàlid o duplicat", + "Workspace updated": "S'ha actualitzat l'espai de treball", + "Failed to update Workspace": "No s'ha pogut actualitzar l'espai de treball", + "Workspace created and switched": "S'ha creat l'espai de treball i s'hi ha canviat", + "Workspace created": "S'ha creat l'espai de treball", + "Failed to create Workspace": "No s'ha pogut crear l'espai de treball", + "Are you sure you want to delete {workspaceName}? All data associated with this workspace will be deleted. This action cannot be undone.": "Segur que voleu suprimir {workspaceName}? Se suprimiran totes les dades associades a aquest espai de treball. Aquesta acció no es pot desfer.", + "@:download Workspace @:data": "Baixa les dades de l'espai de treball", + "Workspace {workspaceName} deleted": "S'ha suprimit l'espai de treball {workspaceName}", + "Failed to delete Workspace": "No s'ha pogut suprimir l'espai de treball", + "Export Workspace": "Exporta l'espai de treball", + "Workspace {workspaceName} data exported as {fileName}": "Les dades de l'espai de treball {workspaceName} s'han exportat com a {fileName}", + "Failed to export Workspace {workspaceName}": "No s'ha pogut exportar l'espai de treball {workspaceName}", + "@:import Workspace": "Importa un espai de treball", + "Drag and drop a zipped Msty Workspace file to import and create a new Workspace. In case of duplicate names, the imported workspace will be renamed. You can change it later.": "Arrossegueu i deixeu anar un fitxer comprimit d'espai de treball de Msty per importar-lo i crear un espai de treball nou. En cas de noms duplicats, l'espai de treball importat es reanomenarà. El podeu canviar més endavant.", + "Workspace {workspaceName} has been imported": "S'ha importat l'espai de treball {workspaceName}", + "Failed to import Workspace": "No s'ha pogut importar l'espai de treball", + "Attachments": "Adjuncions", + "Documents": "Documents", + "Images": "Imatges", + "Webpages": "Pàgines web", + "YouTube Links": "Enllaços de YouTube", + "Drop Them!": "Deixeu-los anar!", + "@:select all": "Selecciona-ho tot", + "Deselect all": "Desselecciona-ho tot", + "Drag-and-drop {attachmentType} here": "Arrossegueu i deixeu anar {attachmentType} aquí", + "Add New Attachments": "Afegeix adjuncions noves", + "Add {documentTypes} as well as some other code files": "Afegiu {documentTypes} i també altres fitxers de codi", + "Add .png, .jpg, or jpeg images": "Afegiu imatges .png, .jpg o jpeg", + "Drag-and-drop or browse more": "Arrossegueu i deixeu anar o exploreu-ne més", + "or paste comma-separated URLs": "o enganxeu URL separats per comes", + "Click to manage attached {attachmentType}": "Feu clic per gestionar {attachmentType} adjuntats", + "Selected model may not support image attachments.": "És possible que el model seleccionat no admeti adjuncions d'imatge.", + "Click to install vision capabilities.": "Feu clic per instal·lar les capacitats de visió.", + "Checking vision capabilities...": "S'estan comprovant les capacitats de visió...", + "Installing vision capabilities...": "S'estan instal·lant les capacitats de visió...", + "{count} document attached | {count} documents attached": "{count} document adjuntat | {count} documents adjuntats", + "{count} image attached | {count} images attached": "{count} imatge adjuntada | {count} imatges adjuntades", + "{count} webpage attached | {count} webpages attached": "{count} pàgina web adjuntada | {count} pàgines web adjuntades", + "a webpage link | webpage links": "un enllaç de pàgina web | enllaços de pàgines web", + "Hold {key} to share with Synced Splits": "Mantingueu premut {key} per compartir amb les divisions sincronitzades", + "{count} YouTube link attached | {count} YouTube links attached": "{count} enllaç de YouTube adjuntat | {count} enllaços de YouTube adjuntats", + "Failed to attach files": "No s'han pogut adjuntar els fitxers", + "Failed to attach webpages": "No s'han pogut adjuntar les pàgines web", + "Failed to import YouTube links info. {errorMessage}": "No s'ha pogut importar la informació dels enllaços de YouTube. {errorMessage}", + "Detach all": "Desadjunta-ho tot", + "Detach All": "Desadjunta-ho tot", + "Are you sure you want to detach all {attachmentType}? These {attachmentType} will not be available in the conversation anymore across all splits.": "Segur que voleu desadjuntar {attachmentType}? Aquests {attachmentType} ja no estaran disponibles a la conversa en cap divisió.", + "Maximum Result": "Resultat màxim", + "Attachments detached": "S'han desadjuntat les adjuncions", + "Manage keys": "Gestiona les claus", + "A valid Jina API Key is required to use this feature. You can visit the following link to get one for free:": "Cal una clau API de Jina vàlida per utilitzar aquesta funció. Podeu visitar l'enllaç següent per obtenir-ne una de franc:", + "You currently have {count} Jina API key(s) added. You can add add more keys and Msty will pick a random valid key to use for the request.": "Actualment teniu {count} clau(s) API de Jina afegida(es). Podeu afegir més claus i Msty triarà una clau vàlida a l'atzar per fer servir en la sol·licitud.", + "New Jina API Key": "Clau API de Jina nova", + "Edit Jina API Key": "Edita la clau API de Jina", + "Available Keys": "Claus disponibles", + "Key is {status}. Click to re-verify": "La clau està {status}. Feu clic per tornar a verificar-la", + "Verify Key and Add": "Verifica la clau i afegeix-la", + "Add a new Jina API key to use with the Jina Reader and Search endpoints. You can add multiple keys and verify them to ensure they are valid. When using the keys, Msty will pick a random valid key to use for the request.": "Afegiu una clau API de Jina nova per fer-la servir amb els punts finals Jina Reader i Search. Podeu afegir diverses claus i verificar-les per assegurar-vos que són vàlides. En fer servir les claus, Msty en triarà una de vàlida a l'atzar per a la sol·licitud.", + "All Good!": "Tot correcte!", + "Key seems to be valid and ready to use": "La clau sembla vàlida i a punt per fer-se servir", + "Jina API Key added": "S'ha afegit la clau API de Jina", + "Error{status}!": "Error{status}!", + "Failed to add Jina API Key. Please check the API key and make sure it is valid.": "No s'ha pogut afegir la clau API de Jina. Comproveu la clau API i assegureu-vos que sigui vàlida.", + "Token Budget": "Pressupost de tokens", + "Maximum number of tokens to use for Jina API requests. This helps control costs and response length.": "Nombre màxim de tokens que s'utilitzaran per a les sol·licituds de l'API de Jina. Això ajuda a controlar els costos i la longitud de la resposta." +} diff --git a/tools/msty_ca/tr_008.json b/tools/msty_ca/tr_008.json new file mode 100644 index 0000000..8cdc74b --- /dev/null +++ b/tools/msty_ca/tr_008.json @@ -0,0 +1,221 @@ +{ + "Real Time @:data": "@:data en temps real", + "Click to toggle RTD; double-click to configure": "Feu clic per activar/desactivar la RTD; feu doble clic per configurar-la", + "@:rtd.title Contexts": "Contextos de @:rtd.title", + "Source removed": "S'ha eliminat la font", + "Failed to remove source": "No s'ha pogut eliminar la font", + "Failed to update source": "No s'ha pogut actualitzar la font", + "Search Provider": "Proveïdor de cerca", + "Jina": "Jina", + "Use @:remoteToolsConnector.title": "Usa @:remoteToolsConnector.title", + "No sources available": "No hi ha cap font disponible", + "Save {providerName} as default search provider": "Desa {providerName} com a proveïdor de cerca per defecte", + "{providerName} it is!": "Doncs {providerName}!", + "{providerName} is now the default search provider": "Ara {providerName} és el proveïdor de cerca per defecte", + "Auto with Fallback": "Automàtic amb alternativa", + "Google": "Google", + "Brave": "Brave", + "Ecosia": "Ecosia", + "Custom Search Query": "Consulta de cerca personalitzada", + "This query will be used for searching. Leave it empty to use the prompt as a query": "Aquesta consulta s'utilitzarà per cercar. Deixeu-la buida per fer servir la indicació com a consulta", + "Limit by Domain": "Limita per domini", + "e.g. reddit.com or gov or (site:reddit.com OR site:gov)": "p. ex. reddit.com o gov o (site:reddit.com OR site:gov)", + "Enter comma separated domains e.g. reddit.com,wikipedia.com": "Introduïu dominis separats per comes, p. ex. reddit.com,wikipedia.com", + "Extra Operators": "Operadors addicionals", + "Search Date Range": "Interval de dates de la cerca", + "After date - Before date": "Data posterior - Data anterior", + "@:rtd.title Enabled": "@:rtd.title activada", + "API": "API", + "@:remoteToolsConnector.title": "@:remoteToolsConnector.title", + "Use @:rtd.jina": "Usa @:rtd.jina", + "Use @:rtd.settings.google": "Usa @:rtd.settings.google", + "@:rtd.settings.google @:apiKey": "@:apiKey de @:rtd.settings.google", + "Custom Search Engine ID": "ID de motor de cerca personalitzat", + "@:rtd.settings.google @:rtd.google.cseIdLabel": "@:rtd.google.cseIdLabel de @:rtd.settings.google", + "Use @:rtd.settings.brave": "Usa @:rtd.settings.brave", + "Filter Results": "Filtra els resultats", + "@:rtd.settings.brave @:apiKey": "@:apiKey de @:rtd.settings.brave", + "SearXNG": "SearXNG", + "Engines": "Motors", + "Comma-separated list of engines to use e.g. google, brave etc.": "Llista de motors a utilitzar separats per comes, p. ex. google, brave, etc.", + "Extra Params": "Paràmetres addicionals", + "Add extra params. This should be a valid JSON object.": "Afegiu paràmetres addicionals. Ha de ser un objecte JSON vàlid.", + "Your SearXNG server must have JSON enabled as well as be served over HTTPS. For a workaround over HTTP on some browsers, check out our docs at https://docs.msty.studio": "El vostre servidor SearXNG ha de tenir el JSON activat i servir-se per HTTPS. Per a una solució alternativa per HTTP en alguns navegadors, consulteu la nostra documentació a https://docs.msty.studio", + "Use @:rtd.searXng.title": "Usa @:rtd.searXng.title", + "Tavily": "Tavily", + "Use @:rtd.tavily.title": "Usa @:rtd.tavily.title", + "Search Topic": "Tema de cerca", + "Category of search": "Categoria de la cerca", + "News": "Notícies", + "Finance": "Finances", + "Enter @:rtd.tavily.title @:apiKey": "Introduïu la @:apiKey de @:rtd.tavily.title", + "Search Depth": "Profunditat de la cerca", + "Depth of the search": "Profunditat de la cerca", + "Advance": "Avançada", + "Basic": "Bàsica", + "Time Range": "Interval de temps", + "Time range back from the current date": "Interval de temps enrere des de la data actual", + "Exa": "Exa", + "Use @:rtd.exa.title": "Usa @:rtd.exa.title", + "Enter @:rtd.exa.title @:apiKey": "Introduïu la @:apiKey de @:rtd.exa.title", + "Ollama": "Ollama", + "Use @:rtd.ollama.title": "Usa @:rtd.ollama.title", + "Enter @:rtd.ollama.title @:apiKey": "Introduïu la @:apiKey de @:rtd.ollama.title", + "Disable @:rtd.title": "Desactiva la @:rtd.title", + "@:rtd.title disabled": "@:rtd.title desactivada", + "Failed to disable @:rtd.title": "No s'ha pogut desactivar la @:rtd.title", + "Remote Service": "Servei remot", + "To use this feature, you need to connect with @:remoteToolsConnector.title{'.'}": "Per fer servir aquesta funció, us heu de connectar amb @:remoteToolsConnector.title{'.'}", + "RTD is experimental and may not work as expected.": "La RTD és experimental i pot ser que no funcioni com s'espera.", + "@:remoteToolsConnector.title - Connected": "@:remoteToolsConnector.title - Connectat", + "@:remoteToolsConnector.title - Disconnected": "@:remoteToolsConnector.title - Desconnectat", + "@:connect with @:remoteToolsConnector.title": "@:connect amb @:remoteToolsConnector.title", + "@:connect @:remoteToolsConnector.title first": "@:connect primer @:remoteToolsConnector.title", + "@:reconnect with @:remoteToolsConnector.title": "@:reconnect amb @:remoteToolsConnector.title", + "@:disconnect Now": "@:disconnect ara", + "Check Connection Health": "Comprova l'estat de la connexió", + "Edit Connection Details": "Edita els detalls de la connexió", + "You do not have permission to access this feature": "No teniu permís per accedir a aquesta funció", + "Connect to @:remoteToolsConnector.title": "Connecta amb @:remoteToolsConnector.title", + "Save and Connect": "Desa i connecta", + "Remember @:connectionInfo": "Recorda la @:connectionInfo", + "@:import @:connectionInfo": "@:import la @:connectionInfo", + "Drag and drop Msty Remote Connection Config file to import and connect to @:remoteToolsConnector.title{'.'}": "Arrossegueu i deixeu anar el fitxer de configuració de connexió remota de Msty per importar-lo i connectar amb @:remoteToolsConnector.title{'.'}", + "@:connectionInfo imported": "@:connectionInfo importada", + "Failed to import @:connectionInfo": "No s'ha pogut importar la @:connectionInfo", + "Export Saved @:connectionInfo": "Exporta la @:connectionInfo desada", + "@:connectionInfo exported": "@:connectionInfo exportada", + "Failed to export @:connectionInfo": "No s'ha pogut exportar la @:connectionInfo", + "Connected!": "Connectat!", + "@:remoteToolsConnector.title connected at {url}": "@:remoteToolsConnector.title connectat a {url}", + "Failed to connect with @:remoteToolsConnector.title{'.'} Make sure the @:remoteToolsConnector.title is running and accessible at the provided URL.": "No s'ha pogut connectar amb @:remoteToolsConnector.title{'.'} Assegureu-vos que @:remoteToolsConnector.title s'està executant i és accessible a l'URL proporcionat.", + "Token is missing. Please check the token and try again.": "Falta el testimoni. Comproveu el testimoni i torneu-ho a provar.", + "Forget Previous @:connectionInfo": "Oblida la @:connectionInfo anterior", + "@:connectionInfo forgotten": "@:connectionInfo oblidada", + "Tool Command Paths": "Camins de les ordres de les eines", + "If you are using Toolsets, set the paths to the commands you are using.": "Si feu servir conjunts d'eines, definiu els camins de les ordres que utilitzeu.", + "@:select or enter a command": "Seleccioneu o introduïu una ordre", + "Enter full path to the command": "Introduïu el camí complet de l'ordre", + "Assign @:path": "Assigna el camí", + "Disconnected!": "Desconnectat!", + "Disconnected from @:remoteToolsConnector.title": "Desconnectat de @:remoteToolsConnector.title", + "Forge Mode": "Mode forja", + "Forge mode gives you a blank canvas and a powerful writer to create, edit, style and refine content freely.": "El mode forja us ofereix un llenç en blanc i un escriptor potent per crear, editar, donar estil i refinar contingut lliurement.", + "Forge": "Forja", + "@:forge.title Content": "Contingut de la @:forge.title", + "Forging Content": "S'està forjant el contingut", + "Edit Raw Markdown": "Edita el Markdown en brut", + "Edit as Branch": "Edita com a branca", + "This content has been forged. Raw markdown editing is not allowed.": "Aquest contingut s'ha forjat. No es permet editar el Markdown en brut.", + "Changes saved": "S'han desat els canvis", + "Failed to save changes": "No s'han pogut desar els canvis", + "Write something or type / for options...": "Escriviu alguna cosa o teclegeu / per veure les opcions...", + "Enter details summary": "Introduïu un resum dels detalls", + "Simplify": "Simplifica", + "Fix Spelling & Grammar": "Corregeix l'ortografia i la gramàtica", + "Make Shorter": "Escurça", + "Make Longer": "Allarga", + "TL;DR;": "TL;DR;", + "Emojify": "Emojifica", + "@:change Tone": "@:change el to", + "Academic": "Acadèmic", + "Business": "Empresarial", + "Casual": "Informal", + "Child Friendly": "Apte per a infants", + "Conversational": "Conversacional", + "Emotional": "Emotiu", + "Humorous": "Humorístic", + "Informative": "Informatiu", + "Inspirational": "Inspirador", + "Professional": "Professional", + "Narrative": "Narratiu", + "Objective": "Objectiu", + "Persuasive": "Persuasiu", + "Poetic": "Poètic", + "Clear Formatting": "Esborra el format", + "Bold": "Negreta", + "Italic": "Cursiva", + "Underline": "Subratllat", + "Strikethrough": "Ratllat", + "Code": "Codi", + "Code Block": "Bloc de codi", + "Blockquote": "Cita", + "Undo": "Desfés", + "Redo": "Refés", + "Texts": "Textos", + "Paragraph": "Paràgraf", + "Heading 1": "Encapçalament 1", + "Heading 2": "Encapçalament 2", + "Heading 3": "Encapçalament 3", + "Lists": "Llistes", + "Bullet List": "Llista de pics", + "Numbered List": "Llista numerada", + "Task List": "Llista de tasques", + "What do you want to forge today?": "Què voleu forjar avui?", + "Forge Writer": "Escriptor de la forja", + "Type your custom prompt...": "Escriviu la vostra indicació personalitzada...", + "Ask": "Pregunta", + "Ask the model to generate a response based on a custom prompt": "Demaneu al model que generi una resposta a partir d'una indicació personalitzada", + "@:forge.title Canvas": "Llenç de la @:forge.title", + "New @:forge.forgeCanvas": "@:forge.forgeCanvas nou", + "Add New @:forge.forgeCanvas": "Afegeix un @:forge.forgeCanvas nou", + "Preview": "Previsualització", + "Prompt | Prompts": "Indicació | Indicacions", + "Discard": "Descarta", + "Insert": "Insereix", + "Regenerate": "Regenera", + "Rewrite": "Reescriu", + "Exit": "Surt", + "Custom Prompt": "Indicació personalitzada", + "Markdown": "Markdown", + "JSON": "JSON", + "HTML": "HTML", + "Formatted": "Amb format", + "Invalid @:json": "@:json no vàlid", + "@:download as @:markdown file": "@:download com a fitxer @:markdown", + "@:download as @:json file": "@:download com a fitxer @:json", + "@:download as HTML file": "@:download com a fitxer HTML", + "Copy @:markdown to Clipboard": "Copia el @:markdown al porta-retalls", + "Copy HTML to Clipboard": "Copia l'HTML al porta-retalls", + "Copy Text to Clipboard": "Copia el text al porta-retalls", + "Copied!": "Copiat!", + "Content copied to clipboard as @:markdown": "S'ha copiat el contingut al porta-retalls com a @:markdown", + "Content copied to clipboard as HTML": "S'ha copiat el contingut al porta-retalls com a HTML", + "Content copied to clipboard as formatted text": "S'ha copiat el contingut al porta-retalls com a text amb format", + "Content copied to clipboard as @:json": "S'ha copiat el contingut al porta-retalls com a @:json", + "{item} copied to clipboard": "S'ha copiat {item} al porta-retalls", + "Content exported to clipboard as @:json": "S'ha exportat el contingut al porta-retalls com a @:json", + "Variable | Variables": "Variable | Variables", + "@:pinned {item}": "@:pinned {item}", + "Pin {item}": "Fixa {item}", + "{item} pinned": "S'ha fixat {item}", + "Unable to pin {item}": "No s'ha pogut fixar {item}", + "Unpin {item}": "Deixa de fixar {item}", + "{item} unpinned": "S'ha deixat de fixar {item}", + "Unable to unpin {item}": "No s'ha pogut deixar de fixar {item}", + "Default {item}": "{item} per defecte", + "Set {item} as default": "Estableix {item} com a predeterminat", + "{item} set as default": "S'ha establert {item} com a predeterminat", + "Unable to set {item} as default": "No s'ha pogut establir {item} com a predeterminat", + "Default {item}. Click to unset.": "{item} per defecte. Feu clic per desfer-ho.", + "{item} removed as default": "S'ha tret {item} com a predeterminat", + "Model": "Model", + "Provider sorting": "Ordenació dels proveïdors", + "Created At": "Data de creació", + "Group by provider": "Agrupa per proveïdor", + "Model sorting": "Ordenació dels models", + "Recent": "Recent", + "Filter by purpose": "Filtra per finalitat", + "All purposes": "Totes les finalitats", + "@:model Settings": "Configuració del model", + "Sync @:split": "Sincronitza la divisió", + "Split | Splits": "Divisió | Divisions", + "Template | Templates": "Plantilla | Plantilles", + "Apply Changes": "Aplica els canvis", + "Split @:preset | Split @:preset": "Predefinit de divisió | Predefinits de divisió", + "New @:preset": "Predefinit nou", + "Split {index}": "Divisió {index}", + "@:delete @:preset": "Suprimeix el predefinit", + "Import @:preset | Import @:preset": "Importa un predefinit | Importa predefinits", + "Drag and drop a zipped Msty presets file to import and create new presets. In case of duplicate names, the imported presets will be renamed. You can change it later.": "Arrossegueu i deixeu anar un fitxer comprimit de predefinits de Msty per importar-lo i crear predefinits nous. En cas de noms duplicats, els predefinits importats es reanomenaran. Els podeu canviar més endavant." +} diff --git a/tools/msty_ca/tr_009.json b/tools/msty_ca/tr_009.json new file mode 100644 index 0000000..fc67869 --- /dev/null +++ b/tools/msty_ca/tr_009.json @@ -0,0 +1,221 @@ +{ + "@:preset imported": "@:preset importat", + "Failed to import presets": "No s'han pogut importar els predefinits", + "Export @:preset | Export @:preset": "Exporta el predefinit | Exporta els predefinits", + "Export Selected @:preset | Export Selected @:preset": "Exporta el predefinit seleccionat | Exporta els predefinits seleccionats", + "Split preset exported as {fileName} | Split presets exported as {fileName}": "El predefinit de divisió s'ha exportat com a {fileName} | Els predefinits de divisió s'han exportat com a {fileName}", + "Failed to export preset | Failed to export presets": "No s'ha pogut exportar el predefinit | No s'han pogut exportar els predefinits", + "@:delete @:preset | Delete @:preset": "Suprimeix el predefinit | Suprimeix els predefinits", + "@:delete Selected @:preset | Delete Selected @:preset": "Suprimeix el predefinit seleccionat | Suprimeix els predefinits seleccionats", + "Are you sure you want to delete {presetName}? | Are you sure you want to delete {count} presets?": "Segur que voleu suprimir {presetName}? | Segur que voleu suprimir {count} predefinits?", + "Split preset deleted | Split presets deleted": "S'ha suprimit el predefinit de divisió | S'han suprimit els predefinits de divisió", + "Could not delete split preset | Could not delete split presets": "No s'ha pogut suprimir el predefinit de divisió | No s'han pogut suprimir els predefinits de divisió", + "Split preset updated": "S'ha actualitzat el predefinit de divisió", + "Could not update split preset": "No s'ha pogut actualitzar el predefinit de divisió", + "Split preset saved": "S'ha desat el predefinit de divisió", + "Could not save split preset": "No s'ha pogut desar el predefinit de divisió", + "No @:splitPreset.title available.": "No hi ha cap @:splitPreset.title disponible.", + "Get started by adding or importing a new @:splitPreset.title": "Comenceu afegint o important un @:splitPreset.title nou", + "Invalid Templates": "Plantilles no vàlides", + "Some templates are invalid or missing required fields. Please correct them before continuing.": "Algunes plantilles no són vàlides o els falten camps obligatoris. Corregiu-les abans de continuar.", + "Shadow Personas": "Personalitats ombra", + "Create Shadow Persona": "Crea una personalitat ombra", + "Edit Shadow Persona": "Edita la personalitat ombra", + "Assigned Persona": "Personalitat assignada", + "Change Persona": "Canvia la personalitat", + "Change Shadow Persona": "Canvia la personalitat ombra", + "Current Persona": "Personalitat actual", + "Select New Persona": "Selecciona una personalitat nova", + "Waiting for completion": "S'està esperant que s'acabi", + "Changing the persona will reset the analysis context and may affect continuity.": "Canviar la personalitat restablirà el context d'anàlisi i pot afectar la continuïtat.", + "No Persona Assigned": "Cap personalitat assignada", + "Hide Shadow Personas": "Amaga les personalitats ombra", + "Show Shadow Personas": "Mostra les personalitats ombra", + "No splits being monitored": "No s'està supervisant cap divisió", + "Monitoring {count} split (click to show) | Monitoring {count} splits (click to show)": "S'està supervisant {count} divisió (feu clic per mostrar) | S'estan supervisant {count} divisions (feu clic per mostrar)", + "Monitoring {count} split | Monitoring {count} splits": "S'està supervisant {count} divisió | S'estan supervisant {count} divisions", + "Activate": "Activa", + "Deactivate": "Desactiva", + "Process Now": "Processa ara", + "Processing...": "S'està processant...", + "Create and Assign": "Crea i assigna", + "Latest Insight": "Darrera observació", + "No output yet": "Encara no hi ha cap sortida", + "Outputs": "Sortides", + "View Latest": "Mostra l'última", + "View History": "Mostra l'historial", + "No history available": "No hi ha historial disponible", + "Select version": "Selecciona una versió", + "Shadow Persona Name": "Nom de la personalitat ombra", + "e.g., Technical Analyst, Performance Monitor": "p. ex., analista tècnic, monitor de rendiment", + "Switch Shadow Persona": "Canvia de personalitat ombra", + "Select a shadow persona to switch to": "Seleccioneu la personalitat ombra a la qual voleu canviar", + "Select Shadow Persona": "Selecciona una personalitat ombra", + "Search shadow personas...": "Cerca personalitats ombra...", + "Description (Optional)": "Descripció (opcional)", + "Describe what this shadow persona observes or analyzes": "Descriviu què observa o analitza aquesta personalitat ombra", + "Select Persona": "Selecciona una personalitat", + "Choose a persona to use": "Trieu una personalitat per fer servir", + "Select Splits to Monitor": "Selecciona les divisions a supervisar", + "Choose splits to monitor": "Trieu les divisions a supervisar", + "Choose splits to monitor (can be set later)": "Trieu les divisions a supervisar (es pot definir més endavant)", + "Splits can be dynamically assigned and managed after creation": "Les divisions es poden assignar i gestionar dinàmicament després de la creació", + "Update Trigger": "Activador d'actualització", + "Message Interval": "Interval de missatges", + "Time Interval": "Interval de temps", + "Messages Per Split": "Missatges per divisió", + "Max Context": "Context màxim", + "Synthesis Mode": "Mode de síntesi", + "Output Format": "Format de sortida", + "Max Processing Time": "Temps màxim de processament", + "Version Management": "Gestió de versions", + "Max Versions": "Màxim de versions", + "Advanced Settings": "Configuració avançada", + "Include System Messages": "Inclou els missatges del sistema", + "Auto Delete Old Versions": "Suprimeix automàticament les versions antigues", + "Waiting for splits": "S'estan esperant les divisions", + "Processing now": "S'està processant ara", + "No Shadow Personas": "Cap personalitat ombra", + "Create a Shadow Persona to monitor and analyze your conversation splits": "Creeu una personalitat ombra per supervisar i analitzar les divisions de les vostres converses", + "Unlock Shadow Personas": "Desbloqueja les personalitats ombra", + "Experimental": "Experimental", + "Shadow Personas is an experimental feature that analyzes conversations and generates alternative perspectives and insights in parallel.": "Les personalitats ombra són una funció experimental que analitza les converses i genera perspectives i observacions alternatives en paral·lel.", + "No Output Yet": "Encara no hi ha cap sortida", + "This Shadow Persona hasn't generated any output yet": "Aquesta personalitat ombra encara no ha generat cap sortida", + "Save this conversation to enable Shadow Persona processing": "Deseu aquesta conversa per activar el processament de la personalitat ombra", + "Delete Shadow Persona": "Suprimeix la personalitat ombra", + "Are you sure you want to delete \"{name}\"? \"{name}\" will be deleted from all the conversations it is attached to. This action cannot be undone.": "Segur que voleu suprimir «{name}»? «{name}» se suprimirà de totes les converses a les quals està adjuntada. Aquesta acció no es pot desfer.", + "Successfully deleted the shadow persona": "S'ha suprimit la personalitat ombra correctament", + "Failed to delete the shadow persona": "No s'ha pogut suprimir la personalitat ombra", + "Detach Shadow Persona": "Desadjunta la personalitat ombra", + "Detach": "Desadjunta", + "Detach \"{name}\" from this conversation? The shadow persona will remain available for other conversations.": "Voleu desadjuntar «{name}» d'aquesta conversa? La personalitat ombra continuarà disponible per a altres converses.", + "Successfully detached the shadow persona": "S'ha desadjuntat la personalitat ombra correctament", + "Failed to detach the shadow persona": "No s'ha pogut desadjuntar la personalitat ombra", + "Successfully switched the shadow persona": "S'ha canviat la personalitat ombra correctament", + "Failed to switch the shadow persona": "No s'ha pogut canviar la personalitat ombra", + "Successfully updated the shadow persona": "S'ha actualitzat la personalitat ombra correctament", + "Failed to update the shadow persona": "No s'ha pogut actualitzar la personalitat ombra", + "Successfully created the shadow persona": "S'ha creat la personalitat ombra correctament", + "Failed to create the shadow persona": "No s'ha pogut crear la personalitat ombra", + "Queue Cleared": "S'ha buidat la cua", + "Cancelled {cancelledCount} queued item | Cancelled {cancelledCount} queued items": "S'ha cancel·lat {cancelledCount} element en cua | S'han cancel·lat {cancelledCount} elements en cua", + "Queue Updated": "S'ha actualitzat la cua", + "Cancelled {cancelledCount} auto-triggered item | Cancelled {cancelledCount} auto-triggered items": "S'ha cancel·lat {cancelledCount} element activat automàticament | S'han cancel·lat {cancelledCount} elements activats automàticament", + "Queue Full": "Cua plena", + "Processing queue is full. Please wait for current items to complete": "La cua de processament és plena. Espereu que s'acabin els elements actuals", + "Already Processing": "Ja s'està processant", + "This conversation is already being processed": "Aquesta conversa ja s'està processant", + "Every Message": "Cada missatge", + "Every {n} Messages": "Cada {n} missatges", + "Manual Only": "Només manual", + "Automatic": "Automàtic", + "Runs after each message (fastest, more frequent)": "S'executa després de cada missatge (el més ràpid, més freqüent)", + "Runs after {n} messages (batched)": "S'executa després de {n} missatges (per lots)", + "Only when you click Process Now": "Només quan feu clic a «Processa ara»", + "Auto": "Automàtic", + "Combined Analysis": "Anàlisi combinada", + "Per Split": "Per divisió", + "Comparative": "Comparativa", + "Picks the best mode based on splits and intent": "Tria el millor mode segons les divisions i la intenció", + "One summary across all splits": "Un únic resum de totes les divisions", + "Keep each split separate and labeled": "Mantén cada divisió separada i etiquetada", + "Side-by-side differences and agreements": "Diferències i coincidències costat per costat", + "Auto will use Combined because only one split is present.": "El mode automàtic farà servir Combinada perquè només hi ha una divisió.", + "Auto will use Comparative because multiple models are in use.": "El mode automàtic farà servir Comparativa perquè s'utilitzen diversos models.", + "Auto will use Per Split because splits use the same model.": "El mode automàtic farà servir Per divisió perquè les divisions utilitzen el mateix model.", + "Insights": "Observacions", + "Summary": "Resum", + "Recommendations": "Recomanacions", + "Analysis": "Anàlisi", + "Locate splits": "Localitza les divisions", + "Manage Splits": "Gestiona les divisions", + "Add all splits": "Afegeix totes les divisions", + "Select all": "Selecciona-ho tot", + "{count} of {total} selected": "{count} de {total} seleccionats", + "Streaming": "Transmissió en temps real", + "Starting": "S'està iniciant", + "Collecting context from splits...": "S'està recollint el context de les divisions...", + "Waiting for conversation to complete": "S'està esperant que s'acabi la conversa", + "Analyzing conversation splits...": "S'estan analitzant les divisions de la conversa...", + "Shadow Persona will analyze once all responses are received": "La personalitat ombra analitzarà quan s'hagin rebut totes les respostes", + "Tool Calls": "Crides a eines", + "Reasoning": "Raonament", + "Attach Existing": "Adjunta'n una d'existent", + "Attach Shadow Persona": "Adjunta una personalitat ombra", + "Previous Version": "Versió anterior", + "Next Version": "Versió següent", + "Attach": "Adjunta", + "Select a shadow persona to attach to this conversation": "Seleccioneu una personalitat ombra per adjuntar-la a aquesta conversa", + "Choose a shadow persona to attach": "Trieu una personalitat ombra per adjuntar-la", + "Queued #{position}": "En cua núm. {position}", + "Add to Queue": "Afegeix a la cua", + "Processing Queue": "Cua de processament", + "Remove from Queue": "Treu de la cua", + "Removed from queue": "S'ha tret de la cua", + "in queue": "a la cua", + "Clear All": "Esborra-ho tot", + "No items in queue": "No hi ha elements a la cua", + "Est. wait: {time}": "Espera est.: {time}", + "{count} item in queue | {count} items in queue": "{count} element a la cua | {count} elements a la cua", + "Monitoring & Queue": "Supervisió i cua", + "Monitored Splits": "Divisions supervisades", + "Toolbox": "Caixa d'eines", + "Msty @:remoteToolsConnector.title is not running; tools usage will be skipped.": "Msty @:remoteToolsConnector.title no s'està executant; s'ometrà l'ús de les eines.", + "Tool | Tools": "Eina | Eines", + "A collection of tools to help you with your LLM work.": "Un conjunt d'eines per ajudar-vos amb la vostra feina amb LLM.", + "Available Tools": "Eines disponibles", + "Available Toolsets": "Conjunts d'eines disponibles", + "Set Default Parameters": "Defineix els paràmetres per defecte", + "Set Parameters": "Defineix els paràmetres", + "This dependency seems to be missing from your environment. Without this, the tool may not work as expected.": "Sembla que aquesta dependència falta al vostre entorn. Sense ella, és possible que l'eina no funcioni com s'espera.", + "Default Parameters for {toolName}": "Paràmetres per defecte de {toolName}", + "These parameters will be used globally for all instances of {toolName} tool. You can override these when creating a toolset.": "Aquests paràmetres s'utilitzaran globalment per a totes les instàncies de l'eina {toolName}. Els podeu substituir en crear un conjunt d'eines.", + "Arguments": "Arguments", + "@:select an @:argument and set its value. Leave it blank to skip setting a value.": "Seleccioneu un @:argument i definiu-ne el valor. Deixeu-lo en blanc per no definir cap valor.", + "Custom @:argument": "@:argument personalitzat", + "Enter the name of the new @:argument{'.'} Separate multiple arguments with a comma.": "Introduïu el nom del nou @:argument{'.'} Separeu diversos arguments amb una coma.", + "eg. --arg1, someArg, -verbose": "p. ex. --arg1, algunArg, -verbose", + "Environment Variables": "Variables d'entorn", + "@:select or enter a new Environment @:variable and set its value.": "Seleccioneu o introduïu una @:variable d'entorn nova i definiu-ne el valor.", + "Add Environment @:variable": "Afegeix una @:variable d'entorn", + "@:select an Environment @:variable": "Selecciona una @:variable d'entorn", + "Add a new Environment @:variable": "Afegeix una @:variable d'entorn nova", + "Default parameters saved for {toolName}.": "S'han desat els paràmetres per defecte de {toolName}.", + "Failed to save default parameters.": "No s'han pogut desar els paràmetres per defecte.", + "Add New Tool": "Afegeix una eina nova", + "Add your own MCP compatible tool to the toolbox. Once added, you can add it to a toolset, set parameters, and use it with a model.": "Afegiu la vostra pròpia eina compatible amb MCP a la caixa d'eines. Un cop afegida, la podeu afegir a un conjunt d'eines, definir-ne els paràmetres i fer-la servir amb un model.", + "Give it a name (uses the tool ID by default)": "Poseu-li un nom (per defecte fa servir l'ID de l'eina)", + "Tool ID": "ID de l'eina", + "Unique tool identifier (auto-filled if detected from config)": "Identificador únic de l'eina (s'emplena automàticament si es detecta a la configuració)", + "Tool with this ID already exists. Please enter a unique ID.": "Ja existeix una eina amb aquest ID. Introduïu un ID únic.", + "Tool Added": "S'ha afegit l'eina", + "Tool added to the toolbox. You can now add it to a toolset and use it with a model.": "S'ha afegit l'eina a la caixa d'eines. Ara la podeu afegir a un conjunt d'eines i fer-la servir amb un model.", + "Tool added to the toolbox and a matching toolset was created. It's ready to use with a model.": "S'ha afegit l'eina a la caixa d'eines i s'ha creat un conjunt d'eines corresponent. Ja es pot fer servir amb un model.", + "Failed to add tool to the toolbox. {error}": "No s'ha pogut afegir l'eina a la caixa d'eines. {error}", + "Tool Configuration": "Configuració de l'eina", + "Enter or paste tool configuration JSON. Accepts direct config or wrapped formats (will auto-extract toolId)": "Introduïu o enganxeu el JSON de configuració de l'eina. Accepta configuració directa o formats embolcallats (extraurà automàticament el toolId)", + "Show me an example of a tool configuration": "Mostra'm un exemple de configuració d'eina", + "The tool configuration accepts multiple formats including wrapped configs with mcpServers. It will auto-extract the toolId and name when possible. Must contain at minimum {command}. Dynamic arguments need to be wrapped in curly braces {curly} like so: {argExample}. Similarly, dynamic environment variables can be set using {envVarLabel}.": "La configuració de l'eina accepta diversos formats, inclosos els embolcallats amb mcpServers. Extraurà automàticament el toolId i el nom quan sigui possible. Com a mínim ha de contenir {command}. Els arguments dinàmics s'han d'envoltar amb claus {curly} d'aquesta manera: {argExample}. De la mateixa manera, les variables d'entorn dinàmiques es poden definir amb {envVarLabel}.", + "Auto-create toolset with same name": "Crea automàticament un conjunt d'eines amb el mateix nom", + "Edit Tool": "Edita l'eina", + "Update the name, notes, and configuration of the tool.": "Actualitzeu el nom, les notes i la configuració de l'eina.", + "Tool @:updatedSuccess": "S'ha actualitzat l'eina correctament", + "@:failedToUpdate tool.": "No s'ha pogut actualitzar l'eina.", + "Use external MCP tools powered by Msty @:remoteToolsConnector.title to extend your models' capabilities and enhance your LLM experience.": "Feu servir eines MCP externes impulsades per Msty @:remoteToolsConnector.title per ampliar les capacitats dels vostres models i millorar la vostra experiència amb LLM.", + "You can get started by importing many of the tools that Msty ships with or adding your own tools.": "Podeu començar important moltes de les eines que inclou Msty o afegint les vostres pròpies eines.", + "Note: These tools are not provided, tested, or maintained by Msty. We are merely providing a platform to use these and allowing to import them as a convenience. PLEASE USE THEM AT YOUR OWN RISK. Msty is not responsible for any issues that may arise from using these tools. Also, for support, please reach out to the tool's author.": "Nota: aquestes eines no estan proporcionades, provades ni mantingudes per Msty. Simplement oferim una plataforma per fer-les servir i permetem importar-les com a comoditat. FEU-LES SERVIR SOTA LA VOSTRA RESPONSABILITAT. Msty no es fa responsable de cap problema que pugui sorgir de l'ús d'aquestes eines. A més, per a assistència, adreceu-vos a l'autor de l'eina.", + "Import Default @:toolbox.tools.title": "Importa les @:toolbox.tools.title per defecte", + "{count} default tools imported successfully. You can create toolsets and use them with a model.": "S'han importat {count} eines per defecte correctament. Podeu crear conjunts d'eines i fer-los servir amb un model.", + "{count} default tools imported successfully and {toolsetCount} corresponding toolsets auto-created.": "S'han importat {count} eines per defecte correctament i s'han creat automàticament {toolsetCount} conjunts d'eines corresponents.", + "Failed to import default @:toolbox.tools.title": "No s'han pogut importar les @:toolbox.tools.title per defecte", + "Delete Tool": "Suprimeix l'eina", + "Are you sure you want to delete {toolName}?": "Segur que voleu suprimir {toolName}?", + "Tool deleted": "S'ha suprimit l'eina", + "@:failedToDelete tool": "No s'ha pogut suprimir l'eina", + "Delete All Tools": "Suprimeix totes les eines", + "Are you sure you want to delete all tools? This action cannot be undone.": "Segur que voleu suprimir totes les eines? Aquesta acció no es pot desfer.", + "All tools have been deleted successfully": "S'han suprimit totes les eines correctament", + "Failed to delete all tools": "No s'han pogut suprimir totes les eines", + "Tool configuration copied to clipboard": "S'ha copiat la configuració de l'eina al porta-retalls" +} diff --git a/tools/msty_ca/tr_010.json b/tools/msty_ca/tr_010.json new file mode 100644 index 0000000..f2c3560 --- /dev/null +++ b/tools/msty_ca/tr_010.json @@ -0,0 +1,221 @@ +{ + "View Tools Usage": "Mostra l'ús de les eines", + "No Tool Calls Found": "No s'ha trobat cap crida a eines", + "It seems there were some tools being able to the model but it did not make any tool calls. This could be because the model did not need to use any tools.": "Sembla que hi havia algunes eines disponibles per al model, però no ha fet cap crida a eines. Pot ser que el model no hagi necessitat utilitzar cap eina.", + "Toolset | Toolsets": "Conjunt d'eines | Conjunts d'eines", + "No Toolsets found": "No s'ha trobat cap conjunt d'eines", + "Toolsets are a collection of tools with parameters. You can create a toolset and add tools to it. When chatting with a model, you can select one or multiple toolsets to use with the model.": "Els conjunts d'eines són un recull d'eines amb paràmetres. Podeu crear un conjunt d'eines i afegir-hi eines. Quan xategeu amb un model, podeu seleccionar un o més conjunts d'eines per fer-los servir amb el model.", + "Please add some tools to get started.": "Afegiu unes quantes eines per començar.", + "No tools in this toolset": "No hi ha cap eina en aquest conjunt d'eines", + "Enabled features": "Funcions activades", + "Loading feature details…": "S'estan carregant els detalls de la funció…", + "All features": "Totes les funcions", + "Unable to load feature details": "No s'han pogut carregar els detalls de la funció", + "Add New @:toolbox.toolsets.title": "Afegeix un conjunt d'eines nou", + "Create a new toolset to group tools together. You can add tools to the toolset and use it with a model. Make sure to set/overwrite the parameters for each tool in the toolset by clicking {icon} button.": "Creeu un conjunt d'eines nou per agrupar eines. Podeu afegir eines al conjunt i fer-lo servir amb un model. Assegureu-vos de definir o sobreescriure els paràmetres de cada eina del conjunt fent clic al botó {icon}.", + "Set Parameters for {toolName}": "Defineix els paràmetres de {toolName}", + "Set parameters for the {toolName} tool. You can override the default parameters set for the tool. Use the Tool Console to test the tool, view available features, and limit features if needed.": "Definiu els paràmetres de l'eina {toolName}. Podeu substituir els paràmetres per defecte definits per a l'eina. Feu servir la consola de l'eina per provar-la, veure les funcions disponibles i limitar-les si cal.", + "Toolset saved and added to the toolbox. You can now use it with a model.": "S'ha desat el conjunt d'eines i s'ha afegit a la caixa d'eines. Ara el podeu fer servir amb un model.", + "@:failedToSave toolset.": "No s'ha pogut desar el conjunt d'eines.", + "Edit Toolset": "Edita el conjunt d'eines", + "Edit the name and notes of the toolset. You can also add or remove tools from the toolset and tweak the parameters or limit features for each tool by clicking {icon} button.": "Editeu el nom i les notes del conjunt d'eines. També podeu afegir o treure eines del conjunt i ajustar els paràmetres o limitar les funcions de cada eina fent clic al botó {icon}.", + "Toolset @:updatedSuccess": "S'ha actualitzat el conjunt d'eines correctament", + "@:failedToUpdate toolset.": "No s'ha pogut actualitzar el conjunt d'eines.", + "Delete Toolset": "Suprimeix el conjunt d'eines", + "Are you sure you want to delete {toolsetName}?": "Segur que voleu suprimir {toolsetName}?", + "Toolset deleted": "S'ha suprimit el conjunt d'eines", + "@:failedToDelete toolset": "No s'ha pogut suprimir el conjunt d'eines", + "Delete All Toolsets": "Suprimeix tots els conjunts d'eines", + "Are you sure you want to delete all toolsets? This action cannot be undone.": "Segur que voleu suprimir tots els conjunts d'eines? Aquesta acció no es pot desfer.", + "All toolsets have been deleted successfully": "S'han suprimit tots els conjunts d'eines correctament", + "Failed to delete all toolsets": "No s'han pogut suprimir tots els conjunts d'eines", + "Export @:toolbox.toolsets.title": "Exporta els conjunts d'eines", + "For security, sensitive configuration values can be removed before exporting. Select which environment variables and arguments to scrub for each tool.": "Per seguretat, es poden eliminar els valors de configuració sensibles abans d'exportar. Seleccioneu quines variables d'entorn i arguments voleu netejar de cada eina.", + "Environment variables to scrub": "Variables d'entorn a netejar", + "Arguments to scrub": "Arguments a netejar", + "Scrub custom arguments string": "Neteja la cadena d'arguments personalitzats", + "Select environment variables to remove values": "Seleccioneu les variables d'entorn de les quals voleu eliminar els valors", + "Select arguments to remove values": "Seleccioneu els arguments dels quals voleu eliminar els valors", + "No configuration data to scrub": "No hi ha cap dada de configuració a netejar", + "Common sensitive values are pre-selected for your security.": "Els valors sensibles habituals estan preseleccionats per a la vostra seguretat.", + "Toolset configuration copied to clipboard": "S'ha copiat la configuració del conjunt d'eines al porta-retalls", + "Toolset configuration downloaded": "S'ha baixat la configuració del conjunt d'eines", + "Failed to fetch toolset data for export": "No s'han pogut obtenir les dades del conjunt d'eines per exportar-les", + "Some tools were not found and skipped: {tools}": "No s'han trobat algunes eines i s'han omès: {tools}", + "{count} tool | {count} tools": "{count} eina | {count} eines", + "View Tools & Notes": "Mostra les eines i les notes", + "Tool Console": "Consola de l'eina", + "You can use this console to test {toolName} and see the output. You can also use it to test the tool with different parameters or limit the available features. All features are enabled by default, select the checkboxes to limit the features to only those selected.": "Podeu fer servir aquesta consola per provar {toolName} i veure'n la sortida. També la podeu utilitzar per provar l'eina amb paràmetres diferents o limitar les funcions disponibles. Totes les funcions estan activades per defecte; marqueu les caselles per limitar les funcions només a les seleccionades.", + "List {toolName}'s Features": "Llista les funcions de {toolName}", + "Missing {count} Required @:argument": "Falten {count} arguments obligatoris", + "@:continue with Missing @:argument": "Continua tot i que falti l'argument", + "View Source on GitHub": "Mostra el codi font a GitHub", + "Enable specific features for this tool": "Activa funcions específiques per a aquesta eina", + "Search or pick features to allow": "Cerqueu o trieu les funcions que voleu permetre", + "Currently enabled features": "Funcions activades actualment", + "Tool Call": "Crida a l'eina", + "Add the required properties to call {featureName}. You can add extra properties if you want. Be careful with calling the tool just like that esp. without the right values.": "Afegiu les propietats necessàries per cridar {featureName}. Si voleu, podeu afegir propietats addicionals. Aneu amb compte de no cridar l'eina sense més, sobretot sense els valors correctes.", + "@:select a property": "@:select una propietat", + "Add a new property": "Afegeix una propietat nova", + "Execute @:toolbox.toolsets.console.toolCall": "Executa la @:toolbox.toolsets.console.toolCall", + "Click to manage used toolsets": "Feu clic per gestionar els conjunts d'eines utilitzats", + "@:select model may not support tools.": "És possible que el model seleccionat no admeti eines.", + "{count} Active Toolset | {count} Active Toolsets": "{count} conjunt d'eines actiu | {count} conjunts d'eines actius", + "{count} Active Live Context | {count} Active Live Contexts": "{count} context en directe actiu | {count} contextos en directe actius", + "Live @:context": "@:context en directe", + "Live Contexts": "Contextos en directe", + "Untitled Live Context": "Context en directe sense títol", + "Select Source": "Selecciona la font", + "Toggle to include or exclude this source from the context": "Activeu-ho per incloure o excloure aquesta font del context", + "Add New @:liveContexts.title": "Afegeix un context en directe nou", + "Create a new @:liveContexts.title source to add external data context to your conversation.": "Creeu una font de context en directe nova per afegir context de dades externes a la vostra conversa.", + "Failed to add @:liveContexts.title": "No s'ha pogut afegir el context en directe", + "@:liveContexts.title added": "S'ha afegit el context en directe", + "Edit @:liveContexts.title": "Edita el context en directe", + "Provide a prompt for Push-mode here; include any Pull-mode details in the Notes section.": "Indiqueu aquí una indicació per al mode d'emissió (push); incloeu qualsevol detall del mode de recepció (pull) a la secció de notes.", + "Endpoint Details": "Detalls del punt final", + "URL": "URL", + "Custom Headers": "Capçaleres personalitzades", + "Has Body": "Té cos", + "Custom Processing": "Processament personalitzat", + "Prompt Template": "Plantilla d'indicació", + "Request Headers": "Capçaleres de la sol·licitud", + "Add request headers as a JSON object. This will be sent with the request to the API endpoint.": "Afegiu les capçaleres de la sol·licitud com a objecte JSON. S'enviaran amb la sol·licitud al punt final de l'API.", + "{'{'}\n \"Authorization\": \"Bearer {'{'}apiKey:'key'{'}'}\",\n \"X-From\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}": "{'{'}\n \"Authorization\": \"Bearer {'{'}apiKey:'key'{'}'}\",\n \"X-From\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}", + "Request Body": "Cos de la sol·licitud", + "Add request body as a JSON object. This will be sent with the request to the API endpoint.": "Afegiu el cos de la sol·licitud com a objecte JSON. S'enviarà amb la sol·licitud al punt final de l'API.", + "{'{'}\n \"q\": \"{'{'}query:'term'{'}'}\",\n \"from\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}": "{'{'}\n \"q\": \"{'{'}query:'term'{'}'}\",\n \"from\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}", + "Dynamic Placeholders": "Marcadors de posició dinàmics", + "Placeholder syntax": "Sintaxi dels marcadors de posició", + "Placeholders:": "Marcadors de posició:", + "Processing Function": "Funció de processament", + "Add a processing function to transform the response data before using it in the conversation. The function should return a string.": "Afegiu una funció de processament per transformar les dades de la resposta abans de fer-les servir a la conversa. La funció ha de retornar una cadena.", + "function process({'{'}data, placeholders{'}'}) {'{'}": "function process({'{'}data, placeholders{'}'}) {'{'}", + " // access data and optional placeholders\n return JSON.stringify(data)": " // accedeix a les dades i als marcadors de posició opcionals\n return JSON.stringify(data)", + "{'}'}": "{'}'}", + "Access via placeholders param": "Accedeix-hi mitjançant el paràmetre placeholders", + "Use placeholders in code:": "Feu servir marcadors de posició al codi:", + "Enter test values for detected placeholders to test the endpoint.": "Introduïu valors de prova per als marcadors de posició detectats per provar el punt final.", + "@:liveContexts.title updated": "S'ha actualitzat el context en directe", + "Failed to update @:liveContexts.title": "No s'ha pogut actualitzar el context en directe", + "Delete @:liveContexts.title": "Suprimeix el context en directe", + "Are you sure you want to delete {liveContextName}?": "Segur que voleu suprimir {liveContextName}?", + "@:liveContexts.title deleted": "S'ha suprimit el context en directe", + "Failed to delete @:liveContexts.title": "No s'ha pogut suprimir el context en directe", + "No @:liveContexts.title found": "No s'ha trobat cap context en directe", + "@:liveContexts.title are external data contexts that you can add to your conversation. You can create a new @:liveContexts.title source and use it with a model.": "Els @:liveContexts.title són contextos de dades externes que podeu afegir a la vostra conversa. Podeu crear una font de @:liveContexts.title nova i fer-la servir amb un model.", + "Delete All @:liveContexts.contexts": "Suprimeix tots els contextos en directe", + "Are you sure you want to delete all live contexts? This action cannot be undone.": "Segur que voleu suprimir tots els contextos en directe? Aquesta acció no es pot desfer.", + "All live contexts have been deleted successfully": "S'han suprimit tots els contextos en directe correctament", + "Failed to delete all live contexts": "No s'han pogut suprimir tots els contextos en directe", + "Export @:liveContexts.title": "Exporta el context en directe", + "For security, sensitive header values can be removed before exporting. Select which headers to scrub.": "Per seguretat, es poden eliminar els valors de capçalera sensibles abans d'exportar. Seleccioneu quines capçaleres voleu netejar.", + "Headers to scrub": "Capçaleres a netejar", + "Select headers to remove values": "Seleccioneu les capçaleres de les quals voleu eliminar els valors", + "Common sensitive headers are pre-selected for your security.": "Les capçaleres sensibles habituals estan preseleccionades per a la vostra seguretat.", + "Live context configuration copied to clipboard": "S'ha copiat la configuració del context en directe al porta-retalls", + "Live context configuration downloaded": "S'ha baixat la configuració del context en directe", + "Push": "Emissió (push)", + "Pull": "Recepció (pull)", + "Push mode: runs automatically before the model replies": "Mode d'emissió (push): s'executa automàticament abans que el model respongui", + "Pull mode: called on-demand by model": "Mode de recepció (pull): el model el crida sota demanda", + "Mode | Modes": "Mode | Modes", + "@:modes.mode": "@:modes.mode", + "Exit {mode} @:modes.mode": "Surt del mode {mode}", + "Zen": "Zen", + "a state of calm attentiveness": "un estat d'atenció serena", + "New @:modes.zenMode.title @:conversation.title": "Conversa nova en mode Zen", + "@:modes.vaporMode.vapor @:modes.mode": "@:modes.mode @:modes.vaporMode.vapor", + "Vapor": "Vapor", + "Conversations will not be saved in your history and will disappear when you turn it off or navigate away": "Les converses no es desaran al vostre historial i desapareixeran quan ho desactiveu o navegueu cap a una altra banda", + "This will disappear when you turn off @:modes.vaporMode.vapor @:modes.mode or navigate away": "Això desapareixerà quan desactiveu el @:modes.mode @:modes.vaporMode.vapor o navegueu cap a una altra banda", + "Exit @:modes.vaporMode.vapor @:modes.mode": "Surt del @:modes.mode @:modes.vaporMode.vapor", + "Enter @:modes.vaporMode.vapor @:modes.mode": "Entra al @:modes.mode @:modes.vaporMode.vapor", + "@:save @:conversation.title": "Desa la conversa", + "@:modes.vaporMode.vapor chat has been preserved": "S'ha conservat el xat @:modes.vaporMode.vapor", + "Failed to preserve @:modes.vaporMode.vapor chat": "No s'ha pogut conservar el xat @:modes.vaporMode.vapor", + "Focus @:modes.mode": "@:modes.mode Focus", + "Normal @:modes.mode": "@:modes.mode normal", + "Query": "Consulta", + "Search Items": "Cerca elements", + "No results found": "No s'ha trobat cap resultat", + "Try searching for a different term": "Proveu de cercar un altre terme", + "@:conversation.title": "@:conversation.title", + "Found {count} result | Found {count} results": "S'ha trobat {count} resultat | S'han trobat {count} resultats", + "Search {entity}": "Cerca {entity}", + "Look up {entity} quickly using keywords": "Cerqueu {entity} ràpidament amb paraules clau", + "Search matches all words by default (e.g., {example} → matches text containing both words in any order)": "La cerca coincideix amb totes les paraules per defecte (p. ex., {example} → coincideix amb text que conté totes dues paraules en qualsevol ordre)", + "blue car": "cotxe blau", + "Use {operator} for partial matches (e.g., {example})": "Feu servir {operator} per a coincidències parcials (p. ex., {example})", + "*": "*", + "run* → runs, running": "corr* → corre, corrent", + "@:user {operator} to match any term (e.g., {example})": "Feu servir {operator} per coincidir amb qualsevol terme (p. ex., {example})", + "OR": "OR", + "apple OR orange": "poma OR taronja", + "Use double quotes {operator} for exact matches (e.g., {example})": "Feu servir cometes dobles {operator} per a coincidències exactes (p. ex., {example})", + "\"\"": "\"\"", + "\"blue car\"": "\"cotxe blau\"", + "Use {operator} to escape special characters (e.g., {example})": "Feu servir {operator} per escapar caràcters especials (p. ex., {example})", + "\"C++\", \"node.js\"": "\"C++\", \"node.js\"", + "Clear Search": "Esborra la cerca", + "Helpful Tips": "Consells útils", + "Hide Search": "Amaga la cerca", + "@:bookmark {item}": "Marca {item}", + "Jump to @:bookmarked {item}": "Vés a {item} marcat", + "@:bookmarked {item}": "{item} marcat", + "{item} @:bookmarked": "{item} marcat", + "Unable to bookmark {item}": "No s'ha pogut marcar {item}", + "@:bookmarked {item} has been deleted": "S'ha suprimit {item} marcat", + "No bookmarks available.": "No hi ha marcadors disponibles.", + "Get started by bookmarking {item}": "Comenceu marcant {item}", + "Remove @:bookmarked {item}": "Treu {item} dels marcadors", + "{item} removed from bookmarks": "S'ha tret {item} dels marcadors", + "Unable to remove {item} from bookmarks": "No s'ha pogut treure {item} dels marcadors", + "Turnstile | Turnstiles": "Turnstile | Turnstiles", + "New @:turnstile.title": "@:turnstile.title nou", + "@:select a @:turnstile.title": "@:select un @:turnstile.title", + "Click to open or Alt+Click to add to queue": "Feu clic per obrir o Alt+clic per afegir a la cua", + "No Queued @:entry | {count}/{total} @:entry Queued | {count}/{total} @:entry Queued": "Cap @:entry en cua | {count}/{total} @:entry en cua | {count}/{total} @:entry en cua", + "Once your prompt is ready, click @:turnstile.queueEntry to add an entry to the queue.": "Quan la vostra indicació estigui a punt, feu clic a @:turnstile.queueEntry per afegir una entrada a la cua.", + "Manage Saved Turnstiles": "Gestiona els Turnstiles desats", + "Save @:turnstile.title As": "Desa el @:turnstile.title com a", + "@:turnstile.title has been saved.": "S'ha desat el @:turnstile.title correctament.", + "Failed to save turnstile.": "No s'ha pogut desar el Turnstile.", + "Load @:turnstile.title": "Carrega el @:turnstile.title", + "@:turnstile.title Loaded!": "@:turnstile.title carregat!", + "{count} entry loaded and enqueued. | {count} entries are loaded and enqueued.": "S'ha carregat i encuat {count} entrada. | S'han carregat i encuat {count} entrades.", + "Failed to load turnstile.": "No s'ha pogut carregar el Turnstile.", + "Clear Queue": "Buida la cua", + "Are you sure you want to clear the queue? This will remove all the messages you have added.": "Segur que voleu buidar la cua? Això eliminarà tots els missatges que heu afegit.", + "New Entry": "Entrada nova", + "Invalid Entries": "Entrades no vàlides", + "Some entries are invalid or missing required fields. Please correct them before continuing.": "Algunes entrades no són vàlides o els falten camps obligatoris. Corregiu-les abans de continuar.", + "Couldn't run {metaType}. Please make sure that it is not the first entry in the queue.": "No s'ha pogut executar {metaType}. Assegureu-vos que no sigui la primera entrada de la cua.", + "@:turnstile.title has been updated.": "S'ha actualitzat el @:turnstile.title correctament.", + "Failed to update turnstile. Have you set prompt and model?": "No s'ha pogut actualitzar el Turnstile. Heu definit la indicació i el model?", + "Failed to save turnstile. Have you set prompt and model?": "No s'ha pogut desar el Turnstile. Heu definit la indicació i el model?", + "Delete Selected @:turnstile.title | Delete Selected @:turnstile.title": "Suprimeix el @:turnstile.title seleccionat | Suprimeix els @:turnstile.title seleccionats", + "Delete @:turnstile.title": "Suprimeix el @:turnstile.title", + "Are you sure you want to delete {turnstileName}? | Are you sure you want to delete {count} turnstiles?": "Segur que voleu suprimir {turnstileName}? | Segur que voleu suprimir {count} Turnstiles?", + "No @:turnstile.title Available.": "No hi ha cap @:turnstile.title disponible.", + "Get started by adding or importing a new @:turnstile.title{'.'}": "Comenceu afegint o important un @:turnstile.title nou{'.'}", + "@:new @:turnstile.title": "Turnstile nou", + "@:entry {index}": "@:entry {index}", + "Add @:message.renderingActions.continueGeneration": "Afegeix @:message.renderingActions.continueGeneration", + "Add @:regenerate": "Afegeix @:regenerate", + "Add @:persona.title": "Afegeix @:persona.title", + "Add @:contextShield.title": "Afegeix @:contextShield.title", + "Add @:contextShield.contextShieldWithSummary": "Afegeix @:contextShield.contextShieldWithSummary", + "Import @:turnstile.title": "Importa el @:turnstile.title", + "Drag and drop a zipped Msty @:turnstile.title to import and create new turnstiles. In case of duplicate names, the imported turnstiles will be renamed. You can change it later.": "Arrossegueu i deixeu anar un @:turnstile.title de Msty comprimit per importar-lo i crear Turnstiles nous. En cas de noms duplicats, els Turnstiles importats es reanomenaran. Els podeu canviar més endavant.", + "Turnstiles imported": "S'han importat els Turnstiles", + "Failed to import turnstiles": "No s'han pogut importar els Turnstiles", + "Export @:turnstile.title": "Exporta el @:turnstile.title", + "Export Selected @:turnstile.title | Export Selected @:turnstile.title": "Exporta el @:turnstile.title seleccionat | Exporta els @:turnstile.title seleccionats", + "@:turnstile.title exported as {fileName} | @:turnstile.title exported as {fileName}": "@:turnstile.title exportat com a {fileName} | @:turnstile.title exportats com a {fileName}", + "Failed to export @:turnstile.title | Failed to export @:turnstile.title": "No s'ha pogut exportar el @:turnstile.title | No s'han pogut exportar els @:turnstile.title", + "Model Matchmaker": "Emparellador de models", + "Adjust the gravity sliders for strengths like coding, reasoning, or math, and Matchmaker will rank and recommend the best models for your needs. Results may vary by data quality, model size, and task complexity.": "Ajusteu els controls lliscants de gravetat per a punts forts com ara la programació, el raonament o les matemàtiques, i l'Emparellador classificarà i recomanarà els millors models per a les vostres necessitats. Els resultats poden variar segons la qualitat de les dades, la mida del model i la complexitat de la tasca.", + "Found your model?": "Heu trobat el vostre model?", + "Test and compare in Msty Studio.": "Proveu-lo i compareu-lo a Msty Studio." +} diff --git a/tools/msty_ca/tr_011.json b/tools/msty_ca/tr_011.json new file mode 100644 index 0000000..a906599 --- /dev/null +++ b/tools/msty_ca/tr_011.json @@ -0,0 +1,221 @@ +{ + "Gravity": "Gravetat", + "Remote Only": "Només remots", + "Ranked Models": "Models classificats", + "No models found. Try adjusting your requirements.": "No s'ha trobat cap model. Proveu d'ajustar els vostres requisits.", + "Coding": "Programació", + "The ability to write code in a programming language.": "La capacitat d'escriure codi en un llenguatge de programació.", + "Agentic Coding": "Programació agèntica", + "The agentic ability to write code in a programming language.": "La capacitat agèntica d'escriure codi en un llenguatge de programació.", + "@:data Analysis": "Anàlisi de dades", + "The ability to analyze data and generate insights.": "La capacitat d'analitzar dades i generar observacions.", + "Instructions Following": "Seguiment d'instruccions", + "The ability to follow instructions and perform tasks.": "La capacitat de seguir instruccions i fer tasques.", + "GOAT: Generalist of All Trades": "GOAT: generalista de tots els oficis", + "The ability to perform a wide range of tasks.": "La capacitat de fer una àmplia gamma de tasques.", + "The ability to understand and generate human language.": "La capacitat d'entendre i generar llenguatge humà.", + "Mathematics": "Matemàtiques", + "The ability to perform mathematical calculations.": "La capacitat de fer càlculs matemàtics.", + "Paraphrasing": "Paràfrasi", + "Demonstrated rewriting ability to rephrase any given text.": "Capacitat demostrada de reescriptura per reformular qualsevol text.", + "Critical Thinking - the ability to reason and make decisions.": "Pensament crític: la capacitat de raonar i prendre decisions.", + "Simplification": "Simplificació", + "The ability to simplify any given complex text.": "La capacitat de simplificar qualsevol text complex.", + "Story Generation": "Generació d'històries", + "The ability to generate stories or narratives.": "La capacitat de generar històries o narracions.", + "Summarization": "Resum", + "The ability of summarizing textual and numerical information.": "La capacitat de resumir informació textual i numèrica.", + "Tools Usage": "Ús d'eines", + "The ability to call and use external tools.": "La capacitat de cridar i fer servir eines externes.", + "Max Input Tokens": "Màxim de tokens d'entrada", + "The max no. of tokens accepted in one call.": "El nombre màxim de tokens acceptats en una crida.", + "The max no. of tokens generated in one call.": "El nombre màxim de tokens generats en una crida.", + "Input Tokens Savings": "Estalvi de tokens d'entrada", + "Input Cost/Million Tokens": "Cost d'entrada/milió de tokens", + "The cost savings of generating input tokens.": "L'estalvi de costos en generar tokens d'entrada.", + "Output Tokens Savings": "Estalvi de tokens de sortida", + "Output Cost/Million Tokens": "Cost de sortida/milió de tokens", + "The cost savings of generating output tokens.": "L'estalvi de costos en generar tokens de sortida.", + "Normalized Score": "Puntuació normalitzada", + "Reset Strengths": "Restableix els punts forts", + "@:save Strengths As @:preset": "Desa els punts forts com a predefinit", + "Failed to save strengths preset.": "No s'ha pogut desar el predefinit de punts forts.", + "Strengths preset saved.": "S'ha desat el predefinit de punts forts.", + "Strengths preset loaded.": "S'ha carregat el predefinit de punts forts.", + "Failed to delete strengths preset.": "No s'ha pogut suprimir el predefinit de punts forts.", + "Strengths preset deleted.": "S'ha suprimit el predefinit de punts forts.", + "Model Cost Calculator": "Calculadora de cost dels models", + "Calculate and compare costs for AI models from OpenAI, Anthropic, Google, and more. Estimate your expenses based on input/output token usage and model pricing. These are estimates only and actual costs may vary.": "Calculeu i compareu els costos dels models d'IA d'OpenAI, Anthropic, Google i més. Estimeu les vostres despeses segons l'ús de tokens d'entrada/sortida i els preus del model. Són només estimacions i els costos reals poden variar.", + "Token Inputs": "Entrades de tokens", + "Filters": "Filtres", + "VRAM Calculator": "Calculadora de VRAM", + "Check to see if a model fits your device's VRAM before downloading or running it. This calculator provides estimated VRAM requirements based on model architecture and size. Select one of the options below to get started.": "Comproveu si un model cap a la VRAM del vostre dispositiu abans de baixar-lo o executar-lo. Aquesta calculadora ofereix una estimació dels requisits de VRAM segons l'arquitectura i la mida del model. Seleccioneu una de les opcions de sota per començar.", + "Copy {item} to Workspaces": "Copia {item} als espais de treball", + "Copy/Move {item} to Workspaces": "Copia/mou {item} als espais de treball", + "Action": "Acció", + "Copy {item} to one or more workspaces.": "Copieu {item} a un o més espais de treball.", + "Copy/Move {item} to one or more workspaces.": "Copieu/moveu {item} a un o més espais de treball.", + "{item} copied to {count} workspace | {item} copied to {count} workspaces": "S'ha copiat {item} a {count} espai de treball | S'ha copiat {item} a {count} espais de treball", + "{item} moved to {count} workspace | {item} moved to {count} workspaces": "S'ha mogut {item} a {count} espai de treball | S'ha mogut {item} a {count} espais de treball", + "Failed to copy {item} to {count} workspace | Failed to copy {item} to {count} workspaces": "No s'ha pogut copiar {item} a {count} espai de treball | No s'ha pogut copiar {item} a {count} espais de treball", + "Failed to move {item} to {count} workspace | Failed to move {item} to {count} workspaces": "No s'ha pogut moure {item} a {count} espai de treball | No s'ha pogut moure {item} a {count} espais de treball", + "Partially Copied": "Copiat parcialment", + "Could not copy {item} to {count} workspace | Could not copy {item} to {count} workspaces": "No s'ha pogut copiar {item} a {count} espai de treball | No s'ha pogut copiar {item} a {count} espais de treball", + "Partially Moved": "Mogut parcialment", + "Could not move {item} to {count} workspace | Could not move {item} to {count} workspaces": "No s'ha pogut moure {item} a {count} espai de treball | No s'ha pogut moure {item} a {count} espais de treball", + "Some workspaces({workspaces}) were skipped because {item} already exists in them": "S'han omès alguns espais de treball ({workspaces}) perquè {item} ja hi existeix", + "Already existing copies of {item} will be skipped.": "Les còpies ja existents de {item} s'ometran.", + "Assignment | Assignments": "Assignació | Assignacions", + "Model Squad": "Esquadra de models", + "@:modelSquad.title is a collection of specialized AI models, where each models is assigned to perform a specific task, such as Auto Title Generation, @:context Summary Generation, etc. When it's time to perform that specific task, the assigned model is selected automatically.": "@:modelSquad.title és un recull de models d'IA especialitzats, on cada model s'assigna per fer una tasca específica, com ara la generació automàtica de títols, la generació del resum de @:context, etc. Quan arriba el moment de fer aquesta tasca específica, el model assignat se selecciona automàticament.", + "Add New @:assignment": "Afegeix una @:assignment nova", + "No more tasks available": "No hi ha més tasques disponibles", + "Auto Title Generation": "Generació automàtica de títols", + "@:contextShield.title Summary Generation": "Generació del resum de l'@:contextShield.title", + "@:rtd.title Prompt Synthesis": "Síntesi d'indicacions de @:rtd.title", + "Forge Content Generation": "Generació de contingut de la forja", + "@:pii.scrubbing.title": "@:pii.scrubbing.title", + "Icon Finder": "Cercador d'icones", + "@:assignment saved": "@:assignment desada", + "@:assignment failed to save": "No s'ha pogut desar l'@:assignment", + "Assign Model for {task}": "Assigna un model per a {task}", + "Select a model to assign to the {task} task in ModelSquad.": "Seleccioneu un model per assignar-lo a la tasca {task} a l'Esquadra de models.", + "Select Model": "Selecciona un model", + "Choose a model...": "Trieu un model...", + "Currently assigned: {model}": "Assignat actualment: {model}", + "Unknown model": "Model desconegut", + "Assign Model": "Assigna el model", + "Change Model": "Canvia el model", + "This model will be used automatically when the {task} task is performed.": "Aquest model s'utilitzarà automàticament quan es faci la tasca {task}.", + "Model assigned to {task} successfully!": "El model s'ha assignat a {task} correctament!", + "Please select a model to assign.": "Seleccioneu un model per assignar-lo.", + "Failed to save model assignment. Please try again.": "No s'ha pogut desar l'assignació del model. Torneu-ho a provar.", + "PII (Personally Identifiable Information)": "PII (informació d'identificació personal)", + "PII Scrubbing": "Neteja de PII", + "Automatically detect and remove personally identifiable information from Knowledge Stack content before displaying it in conversations.": "Detecta i elimina automàticament la informació d'identificació personal del contingut de la pila de coneixement abans de mostrar-la a les converses.", + "Using {model} for PII detection and removal.": "S'utilitza {model} per detectar i eliminar la PII.", + "No model assigned for @:pii.scrubbing.title in ModelSquad. Knowledge Stack retrieval will fail until a model is assigned.": "No hi ha cap model assignat per a @:pii.scrubbing.title a l'Esquadra de models. La recuperació de la pila de coneixement fallarà fins que s'assigni un model.", + "@:pii.scrubbing.title configuration error - aborting Knowledge Stack retrieval for security": "Error de configuració de @:pii.scrubbing.title: s'interromp la recuperació de la pila de coneixement per seguretat", + "Error setting up @:pii.scrubbing.title - aborting Knowledge Stack retrieval": "Error en configurar @:pii.scrubbing.title: s'interromp la recuperació de la pila de coneixement", + "[PERSON_NAME]": "[PERSON_NAME]", + "[EMAIL_ADDRESS]": "[EMAIL_ADDRESS]", + "[PHONE_NUMBER]": "[PHONE_NUMBER]", + "[ADDRESS]": "[ADDRESS]", + "[ID_NUMBER]": "[ID_NUMBER]", + "[CREDIT_CARD]": "[CREDIT_CARD]", + "[BANK_ACCOUNT]": "[BANK_ACCOUNT]", + "[IP_ADDRESS]": "[IP_ADDRESS]", + "[DATE_OF_BIRTH]": "[DATE_OF_BIRTH]", + "Personal Identifiers": "Identificadors personals", + "Contact Information": "Informació de contacte", + "Financial Information": "Informació financera", + "Medical Information": "Informació mèdica", + "Digital Identifiers": "Identificadors digitals", + "Biometric Data": "Dades biomètriques", + "Location Data": "Dades d'ubicació", + "Persona | Personas": "Personalitat | Personalitats", + "New @:persona.title": "@:persona.title nova", + "Active @:persona.title": "@:persona.title activa", + "No @:persona.title Available.": "No hi ha cap @:persona.title disponible.", + "Get started by adding or importing a new @:persona.title{'.'} You can also import default Personas to get started.": "Comenceu afegint o important una @:persona.title nova{'.'} També podeu importar personalitats per defecte per començar.", + "@:contextShield.title Position": "Posició de l'@:contextShield.title", + "@:persona.title saved": "@:persona.title desada", + "@:persona.title failed to save": "No s'ha pogut desar la @:persona.title", + "@:persona.title updated": "@:persona.title actualitzada", + "Could not update @:persona.title": "No s'ha pogut actualitzar la @:persona.title", + "Delete Selected @:persona.title": "Suprimeix la @:persona.title seleccionada", + "Delete @:persona.title": "Suprimeix la @:persona.title", + "Are you sure you want to delete {personaName}? | Are you sure you want to delete {count} @:persona.title{'?'}": "Segur que voleu suprimir {personaName}? | Segur que voleu suprimir {count} @:persona.title{'?'}", + "@:persona.title deleted | @:persona.title deleted": "@:persona.title suprimida | @:persona.title suprimides", + "Could not delete @:persona.title | Could not delete @:persona.title": "No s'ha pogut suprimir la @:persona.title | No s'han pogut suprimir les @:persona.title", + "Import @:persona.title": "Importa la @:persona.title", + "Drag and drop a zipped Msty @:persona.title to import and create new Personas. In case of duplicate names, the imported Personas will be renamed. You can change it later.": "Arrossegueu i deixeu anar una @:persona.title de Msty comprimida per importar-la i crear personalitats noves. En cas de noms duplicats, les personalitats importades es reanomenaran. Les podeu canviar més endavant.", + "Personas imported": "S'han importat les personalitats", + "Failed to import Personas": "No s'han pogut importar les personalitats", + "Export @:persona.title": "Exporta la @:persona.title", + "Export Selected @:persona.title | Export Selected @:persona.title": "Exporta la @:persona.title seleccionada | Exporta les @:persona.title seleccionades", + "@:persona.title exported as {fileName} | @:persona.title exported as {fileName}": "@:persona.title exportada com a {fileName} | @:persona.title exportades com a {fileName}", + "Failed to export @:persona.title | Failed to export @:persona.title": "No s'ha pogut exportar la @:persona.title | No s'han pogut exportar les @:persona.title", + "New Folder at Root": "Carpeta nova a l'arrel", + "Set as Default Folder": "Estableix com a carpeta per defecte", + "Unset Default Folder": "Desfés la carpeta per defecte", + "@:folder updated": "S'ha actualitzat la carpeta", + "Failed to update @:folder": "No s'ha pogut actualitzar la carpeta", + "@:folder created": "S'ha creat la carpeta", + "Failed to create @:folder": "No s'ha pogut crear la carpeta", + "Delete @:folder": "Suprimeix la carpeta", + "Are you sure you want to delete {folderName} with all its @:persona.title{'?'}": "Segur que voleu suprimir {folderName} amb totes les seves @:persona.title{'?'}", + "@:folder deleted": "S'ha suprimit la carpeta", + "Failed to delete @:folder": "No s'ha pogut suprimir la carpeta", + "@:select a @:persona.title": "@:select una @:persona.title", + "Turn Auto Responder On": "Activa el responedor automàtic", + "Turn Auto Responder Off": "Desactiva el responedor automàtic", + "Hide and Isolate System Prompt": "Amaga i aïlla la indicació del sistema", + "Isolate Response": "Aïlla la resposta", + "Auto Responder": "Responedor automàtic", + "Context Count": "Recompte de context", + "Set the number of recent messages to use as context for the @:persona.title{'.'}": "Definiu el nombre de missatges recents que s'utilitzaran com a context per a la @:persona.title{'.'}", + "Few-Shot Prompts": "Indicacions amb pocs exemples (few-shot)", + "Few-shot learning is a machine learning technique that allows you to train a model with a small amount of data. You can use few-shot prompts to provide examples to the model to help it understand the context and generate better responses.": "L'aprenentatge amb pocs exemples (few-shot) és una tècnica d'aprenentatge automàtic que us permet entrenar un model amb una petita quantitat de dades. Podeu fer servir indicacions few-shot per proporcionar exemples al model i ajudar-lo a entendre el context i generar respostes millors.", + "Add New Shot": "Afegeix un exemple nou", + "Cost": "Cost", + "Cost in USD": "Cost en USD", + "Prompt Tokens": "Tokens de la indicació", + "Completion Tokens": "Tokens de la compleció", + "Total Tokens": "Tokens totals", + "Usage": "Ús", + "Tokens": "Tokens", + "Tokens Processed": "Tokens processats", + "@:select a provider | @:select providers": "@:select un proveïdor | @:select proveïdors", + "Tokens Processed for {provider}": "Tokens processats per a {provider}", + "Total Usage": "Ús total", + "From {from} to {to}": "De {from} a {to}", + "Crunching the numbers": "S'estan fent els càlculs", + "Throughput for {model}": "Rendiment de {model}", + "Measured in tokens per second": "Mesurat en tokens per segon", + "Latency for {model}": "Latència de {model}", + "Measured in seconds": "Mesurat en segons", + "Total": "Total", + "Min": "Mín.", + "Max": "Màx.", + "Avg": "Mitj.", + "Today": "Avui", + "Last 7 days": "Últims 7 dies", + "Last 14 days": "Últims 14 dies", + "Last 30 days": "Últims 30 dies", + "Last 3 months": "Últims 3 mesos", + "Last 6 months": "Últims 6 mesos", + "Last 12 months": "Últims 12 mesos", + "Month to date": "Del mes fins ara", + "Year to date": "De l'any fins ara", + "All time": "Des de sempre", + "@:select date range": "@:select l'interval de dates", + "Month": "Mes", + "Year": "Any", + "Day": "Dia", + "Week": "Setmana", + "Insights Summary": "Resum d'observacions", + "No data available for the selected date range and providers.": "No hi ha dades disponibles per a l'interval de dates i els proveïdors seleccionats.", + "No data available for the selected date range and provider.": "No hi ha dades disponibles per a l'interval de dates i el proveïdor seleccionats.", + "Throughput": "Rendiment", + "No data available for the selected date range, provider and model.": "No hi ha dades disponibles per a l'interval de dates, el proveïdor i el model seleccionats.", + "Latency": "Latència", + "Hide {item}": "Amaga {item}", + "{item} has been hidden": "S'ha amagat {item}", + "Unable to hide {item}": "No s'ha pogut amagar {item}", + "Unhide Parent {item}": "Mostra el {item} pare", + "Hidden Parent Content. Click to unhide.": "Contingut pare amagat. Feu clic per mostrar-lo.", + "Show {item}": "Mostra {item}", + "Failed to verify license. Please try again.": "No s'ha pogut verificar la llicència. Torneu-ho a provar.", + "Enter Aurum License Key": "Introduïu la clau de llicència Aurum", + "You are using the {licenseType} license.": "Esteu utilitzant la llicència {licenseType}.", + "License Key": "Clau de llicència", + "Logout": "Tanca la sessió", + "You are using the {licenseType} license and logged in as Owner.": "Esteu utilitzant la llicència {licenseType} i heu iniciat la sessió com a propietari.", + "Activate Aurum License": "Activa la llicència Aurum", + "Enter your license key to unlock premium features": "Introduïu la vostra clau de llicència per desbloquejar les funcions premium", + "Manage License": "Gestiona la llicència", + "Aurum Lifetime": "Aurum de per vida", + "One-time purchase with lifetime access to premium features": "Compra única amb accés de per vida a les funcions premium", + "Aurum Annual": "Aurum anual" +} diff --git a/tools/msty_ca/tr_012.json b/tools/msty_ca/tr_012.json new file mode 100644 index 0000000..9dfe756 --- /dev/null +++ b/tools/msty_ca/tr_012.json @@ -0,0 +1,221 @@ +{ + "Yearly subscription with continuous updates and premium features": "Subscripció anual amb actualitzacions contínues i funcions premium", + "One-time purchase": "Compra única", + "Yearly subscription": "Subscripció anual", + "Verify & Activate": "Verifica i activa", + "Deactivate License": "Desactiva la llicència", + "Licensed to": "Llicència a nom de", + "Expires on": "Caduca el", + "Expired": "Caducada", + "Expires in {days} days": "Caduca d'aquí a {days} dies", + "Need a license?": "Necessiteu una llicència?", + "Purchase at msty.ai": "Compreu-la a msty.ai", + "Already have a license?": "Ja teniu una llicència?", + "Manage Activation": "Gestiona l'activació", + "{item} has been cloned": "S'ha clonat {item}", + "Unable to clone {item}": "No s'ha pogut clonar {item}", + "Clone to {item}": "Clona a {item}", + "Successfully cloned to a new {item} ": "S'ha clonat correctament a un nou {item} ", + "Unable to clone to a new {item}": "No s'ha pogut clonar a un nou {item}", + "Import {item} from JSON Clipboard": "Importa {item} des del porta-retalls JSON", + "Import {item} from JSON File": "Importa {item} des d'un fitxer JSON", + "{count} {item} imported successfully": "S'han importat {count} {item} correctament", + "@:importJson.successMessage.detail {item} to {destination}": "@:importJson.successMessage.detail {item} a {destination}", + "{count} {item} imported successfully and corresponding toolsets auto-created": "S'han importat {count} {item} correctament i s'han creat automàticament els conjunts d'eines corresponents", + "Invalid config or nothing to import. Please make sure the JSON is valid and try again.": "La configuració no és vàlida o no hi ha res a importar. Assegureu-vos que el JSON sigui vàlid i torneu-ho a provar.", + "Failed to import. Please check the JSON and try again.": "No s'ha pogut importar. Comproveu el JSON i torneu-ho a provar.", + "Failed to import {failed} items: {items}": "No s'han pogut importar {failed} elements: {items}", + "Drag and drop a JSON file to import {item}.": "Arrossegueu i deixeu anar un fitxer JSON per importar {item}.", + "Team | Teams": "Equip | Equips", + "@:create @:team.label": "Crea un equip", + "Invite User": "Convida un usuari", + "Overview": "Resum general", + "Users": "Usuaris", + "All Teams": "Tots els equips", + "Team {teamName} successfully created.": "L'equip {teamName} s'ha creat correctament.", + "Member|Members": "Membre|Membres", + "All Users": "Tots els usuaris", + "Create New Team": "Crea un equip nou", + "Edit Team": "Edita l'equip", + "Add Users": "Afegeix usuaris", + "Update Users": "Actualitza els usuaris", + "Add Users to Team": "Afegeix usuaris a l'equip", + "Team Name": "Nom de l'equip", + "Enter the new team name": "Introduïu el nom del nou equip", + "Create a new team to manage resources.": "Creeu un equip nou per gestionar recursos.", + "No users assigned to this team.": "No hi ha cap usuari assignat a aquest equip.", + "Invited": "Convidat", + "Manage your teams and users.": "Gestioneu els vostres equips i usuaris.", + "A team is used to manage resources. You can add users to the team to collaborate and share access to resources.": "Un equip s'utilitza per gestionar recursos. Podeu afegir usuaris a l'equip per col·laborar i compartir l'accés als recursos.", + "Delete Team": "Suprimeix l'equip", + "Are you sure you want to delete": "Segur que voleu suprimir", + "Please type {name} to confirm deletion.": "Escriviu {name} per confirmar la supressió.", + "Policy | Policies": "Política | Polítiques", + "@:toolbox.title": "@:toolbox.title", + "Allow user to use Toolbox feature": "Permet que l'usuari faci servir la funció Caixa d'eines", + "@:promptsLibrary.title": "@:promptsLibrary.title", + "Allow user to use Prompts Library feature": "Permet que l'usuari faci servir la funció Biblioteca d'indicacions", + "@:persona.title": "@:persona.title", + "Allow user to use Persona feature": "Permet que l'usuari faci servir la funció Personalitat", + "@:turnstile.title": "@:turnstile.title", + "Allow user to use Turnstile feature": "Permet que l'usuari faci servir la funció Turnstile", + "@:knowledgeStack.title": "@:knowledgeStack.title", + "Allow user to use Knowledge Stack feature": "Permet que l'usuari faci servir la funció Pila de coneixement", + "Allow user to use @:remoteToolsConnector.title feature": "Permet que l'usuari faci servir la funció @:remoteToolsConnector.title", + "@:rtd.title": "@:rtd.title", + "Allow user to use @:rtd.title feature": "Permet que l'usuari faci servir la funció @:rtd.title", + "@:attachments.title": "@:attachments.title", + "Allow user to use @:attachments.title feature": "Permet que l'usuari faci servir la funció @:attachments.title", + "@:forge.forgeMode.title": "@:forge.forgeMode.title", + "Allow user to use @:forge.forgeMode.title feature": "Permet que l'usuari faci servir la funció @:forge.forgeMode.title", + "@:insights": "@:insights", + "Allow user to use @:insights feature": "Permet que l'usuari faci servir la funció @:insights", + "Msty Studio Web Access": "Accés web a Msty Studio", + "Allow user to access Msty Studio from web browser": "Permet que l'usuari accedeixi a Msty Studio des del navegador web", + "Msty Studio Desktop Access": "Accés d'escriptori a Msty Studio", + "Allow user to access Msty Studio from desktop application": "Permet que l'usuari accedeixi a Msty Studio des de l'aplicació d'escriptori", + "Platform Access": "Accés a la plataforma", + "Manage access to specific model providers.": "Gestioneu l'accés a proveïdors de models específics.", + "You have reached your limit to invite users.": "Heu arribat al límit per convidar usuaris.", + "Logged In As": "Sessió iniciada com a", + "A secure login link will be sent to the provided email address. Aurum license holders must verify their license key before using this feature.": "S'enviarà un enllaç d'inici de sessió segur a l'adreça electrònica proporcionada. Els titulars d'una llicència Aurum han de verificar la seva clau de llicència abans de fer servir aquesta funció.", + "continue with License Key": "continua amb la clau de llicència", + "Send Login Link": "Envia l'enllaç d'inici de sessió", + "Team Users": "Usuaris de l'equip", + "Verifying you request to access. Please wait": "S'està verificant la vostra sol·licitud d'accés. Espereu", + "You have been invited to join an account on Msty Studio. ": "Us han convidat a unir-vos a un compte de Msty Studio. ", + "Something went wrong, please contact you account Admin.": "Alguna cosa ha anat malament; contacteu amb l'administrador del vostre compte.", + "A login link will be sent to the email provided above.": "S'enviarà un enllaç d'inici de sessió a l'adreça electrònica proporcionada més amunt.", + "User {email} invited.": "S'ha convidat l'usuari {email}.", + "@:invalid @:email": "Adreça electrònica no vàlida", + "User already exists": "L'usuari ja existeix", + "Failed to invite {email}.": "No s'ha pogut convidar {email}.", + "Unable to load users list": "No s'ha pogut carregar la llista d'usuaris", + "User {email} delete successfully.": "S'ha suprimit l'usuari {email} correctament.", + "Unable to delete user {email}": "No s'ha pogut suprimir l'usuari {email}", + "Delete User": "Suprimeix l'usuari", + "Are you sure you want to delete {email}?": "Segur que voleu suprimir {email}?", + "Assign users to team {teamName}": "Assigna usuaris a l'equip {teamName}", + "Successfully assigned {user} to team {teamName}": "S'ha assignat {user} a l'equip {teamName} correctament", + "Remove user from team": "Treu l'usuari de l'equip", + "Drop {user} from team {teamName}": "Treu {user} de l'equip {teamName}", + "@:select users to add": "@:select els usuaris a afegir", + "Update {item}": "Actualitza {item}", + "Edit {item}": "Edita {item}", + "{item} has been updated": "S'ha actualitzat {item}", + "Unable to update {item}": "No s'ha pogut actualitzar {item}", + "Tools": "Eines", + "Vision": "Visió", + "Embedding": "Embedding", + "Image": "Imatge", + "Thinking": "Raonament", + "Label": "Etiqueta", + "@:select an @:environment.title": "@:select un @:environment.title", + "New @:environment.title": "@:environment.title nou", + "Environment | Environments": "Entorn | Entorns", + "Add new environments to get started.": "Afegiu entorns nous per començar.", + "@:environment.title saved": "@:environment.title desat", + "@:environment.title failed to save": "No s'ha pogut desar l'@:environment.title", + "@:delete @:environment.title | Delete @:environment.title": "Suprimeix l'@:environment.title | Suprimeix els @:environment.title", + "@:delete Selected @:environment.title | Delete Selected @:environment.title": "Suprimeix l'@:environment.title seleccionat | Suprimeix els @:environment.title seleccionats", + "@:delete @:environment.title": "Suprimeix l'@:environment.title", + "Are you sure you want to delete {environmentName}? | Are you sure you want to delete {count} environments?": "Segur que voleu suprimir {environmentName}? | Segur que voleu suprimir {count} entorns?", + "@:environment.title deleted | @:environment.title deleted": "@:environment.title suprimit | @:environment.title suprimits", + "Could not delete @:environment.title | Could not delete @:environment.title": "No s'ha pogut suprimir l'@:environment.title | No s'han pogut suprimir els @:environment.title", + "Backup @:environment.title": "Fes una còpia de seguretat de l'@:environment.title", + "@:environment.title backed up": "S'ha fet una còpia de seguretat de l'@:environment.title", + "Failed to backup @:environment.title": "No s'ha pogut fer una còpia de seguretat de l'@:environment.title", + "Restore @:environment.title": "Restaura l'@:environment.title", + "Drag and drop a Msty Environment file to restore Environments. Note: All existing environments will be deleted and replaced with the imported ones.": "Arrossegueu i deixeu anar un fitxer d'entorn de Msty per restaurar els entorns. Nota: tots els entorns existents se suprimiran i es reemplaçaran pels importats.", + "@:environment.title restored": "@:environment.title restaurat", + "Failed to restore @:environment.title": "No s'ha pogut restaurar l'@:environment.title", + "Quick @:select Environment Variable": "Selecció ràpida de variable d'entorn", + "Search or select a variable to copy it to the clipboard": "Cerqueu o seleccioneu una variable per copiar-la al porta-retalls", + "Make Active {itemType}": "Fes que {itemType} sigui actiu", + "Active {itemType}": "{itemType} actiu", + "{itemName} is now the active {itemType}": "Ara {itemName} és el {itemType} actiu", + "Failed to make {itemName} as the active {itemType}": "No s'ha pogut fer que {itemName} sigui el {itemType} actiu", + "Move {item}": "Mou {item}", + "Move {count} {sourceType} to {item}": "Mou {count} {sourceType} a {item}", + "Are you sure you want to move the selected {item}?": "Segur que voleu moure el {item} seleccionat?", + "{item} has been moved | {item} have been moved": "S'ha mogut {item} | S'han mogut {item}", + "Unable to move {item}": "No s'ha pogut moure {item}", + "Could not determine the target project.": "No s'ha pogut determinar el projecte de destinació.", + "Could not determine the target folder.": "No s'ha pogut determinar la carpeta de destinació.", + "{item} has been deleted": "S'ha suprimit {item}", + "Unable to delete {item}": "No s'ha pogut suprimir {item}", + "@:prompts Library": "Biblioteca d'indicacions", + "New @:prompt": "@:prompt nova", + "@:search.label @:prompt": "Cerca indicacions", + "Quick @:prompt": "@:prompt ràpida", + "Save to Quick @:prompts": "Desa a les indicacions ràpides", + "Copy @:prompt to Clipboard": "Copia la @:prompt al porta-retalls", + "Type / to search the @:promptsLibrary.title": "Teclegeu / per cercar a la @:promptsLibrary.title", + "@:folder": "@:folder", + "@:prompt": "@:prompt", + "Delete all @:prompt and @:folders": "Suprimeix totes les indicacions i carpetes", + "This will clear entire @:promptsLibrary.title and @:folder@:folders. There is no way to recover them after deletion.": "Això esborrarà tota la @:promptsLibrary.title i les carpetes. No es poden recuperar després de suprimir-les.", + "All @:prompt deleted": "S'han suprimit totes les indicacions", + "Get started by adding or importing a new @:prompt{'.'} You can also import default @:prompts to get started.": "Comenceu afegint o important una @:prompt nova{'.'} També podeu importar @:prompts per defecte per començar.", + "Import Default @:prompts": "Importa les @:prompts per defecte", + "You can now use the imported prompts in your conversations.": "Ara podeu fer servir les indicacions importades a les vostres converses.", + "Copy {count} @:prompts to clipboard": "Copia {count} @:prompts al porta-retalls", + "Failed to import default @:prompts": "No s'han pogut importar les @:prompts per defecte", + "Failed to copy @:prompt{'.'} Please try again.": "No s'ha pogut copiar la @:prompt{'.'} Torneu-ho a provar.", + "Are you sure you want to delete {folderName} with all its sub-folders and prompts?": "Segur que voleu suprimir {folderName} amb totes les seves subcarpetes i indicacions?", + "Add New @:prompt": "Afegeix una @:prompt nova", + "Edit @:prompt": "Edita la @:prompt", + "@:prompt Name": "Nom de la @:prompt", + "@:description": "@:description", + "@:prompt updated": "@:prompt actualitzada", + "Failed to update @:prompt": "No s'ha pogut actualitzar la @:prompt", + "@:prompt created": "@:prompt creada", + "Failed to create @:prompt": "No s'ha pogut crear la @:prompt", + "Delete {count} @:prompt": "Suprimeix {count} @:prompt", + "Are you sure you want to delete?": "Segur que ho voleu suprimir?", + "@:prompt deleted": "@:prompt suprimida", + "Failed to delete @:prompt": "No s'ha pogut suprimir la @:prompt", + "Import Default {item}": "Importa {item} per defecte", + "Default {item} imported": "S'ha importat {item} per defecte", + "Failed to import default {item}": "No s'ha pogut importar {item} per defecte", + "Isolate @:context": "Aïlla el @:context", + "Remove @:context Isolation": "Treu l'aïllament del @:context", + "Isolated @:context": "@:context aïllat", + "Clear All @:context Isolations": "Esborra tots els aïllaments de context", + "All @:context Isolations cleared": "S'han esborrat tots els aïllaments de context", + "Response Metrics": "Mètriques de la resposta", + "Long press or Alt click to cycle metrics": "Premeu llargament o Alt+clic per recórrer les mètriques", + "Quick View": "Vista ràpida", + "Details View": "Vista de detalls", + "Input | Inputs": "Entrada | Entrades", + "Output | Outputs": "Sortida | Sortides", + "Think": "Raona", + "The model performed internal thinking but didn’t return a summary. To enable thinking summaries, apply the 'Thinking' tag to this model by clicking on the edit icon next to the model selection.": "El model ha fet un raonament intern però no ha retornat cap resum. Per activar els resums de raonament, apliqueu l'etiqueta «Raonament» a aquest model fent clic a la icona d'edició que hi ha al costat de la selecció del model.", + "Service | Services": "Servei | Serveis", + "@:localAI @:service": "@:service de @:localAI", + "Version | Versions": "Versió | Versions", + "Invalid config. Please enter a valid JSON object.": "La configuració no és vàlida. Introduïu un objecte JSON vàlid.", + "Unsaved Changes": "Canvis sense desar", + "Day | Days": "Dia | Dies", + "Every": "Cada", + "Files": "Fitxers", + "File | @:files": "Fitxer | @:files", + "Really Delete?": "Segur que ho voleu suprimir?", + "Similarity": "Similitud", + "Save as Draft": "Desa com a esborrany", + "Compose": "Redacta", + "Embedding Model": "Model d'embedding", + "Document | Documents": "Document | Documents", + "Matched": "Coincident", + "@:folder Name": "Nom de la carpeta", + "Add New @:folder": "Afegeix una carpeta nova", + "Edit @:folder": "Edita la carpeta", + "An error occurred. Please try again later. Check logs for more details.": "S'ha produït un error. Torneu-ho a provar més tard. Reviseu els registres per a més detalls.", + "Models Path": "Camí dels models", + "This is where {service} downloads and looks for models. You can update the path to use a custom folder.": "Aquí és on {service} baixa i cerca els models. Podeu actualitzar el camí per fer servir una carpeta personalitzada.", + "Edit Models Path": "Edita el camí dels models", + "Set your preferred location.": "Definiu la vostra ubicació preferida.", + "Note: Changing the models path will restart the {service} for the changes to take effect.": "Nota: canviar el camí dels models reiniciarà {service} perquè els canvis tinguin efecte.", + "Select Models Path": "Selecciona el camí dels models", + "Models path updated": "S'ha actualitzat el camí dels models" +} diff --git a/tools/msty_ca/tr_013.json b/tools/msty_ca/tr_013.json new file mode 100644 index 0000000..6f6d3d1 --- /dev/null +++ b/tools/msty_ca/tr_013.json @@ -0,0 +1,221 @@ +{ + "Failed to update models path": "No s'ha pogut actualitzar el camí dels models", + "Give your system prompt a short title. It will be added to Quick Prompts for easy reuse.": "Poseu un títol curt a la vostra indicació del sistema. S'afegirà a les indicacions ràpides per poder-la reutilitzar fàcilment.", + "Quick @:prompt Name": "Nom de la @:prompt ràpida", + "System prompt saved to Quick Prompts.": "S'ha desat la indicació del sistema a les indicacions ràpides.", + "Failed to save system prompt to Quick Prompts.": "No s'ha pogut desar la indicació del sistema a les indicacions ràpides.", + "Add some system prompt text before saving to Quick Prompts.": "Afegiu text a la indicació del sistema abans de desar-la a les indicacions ràpides.", + "Service Health": "Estat del servei", + "Status of the {service}. Having trouble? Try restarting or reviewing the logs.": "Estat del {service}. Teniu problemes? Proveu de reiniciar-lo o de revisar els registres.", + "Restart Service": "Reinicia el servei", + "Stop Service": "Atura el servei", + "Start Service": "Inicia el servei", + "Failed to perform {action} on {service}. Please check the logs for more details.": "No s'ha pogut fer {action} a {service}. Reviseu els registres per a més detalls.", + "{service} Restarted": "S'ha reiniciat {service}", + "Running": "En execució", + "Stopped": "Aturat", + "Service Endpoint | Service Endpoints": "Punt final del servei | Punts finals del servei", + "Local endpoint for {service}. Use this to connect from other applications running locally on device.": "Punt final local de {service}. Feu-lo servir per connectar-vos des d'altres aplicacions que s'executen localment al dispositiu.", + "Once the service is running, the address will be displayed here.": "Quan el servei estigui en execució, l'adreça es mostrarà aquí.", + "Because the service is available on the network, you can also connect to it using the Network Service URL from other devices.": "Com que el servei està disponible a la xarxa, també us hi podeu connectar fent servir l'URL del servei de xarxa des d'altres dispositius.", + "Copy Network URL": "Copia l'URL de xarxa", + "Service Version": "Versió del servei", + "Shows the current version of {service}. To ensure optimal performance and access to new features, keep it up to date. Reinstallation is also available if needed.": "Mostra la versió actual de {service}. Per garantir un rendiment òptim i l'accés a les funcions noves, mantingueu-lo actualitzat. També podeu tornar-lo a instal·lar si cal.", + "Force Update {service}": "Força l'actualització de {service}", + "Force Update {service} (CPU)": "Força l'actualització de {service} (CPU)", + "Force Update {service} (CUDA)": "Força l'actualització de {service} (CUDA)", + "Force Update {service} (CUDA 12.4)": "Força l'actualització de {service} (CUDA 12.4)", + "Force Update {service} (CUDA 13.1)": "Força l'actualització de {service} (CUDA 13.1)", + "Force Update {service} (Vulkan)": "Força l'actualització de {service} (Vulkan)", + "Force Update {service} (ROCm)": "Força l'actualització de {service} (ROCm)", + "Force Update {service} (OpenCL)": "Força l'actualització de {service} (OpenCL)", + "Force Update {service} (SYCL)": "Força l'actualització de {service} (SYCL)", + "{service} is updated to the latest version {version}": "{service} s'ha actualitzat a la darrera versió {version}", + "Failed to update {service}. Please check the logs for more details.": "No s'ha pogut actualitzar {service}. Reviseu els registres per a més detalls.", + "Remove {service}": "Elimina {service}", + "Are you sure you want to remove {service}? This will delete the service binary and all its configurations. You can reinstall it later from the settings page.": "Segur que voleu eliminar {service}? Això suprimirà el binari del servei i totes les seves configuracions. El podeu tornar a instal·lar més endavant des de la pàgina de configuració.", + "{service} has been removed successfully": "S'ha eliminat {service} correctament", + "Failed to remove {service}. Please check the logs for more details.": "No s'ha pogut eliminar {service}. Reviseu els registres per a més detalls.", + "These configurations are applied to the {service} when it starts. {service} will automatically restart after you save any changes.": "Aquestes configuracions s'apliquen a {service} quan s'inicia. {service} es reiniciarà automàticament després de desar qualsevol canvi.", + "Allow other devices on your network to access this {service} through this device's IP address.": "Permet que altres dispositius de la vostra xarxa accedeixin a aquest {service} a través de l'adreça IP d'aquest dispositiu.", + "Allow connections from Msty Studio Web to this app so it can access {service}.": "Permet les connexions des del web de Msty Studio a aquesta aplicació perquè pugui accedir a {service}.", + "Capture Service Logs": "Captura els registres del servei", + "You have unsaved changes in the {service} Configurations. Once you save, {service} will be restarted with the new configurations.": "Teniu canvis sense desar a les configuracions de {service}. Un cop els deseu, {service} es reiniciarà amb les noves configuracions.", + "{service} Configurations saved and service restarted": "S'han desat les configuracions de {service} i s'ha reiniciat el servei", + "Failed to save {service} Configurations. Please check the logs for more details.": "No s'han pogut desar les configuracions de {service}. Reviseu els registres per a més detalls.", + "Keyboard Shortcuts": "Dreceres de teclat", + "Customize keyboard shortcuts for quick access to features": "Personalitzeu les dreceres de teclat per accedir ràpidament a les funcions", + "Search shortcuts...": "Cerca dreceres...", + "Search by shortcut": "Cerca per drecera", + "Search by name": "Cerca per nom", + "Press any key combination...": "Premeu qualsevol combinació de tecles...", + "Press keys...": "Premeu tecles...", + "Not set": "Sense definir", + "Edit shortcut": "Edita la drecera", + "Global": "Global", + "Shortcut saved": "S'ha desat la drecera", + "Error saving shortcut": "Error en desar la drecera", + "Shortcut reset": "S'ha restablert la drecera", + "Reset to default": "Restableix al valor per defecte", + "Reset all shortcuts": "Restableix totes les dreceres", + "All shortcuts reset to defaults": "S'han restablert totes les dreceres als valors per defecte", + "No shortcuts found": "No s'ha trobat cap drecera", + "Conflicts with: {name}": "Entra en conflicte amb: {name}", + "Navigation": "Navegació", + "@:settings.appearance": "@:settings.appearance", + "Conversation": "Conversa", + "Reset All Shortcuts": "Restableix totes les dreceres", + "Are you sure you want to reset all keyboard shortcuts to their default values?": "Segur que voleu restablir totes les dreceres de teclat als seus valors per defecte?", + "Customize Shortcuts": "Personalitza les dreceres", + "Contextual": "Contextual", + "System Wide": "A tot el sistema", + "Option key shortcuts work in Msty. If they produce special characters instead, check System Settings > Keyboard > Input Sources": "Les dreceres amb la tecla Opció funcionen a Msty. Si en comptes d'això produeixen caràcters especials, comproveu Configuració del sistema > Teclat > Fonts d'entrada", + "Keyboard Shortcuts Example": "Exemple de dreceres de teclat", + "This component demonstrates how to register and use keyboard shortcuts in your components.": "Aquest component mostra com registrar i fer servir dreceres de teclat als vostres components.", + "Registered Shortcuts:": "Dreceres registrades:", + "Example Action 1": "Acció d'exemple 1", + "Scoped Action": "Acció amb àmbit", + "Actions:": "Accions:", + "Update First Shortcut": "Actualitza la primera drecera", + "Test Conflict Detection": "Prova la detecció de conflictes", + "Action Log:": "Registre d'accions:", + "No actions yet. Try pressing the shortcuts!": "Encara no hi ha cap acció. Proveu de prémer les dreceres!", + "Developer Notes:": "Notes per a desenvolupadors:", + "Shortcuts are automatically cleaned up when the component unmounts": "Les dreceres es netegen automàticament quan el component es desmunta", + "Use component-scoped shortcuts to avoid ID conflicts": "Feu servir dreceres amb àmbit de component per evitar conflictes d'ID", + "Platform-specific bindings are handled automatically (Cmd on Mac, Ctrl on Windows)": "Les assignacions específiques de plataforma es gestionen automàticament (Cmd a Mac, Ctrl a Windows)", + "Check for conflicts before registering shortcuts that might collide with existing ones": "Comproveu si hi ha conflictes abans de registrar dreceres que puguin xocar amb les existents", + "Shortcuts can be global (work everywhere) or context-specific": "Les dreceres poden ser globals (funcionen a tot arreu) o específiques de context", + "Select split to remove": "Seleccioneu la divisió a eliminar", + "Press": "Premeu", + "Create New": "Crea'n una de nova", + "Copy": "Copia", + "No Messages Selected": "Cap missatge seleccionat", + "Select at least one message to perform any actions": "Seleccioneu com a mínim un missatge per fer qualsevol acció", + "Export Message | Export Messages": "Exporta el missatge | Exporta els missatges", + "Copy Message | Copy Messages": "Copia el missatge | Copia els missatges", + "As JSON": "Com a JSON", + "As Markdown": "Com a Markdown", + "Successfully {action} messages as {format}": "S'han {action} els missatges com a {format}", + "Re-index {item}": "Torna a indexar {item}", + "{item} re-indexed successfully": "S'ha tornat a indexar {item} correctament", + "Failed to re-index {item}": "No s'ha pogut tornar a indexar {item}", + "Are you sure you want to re-index {item}?": "Segur que voleu tornar a indexar {item}?", + "Recent|Recents": "Recent|Recents", + "Recents & @:pinned": "Recents i fixats", + "Knowledge Stack | Knowledge Stacks": "Pila de coneixement | Piles de coneixement", + "@:knowledgeStack.title Contexts": "Contextos de la @:knowledgeStack.title", + "Processing: {fileName}": "S'està processant: {fileName}", + "Composing": "S'està redactant", + "Composing…": "S'està redactant…", + "YouTube": "YouTube", + "Overall progress": "Progrés general", + "In-flight:": "En curs:", + "Ignored for retrieval": "Ignorat per a la recuperació", + "Importing folder: {name}": "S'està important la carpeta: {name}", + "Processing {count} knowledge stack(s)": "S'estan processant {count} piles de coneixement", + "Save Edits": "Desa les edicions", + "Save Edits and Mark as Draft": "Desa les edicions i marca com a esborrany", + "Are you sure you want to save your edits? This will mark the Knowledge Stack as a draft and prevent it from being used in production until processed again.": "Segur que voleu desar les vostres edicions? Això marcarà la pila de coneixement com a esborrany i n'impedirà l'ús en producció fins que no es torni a processar.", + "Choose where to import the @:knowledgeStack.title": "Trieu on importar la @:knowledgeStack.title", + "New @:knowledgeStack.title": "@:knowledgeStack.title nova", + "Add description": "Afegeix una descripció", + "Edit description": "Edita la descripció", + "Add a description for this Knowledge Stack...": "Afegiu una descripció per a aquesta pila de coneixement...", + "Saving...": "S'està desant...", + "Saved {time}": "Desat {time}", + "Basic Information": "Informació bàsica", + "@:similarity Threshold": "Llindar de similitud", + "@:similarity Match": "Coincidència de similitud", + "You have unsaved changes. Are you sure you want to leave this page? Your changes will be lost.": "Teniu canvis sense desar. Segur que voleu sortir d'aquesta pàgina? Es perdran els vostres canvis.", + "You have unsaved changes that will be lost if you reload the page.": "Teniu canvis sense desar que es perdran si torneu a carregar la pàgina.", + "No @:knowledgeStack.title selected": "No s'ha seleccionat cap @:knowledgeStack.title", + "Knowledge Stack lets you bring in files, folders, notes, and YouTube transcripts, making them searchable and chat-ready through Retrieval-Augmented Generation (RAG)": "La pila de coneixement us permet incorporar fitxers, carpetes, notes i transcripcions de YouTube, i fer-los cercables i a punt per al xat mitjançant la generació augmentada per recuperació (RAG)", + "Select a @:knowledgeStack.title": "Selecciona una @:knowledgeStack.title", + "Select a @:knowledgeStack.title from the tree or create a new one": "Seleccioneu una @:knowledgeStack.title de l'arbre o creeu-ne una de nova", + "Edit Ignore Rules": "Edita les regles d'exclusió", + "Ignore Rules": "Regles d'exclusió", + "Define patterns to exclude files and folders from processing.": "Definiu patrons per excloure fitxers i carpetes del processament.", + "Priority: Local .mstyignore/.gitignore → Folder rules → System defaults": "Prioritat: .mstyignore/.gitignore locals → Regles de la carpeta → Valors per defecte del sistema", + "# Enter patterns here, one per line\n# Example: *.log, node_modules/, !important.txt": "# Introduïu els patrons aquí, un per línia\n# Exemple: *.log, node_modules/, !important.txt", + "Show examples & help": "Mostra exemples i ajuda", + "Log files": "Fitxers de registre", + "Temp files in all dirs": "Fitxers temporals a tots els directoris", + "Entire directory": "Tot el directori", + "Exception pattern": "Patró d'excepció", + "Multiple image types": "Diversos tipus d'imatge", + "All files in test & subdirs": "Tots els fitxers de test i subdirectoris", + "Case-insensitive match": "Coincidència sense distinció de majúscules", + "Files starting with secret-": "Fitxers que comencen per secret-", + "Use template": "Fes servir la plantilla", + "Clear all": "Esborra-ho tot", + "Ignore rules updated successfully": "Les regles d'exclusió s'han actualitzat correctament", + "Failed to update ignore rules": "No s'han pogut actualitzar les regles d'exclusió", + "Delete @:folder '{folderName}'": "Suprimeix la carpeta «{folderName}»", + "Are you sure you want to delete this folder? All Knowledge Stacks inside it will be removed. There is no undo for this action.": "Segur que voleu suprimir aquesta carpeta? Se n'eliminaran totes les piles de coneixement que conté. Aquesta acció no es pot desfer.", + "Add New @:knowledgeStack.title": "Afegeix una @:knowledgeStack.title nova", + "Delete @:knowledgeStack.title": "Suprimeix la @:knowledgeStack.title", + "Are you sure you want to delete this Knowledge Stack? All items inside it will be removed. There is no undo for this action.": "Segur que voleu suprimir aquesta pila de coneixement? Se n'eliminaran tots els elements que conté. Aquesta acció no es pot desfer.", + "Delete All @:knowledgeStack.title": "Suprimeix totes les @:knowledgeStack.title", + "This will clear entire @:knowledgeStack.title{'.'} There is no way to recover them after deletion.": "Això esborrarà tota la @:knowledgeStack.title{'.'} No es poden recuperar després de suprimir-les.", + "All @:knowledgeStack.title deleted": "S'han suprimit totes les @:knowledgeStack.title", + "Failed to delete all @:knowledgeStack.title": "No s'han pogut suprimir totes les @:knowledgeStack.title", + "Chunk | @:knowledgeStack.chunksConsole.chunks": "Fragment | @:knowledgeStack.chunksConsole.chunks", + "Chunks": "Fragments", + "@:knowledgeStack.chunksConsole.chunks Console": "Consola de @:knowledgeStack.chunksConsole.chunks", + "Use this console to understand how your Knowledge Stack, { title }, is being used and what chunks are being sent to a model when chatting. You can also delete a chunk if you think it's not relevant or useful.": "Feu servir aquesta consola per entendre com s'utilitza la vostra pila de coneixement, { title }, i quins fragments s'envien a un model quan xategeu. També podeu suprimir un fragment si penseu que no és rellevant o útil.", + "Query Text": "Text de la consulta", + "@:similarity": "@:similarity", + "Highest": "Molt alta", + "High": "Alta", + "Medium": "Mitjana", + "Low": "Baixa", + "# of @:knowledgeStack.chunksConsole.chunks": "Nre. de @:knowledgeStack.chunksConsole.chunks", + "Source File": "Fitxer d'origen", + "Source Note": "Nota d'origen", + "Source Video": "Vídeo d'origen", + "Source": "Origen", + "Score": "Puntuació", + "Search Results": "Resultats de la cerca", + "No search results found. Try adjusting your query or search settings.": "No s'ha trobat cap resultat de cerca. Proveu d'ajustar la consulta o la configuració de cerca.", + "No results match the current similarity filter. Try adjusting the filter to show more results.": "Cap resultat coincideix amb el filtre de similitud actual. Proveu d'ajustar el filtre per mostrar més resultats.", + "@:knowledgeStack.chunksConsole.chunk has been deleted": "S'ha suprimit el @:knowledgeStack.chunksConsole.chunk", + "Search Type": "Tipus de cerca", + "Hybrid Search": "Cerca híbrida", + "Semantic Search": "Cerca semàntica", + "Keyword Search": "Cerca per paraules clau", + "This filter only affects which results are displayed below. It does not change the actual query.": "Aquest filtre només afecta quins resultats es mostren a sota. No canvia la consulta real.", + "Content has been scrubbed for PII removal": "S'ha netejat el contingut per eliminar la PII", + "Used cached scrubbed version": "S'ha fet servir la versió netejada de la memòria cau", + "Freshly scrubbed content": "Contingut netejat de nou", + "Run Query": "Executa la consulta", + "{count} selected": "{count} seleccionats", + "Selected Stacks": "Piles seleccionades", + "Search Knowledge Stacks...": "Cerca piles de coneixement...", + "Recently Updated": "Actualitzades recentment", + "No Knowledge Stacks found": "No s'ha trobat cap pila de coneixement", + "No Knowledge Stacks available": "No hi ha cap pila de coneixement disponible", + "No description": "Sense descripció", + "Number of @:knowledgeStack.chunksConsole.chunks": "Nombre de @:knowledgeStack.chunksConsole.chunks", + "Synthesize Query": "Sintetitza la consulta", + "Enable PII Scrubbing": "Activa la neteja de PII", + "Max Full Content Contexts": "Màxim de contextos de contingut complet", + "Full Content Contexts can significantly increase token usage and may impact performance": "Els contextos de contingut complet poden augmentar significativament l'ús de tokens i poden afectar el rendiment", + "Manage Stacks": "Gestiona les piles", + "Only completed stacks can be selected": "Només es poden seleccionar les piles completades", + "Total Files": "Fitxers totals", + "Vector Dimensions": "Dimensions del vector", + "Word Count": "Recompte de paraules", + "Reading Time": "Temps de lectura", + "No embedding model configured": "No s'ha configurat cap model d'embedding", + "Model {modelId} not found": "No s'ha trobat el model {modelId}", + "Model provider was automatically remapped": "El proveïdor del model s'ha reassignat automàticament", + "Change Query Embedding model": "Canvia el model d'embedding de la consulta", + "Select Query Embedding Model": "Selecciona el model d'embedding de la consulta", + "The original embedding model for this Knowledge Stack is not available. Please select a new model.": "El model d'embedding original d'aquesta pila de coneixement no està disponible. Seleccioneu un model nou.", + "The embedding model provider was automatically remapped to a compatible provider.": "El proveïdor del model d'embedding s'ha reassignat automàticament a un proveïdor compatible.", + "Current Model": "Model actual", + "No model configured": "No s'ha configurat cap model", + "Select New Model": "Selecciona un model nou", + "Default (Local)": "Per defecte (local)" +} diff --git a/tools/msty_ca/tr_014.json b/tools/msty_ca/tr_014.json new file mode 100644 index 0000000..35dc33a --- /dev/null +++ b/tools/msty_ca/tr_014.json @@ -0,0 +1,221 @@ +{ + "@:files": "@:files", + "Add .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx or any other supported file types.": "Afegiu fitxers .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx o qualsevol altre tipus de fitxer admès.", + "Drag and drop files here": "Arrossegueu i deixeu anar els fitxers aquí", + "Browse Files": "Explora els fitxers", + "Drop files here": "Deixeu anar els fitxers aquí", + "@:folders & Obsidian Vaults": "@:folders i magatzems d'Obsidian", + "Add folders containing files. You can drop Obsidian Vaults as well.": "Afegiu carpetes que continguin fitxers. També podeu deixar-hi anar magatzems d'Obsidian.", + "Drag and drop folders here": "Arrossegueu i deixeu anar les carpetes aquí", + "Browse Folders": "Explora les carpetes", + "Live Mode": "Mode en directe", + "Folders are monitored for changes and automatically update the Knowledge Stack": "Les carpetes se supervisen per detectar canvis i actualitzen automàticament la pila de coneixement", + "Duplicate Folder": "Carpeta duplicada", + "Folder Already Added": "La carpeta ja s'ha afegit", + "This folder has already been added to the @:knowledgeStack.title": "Aquesta carpeta ja s'ha afegit a la @:knowledgeStack.title", + "The folder '{path}' has already been added": "La carpeta «{path}» ja s'ha afegit", + "Folder Processed": "Carpeta processada", + "{count} files added successfully": "S'han afegit {count} fitxers correctament", + "Only folders can be added here. Please select a folder instead of individual files.": "Aquí només s'hi poden afegir carpetes. Seleccioneu una carpeta en comptes de fitxers individuals.", + "Select Folder": "Selecciona una carpeta", + "Please use the Browse button to select a folder in web mode": "Feu servir el botó Explora per seleccionar una carpeta en mode web", + "Processed": "Processat", + "Error Processing Folder": "Error en processar la carpeta", + "Folder Explorer": "Explorador de carpetes", + "Show Ignored Files": "Mostra els fitxers ignorats", + "No folders added yet": "Encara no s'ha afegit cap carpeta", + "Failed to Load Folder": "No s'ha pogut carregar la carpeta", + "Folder Removed": "Carpeta eliminada", + "'{name}' has been removed from the Knowledge Stack": "S'ha eliminat «{name}» de la pila de coneixement", + "Failed to Remove Folder": "No s'ha pogut eliminar la carpeta", + "Ignored": "Ignorat", + "Loading...": "S'està carregant...", + "Loading folder contents...": "S'està carregant el contingut de la carpeta...", + "Are you sure you want to remove \"{name}\" from this Knowledge Stack? The folder and its files will remain on your system.": "Segur que voleu eliminar «{name}» d'aquesta pila de coneixement? La carpeta i els seus fitxers es mantindran al vostre sistema.", + "Expand folder": "Amplia la carpeta", + "Collapse folder": "Replega la carpeta", + "This folder is ignored based on .mstyignore or .gitignore rules": "Aquesta carpeta s'ignora segons les regles de .mstyignore o .gitignore", + "This file is ignored based on .mstyignore or .gitignore rules": "Aquest fitxer s'ignora segons les regles de .mstyignore o .gitignore", + "Actions menu": "Menú d'accions", + "Empty folder": "Carpeta buida", + "{count} item | {count} items": "{count} element | {count} elements", + "{count} hidden item | {count} hidden items": "{count} element amagat | {count} elements amagats", + "Obsidian Vaults": "Magatzems d'Obsidian", + "Add Obsidian Vaults to your Knowledge Stack. Msty will index all the notes in the vault.": "Afegiu magatzems d'Obsidian a la vostra pila de coneixement. Msty indexarà totes les notes del magatzem.", + "Drag and drop Obsidian Vaults here": "Arrossegueu i deixeu anar els magatzems d'Obsidian aquí", + "Browse Obsidian Vaults": "Explora els magatzems d'Obsidian", + "Add your own notes to the Knowledge Stack. These notes will be chunked and embedded for semantic search.": "Afegiu les vostres pròpies notes a la pila de coneixement. Aquestes notes es fragmentaran i s'incrustaran (embedding) per a la cerca semàntica.", + "Add Note": "Afegeix una nota", + "Enter note title...": "Introduïu el títol de la nota...", + "Enter note content...": "Introduïu el contingut de la nota...", + "No notes added yet. Click 'Add Note' to get started.": "Encara no s'ha afegit cap nota. Feu clic a «Afegeix una nota» per començar.", + "Not saved yet": "Encara no s'ha desat", + "Add YouTube video links to index their transcripts. Msty will fetch transcripts and make them searchable.": "Afegiu enllaços de vídeos de YouTube per indexar-ne les transcripcions. Msty obtindrà les transcripcions i les farà cercables.", + "Drag and drop YouTube links here or paste them below": "Arrossegueu i deixeu anar els enllaços de YouTube aquí o enganxeu-los a sota", + "Paste YouTube URLs here (space or comma separated)...": "Enganxeu els URL de YouTube aquí (separats per espais o comes)...", + "Paste YouTube URLs here ({count} detected) | Paste YouTube URLs here ({count} detected)": "Enganxeu els URL de YouTube aquí ({count} detectat) | Enganxeu els URL de YouTube aquí ({count} detectats)", + "Auto-pull detected URLs": "Obtén automàticament els URL detectats", + "{count} URL detected | {count} URLs detected": "{count} URL detectat | {count} URL detectats", + "{count} YouTube URL detected but not pulled yet | {count} YouTube URLs detected but not pulled yet": "{count} URL de YouTube detectat però encara no obtingut | {count} URL de YouTube detectats però encara no obtinguts", + "Mark for Reprocessing": "Marca per tornar a processar", + "Lock Temporarily": "Bloqueja temporalment", + "Lock Permanently": "Bloqueja permanentment", + "Ignore for Retrieval": "Ignora per a la recuperació", + "Include in Retrieval": "Inclou a la recuperació", + "More actions": "Més accions", + "Load Mode": "Mode de càrrega", + "Select Load Mode": "Selecciona el mode de càrrega", + "Distribution": "Distribució", + "Choose how this file should be loaded during Knowledge Stack composition.": "Trieu com s'ha de carregar aquest fitxer durant la composició de la pila de coneixement.", + "Static Files": "Fitxers estàtics", + "Dynamic Files": "Fitxers dinàmics", + "Sync Files": "Fitxers de sincronització", + "Special Modes": "Modes especials", + "Special Modes Ratio": "Proporció de modes especials", + "Static Mode": "Mode estàtic", + "Uses the cached version from when the file was added. Fast and predictable, but doesn't reflect recent changes.": "Fa servir la versió de la memòria cau de quan es va afegir el fitxer. És ràpid i predictible, però no reflecteix els canvis recents.", + "Cached content loaded from initial indexing": "Contingut de la memòria cau carregat des de la indexació inicial", + "Dynamic Mode": "Mode dinàmic", + "Loads the latest file content on each composition. Slightly slower but always up-to-date.": "Carrega el contingut més recent del fitxer en cada composició. Una mica més lent però sempre actualitzat.", + "Fresh content loaded on each composition": "Contingut nou carregat en cada composició", + "Recommended": "Recomanat", + "Sync Mode": "Mode de sincronització", + "Watches for file changes and automatically recomposes. Best for small, frequently updated files.": "Vigila els canvis als fitxers i torna a compondre automàticament. Ideal per a fitxers petits que s'actualitzen sovint.", + "Auto-recomposes when files change": "Torna a compondre automàticament quan els fitxers canvien", + "Expensive": "Costós", + "Start Sync Mode": "Inicia el mode de sincronització", + "Pause Sync Mode": "Posa en pausa el mode de sincronització", + "Pause All": "Posa-ho tot en pausa", + "Sync Mode Started": "S'ha iniciat el mode de sincronització", + "Now watching file changes for {name}": "Ara es vigilen els canvis dels fitxers de {name}", + "Sync Mode Paused": "S'ha posat en pausa el mode de sincronització", + "File watching has been paused": "S'ha posat en pausa la vigilància de fitxers", + "Failed to Start Sync Mode": "No s'ha pogut iniciar el mode de sincronització", + "Please ensure the Knowledge Stack has files marked for Sync Mode": "Assegureu-vos que la pila de coneixement té fitxers marcats per al mode de sincronització", + "All Sync Modes Paused": "S'han posat en pausa tots els modes de sincronització", + "File watching has been stopped for all knowledge stacks": "S'ha aturat la vigilància de fitxers de totes les piles de coneixement", + "{count} Active | {count} Active": "{count} actiu | {count} actius", + "Active Sync Modes": "Modes de sincronització actius", + "{count} file | {count} files": "{count} fitxer | {count} fitxers", + "Started {time}": "Iniciat {time}", + "{stacks} stack, {files} files | {stacks} stacks, {files} files": "{stacks} pila, {files} fitxers | {stacks} piles, {files} fitxers", + "{hours}h ago": "fa {hours} h", + "{days}d ago": "fa {days} d", + "Analytics and Insights": "Analítiques i observacions", + "Last Composed": "Darrera composició", + "Analytics Sections": "Seccions d'analítiques", + "Performance Timings": "Temps de rendiment", + "Summary Statistics": "Estadístiques resum", + "Content Breakdown": "Desglossament del contingut", + "Query Settings": "Configuració de la consulta", + "Reading Statistics": "Estadístiques de lectura", + "No Analytics Available": "No hi ha analítiques disponibles", + "Analytics will be available after composing this Knowledge Stack.": "Les analítiques estaran disponibles després de compondre aquesta pila de coneixement.", + "No Analytics Sections Selected": "Cap secció d'analítiques seleccionada", + "Please select one or more analytics sections above to view insights about your Knowledge Stack.": "Seleccioneu una o més seccions d'analítiques de dalt per veure observacions sobre la vostra pila de coneixement.", + "Select All Sections": "Selecciona totes les seccions", + "Loading Items": "S'estan carregant els elements", + "Splitting @:knowledgeStack.chunksConsole.chunks": "S'estan dividint els @:knowledgeStack.chunksConsole.chunks", + "Embedding @:knowledgeStack.chunksConsole.chunks": "S'estan incrustant els @:knowledgeStack.chunksConsole.chunks", + "Composing Stack": "S'està component la pila", + "Total Time": "Temps total", + "Some operations may run in parallel, so individual times may not sum to total time": "Algunes operacions poden executar-se en paral·lel, de manera que els temps individuals poden no sumar el temps total", + "File Reading": "Lectura de fitxers", + "Database Write": "Escriptura a la base de dades", + "# of Items": "Nre. d'elements", + "Total @:knowledgeStack.chunksConsole.chunks": "Total de @:knowledgeStack.chunksConsole.chunks", + "Available @:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks disponibles", + "Skipped @:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks omesos", + "Character Count": "Recompte de caràcters", + "Ignored Items": "Elements ignorats", + "Ignored for Retrieval": "Ignorat per a la recuperació", + "These items are excluded from search and retrieval operations": "Aquests elements s'exclouen de les operacions de cerca i recuperació", + "Percentage of items ignored": "Percentatge d'elements ignorats", + "of {total}": "de {total}", + "YouTube Videos": "Vídeos de YouTube", + "No Ignored Items": "Cap element ignorat", + "All items in this Knowledge Stack are included in search and retrieval": "Tots els elements d'aquesta pila de coneixement s'inclouen a la cerca i la recuperació", + "Recommendation": "Recomanació", + "FILES": "FITXERS", + "OBSIDIAN VAULTS": "MAGATZEMS D'OBSIDIAN", + "FOLDERS": "CARPETES", + "NOTES": "NOTES", + "YOUTUBE LINKS": "ENLLAÇOS DE YOUTUBE", + "Scrubbed @:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks netejats", + "Cached @:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks a la memòria cau", + "Coverage": "Cobertura", + "Scrubbing Progress": "Progrés de la neteja", + "Load Analytics": "Carrega les analítiques", + "Failed to load PII analytics data": "No s'han pogut carregar les dades d'analítiques de PII", + "PII Analytics Not Loaded": "Analítiques de PII no carregades", + "Click \"Load Analytics\" to view PII scrubbing statistics": "Feu clic a «Carrega les analítiques» per veure les estadístiques de neteja de PII", + "This score reflects how comprehensively PII scrubbing is applied to your Knowledge Stack. A higher score means more chunks have been processed for PII removal.": "Aquesta puntuació reflecteix com d'exhaustivament s'aplica la neteja de PII a la vostra pila de coneixement. Una puntuació més alta significa que s'han processat més fragments per eliminar-ne la PII.", + "PII scrubbing is optional. Enable it in query settings only if your content contains sensitive personal information.": "La neteja de PII és opcional. Activeu-la a la configuració de la consulta només si el vostre contingut conté informació personal sensible.", + "Measures how well sensitive information is protected in your Knowledge Stack": "Mesura com de ben protegida està la informació sensible a la vostra pila de coneixement", + "Not Enabled": "No activat", + "Well Protected": "Ben protegit", + "Partially Protected": "Parcialment protegit", + "Limited Protection": "Protecció limitada", + "Minimal Protection": "Protecció mínima", + "Excellent privacy protection - nearly all content secured": "Protecció de la privadesa excel·lent: gairebé tot el contingut està assegurat", + "Good privacy protection - most content is secured": "Bona protecció de la privadesa: la major part del contingut està assegurat", + "Partial privacy protection - consider reviewing settings": "Protecció parcial de la privadesa: plantegeu-vos revisar la configuració", + "Limited privacy protection - review sensitive content": "Protecció limitada de la privadesa: reviseu el contingut sensible", + "PII scrubbing is not enabled. This is completely fine if your content doesn't contain sensitive personal information.": "La neteja de PII no està activada. Això està perfectament bé si el vostre contingut no conté informació personal sensible.", + "Consider enabling PII scrubbing only if your Knowledge Stack contains names, addresses, phone numbers, emails, or other personal data.": "Plantegeu-vos activar la neteja de PII només si la vostra pila de coneixement conté noms, adreces, números de telèfon, adreces electròniques o altres dades personals.", + "Significant content reduction ({percentage}%) - extensive PII found": "Reducció significativa del contingut ({percentage}%): s'ha trobat molta PII", + "Moderate content reduction ({percentage}%) - some PII removed": "Reducció moderada del contingut ({percentage}%): s'ha eliminat una mica de PII", + "Minimal content reduction ({percentage}%) - low PII detected": "Reducció mínima del contingut ({percentage}%): s'ha detectat poca PII", + "No content size change - no PII detected or removed": "Sense canvi en la mida del contingut: no s'ha detectat ni eliminat cap PII", + "All chunks processed successfully": "S'han processat tots els fragments correctament", + "Nearly all chunks processed successfully": "S'han processat gairebé tots els fragments correctament", + "Most chunks processed - some may need attention": "S'han processat la majoria de fragments: alguns poden necessitar atenció", + "Incomplete processing - check PII scrubbing configuration": "Processament incomplet: comproveu la configuració de la neteja de PII", + "Large knowledge base - consider increasing PII detection coverage": "Base de coneixement gran: plantegeu-vos augmentar la cobertura de detecció de PII", + "Many unprocessed chunks - review PII scrubbing settings": "Molts fragments sense processar: reviseu la configuració de la neteja de PII", + "PII scrubbing is optional. Enable it in query settings if your content contains sensitive information like names, emails, or phone numbers.": "La neteja de PII és opcional. Activeu-la a la configuració de la consulta si el vostre contingut conté informació sensible com ara noms, adreces electròniques o números de telèfon.", + "PII scrubbing helps protect sensitive information. It's optional and can be enabled in query settings if needed.": "La neteja de PII ajuda a protegir la informació sensible. És opcional i es pot activar a la configuració de la consulta si cal.", + "Security Status": "Estat de seguretat", + "Privacy Status": "Estat de privadesa", + "When to Enable": "Quan activar-la", + "Content Impact": "Impacte en el contingut", + "Processing Efficiency": "Eficiència del processament", + "Scale Recommendation": "Recomanació d'escala", + "Coverage Recommendation": "Recomanació de cobertura", + "Optional Feature": "Funció opcional", + "Privacy Option": "Opció de privadesa", + "Prompt Prefix": "Prefix de la indicació", + "Privacy Optimization Score": "Puntuació d'optimització de la privadesa", + "PII Protection Level": "Nivell de protecció de PII", + "PII Scrubbing Status": "Estat de la neteja de PII", + "Unscrubbed @:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks sense netejar", + "Original Size": "Mida original", + "Processed Size": "Mida processada", + "Size Reduction": "Reducció de mida", + "Privacy @:insgiths": "Privadesa", + "Data has been modified": "Les dades s'han modificat", + "Show outdated data anyway": "Mostra les dades obsoletes igualment", + "Content Distribution": "Distribució del contingut", + "{label} contribute {percentage}% of all chunks": "{label} aporten el {percentage}% de tots els fragments", + "Processing Issue": "Problema de processament", + "{label} have low efficiency ({efficiency}%)": "{label} tenen una eficiència baixa ({efficiency}%)", + "Data Quality Issue": "Problema de qualitat de les dades", + "{count} content type(s) have high skip rates": "{count} tipus de contingut tenen taxes d'omissió altes", + "Content Diversity": "Diversitat del contingut", + "Single content type - consider diversifying sources": "Un sol tipus de contingut: plantegeu-vos diversificar les fonts", + "Excellent content diversity across multiple source types": "Excel·lent diversitat de contingut entre múltiples tipus de font", + "Optimization Tip": "Consell d'optimització", + "Reduce chunk size to 800-1200 characters for better content granularity": "Reduïu la mida dels fragments a 800-1200 caràcters per a una millor granularitat del contingut", + "Increase chunk size to 1500-2000 characters for better efficiency": "Augmenteu la mida dels fragments a 1500-2000 caràcters per a una millor eficiència", + "Embedding Throughput": "Rendiment de l'embedding", + "{rate} chunks/sec ({time}ms each)": "{rate} fragments/s ({time} ms cadascun)", + "Search Strategy": "Estratègia de cerca", + "Balanced approach combining keyword + semantic search": "Enfocament equilibrat que combina cerca per paraules clau + semàntica", + "AI-powered semantic search - best for conceptual queries": "Cerca semàntica amb IA: ideal per a consultes conceptuals", + "Traditional keyword search - best for exact terms": "Cerca tradicional per paraules clau: ideal per a termes exactes", + "Retrieval Volume": "Volum de recuperació", + "Very low chunk count may miss relevant information": "Un recompte de fragments molt baix pot ometre informació rellevant", + "High chunk count may include noise and slow responses": "Un recompte de fragments alt pot incloure soroll i alentir les respostes", + "Optimal chunk count for balanced retrieval": "Recompte de fragments òptim per a una recuperació equilibrada", + "Content Filtering": "Filtratge del contingut" +} diff --git a/tools/msty_ca/tr_015.json b/tools/msty_ca/tr_015.json new file mode 100644 index 0000000..130f8dd --- /dev/null +++ b/tools/msty_ca/tr_015.json @@ -0,0 +1,201 @@ +{ + "Relaxed filtering - may include loosely related content": "Filtratge relaxat: pot incloure contingut poc relacionat", + "Strict filtering - highly focused results": "Filtratge estricte: resultats molt focalitzats", + "Balanced filtering for relevant content": "Filtratge equilibrat per a contingut rellevant", + "Guided Context": "Context guiat", + "Custom prompt prefix will guide query interpretation": "El prefix de la indicació personalitzat guiarà la interpretació de la consulta", + "Lock Indicator": "Indicador de bloqueig", + "All items can be reprocessed": "Tots els elements es poden tornar a processar", + "{percentage}% of items are locked": "El {percentage}% dels elements estan bloquejats", + "Most items are locked - limited reprocessing capability": "La majoria d'elements estan bloquejats: capacitat de reprocessament limitada", + "Privacy & Security": "Privadesa i seguretat", + "Privacy protection enabled for sensitive data": "Protecció de la privadesa activada per a dades sensibles", + "No PII scrubbing - ensure content is not sensitive": "Sense neteja de PII: assegureu-vos que el contingut no sigui sensible", + "Scale Optimization": "Optimització d'escala", + "Large knowledge base - increase chunk count for better coverage": "Base de coneixement gran: augmenteu el recompte de fragments per a una millor cobertura", + "Small knowledge base - consider reducing chunk count": "Base de coneixement petita: plantegeu-vos reduir el recompte de fragments", + "Performance Profile": "Perfil de rendiment", + "Configuration optimized for fast responses": "Configuració optimitzada per a respostes ràpides", + "Configuration optimized for high-quality results": "Configuració optimitzada per a resultats d'alta qualitat", + "High Lock Rate": "Taxa de bloqueig alta", + "{percentage}% of items are locked and won't be reprocessed": "El {percentage}% dels elements estan bloquejats i no es tornaran a processar", + "Consider unlocking temporarily locked items if they need updates": "Plantegeu-vos desbloquejar els elements bloquejats temporalment si necessiten actualitzacions", + "Over 50% of items are locked. This may significantly reduce the knowledge base's ability to stay updated.": "Més del 50% dels elements estan bloquejats. Això pot reduir significativament la capacitat de la base de coneixement de mantenir-se actualitzada.", + "Lock Status": "Estat del bloqueig", + "Total Items": "Elements totals", + "Temporarily Locked": "Bloquejat temporalment", + "Permanently Locked": "Bloquejat permanentment", + "Lock Status by Content Type": "Estat del bloqueig per tipus de contingut", + "Temp. Locked": "Bloq. temp.", + "Perm. Locked": "Bloq. perm.", + "Lock Status @:insights": "@:insights de l'estat del bloqueig", + "Content @:insights": "@:insights del contingut", + "Composition Optimization Score": "Puntuació d'optimització de la composició", + "Composition @:insights": "@:insights de la composició", + "Performance @:insights": "@:insights de rendiment", + "Processing Phase Details": "Detalls de la fase de processament", + "Total Processing Time": "Temps total de processament", + "Total Locked Items": "Elements bloquejats totals", + "Efficiency": "Eficiència", + "Load Mode Analytics": "Analítiques del mode de càrrega", + "File loading behavior across your Knowledge Stack": "Comportament de càrrega de fitxers a la vostra pila de coneixement", + "Load Mode Distribution": "Distribució del mode de càrrega", + "Special Modes %": "% de modes especials", + "Visual Breakdown": "Desglossament visual", + "No files in this Knowledge Stack": "No hi ha fitxers en aquesta pila de coneixement", + "Load Mode options are only available in the desktop application": "Les opcions del mode de càrrega només estan disponibles a l'aplicació d'escriptori", + "All files are using Static Mode. Enable Dynamic or Sync Mode for files to use the latest content.": "Tots els fitxers fan servir el mode estàtic. Activeu el mode dinàmic o de sincronització perquè els fitxers utilitzin el contingut més recent.", + "Sync Mode Active": "Mode de sincronització actiu", + "Watching {files} • Started {time}": "Es vigilen {files} • Iniciat {time}", + "Fresh": "Nou", + "Live": "En directe", + "High Sync File Count": "Recompte alt de fitxers en sincronització", + "{count} files are in Sync Mode": "{count} fitxers estan en mode de sincronització", + "Consider using Dynamic Mode for less frequently updated files to reduce resource usage": "Plantegeu-vos fer servir el mode dinàmic per als fitxers que s'actualitzen menys sovint per reduir l'ús de recursos", + "Sync Mode Enabled": "Mode de sincronització activat", + "{count} files are automatically updating when changed": "{count} fitxers s'actualitzen automàticament quan canvien", + "High Dynamic Mode Usage": "Ús alt del mode dinàmic", + "{percentage}% of files are using Dynamic Mode": "El {percentage}% dels fitxers fan servir el mode dinàmic", + "Static Mode may be sufficient for files that rarely change": "El mode estàtic pot ser suficient per a fitxers que rarament canvien", + "Dynamic Mode Active": "Mode dinàmic actiu", + "{count} files are loading fresh content on each composition": "{count} fitxers carreguen contingut nou en cada composició", + "Static Mode Only": "Només mode estàtic", + "All files are using cached content from initial indexing": "Tots els fitxers fan servir contingut de la memòria cau de la indexació inicial", + "Enable Dynamic or Sync Mode for frequently updated files to ensure fresh content": "Activeu el mode dinàmic o de sincronització per als fitxers que s'actualitzen sovint per garantir contingut nou", + "Mixed Load Modes": "Modes de càrrega mixtos", + "{percentage}% of files are using special load modes": "El {percentage}% dels fitxers fan servir modes de càrrega especials", + "Compose Settings": "Configuració de la composició", + "@:knowledgeStack.chunksConsole.chunk Overlapping": "Solapament de @:knowledgeStack.chunksConsole.chunk", + "Changing the embedding model will require recomposing the entire Knowledge Stack and even then there is a chance that recomposition will fail.": "Canviar el model d'embedding requerirà tornar a compondre tota la pila de coneixement i, fins i tot llavors, hi ha la possibilitat que la recomposició falli.", + "Learn more about embedding model compatibility": "Més informació sobre la compatibilitat del model d'embedding", + "Select an embedding model": "Seleccioneu un model d'embedding", + "Select chunk overlapping": "Seleccioneu el solapament dels fragments", + "Select chunk size": "Seleccioneu la mida dels fragments", + "Chunking Method": "Mètode de fragmentació", + "Recursive Character": "Caràcter recursiu", + "Sentence": "Frase", + "Choose how documents should be chunked into smaller pieces for better search and retrieval.": "Trieu com s'han de fragmentar els documents en trossos més petits per a una millor cerca i recuperació.", + "Overlapping": "Solapament", + "Choose how much overlap should be between chunks. Higher overlap can improve context but increase token usage.": "Trieu quant solapament hi ha d'haver entre els fragments. Un solapament més alt pot millorar el context però augmenta l'ús de tokens.", + "@:knowledgeStack.chunksConsole.chunk Size": "Mida de @:knowledgeStack.chunksConsole.chunk", + "Set the maximum size of each chunk in characters. Smaller chunks can improve search accuracy but increase token usage.": "Definiu la mida màxima de cada fragment en caràcters. Els fragments més petits poden millorar la precisió de la cerca però augmenten l'ús de tokens.", + "@:knowledgeStack.chunksConsole.chunk Sizes To Ignore": "Mides de @:knowledgeStack.chunksConsole.chunk a ignorar", + "Specify chunk sizes that should be ignored during processing. Useful for excluding very small or very large chunks.": "Especifiqueu les mides de fragments que s'han d'ignorar durant el processament. És útil per excloure fragments molt petits o molt grans.", + "Push Mode": "Mode d'emissió (push)", + "Pull Mode": "Mode de recepció (pull)", + "Knowledge Stack Context": "Context de la pila de coneixement", + "Failed to load Knowledge Stack chunks. Please try again.": "No s'han pogut carregar els fragments de la pila de coneixement. Torneu-ho a provar.", + "Search Settings": "Configuració de la cerca", + "Search Query": "Consulta de cerca", + "Content": "Contingut", + "Full Content": "Contingut complet", + "@:knowledgeStack.chunksConsole.chunk Information": "Informació de @:knowledgeStack.chunksConsole.chunk", + "Knowledge Stack": "Pila de coneixement", + "chunks": "fragments", + "Max @:knowledgeStack.chunksConsole.chunks": "Màxim de @:knowledgeStack.chunksConsole.chunks", + "@:knowledgeStack.chunksConsole.chunk Retrieval Mode": "Mode de recuperació de @:knowledgeStack.chunksConsole.chunk", + "Choose between Push mode where chunks are pre-fetched, or Pull Mode where the model can query Knowledge Stacks directly": "Trieu entre el mode d'emissió (push), on els fragments s'obtenen prèviament, o el mode de recepció (pull), on el model pot consultar les piles de coneixement directament", + "@:knowledgeStack.chunksConsole.chunk Overlap": "Solapament de @:knowledgeStack.chunksConsole.chunk", + "Synthesized Query": "Consulta sintetitzada", + "chunk | chunks": "fragment | fragments", + "View Full Content": "Mostra el contingut complet", + "Full @:knowledgeStack.chunksConsole.chunk Content": "Contingut complet de @:knowledgeStack.chunksConsole.chunk", + "Scrubbed": "Netejat", + "Original": "Original", + "@:knowledgeStack.chunksConsole.chunk ID": "ID de @:knowledgeStack.chunksConsole.chunk", + "PII Status": "Estat de la PII", + "PII Scrubbed": "PII netejada", + "PII Un-scrubbed": "PII sense netejar", + "Original content without @:pii.scrubbing.title": "Contingut original sense @:pii.scrubbing.title", + "Query Analysis": "Anàlisi de la consulta", + "Full Content Context Active": "Context de contingut complet actiu", + "Documents Retrieved": "Documents recuperats", + "Content Context": "Context del contingut", + "Keywords": "Paraules clau", + "Full Doc": "Doc. complet", + "Full Document": "Document complet", + "@:knowledgeStack.chunksConsole.chunks Visualizer": "Visualitzador de @:knowledgeStack.chunksConsole.chunks", + "Visualize how documents are chunked": "Visualitzeu com es fragmenten els documents", + "Open Visualizer": "Obre el visualitzador", + "View Visualizer": "Mostra el visualitzador", + "Available Files": "Fitxers disponibles", + "Loading files...": "S'estan carregant els fitxers...", + "No files found": "No s'ha trobat cap fitxer", + "Select a File": "Selecciona un fitxer", + "Choose a file from the left to visualize its chunks and content": "Trieu un fitxer de l'esquerra per visualitzar-ne els fragments i el contingut", + "MIME Type": "Tipus MIME", + "@:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks", + "Overlaps": "Solapaments", + "Stitched Size": "Mida cosida", + "Show Overlaps": "Mostra els solapaments", + "Hide Overlaps": "Amaga els solapaments", + "Show @:knowledgeStack.chunksConsole.chunks": "Mostra els @:knowledgeStack.chunksConsole.chunks", + "Show Stitched": "Mostra el text cosit", + "Copy Content": "Copia el contingut", + "Stitched Content": "Contingut cosit", + "Un-scrubbed @:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks sense netejar", + "Overlaps have been removed for clean text reconstruction": "S'han eliminat els solapaments per a una reconstrucció neta del text", + "@:knowledgeStack.chunksConsole.chunk {number}": "@:knowledgeStack.chunksConsole.chunk {number}", + "Overlap Previous": "Solapament anterior", + "Overlap Next": "Solapament següent", + "This text overlaps with the previous chunk": "Aquest text se solapa amb el fragment anterior", + "This text overlaps with the next chunk": "Aquest text se solapa amb el fragment següent", + "Character positions in file": "Posicions dels caràcters al fitxer", + "Core content without overlaps": "Contingut principal sense solapaments", + "{count} chunks": "{count} fragments", + "Show Original": "Mostra l'original", + "Show Scrubbed": "Mostra el netejat", + "Show Scrubbed Only": "Mostra només el netejat", + "Show All @:knowledgeStack.chunksConsole.chunks": "Mostra tots els @:knowledgeStack.chunksConsole.chunks", + "Per Page": "Per pàgina", + "{start}-{end} of {total} chunks": "{start}-{end} de {total} fragments", + "Loading chunks...": "S'estan carregant els fragments...", + "No items found": "No s'ha trobat cap element", + "Select an Item": "Selecciona un element", + "Choose a file or note from the left to visualize its chunks and content": "Trieu un fitxer o una nota de l'esquerra per visualitzar-ne els fragments i el contingut", + "Open Console": "Obre la consola", + "{count} @:knowledgeStack.chunksConsole.chunk Selected": "{count} @:knowledgeStack.chunksConsole.chunk seleccionats", + "Delete Selected": "Suprimeix els seleccionats", + "Clear Selection": "Esborra la selecció", + "Confirm Delete": "Confirma la supressió", + "Are you sure you want to delete {count} selected chunks? This action cannot be undone.": "Segur que voleu suprimir {count} fragments seleccionats? Aquesta acció no es pot desfer.", + "@:knowledgeStack.chunksConsole.chunks Deleted": "@:knowledgeStack.chunksConsole.chunks suprimits", + "Successfully deleted {count} chunks": "S'han suprimit {count} fragments correctament", + "{count} @:knowledgeStack.chunksConsole.chunk deleted successfully": "S'ha suprimit {count} @:knowledgeStack.chunksConsole.chunk correctament", + "Delete Failed": "La supressió ha fallat", + "Force Compose": "Força la composició", + "Overall Progress": "Progrés general", + "{count} items exported": "S'han exportat {count} elements", + "Items": "Elements", + "Export completed successfully!": "L'exportació s'ha completat correctament!", + "Saved to: {path}": "Desat a: {path}", + "Cancel All": "Cancel·la-ho tot", + "Done": "Fet", + "Exporting": "S'està exportant", + "Folder": "Carpeta", + "Export failed": "L'exportació ha fallat", + "Import failed": "La importació ha fallat", + "Your changes to the Knowledge Stack have been saved. You will need to recompose it to apply the changes.": "S'han desat els vostres canvis a la pila de coneixement. Caldrà que la torneu a compondre per aplicar els canvis.", + "Knowledge stack saved and processing started": "S'ha desat la pila de coneixement i ha començat el processament", + "Cannot force compose: Knowledge stack must be saved first": "No es pot forçar la composició: primer cal desar la pila de coneixement", + "Failed to force compose Knowledge Stack": "No s'ha pogut forçar la composició de la pila de coneixement", + "Force compose started - all items will be reprocessed": "S'ha iniciat la composició forçada: es tornaran a processar tots els elements", + "Failed to update query settings": "No s'ha pogut actualitzar la configuració de la consulta", + "Query settings updated": "S'ha actualitzat la configuració de la consulta", + "just now": "ara mateix", + "{minutes}m ago": "fa {minutes} min", + "Failed to select item": "No s'ha pogut seleccionar l'element", + "Failed to select folder": "No s'ha pogut seleccionar la carpeta", + "Knowledge Stack {title} processing completed": "El processament de la pila de coneixement {title} s'ha completat", + "Knowledge Stack {title} processing failed": "El processament de la pila de coneixement {title} ha fallat", + "Nothing to compose for Knowledge Stack {title}": "No hi ha res a compondre per a la pila de coneixement {title}", + "Error composing Knowledge Stack {title}": "Error en compondre la pila de coneixement {title}", + "Importing from URL is only available in the desktop application": "La importació des d'un URL només està disponible a l'aplicació d'escriptori", + "{count} @:knowledgeStack.title deleted!": "S'han suprimit {count} @:knowledgeStack.title!", + "Failed to create the @:knowledgeStack.title": "No s'ha pogut crear la @:knowledgeStack.title", + "Failed to save edits to the @:knowledgeStack.title": "No s'han pogut desar les edicions a la @:knowledgeStack.title", + "Folder '{name}' added to the Knowledge Stack": "S'ha afegit la carpeta «{name}» a la pila de coneixement", + "Folder '{name}' locked temporarily": "S'ha bloquejat la carpeta «{name}» temporalment", + "Folder '{name}' locked permanently": "S'ha bloquejat la carpeta «{name}» permanentment", + "Failed to lock the folder": "No s'ha pogut bloquejar la carpeta" +} diff --git a/tools/msty_ca/tr_016.json b/tools/msty_ca/tr_016.json new file mode 100644 index 0000000..0714e50 --- /dev/null +++ b/tools/msty_ca/tr_016.json @@ -0,0 +1,127 @@ +{ + "Top P": "Top P", + "Top K": "Top K", + "Min P": "Min P", + "Mirostat": "Mirostat", + "Mirostat 1.0": "Mirostat 1.0", + "Mirostat 2.0": "Mirostat 2.0", + "Mirostat Tau": "Mirostat Tau", + "Mirostat Eta": "Mirostat Eta", + "custom_param": "custom_param", + "Shiftcuts": "Shiftcuts", + "Galaxy Far Away": "Galaxy Far Away", + "Everything Everywhere": "Everything Everywhere", + "Home Alone": "Home Alone", + "Lord of the Loops": "Lord of the Loops", + "Vibe CLI Proxy": "Vibe CLI Proxy", + "GPU": "GPU", + "MLX": "MLX", + "LLaMA.cpp": "LLaMA.cpp", + "Prompts": "Indicacions", + "Folder '{name}' unlocked": "S'ha desbloquejat la carpeta «{name}»", + "Failed to unlock the folder": "No s'ha pogut desbloquejar la carpeta", + "Path: {path}": "Camí: {path}", + "Name: {name}": "Nom: {name}", + "Unknown": "Desconegut", + "Loading PII analytics...": "S'estan carregant les analítiques de PII...", + "All items are unlocked and can be reprocessed when needed.": "Tots els elements estan desbloquejats i es poden tornar a processar quan calgui.", + "Abort Processing": "Interromp el processament", + "Processing Failed": "El processament ha fallat", + "Error Message": "Missatge d'error", + "Occurred at": "S'ha produït a", + "Failed File": "Fitxer fallit", + "Error Summary": "Resum de l'error", + "Technical Details": "Detalls tècnics", + "Stack Trace": "Traça de la pila", + "Copy Details": "Copia els detalls", + "Error details copied to clipboard": "S'han copiat els detalls de l'error al porta-retalls", + "Click to see error details": "Feu clic per veure els detalls de l'error", + "File is null": "El fitxer és nul", + "Error checking if path is directory": "Error en comprovar si el camí és un directori", + "Error processing folder": "Error en processar la carpeta", + "Failed to lock folder temporarily": "No s'ha pogut bloquejar la carpeta temporalment", + "Failed to lock folder permanently": "No s'ha pogut bloquejar la carpeta permanentment", + "Failed to unlock folder": "No s'ha pogut desbloquejar la carpeta", + "Status: Completed": "Estat: completat", + "Status: Processing": "Estat: en processament", + "Status: Pending": "Estat: pendent", + "Status: Draft": "Estat: esborrany", + "Status: Needs Reprocessing": "Estat: cal tornar a processar", + "Status: Error": "Estat: error", + "Status: Temporarily Locked": "Estat: bloquejat temporalment", + "Status: Permanently Locked": "Estat: bloquejat permanentment", + "Status: Aborted": "Estat: interromput", + "Status: Unknown": "Estat: desconegut", + "Unlock Aurum Features": "Desbloqueja les funcions d'Aurum", + "Upgrade to Aurum license for the most powerful AI features and advanced capabilities": "Passeu a la llicència Aurum per gaudir de les funcions d'IA més potents i de capacitats avançades", + "Everything you need": "Tot el que necessiteu", + "View Pricing": "Mostra els preus", + "Feature Matrix": "Matriu de funcions", + "Activate License": "Activa la llicència", + "Aurum": "Aurum", + "Upload image…": "Penja una imatge…", + "Only image files are supported.": "Només s'admeten fitxers d'imatge.", + "Image must be 1MB or smaller.": "La imatge ha de fer 1 MB o menys.", + "Profile image updated.": "S'ha actualitzat la imatge de perfil.", + "Failed to update image. Please try again.": "No s'ha pogut actualitzar la imatge. Torneu-ho a provar.", + "Click to change profile image": "Feu clic per canviar la imatge de perfil", + "Lost & Found": "Objectes perduts", + "Find and recover lost workspaces from your computer. Only workspace databases are scanned and discovered, not attachments.": "Trobeu i recupereu espais de treball perduts del vostre ordinador. Només s'escanegen i es descobreixen les bases de dades dels espais de treball, no pas les adjuncions.", + "Lost & Found is experimental. Always keep backups of your workspace data before attempting recovery.": "Els objectes perduts són una funció experimental. Conserveu sempre còpies de seguretat de les dades del vostre espai de treball abans d'intentar una recuperació.", + "Scan for Lost Workspaces": "Cerca espais de treball perduts", + "Scan App Data": "Escaneja les dades de l'aplicació", + "Scan Folder…": "Escaneja la carpeta…", + "Workspace": "Espai de treball", + "Last Modified": "Darrera modificació", + "Actions": "Accions", + "Linked": "Enllaçat", + "Found": "Trobat", + "Restore current workspace": "Restaura l'espai de treball actual", + "Import As New Workspace": "Importa com a espai de treball nou", + "Restore current workspace?": "Voleu restaurar l'espai de treball actual?", + "This will replace the data of the currently active workspace with the data from the selected recovered file. This cannot be undone.": "Això reemplaçarà les dades de l'espai de treball actiu actual amb les dades del fitxer recuperat seleccionat. Això no es pot desfer.", + "Failed to import workspace": "No s'ha pogut importar l'espai de treball", + "Workspace imported": "S'ha importat l'espai de treball", + "Recovered workspace has been imported. Switch to it from the workspace tray if needed.": "S'ha importat l'espai de treball recuperat. Canvieu-hi des de la safata d'espais de treball si cal.", + "Failed to restore workspace": "No s'ha pogut restaurar l'espai de treball", + "Workspace restored": "S'ha restaurat l'espai de treball", + "Current workspace has been restored from the recovered file.": "L'espai de treball actual s'ha restaurat des del fitxer recuperat.", + "Failed to import recovered workspace": "No s'ha pogut importar l'espai de treball recuperat", + "Failed to import recovered workspace (unexpected)": "No s'ha pogut importar l'espai de treball recuperat (inesperat)", + "Failed to restore workspace from recovered file": "No s'ha pogut restaurar l'espai de treball des del fitxer recuperat", + "Failed to restore workspace from recovered file (unexpected)": "No s'ha pogut restaurar l'espai de treball des del fitxer recuperat (inesperat)", + "Quick filter...": "Filtre ràpid...", + "Toggle filter": "Activa/desactiva el filtre", + "Toggle sidebar": "Mostra/amaga la barra lateral", + "Adjust": "Ajusta", + "{item} is experimental and under active development. Please report any issues to the team.": "{item} és experimental i s'està desenvolupant activament. Comuniqueu qualsevol problema a l'equip.", + "File Type": "Tipus de fitxer", + "Attachment Type": "Tipus d'adjunció", + "Browse Existing Attachments": "Explora les adjuncions existents", + "View Associations": "Mostra les associacions", + "Delete Attachment | Delete Attachments": "Suprimeix l'adjunció | Suprimeix les adjuncions", + "Are you sure you want to delete the attachment? All the associations to the attachment will also be removed. This action cannot be undone. | Are you sure you want to delete the attachments? All the associations to the attachments will also be removed. This action cannot be undone.": "Segur que voleu suprimir l'adjunció? També se n'eliminaran totes les associacions. Aquesta acció no es pot desfer. | Segur que voleu suprimir les adjuncions? També se n'eliminaran totes les associacions. Aquesta acció no es pot desfer.", + "Successfully deleted the attachment | Successfully deleted the attachments": "S'ha suprimit l'adjunció correctament | S'han suprimit les adjuncions correctament", + "Failed to delete the attachment | Failed to delete the attachments": "No s'ha pogut suprimir l'adjunció | No s'han pogut suprimir les adjuncions", + "Search by Name": "Cerca per nom", + "Filter by Attachment Type": "Filtra per tipus d'adjunció", + "Attachments Manager": "Gestor d'adjuncions", + "No Attachments Found": "No s'ha trobat cap adjunció", + "You have no attachments available.": "No teniu cap adjunció disponible.", + "Associations for {attachmentName}": "Associacions de {attachmentName}", + "Search by Association Name": "Cerca pel nom de l'associació", + "Filter by Associated Entity": "Filtra per entitat associada", + "No Associations Found": "No s'ha trobat cap associació", + "You have not used this attachment anywhere yet.": "Encara no heu fet servir aquesta adjunció enlloc.", + "Association Name": "Nom de l'associació", + "Associated Entity": "Entitat associada", + "Jump to {entity}": "Vés a {entity}", + "Detach Association": "Desadjunta l'associació", + "Are you sure you want to detach the association from the {associationEntity}? This action cannot be undone.": "Segur que voleu desadjuntar l'associació de {associationEntity}? Aquesta acció no es pot desfer.", + "Successfully detached the association": "S'ha desadjuntat l'associació correctament", + "Failed to detach the association": "No s'ha pogut desadjuntar l'associació", + "AI Prompt": "Indicació d'IA", + "Describe what the icon represents...": "Descriviu què representa la icona...", + "Find Icon": "Cerca una icona", + "Finding...": "S'està cercant..." +} From e2ac8ea94f1cd3655654f9110740c40aa005282d Mon Sep 17 00:00:00 2001 From: Juliarscat Date: Sat, 13 Jun 2026 09:04:56 +0200 Subject: [PATCH 2/2] Removed experiment --- tools/msty_ca/GLOSSARI.md | 42 - tools/msty_ca/build.py | 93 - tools/msty_ca/source_paths.json | 3243 ----------------------------- tools/msty_ca/source_strings.json | 3243 ----------------------------- tools/msty_ca/tr_001.json | 131 -- tools/msty_ca/tr_002.json | 201 -- tools/msty_ca/tr_003.json | 191 -- tools/msty_ca/tr_004.json | 220 -- tools/msty_ca/tr_005.json | 221 -- tools/msty_ca/tr_006.json | 217 -- tools/msty_ca/tr_007.json | 216 -- tools/msty_ca/tr_008.json | 221 -- tools/msty_ca/tr_009.json | 221 -- tools/msty_ca/tr_010.json | 221 -- tools/msty_ca/tr_011.json | 221 -- tools/msty_ca/tr_012.json | 221 -- tools/msty_ca/tr_013.json | 221 -- tools/msty_ca/tr_014.json | 221 -- tools/msty_ca/tr_015.json | 201 -- tools/msty_ca/tr_016.json | 127 -- 20 files changed, 9893 deletions(-) delete mode 100644 tools/msty_ca/GLOSSARI.md delete mode 100644 tools/msty_ca/build.py delete mode 100644 tools/msty_ca/source_paths.json delete mode 100644 tools/msty_ca/source_strings.json delete mode 100644 tools/msty_ca/tr_001.json delete mode 100644 tools/msty_ca/tr_002.json delete mode 100644 tools/msty_ca/tr_003.json delete mode 100644 tools/msty_ca/tr_004.json delete mode 100644 tools/msty_ca/tr_005.json delete mode 100644 tools/msty_ca/tr_006.json delete mode 100644 tools/msty_ca/tr_007.json delete mode 100644 tools/msty_ca/tr_008.json delete mode 100644 tools/msty_ca/tr_009.json delete mode 100644 tools/msty_ca/tr_010.json delete mode 100644 tools/msty_ca/tr_011.json delete mode 100644 tools/msty_ca/tr_012.json delete mode 100644 tools/msty_ca/tr_013.json delete mode 100644 tools/msty_ca/tr_014.json delete mode 100644 tools/msty_ca/tr_015.json delete mode 100644 tools/msty_ca/tr_016.json diff --git a/tools/msty_ca/GLOSSARI.md b/tools/msty_ca/GLOSSARI.md deleted file mode 100644 index f5a202f..0000000 --- a/tools/msty_ca/GLOSSARI.md +++ /dev/null @@ -1,42 +0,0 @@ -# Glossari Msty Studio — català (Softcatalà / TERMCAT) - -Registre: **impersonal/neutre**. Ordres i botons en **imperatiu** (Desa, Tanca, Suprimeix). -Missatges del programa cap a l'usuari: **impersonal** ("No s'ha pogut desar", "S'ha actualitzat"). -Evitar "tu" i "vostè". Variables `{x}` i enllaços `@:clau` es preserven. - -## Termes clau -- Msty / Msty Studio → *Msty / Msty Studio* (marca, no es tradueix) -- prompt → **indicació** (TERMCAT, IA generativa) - - System Prompt → indicació del sistema - - User Prompt → indicació de l'usuari -- token → **token** (manllevat consolidat en context LLM; plural *tokens*) -- embedding → **embedding** (manllevat; evitar inventar) -- model → model -- Knowledge Stack → **pila de coneixement** (funció de Msty) -- chat → **xat** (TERMCAT) -- conversation → conversa -- workspace → **espai de treball** -- attachment → **adjunció** -- settings → **configuració** (singular) -- persona → **personalitat** (de l'IA) / *persona* segons context de marca Msty → "persona" -- provider → **proveïdor** -- live context → **context en directe** -- toolbox → **caixa d'eines** -- forge → **forja** -- squad → **esquadra** / model squad → esquadra de models -- matchmaker → **emparellador** -- turnstile → **torn** (revisar context) - -## Ordres / botons (imperatiu) -Save→Desa · Saved→Desat · Cancel→Cancel·la · Close→Tanca · Delete→Suprimeix · -Remove→Elimina/Treu · Edit→Edita · Create→Crea · Add→Afegeix · Enable→Activa · -Disable→Desactiva · Apply→Aplica · Reset→Restableix · Clear→Esborra · Update→Actualitza · -Continue→Continua · Confirm→Confirma · Manage→Gestiona · Duplicate→Duplica · -Import→Importa · Connect→Connecta · Disconnect→Desconnecta · Reconnect→Torna a connectar · -Pause→Posa en pausa · Resume→Reprèn · Retry→Torna-ho a provar · Stop→Atura · Run→Executa · -Skip→Omet · Select→Selecciona · Search→Cerca · Copy→Copia · Paste→Enganxa · Share→Comparteix - -## Estats -Required→Obligatori · Optional→Opcional · Available→Disponible · Unavailable→No disponible · -Detected→Detectat · Valid→Vàlid · Invalid→No vàlid · Authorized→Autoritzat · -Success!→Fet! / Correcte! · Error!→Error! · Warning→Avís · Done!→Fet! diff --git a/tools/msty_ca/build.py b/tools/msty_ca/build.py deleted file mode 100644 index 5199578..0000000 --- a/tools/msty_ca/build.py +++ /dev/null @@ -1,93 +0,0 @@ -# -*- coding: utf-8 -*- -"""Reconstrueix ca_ES.json a partir d'en_US.json + lots de traduccio tr_*.json. -Valida que cada traduccio preserva variables {x}, enllacos @:clau, plurals | i alternatives ::. -""" -import json, re, glob, os, sys - -HERE = os.path.dirname(__file__) -ROOT = os.path.abspath(os.path.join(HERE, '..', '..')) -EN = os.path.join(ROOT, 'i18n', 'locales', 'en_US.json') -OUT = os.path.join(ROOT, 'i18n', 'locales', 'ca_ES.json') - -def load_translations(): - tr = {} - for f in sorted(glob.glob(os.path.join(HERE, 'tr_*.json'))): - data = json.load(open(f, encoding='utf-8')) - tr.update(data) - return tr - -PLACEHOLDER = re.compile(r'\{[^}]+\}') -# @:key or @.modifier:key (key may contain letters, digits, dots, underscores) -LINK = re.compile(r'@(?:\.[a-z]+)?:[A-Za-z0-9_.]+') - -LINKKEY = re.compile(r'@(?:\.[a-z]+)?:([A-Za-z0-9_.]+)') - -def validate(src, dst, valid_keys): - errs = [] - sp = sorted(PLACEHOLDER.findall(src)) - dp = sorted(PLACEHOLDER.findall(dst)) - if sp != dp: - errs.append('CRITIC: variables {} difereixen: %r vs %r' % (sp, dp)) - # cada enllac @: de la traduccio ha d'apuntar a una clau existent - for k in LINKKEY.findall(dst): - if k not in valid_keys: - errs.append('enllac @:%s no existeix a en_US' % k) - if src.count('|') != dst.count('|'): - errs.append('avis: nombre de | (plurals) difereix: %d vs %d' % (src.count('|'), dst.count('|'))) - if src.count('::') != dst.count('::'): - errs.append('avis: nombre de :: (alternatives) difereix: %d vs %d' % (src.count('::'), dst.count('::'))) - return errs - -def collect_keys(o, p='', out=None): - if out is None: out = set() - if isinstance(o, dict): - for k, v in o.items(): - np = (p + '.' + k) if p else k - out.add(np) - collect_keys(v, np, out) - return out - -def main(): - en = json.load(open(EN, encoding='utf-8')) - valid_keys = collect_keys(en) - tr = load_translations() - missing = [] - errors = [] - def walk(o, p=''): - if isinstance(o, dict): - return {k: walk(v, (p + '.' + k) if p else k) for k, v in o.items()} - if isinstance(o, list): - return [walk(v, p + '[' + str(i) + ']') for i, v in enumerate(o)] - src = o - if src in tr and tr[src] != '': - dst = tr[src] - for e in validate(src, dst, valid_keys): - errors.append((p, e, src, dst)) - return dst - missing.append((p, src)) - return src - out = walk(en) - with open(OUT, 'w', encoding='utf-8', newline='\n') as f: - json.dump(out, f, ensure_ascii=False, indent=2) - f.write('\n') - total_leaves = len(missing) + (count_leaves(en) - len(missing)) - tl = count_leaves(en) - print('Cadenes totals (fulles):', tl) - print('Tradudes:', tl - len(missing), '(%.1f%%)' % (100*(tl-len(missing))/tl)) - print('Pendents:', len(missing)) - if errors: - print('\n*** ERRORS DE VALIDACIO:', len(errors)) - for p, e, s, d in errors[:60]: - print(' [%s] %s\n SRC=%r\n DST=%r' % (p, e, s, d)) - if '--missing' in sys.argv: - print('\n--- PENDENTS ---') - for p, s in missing: - print('%s\t%s' % (p, s)) - -def count_leaves(o): - if isinstance(o, dict): return sum(count_leaves(v) for v in o.values()) - if isinstance(o, list): return sum(count_leaves(v) for v in o) - return 1 - -if __name__ == '__main__': - main() diff --git a/tools/msty_ca/source_paths.json b/tools/msty_ca/source_paths.json deleted file mode 100644 index 8489ae8..0000000 --- a/tools/msty_ca/source_paths.json +++ /dev/null @@ -1,3243 +0,0 @@ -{ -"You": "you", -"Select": "select", -"Conversations": "conversations", -"Copy to Clipboard": "copyToClipboard", -"to copy markdown directly": "toCopyMarkdownDirectly", -"Click to copy markdown directly": "clickToCopyMarkdownDirectly", -"to show more options": "toShowMoreOptions", -"Long press or Alt+click for more options": "longPressOrAltClickForMoreOptions", -"on message": "onMessage", -"@:select a model | @:select models": "selectModel", -"@:manage Models": "manageModels", -"Required": "required", -"Optional": "optional", -"System Prompt": "systemPrompt", -"@:systemPrompt Attach @:mode": "systemPromptAttachMode", -"@:user Prompt": "userPrompt", -"Delete {item}": "delete", -"Delete All": "deleteAll", -"Create": "create", -"Edit": "edit", -"Expand editor": "expandTextarea", -"Collapse editor": "collapseTextarea", -"Enable": "enable", -"Disable": "disable", -"Save": "save", -"Saved": "saved", -"Cancel": "cancel", -"Close": "close", -"Bookmarked": "bookmarked", -"Pinned": "pinned", -"Update": "update", -"Apply": "apply", -"Reset": "reset", -"Icon": "icon", -"Clear": "clear", -"API Key": "apiKey", -"Models": "models", -"Available {itemType}": "available", -"Unavailable": "unavailable", -"Detected": "detected", -"Continue": "continue", -"Undetected": "undetected", -"Welcome!": "welcome", -"Plan": "plan", -"All changes saved": "allChangesSaved", -"Toolbar": "toolbar", -"Bookmark | Bookmarks": "bookmark", -"Waiting :: Hold on :: Just a moment :: One second :: Patience is a virtue :: Almost there :: Loading awesomeness": "waitingMessage.waiting", -"Searching the Web :: Browsing the internet :: Looking online :: Scouring the web :: Consulting the oracle :: Asking the internet nicely :: Diving into cyberspace :: Mining the web": "waitingMessage.fetchingWebResults", -"Querying @:knowledgeStack.title :: Searching your knowledge :: Looking through your docs :: Exploring your knowledge base :: Rifling through your wisdom :: Consulting your digital library :: Scanning your archives :: Digging through your notes": "waitingMessage.queryingKnowledgeStack", -"Preparing Tools :: Getting tools ready :: Setting up tools :: Loading tools :: Sharpening the instruments :: Assembling the toolkit :: Warming up the engines :: Prepping the workspace": "waitingMessage.preparingTools", -"Model is doing its magic ✨ :: AI is thinking :: Processing your request :: Working on it :: Crunching the numbers :: Neurons firing :: Pondering deeply :: Computing brilliance :: Engaging brain mode :: Summoning intelligence": "waitingMessage.connectingToModel", -"Processing Context :: Understanding context :: Analyzing context :: Reading the situation :: Connecting the dots :: Grasping the big picture :: Piecing it together :: Making sense of things": "waitingMessage.processingContext", -"Streaming :: Sending response :: Delivering answer :: Transmitting :: Beaming down results :: Flowing your way :: En route to you :: Coming in hot": "waitingMessage.streaming", -"Scrubbing PII Data :: Protecting your privacy :: Removing personal info :: Anonymizing data :: Keeping secrets safe :: Privacy mode engaged :: Redacting the sensitive bits :: Going incognito": "waitingMessage.scrubbingPIIData", -"Synthesizing Query for Better Results :: Optimizing your question :: Enhancing query :: Refining search terms :: Polishing your request :: Fine-tuning the question :: Crafting the perfect query :: Making your words shine": "waitingMessage.synthesizingQuery", -"Fetching Live Contexts :: Gathering real-time data :: Pulling fresh insights :: Syncing with live sources :: Tapping into the data stream :: Collecting current intel :: Refreshing context feeds :: Harvesting live updates :: Connecting to the pulse": "waitingMessage.fetchingLiveContexts", -"Initializing...": "progress.initializing", -"Add": "add", -"Expand {group}": "actionBar.expandGroup", -"Collapse {group}": "actionBar.collapseGroup", -"Show extra add-ons": "actionBar.showExtraAddOns", -"Hide extra add-ons": "actionBar.hideExtraAddOns", -"Model & Prompts": "actionBar.groups.model", -"Data & Knowledge": "actionBar.groups.data", -"Tools & Personas": "actionBar.groups.tools", -"Unauthorized": "unauthorized", -"Valid": "valid", -"Invalid": "invalid", -"Done!": "done", -"Confirm": "confirm", -"Share with synced splits": "shareWithSyncedSplits", -"Source | Sources": "source", -"Grounding Sources": "groundingSources", -"Manage": "manage", -"Chat | Chats": "chat", -"Advanced Options": "advancedOptions", -"Duplicate": "duplicate", -"@:manage {item}": "manageItem", -"Success!": "success", -"Notes": "notes", -"View Notes": "viewNotes", -"Error!": "error", -"Warning": "warning", -"Authorized": "authorized", -"Not authorized": "notAuthorized", -"Authorize": "authorize", -"Re-authorize": "reauthorize", -"Remove authorization": "deauthorize", -"Failed to delete": "failedToDelete", -"Failed to save": "failedToSave", -"Failed to update": "failedToUpdate", -"updated.": "updatedSuccess", -"Apply and share with synced splits": "applyAndShareWithSyncedSplits", -"Click to edit": "clickToEdit", -"Click to add @:systemPrompt": "clickToAddSystemPrompt", -"Pause": "pause", -"Resume": "resume", -"Retry": "retry", -"Stop": "stop", -"Run": "run", -"Re-run": "rerun", -"Remove": "remove", -"Skip": "skip", -"Unskip": "unskip", -"Start Importing": "startImporting", -"New": "new", -"Entry | Entries": "entry", -"Import": "import", -"Connect": "connect", -"Disconnect": "disconnect", -"Reconnect": "reconnect", -"Select Target Folder": "selectTargetFolder", -"Create new folder for imported items": "createNewFolderForImport", -"New folder name": "newFolderName", -"Remote": "remote", -"Local": "local", -"Strength | Strengths": "strength", -"Provider": "provider", -"{count} Capability | {count} Capabilities": "capability", -"Preset | Presets": "preset", -"Save As @:preset": "saveAsPreset", -"Append": "append", -"Prepend": "prepend", -"Replace": "replace", -"Description": "description", -"Mode": "mode", -"Add-ons": "addOns", -"User": "user", -"Assistant": "assistant", -"@:assistant @:message.title": "assistantMessage", -"Connection Info": "connectionInfo", -"Export": "export", -"Export Options": "exportOptions", -"Choose File": "chooseFile", -"Purpose": "purpose", -"Download": "download", -"Downloads": "downloads", -"Download as JSON": "downloadAsJson", -"Install": "install", -"Installed": "installed", -"Modified": "modified", -"Created": "created", -"Minimize": "minimize", -"Status": "status", -"Type": "type", -"Yes": "yes", -"File Size": "fileSize", -"Size": "size", -"Like | Likes": "likes", -"Cancelled": "cancelled", -"Parameter @:size": "parameterSize", -"Quantization": "quantization", -"@:quantization Level": "quantizationLevel", -"Context Size": "contextSize", -"Default to model max": "defaultToModelMax", -"Maximum tokens the model processes at once. Set to 0 to use model's maximum. Larger values increase memory usage. This value is saved globally per model with LLaMa.cpp. Context is shared equally across the number of concurrent requests set via LLaMa.cpp service settings.": "llamaCppContextSizeDescription", -"Truncate Middle": "truncationStrategy.truncateMiddle", -"Truncate Old": "truncationStrategy.truncateOld", -"None": "truncationStrategy.none", -"How to handle messages when context limit is approached.": "truncationStrategyDescription", -"Storage": "storage", -"Params": "params", -"Arch": "arch", -"Filter": "filter", -"Sort & Display": "treeControls.title", -"Search...": "treeControls.searchPlaceholder", -"Folders first": "treeControls.foldersFirst", -"Items first": "treeControls.itemsFirst", -"Name": "treeControls.sort.name", -"Title": "treeControls.sort.title", -"Updated": "treeControls.sort.updated", -"Last Used": "treeControls.sort.lastUsed", -"Ascending": "treeControls.sort.ascending", -"Descending": "treeControls.sort.descending", -"Visibility": "treeControls.visibility.label", -"Show empty folders": "treeControls.visibility.empty.show", -"Hide empty folders": "treeControls.visibility.empty.hide", -"Show item counts": "treeControls.visibility.counts.show", -"Hide item counts": "treeControls.visibility.counts.hide", -"No {item} found for this search": "noSearchResults", -"Loading": "loading", -"Invite": "invite", -"Refresh": "refresh", -"Email": "email", -"Role": "role", -"Admin": "admin", -"Owner": "owner", -"Inactive": "inActive", -"Argument|Arguments": "argument", -"Abort": "abort", -"Send": "send", -"Remind Me Later": "remindMeLater", -"Text": "text", -"Folders": "folders", -"Folder | @:folders": "folder", -"Search": "search.label", -"Active": "search.scope.active", -"Archived": "search.scope.archived", -"All": "search.scope.all", -"Fuzzy search enabled": "fuzzySearch.enabled", -"Fuzzy search disabled": "fuzzySearch.disabled", -"Fuzzy Search Enabled. Click to Toggle": "fuzzySearch.enabledHint", -"Fuzzy Search Disabled. Click to Toggle": "fuzzySearch.disabledHint", -"Change": "change", -"Expand All Projects": "expandAllProjects", -"Collapse All Projects": "collapseAllProjects", -"Expand All Folders": "expandAllFolders", -"Collapse All Folders": "collapseAllFolders", -"Clone {item}": "clone.title", -"{item} cloned": "clone.successMessage.detail", -"Failed to clone {item}": "clone.errorMessage.detail", -"Add notes to help you remember the purpose of this {item}; this will also be seen by models which can provide them more details on how to use this {item} (@:optional)": "notesPurposePlaceholder", -"Endpoint Test Results": "endpointTestResults", -"Test Connection": "testConnection", -"No {item} found": "emptyPlaceholder", -"@:select {item}": "selectItem", -"{count} {title}": "selectedItemLabel", -"Feature|Features": "feature", -"Raw": "raw", -"Raw Output": "rawOutput", -"Property|Properties": "property", -"Configure": "configure", -"Context | Contexts": "context", -"Path | Paths": "path", -"Project | Projects": "project.title", -"New Project at Root": "project.createRootProject", -"Project Name": "project.projectName", -"Project Description": "project.projectDescription", -"Default Model": "project.defaultModel", -"Custom Instructions": "project.customInstructions", -"Add Child Project": "project.addChildProject", -"Move Folder to Root": "project.promoteToRoot.title", -"Failed to move project to root.": "project.promoteToRoot.errorMessage.detail", -"The project was successfully moved to the root.": "project.promoteToRoot.successMessage.detail", -"Delete Project": "project.deleteProject", -"Set as Default Project": "project.setDefaultForNewConversations", -"Unset Default Project": "project.unsetDefaultForNewConversations", -"Misc": "project.orphanageProjectName", -"Include Project Context": "project.includeProjectContext", -"Are you sure you want to delete {projectName} and all its conversations?": "project.deleteConfirmation.message", -"@:cancel": "project.deleteConfirmation.rejectLabel", -"@:delete": "project.deleteConfirmation.acceptLabel", -"Project deleted": "project.deleteConfirmation.successMessage.detail", -"Delete All Conversations": "project.deleteAllConversations.title", -"Are you sure you want to delete all conversations in {projectName}? This action cannot be undone.": "project.deleteAllConversations.description", -"Deleted {count} conversation | Deleted {count} conversations": "project.deleteAllConversations.successMessage.detail", -"No conversations to delete": "project.deleteAllConversations.successMessage.empty", -"Failed to delete conversations": "project.deleteAllConversations.errorMessage.detail", -"Archive All Conversations": "project.archiveAllConversations.title", -"Archive all conversations in {projectName}? They will move to the Archive and can be restored later.": "project.archiveAllConversations.description", -"Archive All": "project.archiveAllConversations.confirmLabel", -"Archived {count} conversation | Archived {count} conversations": "project.archiveAllConversations.successMessage.detail", -"Failed to archive conversations": "project.archiveAllConversations.errorMessage.detail", -"Add Files": "project.projectForm.addFiles", -"Edit Project": "project.projectForm.editProject", -"New Project": "project.projectForm.createNewProject", -"Drag and drop files that will get attached to each conversation in this project.": "project.projectForm.dragAndDropFiles", -"Project created": "project.projectForm.successMessage.createDetail", -"Project created! It's currently hidden because it's empty. Click the button below to show it now, or it will appear automatically when you add your first conversation.": "project.projectForm.successMessage.createDetailHidden", -"Project updated": "project.projectForm.successMessage.updateDetail", -"Failed to create Project": "project.projectForm.errorMessage.createDetail", -"Failed to update Project": "project.projectForm.errorMessage.updateDetail", -"Show Empty Projects": "project.emptyProjectVisibilityToast.showButton", -"Empty projects are now visible": "project.emptyProjectVisibilityToast.enabled", -"Start a New Conversation to Get Started": "project.startNewToGetStarted", -"Selected model": "selectedModel", -"Endpoint": "endpoint", -"Auth Token": "authToken", -"Before": "before", -"After": "after", -"Method": "method", -"HTTP @:method": "httpMethod", -"Get": "get", -"Post": "post", -"@:preset with the same name already exists.": "presetAlreadyExistsMessage", -"@:presetAlreadyExistsMessage If you save, it will overwrite the existing preset.": "duplicatePresetOverwriteMessage", -"No {propsName} available. Add a custom one.": "noPropsAvailable", -"@:local AI": "localAI", -"Click to add a label": "branch.clickToLabel", -"Branch label (max 30 chars)": "branch.labelPlaceholder", -"Label Branch...": "branch.labelBranch", -"Label Branch": "branch.labelDialogTitle", -"No label": "branch.noLabel", -"Click for more options": "branch.clickForOptions", -"Branch Explorer": "branch.timeline.title", -"Branch Explorer...": "branch.timeline.viewAll", -"Branch {n}": "branch.timeline.branchNumber", -"Current": "branch.timeline.current", -"Branches": "branch.timeline.branches", -"Compare": "branch.timeline.compare", -"Compare Branches": "branch.diff.title", -"Compare branches": "branch.diff.compare", -"Exit compare mode": "branch.diff.exitCompare", -"Select first branch to compare": "branch.diff.selectFirst", -"Select second branch to compare": "branch.diff.selectSecond", -"Selected": "branch.diff.selected", -"Content is identical": "branch.diff.identical", -"First branch": "branch.diff.leftBranch", -"Second branch": "branch.diff.rightBranch", -"Select branch": "branch.diff.selectBranch", -"Select two branches above to compare their content": "branch.diff.selectBranchesToCompare", -"Switch to {name}": "branch.diff.switchToBranch", -"Diff": "branch.diff.viewDiff", -"Side by Side": "branch.diff.viewSideBySide", -"Conversation | Conversations": "conversation.title", -"@:conversation.title Title": "conversation.conversationTitle", -"Failed to generate context summary.": "conversation.contextShieldErrorMessage.summary", -"Check Settings > Notifications for more details.": "conversation.contextShieldErrorMessage.detail", -"Failed to send message.": "conversation.sendErrorMessage.summary", -"Check Settings > Notifications for more details. {error}": "conversation.sendErrorMessage.detail", -"Message exceeds context limit": "conversation.contextSizeError.summary", -"Your message with search results and context is too large for this model. Try: increasing context size from model parameters, reducing search results, clearing conversation history, using a model with larger context (16k+), or shortening your system instructions.": "conversation.contextSizeError.detail", -"Delete @:conversation.title": "conversation.deleteConversation", -"Add New @:conversation.title": "conversation.addNewConversation", -"New @:conversation.title": "conversation.newConversation", -"Projects first": "conversation.treeControls.projectSort.projectsFirst", -"Last Activity": "conversation.treeControls.conversationSort.lastActivity", -"No priority": "conversation.treeControls.priority.none", -"@:pinned first": "conversation.treeControls.priority.pinned", -"@:bookmarked first": "conversation.treeControls.priority.bookmarked", -"Show Recents & @:pinned": "conversation.treeControls.visibility.recents.show", -"Hide Recents & @:pinned": "conversation.treeControls.visibility.recents.hide", -"Show Archive": "conversation.treeControls.visibility.archive.show", -"Hide Archive": "conversation.treeControls.visibility.archive.hide", -"Show empty projects": "conversation.treeControls.visibility.empty.show", -"Hide empty projects": "conversation.treeControls.visibility.empty.hide", -"Show conversation counts": "conversation.treeControls.visibility.counts.show", -"Hide conversation counts": "conversation.treeControls.visibility.counts.hide", -"Press {trigger} for quick commands OR start typing...": "conversation.promptPlaceHolder.normal.focused", -"Press / to focus here and start typing": "conversation.promptPlaceHolder.normal.unfocused", -"Are you sure you want to delete selected conversation and all its chat splits? | Are you sure you want to delete selected conversations and all their chat splits?": "conversation.deleteConfirmation.message", -"Delete": "conversation.deleteConfirmation.acceptLabel", -"@:conversation.title deleted": "conversation.deleteConfirmation.successMessage.detail", -"Failed to delete @:conversation.title": "conversation.deleteConfirmation.errorMessage.detail", -"Convert to Chat": "conversation.convertToChat.title", -"@:conversation.title converted to Chat": "conversation.convertToChat.successMessage.detail", -"Failed to convert conversation to Chat": "conversation.convertToChat.errorMessage.detail", -"Convert to @:forge.forgeCanvas": "conversation.convertToForgeCanvas.title", -"@:conversation.title converted to @:forge.forgeCanvas": "conversation.convertToForgeCanvas.successMessage.detail", -"Failed to convert conversation to @:forge.forgeCanvas": "conversation.convertToForgeCanvas.errorMessage.detail", -"Messages cloned to new split successfully": "conversation.cloneAncestorsSuccess.detail", -"Failed to clone messages to new split": "conversation.cloneAncestorsError.detail", -"Messages cloned to new conversation successfully": "conversation.cloneAncestorsToNewConversationSuccess.detail", -"Failed to clone messages to new conversation": "conversation.cloneAncestorsToNewConversationError.detail", -"Archive": "conversation.archive.groupLabel", -"Orphaned Conversation": "conversation.archive.orphanProject", -"This conversation is archived. Unarchive it to continue the discussion.": "conversation.archive.bannerMessage", -"Sending a new message will automatically unarchive.": "conversation.archive.bannerHint", -"Unarchive": "conversation.archive.unarchiveAction", -"Conversation unarchived automatically.": "conversation.archive.autoUnarchivedToast", -"{count} conversation archived | {count} conversations archived": "conversation.archive.archivedToast", -"{count} conversation restored | {count} conversations restored": "conversation.archive.unarchivedToast", -"Unload archived items": "conversation.archive.unload", -"Archived items unloaded": "conversation.archive.unloaded", -"Unable to update archive status. Please try again.": "conversation.archive.error", -"Archive {item}": "conversation.archive.archiveMultiple", -"Export @:conversation.title as JSON": "conversationActions.exportConversation.title", -"Successfully exported conversations as JSON": "conversationActions.exportConversation.successMessage", -"Show All Splits": "conversationActions.showAllSplits", -"Save Splits As": "conversationActions.saveSplitsAs", -"New Single Split Chat": "conversationActions.newSingleSplitChat", -"Split Preset | Split Presets": "conversationActions.splitPreset", -"Save Splits As @:preset": "conversationActions.splitPresetForm.saveTitle", -"Edit Split @:preset {presetName}": "conversationActions.splitPresetForm.editTitle", -"@:preset Name": "conversationActions.splitPresetForm.presetName", -"@:preset Options": "conversationActions.splitPresetForm.presetOptions", -"@:select @:preset Options": "conversationActions.splitPresetForm.presetOptionsPlaceholder", -"Save @:preset": "conversationActions.splitPresetForm.savePreset", -"Split @:preset added": "conversationActions.splitPresetForm.successMessage.saveDetail", -"Split @:preset updated": "conversationActions.splitPresetForm.successMessage.editDetail", -"Failed to save Split @:preset": "conversationActions.splitPresetForm.errorMessage.saveDetail", -"Delete Split @:preset": "conversationActions.deleteSplitPresetConfirmation.header", -"Are you sure you want to delete {splitPresetName}? ": "conversationActions.deleteSplitPresetConfirmation.message", -"Split @:preset deleted": "conversationActions.deleteSplitPresetConfirmation.successMessage.detail", -"Compact Mode": "conversationActions.compactMode", -"@:enable @:conversationActions.compactMode": "conversationActions.enableCompactMode", -"@:disable @:conversationActions.compactMode": "conversationActions.disableCompactMode", -"Split Widths": "conversationActions.splitWidths.title", -"Slim": "conversationActions.splitWidths.slim", -"Balanced": "conversationActions.splitWidths.balanced", -"Roomy": "conversationActions.splitWidths.roomy", -"Spacious": "conversationActions.splitWidths.spacious", -"Full": "conversationActions.splitWidths.full", -"Response Configuration": "responseConfiguration.title", -"Select a preset...": "responseConfiguration.selectPresetPlaceholder", -"Save as Preset": "responseConfiguration.saveAsPreset", -"Common Settings": "responseConfiguration.commonSettings.title", -"Advanced Parameters": "responseConfiguration.advancedParameters.title", -"JSON object for advanced model parameters": "responseConfiguration.advancedParameters.description", -"": "responseConfiguration.advancedParameters.placeholder", -"Provider Options": "responseConfiguration.providerOptions.title", -"Provider-specific configuration": "responseConfiguration.providerOptions.description", -"Thinking Configuration": "responseConfiguration.thinkingConfig.title", -"Extended thinking configuration": "responseConfiguration.thinkingConfig.description", -"Provider may ignore or partially honor thinking settings": "responseConfiguration.thinkingConfig.notice", -"Custom Parameters": "responseConfiguration.customParameters.title", -"Provider may ignore or partially honor these": "responseConfiguration.customParameters.helper", -"custom_param": "responseConfiguration.customParameters.keyPlaceholder", -"value": "responseConfiguration.customParameters.valuePlaceholder", -"Delete Parameter": "responseConfiguration.customParameters.deleteConfirm.title", -"Delete custom parameter \"{param}\"?": "responseConfiguration.customParameters.deleteConfirm.message", -"Parameter key is required.": "responseConfiguration.customParameters.errors.missingKey", -"This key is reserved for built-in parameters.": "responseConfiguration.customParameters.errors.reserved", -"A parameter with this key already exists.": "responseConfiguration.customParameters.errors.duplicate", -"Invalid JSON": "responseConfiguration.json.invalid", -"Constraint Mode is On": "responseConfiguration.tooltips.constraintMode", -"Freeform Mode is On - no min/max limits": "responseConfiguration.tooltips.freeformMode", -"Expand for other options": "responseConfiguration.expandOtherOptions", -"Collapse other options": "responseConfiguration.collapseOtherOptions", -"Temperature": "responseConfiguration.parameters.temperature.label", -"Controls randomness (0=focused, 2=creative)": "responseConfiguration.parameters.temperature.helper", -"Top P": "responseConfiguration.parameters.topP.label", -"Probability mass to keep during nucleus sampling": "responseConfiguration.parameters.topP.helper", -"Top K": "responseConfiguration.parameters.topK.label", -"Limit token selection to the top K tokens": "responseConfiguration.parameters.topK.helper", -"Max Output Tokens": "responseConfiguration.parameters.maxOutputTokens.label", -"Maximum tokens for responses": "responseConfiguration.parameters.maxOutputTokens.helper", -"Maximum tokens for responses (limit {0})": "responseConfiguration.parameters.maxOutputTokens.helperWithLimit", -"Context Window Size": "responseConfiguration.parameters.numCtx.label", -"Maximum tokens accepted in the prompt": "responseConfiguration.parameters.numCtx.helper", -"Maximum tokens accepted in the prompt (limit {0})": "responseConfiguration.parameters.numCtx.helperWithLimit", -"Set to 0 to use model's maximum context size": "responseConfiguration.parameters.numCtx.llamaCppHint", -"Presence Penalty": "responseConfiguration.parameters.presencePenalty.label", -"Penalize new tokens based on whether they appear in the text so far": "responseConfiguration.parameters.presencePenalty.helper", -"Frequency Penalty": "responseConfiguration.parameters.frequencyPenalty.label", -"Penalize tokens based on frequency in the text so far": "responseConfiguration.parameters.frequencyPenalty.helper", -"Repeat Penalty": "responseConfiguration.parameters.repeatPenalty.label", -"Discourage repeating phrases": "responseConfiguration.parameters.repeatPenalty.helper", -"Repeat Last N": "responseConfiguration.parameters.repeatLastN.label", -"Context window for applying repeat penalty": "responseConfiguration.parameters.repeatLastN.helper", -"Min P": "responseConfiguration.parameters.minP.label", -"Minimum cumulative probability for token selection": "responseConfiguration.parameters.minP.helper", -"Mirostat": "responseConfiguration.parameters.mirostat.label", -"Stabilize perplexity dynamically": "responseConfiguration.parameters.mirostat.helper", -"Off": "responseConfiguration.parameters.mirostat.options.off", -"Mirostat 1.0": "responseConfiguration.parameters.mirostat.options.v1", -"Mirostat 2.0": "responseConfiguration.parameters.mirostat.options.v2", -"Mirostat Tau": "responseConfiguration.parameters.mirostatTau.label", -"Target surprise level (lower = safer)": "responseConfiguration.parameters.mirostatTau.helper", -"Mirostat Eta": "responseConfiguration.parameters.mirostatEta.label", -"Learning rate for Mirostat adjustment": "responseConfiguration.parameters.mirostatEta.helper", -"GPU Layers": "responseConfiguration.parameters.numGpu.label", -"Number of layers to offload to GPU": "responseConfiguration.parameters.numGpu.helper", -"Threads": "responseConfiguration.parameters.numThread.label", -"CPU threads to use for generation": "responseConfiguration.parameters.numThread.helper", -"Model Parameters": "modelParams.title", -"Max Output Tokens (Legacy)": "modelParams.maxTokens", -"Context Window @:size": "modelParams.numCtx", -"Number of GPU Layers": "modelParams.numGpu", -"@:select or insert a parameter": "modelParams.selectPlaceholder", -"@:select a @:preset": "modelParams.selectPresetPlaceholder", -"Save as @:preset": "modelParams.saveAsPreset", -"Add New Parameter": "modelParams.addParameter", -"Extra @:params": "modelParams.extraParams", -"Apply and Save as Model Default": "modelParams.applyAndSaveAsDefault", -"Save @:modelParams.params As Preset": "modelParams.savePresetForm.title", -"Failed to save params preset.": "modelParams.savePresetForm.errorMessage.detail", -"@:modelParams.params preset saved.": "modelParams.savePresetForm.successMessage.detail", -"Delete @:preset": "modelParams.deletePresetConfirm.title", -"Are you sure you want to delete {presetName}?": "modelParams.deletePresetConfirm.message", -"Failed to delete params preset.": "modelParams.deletePresetConfirm.errorMessage.detail", -"@:modelParams.params preset deleted.": "modelParams.deletePresetConfirm.successMessage.detail", -"Thinking Effort": "modelParams.thinkingEffort.label", -"Think Lightly": "modelParams.thinkingEffort.light", -"Think Moderately": "modelParams.thinkingEffort.moderate", -"Think Deeply": "modelParams.thinkingEffort.deep", -"Default": "modelParams.thinkingEffort.default", -"Dynamic": "modelParams.thinkingEffort.dynamic", -"Exclude": "modelParams.thinkingEffort.exclude", -"Split Options": "chatSplitActions.title", -"Add Split Chat": "chatSplitActions.addSplitChat", -"Hide Split": "chatSplitActions.hideSplit", -"Copy Split to New Conversation": "chatSplitActions.copySplitToNewConversation", -"Move Split to New Conversation": "chatSplitActions.moveSplitToNewConversation", -"Delete Split": "chatSplitActions.deleteSplit", -"Remove Split": "chatSplitActions.removeSplit", -"Split removed": "chatSplitActions.splitRemoved", -"Split reset": "chatSplitActions.splitReset", -"Split copied to new conversation": "chatSplitActions.copySplitToNewConversationSuccess.detail", -"Split moved to new conversation": "chatSplitActions.moveSplitToNewConversationSuccess.detail", -"Failed to copy split to new conversation": "chatSplitActions.copySplitToNewConversationError.detail", -"Failed to move split to new conversation": "chatSplitActions.moveSplitToNewConversationError.detail", -"Export Chat": "chatSplitActions.exportOrCopyChat.exportChat", -"Copy Chat": "chatSplitActions.exportOrCopyChat.copyChat", -"Active Branch as JSON": "chatSplitActions.exportOrCopyChat.activeBranchAsJson", -"Active Branch as Markdown": "chatSplitActions.exportOrCopyChat.activeBranchAsMarkdown", -"All Branches as JSON": "chatSplitActions.exportOrCopyChat.allBranchesAsJson", -"Successfully {action} chat as {format}": "chatSplitActions.exportOrCopyChat.successMessage", -"exported": "chatSplitActions.exportOrCopyChat.action.export", -"copied": "chatSplitActions.exportOrCopyChat.action.copy", -"Show All Hidden Messages": "chatSplitActions.showAllHiddenMessages.title", -"All hidden messages are now visible": "chatSplitActions.showAllHiddenMessages.successMessage.detail", -"Are you sure you want to delete this Split?": "chatSplitActions.deleteConfirmation.message", -"Message|Messages": "message.title", -"Message and Descendants": "message.currentMessageAndDescendants", -"Send on Enter": "message.sendOnEnter", -"Send Modifier": "message.sendModifier.label", -"Shift": "message.sendModifier.shift", -"Alt": "message.sendModifier.alt", -"Ctrl": "message.sendModifier.ctrl", -"Meta": "message.sendModifier.meta", -"Re-send user message": "message.resendUserMessage", -"Send as @:assistant Message": "message.sendAsAssistantMessage", -"Sending a message as \"Assistant\" lets you shape the conversation by adding AI responses yourself. The AI will continue as if it wrote that message. Useful for providing context or guiding responses.": "message.sendAsAssistantMessageHelp", -"Sent as Assistant Message": "message.sentAsAssistantBadge", -"Manually Edited": "message.manuallyEdited", -"@:bookmark Message | @:bookmark Messages": "message.renderingActions.bookmark", -"Remove @:bookmark | Remove Bookmarks": "message.renderingActions.removeBookmark", -"Delete Message | Delete Messages": "message.renderingActions.deleteMessage", -"Remove Message": "message.renderingActions.removeMessage", -"Regenerate assistant message as a new branch": "message.renderingActions.regenerateAssistantMessage", -"@:continue Generation": "message.renderingActions.continueGeneration", -"Use as prompt in new split": "message.renderingActions.useAsPromptInNewSplit", -"Fold Messages Above": "message.renderingActions.foldUp", -"Unfold Messages Above": "message.renderingActions.unfold", -"Clone with Ancestors to New Split": "message.renderingActions.cloneAncestorsToNewSplit", -"Clone with Ancestors to New Conversation": "message.renderingActions.cloneAncestorsToNewConversation", -"Extra Actions": "message.renderingActions.extraActions", -"No model selected. Please select a model to send a message": "message.noModelSelectedErrorMessage.detail", -"Delete Message": "message.currentMessageDeleteConfirmation.header", -"Are you sure you want to delete this message?": "message.currentMessageDeleteConfirmation.message", -"Delete Message and its descendants": "message.currentMessageAndDescendantsDeleteConfirmation.header", -"Are you sure you want to delete this message and all its descendants?": "message.currentMessageAndDescendantsDeleteConfirmation.message", -"Quick Commands": "slashCommands.title", -"No matching commands": "slashCommands.noMatches", -"Type \\ followed by command or alias": "slashCommands.hint", -"Regenerating message...": "slashCommands.executed.regenerate", -"Context shield applied": "slashCommands.executed.shield", -"Compressing with shield...": "slashCommands.executed.compress", -"Message @:bookmarked": "slashCommands.executed.bookmark", -"Copied to clipboard": "slashCommands.executed.copy", -"Continuing generation...": "slashCommands.executed.continue", -"Resending message...": "slashCommands.executed.resend", -"Shiftcuts": "shiftcutMode.title", -"Enable or disable the Shiftcuts feature. Unlike standard keyboard shortcuts, Shiftcuts are triggered by double-tapping the Shift key and then pressing another key to perform an action; including: 't' to open new split chat, 'e' to open environment selector, '1' to toggle sidebar, and 'm' to open minimap.": "shiftcutMode.description", -"URL Endpoint": "urlEndpoint", -"Give it a unique name": "giveUniqueNamePlaceholder", -"Duplicate or invalid {item} name. Please enter a unique name.": "duplicateName", -"You have not backed up your data, would you like to export your data for backup?": "manageData.firstBackupReminder", -"It has been 24hrs since your last backup, would you like to export your data for backup?": "manageData.scheduledBackupReminder", -"Storage may be cleared by the browser under storage pressure. We recommend backing up your data regularly.": "manageData.nonPersistentStorage", -"Export @:data": "manageData.exportData", -"Clear @:data": "manageData.clearData", -"Restore @:data": "manageData.restoreData", -"Drag and drop your data backup to restore from.": "manageData.dragAndDropExportedData", -"Restoring from backup file will replace all existing data. We recommend to export a backup first.": "manageData.restoreDataWarning", -"Failed to export data": "manageData.exportErrorMessage.detail", -"Backup @:data": "manageData.backupData", -"@:data exported": "manageData.exportSuccessMessage.detail", -"Failed to clear data": "manageData.clearErrorMessage.detail", -"@:data has been cleared": "manageData.clearSuccessMessage.detail", -"Enter '{string}' here": "manageData.confirmationActionPlaceholder", -"Please enter '{string}' below to proceed": "manageData.proceedWithConfirmationAction", -"@:warning": "manageData.invalidConfirmationString.summary", -"Invalid confirmation. Please enter '{string}' to proceed.": "manageData.invalidConfirmationString.detail", -"Are you sure you want to clear all data? This action cannot be undone.": "manageData.clearDataConfirmation.message", -"Please select a file to restore from": "manageData.restoreDataConfirmation.fileNotSelectedWarning.message", -"Are you sure you want to restore all data? This action will replace all existing data and cannot be undone. We recommend to export a backup first.": "manageData.restoreDataConfirmation.message", -"Restore": "manageData.restoreDataConfirmation.acceptLabel", -"@:data Imported": "manageData.importDataSuccessMessage.detail", -"Failed to Import @:data": "manageData.importDataErrorMessage.detail", -"Setup {item}": "setupItem.label", -"{item} setup completed": "setupItem.success", -"Could not setup {item}": "setupItem.failure", -"Welcome to Msty Studio!": "onboard.greeting", -"We'd need at least one model provider to get started.": "onboard.getStarted", -"Welcome to Msty!": "onboard.desktop.greeting", -"How would you like to get started?": "onboard.desktop.getStarted", -"Got Ollama/Msty Models?": "onboard.desktop.customLocation.title", -"Got MLX Models?": "onboard.desktop.customLocation.titleMLX", -"Got LLaMA.cpp Models?": "onboard.desktop.customLocation.titleLlamaCpp", -"You can use your existing Ollama or Msty models directly, if any, or specify a custom location. Note: we will still be using our own service to run those models.": "onboard.desktop.customLocation.description", -"If you don't have any MLX models yet, you can specify a custom location where you'd like to store them.": "onboard.desktop.customLocation.descriptionMLX", -"We found MLX models in your Hugging Face Hub cache! You can use them directly or specify a custom location.": "onboard.desktop.customLocation.descriptionMLXWithSwama", -"Specify a custom location where you'd like to store your GGUF models for LLaMA.cpp.": "onboard.desktop.customLocation.descriptionLlamaCpp", -"No location set": "onboard.desktop.customLocation.noLocationSet", -"Set Your Own": "onboard.desktop.customLocation.setYourOwn", -"Custom model locations are not available for MLX": "onboard.desktop.customLocation.notAvailableForMLX", -"Enter custom models path": "onboard.desktop.customLocation.placeholder", -"To get you started, {modelName} will be downloaded. You can choose a different model.": "onboard.desktop.setupLocalAI.description", -"Use models like DeepSeek R1, Meta Llama4, Microsoft Phi4, IBM Granite, Google Gemma, etc": "onboard.desktop.setupLocalAI.pros.item1", -"Use offline and keep your @:data private": "onboard.desktop.setupLocalAI.pros.item2", -"Models are free to download and use": "onboard.desktop.setupLocalAI.pros.item3", -"Install and use specialized models": "onboard.desktop.setupLocalAI.pros.item4", -"Needs extra storage and memory": "onboard.desktop.setupLocalAI.cons.item1", -"That's it!": "onboard.desktop.setupLocalAI.successMessage.summary", -"You can now start chatting with your models privately and securely.": "onboard.desktop.setupLocalAI.successMessage.detail", -"Error Setting Up @:localAIService": "onboard.desktop.setupLocalAI.errorMessage.summary", -"We could not set up @:localAIService{'.'} Please check the logs for more details. {errorMessage}": "onboard.desktop.setupLocalAI.errorMessage.detail", -"There was a permission issue setting up Local AI. You can rerun the app as an admin (not recommended) or consider installing the app as for a single user only (recommended).": "onboard.desktop.setupLocalAI.errorMessage.epermDetail", -"{errorMessage} Consider installing Local AI from archive files if you continue to get this error. Please visit https://docs.msty.studio/getting-started/onboarding": "onboard.desktop.setupLocalAI.errorMessage.abortDetail", -"Error Setting Up MLX Service": "onboard.desktop.setupMLX.errorMessage.summary", -"We could not set up MLX Service. Please check the logs for more details. {errorMessage}": "onboard.desktop.setupMLX.errorMessage.detail", -"To get you started, {modelName} will be downloaded. MLX is Apple's optimized framework for Apple Silicon.": "onboard.desktop.setupMLX.description", -"MLX is currently in experimental mode. It may have some limitations and rough edges. Please report any issues to the team.": "onboard.desktop.setupMLX.experimentalInfo", -"Optimized for Apple Silicon (M1, M2, M3, M4)": "onboard.desktop.setupMLX.pros.item1", -"Efficient memory usage with unified memory architecture": "onboard.desktop.setupMLX.pros.item2", -"Supports MLX, SafeTensors, and GGUF models": "onboard.desktop.setupMLX.pros.item3", -"Native performance on macOS": "onboard.desktop.setupMLX.pros.item4", -"Only available on Apple Silicon Macs": "onboard.desktop.setupMLX.cons.item1", -"Smaller model selection compared to Ollama": "onboard.desktop.setupMLX.cons.item2", -"MLX Setup Complete!": "onboard.desktop.setupMLX.successMessage.summary", -"You can now use MLX models with optimal performance on your Mac.": "onboard.desktop.setupMLX.successMessage.detail", -"Checking system compatibility...": "onboard.desktop.setupMLX.progress.checkingCompatibility", -"Downloading MLX server...": "onboard.desktop.setupMLX.progress.downloadingBinary", -"Starting MLX service...": "onboard.desktop.setupMLX.progress.startingService", -"Setting up MLX...": "onboard.desktop.setupMLX.progress.settingUp", -"Downloading Model: {progress}%": "onboard.desktop.setupMLX.progress.downloadProgress", -"LLaMA.cpp support is experimental and under active development": "onboard.desktop.setupLlamaCpp.experimentalInfo", -"Error Setting Up LLaMA.cpp Service": "onboard.desktop.setupLlamaCpp.errorMessage.summary", -"We could not set up LLaMA.cpp Service. Please check the logs for more details. {errorMessage}": "onboard.desktop.setupLlamaCpp.errorMessage.detail", -"To get you started, {modelName} will be downloaded. LLaMA.cpp provides efficient cross-platform AI inference.": "onboard.desktop.setupLlamaCpp.description", -"Works on Windows, macOS, and Linux": "onboard.desktop.setupLlamaCpp.pros.item1", -"Supports both CPU and GPU acceleration": "onboard.desktop.setupLlamaCpp.pros.item2", -"Efficient memory usage and fast inference": "onboard.desktop.setupLlamaCpp.pros.item3", -"Compatible with GGUF model format": "onboard.desktop.setupLlamaCpp.pros.item4", -"Requires desktop application": "onboard.desktop.setupLlamaCpp.cons.item1", -"Performance depends on hardware configuration": "onboard.desktop.setupLlamaCpp.cons.item2", -"LLaMA.cpp Setup Complete!": "onboard.desktop.setupLlamaCpp.successMessage.summary", -"You can now use LLaMA.cpp models with efficient performance on your system.": "onboard.desktop.setupLlamaCpp.successMessage.detail", -"Downloading LLaMA.cpp server...": "onboard.desktop.setupLlamaCpp.progress.downloadingBinary", -"Starting LLaMA.cpp service...": "onboard.desktop.setupLlamaCpp.progress.startingService", -"Setting up LLaMA.cpp...": "onboard.desktop.setupLlamaCpp.progress.settingUp", -"Downloading: {progress}%": "onboard.desktop.setupLlamaCpp.progress.downloadProgress", -"With most online providers, you'd need to get an API key from the provider's website. {findYourKey}": "onboard.desktop.addRemoteModelsProvider.description", -"Find your API key": "onboard.desktop.addRemoteModelsProvider.findYourKey", -"Use OpenAI, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Ollama, Remote Msty, etc": "onboard.desktop.addRemoteModelsProvider.pros.item1", -"Get started without downloading models": "onboard.desktop.addRemoteModelsProvider.pros.item2", -"Some vendors provide extra features like image generation, web search, etc": "onboard.desktop.addRemoteModelsProvider.pros.item3", -"Requires internet connection to chat": "onboard.desktop.addRemoteModelsProvider.cons.item1", -"Vendor charges may apply": "onboard.desktop.addRemoteModelsProvider.cons.item2", -"{count} model available | {count} models available": "onboard.modelsAvailableCount", -"{count} model added | {count} models added": "onboard.modelsAddedCount", -"Forget this provider": "onboard.forgetThisProvider", -"Let's Go!": "onboard.submitAndContinue", -"No @:localAI? Get @:remoteToolsConnector.title for 1-click Setup": "onboard.getSidecar", -"You are now ready to chat with one of the models from {providerName}.": "onboard.completedWithProvider.detail", -"Continue {service} Setup": "onboard.continueSetup", -"Enter your email": "login.enterEmail", -"Invalid email or something went wrong. Please try again.": "login.errorMessage", -"Login link sent to { email }": "login.successMessage", -"Model Hub": "modelHub.title", -"Model Providers": "modelHub.languageModelsProviders.title", -"Access models from the cloud or remote servers.": "modelHub.languageModelsProviders.subtitle", -"Models list is pulled automatically": "modelHub.languageModelsProviders.autoFetchModels", -"Add Provider": "modelHub.languageModelsProviders.addLanguageModelsProvider", -"Use OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Msty, Remote Ollama, etc.": "modelHub.languageModelsProviders.prosAndCons.pros[0]", -"Get started quickly": "modelHub.languageModelsProviders.prosAndCons.pros[1]", -"No download required": "modelHub.languageModelsProviders.prosAndCons.pros[2]", -"Delete Provider": "modelHub.languageModelsProviders.deleteConfirmation.header", -"Are you sure you want to delete {providerName}?": "modelHub.languageModelsProviders.deleteConfirmation.message", -"Provider deleted": "modelHub.languageModelsProviders.deleteConfirmation.successMessage.detail", -"Error": "modelHub.languageModelsProviders.deleteConfirmation.errorMessage.summary", -"Failed to delete provider": "modelHub.languageModelsProviders.deleteConfirmation.errorMessage.detail", -"Copy to Other Workspace": "modelHub.languageModelsProviders.syncProviderWithWorkspaceForm.titleNew", -"Copy/Sync to Other Workspaces": "modelHub.languageModelsProviders.syncProviderWithWorkspaceForm.titleUpdate", -"Copy this provider to one or more workspaces.": "modelHub.languageModelsProviders.syncProviderWithWorkspaceForm.descriptionNew", -"Sync this provider to one or more workspaces. If this provider was copied before, it will be updated. If not, it will be added.": "modelHub.languageModelsProviders.syncProviderWithWorkspaceForm.descriptionUpdate", -"@:select Workspaces": "modelHub.languageModelsProviders.syncProviderWithWorkspaceForm.selectWorkspaces", -"Available Workspaces": "modelHub.languageModelsProviders.syncProviderWithWorkspaceForm.availableWorkspaces", -"Update Provider": "modelHub.languageModelsProviders.providerForm.updateTitle", -"New Language Models Provider": "modelHub.languageModelsProviders.providerForm.newHeader", -"Edit Language Model Provider": "modelHub.languageModelsProviders.providerForm.editHeader", -"Models Provider": "modelHub.languageModelsProviders.providerForm.modelsProvider", -"Model ID": "modelHub.languageModelsProviders.providerForm.modelId", -"Model Name": "modelHub.languageModelsProviders.providerForm.modelName", -"Provider Name": "modelHub.languageModelsProviders.providerForm.providerName", -"Provider URL": "modelHub.languageModelsProviders.providerForm.providerUrl", -"Provider Token": "modelHub.languageModelsProviders.providerForm.providerToken", -"Save Provider": "modelHub.languageModelsProviders.providerForm.saveProvider", -"@:select Provider": "modelHub.languageModelsProviders.providerForm.selectProvider", -"Give it a name (optional)": "modelHub.languageModelsProviders.providerForm.namePlaceholder", -"@:select Models": "modelHub.languageModelsProviders.providerForm.selectModels", -"Available Models": "modelHub.languageModelsProviders.providerForm.availableModels", -"Add Custom Model": "modelHub.languageModelsProviders.providerForm.addCustomModel", -"Inference Endpoint (must start with http:// or https://)": "modelHub.languageModelsProviders.providerForm.inferenceEndpoint", -"Base URL": "modelHub.languageModelsProviders.providerForm.baseURL", -"Resource Name (will be ignored if Base URL is set)": "modelHub.languageModelsProviders.providerForm.resourceName", -"API @:version": "modelHub.languageModelsProviders.providerForm.apiVersion", -"AWS Region": "modelHub.languageModelsProviders.providerForm.region", -"Access Key ID": "modelHub.languageModelsProviders.providerForm.accessKeyId", -"Secret Access Key": "modelHub.languageModelsProviders.providerForm.secretAccessKey", -"Session Token (Optional)": "modelHub.languageModelsProviders.providerForm.sessionToken", -"Not all models have been tested with Msty and it may not support all the models available in the provider.": "modelHub.languageModelsProviders.providerForm.notAllModelsCompatible", -"Click 'Fetch Models' to retrieve available models from the provider (an API key may be required), or manually add a model below.": "modelHub.languageModelsProviders.providerForm.enterAndManuallyFetchModels", -"Enter your API key to try to retrieve all the available models from {providerName}, or manually add a custom model.": "modelHub.languageModelsProviders.providerForm.enterAndFetchModels", -"Fetch Models": "modelHub.languageModelsProviders.providerForm.fetchModels", -"All Models": "modelHub.languageModelsProviders.providerForm.modelsFilter.all", -"Unselected": "modelHub.languageModelsProviders.providerForm.modelsFilter.unselected", -"All Purposes": "modelHub.languageModelsProviders.providerForm.purposeFilter.all", -"Search models...": "modelHub.languageModelsProviders.providerForm.searchInModels", -"You must have CORS enabled in LM Studio to work with Msty": "modelHub.languageModelsProviders.providerForm.lmsCorsNote", -"Most of the OpenAI compatible providers endpoint need /v1 prefix e.g. https://example.com/v1 If you are running into issues, try appending /v1 to the endpoint.": "modelHub.languageModelsProviders.providerForm.openAICompatibleNote", -"Models Provider {providerName} added": "modelHub.languageModelsProviders.providerForm.successMessage.addDetail", -"Models Provider {providerName} updated": "modelHub.languageModelsProviders.providerForm.successMessage.updateDetail", -"Failed to add Provider": "modelHub.languageModelsProviders.providerForm.errorMessage.addDetail", -"Failed to update Provider": "modelHub.languageModelsProviders.providerForm.errorMessage.updateDetail", -"Using long-term credentials for Amazon Bedrock is not recommended.": "modelHub.languageModelsProviders.providerForm.bedrockLongTermCredsWarning", -"e.g. us-east-1": "modelHub.languageModelsProviders.providerForm.awsRegionExample", -"Failed to update provider visibility": "modelHub.languageModelsProviders.toggleVisibility.errorMessage.detail", -"{provider} is now {visibility}": "modelHub.languageModelsProviders.toggleVisibility.successMessage.detail", -"Models Count": "modelHub.languageModelsProviders.modelsCount", -"Show in Model Selector": "modelHub.languageModelsProviders.showInSelector", -"No models available for this provider": "modelHub.languageModelsProviders.noModels", -"Model updated successfully": "modelHub.languageModelsProviders.modelUpdated", -"Failed to update model": "modelHub.languageModelsProviders.modelUpdateError", -"Add New": "modelHub.languageModelsProviders.addNewProvider", -"@:remoteToolsConnector.title Proxy @:localAI Endpoint": "modelHub.sidecarLocalAIProxyEndpoint.title", -"Make sure @:remoteToolsConnector.title is running and accessible at the provided URL via Tunneling. Copy and paste the full Tunnel Connection Info with token and URL.": "modelHub.sidecarLocalAIProxyEndpoint.description", -"Make sure Msty Desktop is running with remote connections enabled.": "modelHub.mstyRemoteEndpoint.description", -"Learn how to enable remote connections": "modelHub.mstyRemoteEndpoint.learnMore", -"This service runs whenever the app itself is up and running. You may have to update the port number if Local AI port got changed. Otherwise, it's best to leave it as is.": "modelHub.mstyLocalEndpoint.description", -"When using self-hosted Ollama, make sure Ollama is running and accessible at the provided URL. You must add https://msty.studio to the allowed origins when starting Ollama service.": "modelHub.ollamaRemoteEndpoint.description", -"e.g. http://localhost:11434 or https://ollama.com": "modelHub.ollamaRemoteEndpoint.placeholder", -"This provider is used to run MLX models on Apple Silicon Macs. The endpoint is auto-corrected to make sure it matches with your local MLX setup. You can change it temporarily if needed.": "modelHub.mlxEndpoint.description", -"This provider is used to run LLaMA.cpp models. Most likely, you won't need to change the default endpoint. If you do, make sure LLaMA.cpp service is running and accessible at the provided URL.": "modelHub.llamacppEndpoint.description", -"@:localAI Models": "modelHub.localModels.title", -"There are no compatible providers available to manage Local Models. Please add at least one provider of type Msty Remote or Ollama Remote to use Local Models.": "modelHub.localModels.noCompatibleProviders", -"{count} Active Download | {count} Active Downloads": "modelHub.localModels.activeDownloads", -"Featured Models": "modelHub.localModels.featured.title", -"Installed Models": "modelHub.localModels.installed.title", -"Or Install model by tag e.g. {example}": "modelHub.localModels.customOllamaModelPlaceholder", -"Already Installed": "modelHub.localModels.alreadyInstalledErrorMessage.summary", -"Model {modelName} is already installed": "modelHub.localModels.alreadyInstalledErrorMessage.detail", -"Abort Installation of {modelName}": "modelHub.localModels.abortInstalling.title", -"Installation of {modelName} aborted": "modelHub.localModels.abortInstalling.successMessage.detail", -"Uninstall Model": "modelHub.localModels.deleteConfirmation.header", -"Are you sure you want to uninstall {modelName}?": "modelHub.localModels.deleteConfirmation.message", -"Model removed": "modelHub.localModels.deleteConfirmation.successMessage.detail", -"Failed to uninstall model": "modelHub.localModels.deleteConfirmation.errorMessage.detail", -"Model {modelName} is ready to use": "modelHub.localModels.modelInstall.successMessage.detail", -"Failed to install model {modelName}": "modelHub.localModels.modelInstall.errorMessage.detail", -"{modelName} requires a newer version of Local AI. Please update to the latest version from Settings > Local AI > Service Version > ... > Force Update Local AI Service": "modelHub.localModels.modelInstall.errorMessage.newerVersion", -"Ollama Models": "modelHub.localModels.ollamaModels.title", -"Hugging Face Models": "modelHub.localModels.huggingfaceModels.title", -"Search by author, model, or paste a Hugging Face repo URL": "modelHub.localModels.huggingfaceModels.searchPlaceholder", -"Find models by name, author, or URL. Or get started with one of the model families below.": "modelHub.localModels.huggingfaceModels.searchPlaceholderAlt", -"Searching for models...": "modelHub.localModels.huggingfaceModels.searching", -"Import GGUF": "modelHub.localModels.ggufImport.tabTitle", -"Import GGUF Model": "modelHub.localModels.ggufImport.title", -"Select a GGUF model file from your file system to import into {providerLabel}.": "modelHub.localModels.ggufImport.description", -"Active Imports": "modelHub.localModels.ggufImport.activeImports", -"No file selected": "modelHub.localModels.ggufImport.noFileSelected", -"Click the button below to select a GGUF file": "modelHub.localModels.ggufImport.selectGgufFilePrompt", -"Drag and drop a GGUF file here, or click the button below": "modelHub.localModels.ggufImport.dragDropOrClick", -"Drop file here": "modelHub.localModels.ggufImport.dropFileHere", -"Release to select file": "modelHub.localModels.ggufImport.releaseToUpload", -"Select GGUF File": "modelHub.localModels.ggufImport.selectGgufFile", -"Choose Different File": "modelHub.localModels.ggufImport.chooseDifferentFile", -"Import Model": "modelHub.localModels.ggufImport.importModel", -"e.g., my-custom-model": "modelHub.localModels.ggufImport.modelNamePlaceholder", -"This will be the name you use to reference the model in conversations.": "modelHub.localModels.ggufImport.modelNameDescription", -"Remove file": "modelHub.localModels.ggufImport.removeFile", -"Dismiss": "modelHub.localModels.ggufImport.dismissJob", -"Use symlink (saves disk space)": "modelHub.localModels.ggufImport.useSymlink", -"Creates a symbolic link instead of copying the file. Only available for local servers.": "modelHub.localModels.ggufImport.symlinkDescription", -"Calculating file digest": "modelHub.localModels.ggufImport.process.calculatingDigest", -"Uploading file": "modelHub.localModels.ggufImport.process.uploadingFile", -"Creating symlink": "modelHub.localModels.ggufImport.process.creatingSymlink", -"Creating model": "modelHub.localModels.ggufImport.process.creatingModel", -"Model {modelName} imported successfully": "modelHub.localModels.ggufImport.success", -"File": "modelHub.localModels.ggufImport.labels.file", -"Uploading": "modelHub.localModels.ggufImport.status.uploading", -"Completed": "modelHub.localModels.ggufImport.status.completed", -"Please select a valid GGUF file": "modelHub.localModels.ggufImport.errors.invalidFile", -"Import Safetensors": "modelHub.localModels.safetensorsImport.tabTitle", -"Import Safetensors Model": "modelHub.localModels.safetensorsImport.title", -"Select a directory containing safetensors model weights to import into {providerLabel}. Supported architectures include Gemma, Llama, Mistral, and Phi.": "modelHub.localModels.safetensorsImport.description", -"No directory selected": "modelHub.localModels.safetensorsImport.noDirectorySelected", -"The directory should contain safetensors files and a config.json": "modelHub.localModels.safetensorsImport.selectDirectoryHint", -"Select Safetensors Directory": "modelHub.localModels.safetensorsImport.selectDirectoryTitle", -"Select Directory": "modelHub.localModels.safetensorsImport.selectDirectory", -"Choose Different Directory": "modelHub.localModels.safetensorsImport.chooseDifferentDirectory", -"Remove directory": "modelHub.localModels.safetensorsImport.removeDirectory", -"Scanning directory": "modelHub.localModels.safetensorsImport.process.scanningDirectory", -"Processing file {current} of {total}": "modelHub.localModels.safetensorsImport.process.processingFile", -"Creating model from safetensors": "modelHub.localModels.safetensorsImport.process.creatingModel", -"Directory": "modelHub.localModels.safetensorsImport.labels.directory", -"Uploading files": "modelHub.localModels.safetensorsImport.status.uploading", -"files selected": "modelHub.localModels.safetensorsImport.filesSelected", -"Safetensors import is only available in the desktop app": "modelHub.localModels.safetensorsImport.errors.desktopOnly", -"Failed to select directory": "modelHub.localModels.safetensorsImport.errors.selectFailed", -"No valid safetensors files found in the selected directory": "modelHub.localModels.safetensorsImport.errors.noValidFiles", -"LLaMA.cpp Models": "modelHub.llamacppModels.title", -"{count} Active LLaMA.cpp Download | {count} Active LLaMA.cpp Downloads": "modelHub.llamacppModels.activeDownloads", -"LLaMA.cpp model {modelName} is already installed": "modelHub.llamacppModels.alreadyInstalledErrorMessage.detail", -"Model Ready": "modelHub.llamacppModels.installSuccessMessage.summary", -"LLaMA.cpp model {modelName} is ready to use": "modelHub.llamacppModels.installSuccessMessage.detail", -"Installation Failed": "modelHub.llamacppModels.installErrorMessage.summary", -"Failed to install LLaMA.cpp model {modelName}": "modelHub.llamacppModels.installErrorMessage.detail", -"LLaMA.cpp model {modelName} installed": "modelHub.llamacppModels.modelInstall.successMessage.detail", -"Downloading of LLaMA.cpp model {modelName} was aborted": "modelHub.llamacppModels.modelInstall.abortedMessage.detail", -"Failed to cancel LLaMA.cpp model download": "modelHub.llamacppModels.abortInstallErrorMessage.detail", -"Cancelled download of LLaMA.cpp model {modelName}": "modelHub.llamacppModels.abortInstallSuccessMessage.detail", -"Uninstall Failed": "modelHub.llamacppModels.uninstallErrorMessage.summary", -"Failed to uninstall LLaMA.cpp model {modelName}": "modelHub.llamacppModels.uninstallErrorMessage.detail", -"Model Removed": "modelHub.llamacppModels.uninstallSuccessMessage.summary", -"Uninstalled LLaMA.cpp model {modelName}": "modelHub.llamacppModels.uninstallSuccessMessage.detail", -"Uninstall LLaMA.cpp Model": "modelHub.llamacppModels.uninstallConfirmationMessage.summary", -"Featured LLaMA.cpp Models": "modelHub.llamacppModels.llamacppFeaturedModels.title", -"Installed LLaMA.cpp Models": "modelHub.llamacppModels.llamacppInstalledModels.title", -"LLaMA.cpp Community Models": "modelHub.llamacppModels.llamacppCommunityModels.title", -"Browse, search, and install GGUF models directly from Hugging Face to your local LLaMA.cpp models folder.": "modelHub.llamacppModels.llamacppCommunityModels.description", -"Search LLaMA.cpp Community Models": "modelHub.llamacppModels.llamacppCommunityModels.searchTitle", -"Search LLaMA.cpp models from Hugging Face": "modelHub.llamacppModels.llamacppCommunityModels.searchPlaceholder", -"Find LLaMA.cpp compatible GGUF models or pick one of the featured model families below.": "modelHub.llamacppModels.llamacppCommunityModels.searchPlaceholderAlt", -"Searching for LLaMA.cpp models...": "modelHub.llamacppModels.llamacppCommunityModels.searching", -"MLX Models": "modelHub.mlxModels.title", -"MLX models are only supported on Apple Silicon Macs (M1, M2, M3, M4, etc.). Your current device is not compatible.": "modelHub.mlxModels.notAppleSilicon", -"There are no compatible MLX providers available. Please add at least one MLX provider to use MLX Models.": "modelHub.mlxModels.noCompatibleProviders", -"{count} Active MLX Download | {count} Active MLX Downloads": "modelHub.mlxModels.activeDownloads", -"Learn More about MLX": "modelHub.mlxModels.learnMore", -"Featured MLX Models": "modelHub.mlxModels.featured.title", -"Installed MLX Models": "modelHub.mlxModels.installed.title", -"MLX Model {modelName} is already installed": "modelHub.mlxModels.alreadyInstalledErrorMessage.detail", -"Uninstall MLX Model": "modelHub.mlxModels.deleteConfirmation.header", -"MLX Model removed": "modelHub.mlxModels.deleteConfirmation.successMessage.detail", -"Failed to uninstall MLX model": "modelHub.mlxModels.deleteConfirmation.errorMessage.detail", -"MLX Model {modelName} is ready to use": "modelHub.mlxModels.modelInstall.successMessage.detail", -"Failed to install MLX model {modelName}": "modelHub.mlxModels.modelInstall.errorMessage.detail", -"Downloading of MLX model {modelName} was aborted": "modelHub.mlxModels.modelInstall.abortedMessage.detail", -"MLX Community Models": "modelHub.mlxModels.mlxCommunityModels.title", -"Search MLX Community Models": "modelHub.mlxModels.mlxCommunityModels.searchTitle", -"Search MLX models from HuggingFace mlx-community": "modelHub.mlxModels.mlxCommunityModels.searchPlaceholder", -"Find MLX optimized models from HuggingFace. Or get started with one of the model families below.": "modelHub.mlxModels.mlxCommunityModels.searchPlaceholderAlt", -"Searching for MLX models...": "modelHub.mlxModels.mlxCommunityModels.searching", -"Sticky Prompt": "stickyPrompt.title", -"Disable Sticky Prompt": "stickyPrompt.disableStickyPrompt", -"Edit Sticky Prompt": "stickyPrompt.editDialog.title", -"When a 'sticky' prompt is pinned, it is added to the beginning of each new message while ignoring any previous ones. This effectively makes the conversation focused on one active context. System prompt is always included in the context.": "stickyPrompt.editDialog.description", -"@:context Shield": "contextShield.title", -"Enable @:contextShield.title": "contextShield.enableContextShield", -"Enable @:contextShield.title{'.'} Hold Option/Alt to @:contextShield.title all synced splits.": "contextShield.enableContextShieldWithSplitsSync", -"Remove @:contextShield.title": "contextShield.removeContextShield", -"Disable @:contextShield.title{'.'} Hold Option/Alt to remove @:contextShield.title from all synced splits.": "contextShield.removeContextShieldWithSplitsSync", -"Break @:context": "contextShield.breakContext", -"Custom @:context": "contextShield.customContext", -"Generate @:context @:summary": "contextShield.generateContextSummary", -"@:context @:summary": "contextShield.contextSummary", -"Edit @:context @:summary": "contextShield.editContextSummary", -"Regenerate @:context @:summary": "contextShield.regenerateContextSummary", -"Clear @:context @:summary": "contextShield.clearContextSummary", -"This summary is generated from the context of the conversations above and is included in the context when generating new messages below this shield.": "contextShield.summaryDescriptionInfoHeader", -"@:contextShield.title with @:summary": "contextShield.contextShieldWithSummary", -"Data": "data", -"Advanced Configurations": "advancedConfigurations", -"Application Info": "applicationInfo.title", -"App Version": "applicationInfo.appVersion.title", -"The latest updates are checked periodically and you will be notified when a new update is available. You can also manually check for updates, which will then automatically install any available updates.": "applicationInfo.appVersion.description", -"Check and Apply Updates": "applicationInfo.appVersion.checkForUpdates", -"Enable Auto Updates": "applicationInfo.appVersion.enableAutoUpdates", -"Disable Auto Updates": "applicationInfo.appVersion.disableAutoUpdates", -"View Changelog": "applicationInfo.appVersion.viewChangelog", -"Checking for updates...": "applicationInfo.appVersion.checkingForUpdates", -"Failed to check for updates": "applicationInfo.appVersion.errorCheckingUpdates", -"Auto updates enabled": "applicationInfo.appVersion.autoUpdatesEnabled", -"Auto updates disabled": "applicationInfo.appVersion.autoUpdatesDisabled", -"New update available": "applicationInfo.appVersion.updateAvailable", -"Downloading update...": "applicationInfo.appVersion.updateDownloading", -"You're on the latest version": "applicationInfo.appVersion.noUpdatesAvailable", -"Models Info": "applicationInfo.modelsInfo.title", -"Update your local model metadata. This information includes details about each model, but not the model files themselves. This applies to both locally stored and online models.": "applicationInfo.modelsInfo.description", -"Fetch Latest Models Info": "applicationInfo.modelsInfo.fetchLatest", -"Models info updated successfully": "applicationInfo.modelsInfo.updated", -"Failed to update models info": "applicationInfo.modelsInfo.errorUpdating", -"App Settings": "applicationInfo.appSettings.title", -"Resetting app settings to their defaults can help resolve potential issues. This will restore the default user preferences, such as appearance and models path, but will not delete any data, including chats or downloaded/imported models.": "applicationInfo.appSettings.description", -"Reset App Settings": "applicationInfo.appSettings.resetApp", -"Are you sure you want to reset all app settings to their defaults? This will restore default preferences but won't delete your data.": "applicationInfo.appSettings.resetConfirm.message", -"App settings reset successfully": "applicationInfo.appSettings.resetSuccess", -"Failed to reset app settings": "applicationInfo.appSettings.resetError", -"Data Paths": "applicationInfo.dataPaths.title", -"All data, including models, conversations, settings, and logs, are stored locally on your device. Only modify the contents of these directories if you are familiar with the application's file structure.": "applicationInfo.dataPaths.description", -"App Data": "applicationInfo.dataPaths.appData", -"App Logs": "applicationInfo.dataPaths.appLogs", -"Open in Finder": "applicationInfo.dataPaths.openInFinder", -"Help & Discussions": "applicationInfo.helpAndDiscussions.title", -"Connect with our community on Discord to get support, share your feedback, and stay informed.": "applicationInfo.helpAndDiscussions.description", -"Say Hi!": "applicationInfo.helpAndDiscussions.sayHi", -"View Docs": "applicationInfo.helpAndDiscussions.viewDocs", -"Log Viewer": "logViewer.title", -"View and analyze application logs in real-time. Use filters and search to troubleshoot issues efficiently.": "logViewer.description", -"Search Logs...": "logViewer.searchPlaceholder", -"Refresh Logs": "logViewer.refresh", -"Stop Auto-Refresh": "logViewer.autoRefreshOn", -"Enable Auto-Refresh": "logViewer.autoRefreshOff", -"Stop Auto-Scroll": "logViewer.pause", -"Resume Auto-Scroll": "logViewer.resume", -"Copy Logs to Clipboard": "logViewer.copy", -"Download Logs": "logViewer.download", -"Clear Logs Display": "logViewer.clearTemporarily", -"Clear Logs File": "logViewer.clearPermanently", -"Show All Logs": "logViewer.showAllLogs", -"Clear Log File": "logViewer.clearPermanentlyConfirmation.header", -"Are you sure you want to clear the log file? This will permanently delete all log entries.": "logViewer.clearPermanentlyConfirmation.message", -"Loading logs...": "logViewer.loading", -"No logs available": "logViewer.noLogs", -"No logs match the current filters": "logViewer.noMatchingLogs", -"{count} total line | {count} total lines": "logViewer.totalLines", -"{count} filtered line | {count} filtered lines": "logViewer.filteredLines", -"Logs copied to clipboard": "logViewer.copiedToClipboard", -"Logs downloaded successfully": "logViewer.downloaded", -"Log file cleared successfully": "logViewer.clearedPermanently", -"Failed to load logs": "logViewer.errorLoading", -"Failed to copy logs": "logViewer.errorCopying", -"Failed to download logs": "logViewer.errorDownloading", -"Failed to clear logs": "logViewer.errorClearing", -"All Levels": "logViewer.levels.all", -"Info": "logViewer.levels.info", -"Debug": "logViewer.levels.debug", -"Notifications": "notifications.title", -"Review and manage application notifications including errors, warnings, and info events.": "notifications.description", -"Search Notifications...": "notifications.searchPlaceholder", -"Searching all notifications in database": "notifications.searchingAllLogs", -"Refresh Notifications": "notifications.refresh", -"Auto-Refresh Enabled": "notifications.autoRefreshOn", -"Copy All to Clipboard": "notifications.copy", -"Copy Notification": "notifications.copyLog", -"Download Notifications": "notifications.download", -"Clear All Notifications": "notifications.clearPermanently", -"Clear Notifications": "notifications.clearPermanentlyConfirmation.header", -"Are you sure you want to permanently delete all notifications? This action cannot be undone.": "notifications.clearPermanentlyConfirmation.message", -"Loading notifications...": "notifications.loading", -"Loading more...": "notifications.loadingMore", -"End of list": "notifications.endOfList", -"No notifications available": "notifications.noLogs", -"{count} notification | {count} notifications": "notifications.totalLogs", -"Showing {count}": "notifications.displayedLogs", -"Notification copied to clipboard": "notifications.copiedToClipboard", -"Notifications downloaded successfully": "notifications.downloaded", -"Notifications cleared successfully": "notifications.clearedPermanently", -"Notification deleted successfully": "notifications.deleted", -"Failed to load notifications": "notifications.errorLoading", -"Failed to copy notification": "notifications.errorCopying", -"Failed to download notifications": "notifications.errorDownloading", -"Failed to clear notifications": "notifications.errorClearing", -"Failed to delete notification": "notifications.errorDeleting", -"Purge Notifications": "notifications.purge.label", -"Older than 1 day": "notifications.purge.olderThan1Day", -"Older than 7 days": "notifications.purge.olderThan7Days", -"Older than 15 days": "notifications.purge.olderThan15Days", -"Older than 30 days": "notifications.purge.olderThan30Days", -"Are you sure you want to delete notifications older than {days} days? This action cannot be undone.": "notifications.purge.confirmMessageDays", -"Purge": "notifications.purge.purge", -"Notifications purged successfully": "notifications.purge.purged", -"Failed to purge notifications": "notifications.purge.errorPurging", -"Errors": "notifications.levels.error", -"Warnings": "notifications.levels.warn", -"Show extra items": "sidebar.showExtraItems", -"Hide extra items": "sidebar.hideExtraItems", -"Models & Prompts": "sidebar.groups.modelsPrompts", -"Personas & Tools": "sidebar.groups.personasTools", -"Knowledge & Insights": "sidebar.groups.knowledgeInsights", -"System": "sidebar.groups.system", -"Version {version}": "sidebar.appUpdater.version", -"Restart to Apply Updates": "sidebar.appUpdater.restartToApply", -"Restart Now": "sidebar.appUpdater.restart", -"Downloading Update...": "sidebar.appUpdater.downloading", -"Opening Changelog...": "sidebar.appUpdater.openingChangelog", -"Update error - click for details": "sidebar.appUpdater.errorHint", -"Update ready - restart to apply": "sidebar.appUpdater.readyHint", -"Downloading update... {percent}%": "sidebar.appUpdater.downloadingHint", -"Update Error": "sidebar.appUpdater.errorDialog.header", -"An error occurred while updating: {error}": "sidebar.appUpdater.errorDialog.message", -"Download Manually": "sidebar.appUpdater.errorDialog.downloadManually", -"Show in Finder": "showInNativeFileManager.mac", -"Show in File Explorer": "showInNativeFileManager.win", -"Show in File Manager": "showInNativeFileManager.lin", -"Settings": "settings.title", -"General": "settings.general", -"Default Prompts": "settings.defaultPrompts", -"These prompts shape how titles are generated, search queries are built, knowledge is retrieved, and context is summarized. Changes are saved to this device’s global settings (master database) and apply across all workspaces (not per workspace).": "settings.prompts.description", -"Available Prompts": "settings.prompts.availablePrompts", -"Customized": "settings.prompts.customized", -"{count} customized": "settings.prompts.customizedCount", -"Using Custom": "settings.prompts.usingCustom", -"Using Default": "settings.prompts.usingDefault", -"Click to edit prompt": "settings.prompts.clickToEdit", -"Variables": "settings.prompts.variables", -"Last modified": "settings.prompts.lastModified", -"Select a prompt to customize": "settings.prompts.selectPrompt", -"Clear Content": "settings.prompts.clearContent", -"Reset to Default": "settings.prompts.resetToDefault", -"Insert from Library": "settings.prompts.insertFromLibrary", -"Save Changes": "settings.prompts.saveChanges", -"Discard Changes": "settings.prompts.discardChanges", -"Content Generation": "settings.prompts.categories.generation", -"Search & Synthesis": "settings.prompts.categories.search", -"Analysis & Extraction": "settings.prompts.categories.analysis", -"License and Access": "settings.licenseAndAccess", -"Font @:size": "settings.fontSize", -"Real-Time Data Search": "settings.defaultRTD.sectionTitle", -"Default RTD Provider": "settings.defaultRTD.title", -"Choose the default Real-Time Data search provider that will be used when creating new conversations.": "settings.defaultRTD.description", -"{provider} set as default RTD provider": "settings.defaultRTD.saved", -"Failed to save default RTD provider": "settings.defaultRTD.saveError", -"No RTD providers available": "settings.defaultRTD.noProvidersAvailable", -"Configure advanced options for": "settings.defaultRTD.configureLabel", -"Configuration saved for {provider}": "settings.defaultRTD.configSaved", -"Default RTD Mode": "settings.defaultRTD.mode.title", -"Set the default RTD mode for new conversations.": "settings.defaultRTD.mode.description", -"New conversations will use push mode by default.": "settings.defaultRTD.mode.pushHint", -"New conversations will use pull mode by default.": "settings.defaultRTD.mode.pullHint", -"Pull mode requires an Aurum plan.": "settings.defaultRTD.mode.pullGuardHint", -"Failed to save default RTD mode": "settings.defaultRTD.mode.saveError", -"Teams": "settings.teams", -"Appearance": "settings.appearance", -"Auto-archive inactive conversations": "settings.conversation.autoArchive.title", -"Automatically move inactive conversations to Archive after the selected number of days. Use Enable auto-archive to turn it on. Run archive now performs a one-time cleanup using the current day threshold.": "settings.conversation.autoArchive.description", -"Enable auto-archive": "settings.conversation.autoArchive.enableLabel", -"Disable auto-archive": "settings.conversation.autoArchive.disableLabel", -"Archived conversations stay accessible from the Archive section.": "settings.conversation.autoArchive.enableHint", -"Archive after": "settings.conversation.autoArchive.daysLabel", -"day | days": "settings.conversation.autoArchive.suffix", -"Enable or disable from the menu": "settings.conversation.autoArchive.disabledHint", -"Run archive now": "settings.conversation.autoArchive.runNowLabel", -"Enable auto-archive and set days > 0 to run": "settings.conversation.autoArchive.runNowDisabled", -"Auto-archive set to {days} day | Auto-archive set to {days} days": "settings.conversation.autoArchive.daysSaved", -"Auto-archive enabled": "settings.conversation.autoArchive.enabledToast", -"Auto-archive disabled": "settings.conversation.autoArchive.disabledToast", -"Setup {service}": "settings.setupService", -"Workspace Lock & Secrets Encryption": "settings.workspaceLock.title", -"Lock your workspace with a passphrase so sensitive settings and API keys stay hidden until you unlock. Unlock once per session, rotate the passphrase anytime, or turn protection off if you change your mind.": "settings.workspaceLock.description", -"Passphrase-based encryption is experimental. Please keep a backup of your secrets before enabling.": "settings.workspaceLock.experimentalInfo", -"Status:": "settings.workspaceLock.status", -"Locked": "settings.workspaceLock.locked", -"Unlocked": "settings.workspaceLock.unlocked", -"Lock": "settings.workspaceLock.lock", -"Unlock": "settings.workspaceLock.unlock", -"Workspace is protected. Unlock with your passphrase.": "settings.workspaceLock.protectedSection", -"Unprotected": "settings.workspaceLock.unprotected", -"Workspace lock is not configured. Set a passphrase first.": "settings.workspaceLock.unprotectedToast", -"Enter Passphrase": "settings.workspaceLock.unlockTitle", -"Workspace unlocked for this session": "settings.workspaceLock.toastUnlocked", -"Workspace locked": "settings.workspaceLock.toastLocked", -"Disable Encryption": "settings.workspaceLock.disable", -"Enter passphrase to decrypt and disable encryption.": "settings.workspaceLock.disableHelp", -"Disable Protection": "settings.workspaceLock.disableProtection", -"Enter your passphrase to disable workspace protection. This will remove encryption from your stored secrets and API keys.": "settings.workspaceLock.disableProtectionHelp", -"Are you sure you want to disable workspace protection? This will permanently decrypt all encrypted secrets and API keys in your database.": "settings.workspaceLock.disableProtectionConfirmMessage", -"Enable Protection": "settings.workspaceLock.enableProtection", -"Set Passphrase": "settings.workspaceLock.setPassphrase", -"Important: Save your passphrase safely and securely. You cannot recover a forgotten passphrase, and without it, you will lose access to your encrypted workspace data.": "settings.workspaceLock.setPassphraseWarning", -"Change Passphrase": "settings.workspaceLock.changePassphrase", -"Important: Save your new passphrase safely and securely. You cannot recover a forgotten passphrase, and without it, you will lose access to your encrypted workspace data.": "settings.workspaceLock.changePassphraseWarning", -"Update Passphrase": "settings.workspaceLock.updatePassphrase", -"Passphrase": "settings.workspaceLock.passphrase", -"Current passphrase": "settings.workspaceLock.passphraseCurrent", -"New passphrase": "settings.workspaceLock.passphraseNew", -"Confirm passphrase": "settings.workspaceLock.passphraseConfirm", -"Passphrase must be at least 8 characters": "settings.workspaceLock.errorMinLength", -"Passphrases do not match": "settings.workspaceLock.errorMismatch", -"Invalid input": "settings.workspaceLock.errorInvalid", -"Passphrase configured": "settings.workspaceLock.setupSuccess", -"Failed to configure passphrase": "settings.workspaceLock.setupFailed", -"Passphrase updated": "settings.workspaceLock.rotateSuccess", -"Failed to update passphrase": "settings.workspaceLock.rotateFailed", -"Decrypt stored secrets and remove workspace protection?": "settings.workspaceLock.disableConfirmMessage", -"Encryption disabled": "settings.workspaceLock.disableSuccess", -"Failed to disable encryption": "settings.workspaceLock.disableFailed", -"Incorrect passphrase": "settings.workspaceLock.incorrectPassphrase", -"{workspaceName} is locked": "settings.workspaceLock.lockedWithName", -"Can't unlock this workspace?": "settings.workspaceLock.switchBackTitle", -"Switch back to {workspaceName} so you can keep working.": "settings.workspaceLock.switchBackDescription", -"Switch back to {workspaceName}": "settings.workspaceLock.switchBackAction", -"Unable to switch workspaces. Please try again.": "settings.workspaceLock.switchBackError", -"Select the button below to export a copy of your data for backup or transfer to another device. The exported data includes conversations, prompts, models, settings, and other application data across all Workspaces.": "settings.dataBackup.description", -"@:data Backup Reminder Interval": "settings.dataBackupReminderInterval.title", -"How often to remind you to backup your data.": "settings.dataBackupReminderInterval.description", -"Danger Zone": "settings.dangerZone.title", -"Actions in this section are irreversible and may result in data loss. We recommend exporting a copy of your data before performing any actions here.": "settings.dangerZone.description", -"Clear Data": "settings.dangerZone.clearData.title", -"Permanently delete all application data including conversations, prompts, models, settings, and other related information across all Workspaces.": "settings.dangerZone.clearData.description", -"Restore @:data from Backup": "settings.dangerZone.restoreData.title", -"Import a previously exported data zip file to restore conversations, prompts, models, settings, and other application data across all Workspaces. This action will overwrite all existing data.": "settings.dangerZone.restoreData.description", -"Migrate": "settings.dataMigrate.action", -"Msty App 1.x to Studio Migration": "settings.dataMigrate.title", -"Step 2: Select Items to Migrate": "settings.dataMigrate.itemsToMigrate.label", -"Select Items": "settings.dataMigrate.itemsToMigrate.action", -"You can import Prompt Library Prompts, Remote Model Providers, Conversations, and Attachments into the current workspace you are in. If you want to import into a different workspace, please switch to that workspace first.": "settings.dataMigrate.pointsToRemember.activeWorkspace", -"Migrating remote model providers will NOT carry over API keys, they must be re-entered. Some legacy models may not be supported in Studio.": "settings.dataMigrate.pointsToRemember.remoteModelProviders", -"If migrating attachments, first zip the attachments folder. You can migrate attachments separately after migrating the database or together with the database.": "settings.dataMigrate.pointsToRemember.attachmentsMigration", -"Database Migration": "settings.dataMigrate.databaseMigration.title", -"Step 1: Select Msty App 1.x Database File": "settings.dataMigrate.databaseMigration.label", -"Drag and drop your Msty Database file": "settings.dataMigrate.databaseMigration.action", -"Msty App 1.x database files are typically named `msty.db`": "settings.dataMigrate.databaseMigration.hint", -"Attachments Migration": "settings.dataMigrate.attachmentsMigration.title", -"Migrate Separately": "settings.dataMigrate.attachmentsMigration.migrate", -"Step 3: Add Zipped Attachments Folder": "settings.dataMigrate.attachmentsMigration.label", -"Successfully migrated the attachments": "settings.dataMigrate.attachmentsMigration.success", -"Failed to migrate the attachments": "settings.dataMigrate.attachmentsMigration.error", -"Drag and drop your zipped attachments folder": "settings.dataMigrate.attachmentsMigration.action", -"Zip the entire attachments folder from Msty App 1.x. After selecting, you can migrate separately if adding after database migration.": "settings.dataMigrate.attachmentsMigration.hint", -"Please select a database file and at least one table to migrate": "settings.dataMigrate.missingDataWarning.description", -"Missing Data": "settings.dataMigrate.missingDataWarning.title", -"Migrate your data from Msty App 1.x into Studio. Imported data will not overwrite existing data.": "settings.dataMigrate.description", -"Successfully migrated {item}": "settings.dataMigrate.successMessage", -"Failed to migrate {item}": "settings.dataMigrate.errorMessage", -"Migration In Progress...": "settings.dataMigrate.migrationInProgress", -"{item} Migration Completed": "settings.dataMigrate.migrationComplete", -"{item} Migration Failed": "settings.dataMigrate.migrationFail", -"Migrating {item}...": "settings.dataMigrate.migratingItem", -"Migration Error": "settings.dataMigrate.migrationError.title", -"View Details": "settings.dataMigrate.migrationError.action", -"Message": "settings.dataMigrate.migrationError.message", -"Cause": "settings.dataMigrate.migrationError.cause", -"Color Preference": "settings.colorPreference", -"Accent Color": "settings.accentColor", -"Dark": "settings.dark", -"Light": "settings.light", -"Default | Defaults": "settings.default", -"Base Color": "settings.baseColor", -"Emerald": "settings.emerald", -"Lime": "settings.lime", -"Green": "settings.green", -"Red": "settings.red", -"Orange": "settings.orange", -"Amber": "settings.amber", -"Yellow": "settings.yellow", -"Teal": "settings.teal", -"Cyan": "settings.cyan", -"Sky": "settings.sky", -"Indigo": "settings.indigo", -"Violet": "settings.violet", -"Purple": "settings.purple", -"Fuchsia": "settings.fuchsia", -"Pink": "settings.pink", -"Rose": "settings.rose", -"Slate": "settings.slate", -"Gray": "settings.gray", -"Zinc": "settings.zinc", -"Stone": "settings.stone", -"Sandy": "settings.sandy", -"Lighter": "settings.lighter", -"Code Theme": "settings.codeTheme", -"RTL Support": "settings.rtlSupport.title", -"Enable right-to-left layouts for languages like Arabic, Hebrew, and Persian. The entire workspace updates instantly when toggled.": "settings.rtlSupport.sectionDescription", -"Enable RTL Layout": "settings.rtlSupport.toggleLabel", -"Right-to-left layout is active across the app.": "settings.rtlSupport.enabledHint", -"The app is currently using a left-to-right layout.": "settings.rtlSupport.disabledHint", -"Mini Map": "settings.miniMap.title", -"Enable the inline mini map message navigator with branch previews. When disabled, a simpler Top/Bottom navigator is used.": "settings.miniMap.description", -"Branch Breadcrumbs": "settings.branchBreadcrumbs.title", -"Show a compact navigation bar at the top of conversations when branches exist.": "settings.branchBreadcrumbs.description", -"Spellcheck": "settings.spellcheck.title", -"Enable or disable spellcheck for text input fields. Disabling can help when working with multiple languages or technical content. Your operating system's spell checker settings may override these preferences. Restart the application after changing this setting for the changes to take full effect.": "settings.spellcheck.description", -"Language & Localization": "settings.language.sectionTitle", -"Switch between interface languages, preview developer mode, or import a temporary locale file. If you want to contribute a translation, please visit https://github.com/cloudstack-llc/msty-studio-i18n": "settings.language.sectionDescription", -"Language": "settings.language.localeLabel", -"Download Template": "settings.language.downloadTemplate", -"Download this built-in locale JSON file.": "settings.language.downloadBuiltInLocale", -"Download the current custom locale you imported.": "settings.language.downloadCustomLocale", -"Download an empty template based on the base locale.": "settings.language.downloadDeveloperTemplate", -"Import Locale": "settings.language.importLocale", -"Imported locales last only until you restart or refresh the app.": "settings.language.importLocaleHint", -"Locale Imported": "settings.language.importSuccessSummary", -"Now using {code}. Review the interface to confirm translations.": "settings.language.importSuccessDetail", -"We couldn't import that locale file. Make sure it's valid JSON based on the template.": "settings.language.importError", -"Developer Mode": "settings.language.developerMode.label", -"Security": "settings.security.title", -"Configure security settings for the application": "settings.security.subtitle", -"Disable Web Security": "settings.webSecurity.title", -"This may help you resolve some CORS related issue. However, this is not recommended and may expose your application to security risks. Disable it only if you know what you are doing. You must restart the app for this setting to take effect.": "settings.webSecurity.description", -"Apply & Restart": "settings.webSecurity.applyAndRestart", -"Font Style": "settings.fontStyle.title", -"Galaxy Far Away": "settings.fontStyle.galaxyFarAway", -"Everything Everywhere": "settings.fontStyle.everythingEverywhere", -"Home Alone": "settings.fontStyle.homeAlone", -"Lord of the Loops": "settings.fontStyle.lordOfTheLoops", -"Rendering Modules": "settings.renderingModules.title", -"@:select Rendering Modules": "settings.renderingModules.selectPlaceholder", -"Allow Msty Studio web to connect to this device to run remote tools and access local models. This service must be actively running to allow remote connections.": "settings.remoteToolsConnector.description", -"Enable Service": "settings.remoteToolsConnector.allowRemoteToolsConnection", -"Connection Token": "settings.remoteToolsConnector.connectionToken.title", -"Remember Token": "settings.remoteToolsConnector.connectionToken.rememberToken", -"Enter a strong connection token": "settings.remoteToolsConnector.connectionToken.placeholder", -"This token is used to authenticate the connection between Msty Studio and this app when connecting remotely. You can regenerate it at any time to invalidate the previous token. Make sure to use a strong token and keep it secret.": "settings.remoteToolsConnector.connectionToken.description", -"Remote Service is now active": "settings.remoteToolsConnector.connectionToken.successMessage.detail", -"Error Enabling Connector": "settings.remoteToolsConnector.connectionToken.errorMessage.summary", -"Failed to enable Remote Service. Please check the logs for more details": "settings.remoteToolsConnector.connectionToken.errorMessage.detail", -"Copy Local URL": "settings.remoteToolsConnector.connectionToken.copyConnectionInfo", -"Copy Tunnel URL": "settings.remoteToolsConnector.connectionToken.copyTunnelConnectionInfo", -"Remote Service is now disabled": "settings.remoteToolsConnector.connectionToken.stopSuccessMessage.detail", -"Enable Tunneling (Experimental)": "settings.remoteToolsConnector.enableTunneling", -"Set up @:localAIService to run AI models locally on your device.": "settings.localAI.notInstalled.description", -"Models Location": "settings.localAI.modelsLocation.title", -"Configure where your Local AI models are stored.": "settings.localAI.modelsLocation.description", -"Use Existing Models": "settings.localAI.existingModels.title", -"Use models you already have without downloading them again.": "settings.localAI.existingModels.description", -"@:service Configurations": "settings.localAI.serviceConfigurations.title", -"These configurations are applied to the @:localAIService when it starts. @:localAIService will automatically restart after you save any changes.": "settings.localAI.serviceConfigurations.description", -"Configure Port Number": "settings.localAI.serviceConfigurations.configurePortNumber.title", -"Port number for @:localAIService{'.'} Leave empty to use default.": "settings.localAI.serviceConfigurations.configurePortNumber.description", -"Maximum Parallel Chats": "settings.localAI.serviceConfigurations.maximumParallelChats.title", -"Maximum number of concurrent chat sessions (when using split mode).": "settings.localAI.serviceConfigurations.maximumParallelChats.description", -"Maximum Loaded Models": "settings.localAI.serviceConfigurations.maximumLoadedModels.title", -"Maximum number of LLMs loaded at the same time. Keeping more models in memory speeds up initial responses but uses more system resources.": "settings.localAI.serviceConfigurations.maximumLoadedModels.description", -"Enable Network Access": "settings.localAI.serviceConfigurations.enableNetworkAccess.title", -"Allow other devices on your network to access this @:localAIService through this device’s IP address.": "settings.localAI.serviceConfigurations.enableNetworkAccess.description", -"Allowed Network Origins": "settings.localAI.serviceConfigurations.allowedNetworkOrigins.title", -"List permitted network origins here (comma-separated). Each entry must begin with http:// or https://. Use * to permit all origins.": "settings.localAI.serviceConfigurations.allowedNetworkOrigins.description", -"e.g. https://msty.studio, http://localhost:3000, *": "settings.localAI.serviceConfigurations.allowedNetworkOrigins.placeholder", -"Allow Access from Msty Studio": "settings.localAI.serviceConfigurations.allowMstyStudioAccess.title", -"Allow connections from Msty Studio Web to this app so it can access @:localAIService{'.'}": "settings.localAI.serviceConfigurations.allowMstyStudioAccess.description", -"Capture @:service Logs": "settings.localAI.serviceConfigurations.captureServiceLogs.title", -"Enable logging to capture service data for debugging. Use this option only when necessary.": "settings.localAI.serviceConfigurations.captureServiceLogs.description", -"Enter valid JSON to set environment variables for the @:localAIService{'.'}": "settings.localAI.serviceConfigurations.advancedConfiguration.description", -"You have unsaved changes in the @:localAIService Configurations. Once you save, @:localAIService will be restarted with the new configurations.": "settings.localAI.serviceConfigurations.unsavedChanges.message", -"Save Changes and Restart Service": "settings.localAI.serviceConfigurations.unsavedChanges.saveChanges", -"@:localAIService Configurations saved and service restarted": "settings.localAI.serviceConfigurations.unsavedChanges.successMessage.detail", -"Failed to save @:localAIService Configurations. Please check the logs for more details.": "settings.localAI.serviceConfigurations.unsavedChanges.errorMessage.detail", -"@:model Configurations": "settings.localAI.modelConfigurations.title", -"These configurations get applied to all models during chat sessions.": "settings.localAI.modelConfigurations.description", -"Model Keep-Alive Timeout": "settings.localAI.modelConfigurations.keepAliveTimeout.title", -"Time (in minutes) after which the model will be unloaded from memory if not used.": "settings.localAI.modelConfigurations.keepAliveTimeout.description", -"Enter valid JSON to pass extra parameters to models during chat sessions.": "settings.localAI.modelConfigurations.advancedConfiguration.description", -"You have unsaved changes in the @:settings.localAI.modelConfigurations.title{'.'} Make sure to save them before starting a new chat session.": "settings.localAI.modelConfigurations.unsavedChanges.message", -"@:settings.localAI.modelConfigurations.title saved": "settings.localAI.modelConfigurations.unsavedChanges.successMessage.detail", -"Failed to save @:settings.localAI.modelConfigurations.title. Please check the logs for more details.": "settings.localAI.modelConfigurations.unsavedChanges.errorMessage.detail", -"Open Local AI Settings": "settings.localAI.openSettings", -"Manage Local AI Models": "settings.localAI.manageModels.title", -"Browse, install, and manage AI models for local inference.": "settings.localAI.manageModels.description", -"Open Local AI Models Hub": "settings.localAI.manageModels.openModelHub", -"Vibe CLI Proxy": "settings.vibeCliProxy.shortTitle", -"Unified proxy for AI coding assistants. Connect to Claude Code, ChatGPT, Gemini, Qwen Code through a single local endpoint.": "settings.vibeCliProxy.subtitle", -"Installs CLIProxyAPI binary to connect AI coding assistants (Claude Code, ChatGPT, Gemini, Qwen) via local proxy with OAuth authentication.": "settings.vibeCliProxy.install.copy", -"Install Vibe CLI Proxy": "settings.vibeCliProxy.install.button", -"Start or stop the Vibe CLI Proxy service.": "settings.vibeCliProxy.health.description", -"Service Endpoint": "settings.vibeCliProxy.endpoint.title", -"Use this endpoint for OpenAI-compatible requests routed through Vibe CLI Proxy.": "settings.vibeCliProxy.endpoint.description", -"Network host: {host}": "settings.vibeCliProxy.endpoint.network", -"Endpoint copied": "settings.vibeCliProxy.endpoint.copied", -"Version": "settings.vibeCliProxy.version.title", -"Installed CLIProxyAPI version.": "settings.vibeCliProxy.version.description", -"Current version": "settings.vibeCliProxy.version.current", -"Reinstall": "settings.vibeCliProxy.version.reinstall", -"Not installed": "settings.vibeCliProxy.version.unknown", -"Service Configurations": "settings.vibeCliProxy.configs.title", -"Configure port, authentication directory, and network access for the proxy.": "settings.vibeCliProxy.configs.description", -"Port": "settings.vibeCliProxy.configs.port", -"Retries": "settings.vibeCliProxy.configs.retries", -"Auth directory": "settings.vibeCliProxy.configs.authDir", -"Enable network access": "settings.vibeCliProxy.configs.enableNetworkAccess", -"Allow other devices on the network to reach the proxy.": "settings.vibeCliProxy.configs.enableNetworkAccessHelp", -"Capture service logs": "settings.vibeCliProxy.configs.captureLogs", -"Persist proxy logs for troubleshooting (may increase disk usage).": "settings.vibeCliProxy.configs.captureLogsHelp", -"Enable remote management": "settings.vibeCliProxy.configs.enableRemoteManagement", -"Expose management endpoints; requires a secret key.": "settings.vibeCliProxy.configs.enableRemoteManagementHelp", -"Management secret key": "settings.vibeCliProxy.configs.managementKey", -"Vibe CLI Proxy configurations updated": "settings.vibeCliProxy.configs.updated", -"Failed to update Vibe CLI Proxy configurations": "settings.vibeCliProxy.configs.failed", -"The local port where the proxy service listens for requests.": "settings.vibeCliProxy.configs.portDescription", -"Number of retry attempts for failed upstream requests.": "settings.vibeCliProxy.configs.retriesDescription", -"Directory where authentication tokens are stored.": "settings.vibeCliProxy.configs.authDirDescription", -"Secret key required for remote management operations.": "settings.vibeCliProxy.configs.managementKeyDescription", -"Auth Folder": "settings.vibeCliProxy.authPath.title", -"Path where Vibe CLI Proxy stores OAuth tokens for connected providers. Managed automatically; not editable.": "settings.vibeCliProxy.authPath.description", -"Authentication": "settings.vibeCliProxy.authStatus.title", -"Securely link your AI accounts so Vibe CLI Proxy can call their APIs on your behalf. When you connect, a browser window opens for that provider where you complete sign-in.": "settings.vibeCliProxy.authStatus.description", -"Opening browser for OAuth…": "settings.vibeCliProxy.authStatus.connecting", -"Complete authentication in your browser, then return here.": "settings.vibeCliProxy.authStatus.browser", -"Failed to start OAuth flow": "settings.vibeCliProxy.authStatus.failed", -"Device Authorization": "settings.vibeCliProxy.authStatus.deviceCodeTitle", -"Enter the code below at the authorization page to complete authentication.": "settings.vibeCliProxy.authStatus.deviceCodeInstructions", -"Copy Code": "settings.vibeCliProxy.authStatus.copyCode", -"Code copied to clipboard": "settings.vibeCliProxy.authStatus.codeCopied", -"Open GitHub": "settings.vibeCliProxy.authStatus.openGitHub", -"Important: Vibe CLI Proxy is a local proxy to third-party CLI coding agents. By proceeding, you accept full responsibility for compliance with each AI provider's terms of service. Use at your own risk. Msty is not liable for any account issues or service violations that may arise.": "settings.vibeCliProxy.setup.disclaimer", -"Set @:mlxService to run optimized AI models on your Apple Silicon Mac.": "settings.mlx.notInstalled.description", -"Configure where your MLX models are stored.": "settings.mlx.modelsLocation.description", -"Open MLX Settings": "settings.mlx.openSettings", -"Manage MLX Models": "settings.mlx.manageModels.title", -"Browse, install, and manage MLX models optimized for Apple Silicon.": "settings.mlx.manageModels.description", -"Open MLX Models Hub": "settings.mlx.manageModels.openModelHub", -"System Compatibility": "settings.mlx.compatibility.title", -"Check if your system is compatible with MLX.": "settings.mlx.compatibility.description", -"Check Again": "settings.mlx.compatibility.checkAgain", -"Not checked": "settings.mlx.compatibility.status.notChecked", -"Compatible": "settings.mlx.compatibility.status.compatible", -"Not compatible": "settings.mlx.compatibility.status.notCompatible", -"MLX Requirements:": "settings.mlx.compatibility.requirements.title", -"Apple Silicon Mac (M1, M2, M3, M4)": "settings.mlx.compatibility.requirements.appleSilicon", -"macOS 13.0 or later": "settings.mlx.compatibility.requirements.macOS13", -"Unified memory architecture": "settings.mlx.compatibility.requirements.unifiedMemory", -"Set @:llamacppService to run efficient AI models on Windows, macOS, and Linux.": "settings.llamacpp.notInstalled.description", -"Configure where your LLaMA.cpp models are stored.": "settings.llamacpp.modelsLocation.description", -"Open LLaMA.cpp Settings": "settings.llamacpp.openSettings", -"Manage LLaMA.cpp Models": "settings.llamacpp.manageModels.title", -"Browse, install, and manage LLaMA.cpp models for cross-platform inference.": "settings.llamacpp.manageModels.description", -"Open LLaMA.cpp Models Hub": "settings.llamacpp.manageModels.openModelHub", -"Check if your system is compatible with LLaMA.cpp.": "settings.llamacpp.compatibility.description", -"LLaMA.cpp requires the desktop application": "settings.llamacpp.compatibility.status.requiresDesktop", -"System Information": "settings.llamacpp.compatibility.systemInfo.title", -"Platform": "settings.llamacpp.compatibility.systemInfo.platform", -"Architecture": "settings.llamacpp.compatibility.systemInfo.architecture", -"Available Memory": "settings.llamacpp.compatibility.systemInfo.memory", -"GPU": "settings.llamacpp.compatibility.systemInfo.gpu", -"LLaMA.cpp Requirements:": "settings.llamacpp.compatibility.requirements.title", -"Desktop application (Windows, macOS, or Linux)": "settings.llamacpp.compatibility.requirements.desktop", -"At least 4GB RAM (8GB+ recommended)": "settings.llamacpp.compatibility.requirements.memory", -"Sufficient storage for models (varies by model size)": "settings.llamacpp.compatibility.requirements.storage", -"Optional: GPU for acceleration (CUDA, Metal, OpenCL)": "settings.llamacpp.compatibility.requirements.gpu", -"CPU Threads": "settings.llamacpp.serviceConfigurations.threads.title", -"Number of CPU threads to use during inference. Set to -1 to auto-detect based on your system (maps to the --threads flag).": "settings.llamacpp.serviceConfigurations.threads.description", -"Concurrent Requests": "settings.llamacpp.serviceConfigurations.concurrentRequests.title", -"Number of chats that can run at the same time per model (maps to --parallel flag). With parallel=2, each chat gets half the context size.": "settings.llamacpp.serviceConfigurations.concurrentRequests.description", -"Concurrent requests": "settings.llamacpp.serviceConfigurations.concurrentRequests.inputLabel", -"Enter valid JSON to set environment variables for llama-server process. These variables have less priority than CLI args set in the Service and Model Configurations.": "settings.llamacpp.serviceConfigurations.advancedConfiguration.description", -"You have unsaved changes in the @:settings.llamacpp.modelConfigurations.title{'.'} Make sure to save them before starting a new chat session.": "settings.llamacpp.modelConfigurations.unsavedChanges.message", -"@:settings.llamacpp.modelConfigurations.title saved": "settings.llamacpp.modelConfigurations.unsavedChanges.successMessage.detail", -"Failed to save @:settings.llamacpp.modelConfigurations.title. Please check the logs for more details.": "settings.llamacpp.modelConfigurations.unsavedChanges.errorMessage.detail", -"MLX": "mlx", -"@:mlx Service": "mlxService", -"LLaMA.cpp": "llamacpp", -"@:llamacpp Service": "llamacppService", -"Settings and Configs": "settingsAndConfigs", -"Prompts": "prompts", -"API Keys": "apiKeys", -"Create New Workspace": "workspaces.createNewWorkspace", -"Switch Workspace": "workspaces.switchWorkspace", -"Switch to {workspaceName} Workspace": "workspaces.switchToCustomWorkspace", -"Hide Workspace Tray": "workspaces.hideWorkspaceTray", -"Show Workspace Tray": "workspaces.showWorkspaceTray", -"Workspace switched!": "workspaces.switchAction.successMessage.summary", -"{workspaceName} is now the active workspace": "workspaces.switchAction.successMessage.detail", -"Delete Workspace": "workspaces.deleteWorkspace", -"Workspace {workspaceName} is active": "workspaces.workspaceIsActive", -"Your current active Workspace is: {workspaceName}": "workspaces.currentActiveWorkspace", -"New Workspace": "workspaces.workspaceForm.newTitle", -"Edit Workspace": "workspaces.workspaceForm.editTitle", -"Workspace Name": "workspaces.workspaceForm.workspaceName", -"What to copy from {activeWorkspace} workspace?": "workspaces.workspaceForm.whatToCopy", -"Copying items is disabled because the active workspace has a passphrase set.": "workspaces.workspaceForm.copyDisabledForLockedWorkspace", -"Create and Switch": "workspaces.workspaceForm.createAndSwitch", -"Create and Stay": "workspaces.workspaceForm.createOnly", -"Workspace name already exists": "workspaces.workspaceForm.duplicateWorkspaceName", -"Invalid or duplicate workspace name": "workspaces.workspaceForm.invalidWorkspaceName", -"Workspace updated": "workspaces.workspaceForm.updateSuccessMessage.detail", -"Failed to update Workspace": "workspaces.workspaceForm.updateErrorMessage.detail", -"Workspace created and switched": "workspaces.workspaceForm.createAndSwitchSuccessMessage.detail", -"Workspace created": "workspaces.workspaceForm.createSuccessMessage.detail", -"Failed to create Workspace": "workspaces.workspaceForm.createErrorMessage.detail", -"Are you sure you want to delete {workspaceName}? All data associated with this workspace will be deleted. This action cannot be undone.": "workspaces.deleteConfirmation.message", -"@:download Workspace @:data": "workspaces.deleteConfirmation.downloadWorkspaceData", -"Workspace {workspaceName} deleted": "workspaces.deleteConfirmation.successMessage.detail", -"Failed to delete Workspace": "workspaces.deleteConfirmation.errorMessage.detail", -"Export Workspace": "workspaces.exportWorkspace.title", -"Workspace {workspaceName} data exported as {fileName}": "workspaces.exportWorkspace.successMessage.detail", -"Failed to export Workspace {workspaceName}": "workspaces.exportWorkspace.errorMessage.detail", -"@:import Workspace": "workspaces.importWorkspace.title", -"Drag and drop a zipped Msty Workspace file to import and create a new Workspace. In case of duplicate names, the imported workspace will be renamed. You can change it later.": "workspaces.importWorkspace.dragAndDropMessage", -"Workspace {workspaceName} has been imported": "workspaces.importWorkspace.successMessage.detail", -"Failed to import Workspace": "workspaces.importWorkspace.errorMessage.detail", -"Attachments": "attachments.title", -"Documents": "attachments.documents", -"Images": "attachments.images", -"Webpages": "attachments.webpages", -"YouTube Links": "attachments.youTubeLinks", -"Drop Them!": "attachments.dropThem", -"@:select all": "attachments.selectAll", -"Deselect all": "attachments.deselectAll", -"Drag-and-drop {attachmentType} here": "attachments.dragAnDropHere", -"Add New Attachments": "attachments.addNew", -"Add {documentTypes} as well as some other code files": "attachments.addDocumentTypes", -"Add .png, .jpg, or jpeg images": "attachments.addImageTypes", -"Drag-and-drop or browse more": "attachments.dragAndDropOrBrowseMore", -"or paste comma-separated URLs": "attachments.commaSeparatedUrls", -"Click to manage attached {attachmentType}": "attachments.manageTooltip", -"Selected model may not support image attachments.": "attachments.modelMayNotSupportImages", -"Click to install vision capabilities.": "attachments.clickToInstallVisionCapabilities", -"Checking vision capabilities...": "attachments.checkingVisionCapabilities", -"Installing vision capabilities...": "attachments.installingVision", -"{count} document attached | {count} documents attached": "attachments.documentsAttachedCount", -"{count} image attached | {count} images attached": "attachments.imagesAttachedCount", -"{count} webpage attached | {count} webpages attached": "attachments.webpagesAttachedCount", -"a webpage link | webpage links": "attachments.webpageLinks", -"Hold {key} to share with Synced Splits": "attachments.holdKeyToShareWithSyncedSplits", -"{count} YouTube link attached | {count} YouTube links attached": "attachments.youTubeLinksAttachedCount", -"Failed to attach files": "attachments.dropFiles.errorMessage.detail", -"Failed to attach webpages": "attachments.dropWebpages.errorMessage.detail", -"Failed to import YouTube links info. {errorMessage}": "attachments.dropYouTubeLinks.errorMessage.detail", -"Detach all": "attachments.detachAll.title", -"Detach All": "attachments.detachAll.confirm.header", -"Are you sure you want to detach all {attachmentType}? These {attachmentType} will not be available in the conversation anymore across all splits.": "attachments.detachAll.confirm.message", -"Maximum Result": "attachments.detachAll.maxResult.title", -"Attachments detached": "attachments.detachAll.successMessage.detail", -"Manage keys": "jinaAPI.manageJinaAPIKeys", -"A valid Jina API Key is required to use this feature. You can visit the following link to get one for free:": "jinaAPI.jinaApiKeyRequired", -"You currently have {count} Jina API key(s) added. You can add add more keys and Msty will pick a random valid key to use for the request.": "jinaAPI.willUseJina.description", -"New Jina API Key": "jinaAPI.jinaAPIKeyForm.newTitle", -"Edit Jina API Key": "jinaAPI.jinaAPIKeyForm.editTitle", -"Available Keys": "jinaAPI.jinaAPIKeyForm.availableKeys", -"Key is {status}. Click to re-verify": "jinaAPI.jinaAPIKeyForm.reVerifyKey", -"Verify Key and Add": "jinaAPI.jinaAPIKeyForm.verifyKeyAndAdd", -"Add a new Jina API key to use with the Jina Reader and Search endpoints. You can add multiple keys and verify them to ensure they are valid. When using the keys, Msty will pick a random valid key to use for the request.": "jinaAPI.jinaAPIKeyForm.newDescription", -"All Good!": "jinaAPI.jinaAPIKeyForm.keyIsGood.summary", -"Key seems to be valid and ready to use": "jinaAPI.jinaAPIKeyForm.keyIsGood.detail", -"Jina API Key added": "jinaAPI.jinaAPIKeyForm.successMessage.detail", -"Error{status}!": "jinaAPI.jinaAPIKeyForm.errorMessage.summary", -"Failed to add Jina API Key. Please check the API key and make sure it is valid.": "jinaAPI.jinaAPIKeyForm.errorMessage.detail", -"Token Budget": "jinaAPI.tokenBudget.title", -"Maximum number of tokens to use for Jina API requests. This helps control costs and response length.": "jinaAPI.tokenBudget.description", -"Real Time @:data": "rtd.title", -"Click to toggle RTD; double-click to configure": "rtd.enableRTD", -"@:rtd.title Contexts": "rtd.contexts", -"Source removed": "rtd.removeSource.successMessage.detail", -"Failed to remove source": "rtd.removeSource.errorMessage.detail", -"Failed to update source": "rtd.updateSource.errorMessage.detail", -"Search Provider": "rtd.searchProvider", -"Jina": "rtd.jina", -"Use @:remoteToolsConnector.title": "rtd.useRemoteConnector", -"No sources available": "rtd.noSources", -"Save {providerName} as default search provider": "rtd.settings.saveAsDefaultProvider.title", -"{providerName} it is!": "rtd.settings.saveAsDefaultProvider.successMessage.summary", -"{providerName} is now the default search provider": "rtd.settings.saveAsDefaultProvider.successMessage.detail", -"Auto with Fallback": "rtd.settings.autoWithFallback", -"Google": "rtd.settings.google", -"Brave": "rtd.settings.brave", -"Ecosia": "rtd.settings.ecosia", -"Custom Search Query": "rtd.settings.customSearchQuery.title", -"This query will be used for searching. Leave it empty to use the prompt as a query": "rtd.settings.customSearchQuery.placeholder", -"Limit by Domain": "rtd.settings.limitByDomain.title", -"e.g. reddit.com or gov or (site:reddit.com OR site:gov)": "rtd.settings.limitByDomain.placeholder", -"Enter comma separated domains e.g. reddit.com,wikipedia.com": "rtd.settings.limitByDomain.commaDelimitedPlaceholder", -"Extra Operators": "rtd.settings.extraOperators.title", -"Search Date Range": "rtd.settings.dateRange.title", -"After date - Before date": "rtd.settings.dateRange.placeholder", -"@:rtd.title Enabled": "rtd.settings.successMessage.detail", -"API": "rtd.settings.types.api", -"@:remoteToolsConnector.title": "rtd.settings.types.rtc", -"Use @:rtd.jina": "rtd.useJinaLabel", -"Use @:rtd.settings.google": "rtd.google.useLabel", -"@:rtd.settings.google @:apiKey": "rtd.google.apiKey.placeholder", -"Custom Search Engine ID": "rtd.google.cseIdLabel", -"@:rtd.settings.google @:rtd.google.cseIdLabel": "rtd.google.cseIdPlaceholder", -"Use @:rtd.settings.brave": "rtd.brave.useLabel", -"Filter Results": "rtd.brave.resultFilter", -"@:rtd.settings.brave @:apiKey": "rtd.brave.apiKey.placeholder", -"SearXNG": "rtd.searXng.title", -"Engines": "rtd.searXng.engines.title", -"Comma-separated list of engines to use e.g. google, brave etc.": "rtd.searXng.engines.placeholder", -"Extra Params": "rtd.searXng.extraParams.title", -"Add extra params. This should be a valid JSON object.": "rtd.searXng.extraParams.placeholder", -"Your SearXNG server must have JSON enabled as well as be served over HTTPS. For a workaround over HTTP on some browsers, check out our docs at https://docs.msty.studio": "rtd.searXng.notice", -"Use @:rtd.searXng.title": "rtd.searXng.useLabel", -"Tavily": "rtd.tavily.title", -"Use @:rtd.tavily.title": "rtd.tavily.useLabel", -"Search Topic": "rtd.tavily.searchTopic.title", -"Category of search": "rtd.tavily.searchTopic.placeholder", -"News": "rtd.tavily.searchTopic.news", -"Finance": "rtd.tavily.searchTopic.finance", -"Enter @:rtd.tavily.title @:apiKey": "rtd.tavily.apiKey.placeholder", -"Search Depth": "rtd.tavily.searchDepth.title", -"Depth of the search": "rtd.tavily.searchDepth.placeholder", -"Advance": "rtd.tavily.searchDepth.advanced", -"Basic": "rtd.tavily.searchDepth.basic", -"Time Range": "rtd.tavily.timeRange.title", -"Time range back from the current date": "rtd.tavily.timeRange.placeholder", -"Exa": "rtd.exa.title", -"Use @:rtd.exa.title": "rtd.exa.useLabel", -"Enter @:rtd.exa.title @:apiKey": "rtd.exa.apiKey.placeholder", -"Ollama": "rtd.ollama.title", -"Use @:rtd.ollama.title": "rtd.ollama.useLabel", -"Enter @:rtd.ollama.title @:apiKey": "rtd.ollama.apiKey.placeholder", -"Disable @:rtd.title": "rtd.disableRTD.label", -"@:rtd.title disabled": "rtd.disableRTD.successMessage.detail", -"Failed to disable @:rtd.title": "rtd.disableRTD.errorMessage.detail", -"Remote Service": "remoteToolsConnector.title", -"To use this feature, you need to connect with @:remoteToolsConnector.title{'.'}": "remoteToolsConnector.connectionRequired", -"RTD is experimental and may not work as expected.": "remoteToolsConnector.experimentalInfo", -"@:remoteToolsConnector.title - Connected": "remoteToolsConnector.isConnectedTooltip", -"@:remoteToolsConnector.title - Disconnected": "remoteToolsConnector.isDisconnectedTooltip", -"@:connect with @:remoteToolsConnector.title": "remoteToolsConnector.connectNow", -"@:connect @:remoteToolsConnector.title first": "remoteToolsConnector.connectFirst", -"@:reconnect with @:remoteToolsConnector.title": "remoteToolsConnector.reconnectNow", -"@:disconnect Now": "remoteToolsConnector.disconnectNow", -"Check Connection Health": "remoteToolsConnector.checkHealth", -"Edit Connection Details": "remoteToolsConnector.connectionDetails", -"You do not have permission to access this feature": "remoteToolsConnector.noPermissionPolicy", -"Connect to @:remoteToolsConnector.title": "remoteToolsConnector.connect.form.title", -"Save and Connect": "remoteToolsConnector.connect.form.saveAndConnect", -"Remember @:connectionInfo": "remoteToolsConnector.connect.form.rememberConnectionInfo", -"@:import @:connectionInfo": "remoteToolsConnector.connect.import.title", -"Drag and drop Msty Remote Connection Config file to import and connect to @:remoteToolsConnector.title{'.'}": "remoteToolsConnector.connect.import.dragAndDropMessage", -"@:connectionInfo imported": "remoteToolsConnector.connect.import.successMessage.detail", -"Failed to import @:connectionInfo": "remoteToolsConnector.connect.import.errorMessage.detail", -"Export Saved @:connectionInfo": "remoteToolsConnector.connect.export.title", -"@:connectionInfo exported": "remoteToolsConnector.connect.export.successMessage.detail", -"Failed to export @:connectionInfo": "remoteToolsConnector.connect.export.errorMessage.detail", -"Connected!": "remoteToolsConnector.connect.successMessage.summary", -"@:remoteToolsConnector.title connected at {url}": "remoteToolsConnector.connect.successMessage.detail", -"Failed to connect with @:remoteToolsConnector.title{'.'} Make sure the @:remoteToolsConnector.title is running and accessible at the provided URL.": "remoteToolsConnector.connect.errorMessage.detail", -"Token is missing. Please check the token and try again.": "remoteToolsConnector.connect.errorMessage.tokenMissing", -"Forget Previous @:connectionInfo": "remoteToolsConnector.connect.forgetConnectionInfo", -"@:connectionInfo forgotten": "remoteToolsConnector.connect.forgetSuccessMessage.detail", -"Tool Command Paths": "remoteToolsConnector.connect.toolCommandPaths.title", -"If you are using Toolsets, set the paths to the commands you are using.": "remoteToolsConnector.connect.toolCommandPaths.description", -"@:select or enter a command": "remoteToolsConnector.connect.toolCommandPaths.selectPlaceholder", -"Enter full path to the command": "remoteToolsConnector.connect.toolCommandPaths.pathPlaceholder", -"Assign @:path": "remoteToolsConnector.connect.toolCommandPaths.assignPath", -"Disconnected!": "remoteToolsConnector.disconnect.successMessage.summary", -"Disconnected from @:remoteToolsConnector.title": "remoteToolsConnector.disconnect.successMessage.detail", -"Forge Mode": "forge.forgeMode.title", -"Forge mode gives you a blank canvas and a powerful writer to create, edit, style and refine content freely.": "forge.forgeMode.description", -"Forge": "forge.title", -"@:forge.title Content": "forge.forgeContent", -"Forging Content": "forge.forgingContent", -"Edit Raw Markdown": "forge.editRawMarkdown", -"Edit as Branch": "forge.editAsBranch", -"This content has been forged. Raw markdown editing is not allowed.": "forge.disabledEditRawMarkdown", -"Changes saved": "forge.saveChanges.successMessage.detail", -"Failed to save changes": "forge.saveChanges.errorMessage.detail", -"Write something or type / for options...": "forge.placeholders.writeSomething", -"Enter details summary": "forge.placeholders.detailsSummary", -"Simplify": "forge.prompts.simplify", -"Fix Spelling & Grammar": "forge.prompts.fixSpellingAndGrammar", -"Make Shorter": "forge.prompts.makeShorter", -"Make Longer": "forge.prompts.makeLonger", -"TL;DR;": "forge.prompts.tldr", -"Emojify": "forge.prompts.emojify", -"@:change Tone": "forge.prompts.changeTone.title", -"Academic": "forge.prompts.changeTone.academic", -"Business": "forge.prompts.changeTone.business", -"Casual": "forge.prompts.changeTone.casual", -"Child Friendly": "forge.prompts.changeTone.childFriendly", -"Conversational": "forge.prompts.changeTone.conversational", -"Emotional": "forge.prompts.changeTone.emotional", -"Humorous": "forge.prompts.changeTone.humorous", -"Informative": "forge.prompts.changeTone.informative", -"Inspirational": "forge.prompts.changeTone.inspirational", -"Professional": "forge.prompts.changeTone.professional", -"Narrative": "forge.prompts.changeTone.narrative", -"Objective": "forge.prompts.changeTone.objective", -"Persuasive": "forge.prompts.changeTone.persuasive", -"Poetic": "forge.prompts.changeTone.poetic", -"Clear Formatting": "forge.clearFormatting", -"Bold": "forge.bold", -"Italic": "forge.italic", -"Underline": "forge.underline", -"Strikethrough": "forge.strikethrough", -"Code": "forge.code", -"Code Block": "forge.codeBlock", -"Blockquote": "forge.blockQuote", -"Undo": "forge.undo", -"Redo": "forge.redo", -"Texts": "forge.texts", -"Paragraph": "forge.paragraph", -"Heading 1": "forge.heading1", -"Heading 2": "forge.heading2", -"Heading 3": "forge.heading3", -"Lists": "forge.lists", -"Bullet List": "forge.bulletList", -"Numbered List": "forge.numberedList", -"Task List": "forge.taskList", -"What do you want to forge today?": "forge.whatToForgePlaceholder", -"Forge Writer": "forge.forgeWriter", -"Type your custom prompt...": "forge.inlinePrompt.placeholder", -"Ask": "forge.inlinePrompt.ask", -"Ask the model to generate a response based on a custom prompt": "forge.inlinePrompt.askTooltip", -"@:forge.title Canvas": "forge.forgeCanvas", -"New @:forge.forgeCanvas": "forge.newForgeCanvas", -"Add New @:forge.forgeCanvas": "forge.addNewForgeCanvas", -"Preview": "preview", -"Prompt | Prompts": "prompt", -"Discard": "discard", -"Insert": "insert", -"Regenerate": "regenerate", -"Rewrite": "rewrite", -"Exit": "exit", -"Custom Prompt": "customPrompt", -"Markdown": "markdown", -"JSON": "json", -"HTML": "html", -"Formatted": "formatted", -"Invalid @:json": "invalidJson", -"@:download as @:markdown file": "downloadMarkdown", -"@:download as @:json file": "downloadJson", -"@:download as HTML file": "downloadHTML", -"Copy @:markdown to Clipboard": "copyMarkdownToClipboard", -"Copy HTML to Clipboard": "copyHTMLToClipboard", -"Copy Text to Clipboard": "copyFormattedToClipboard", -"Copied!": "copiedToClipboard.summary", -"Content copied to clipboard as @:markdown": "copiedToClipboard.markdownDetail", -"Content copied to clipboard as HTML": "copiedToClipboard.htmlDetail", -"Content copied to clipboard as formatted text": "copiedToClipboard.formattedDetail", -"Content copied to clipboard as @:json": "copiedToClipboard.jsonDetail", -"{item} copied to clipboard": "copiedToClipboard.itemCopied", -"Content exported to clipboard as @:json": "exportJsonToClipboard", -"Variable | Variables": "variable", -"@:pinned {item}": "pinItem.title", -"Pin {item}": "pinItem.action", -"{item} pinned": "pinItem.successMessage.detail", -"Unable to pin {item}": "pinItem.errorMessage.detail", -"Unpin {item}": "unpinItem.action", -"{item} unpinned": "unpinItem.successMessage.detail", -"Unable to unpin {item}": "unpinItem.errorMessage.detail", -"Default {item}": "setDefaultItem.title", -"Set {item} as default": "setDefaultItem.action", -"{item} set as default": "setDefaultItem.successMessage.detail", -"Unable to set {item} as default": "setDefaultItem.errorMessage.detail", -"Default {item}. Click to unset.": "unsetDefaultItem.action", -"{item} removed as default": "unsetDefaultItem.successMessage.detail", -"Model": "model", -"Provider sorting": "modelSelector.filterControls.providerSort.label", -"Created At": "modelSelector.filterControls.providerSort.createdAt", -"Group by provider": "modelSelector.filterControls.providerSort.groupByProvider", -"Model sorting": "modelSelector.filterControls.modelSort.label", -"Recent": "modelSelector.filterControls.modelSort.recent", -"Filter by purpose": "modelSelector.filterControls.purpose.label", -"All purposes": "modelSelector.filterControls.purpose.placeholder", -"@:model Settings": "modelSettings", -"Sync @:split": "syncSplit", -"Split | Splits": "split", -"Template | Templates": "template", -"Apply Changes": "applyChanges", -"Split @:preset | Split @:preset": "splitPreset.title", -"New @:preset": "splitPreset.new", -"Split {index}": "splitPreset.splits.splitIndex", -"@:delete @:preset": "splitPreset.splits.delete", -"Import @:preset | Import @:preset": "splitPreset.import.title", -"Drag and drop a zipped Msty presets file to import and create new presets. In case of duplicate names, the imported presets will be renamed. You can change it later.": "splitPreset.import.dragAndDropMessage", -"@:preset imported": "splitPreset.import.successMessage.detail", -"Failed to import presets": "splitPreset.import.errorMessage.detail", -"Export @:preset | Export @:preset": "splitPreset.export.title", -"Export Selected @:preset | Export Selected @:preset": "splitPreset.export.selected", -"Split preset exported as {fileName} | Split presets exported as {fileName}": "splitPreset.export.successMessage.detail", -"Failed to export preset | Failed to export presets": "splitPreset.export.errorMessage.detail", -"@:delete @:preset | Delete @:preset": "splitPreset.delete.title", -"@:delete Selected @:preset | Delete Selected @:preset": "splitPreset.delete.selected", -"Are you sure you want to delete {presetName}? | Are you sure you want to delete {count} presets?": "splitPreset.delete.deleteConfirmation.description", -"Split preset deleted | Split presets deleted": "splitPreset.delete.successMessage.detail", -"Could not delete split preset | Could not delete split presets": "splitPreset.delete.errorMessage.detail", -"Split preset updated": "splitPreset.update.successMessage.detail", -"Could not update split preset": "splitPreset.update.errorMessage.detail", -"Split preset saved": "splitPreset.save.successMessage.detail", -"Could not save split preset": "splitPreset.save.errorMessage.detail", -"No @:splitPreset.title available.": "splitPreset.empty.title", -"Get started by adding or importing a new @:splitPreset.title": "splitPreset.empty.description", -"Invalid Templates": "splitPreset.invalidTemplatesMessage.summary", -"Some templates are invalid or missing required fields. Please correct them before continuing.": "splitPreset.invalidTemplatesMessage.detail", -"Shadow Personas": "shadowPersonas.title", -"Create Shadow Persona": "shadowPersonas.create", -"Edit Shadow Persona": "shadowPersonas.editTitle", -"Assigned Persona": "shadowPersonas.assignedPersona", -"Change Persona": "shadowPersonas.changePersona", -"Change Shadow Persona": "shadowPersonas.changePersonaTitle", -"Current Persona": "shadowPersonas.currentPersona", -"Select New Persona": "shadowPersonas.selectNewPersona", -"Waiting for completion": "shadowPersonas.waitingForCompletion", -"Changing the persona will reset the analysis context and may affect continuity.": "shadowPersonas.changePersonaWarning", -"No Persona Assigned": "shadowPersonas.unassigned", -"Hide Shadow Personas": "shadowPersonas.hideSidebar", -"Show Shadow Personas": "shadowPersonas.showSidebar", -"No splits being monitored": "shadowPersonas.noMonitoring", -"Monitoring {count} split (click to show) | Monitoring {count} splits (click to show)": "shadowPersonas.monitoringHiddenHint", -"Monitoring {count} split | Monitoring {count} splits": "shadowPersonas.monitoringSplitsHint", -"Activate": "shadowPersonas.activate", -"Deactivate": "shadowPersonas.deactivate", -"Process Now": "shadowPersonas.processNow", -"Processing...": "shadowPersonas.processing", -"Create and Assign": "shadowPersonas.createAndAssign", -"Latest Insight": "shadowPersonas.latestInsight", -"No output yet": "shadowPersonas.noOutputYet", -"Outputs": "shadowPersonas.outputs", -"View Latest": "shadowPersonas.viewLatest", -"View History": "shadowPersonas.viewHistory", -"No history available": "shadowPersonas.noHistory", -"Select version": "shadowPersonas.selectVersion", -"Shadow Persona Name": "shadowPersonas.name", -"e.g., Technical Analyst, Performance Monitor": "shadowPersonas.namePlaceholder", -"Switch Shadow Persona": "shadowPersonas.switchShadowPersona", -"Select a shadow persona to switch to": "shadowPersonas.selectShadowPersonaToSwitch", -"Select Shadow Persona": "shadowPersonas.selectShadowPersona", -"Search shadow personas...": "shadowPersonas.searchShadowPersonas", -"Description (Optional)": "shadowPersonas.description", -"Describe what this shadow persona observes or analyzes": "shadowPersonas.descriptionPlaceholder", -"Select Persona": "shadowPersonas.selectPersona", -"Choose a persona to use": "shadowPersonas.selectPersonaPlaceholder", -"Select Splits to Monitor": "shadowPersonas.selectSplits", -"Choose splits to monitor": "shadowPersonas.selectSplitsPlaceholder", -"Choose splits to monitor (can be set later)": "shadowPersonas.selectSplitsPlaceholderOptional", -"Splits can be dynamically assigned and managed after creation": "shadowPersonas.splitsCanBeAssignedLater", -"Update Trigger": "shadowPersonas.updateTrigger", -"Message Interval": "shadowPersonas.messageInterval", -"Time Interval": "shadowPersonas.timeInterval", -"Messages Per Split": "shadowPersonas.messagesPerSplit", -"Max Context": "shadowPersonas.maxContext", -"Synthesis Mode": "shadowPersonas.synthesisMode", -"Output Format": "shadowPersonas.outputFormat", -"Max Processing Time": "shadowPersonas.maxProcessingTime", -"Version Management": "shadowPersonas.versionManagement", -"Max Versions": "shadowPersonas.maxVersions", -"Advanced Settings": "shadowPersonas.advancedSettings", -"Include System Messages": "shadowPersonas.includeSystemMessages", -"Auto Delete Old Versions": "shadowPersonas.autoDeleteOld", -"Waiting for splits": "shadowPersonas.waitingForSplits", -"Processing now": "shadowPersonas.processingNow", -"No Shadow Personas": "shadowPersonas.empty.title", -"Create a Shadow Persona to monitor and analyze your conversation splits": "shadowPersonas.empty.description", -"Unlock Shadow Personas": "shadowPersonas.unlock", -"Experimental": "shadowPersonas.experimental", -"Shadow Personas is an experimental feature that analyzes conversations and generates alternative perspectives and insights in parallel.": "shadowPersonas.experimentalInfo", -"No Output Yet": "shadowPersonas.noOutput.title", -"This Shadow Persona hasn't generated any output yet": "shadowPersonas.noOutput.description", -"Save this conversation to enable Shadow Persona processing": "shadowPersonas.saveToEnableProcessing", -"Delete Shadow Persona": "shadowPersonas.delete.title", -"Are you sure you want to delete \"{name}\"? \"{name}\" will be deleted from all the conversations it is attached to. This action cannot be undone.": "shadowPersonas.delete.confirmMessage", -"Successfully deleted the shadow persona": "shadowPersonas.delete.successMessage", -"Failed to delete the shadow persona": "shadowPersonas.delete.errorMessage", -"Detach Shadow Persona": "shadowPersonas.detach.title", -"Detach": "shadowPersonas.detach.action", -"Detach \"{name}\" from this conversation? The shadow persona will remain available for other conversations.": "shadowPersonas.detach.confirmMessage", -"Successfully detached the shadow persona": "shadowPersonas.detach.successMessage", -"Failed to detach the shadow persona": "shadowPersonas.detach.errorMessage", -"Successfully switched the shadow persona": "shadowPersonas.switch.successMessage", -"Failed to switch the shadow persona": "shadowPersonas.switch.errorMessage", -"Successfully updated the shadow persona": "shadowPersonas.editToast.successMessage", -"Failed to update the shadow persona": "shadowPersonas.editToast.errorMessage", -"Successfully created the shadow persona": "shadowPersonas.createToast.successMessage", -"Failed to create the shadow persona": "shadowPersonas.createToast.errorMessage", -"Queue Cleared": "shadowPersonas.queueClearedToast.summary", -"Cancelled {cancelledCount} queued item | Cancelled {cancelledCount} queued items": "shadowPersonas.queueClearedToast.detail", -"Queue Updated": "shadowPersonas.queueUpdatedToast.summary", -"Cancelled {cancelledCount} auto-triggered item | Cancelled {cancelledCount} auto-triggered items": "shadowPersonas.queueUpdatedToast.detail", -"Queue Full": "shadowPersonas.queueFullToast.summary", -"Processing queue is full. Please wait for current items to complete": "shadowPersonas.queueFullToast.detail", -"Already Processing": "shadowPersonas.alreadyProcessingToast.summary", -"This conversation is already being processed": "shadowPersonas.alreadyProcessingToast.detail", -"Every Message": "shadowPersonas.trigger.everyMessage", -"Every {n} Messages": "shadowPersonas.trigger.everyNMessages", -"Manual Only": "shadowPersonas.trigger.manual", -"Automatic": "shadowPersonas.trigger.automatic", -"Runs after each message (fastest, more frequent)": "shadowPersonas.triggerHints.everyMessage", -"Runs after {n} messages (batched)": "shadowPersonas.triggerHints.everyNMessages", -"Only when you click Process Now": "shadowPersonas.triggerHints.manual", -"Auto": "shadowPersonas.synthesis.auto", -"Combined Analysis": "shadowPersonas.synthesis.combined", -"Per Split": "shadowPersonas.synthesis.perSplit", -"Comparative": "shadowPersonas.synthesis.comparative", -"Picks the best mode based on splits and intent": "shadowPersonas.synthesisHints.auto", -"One summary across all splits": "shadowPersonas.synthesisHints.combined", -"Keep each split separate and labeled": "shadowPersonas.synthesisHints.perSplit", -"Side-by-side differences and agreements": "shadowPersonas.synthesisHints.comparative", -"Auto will use Combined because only one split is present.": "shadowPersonas.synthesisAutoReasons.singleSplit", -"Auto will use Comparative because multiple models are in use.": "shadowPersonas.synthesisAutoReasons.multipleModels", -"Auto will use Per Split because splits use the same model.": "shadowPersonas.synthesisAutoReasons.sameModel", -"Insights": "shadowPersonas.format.insights", -"Summary": "shadowPersonas.format.summary", -"Recommendations": "shadowPersonas.format.recommendations", -"Analysis": "shadowPersonas.format.analysis", -"Locate splits": "shadowPersonas.locateSplits", -"Manage Splits": "shadowPersonas.manageSplits", -"Add all splits": "shadowPersonas.addAllSplits", -"Select all": "shadowPersonas.selectAll", -"{count} of {total} selected": "shadowPersonas.selectedCount", -"Streaming": "shadowPersonas.streaming", -"Starting": "shadowPersonas.starting", -"Collecting context from splits...": "shadowPersonas.collectingContext", -"Waiting for conversation to complete": "shadowPersonas.waitingForConversationCompletion", -"Analyzing conversation splits...": "shadowPersonas.analyzingConversationSplits", -"Shadow Persona will analyze once all responses are received": "shadowPersonas.analyzeResponses", -"Tool Calls": "shadowPersonas.toolCalls", -"Reasoning": "shadowPersonas.reasoning", -"Attach Existing": "shadowPersonas.attachExisting", -"Attach Shadow Persona": "shadowPersonas.attachTitle", -"Previous Version": "shadowPersonas.previousVersion", -"Next Version": "shadowPersonas.nextVersion", -"Attach": "shadowPersonas.attach", -"Select a shadow persona to attach to this conversation": "shadowPersonas.selectShadowPersonaToAttach", -"Choose a shadow persona to attach": "shadowPersonas.selectShadowPersonaPlaceholder", -"Queued #{position}": "shadowPersonas.queuedPosition", -"Add to Queue": "shadowPersonas.addToQueue", -"Processing Queue": "shadowPersonas.processingQueue", -"Remove from Queue": "shadowPersonas.removeFromQueue", -"Removed from queue": "shadowPersonas.removedFromQueue", -"in queue": "shadowPersonas.inQueue", -"Clear All": "shadowPersonas.clearQueue", -"No items in queue": "shadowPersonas.queueEmpty", -"Est. wait: {time}": "shadowPersonas.estimatedWait", -"{count} item in queue | {count} items in queue": "shadowPersonas.queuedItems", -"Monitoring & Queue": "shadowPersonas.monitoring", -"Monitored Splits": "shadowPersonas.monitoredSplits", -"Toolbox": "toolbox.title", -"Msty @:remoteToolsConnector.title is not running; tools usage will be skipped.": "toolbox.toolsUsageWillSkip", -"Tool | Tools": "toolbox.tools.title", -"A collection of tools to help you with your LLM work.": "toolbox.tools.description", -"Available Tools": "toolbox.tools.availableTools", -"Available Toolsets": "toolbox.tools.availableToolsets", -"Set Default Parameters": "toolbox.tools.setDefaultParams", -"Set Parameters": "toolbox.tools.setParams", -"This dependency seems to be missing from your environment. Without this, the tool may not work as expected.": "toolbox.tools.missingThisDependency", -"Default Parameters for {toolName}": "toolbox.tools.defaultParamsForm.header", -"These parameters will be used globally for all instances of {toolName} tool. You can override these when creating a toolset.": "toolbox.tools.defaultParamsForm.description", -"Arguments": "toolbox.tools.defaultParamsForm.args.label", -"@:select an @:argument and set its value. Leave it blank to skip setting a value.": "toolbox.tools.defaultParamsForm.args.description", -"Custom @:argument": "toolbox.tools.defaultParamsForm.args.customArg.label", -"Enter the name of the new @:argument{'.'} Separate multiple arguments with a comma.": "toolbox.tools.defaultParamsForm.args.customArg.description", -"eg. --arg1, someArg, -verbose": "toolbox.tools.defaultParamsForm.args.customArg.placeholder", -"Environment Variables": "toolbox.tools.defaultParamsForm.env.label", -"@:select or enter a new Environment @:variable and set its value.": "toolbox.tools.defaultParamsForm.env.description", -"Add Environment @:variable": "toolbox.tools.defaultParamsForm.env.addEnv", -"@:select an Environment @:variable": "toolbox.tools.defaultParamsForm.env.selectPlaceholder", -"Add a new Environment @:variable": "toolbox.tools.defaultParamsForm.env.enterNew", -"Default parameters saved for {toolName}.": "toolbox.tools.defaultParamsForm.successMessage.saveDetail", -"Failed to save default parameters.": "toolbox.tools.defaultParamsForm.errorMessage.saveDetail", -"Add New Tool": "toolbox.tools.addNewTool.title", -"Add your own MCP compatible tool to the toolbox. Once added, you can add it to a toolset, set parameters, and use it with a model.": "toolbox.tools.addNewTool.description", -"Give it a name (uses the tool ID by default)": "toolbox.tools.addNewTool.namePlaceholder", -"Tool ID": "toolbox.tools.addNewTool.id.label", -"Unique tool identifier (auto-filled if detected from config)": "toolbox.tools.addNewTool.id.placeholder", -"Tool with this ID already exists. Please enter a unique ID.": "toolbox.tools.addNewTool.duplicateId", -"Tool Added": "toolbox.tools.addNewTool.successMessage.summary", -"Tool added to the toolbox. You can now add it to a toolset and use it with a model.": "toolbox.tools.addNewTool.successMessage.detail", -"Tool added to the toolbox and a matching toolset was created. It's ready to use with a model.": "toolbox.tools.addNewTool.successMessageWithToolset.detail", -"Failed to add tool to the toolbox. {error}": "toolbox.tools.addNewTool.errorMessage.detail", -"Tool Configuration": "toolbox.tools.addNewTool.toolConfig.label", -"Enter or paste tool configuration JSON. Accepts direct config or wrapped formats (will auto-extract toolId)": "toolbox.tools.addNewTool.toolConfig.placeholder", -"Show me an example of a tool configuration": "toolbox.tools.addNewTool.toolConfig.showExampleTitle", -"The tool configuration accepts multiple formats including wrapped configs with mcpServers. It will auto-extract the toolId and name when possible. Must contain at minimum {command}. Dynamic arguments need to be wrapped in curly braces {curly} like so: {argExample}. Similarly, dynamic environment variables can be set using {envVarLabel}.": "toolbox.tools.addNewTool.toolConfig.explanation", -"Auto-create toolset with same name": "toolbox.tools.addNewTool.autoCreateToolset.label", -"Edit Tool": "toolbox.tools.editTool.title", -"Update the name, notes, and configuration of the tool.": "toolbox.tools.editTool.description", -"Tool @:updatedSuccess": "toolbox.tools.editTool.successMessage.detail", -"@:failedToUpdate tool.": "toolbox.tools.editTool.errorMessage.detail", -"Use external MCP tools powered by Msty @:remoteToolsConnector.title to extend your models' capabilities and enhance your LLM experience.": "toolbox.tools.emptyPlaceholder.description1", -"You can get started by importing many of the tools that Msty ships with or adding your own tools.": "toolbox.tools.emptyPlaceholder.description2", -"Note: These tools are not provided, tested, or maintained by Msty. We are merely providing a platform to use these and allowing to import them as a convenience. PLEASE USE THEM AT YOUR OWN RISK. Msty is not responsible for any issues that may arise from using these tools. Also, for support, please reach out to the tool's author.": "toolbox.tools.emptyPlaceholder.description3", -"Import Default @:toolbox.tools.title": "toolbox.tools.importTools.title", -"{count} default tools imported successfully. You can create toolsets and use them with a model.": "toolbox.tools.importTools.successMessage.detail", -"{count} default tools imported successfully and {toolsetCount} corresponding toolsets auto-created.": "toolbox.tools.importTools.successMessageWithToolsets.detail", -"Failed to import default @:toolbox.tools.title": "toolbox.tools.importTools.errorMessage.detail", -"Delete Tool": "toolbox.tools.deleteConfirmation.header", -"Are you sure you want to delete {toolName}?": "toolbox.tools.deleteConfirmation.description", -"Tool deleted": "toolbox.tools.deleteConfirmation.successMessage.detail", -"@:failedToDelete tool": "toolbox.tools.deleteConfirmation.errorMessage.detail", -"Delete All Tools": "toolbox.tools.deleteAll.confirmationHeader", -"Are you sure you want to delete all tools? This action cannot be undone.": "toolbox.tools.deleteAll.confirmationMessage", -"All tools have been deleted successfully": "toolbox.tools.deleteAll.successMessage", -"Failed to delete all tools": "toolbox.tools.deleteAll.errorMessage", -"Tool configuration copied to clipboard": "toolbox.tools.copiedToClipboard", -"View Tools Usage": "toolbox.tools.viewToolsUsage.title", -"No Tool Calls Found": "toolbox.tools.viewToolsUsage.noToolCalls.title", -"It seems there were some tools being able to the model but it did not make any tool calls. This could be because the model did not need to use any tools.": "toolbox.tools.viewToolsUsage.noToolCalls.description", -"Toolset | Toolsets": "toolbox.toolsets.title", -"No Toolsets found": "toolbox.toolsets.emptyPlaceholder.title", -"Toolsets are a collection of tools with parameters. You can create a toolset and add tools to it. When chatting with a model, you can select one or multiple toolsets to use with the model.": "toolbox.toolsets.emptyPlaceholder.description", -"Please add some tools to get started.": "toolbox.toolsets.addSomeTools", -"No tools in this toolset": "toolbox.toolsets.noTools", -"Enabled features": "toolbox.toolsets.tooltip.selectedFeatures", -"Loading feature details…": "toolbox.toolsets.tooltip.loading", -"All features": "toolbox.toolsets.tooltip.allFeatures", -"Unable to load feature details": "toolbox.toolsets.tooltip.unavailable", -"Add New @:toolbox.toolsets.title": "toolbox.toolsets.addNewToolset.title", -"Create a new toolset to group tools together. You can add tools to the toolset and use it with a model. Make sure to set/overwrite the parameters for each tool in the toolset by clicking {icon} button.": "toolbox.toolsets.addNewToolset.description", -"Set Parameters for {toolName}": "toolbox.toolsets.addNewToolset.setParams.title", -"Set parameters for the {toolName} tool. You can override the default parameters set for the tool. Use the Tool Console to test the tool, view available features, and limit features if needed.": "toolbox.toolsets.addNewToolset.setParams.description", -"Toolset saved and added to the toolbox. You can now use it with a model.": "toolbox.toolsets.addNewToolset.successMessage.saveDetail", -"@:failedToSave toolset.": "toolbox.toolsets.addNewToolset.errorMessage.saveDetail", -"Edit Toolset": "toolbox.toolsets.editToolset.title", -"Edit the name and notes of the toolset. You can also add or remove tools from the toolset and tweak the parameters or limit features for each tool by clicking {icon} button.": "toolbox.toolsets.editToolset.description", -"Toolset @:updatedSuccess": "toolbox.toolsets.editToolset.successMessage.detail", -"@:failedToUpdate toolset.": "toolbox.toolsets.editToolset.errorMessage.detail", -"Delete Toolset": "toolbox.toolsets.deleteConfirmation.header", -"Are you sure you want to delete {toolsetName}?": "toolbox.toolsets.deleteConfirmation.description", -"Toolset deleted": "toolbox.toolsets.deleteConfirmation.successMessage.detail", -"@:failedToDelete toolset": "toolbox.toolsets.deleteConfirmation.errorMessage.detail", -"Delete All Toolsets": "toolbox.toolsets.deleteAll.confirmationHeader", -"Are you sure you want to delete all toolsets? This action cannot be undone.": "toolbox.toolsets.deleteAll.confirmationMessage", -"All toolsets have been deleted successfully": "toolbox.toolsets.deleteAll.successMessage", -"Failed to delete all toolsets": "toolbox.toolsets.deleteAll.errorMessage", -"Export @:toolbox.toolsets.title": "toolbox.toolsets.export.title", -"For security, sensitive configuration values can be removed before exporting. Select which environment variables and arguments to scrub for each tool.": "toolbox.toolsets.export.description", -"Environment variables to scrub": "toolbox.toolsets.export.envVarsToScrub", -"Arguments to scrub": "toolbox.toolsets.export.argsToScrub", -"Scrub custom arguments string": "toolbox.toolsets.export.scrubCustomArgs", -"Select environment variables to remove values": "toolbox.toolsets.export.selectEnvVarsPlaceholder", -"Select arguments to remove values": "toolbox.toolsets.export.selectArgsPlaceholder", -"No configuration data to scrub": "toolbox.toolsets.export.noScrubbableData", -"Common sensitive values are pre-selected for your security.": "toolbox.toolsets.export.sensitiveDataNote", -"Toolset configuration copied to clipboard": "toolbox.toolsets.export.copiedToClipboard", -"Toolset configuration downloaded": "toolbox.toolsets.export.downloadedAsJson", -"Failed to fetch toolset data for export": "toolbox.toolsets.export.fetchError", -"Some tools were not found and skipped: {tools}": "toolbox.toolsets.import.missingTools", -"{count} tool | {count} tools": "toolbox.toolsets.noOfTools", -"View Tools & Notes": "toolbox.toolsets.viewToolsAndNotes", -"Tool Console": "toolbox.toolsets.console.title", -"You can use this console to test {toolName} and see the output. You can also use it to test the tool with different parameters or limit the available features. All features are enabled by default, select the checkboxes to limit the features to only those selected.": "toolbox.toolsets.console.description", -"List {toolName}'s Features": "toolbox.toolsets.console.listTools", -"Missing {count} Required @:argument": "toolbox.toolsets.console.missingRequiredArgument", -"@:continue with Missing @:argument": "toolbox.toolsets.console.continueWithMissingArgs", -"View Source on GitHub": "toolbox.toolsets.console.viewSourceOnGitHub", -"Enable specific features for this tool": "toolbox.toolsets.console.allowedFeaturesLabel", -"Search or pick features to allow": "toolbox.toolsets.console.allowedFeaturesPlaceholder", -"Currently enabled features": "toolbox.toolsets.console.selectedFeaturesLabel", -"Tool Call": "toolbox.toolsets.console.toolCall.title", -"Add the required properties to call {featureName}. You can add extra properties if you want. Be careful with calling the tool just like that esp. without the right values.": "toolbox.toolsets.console.toolCall.description", -"@:select a property": "toolbox.toolsets.console.toolCall.selectPlaceholder", -"Add a new property": "toolbox.toolsets.console.toolCall.enterNew", -"Execute @:toolbox.toolsets.console.toolCall": "toolbox.toolsets.console.toolCall.execute", -"Click to manage used toolsets": "toolbox.toolsets.manageTooltip", -"@:select model may not support tools.": "toolbox.toolsets.noModelSupport", -"{count} Active Toolset | {count} Active Toolsets": "toolbox.toolsets.toolsetsUsedCount", -"{count} Active Live Context | {count} Active Live Contexts": "liveContexts.liveContextsUsedCount", -"Live @:context": "liveContexts.title", -"Live Contexts": "liveContexts.contexts", -"Untitled Live Context": "liveContexts.untitled", -"Select Source": "liveContexts.selectSource", -"Toggle to include or exclude this source from the context": "liveContexts.selectSourceTooltip", -"Add New @:liveContexts.title": "liveContexts.addNew.title", -"Create a new @:liveContexts.title source to add external data context to your conversation.": "liveContexts.addNew.description", -"Failed to add @:liveContexts.title": "liveContexts.addNew.errorMessage.detail", -"@:liveContexts.title added": "liveContexts.addNew.successMessage.detail", -"Edit @:liveContexts.title": "liveContexts.edit.title", -"Provide a prompt for Push-mode here; include any Pull-mode details in the Notes section.": "liveContexts.promptPlaceholder", -"Endpoint Details": "liveContexts.endpointDetails", -"URL": "liveContexts.url", -"Custom Headers": "liveContexts.customHeaders", -"Has Body": "liveContexts.hasBody", -"Custom Processing": "liveContexts.customProcessing", -"Prompt Template": "liveContexts.promptTemplate", -"Request Headers": "liveContexts.requestHeaders.title", -"Add request headers as a JSON object. This will be sent with the request to the API endpoint.": "liveContexts.requestHeaders.description", -"{'{'}\n \"Authorization\": \"Bearer {'{'}apiKey:'key'{'}'}\",\n \"X-From\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}": "liveContexts.requestHeaders.placeholder", -"Request Body": "liveContexts.requestBody.title", -"Add request body as a JSON object. This will be sent with the request to the API endpoint.": "liveContexts.requestBody.description", -"{'{'}\n \"q\": \"{'{'}query:'term'{'}'}\",\n \"from\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}": "liveContexts.requestBody.placeholder", -"Dynamic Placeholders": "liveContexts.placeholders.title", -"Placeholder syntax": "liveContexts.placeholders.tooltip", -"Placeholders:": "liveContexts.placeholders.label", -"Processing Function": "liveContexts.processingFunction.title", -"Add a processing function to transform the response data before using it in the conversation. The function should return a string.": "liveContexts.processingFunction.description", -"function process({'{'}data, placeholders{'}'}) {'{'}": "liveContexts.processingFunction.placeholderHeader", -" // access data and optional placeholders\n return JSON.stringify(data)": "liveContexts.processingFunction.placeholder", -"{'}'}": "liveContexts.processingFunction.placeholderFooter", -"Access via placeholders param": "liveContexts.processingFunction.tooltip", -"Use placeholders in code:": "liveContexts.processingFunction.usePlaceholders", -"Enter test values for detected placeholders to test the endpoint.": "liveContexts.testVariables.description", -"@:liveContexts.title updated": "liveContexts.update.successMessage.detail", -"Failed to update @:liveContexts.title": "liveContexts.update.errorMessage.detail", -"Delete @:liveContexts.title": "liveContexts.deleteConfirmation.header", -"Are you sure you want to delete {liveContextName}?": "liveContexts.deleteConfirmation.description", -"@:liveContexts.title deleted": "liveContexts.deleteConfirmation.successMessage.detail", -"Failed to delete @:liveContexts.title": "liveContexts.deleteConfirmation.errorMessage.detail", -"No @:liveContexts.title found": "liveContexts.emptyPlaceholder.title", -"@:liveContexts.title are external data contexts that you can add to your conversation. You can create a new @:liveContexts.title source and use it with a model.": "liveContexts.emptyPlaceholder.description", -"Delete All @:liveContexts.contexts": "liveContexts.deleteAll.confirmationHeader", -"Are you sure you want to delete all live contexts? This action cannot be undone.": "liveContexts.deleteAll.confirmationMessage", -"All live contexts have been deleted successfully": "liveContexts.deleteAll.successMessage", -"Failed to delete all live contexts": "liveContexts.deleteAll.errorMessage", -"Export @:liveContexts.title": "liveContexts.export.title", -"For security, sensitive header values can be removed before exporting. Select which headers to scrub.": "liveContexts.export.headerScrubDescription", -"Headers to scrub": "liveContexts.export.selectHeadersToScrub", -"Select headers to remove values": "liveContexts.export.selectHeadersPlaceholder", -"Common sensitive headers are pre-selected for your security.": "liveContexts.export.sensitiveHeadersNote", -"Live context configuration copied to clipboard": "liveContexts.export.copiedToClipboard", -"Live context configuration downloaded": "liveContexts.export.downloadedAsJson", -"Push": "liveContexts.mode.push", -"Pull": "liveContexts.mode.pull", -"Push mode: runs automatically before the model replies": "liveContexts.mode.tooltip.push", -"Pull mode: called on-demand by model": "liveContexts.mode.tooltip.pull", -"Mode | Modes": "modes.mode", -"@:modes.mode": "modes.title", -"Exit {mode} @:modes.mode": "modes.exitMode", -"Zen": "modes.zenMode.title", -"a state of calm attentiveness": "modes.zenMode.quote", -"New @:modes.zenMode.title @:conversation.title": "modes.zenMode.newConversation", -"@:modes.vaporMode.vapor @:modes.mode": "modes.vaporMode.title", -"Vapor": "modes.vaporMode.vapor", -"Conversations will not be saved in your history and will disappear when you turn it off or navigate away": "modes.vaporMode.description", -"This will disappear when you turn off @:modes.vaporMode.vapor @:modes.mode or navigate away": "modes.vaporMode.willDisappearTooltip", -"Exit @:modes.vaporMode.vapor @:modes.mode": "modes.vaporMode.exitVaporMode", -"Enter @:modes.vaporMode.vapor @:modes.mode": "modes.vaporMode.enterVaporMode", -"@:save @:conversation.title": "modes.vaporMode.preserverChat.saveConversation", -"@:modes.vaporMode.vapor chat has been preserved": "modes.vaporMode.preserverChat.successMessage.detail", -"Failed to preserve @:modes.vaporMode.vapor chat": "modes.vaporMode.preserverChat.errorMessage.detail", -"Focus @:modes.mode": "modes.focusMode.title", -"Normal @:modes.mode": "modes.normalMode.title", -"Query": "searchForm.query", -"Search Items": "searchForm.title", -"No results found": "searchForm.noResults.title", -"Try searching for a different term": "searchForm.noResults.description", -"@:conversation.title": "searchForm.entity.conversationTextMessages", -"Found {count} result | Found {count} results": "searchForm.foundResultsCount", -"Search {entity}": "searchForm.labels.title", -"Look up {entity} quickly using keywords": "searchForm.labels.description", -"Search matches all words by default (e.g., {example} → matches text containing both words in any order)": "searchForm.labels.tips.default.description", -"blue car": "searchForm.labels.tips.default.example", -"Use {operator} for partial matches (e.g., {example})": "searchForm.labels.tips.partial.description", -"*": "searchForm.labels.tips.partial.operator", -"run* → runs, running": "searchForm.labels.tips.partial.example", -"@:user {operator} to match any term (e.g., {example})": "searchForm.labels.tips.or.description", -"OR": "searchForm.labels.tips.or.operator", -"apple OR orange": "searchForm.labels.tips.or.example", -"Use double quotes {operator} for exact matches (e.g., {example})": "searchForm.labels.tips.exact.description", -"\"\"": "searchForm.labels.tips.exact.operator", -"\"blue car\"": "searchForm.labels.tips.exact.example", -"Use {operator} to escape special characters (e.g., {example})": "searchForm.labels.tips.specialCharacters.description", -"\"C++\", \"node.js\"": "searchForm.labels.tips.specialCharacters.example", -"Clear Search": "clearSearch", -"Helpful Tips": "helpfulTips", -"Hide Search": "hideSearch", -"@:bookmark {item}": "bookmarkItem.action", -"Jump to @:bookmarked {item}": "bookmarkItem.jump", -"@:bookmarked {item}": "bookmarkItem.title", -"{item} @:bookmarked": "bookmarkItem.successMessage.detail", -"Unable to bookmark {item}": "bookmarkItem.errorMessage.detail", -"@:bookmarked {item} has been deleted": "bookmarkItem.deletedInfoMessage.detail", -"No bookmarks available.": "bookmarkItem.emptyState.title", -"Get started by bookmarking {item}": "bookmarkItem.emptyState.description", -"Remove @:bookmarked {item}": "removeBookmarkedItem.action", -"{item} removed from bookmarks": "removeBookmarkedItem.successMessage.detail", -"Unable to remove {item} from bookmarks": "removeBookmarkedItem.errorMessage.detail", -"Turnstile | Turnstiles": "turnstile.title", -"New @:turnstile.title": "turnstile.newTurnstile", -"@:select a @:turnstile.title": "turnstile.selectPlaceholder", -"Click to open or Alt+Click to add to queue": "turnstile.addQueueWithAlt", -"No Queued @:entry | {count}/{total} @:entry Queued | {count}/{total} @:entry Queued": "turnstile.entriesQueued", -"Once your prompt is ready, click @:turnstile.queueEntry to add an entry to the queue.": "turnstile.emptyQueueMessage", -"Manage Saved Turnstiles": "turnstile.manageSavedTurnstiles", -"Save @:turnstile.title As": "turnstile.saveForm.title", -"@:turnstile.title has been saved.": "turnstile.saveForm.successMessage.detail", -"Failed to save turnstile.": "turnstile.saveForm.errorMessage.detail", -"Load @:turnstile.title": "turnstile.loadTurnstiles.title", -"@:turnstile.title Loaded!": "turnstile.loadTurnstiles.successMessage.summary", -"{count} entry loaded and enqueued. | {count} entries are loaded and enqueued.": "turnstile.loadTurnstiles.successMessage.detail", -"Failed to load turnstile.": "turnstile.loadTurnstiles.errorMessage.detail", -"Clear Queue": "turnstile.clearQueue.title", -"Are you sure you want to clear the queue? This will remove all the messages you have added.": "turnstile.clearQueue.clearQueueConfirmation.message", -"New Entry": "turnstile.newEntry.title", -"Invalid Entries": "turnstile.invalidEntriesMessage.summary", -"Some entries are invalid or missing required fields. Please correct them before continuing.": "turnstile.invalidEntriesMessage.detail", -"Couldn't run {metaType}. Please make sure that it is not the first entry in the queue.": "turnstile.metaSendMissingRootNode.detail", -"@:turnstile.title has been updated.": "turnstile.update.successMessage.detail", -"Failed to update turnstile. Have you set prompt and model?": "turnstile.update.errorMessage.detail", -"Failed to save turnstile. Have you set prompt and model?": "turnstile.save.errorMessage.detail", -"Delete Selected @:turnstile.title | Delete Selected @:turnstile.title": "turnstile.delete.selected", -"Delete @:turnstile.title": "turnstile.delete.deleteConfirmation.header", -"Are you sure you want to delete {turnstileName}? | Are you sure you want to delete {count} turnstiles?": "turnstile.delete.deleteConfirmation.description", -"No @:turnstile.title Available.": "turnstile.empty.title", -"Get started by adding or importing a new @:turnstile.title{'.'}": "turnstile.empty.description", -"@:new @:turnstile.title": "turnstile.new", -"@:entry {index}": "turnstile.entryIndex", -"Add @:message.renderingActions.continueGeneration": "turnstile.addContinue", -"Add @:regenerate": "turnstile.addRegenerate", -"Add @:persona.title": "turnstile.addPersona", -"Add @:contextShield.title": "turnstile.addShield", -"Add @:contextShield.contextShieldWithSummary": "turnstile.addShieldWithSummary", -"Import @:turnstile.title": "turnstile.import.title", -"Drag and drop a zipped Msty @:turnstile.title to import and create new turnstiles. In case of duplicate names, the imported turnstiles will be renamed. You can change it later.": "turnstile.import.dragAndDropMessage", -"Turnstiles imported": "turnstile.import.successMessage.detail", -"Failed to import turnstiles": "turnstile.import.errorMessage.detail", -"Export @:turnstile.title": "turnstile.export.title", -"Export Selected @:turnstile.title | Export Selected @:turnstile.title": "turnstile.export.selected", -"@:turnstile.title exported as {fileName} | @:turnstile.title exported as {fileName}": "turnstile.export.successMessage.detail", -"Failed to export @:turnstile.title | Failed to export @:turnstile.title": "turnstile.export.errorMessage.detail", -"Model Matchmaker": "modelMatchmaker.title", -"Adjust the gravity sliders for strengths like coding, reasoning, or math, and Matchmaker will rank and recommend the best models for your needs. Results may vary by data quality, model size, and task complexity.": "modelMatchmaker.description", -"Found your model?": "modelMatchmaker.ctaIntro", -"Test and compare in Msty Studio.": "modelMatchmaker.ctaMessage", -"Gravity": "modelMatchmaker.gravity", -"Remote Only": "modelMatchmaker.remoteOnly", -"Ranked Models": "modelMatchmaker.rankedModels.title", -"No models found. Try adjusting your requirements.": "modelMatchmaker.rankedModels.emptyMessage", -"Coding": "modelMatchmaker.strengthsLabel.ca.title", -"The ability to write code in a programming language.": "modelMatchmaker.strengthsLabel.ca.description", -"Agentic Coding": "modelMatchmaker.strengthsLabel.aca.title", -"The agentic ability to write code in a programming language.": "modelMatchmaker.strengthsLabel.aca.description", -"@:data Analysis": "modelMatchmaker.strengthsLabel.daa.title", -"The ability to analyze data and generate insights.": "modelMatchmaker.strengthsLabel.daa.description", -"Instructions Following": "modelMatchmaker.strengthsLabel.ifa.title", -"The ability to follow instructions and perform tasks.": "modelMatchmaker.strengthsLabel.ifa.description", -"GOAT: Generalist of All Trades": "modelMatchmaker.strengthsLabel.jak.title", -"The ability to perform a wide range of tasks.": "modelMatchmaker.strengthsLabel.jak.description", -"The ability to understand and generate human language.": "modelMatchmaker.strengthsLabel.la.description", -"Mathematics": "modelMatchmaker.strengthsLabel.ma.title", -"The ability to perform mathematical calculations.": "modelMatchmaker.strengthsLabel.ma.description", -"Paraphrasing": "modelMatchmaker.strengthsLabel.pp.title", -"Demonstrated rewriting ability to rephrase any given text.": "modelMatchmaker.strengthsLabel.pp.description", -"Critical Thinking - the ability to reason and make decisions.": "modelMatchmaker.strengthsLabel.ra.description", -"Simplification": "modelMatchmaker.strengthsLabel.sim.title", -"The ability to simplify any given complex text.": "modelMatchmaker.strengthsLabel.sim.description", -"Story Generation": "modelMatchmaker.strengthsLabel.stg.title", -"The ability to generate stories or narratives.": "modelMatchmaker.strengthsLabel.stg.description", -"Summarization": "modelMatchmaker.strengthsLabel.sum.title", -"The ability of summarizing textual and numerical information.": "modelMatchmaker.strengthsLabel.sum.description", -"Tools Usage": "modelMatchmaker.strengthsLabel.tu.title", -"The ability to call and use external tools.": "modelMatchmaker.strengthsLabel.tu.description", -"Max Input Tokens": "modelMatchmaker.strengthsLabel.mit.title", -"The max no. of tokens accepted in one call.": "modelMatchmaker.strengthsLabel.mit.description", -"The max no. of tokens generated in one call.": "modelMatchmaker.strengthsLabel.mot.description", -"Input Tokens Savings": "modelMatchmaker.strengthsLabel.ics.title", -"Input Cost/Million Tokens": "modelMatchmaker.strengthsLabel.ics.costTitle", -"The cost savings of generating input tokens.": "modelMatchmaker.strengthsLabel.ics.description", -"Output Tokens Savings": "modelMatchmaker.strengthsLabel.ocs.title", -"Output Cost/Million Tokens": "modelMatchmaker.strengthsLabel.ocs.costTitle", -"The cost savings of generating output tokens.": "modelMatchmaker.strengthsLabel.ocs.description", -"Normalized Score": "modelMatchmaker.normalizedScore", -"Reset Strengths": "modelMatchmaker.resetStrengths", -"@:save Strengths As @:preset": "modelMatchmaker.savePresetForm.title", -"Failed to save strengths preset.": "modelMatchmaker.savePresetForm.errorMessage.detail", -"Strengths preset saved.": "modelMatchmaker.savePresetForm.successMessage.detail", -"Strengths preset loaded.": "modelMatchmaker.savePresetForm.loadedMessage.detail", -"Failed to delete strengths preset.": "modelMatchmaker.deletePresetConfirm.errorMessage.detail", -"Strengths preset deleted.": "modelMatchmaker.deletePresetConfirm.successMessage.detail", -"Model Cost Calculator": "costCalculator.title", -"Calculate and compare costs for AI models from OpenAI, Anthropic, Google, and more. Estimate your expenses based on input/output token usage and model pricing. These are estimates only and actual costs may vary.": "costCalculator.description", -"Token Inputs": "costCalculator.tokenInputs", -"Filters": "costCalculator.filters", -"VRAM Calculator": "vramCalculator.title", -"Check to see if a model fits your device's VRAM before downloading or running it. This calculator provides estimated VRAM requirements based on model architecture and size. Select one of the options below to get started.": "vramCalculator.description", -"Copy {item} to Workspaces": "copyOrMoveItemToWorkspace.copyTitle", -"Copy/Move {item} to Workspaces": "copyOrMoveItemToWorkspace.copyOrMoveTitle", -"Action": "copyOrMoveItemToWorkspace.actionLabel", -"Copy {item} to one or more workspaces.": "copyOrMoveItemToWorkspace.inputLabel.copy", -"Copy/Move {item} to one or more workspaces.": "copyOrMoveItemToWorkspace.inputLabel.copyOrMove", -"{item} copied to {count} workspace | {item} copied to {count} workspaces": "copyOrMoveItemToWorkspace.successMessage.copyDetail", -"{item} moved to {count} workspace | {item} moved to {count} workspaces": "copyOrMoveItemToWorkspace.successMessage.moveDetail", -"Failed to copy {item} to {count} workspace | Failed to copy {item} to {count} workspaces": "copyOrMoveItemToWorkspace.errorMessage.copyDetail", -"Failed to move {item} to {count} workspace | Failed to move {item} to {count} workspaces": "copyOrMoveItemToWorkspace.errorMessage.moveDetail", -"Partially Copied": "copyOrMoveItemToWorkspace.partialCopyWarningMessage.summary", -"Could not copy {item} to {count} workspace | Could not copy {item} to {count} workspaces": "copyOrMoveItemToWorkspace.partialCopyWarningMessage.detail", -"Partially Moved": "copyOrMoveItemToWorkspace.partialMovedWarningMessage.summary", -"Could not move {item} to {count} workspace | Could not move {item} to {count} workspaces": "copyOrMoveItemToWorkspace.partialMovedWarningMessage.detail", -"Some workspaces({workspaces}) were skipped because {item} already exists in them": "copyOrMoveItemToWorkspace.existingCopiesInfo", -"Already existing copies of {item} will be skipped.": "copyOrMoveItemToWorkspace.skippingExistingCopies", -"Assignment | Assignments": "assignment", -"Model Squad": "modelSquad.title", -"@:modelSquad.title is a collection of specialized AI models, where each models is assigned to perform a specific task, such as Auto Title Generation, @:context Summary Generation, etc. When it's time to perform that specific task, the assigned model is selected automatically.": "modelSquad.description", -"Add New @:assignment": "modelSquad.addNewAssignment", -"No more tasks available": "modelSquad.noTask", -"Auto Title Generation": "modelSquad.tasks.autoTitleGeneration", -"@:contextShield.title Summary Generation": "modelSquad.tasks.contextShieldSummaryGeneration", -"@:rtd.title Prompt Synthesis": "modelSquad.tasks.realTimeDataPromptSynthesis", -"Forge Content Generation": "modelSquad.tasks.forgeContentGeneration", -"@:pii.scrubbing.title": "modelSquad.tasks.piiScrubbing", -"Icon Finder": "modelSquad.tasks.iconFinder", -"@:assignment saved": "modelSquad.save.successMessage.detail", -"@:assignment failed to save": "modelSquad.save.errorMessage.detail", -"Assign Model for {task}": "modelSquad.assignment.dialog.title", -"Select a model to assign to the {task} task in ModelSquad.": "modelSquad.assignment.dialog.description", -"Select Model": "modelSquad.assignment.dialog.selectModel", -"Choose a model...": "modelSquad.assignment.dialog.selectModelPlaceholder", -"Currently assigned: {model}": "modelSquad.assignment.dialog.currentlyAssigned", -"Unknown model": "modelSquad.assignment.dialog.unknownModel", -"Assign Model": "modelSquad.assignment.dialog.assignButton", -"Change Model": "modelSquad.assignment.dialog.changeButton", -"This model will be used automatically when the {task} task is performed.": "modelSquad.assignment.dialog.helpText", -"Model assigned to {task} successfully!": "modelSquad.assignment.success", -"Please select a model to assign.": "modelSquad.assignment.errors.noModelSelected", -"Failed to save model assignment. Please try again.": "modelSquad.assignment.errors.saveFailed", -"PII (Personally Identifiable Information)": "pii.title", -"PII Scrubbing": "pii.scrubbing.title", -"Automatically detect and remove personally identifiable information from Knowledge Stack content before displaying it in conversations.": "pii.scrubbing.description", -"Using {model} for PII detection and removal.": "pii.scrubbing.info.modelAssigned", -"No model assigned for @:pii.scrubbing.title in ModelSquad. Knowledge Stack retrieval will fail until a model is assigned.": "pii.scrubbing.warning.noModel", -"@:pii.scrubbing.title configuration error - aborting Knowledge Stack retrieval for security": "pii.scrubbing.warning.configurationError", -"Error setting up @:pii.scrubbing.title - aborting Knowledge Stack retrieval": "pii.scrubbing.warning.setupError", -"[PERSON_NAME]": "pii.scrubbing.placeholders.personName", -"[EMAIL_ADDRESS]": "pii.scrubbing.placeholders.emailAddress", -"[PHONE_NUMBER]": "pii.scrubbing.placeholders.phoneNumber", -"[ADDRESS]": "pii.scrubbing.placeholders.address", -"[ID_NUMBER]": "pii.scrubbing.placeholders.idNumber", -"[CREDIT_CARD]": "pii.scrubbing.placeholders.creditCard", -"[BANK_ACCOUNT]": "pii.scrubbing.placeholders.bankAccount", -"[IP_ADDRESS]": "pii.scrubbing.placeholders.ipAddress", -"[DATE_OF_BIRTH]": "pii.scrubbing.placeholders.dateOfBirth", -"Personal Identifiers": "pii.scrubbing.categories.personalIdentifiers", -"Contact Information": "pii.scrubbing.categories.contactInformation", -"Financial Information": "pii.scrubbing.categories.financialInformation", -"Medical Information": "pii.scrubbing.categories.medicalInformation", -"Digital Identifiers": "pii.scrubbing.categories.digitalIdentifiers", -"Biometric Data": "pii.scrubbing.categories.biometricData", -"Location Data": "pii.scrubbing.categories.locationData", -"Persona | Personas": "persona.title", -"New @:persona.title": "persona.newPersona", -"Active @:persona.title": "persona.activePersona", -"No @:persona.title Available.": "persona.empty.title", -"Get started by adding or importing a new @:persona.title{'.'} You can also import default Personas to get started.": "persona.empty.description", -"@:contextShield.title Position": "persona.contextShieldPosition", -"@:persona.title saved": "persona.save.successMessage.detail", -"@:persona.title failed to save": "persona.save.errorMessage.detail", -"@:persona.title updated": "persona.update.successMessage.detail", -"Could not update @:persona.title": "persona.update.errorMessage.detail", -"Delete Selected @:persona.title": "persona.delete.selected", -"Delete @:persona.title": "persona.delete.deleteConfirmation.header", -"Are you sure you want to delete {personaName}? | Are you sure you want to delete {count} @:persona.title{'?'}": "persona.delete.deleteConfirmation.description", -"@:persona.title deleted | @:persona.title deleted": "persona.delete.successMessage.detail", -"Could not delete @:persona.title | Could not delete @:persona.title": "persona.delete.errorMessage.detail", -"Import @:persona.title": "persona.import.title", -"Drag and drop a zipped Msty @:persona.title to import and create new Personas. In case of duplicate names, the imported Personas will be renamed. You can change it later.": "persona.import.dragAndDropMessage", -"Personas imported": "persona.import.successMessage.detail", -"Failed to import Personas": "persona.import.errorMessage.detail", -"Export @:persona.title": "persona.export.title", -"Export Selected @:persona.title | Export Selected @:persona.title": "persona.export.selected", -"@:persona.title exported as {fileName} | @:persona.title exported as {fileName}": "persona.export.successMessage.detail", -"Failed to export @:persona.title | Failed to export @:persona.title": "persona.export.errorMessage.detail", -"New Folder at Root": "persona.createRootFolder", -"Set as Default Folder": "persona.setDefaultFolder", -"Unset Default Folder": "persona.unsetDefaultFolder", -"@:folder updated": "persona.folderForm.updateSuccessMessage.detail", -"Failed to update @:folder": "persona.folderForm.updateErrorMessage.detail", -"@:folder created": "persona.folderForm.createSuccessMessage.detail", -"Failed to create @:folder": "persona.folderForm.createErrorMessage.detail", -"Delete @:folder": "persona.folderForm.deleteConfirmation.header", -"Are you sure you want to delete {folderName} with all its @:persona.title{'?'}": "persona.folderForm.deleteConfirmation.message", -"@:folder deleted": "persona.folderForm.deleteConfirmation.successMessage.detail", -"Failed to delete @:folder": "persona.folderForm.deleteConfirmation.errorMessage.detail", -"@:select a @:persona.title": "persona.selectPlaceholder", -"Turn Auto Responder On": "persona.autoResponder.turnOn", -"Turn Auto Responder Off": "persona.autoResponder.turnOff", -"Hide and Isolate System Prompt": "persona.hideAndIsolateSystemPrompt", -"Isolate Response": "persona.isolateResponse", -"Auto Responder": "persona.autoResponderDefault", -"Context Count": "persona.contextMessageCount.title", -"Set the number of recent messages to use as context for the @:persona.title{'.'}": "persona.contextMessageCount.description", -"Few-Shot Prompts": "fewShotPrompts.title", -"Few-shot learning is a machine learning technique that allows you to train a model with a small amount of data. You can use few-shot prompts to provide examples to the model to help it understand the context and generate better responses.": "fewShotPrompts.description", -"Add New Shot": "fewShotPrompts.addNewShot", -"Cost": "cost", -"Cost in USD": "costInUSD", -"Prompt Tokens": "promptTokens", -"Completion Tokens": "completionTokens", -"Total Tokens": "totalTokens", -"Usage": "usage", -"Tokens": "tokens", -"Tokens Processed": "tokensProcessed", -"@:select a provider | @:select providers": "selectProvider", -"Tokens Processed for {provider}": "tokensProcessedForProvider", -"Total Usage": "totalUsage", -"From {from} to {to}": "fromTo", -"Crunching the numbers": "crunchingTheNumbers", -"Throughput for {model}": "throughputForModel.title", -"Measured in tokens per second": "throughputForModel.unit.description", -"Latency for {model}": "latencyForModel.title", -"Measured in seconds": "latencyForModel.unit.description", -"Total": "total", -"Min": "min", -"Max": "max", -"Avg": "avg", -"Today": "dates.today", -"Last 7 days": "dates.last7Days", -"Last 14 days": "dates.last14Days", -"Last 30 days": "dates.last30Days", -"Last 3 months": "dates.last3Months", -"Last 6 months": "dates.last6Months", -"Last 12 months": "dates.last12Months", -"Month to date": "dates.monthToDate", -"Year to date": "dates.yearToDate", -"All time": "dates.allTime", -"@:select date range": "dates.selectDateRange", -"Month": "dates.month", -"Year": "dates.year", -"Day": "dates.day", -"Week": "dates.week", -"Insights Summary": "insightsSummary.emptyState.title", -"No data available for the selected date range and providers.": "insightsSummary.emptyState.description", -"No data available for the selected date range and provider.": "insightsProviderTokensProcessed.emptyState.description", -"Throughput": "insightsProviderThroughput.emptyState.title", -"No data available for the selected date range, provider and model.": "insightsProviderThroughput.emptyState.description", -"Latency": "insightsProviderLatency.emptyState.title", -"Hide {item}": "hideItem.action", -"{item} has been hidden": "hideItem.successMessage.detail", -"Unable to hide {item}": "hideItem.errorMessage.detail", -"Unhide Parent {item}": "hideItem.unhideParent", -"Hidden Parent Content. Click to unhide.": "hideItem.hiddenParentContentTitle", -"Show {item}": "showItem.action", -"Failed to verify license. Please try again.": "licenseVerification.errorMessage", -"Enter Aurum License Key": "licenseVerification.enterLicenseKey", -"You are using the {licenseType} license.": "licenseVerification.licenseTypeInfo", -"License Key": "licenseVerification.licenseKey", -"Logout": "licenseVerification.logout", -"You are using the {licenseType} license and logged in as Owner.": "licenseVerification.licenseTypeInfoForAdmin", -"Activate Aurum License": "aurum.activateLicense", -"Enter your license key to unlock premium features": "aurum.activateLicenseDescription", -"Manage License": "aurum.manageLicense", -"Aurum Lifetime": "aurum.lifetimeLicense", -"One-time purchase with lifetime access to premium features": "aurum.lifetimeLicenseDescription", -"Aurum Annual": "aurum.annualLicense", -"Yearly subscription with continuous updates and premium features": "aurum.annualLicenseDescription", -"One-time purchase": "aurum.oneTimePurchase", -"Yearly subscription": "aurum.yearlySubscription", -"Verify & Activate": "aurum.verifyAndActivate", -"Deactivate License": "aurum.deactivateLicense", -"Licensed to": "aurum.licensedTo", -"Expires on": "aurum.expiresOn", -"Expired": "aurum.expired", -"Expires in {days} days": "aurum.expiresInDays", -"Need a license?": "aurum.needLicense", -"Purchase at msty.ai": "aurum.purchaseLicense", -"Already have a license?": "aurum.hasLicense", -"Manage Activation": "aurum.manageActivation", -"{item} has been cloned": "cloneItem.successMessage.detail", -"Unable to clone {item}": "cloneItem.errorMessage.detail", -"Clone to {item}": "cloneItemTo.action", -"Successfully cloned to a new {item} ": "cloneItemTo.successMessage.detail", -"Unable to clone to a new {item}": "cloneItemTo.errorMessage.detail", -"Import {item} from JSON Clipboard": "importJson.clipboardTitle", -"Import {item} from JSON File": "importJson.fileTitle", -"{count} {item} imported successfully": "importJson.successMessage.detail", -"@:importJson.successMessage.detail {item} to {destination}": "importJson.successMessage.detailDestination", -"{count} {item} imported successfully and corresponding toolsets auto-created": "importJson.successMessageWithToolsets.detail", -"Invalid config or nothing to import. Please make sure the JSON is valid and try again.": "importJson.invalidConfig.detail", -"Failed to import. Please check the JSON and try again.": "importJson.errorMessage.detail", -"Failed to import {failed} items: {items}": "importJson.partialError.detail", -"Drag and drop a JSON file to import {item}.": "importJson.dragAndDropMessage", -"Team | Teams": "team.label", -"@:create @:team.label": "team.createTeam", -"Invite User": "team.inviteUserLabel", -"Overview": "team.overview", -"Users": "team.usersLabel", -"All Teams": "team.allTeamLabel", -"Team {teamName} successfully created.": "team.createSuccess", -"Member|Members": "team.member", -"All Users": "team.allUsers", -"Create New Team": "team.addTeamFormHeader", -"Edit Team": "team.updateTeamFormHeader", -"Add Users": "team.addUsers", -"Update Users": "team.updateUsers", -"Add Users to Team": "team.addUserToTeam", -"Team Name": "team.teamNameLabel", -"Enter the new team name": "team.teamNamePlaceholder", -"Create a new team to manage resources.": "team.addTeamDescription", -"No users assigned to this team.": "team.noUserInTeam", -"Invited": "team.invited", -"Manage your teams and users.": "team.shortDescription", -"A team is used to manage resources. You can add users to the team to collaborate and share access to resources.": "team.empty.description", -"Delete Team": "team.deleteConfirmation.header", -"Are you sure you want to delete": "team.deleteConfirmation.message", -"Please type {name} to confirm deletion.": "team.deleteConfirmation.inputPlaceholder", -"Policy | Policies": "team.policies.title", -"@:toolbox.title": "team.policies.toolbox.title", -"Allow user to use Toolbox feature": "team.policies.toolbox.description", -"@:promptsLibrary.title": "team.policies.promptsLibrary.title", -"Allow user to use Prompts Library feature": "team.policies.promptsLibrary.description", -"@:persona.title": "team.policies.persona.title", -"Allow user to use Persona feature": "team.policies.persona.description", -"@:turnstile.title": "team.policies.turnstile.title", -"Allow user to use Turnstile feature": "team.policies.turnstile.description", -"@:knowledgeStack.title": "team.policies.knowledgeStack.title", -"Allow user to use Knowledge Stack feature": "team.policies.knowledgeStack.description", -"Allow user to use @:remoteToolsConnector.title feature": "team.policies.remoteToolsConnector.description", -"@:rtd.title": "team.policies.rtd.title", -"Allow user to use @:rtd.title feature": "team.policies.rtd.description", -"@:attachments.title": "team.policies.attachments.title", -"Allow user to use @:attachments.title feature": "team.policies.attachments.description", -"@:forge.forgeMode.title": "team.policies.forgeMode.title", -"Allow user to use @:forge.forgeMode.title feature": "team.policies.forgeMode.description", -"@:insights": "team.policies.insights.title", -"Allow user to use @:insights feature": "team.policies.insights.description", -"Msty Studio Web Access": "team.policies.platformWeb.title", -"Allow user to access Msty Studio from web browser": "team.policies.platformWeb.description", -"Msty Studio Desktop Access": "team.policies.platformDesktop.title", -"Allow user to access Msty Studio from desktop application": "team.policies.platformDesktop.description", -"Platform Access": "team.policies.platformAccess", -"Manage access to specific model providers.": "team.policies.modelHub.description", -"You have reached your limit to invite users.": "team.user.noAvailableSeats", -"Logged In As": "team.user.licenceAndAccess.loggedInAsLabel", -"A secure login link will be sent to the provided email address. Aurum license holders must verify their license key before using this feature.": "team.user.licenceAndAccess.useSignInWithEmail", -"continue with License Key": "team.user.licenceAndAccess.continueWithlicenseLabel", -"Send Login Link": "team.user.licenceAndAccess.sendLoginLink", -"Team Users": "team.user.teamUserFormHeader", -"Verifying you request to access. Please wait": "team.user.invitationVerification.inProgress", -"You have been invited to join an account on Msty Studio. ": "team.user.invitationVerification.info", -"Something went wrong, please contact you account Admin.": "team.user.invitationVerification.error", -"A login link will be sent to the email provided above.": "team.user.invitationInfo", -"User {email} invited.": "team.user.invitation.successMessage.detail", -"@:invalid @:email": "team.user.invitation.invalidEmail", -"User already exists": "team.user.invitation.errorMessageUserExist", -"Failed to invite {email}.": "team.user.invitation.errorMessage.detail", -"Unable to load users list": "team.user.fetch.errorMessage.detail", -"User {email} delete successfully.": "team.user.delete.successMessage.detail", -"Unable to delete user {email}": "team.user.delete.errorMessage.detail", -"Delete User": "team.user.deleteConfirmation.header", -"Are you sure you want to delete {email}?": "team.user.deleteConfirmation.message", -"Assign users to team {teamName}": "team.user.assignUserToTeamLabel", -"Successfully assigned {user} to team {teamName}": "team.user.assignUserToTeamSuccess", -"Remove user from team": "team.user.unassignUserToTeamLabel", -"Drop {user} from team {teamName}": "team.user.unassignUserToTeamMessage", -"@:select users to add": "team.user.selectUserToAddToTeamPlaceholder", -"Update {item}": "updateItem.action", -"Edit {item}": "updateItem.editAction", -"{item} has been updated": "updateItem.successMessage.detail", -"Unable to update {item}": "updateItem.errorMessage.detail", -"Tools": "modelPurpose.tools", -"Vision": "modelPurpose.vision", -"Embedding": "modelPurpose.embedding", -"Image": "modelPurpose.image", -"Thinking": "modelPurpose.thinking", -"Label": "editModel.inputLabels.label", -"@:select an @:environment.title": "environment.selectPlaceholder", -"New @:environment.title": "environment.new", -"Environment | Environments": "environment.title", -"Add new environments to get started.": "environment.empty.description", -"@:environment.title saved": "environment.save.successMessage.detail", -"@:environment.title failed to save": "environment.save.errorMessage.detail", -"@:delete @:environment.title | Delete @:environment.title": "environment.delete.title", -"@:delete Selected @:environment.title | Delete Selected @:environment.title": "environment.delete.selected", -"@:delete @:environment.title": "environment.delete.deleteConfirmation.header", -"Are you sure you want to delete {environmentName}? | Are you sure you want to delete {count} environments?": "environment.delete.deleteConfirmation.description", -"@:environment.title deleted | @:environment.title deleted": "environment.delete.successMessage.detail", -"Could not delete @:environment.title | Could not delete @:environment.title": "environment.delete.errorMessage.detail", -"Backup @:environment.title": "environment.backup.title", -"@:environment.title backed up": "environment.backup.successMessage.detail", -"Failed to backup @:environment.title": "environment.backup.errorMessage.detail", -"Restore @:environment.title": "environment.restore.title", -"Drag and drop a Msty Environment file to restore Environments. Note: All existing environments will be deleted and replaced with the imported ones.": "environment.restore.dragAndDropMessage", -"@:environment.title restored": "environment.restore.successMessage.detail", -"Failed to restore @:environment.title": "environment.restore.errorMessage.detail", -"Quick @:select Environment Variable": "environment.quickSelect.title", -"Search or select a variable to copy it to the clipboard": "environment.quickSelect.selectPlaceholder", -"Make Active {itemType}": "makeActive.title", -"Active {itemType}": "makeActive.isActive", -"{itemName} is now the active {itemType}": "makeActive.successMessage.detail", -"Failed to make {itemName} as the active {itemType}": "makeActive.errorMessage.detail", -"Move {item}": "moveItem.action", -"Move {count} {sourceType} to {item}": "moveItem.moveLocation", -"Are you sure you want to move the selected {item}?": "moveItem.confirmation.message", -"{item} has been moved | {item} have been moved": "moveItem.successMessage.detail", -"Unable to move {item}": "moveItem.errorMessage.detail", -"Could not determine the target project.": "moveItem.cannotDetermineTargetProject", -"Could not determine the target folder.": "moveItem.cannotDetermineTargetFolder", -"{item} has been deleted": "deleteItem.successMessage.detail", -"Unable to delete {item}": "deleteItem.errorMessage.detail", -"@:prompts Library": "promptsLibrary.title", -"New @:prompt": "promptsLibrary.newPrompt", -"@:search.label @:prompt": "promptsLibrary.search", -"Quick @:prompt": "promptsLibrary.quickPrompt", -"Save to Quick @:prompts": "promptsLibrary.saveToQuickPrompts", -"Copy @:prompt to Clipboard": "promptsLibrary.copyPrompt", -"Type / to search the @:promptsLibrary.title": "promptsLibrary.shortcutUsage", -"@:folder": "promptsLibrary.folder", -"@:prompt": "promptsLibrary.prompt", -"Delete all @:prompt and @:folders": "promptsLibrary.deleteAllPrompt.title", -"This will clear entire @:promptsLibrary.title and @:folder@:folders. There is no way to recover them after deletion.": "promptsLibrary.deleteAllPrompt.description", -"All @:prompt deleted": "promptsLibrary.deleteAllPrompt.successMessage.detail", -"Get started by adding or importing a new @:prompt{'.'} You can also import default @:prompts to get started.": "promptsLibrary.empty.description", -"Import Default @:prompts": "promptsLibrary.import.title", -"You can now use the imported prompts in your conversations.": "promptsLibrary.import.successMessage.detail", -"Copy {count} @:prompts to clipboard": "promptsLibrary.import.copyMultiplePrompts", -"Failed to import default @:prompts": "promptsLibrary.import.errorMessage.detail", -"Failed to copy @:prompt{'.'} Please try again.": "promptsLibrary.import.copyErrorMessage.detail", -"Are you sure you want to delete {folderName} with all its sub-folders and prompts?": "promptsLibrary.folderForm.deleteConfirmation.message", -"Add New @:prompt": "promptsLibrary.promptForm.addTitle", -"Edit @:prompt": "promptsLibrary.promptForm.editTitle", -"@:prompt Name": "promptsLibrary.promptForm.promptName", -"@:description": "promptsLibrary.promptForm.promptDescription", -"@:prompt updated": "promptsLibrary.promptForm.updateSuccessMessage.detail", -"Failed to update @:prompt": "promptsLibrary.promptForm.updateErrorMessage.detail", -"@:prompt created": "promptsLibrary.promptForm.createSuccessMessage.detail", -"Failed to create @:prompt": "promptsLibrary.promptForm.createErrorMessage.detail", -"Delete {count} @:prompt": "promptsLibrary.promptForm.deleteConfirmation.header", -"Are you sure you want to delete?": "promptsLibrary.promptForm.deleteConfirmation.message", -"@:prompt deleted": "promptsLibrary.promptForm.deleteConfirmation.successMessage.detail", -"Failed to delete @:prompt": "promptsLibrary.promptForm.deleteConfirmation.errorMessage.detail", -"Import Default {item}": "importDefault.title", -"Default {item} imported": "importDefault.successMessage.detail", -"Failed to import default {item}": "importDefault.errorMessage.detail", -"Isolate @:context": "contextIsolation.isolate", -"Remove @:context Isolation": "contextIsolation.unIsolate", -"Isolated @:context": "contextIsolation.label", -"Clear All @:context Isolations": "contextIsolation.clearAll.title", -"All @:context Isolations cleared": "contextIsolation.clearAll.successMessage.detail", -"Response Metrics": "responseMetrics.title", -"Long press or Alt click to cycle metrics": "responseMetrics.longPressOrAltClickToCycle", -"Quick View": "quickView", -"Details View": "detailsView", -"Input | Inputs": "input", -"Output | Outputs": "output", -"Think": "think", -"The model performed internal thinking but didn’t return a summary. To enable thinking summaries, apply the 'Thinking' tag to this model by clicking on the edit icon next to the model selection.": "reasoning.emptyNotice", -"Service | Services": "service", -"@:localAI @:service": "localAIService", -"Version | Versions": "version", -"Invalid config. Please enter a valid JSON object.": "invalidConfig", -"Unsaved Changes": "unsavedChanges", -"Day | Days": "day", -"Every": "every", -"Files": "files", -"File | @:files": "file", -"Really Delete?": "reallyDelete", -"Similarity": "similarity", -"Save as Draft": "saveAsDraft", -"Compose": "compose", -"Embedding Model": "embeddingModel", -"Document | Documents": "document", -"Matched": "matched", -"@:folder Name": "folderName", -"Add New @:folder": "addNewFolder", -"Edit @:folder": "editFolder", -"An error occurred. Please try again later. Check logs for more details.": "errorGeneric", -"Models Path": "sharedService.modelsPath.title", -"This is where {service} downloads and looks for models. You can update the path to use a custom folder.": "sharedService.modelsPath.description", -"Edit Models Path": "sharedService.modelsPath.edit.title", -"Set your preferred location.": "sharedService.modelsPath.edit.description", -"Note: Changing the models path will restart the {service} for the changes to take effect.": "sharedService.modelsPath.edit.willRestartWarning", -"Select Models Path": "sharedService.modelsPath.edit.selectModelsPath", -"Models path updated": "sharedService.modelsPath.edit.successMessage.detail", -"Failed to update models path": "sharedService.modelsPath.edit.errorMessage.detail", -"Give your system prompt a short title. It will be added to Quick Prompts for easy reuse.": "sharedService.quickPromptDialog.description", -"Quick @:prompt Name": "sharedService.quickPromptDialog.nameLabel", -"System prompt saved to Quick Prompts.": "sharedService.quickPromptDialog.successMessage", -"Failed to save system prompt to Quick Prompts.": "sharedService.quickPromptDialog.errorMessage", -"Add some system prompt text before saving to Quick Prompts.": "sharedService.quickPromptDialog.emptyPromptMessage", -"Service Health": "sharedService.serviceHealth.title", -"Status of the {service}. Having trouble? Try restarting or reviewing the logs.": "sharedService.serviceHealth.description", -"Restart Service": "sharedService.serviceHealth.serviceAction.restartService", -"Stop Service": "sharedService.serviceHealth.serviceAction.stopService", -"Start Service": "sharedService.serviceHealth.serviceAction.startService", -"Failed to perform {action} on {service}. Please check the logs for more details.": "sharedService.serviceHealth.serviceAction.errorMessage.detail", -"{service} Restarted": "sharedService.serviceHealth.serviceAction.restartSuccessMessage.detail", -"Running": "sharedService.serviceHealth.serviceStatus.running", -"Stopped": "sharedService.serviceHealth.serviceStatus.stopped", -"Service Endpoint | Service Endpoints": "sharedService.serviceEndpoint.title", -"Local endpoint for {service}. Use this to connect from other applications running locally on device.": "sharedService.serviceEndpoint.description.base", -"Once the service is running, the address will be displayed here.": "sharedService.serviceEndpoint.description.serviceIsNotRunning", -"Because the service is available on the network, you can also connect to it using the Network Service URL from other devices.": "sharedService.serviceEndpoint.description.serviceIsAvailableOnNetwork", -"Copy Network URL": "sharedService.serviceEndpoint.copyNetworkURL", -"Service Version": "sharedService.serviceVersion.title", -"Shows the current version of {service}. To ensure optimal performance and access to new features, keep it up to date. Reinstallation is also available if needed.": "sharedService.serviceVersion.description", -"Force Update {service}": "sharedService.serviceVersion.forceUpdate.title", -"Force Update {service} (CPU)": "sharedService.serviceVersion.forceUpdate.forCpu", -"Force Update {service} (CUDA)": "sharedService.serviceVersion.forceUpdate.forCuda", -"Force Update {service} (CUDA 12.4)": "sharedService.serviceVersion.forceUpdate.forCuda124", -"Force Update {service} (CUDA 13.1)": "sharedService.serviceVersion.forceUpdate.forCuda131", -"Force Update {service} (Vulkan)": "sharedService.serviceVersion.forceUpdate.forVulkan", -"Force Update {service} (ROCm)": "sharedService.serviceVersion.forceUpdate.forRocm", -"Force Update {service} (OpenCL)": "sharedService.serviceVersion.forceUpdate.forOpencl", -"Force Update {service} (SYCL)": "sharedService.serviceVersion.forceUpdate.forSycl", -"{service} is updated to the latest version {version}": "sharedService.serviceVersion.forceUpdate.successMessage.detail", -"Failed to update {service}. Please check the logs for more details.": "sharedService.serviceVersion.forceUpdate.errorMessage.detail", -"Remove {service}": "sharedService.serviceVersion.removeService.title", -"Are you sure you want to remove {service}? This will delete the service binary and all its configurations. You can reinstall it later from the settings page.": "sharedService.serviceVersion.removeService.confirmationMessage", -"{service} has been removed successfully": "sharedService.serviceVersion.removeService.successMessage.detail", -"Failed to remove {service}. Please check the logs for more details.": "sharedService.serviceVersion.removeService.errorMessage.detail", -"These configurations are applied to the {service} when it starts. {service} will automatically restart after you save any changes.": "sharedService.serviceConfigurations.description", -"Allow other devices on your network to access this {service} through this device's IP address.": "sharedService.serviceConfigurations.enableNetworkAccess.description", -"Allow connections from Msty Studio Web to this app so it can access {service}.": "sharedService.serviceConfigurations.allowMstyStudioAccess.description", -"Capture Service Logs": "sharedService.serviceConfigurations.captureServiceLogs.title", -"You have unsaved changes in the {service} Configurations. Once you save, {service} will be restarted with the new configurations.": "sharedService.serviceConfigurations.unsavedChanges.message", -"{service} Configurations saved and service restarted": "sharedService.serviceConfigurations.unsavedChanges.successMessage.detail", -"Failed to save {service} Configurations. Please check the logs for more details.": "sharedService.serviceConfigurations.unsavedChanges.errorMessage.detail", -"Keyboard Shortcuts": "keyboardShortcuts.title", -"Customize keyboard shortcuts for quick access to features": "keyboardShortcuts.description", -"Search shortcuts...": "keyboardShortcuts.search", -"Search by shortcut": "keyboardShortcuts.searchByShortcut", -"Search by name": "keyboardShortcuts.searchByName", -"Press any key combination...": "keyboardShortcuts.pressShortcut", -"Press keys...": "keyboardShortcuts.pressKeys", -"Not set": "keyboardShortcuts.notSet", -"Edit shortcut": "keyboardShortcuts.edit", -"Global": "keyboardShortcuts.global", -"Shortcut saved": "keyboardShortcuts.saved", -"Error saving shortcut": "keyboardShortcuts.error", -"Shortcut reset": "keyboardShortcuts.reset", -"Reset to default": "keyboardShortcuts.resetToDefault", -"Reset all shortcuts": "keyboardShortcuts.resetAll", -"All shortcuts reset to defaults": "keyboardShortcuts.allReset", -"No shortcuts found": "keyboardShortcuts.noResults", -"Conflicts with: {name}": "keyboardShortcuts.conflictWith", -"Navigation": "keyboardShortcuts.categories.navigation", -"@:settings.appearance": "keyboardShortcuts.categories.appearance", -"Conversation": "keyboardShortcuts.categories.conversation", -"Reset All Shortcuts": "keyboardShortcuts.resetAllConfirm.title", -"Are you sure you want to reset all keyboard shortcuts to their default values?": "keyboardShortcuts.resetAllConfirm.message", -"Customize Shortcuts": "keyboardShortcuts.help.customizeButton", -"Contextual": "keyboardShortcuts.contextual", -"System Wide": "keyboardShortcuts.systemWide", -"Option key shortcuts work in Msty. If they produce special characters instead, check System Settings > Keyboard > Input Sources": "keyboardShortcuts.macOptionHint", -"Keyboard Shortcuts Example": "keyboardShortcuts.example.title", -"This component demonstrates how to register and use keyboard shortcuts in your components.": "keyboardShortcuts.example.description", -"Registered Shortcuts:": "keyboardShortcuts.example.registeredShortcuts", -"Example Action 1": "keyboardShortcuts.example.exampleAction1", -"Scoped Action": "keyboardShortcuts.example.scopedAction", -"Actions:": "keyboardShortcuts.example.actions", -"Update First Shortcut": "keyboardShortcuts.example.updateFirstShortcut", -"Test Conflict Detection": "keyboardShortcuts.example.testConflictDetection", -"Action Log:": "keyboardShortcuts.example.actionLog", -"No actions yet. Try pressing the shortcuts!": "keyboardShortcuts.example.noActionsYet", -"Developer Notes:": "keyboardShortcuts.example.developerNotes.title", -"Shortcuts are automatically cleaned up when the component unmounts": "keyboardShortcuts.example.developerNotes.items[0]", -"Use component-scoped shortcuts to avoid ID conflicts": "keyboardShortcuts.example.developerNotes.items[1]", -"Platform-specific bindings are handled automatically (Cmd on Mac, Ctrl on Windows)": "keyboardShortcuts.example.developerNotes.items[2]", -"Check for conflicts before registering shortcuts that might collide with existing ones": "keyboardShortcuts.example.developerNotes.items[3]", -"Shortcuts can be global (work everywhere) or context-specific": "keyboardShortcuts.example.developerNotes.items[4]", -"Select split to remove": "keyboardShortcuts.splitRemoval.selectSplitToRemove", -"Press": "keyboardShortcuts.splitRemoval.pressKeysToCancel", -"Create New": "createNew", -"Copy": "copy", -"No Messages Selected": "miniMapActions.noMessageSelectedWarning.summary", -"Select at least one message to perform any actions": "miniMapActions.noMessageSelectedWarning.detail", -"Export Message | Export Messages": "miniMapActions.exportOrCopyMessage.exportMessage", -"Copy Message | Copy Messages": "miniMapActions.exportOrCopyMessage.copyMessage", -"As JSON": "miniMapActions.exportOrCopyMessage.asJson", -"As Markdown": "miniMapActions.exportOrCopyMessage.asMarkdown", -"Successfully {action} messages as {format}": "miniMapActions.exportOrCopyMessage.successMessage", -"Re-index {item}": "reIndexItem.action", -"{item} re-indexed successfully": "reIndexItem.successMessage.detail", -"Failed to re-index {item}": "reIndexItem.errorMessage.detail", -"Are you sure you want to re-index {item}?": "reIndexItem.confirmationMessage", -"Recent|Recents": "recent", -"Recents & @:pinned": "recentsPinned", -"Knowledge Stack | Knowledge Stacks": "knowledgeStack.title", -"@:knowledgeStack.title Contexts": "knowledgeStack.contexts", -"Processing: {fileName}": "knowledgeStack.composeProgress.processing", -"Composing": "knowledgeStack.composeProgress.composing", -"Composing…": "knowledgeStack.composeProgress.composingEllipsis", -"YouTube": "knowledgeStack.composeProgress.youtube", -"Overall progress": "knowledgeStack.composeProgress.overallProgress", -"In-flight:": "knowledgeStack.composeProgress.inFlight", -"Ignored for retrieval": "knowledgeStack.itemStatus.ignoredForRetrieval", -"Importing folder: {name}": "knowledgeStack.cloudShare.importingFolder", -"Processing {count} knowledge stack(s)": "knowledgeStack.cloudShare.processingCount", -"Save Edits": "knowledgeStack.saveEdits.title", -"Save Edits and Mark as Draft": "knowledgeStack.saveEdits.confirmation.header", -"Are you sure you want to save your edits? This will mark the Knowledge Stack as a draft and prevent it from being used in production until processed again.": "knowledgeStack.saveEdits.confirmation.message", -"Choose where to import the @:knowledgeStack.title": "knowledgeStack.selectFolderForImport", -"New @:knowledgeStack.title": "knowledgeStack.newKnowledgeStack", -"Add description": "knowledgeStack.addDescription", -"Edit description": "knowledgeStack.editDescription", -"Add a description for this Knowledge Stack...": "knowledgeStack.descriptionPlaceholder", -"Saving...": "knowledgeStack.autoSaving", -"Saved {time}": "knowledgeStack.autoSaved", -"Basic Information": "knowledgeStack.basicInfo", -"@:similarity Threshold": "knowledgeStack.similarityThreshold", -"@:similarity Match": "knowledgeStack.similarityMatch", -"You have unsaved changes. Are you sure you want to leave this page? Your changes will be lost.": "knowledgeStack.unsavedChanges.confirmNavigation", -"You have unsaved changes that will be lost if you reload the page.": "knowledgeStack.unsavedChanges.confirmReload", -"No @:knowledgeStack.title selected": "knowledgeStack.empty.title", -"Knowledge Stack lets you bring in files, folders, notes, and YouTube transcripts, making them searchable and chat-ready through Retrieval-Augmented Generation (RAG)": "knowledgeStack.empty.description", -"Select a @:knowledgeStack.title": "knowledgeStack.selectOrCreate", -"Select a @:knowledgeStack.title from the tree or create a new one": "knowledgeStack.selectFromTreeOrCreate", -"Edit Ignore Rules": "knowledgeStack.folderForm.editIgnoreRules", -"Ignore Rules": "knowledgeStack.folderForm.editIgnoreRulesTitle", -"Define patterns to exclude files and folders from processing.": "knowledgeStack.folderForm.ignoreRulesDescription", -"Priority: Local .mstyignore/.gitignore → Folder rules → System defaults": "knowledgeStack.folderForm.ignoreRulesHierarchySimple", -"# Enter patterns here, one per line\n# Example: *.log, node_modules/, !important.txt": "knowledgeStack.folderForm.ignoreRulesPlaceholder", -"Show examples & help": "knowledgeStack.folderForm.showExamples", -"Log files": "knowledgeStack.folderForm.ignoreExample1", -"Temp files in all dirs": "knowledgeStack.folderForm.ignoreExample2", -"Entire directory": "knowledgeStack.folderForm.ignoreExample3", -"Exception pattern": "knowledgeStack.folderForm.ignoreExample4", -"Multiple image types": "knowledgeStack.folderForm.ignoreExample5", -"All files in test & subdirs": "knowledgeStack.folderForm.ignoreExample6", -"Case-insensitive match": "knowledgeStack.folderForm.ignoreExample7", -"Files starting with secret-": "knowledgeStack.folderForm.ignoreExample8", -"Use template": "knowledgeStack.folderForm.insertTemplate", -"Clear all": "knowledgeStack.folderForm.clearContent", -"Ignore rules updated successfully": "knowledgeStack.folderForm.ignoreRulesUpdated", -"Failed to update ignore rules": "knowledgeStack.folderForm.ignoreRulesUpdateError", -"Delete @:folder '{folderName}'": "knowledgeStack.folderForm.deleteConfirmation.header", -"Are you sure you want to delete this folder? All Knowledge Stacks inside it will be removed. There is no undo for this action.": "knowledgeStack.folderForm.deleteConfirmation.message", -"Add New @:knowledgeStack.title": "knowledgeStack.knowledgeStackForm.addTitle", -"Delete @:knowledgeStack.title": "knowledgeStack.knowledgeStackForm.deleteConfirmation.header", -"Are you sure you want to delete this Knowledge Stack? All items inside it will be removed. There is no undo for this action.": "knowledgeStack.knowledgeStackForm.deleteConfirmation.message", -"Delete All @:knowledgeStack.title": "knowledgeStack.deleteAllKnowledgeStack.title", -"This will clear entire @:knowledgeStack.title{'.'} There is no way to recover them after deletion.": "knowledgeStack.deleteAllKnowledgeStack.description", -"All @:knowledgeStack.title deleted": "knowledgeStack.deleteAllKnowledgeStack.successMessage.detail", -"Failed to delete all @:knowledgeStack.title": "knowledgeStack.deleteAllKnowledgeStack.errorMessage.detail", -"Chunk | @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.chunksConsole.chunk", -"Chunks": "knowledgeStack.chunksConsole.chunks", -"@:knowledgeStack.chunksConsole.chunks Console": "knowledgeStack.chunksConsole.title", -"Use this console to understand how your Knowledge Stack, { title }, is being used and what chunks are being sent to a model when chatting. You can also delete a chunk if you think it's not relevant or useful.": "knowledgeStack.chunksConsole.description", -"Query Text": "knowledgeStack.chunksConsole.queryText", -"@:similarity": "knowledgeStack.chunksConsole.similarityFilter.title", -"Highest": "knowledgeStack.chunksConsole.similarityFilter.highest", -"High": "knowledgeStack.chunksConsole.similarityFilter.high", -"Medium": "knowledgeStack.chunksConsole.similarityFilter.medium", -"Low": "knowledgeStack.chunksConsole.similarityFilter.low", -"# of @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.chunksConsole.matchCount", -"Source File": "knowledgeStack.chunksConsole.sourceFile", -"Source Note": "knowledgeStack.chunksConsole.sourceNote", -"Source Video": "knowledgeStack.chunksConsole.sourceVideo", -"Source": "knowledgeStack.chunksConsole.source", -"Score": "knowledgeStack.chunksConsole.score", -"Search Results": "knowledgeStack.chunksConsole.searchResults", -"No search results found. Try adjusting your query or search settings.": "knowledgeStack.chunksConsole.noResultsFound", -"No results match the current similarity filter. Try adjusting the filter to show more results.": "knowledgeStack.chunksConsole.noResultsAfterFilter", -"@:knowledgeStack.chunksConsole.chunk has been deleted": "knowledgeStack.chunksConsole.deleteChunk.successMessage.detail", -"Search Type": "knowledgeStack.chunksConsole.searchType.title", -"Hybrid Search": "knowledgeStack.chunksConsole.searchType.hybrid", -"Semantic Search": "knowledgeStack.chunksConsole.searchType.semantic", -"Keyword Search": "knowledgeStack.chunksConsole.searchType.keyword", -"This filter only affects which results are displayed below. It does not change the actual query.": "knowledgeStack.chunksConsole.filterDisclaimer", -"Content has been scrubbed for PII removal": "knowledgeStack.chunksConsole.tooltip.scrubbed", -"Used cached scrubbed version": "knowledgeStack.chunksConsole.tooltip.cached", -"Freshly scrubbed content": "knowledgeStack.chunksConsole.tooltip.fresh", -"Run Query": "knowledgeStack.chunksConsole.runQuery", -"{count} selected": "knowledgeStack.addon.selectedCount", -"Selected Stacks": "knowledgeStack.addon.selectedStacks", -"Search Knowledge Stacks...": "knowledgeStack.addon.searchPlaceholder", -"Recently Updated": "knowledgeStack.addon.recentlyUpdated", -"No Knowledge Stacks found": "knowledgeStack.addon.noResults", -"No Knowledge Stacks available": "knowledgeStack.addon.noStacks", -"No description": "knowledgeStack.addon.noDescription", -"Number of @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.addon.numberOfChunks", -"Synthesize Query": "knowledgeStack.addon.synthesizePrompt", -"Enable PII Scrubbing": "knowledgeStack.addon.enablePiiScrubbing", -"Max Full Content Contexts": "knowledgeStack.addon.fullContentContextLimit", -"Full Content Contexts can significantly increase token usage and may impact performance": "knowledgeStack.addon.fullContentContextWarning", -"Manage Stacks": "knowledgeStack.addon.manageStacks", -"Only completed stacks can be selected": "knowledgeStack.addon.onlyCompletedStacks", -"Total Files": "knowledgeStack.totalFiles", -"Vector Dimensions": "knowledgeStack.vectorDimensions", -"Word Count": "knowledgeStack.wordCount", -"Reading Time": "knowledgeStack.readingTime", -"No embedding model configured": "knowledgeStack.embeddingModel.noModel", -"Model {modelId} not found": "knowledgeStack.embeddingModel.modelMissing", -"Model provider was automatically remapped": "knowledgeStack.embeddingModel.providerRemapped", -"Change Query Embedding model": "knowledgeStack.embeddingModel.changeModel", -"Select Query Embedding Model": "knowledgeStack.embeddingModel.selectModel", -"The original embedding model for this Knowledge Stack is not available. Please select a new model.": "knowledgeStack.embeddingModel.missingModelWarning", -"The embedding model provider was automatically remapped to a compatible provider.": "knowledgeStack.embeddingModel.providerRemappedInfo", -"Current Model": "knowledgeStack.embeddingModel.currentModel", -"No model configured": "knowledgeStack.embeddingModel.noModelConfigured", -"Select New Model": "knowledgeStack.embeddingModel.selectNewModel", -"Default (Local)": "knowledgeStack.embeddingModel.defaultLocal", -"@:files": "knowledgeStack.buckets.files.title", -"Add .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx or any other supported file types.": "knowledgeStack.buckets.files.description", -"Drag and drop files here": "knowledgeStack.buckets.files.dropZoneText", -"Browse Files": "knowledgeStack.buckets.files.browseFiles", -"Drop files here": "knowledgeStack.buckets.files.dropHint", -"@:folders & Obsidian Vaults": "knowledgeStack.buckets.folders.title", -"Add folders containing files. You can drop Obsidian Vaults as well.": "knowledgeStack.buckets.folders.description", -"Drag and drop folders here": "knowledgeStack.buckets.folders.dropZoneText", -"Browse Folders": "knowledgeStack.buckets.folders.browseFolders", -"Live Mode": "knowledgeStack.buckets.folders.liveMode", -"Folders are monitored for changes and automatically update the Knowledge Stack": "knowledgeStack.buckets.folders.liveModeDescription", -"Duplicate Folder": "knowledgeStack.buckets.folders.duplicateFolder", -"Folder Already Added": "knowledgeStack.buckets.folders.alreadyAdded", -"This folder has already been added to the @:knowledgeStack.title": "knowledgeStack.buckets.folders.folderAlreadyExists", -"The folder '{path}' has already been added": "knowledgeStack.buckets.folders.folderAlreadyAdded", -"Folder Processed": "knowledgeStack.buckets.folders.folderProcessed", -"{count} files added successfully": "knowledgeStack.buckets.folders.filesAdded", -"Only folders can be added here. Please select a folder instead of individual files.": "knowledgeStack.buckets.folders.onlyFoldersAllowed", -"Select Folder": "knowledgeStack.buckets.folders.selectFolder", -"Please use the Browse button to select a folder in web mode": "knowledgeStack.buckets.folders.useDirectoryPicker", -"Processed": "knowledgeStack.buckets.folders.processed", -"Error Processing Folder": "knowledgeStack.buckets.folders.processingError", -"Folder Explorer": "knowledgeStack.buckets.folders.folderExplorer", -"Show Ignored Files": "knowledgeStack.buckets.folders.showIgnoredFiles", -"No folders added yet": "knowledgeStack.buckets.folders.noFolders", -"Failed to Load Folder": "knowledgeStack.buckets.folders.loadError", -"Folder Removed": "knowledgeStack.buckets.folders.removed", -"'{name}' has been removed from the Knowledge Stack": "knowledgeStack.buckets.folders.folderRemoved", -"Failed to Remove Folder": "knowledgeStack.buckets.folders.removeError", -"Ignored": "knowledgeStack.buckets.folders.ignored", -"Loading...": "knowledgeStack.buckets.folders.loading", -"Loading folder contents...": "knowledgeStack.buckets.folders.loadingContents", -"Are you sure you want to remove \"{name}\" from this Knowledge Stack? The folder and its files will remain on your system.": "knowledgeStack.buckets.folders.confirmRemove", -"Expand folder": "knowledgeStack.buckets.folders.expandFolder", -"Collapse folder": "knowledgeStack.buckets.folders.collapseFolder", -"This folder is ignored based on .mstyignore or .gitignore rules": "knowledgeStack.buckets.folders.folderIgnored", -"This file is ignored based on .mstyignore or .gitignore rules": "knowledgeStack.buckets.folders.fileIgnored", -"Actions menu": "knowledgeStack.buckets.folders.actionMenu", -"Empty folder": "knowledgeStack.buckets.folders.emptyFolder", -"{count} item | {count} items": "knowledgeStack.buckets.folders.itemCount", -"{count} hidden item | {count} hidden items": "knowledgeStack.buckets.folders.hiddenItemCount", -"Obsidian Vaults": "knowledgeStack.buckets.obsidianVaults.title", -"Add Obsidian Vaults to your Knowledge Stack. Msty will index all the notes in the vault.": "knowledgeStack.buckets.obsidianVaults.description", -"Drag and drop Obsidian Vaults here": "knowledgeStack.buckets.obsidianVaults.dropZoneText", -"Browse Obsidian Vaults": "knowledgeStack.buckets.obsidianVaults.browseVaults", -"Add your own notes to the Knowledge Stack. These notes will be chunked and embedded for semantic search.": "knowledgeStack.buckets.notes.description", -"Add Note": "knowledgeStack.buckets.notes.addNote", -"Enter note title...": "knowledgeStack.buckets.notes.titlePlaceholder", -"Enter note content...": "knowledgeStack.buckets.notes.contentPlaceholder", -"No notes added yet. Click 'Add Note' to get started.": "knowledgeStack.buckets.notes.empty", -"Not saved yet": "knowledgeStack.buckets.notes.unsaved", -"Add YouTube video links to index their transcripts. Msty will fetch transcripts and make them searchable.": "knowledgeStack.buckets.youTubeLinks.description", -"Drag and drop YouTube links here or paste them below": "knowledgeStack.buckets.youTubeLinks.dropZoneText", -"Paste YouTube URLs here (space or comma separated)...": "knowledgeStack.buckets.youTubeLinks.inputPlaceholder", -"Paste YouTube URLs here ({count} detected) | Paste YouTube URLs here ({count} detected)": "knowledgeStack.buckets.youTubeLinks.inputPlaceholderWithDetected", -"Auto-pull detected URLs": "knowledgeStack.buckets.youTubeLinks.autoDetection", -"{count} URL detected | {count} URLs detected": "knowledgeStack.buckets.youTubeLinks.detectedCount", -"{count} YouTube URL detected but not pulled yet | {count} YouTube URLs detected but not pulled yet": "knowledgeStack.buckets.youTubeLinks.detectedUnpulledUrls", -"Mark for Reprocessing": "knowledgeStack.itemActions.markForReprocessing", -"Lock Temporarily": "knowledgeStack.itemActions.lockTemporary", -"Lock Permanently": "knowledgeStack.itemActions.lockPermanent", -"Ignore for Retrieval": "knowledgeStack.itemActions.ignoreRetrieval", -"Include in Retrieval": "knowledgeStack.itemActions.unignoreRetrieval", -"More actions": "knowledgeStack.itemActions.moreActions", -"Load Mode": "knowledgeStack.loadMode.title", -"Select Load Mode": "knowledgeStack.loadMode.dialogTitle", -"Distribution": "knowledgeStack.loadMode.distribution", -"Choose how this file should be loaded during Knowledge Stack composition.": "knowledgeStack.loadMode.dialogDescription", -"Static Files": "knowledgeStack.loadMode.staticFiles", -"Dynamic Files": "knowledgeStack.loadMode.dynamicFiles", -"Sync Files": "knowledgeStack.loadMode.syncFiles", -"Special Modes": "knowledgeStack.loadMode.specialModes", -"Special Modes Ratio": "knowledgeStack.loadMode.specialModesRatio", -"Static Mode": "knowledgeStack.loadMode.static.label", -"Uses the cached version from when the file was added. Fast and predictable, but doesn't reflect recent changes.": "knowledgeStack.loadMode.static.description", -"Cached content loaded from initial indexing": "knowledgeStack.loadMode.static.shortDescription", -"Dynamic Mode": "knowledgeStack.loadMode.dynamic.label", -"Loads the latest file content on each composition. Slightly slower but always up-to-date.": "knowledgeStack.loadMode.dynamic.description", -"Fresh content loaded on each composition": "knowledgeStack.loadMode.dynamic.shortDescription", -"Recommended": "knowledgeStack.loadMode.dynamic.badge", -"Sync Mode": "knowledgeStack.loadMode.sync.label", -"Watches for file changes and automatically recomposes. Best for small, frequently updated files.": "knowledgeStack.loadMode.sync.description", -"Auto-recomposes when files change": "knowledgeStack.loadMode.sync.shortDescription", -"Expensive": "knowledgeStack.loadMode.sync.badge", -"Start Sync Mode": "knowledgeStack.syncMode.start", -"Pause Sync Mode": "knowledgeStack.syncMode.pause", -"Pause All": "knowledgeStack.syncMode.pauseAll", -"Sync Mode Started": "knowledgeStack.syncMode.started", -"Now watching file changes for {name}": "knowledgeStack.syncMode.startedDetail", -"Sync Mode Paused": "knowledgeStack.syncMode.stopped", -"File watching has been paused": "knowledgeStack.syncMode.stoppedDetail", -"Failed to Start Sync Mode": "knowledgeStack.syncMode.startFailed", -"Please ensure the Knowledge Stack has files marked for Sync Mode": "knowledgeStack.syncMode.startFailedDetail", -"All Sync Modes Paused": "knowledgeStack.syncMode.allPaused", -"File watching has been stopped for all knowledge stacks": "knowledgeStack.syncMode.allPausedDetail", -"{count} Active | {count} Active": "knowledgeStack.syncMode.active", -"Active Sync Modes": "knowledgeStack.syncMode.activeTitle", -"{count} file | {count} files": "knowledgeStack.syncMode.filesWatching", -"Started {time}": "knowledgeStack.syncMode.startedTime", -"{stacks} stack, {files} files | {stacks} stacks, {files} files": "knowledgeStack.syncMode.totalStats", -"{hours}h ago": "knowledgeStack.syncMode.hoursAgo", -"{days}d ago": "knowledgeStack.syncMode.daysAgo", -"Analytics and Insights": "knowledgeStack.analytics.title", -"Last Composed": "knowledgeStack.analytics.lastComposed", -"Analytics Sections": "knowledgeStack.analytics.sections", -"Performance Timings": "knowledgeStack.analytics.performanceTimings", -"Summary Statistics": "knowledgeStack.analytics.summaryStatistics", -"Content Breakdown": "knowledgeStack.analytics.contentBreakdown", -"Query Settings": "knowledgeStack.analytics.querySettings", -"Reading Statistics": "knowledgeStack.analytics.readingStatistics", -"No Analytics Available": "knowledgeStack.analytics.noAnalyticsAvailable", -"Analytics will be available after composing this Knowledge Stack.": "knowledgeStack.analytics.noAnalyticsDescription", -"No Analytics Sections Selected": "knowledgeStack.analytics.noSectionsSelected", -"Please select one or more analytics sections above to view insights about your Knowledge Stack.": "knowledgeStack.analytics.noSectionsSelectedDescription", -"Select All Sections": "knowledgeStack.analytics.selectAllSections", -"Loading Items": "knowledgeStack.analytics.timings.loadingItems", -"Splitting @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.timings.splittingChunks", -"Embedding @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.timings.embeddingChunks", -"Composing Stack": "knowledgeStack.analytics.timings.composingStack", -"Total Time": "knowledgeStack.analytics.timings.totalTime", -"Some operations may run in parallel, so individual times may not sum to total time": "knowledgeStack.analytics.timings.parallelNote", -"File Reading": "knowledgeStack.analytics.timings.fileReading", -"Database Write": "knowledgeStack.analytics.timings.databaseWrite", -"# of Items": "knowledgeStack.analytics.stats.numberOfItems", -"Total @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.stats.totalChunks", -"Available @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.stats.availableChunks", -"Skipped @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.stats.skippedChunks", -"Character Count": "knowledgeStack.analytics.stats.characterCount", -"Ignored Items": "knowledgeStack.analytics.ignoredItems", -"Ignored for Retrieval": "knowledgeStack.analytics.ignoredForRetrieval", -"These items are excluded from search and retrieval operations": "knowledgeStack.analytics.ignoredItemsDescription", -"Percentage of items ignored": "knowledgeStack.analytics.ignoredPercentage", -"of {total}": "knowledgeStack.analytics.ofTotal", -"YouTube Videos": "knowledgeStack.analytics.youTubeLinks", -"No Ignored Items": "knowledgeStack.analytics.noIgnoredItems", -"All items in this Knowledge Stack are included in search and retrieval": "knowledgeStack.analytics.allItemsIncluded", -"Recommendation": "knowledgeStack.analytics.recommendation", -"FILES": "knowledgeStack.analytics.contentTypes.files", -"OBSIDIAN VAULTS": "knowledgeStack.analytics.contentTypes.obsidianVaults", -"FOLDERS": "knowledgeStack.analytics.contentTypes.folders", -"NOTES": "knowledgeStack.analytics.contentTypes.notes", -"YOUTUBE LINKS": "knowledgeStack.analytics.contentTypes.youTubeLinks", -"Scrubbed @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.piiScrubbing.scrubbedChunks", -"Cached @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.piiScrubbing.cachedChunks", -"Coverage": "knowledgeStack.analytics.piiScrubbing.coverage", -"Scrubbing Progress": "knowledgeStack.analytics.piiScrubbing.progress", -"Load Analytics": "knowledgeStack.analytics.piiScrubbing.loadAnalytics", -"Failed to load PII analytics data": "knowledgeStack.analytics.piiScrubbing.failedToLoadAnalytics", -"PII Analytics Not Loaded": "knowledgeStack.analytics.piiScrubbing.analyticsNotLoaded", -"Click \"Load Analytics\" to view PII scrubbing statistics": "knowledgeStack.analytics.piiScrubbing.clickToViewAnalytics", -"This score reflects how comprehensively PII scrubbing is applied to your Knowledge Stack. A higher score means more chunks have been processed for PII removal.": "knowledgeStack.analytics.piiScrubbing.scoreTooltip", -"PII scrubbing is optional. Enable it in query settings only if your content contains sensitive personal information.": "knowledgeStack.analytics.piiScrubbing.optionalDescription", -"Measures how well sensitive information is protected in your Knowledge Stack": "knowledgeStack.analytics.piiScrubbing.protectionDescription", -"Not Enabled": "knowledgeStack.analytics.piiScrubbing.status.notEnabled", -"Well Protected": "knowledgeStack.analytics.piiScrubbing.status.wellProtected", -"Partially Protected": "knowledgeStack.analytics.piiScrubbing.status.partiallyProtected", -"Limited Protection": "knowledgeStack.analytics.piiScrubbing.status.limitedProtection", -"Minimal Protection": "knowledgeStack.analytics.piiScrubbing.status.minimalProtection", -"Excellent privacy protection - nearly all content secured": "knowledgeStack.analytics.piiScrubbing.insights.excellentPrivacy", -"Good privacy protection - most content is secured": "knowledgeStack.analytics.piiScrubbing.insights.goodPrivacy", -"Partial privacy protection - consider reviewing settings": "knowledgeStack.analytics.piiScrubbing.insights.partialPrivacy", -"Limited privacy protection - review sensitive content": "knowledgeStack.analytics.piiScrubbing.insights.limitedPrivacy", -"PII scrubbing is not enabled. This is completely fine if your content doesn't contain sensitive personal information.": "knowledgeStack.analytics.piiScrubbing.insights.notEnabled", -"Consider enabling PII scrubbing only if your Knowledge Stack contains names, addresses, phone numbers, emails, or other personal data.": "knowledgeStack.analytics.piiScrubbing.insights.whenToEnable", -"Significant content reduction ({percentage}%) - extensive PII found": "knowledgeStack.analytics.piiScrubbing.insights.significantReduction", -"Moderate content reduction ({percentage}%) - some PII removed": "knowledgeStack.analytics.piiScrubbing.insights.moderateReduction", -"Minimal content reduction ({percentage}%) - low PII detected": "knowledgeStack.analytics.piiScrubbing.insights.minimalReduction", -"No content size change - no PII detected or removed": "knowledgeStack.analytics.piiScrubbing.insights.noContentChange", -"All chunks processed successfully": "knowledgeStack.analytics.piiScrubbing.insights.allChunksProcessed", -"Nearly all chunks processed successfully": "knowledgeStack.analytics.piiScrubbing.insights.nearlyAllProcessed", -"Most chunks processed - some may need attention": "knowledgeStack.analytics.piiScrubbing.insights.mostProcessed", -"Incomplete processing - check PII scrubbing configuration": "knowledgeStack.analytics.piiScrubbing.insights.incompleteProcessing", -"Large knowledge base - consider increasing PII detection coverage": "knowledgeStack.analytics.piiScrubbing.insights.largeKnowledgeBase", -"Many unprocessed chunks - review PII scrubbing settings": "knowledgeStack.analytics.piiScrubbing.insights.manyUnprocessed", -"PII scrubbing is optional. Enable it in query settings if your content contains sensitive information like names, emails, or phone numbers.": "knowledgeStack.analytics.piiScrubbing.insights.optionalFeature", -"PII scrubbing helps protect sensitive information. It's optional and can be enabled in query settings if needed.": "knowledgeStack.analytics.piiScrubbing.insights.privacyOption", -"Security Status": "knowledgeStack.analytics.piiScrubbing.labels.securityStatus", -"Privacy Status": "knowledgeStack.analytics.piiScrubbing.labels.privacyStatus", -"When to Enable": "knowledgeStack.analytics.piiScrubbing.labels.whenToEnable", -"Content Impact": "knowledgeStack.analytics.piiScrubbing.labels.contentImpact", -"Processing Efficiency": "knowledgeStack.analytics.piiScrubbing.labels.processingEfficiency", -"Scale Recommendation": "knowledgeStack.analytics.piiScrubbing.labels.scaleRecommendation", -"Coverage Recommendation": "knowledgeStack.analytics.piiScrubbing.labels.coverageRecommendation", -"Optional Feature": "knowledgeStack.analytics.piiScrubbing.labels.optionalFeature", -"Privacy Option": "knowledgeStack.analytics.piiScrubbing.labels.privacyOption", -"Prompt Prefix": "knowledgeStack.analytics.querySettingsDetails.promptPrefix", -"Privacy Optimization Score": "knowledgeStack.analytics.privacyOptimizationScore", -"PII Protection Level": "knowledgeStack.analytics.piiProtectionLevel", -"PII Scrubbing Status": "knowledgeStack.analytics.piiScrubbingStatus", -"Unscrubbed @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.analytics.unscrubbedChunks", -"Original Size": "knowledgeStack.analytics.originalSize", -"Processed Size": "knowledgeStack.analytics.processedSize", -"Size Reduction": "knowledgeStack.analytics.sizeReduction", -"Privacy @:insgiths": "knowledgeStack.analytics.privacyInsights", -"Data has been modified": "knowledgeStack.analytics.dataModified", -"Show outdated data anyway": "knowledgeStack.analytics.showOutdatedData", -"Content Distribution": "knowledgeStack.analytics.contentDistribution", -"{label} contribute {percentage}% of all chunks": "knowledgeStack.analytics.contentContribution", -"Processing Issue": "knowledgeStack.analytics.processingIssue", -"{label} have low efficiency ({efficiency}%)": "knowledgeStack.analytics.lowEfficiency", -"Data Quality Issue": "knowledgeStack.analytics.dataQualityIssue", -"{count} content type(s) have high skip rates": "knowledgeStack.analytics.highSkipRates", -"Content Diversity": "knowledgeStack.analytics.contentDiversity", -"Single content type - consider diversifying sources": "knowledgeStack.analytics.singleContentType", -"Excellent content diversity across multiple source types": "knowledgeStack.analytics.excellentDiversity", -"Optimization Tip": "knowledgeStack.analytics.optimizationTip", -"Reduce chunk size to 800-1200 characters for better content granularity": "knowledgeStack.analytics.reduceChunkSize", -"Increase chunk size to 1500-2000 characters for better efficiency": "knowledgeStack.analytics.increaseChunkSize", -"Embedding Throughput": "knowledgeStack.analytics.embeddingThroughput", -"{rate} chunks/sec ({time}ms each)": "knowledgeStack.analytics.chunksPerSecond", -"Search Strategy": "knowledgeStack.analytics.searchStrategy", -"Balanced approach combining keyword + semantic search": "knowledgeStack.analytics.balancedSearch", -"AI-powered semantic search - best for conceptual queries": "knowledgeStack.analytics.semanticSearch", -"Traditional keyword search - best for exact terms": "knowledgeStack.analytics.keywordSearch", -"Retrieval Volume": "knowledgeStack.analytics.retrievalVolume", -"Very low chunk count may miss relevant information": "knowledgeStack.analytics.lowChunkCount", -"High chunk count may include noise and slow responses": "knowledgeStack.analytics.highChunkCount", -"Optimal chunk count for balanced retrieval": "knowledgeStack.analytics.optimalChunkCount", -"Content Filtering": "knowledgeStack.analytics.contentFiltering", -"Relaxed filtering - may include loosely related content": "knowledgeStack.analytics.relaxedFiltering", -"Strict filtering - highly focused results": "knowledgeStack.analytics.strictFiltering", -"Balanced filtering for relevant content": "knowledgeStack.analytics.moderateFiltering", -"Guided Context": "knowledgeStack.analytics.guidedContext", -"Custom prompt prefix will guide query interpretation": "knowledgeStack.analytics.customPromptPrefix", -"Lock Indicator": "knowledgeStack.analytics.lockIndicator", -"All items can be reprocessed": "knowledgeStack.analytics.allItemsCanBeReprocessed", -"{percentage}% of items are locked": "knowledgeStack.analytics.itemsPartiallyLocked", -"Most items are locked - limited reprocessing capability": "knowledgeStack.analytics.mostItemsLocked", -"Privacy & Security": "knowledgeStack.analytics.privacySecurity", -"Privacy protection enabled for sensitive data": "knowledgeStack.analytics.privacyProtectionEnabled", -"No PII scrubbing - ensure content is not sensitive": "knowledgeStack.analytics.noPiiScrubbing", -"Scale Optimization": "knowledgeStack.analytics.scaleOptimization", -"Large knowledge base - increase chunk count for better coverage": "knowledgeStack.analytics.largeKnowledgeBase", -"Small knowledge base - consider reducing chunk count": "knowledgeStack.analytics.smallKnowledgeBase", -"Performance Profile": "knowledgeStack.analytics.performanceProfile", -"Configuration optimized for fast responses": "knowledgeStack.analytics.optimizedForSpeed", -"Configuration optimized for high-quality results": "knowledgeStack.analytics.optimizedForQuality", -"High Lock Rate": "knowledgeStack.analytics.highLockRate", -"{percentage}% of items are locked and won't be reprocessed": "knowledgeStack.analytics.lockedItemsPercentage", -"Consider unlocking temporarily locked items if they need updates": "knowledgeStack.analytics.unlockRecommendation", -"Over 50% of items are locked. This may significantly reduce the knowledge base's ability to stay updated.": "knowledgeStack.analytics.overHalfLocked", -"Lock Status": "knowledgeStack.analytics.lockStatus", -"Total Items": "knowledgeStack.analytics.totalItems", -"Temporarily Locked": "knowledgeStack.analytics.temporarilyLocked", -"Permanently Locked": "knowledgeStack.analytics.permanentlyLocked", -"Lock Status by Content Type": "knowledgeStack.analytics.lockStatusByContentType", -"Temp. Locked": "knowledgeStack.analytics.tempLocked", -"Perm. Locked": "knowledgeStack.analytics.permLocked", -"Lock Status @:insights": "knowledgeStack.analytics.lockStatusInsights", -"Content @:insights": "knowledgeStack.analytics.contentInsights", -"Composition Optimization Score": "knowledgeStack.analytics.compositionOptimizationScore", -"Composition @:insights": "knowledgeStack.analytics.compositionInsights", -"Performance @:insights": "knowledgeStack.analytics.performanceInsights", -"Processing Phase Details": "knowledgeStack.analytics.processingPhaseDetails", -"Total Processing Time": "knowledgeStack.analytics.totalProcessingTime", -"Total Locked Items": "knowledgeStack.analytics.totalLockedItems", -"Efficiency": "knowledgeStack.analytics.efficiency", -"Load Mode Analytics": "knowledgeStack.analytics.loadMode.title", -"File loading behavior across your Knowledge Stack": "knowledgeStack.analytics.loadMode.description", -"Load Mode Distribution": "knowledgeStack.analytics.loadMode.distribution", -"Special Modes %": "knowledgeStack.analytics.loadMode.specialModesRatio", -"Visual Breakdown": "knowledgeStack.analytics.loadMode.breakdown", -"No files in this Knowledge Stack": "knowledgeStack.analytics.loadMode.noFiles", -"Load Mode options are only available in the desktop application": "knowledgeStack.analytics.loadMode.desktopOnly", -"All files are using Static Mode. Enable Dynamic or Sync Mode for files to use the latest content.": "knowledgeStack.analytics.loadMode.noSpecialModes", -"Sync Mode Active": "knowledgeStack.analytics.loadMode.syncActive", -"Watching {files} • Started {time}": "knowledgeStack.analytics.loadMode.syncActiveDetails", -"Fresh": "knowledgeStack.analytics.loadMode.dynamicBadge", -"Live": "knowledgeStack.analytics.loadMode.syncBadge", -"High Sync File Count": "knowledgeStack.analytics.loadMode.insights.highSyncCount.title", -"{count} files are in Sync Mode": "knowledgeStack.analytics.loadMode.insights.highSyncCount.description", -"Consider using Dynamic Mode for less frequently updated files to reduce resource usage": "knowledgeStack.analytics.loadMode.insights.highSyncCount.recommendation", -"Sync Mode Enabled": "knowledgeStack.analytics.loadMode.insights.syncEnabled.title", -"{count} files are automatically updating when changed": "knowledgeStack.analytics.loadMode.insights.syncEnabled.description", -"High Dynamic Mode Usage": "knowledgeStack.analytics.loadMode.insights.highDynamicUsage.title", -"{percentage}% of files are using Dynamic Mode": "knowledgeStack.analytics.loadMode.insights.highDynamicUsage.description", -"Static Mode may be sufficient for files that rarely change": "knowledgeStack.analytics.loadMode.insights.highDynamicUsage.recommendation", -"Dynamic Mode Active": "knowledgeStack.analytics.loadMode.insights.dynamicEnabled.title", -"{count} files are loading fresh content on each composition": "knowledgeStack.analytics.loadMode.insights.dynamicEnabled.description", -"Static Mode Only": "knowledgeStack.analytics.loadMode.insights.staticOnly.title", -"All files are using cached content from initial indexing": "knowledgeStack.analytics.loadMode.insights.staticOnly.description", -"Enable Dynamic or Sync Mode for frequently updated files to ensure fresh content": "knowledgeStack.analytics.loadMode.insights.staticOnly.recommendation", -"Mixed Load Modes": "knowledgeStack.analytics.loadMode.insights.mixedModes.title", -"{percentage}% of files are using special load modes": "knowledgeStack.analytics.loadMode.insights.mixedModes.description", -"Compose Settings": "knowledgeStack.composeSettings.title", -"@:knowledgeStack.chunksConsole.chunk Overlapping": "knowledgeStack.composeSettings.chunkOverlapping", -"Changing the embedding model will require recomposing the entire Knowledge Stack and even then there is a chance that recomposition will fail.": "knowledgeStack.composeSettings.embeddingModel.warning", -"Learn more about embedding model compatibility": "knowledgeStack.composeSettings.embeddingModel.learnMore", -"Select an embedding model": "knowledgeStack.composeSettings.placeholders.selectEmbeddingModel", -"Select chunk overlapping": "knowledgeStack.composeSettings.placeholders.selectChunkOverlapping", -"Select chunk size": "knowledgeStack.composeSettings.placeholders.selectChunkSize", -"Chunking Method": "knowledgeStack.composeSettings.chunkingMethod.title", -"Recursive Character": "knowledgeStack.composeSettings.chunkingMethod.recursiveCharacter", -"Sentence": "knowledgeStack.composeSettings.chunkingMethod.sentence", -"Choose how documents should be chunked into smaller pieces for better search and retrieval.": "knowledgeStack.composeSettings.chunkingMethod.description", -"Overlapping": "knowledgeStack.composeSettings.overlapping.title", -"Choose how much overlap should be between chunks. Higher overlap can improve context but increase token usage.": "knowledgeStack.composeSettings.overlapping.description", -"@:knowledgeStack.chunksConsole.chunk Size": "knowledgeStack.composeSettings.chunkSize.title", -"Set the maximum size of each chunk in characters. Smaller chunks can improve search accuracy but increase token usage.": "knowledgeStack.composeSettings.chunkSize.description", -"@:knowledgeStack.chunksConsole.chunk Sizes To Ignore": "knowledgeStack.composeSettings.chunkSizesToIgnore.title", -"Specify chunk sizes that should be ignored during processing. Useful for excluding very small or very large chunks.": "knowledgeStack.composeSettings.chunkSizesToIgnore.description", -"Push Mode": "knowledgeStack.querySettings.modes.push", -"Pull Mode": "knowledgeStack.querySettings.modes.pull", -"Knowledge Stack Context": "knowledgeStack.querySettings.chunks.title", -"Failed to load Knowledge Stack chunks. Please try again.": "knowledgeStack.querySettings.chunks.loadError", -"Search Settings": "knowledgeStack.querySettings.chunks.searchSettings", -"Search Query": "knowledgeStack.querySettings.chunks.searchQuery", -"Content": "knowledgeStack.querySettings.chunks.content", -"Full Content": "knowledgeStack.querySettings.chunks.fullContent", -"@:knowledgeStack.chunksConsole.chunk Information": "knowledgeStack.querySettings.chunks.chunkInfo", -"Knowledge Stack": "knowledgeStack.querySettings.chunks.knowledgeStack", -"chunks": "knowledgeStack.querySettings.chunks.chunks", -"Max @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.querySettings.chunks.maxChunks", -"@:knowledgeStack.chunksConsole.chunk Retrieval Mode": "knowledgeStack.querySettings.retrievalMode.title", -"Choose between Push mode where chunks are pre-fetched, or Pull Mode where the model can query Knowledge Stacks directly": "knowledgeStack.querySettings.retrievalMode.description", -"@:knowledgeStack.chunksConsole.chunk Overlap": "knowledgeStack.chunks.chunkOverlap", -"Synthesized Query": "knowledgeStack.chunks.synthesizedQuery", -"chunk | chunks": "knowledgeStack.chunks.chunks", -"View Full Content": "knowledgeStack.chunks.viewFull", -"Full @:knowledgeStack.chunksConsole.chunk Content": "knowledgeStack.chunks.fullContent", -"Scrubbed": "knowledgeStack.chunks.scrubbed", -"Original": "knowledgeStack.chunks.original", -"@:knowledgeStack.chunksConsole.chunk ID": "knowledgeStack.chunks.chunkId", -"PII Status": "knowledgeStack.chunks.piiStatus", -"PII Scrubbed": "knowledgeStack.chunks.piiScrubbed", -"PII Un-scrubbed": "knowledgeStack.chunks.piiUnscrubbed", -"Original content without @:pii.scrubbing.title": "knowledgeStack.chunks.tooltip.original", -"Query Analysis": "knowledgeStack.chunks.queryAnalysis", -"Full Content Context Active": "knowledgeStack.chunks.fullContentRetrieved", -"Documents Retrieved": "knowledgeStack.chunks.documentsRetrieved", -"Content Context": "knowledgeStack.chunks.contentContext", -"Keywords": "knowledgeStack.chunks.keywords", -"Full Doc": "knowledgeStack.chunks.fullDoc", -"Full Document": "knowledgeStack.chunks.fullDocument", -"@:knowledgeStack.chunksConsole.chunks Visualizer": "knowledgeStack.chunksVisualizer.title", -"Visualize how documents are chunked": "knowledgeStack.chunksVisualizer.description", -"Open Visualizer": "knowledgeStack.chunksVisualizer.openStitcher", -"View Visualizer": "knowledgeStack.chunksVisualizer.viewStitcher", -"Available Files": "knowledgeStack.chunksVisualizer.stitchableFiles", -"Loading files...": "knowledgeStack.chunksVisualizer.loading", -"No files found": "knowledgeStack.chunksVisualizer.noFiles", -"Select a File": "knowledgeStack.chunksVisualizer.selectFile", -"Choose a file from the left to visualize its chunks and content": "knowledgeStack.chunksVisualizer.selectFileDescription", -"MIME Type": "knowledgeStack.chunksVisualizer.mimeType", -"@:knowledgeStack.chunksConsole.chunks": "knowledgeStack.chunksVisualizer.chunks", -"Overlaps": "knowledgeStack.chunksVisualizer.overlaps", -"Stitched Size": "knowledgeStack.chunksVisualizer.stitchedSize", -"Show Overlaps": "knowledgeStack.chunksVisualizer.showOverlaps", -"Hide Overlaps": "knowledgeStack.chunksVisualizer.hideOverlaps", -"Show @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.chunksVisualizer.showChunks", -"Show Stitched": "knowledgeStack.chunksVisualizer.showStitched", -"Copy Content": "knowledgeStack.chunksVisualizer.copyContent", -"Stitched Content": "knowledgeStack.chunksVisualizer.stitchedContent", -"Un-scrubbed @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.chunksVisualizer.unScrubbedChunks", -"Overlaps have been removed for clean text reconstruction": "knowledgeStack.chunksVisualizer.overlapRemoved", -"@:knowledgeStack.chunksConsole.chunk {number}": "knowledgeStack.chunksVisualizer.chunkNumber", -"Overlap Previous": "knowledgeStack.chunksVisualizer.overlapPrevious", -"Overlap Next": "knowledgeStack.chunksVisualizer.overlapNext", -"This text overlaps with the previous chunk": "knowledgeStack.chunksVisualizer.overlapWithPrevious", -"This text overlaps with the next chunk": "knowledgeStack.chunksVisualizer.overlapWithNext", -"Character positions in file": "knowledgeStack.chunksVisualizer.chunkIndices", -"Core content without overlaps": "knowledgeStack.chunksVisualizer.coreIndices", -"{count} chunks": "knowledgeStack.chunksVisualizer.chunkCount", -"Show Original": "knowledgeStack.chunksVisualizer.showOriginal", -"Show Scrubbed": "knowledgeStack.chunksVisualizer.showScrubbed", -"Show Scrubbed Only": "knowledgeStack.chunksVisualizer.showScrubbedOnly", -"Show All @:knowledgeStack.chunksConsole.chunks": "knowledgeStack.chunksVisualizer.showAllChunks", -"Per Page": "knowledgeStack.chunksVisualizer.itemsPerPage", -"{start}-{end} of {total} chunks": "knowledgeStack.chunksVisualizer.showingChunks", -"Loading chunks...": "knowledgeStack.chunksVisualizer.loadingChunks", -"No items found": "knowledgeStack.chunksVisualizer.noItems", -"Select an Item": "knowledgeStack.chunksVisualizer.selectItem", -"Choose a file or note from the left to visualize its chunks and content": "knowledgeStack.chunksVisualizer.selectItemDescription", -"Open Console": "knowledgeStack.chunksVisualizer.openConsole", -"{count} @:knowledgeStack.chunksConsole.chunk Selected": "knowledgeStack.chunksVisualizer.selectedChunks", -"Delete Selected": "knowledgeStack.chunksVisualizer.deleteSelected", -"Clear Selection": "knowledgeStack.chunksVisualizer.clearSelection", -"Confirm Delete": "knowledgeStack.chunksVisualizer.confirmDelete", -"Are you sure you want to delete {count} selected chunks? This action cannot be undone.": "knowledgeStack.chunksVisualizer.confirmDeleteMessage", -"@:knowledgeStack.chunksConsole.chunks Deleted": "knowledgeStack.chunksVisualizer.deleteSuccess", -"Successfully deleted {count} chunks": "knowledgeStack.chunksVisualizer.deleteSuccessDetail", -"{count} @:knowledgeStack.chunksConsole.chunk deleted successfully": "knowledgeStack.chunksVisualizer.deletedChunksCount", -"Delete Failed": "knowledgeStack.chunksVisualizer.deleteError", -"Force Compose": "knowledgeStack.export.forceCompose", -"Overall Progress": "knowledgeStack.export.overallProgress", -"{count} items exported": "knowledgeStack.export.itemsExported", -"Items": "knowledgeStack.export.items", -"Export completed successfully!": "knowledgeStack.export.exportCompleted", -"Saved to: {path}": "knowledgeStack.export.savedTo", -"Cancel All": "knowledgeStack.export.cancelAll", -"Done": "knowledgeStack.export.done", -"Exporting": "knowledgeStack.export.exporting", -"Folder": "knowledgeStack.export.folder", -"Export failed": "knowledgeStack.export.exportFailed", -"Import failed": "knowledgeStack.export.importFailed", -"Your changes to the Knowledge Stack have been saved. You will need to recompose it to apply the changes.": "knowledgeStack.messages.editsSaved", -"Knowledge stack saved and processing started": "knowledgeStack.messages.savedAndProcessing", -"Cannot force compose: Knowledge stack must be saved first": "knowledgeStack.messages.cannotForceCompose", -"Failed to force compose Knowledge Stack": "knowledgeStack.messages.failedToForceCompose", -"Force compose started - all items will be reprocessed": "knowledgeStack.messages.forceComposeStarted", -"Failed to update query settings": "knowledgeStack.messages.failedToUpdateQuerySettings", -"Query settings updated": "knowledgeStack.messages.querySettingsUpdated", -"just now": "knowledgeStack.messages.justNow", -"{minutes}m ago": "knowledgeStack.messages.minutesAgo", -"Failed to select item": "knowledgeStack.messages.failedToSelectItem", -"Failed to select folder": "knowledgeStack.messages.failedToSelectFolder", -"Knowledge Stack {title} processing completed": "knowledgeStack.messages.processingCompleted", -"Knowledge Stack {title} processing failed": "knowledgeStack.messages.processingFailed", -"Nothing to compose for Knowledge Stack {title}": "knowledgeStack.messages.nothingToCompose", -"Error composing Knowledge Stack {title}": "knowledgeStack.messages.composeError", -"Importing from URL is only available in the desktop application": "knowledgeStack.messages.downloadImportNotAvailableInWeb", -"{count} @:knowledgeStack.title deleted!": "knowledgeStack.messages.deleteSuccess", -"Failed to create the @:knowledgeStack.title": "knowledgeStack.messages.createError", -"Failed to save edits to the @:knowledgeStack.title": "knowledgeStack.messages.saveEditsError", -"Folder '{name}' added to the Knowledge Stack": "knowledgeStack.messages.folderAdded", -"Folder '{name}' locked temporarily": "knowledgeStack.folderLockedTemporary", -"Folder '{name}' locked permanently": "knowledgeStack.folderLockedPermanent", -"Failed to lock the folder": "knowledgeStack.lockFailed", -"Folder '{name}' unlocked": "knowledgeStack.folderUnlocked", -"Failed to unlock the folder": "knowledgeStack.unlockFailed", -"Path: {path}": "knowledgeStack.status.path", -"Name: {name}": "knowledgeStack.status.name", -"Unknown": "knowledgeStack.status.unknown", -"Loading PII analytics...": "knowledgeStack.status.loadingPiiAnalytics", -"All items are unlocked and can be reprocessed when needed.": "knowledgeStack.status.allItemsUnlocked", -"Abort Processing": "knowledgeStack.abortProcessing", -"Processing Failed": "knowledgeStack.errors.processingFailed", -"Error Message": "knowledgeStack.errors.errorMessage", -"Occurred at": "knowledgeStack.errors.occurredAt", -"Failed File": "knowledgeStack.errors.failedFile", -"Error Summary": "knowledgeStack.errors.errorSummary", -"Technical Details": "knowledgeStack.errors.technicalDetails", -"Stack Trace": "knowledgeStack.errors.stackTrace", -"Copy Details": "knowledgeStack.errors.copyDetails", -"Error details copied to clipboard": "knowledgeStack.errors.detailsCopied", -"Click to see error details": "knowledgeStack.errors.clickToSeeDetails", -"File is null": "knowledgeStack.errors.fileIsNull", -"Error checking if path is directory": "knowledgeStack.errors.checkingPathError", -"Error processing folder": "knowledgeStack.errors.processingFolderError", -"Failed to lock folder temporarily": "knowledgeStack.errors.lockFolderTemporaryFailed", -"Failed to lock folder permanently": "knowledgeStack.errors.lockFolderPermanentFailed", -"Failed to unlock folder": "knowledgeStack.errors.unlockFolderFailed", -"Status: Completed": "knowledgeStack.errors.status.completed", -"Status: Processing": "knowledgeStack.errors.status.processing", -"Status: Pending": "knowledgeStack.errors.status.pending", -"Status: Draft": "knowledgeStack.errors.status.draft", -"Status: Needs Reprocessing": "knowledgeStack.errors.status.needsReprocessing", -"Status: Error": "knowledgeStack.errors.status.error", -"Status: Temporarily Locked": "knowledgeStack.errors.status.lockedTemporary", -"Status: Permanently Locked": "knowledgeStack.errors.status.lockedPermanent", -"Status: Aborted": "knowledgeStack.errors.status.aborted", -"Status: Unknown": "knowledgeStack.errors.status.unknown", -"Unlock Aurum Features": "features.showcase.title", -"Upgrade to Aurum license for the most powerful AI features and advanced capabilities": "features.showcase.subtitle", -"Everything you need": "features.showcase.eyebrow", -"View Pricing": "features.showcase.viewPricing", -"Feature Matrix": "features.showcase.featureMatrix", -"Activate License": "features.showcase.activateLicense", -"Aurum": "features.showcase.licenses.aurum", -"Upload image…": "images.upload", -"Only image files are supported.": "images.onlySupported", -"Image must be 1MB or smaller.": "images.maxSize", -"Profile image updated.": "userAvatar.updated", -"Failed to update image. Please try again.": "userAvatar.updateFailed", -"Click to change profile image": "userAvatar.changeHint", -"Lost & Found": "setting.lostAndFound.title", -"Find and recover lost workspaces from your computer. Only workspace databases are scanned and discovered, not attachments.": "setting.lostAndFound.description", -"Lost & Found is experimental. Always keep backups of your workspace data before attempting recovery.": "setting.lostAndFound.experimentalInfo", -"Scan for Lost Workspaces": "setting.lostAndFound.scanForLostWorkspaces", -"Scan App Data": "setting.lostAndFound.scanAppData", -"Scan Folder…": "setting.lostAndFound.scanFolder", -"Workspace": "setting.lostAndFound.workspace", -"Last Modified": "setting.lostAndFound.lastModifiedColumn", -"Actions": "setting.lostAndFound.actions", -"Linked": "setting.lostAndFound.statusLinked", -"Found": "setting.lostAndFound.statusFound", -"Restore current workspace": "setting.lostAndFound.restoreCurrentWorkspace", -"Import As New Workspace": "setting.lostAndFound.importAsNewWorkspace", -"Restore current workspace?": "setting.lostAndFound.restoreConfirmHeader", -"This will replace the data of the currently active workspace with the data from the selected recovered file. This cannot be undone.": "setting.lostAndFound.restoreConfirmMessage", -"Failed to import workspace": "setting.lostAndFound.failedToImportWorkspace", -"Workspace imported": "setting.lostAndFound.workspaceImported", -"Recovered workspace has been imported. Switch to it from the workspace tray if needed.": "setting.lostAndFound.workspaceImportedDetail", -"Failed to restore workspace": "setting.lostAndFound.failedToRestoreWorkspace", -"Workspace restored": "setting.lostAndFound.workspaceRestored", -"Current workspace has been restored from the recovered file.": "setting.lostAndFound.workspaceRestoredDetail", -"Failed to import recovered workspace": "setting.lostAndFound.failedToImportRecoveredWorkspace", -"Failed to import recovered workspace (unexpected)": "setting.lostAndFound.failedToImportRecoveredWorkspaceUnexpected", -"Failed to restore workspace from recovered file": "setting.lostAndFound.failedToRestoreFromRecoveredFile", -"Failed to restore workspace from recovered file (unexpected)": "setting.lostAndFound.failedToRestoreFromRecoveredFileUnexpected", -"Quick filter...": "quickFilter", -"Toggle filter": "toggleFilter", -"Toggle sidebar": "toggleSidebar", -"Adjust": "adjust", -"{item} is experimental and under active development. Please report any issues to the team.": "experimentalInfo", -"File Type": "attachmentsManager.columnHeaders.fileType", -"Attachment Type": "attachmentsManager.columnHeaders.attachmentType", -"Browse Existing Attachments": "attachmentsManager.actions.browseExisting", -"View Associations": "attachmentsManager.actions.viewAssociations", -"Delete Attachment | Delete Attachments": "attachmentsManager.actions.delete.title", -"Are you sure you want to delete the attachment? All the associations to the attachment will also be removed. This action cannot be undone. | Are you sure you want to delete the attachments? All the associations to the attachments will also be removed. This action cannot be undone.": "attachmentsManager.actions.delete.confirmationMessage", -"Successfully deleted the attachment | Successfully deleted the attachments": "attachmentsManager.actions.delete.successMessage", -"Failed to delete the attachment | Failed to delete the attachments": "attachmentsManager.actions.delete.errorMessage", -"Search by Name": "attachmentsManager.search", -"Filter by Attachment Type": "attachmentsManager.filter", -"Attachments Manager": "attachmentsManager.title", -"No Attachments Found": "attachmentsManager.emptyState.title", -"You have no attachments available.": "attachmentsManager.emptyState.description", -"Associations for {attachmentName}": "attachmentsManager.associations.title", -"Search by Association Name": "attachmentsManager.associations.search", -"Filter by Associated Entity": "attachmentsManager.associations.filter", -"No Associations Found": "attachmentsManager.associations.emptyState.title", -"You have not used this attachment anywhere yet.": "attachmentsManager.associations.emptyState.description", -"Association Name": "attachmentsManager.associations.columnHeaders.associationName", -"Associated Entity": "attachmentsManager.associations.columnHeaders.associatedEntity", -"Jump to {entity}": "attachmentsManager.associations.actions.jumpTo", -"Detach Association": "attachmentsManager.associations.actions.detach.title", -"Are you sure you want to detach the association from the {associationEntity}? This action cannot be undone.": "attachmentsManager.associations.actions.detach.confirmationMessage", -"Successfully detached the association": "attachmentsManager.associations.actions.detach.successMessage", -"Failed to detach the association": "attachmentsManager.associations.actions.detach.errorMessage", -"AI Prompt": "iconSelector.aiMode", -"Describe what the icon represents...": "iconSelector.aiPlaceholder", -"Find Icon": "iconSelector.findIcon", -"Finding...": "iconSelector.finding" -} \ No newline at end of file diff --git a/tools/msty_ca/source_strings.json b/tools/msty_ca/source_strings.json deleted file mode 100644 index b0a6dfe..0000000 --- a/tools/msty_ca/source_strings.json +++ /dev/null @@ -1,3243 +0,0 @@ -[ -"You", -"Select", -"Conversations", -"Copy to Clipboard", -"to copy markdown directly", -"Click to copy markdown directly", -"to show more options", -"Long press or Alt+click for more options", -"on message", -"@:select a model | @:select models", -"@:manage Models", -"Required", -"Optional", -"System Prompt", -"@:systemPrompt Attach @:mode", -"@:user Prompt", -"Delete {item}", -"Delete All", -"Create", -"Edit", -"Expand editor", -"Collapse editor", -"Enable", -"Disable", -"Save", -"Saved", -"Cancel", -"Close", -"Bookmarked", -"Pinned", -"Update", -"Apply", -"Reset", -"Icon", -"Clear", -"API Key", -"Models", -"Available {itemType}", -"Unavailable", -"Detected", -"Continue", -"Undetected", -"Welcome!", -"Plan", -"All changes saved", -"Toolbar", -"Bookmark | Bookmarks", -"Waiting :: Hold on :: Just a moment :: One second :: Patience is a virtue :: Almost there :: Loading awesomeness", -"Searching the Web :: Browsing the internet :: Looking online :: Scouring the web :: Consulting the oracle :: Asking the internet nicely :: Diving into cyberspace :: Mining the web", -"Querying @:knowledgeStack.title :: Searching your knowledge :: Looking through your docs :: Exploring your knowledge base :: Rifling through your wisdom :: Consulting your digital library :: Scanning your archives :: Digging through your notes", -"Preparing Tools :: Getting tools ready :: Setting up tools :: Loading tools :: Sharpening the instruments :: Assembling the toolkit :: Warming up the engines :: Prepping the workspace", -"Model is doing its magic ✨ :: AI is thinking :: Processing your request :: Working on it :: Crunching the numbers :: Neurons firing :: Pondering deeply :: Computing brilliance :: Engaging brain mode :: Summoning intelligence", -"Processing Context :: Understanding context :: Analyzing context :: Reading the situation :: Connecting the dots :: Grasping the big picture :: Piecing it together :: Making sense of things", -"Streaming :: Sending response :: Delivering answer :: Transmitting :: Beaming down results :: Flowing your way :: En route to you :: Coming in hot", -"Scrubbing PII Data :: Protecting your privacy :: Removing personal info :: Anonymizing data :: Keeping secrets safe :: Privacy mode engaged :: Redacting the sensitive bits :: Going incognito", -"Synthesizing Query for Better Results :: Optimizing your question :: Enhancing query :: Refining search terms :: Polishing your request :: Fine-tuning the question :: Crafting the perfect query :: Making your words shine", -"Fetching Live Contexts :: Gathering real-time data :: Pulling fresh insights :: Syncing with live sources :: Tapping into the data stream :: Collecting current intel :: Refreshing context feeds :: Harvesting live updates :: Connecting to the pulse", -"Initializing...", -"Add", -"Expand {group}", -"Collapse {group}", -"Show extra add-ons", -"Hide extra add-ons", -"Model & Prompts", -"Data & Knowledge", -"Tools & Personas", -"Unauthorized", -"Valid", -"Invalid", -"Done!", -"Confirm", -"Share with synced splits", -"Source | Sources", -"Grounding Sources", -"Manage", -"Chat | Chats", -"Advanced Options", -"Duplicate", -"@:manage {item}", -"Success!", -"Notes", -"View Notes", -"Error!", -"Warning", -"Authorized", -"Not authorized", -"Authorize", -"Re-authorize", -"Remove authorization", -"Failed to delete", -"Failed to save", -"Failed to update", -"updated.", -"Apply and share with synced splits", -"Click to edit", -"Click to add @:systemPrompt", -"Pause", -"Resume", -"Retry", -"Stop", -"Run", -"Re-run", -"Remove", -"Skip", -"Unskip", -"Start Importing", -"New", -"Entry | Entries", -"Import", -"Connect", -"Disconnect", -"Reconnect", -"Select Target Folder", -"Create new folder for imported items", -"New folder name", -"Remote", -"Local", -"Strength | Strengths", -"Provider", -"{count} Capability | {count} Capabilities", -"Preset | Presets", -"Save As @:preset", -"Append", -"Prepend", -"Replace", -"Description", -"Mode", -"Add-ons", -"User", -"Assistant", -"@:assistant @:message.title", -"Connection Info", -"Export", -"Export Options", -"Choose File", -"Purpose", -"Download", -"Downloads", -"Download as JSON", -"Install", -"Installed", -"Modified", -"Created", -"Minimize", -"Status", -"Type", -"Yes", -"File Size", -"Size", -"Like | Likes", -"Cancelled", -"Parameter @:size", -"Quantization", -"@:quantization Level", -"Context Size", -"Default to model max", -"Maximum tokens the model processes at once. Set to 0 to use model's maximum. Larger values increase memory usage. This value is saved globally per model with LLaMa.cpp. Context is shared equally across the number of concurrent requests set via LLaMa.cpp service settings.", -"Truncate Middle", -"Truncate Old", -"None", -"How to handle messages when context limit is approached.", -"Storage", -"Params", -"Arch", -"Filter", -"Sort & Display", -"Search...", -"Folders first", -"Items first", -"Name", -"Title", -"Updated", -"Last Used", -"Ascending", -"Descending", -"Visibility", -"Show empty folders", -"Hide empty folders", -"Show item counts", -"Hide item counts", -"No {item} found for this search", -"Loading", -"Invite", -"Refresh", -"Email", -"Role", -"Admin", -"Owner", -"Inactive", -"Argument|Arguments", -"Abort", -"Send", -"Remind Me Later", -"Text", -"Folders", -"Folder | @:folders", -"Search", -"Active", -"Archived", -"All", -"Fuzzy search enabled", -"Fuzzy search disabled", -"Fuzzy Search Enabled. Click to Toggle", -"Fuzzy Search Disabled. Click to Toggle", -"Change", -"Expand All Projects", -"Collapse All Projects", -"Expand All Folders", -"Collapse All Folders", -"Clone {item}", -"{item} cloned", -"Failed to clone {item}", -"Add notes to help you remember the purpose of this {item}; this will also be seen by models which can provide them more details on how to use this {item} (@:optional)", -"Endpoint Test Results", -"Test Connection", -"No {item} found", -"@:select {item}", -"{count} {title}", -"Feature|Features", -"Raw", -"Raw Output", -"Property|Properties", -"Configure", -"Context | Contexts", -"Path | Paths", -"Project | Projects", -"New Project at Root", -"Project Name", -"Project Description", -"Default Model", -"Custom Instructions", -"Add Child Project", -"Move Folder to Root", -"Failed to move project to root.", -"The project was successfully moved to the root.", -"Delete Project", -"Set as Default Project", -"Unset Default Project", -"Misc", -"Include Project Context", -"Are you sure you want to delete {projectName} and all its conversations?", -"@:cancel", -"@:delete", -"Project deleted", -"Delete All Conversations", -"Are you sure you want to delete all conversations in {projectName}? This action cannot be undone.", -"Deleted {count} conversation | Deleted {count} conversations", -"No conversations to delete", -"Failed to delete conversations", -"Archive All Conversations", -"Archive all conversations in {projectName}? They will move to the Archive and can be restored later.", -"Archive All", -"Archived {count} conversation | Archived {count} conversations", -"Failed to archive conversations", -"Add Files", -"Edit Project", -"New Project", -"Drag and drop files that will get attached to each conversation in this project.", -"Project created", -"Project created! It's currently hidden because it's empty. Click the button below to show it now, or it will appear automatically when you add your first conversation.", -"Project updated", -"Failed to create Project", -"Failed to update Project", -"Show Empty Projects", -"Empty projects are now visible", -"Start a New Conversation to Get Started", -"Selected model", -"Endpoint", -"Auth Token", -"Before", -"After", -"Method", -"HTTP @:method", -"Get", -"Post", -"@:preset with the same name already exists.", -"@:presetAlreadyExistsMessage If you save, it will overwrite the existing preset.", -"No {propsName} available. Add a custom one.", -"@:local AI", -"Click to add a label", -"Branch label (max 30 chars)", -"Label Branch...", -"Label Branch", -"No label", -"Click for more options", -"Branch Explorer", -"Branch Explorer...", -"Branch {n}", -"Current", -"Branches", -"Compare", -"Compare Branches", -"Compare branches", -"Exit compare mode", -"Select first branch to compare", -"Select second branch to compare", -"Selected", -"Content is identical", -"First branch", -"Second branch", -"Select branch", -"Select two branches above to compare their content", -"Switch to {name}", -"Diff", -"Side by Side", -"Conversation | Conversations", -"@:conversation.title Title", -"Failed to generate context summary.", -"Check Settings > Notifications for more details.", -"Failed to send message.", -"Check Settings > Notifications for more details. {error}", -"Message exceeds context limit", -"Your message with search results and context is too large for this model. Try: increasing context size from model parameters, reducing search results, clearing conversation history, using a model with larger context (16k+), or shortening your system instructions.", -"Delete @:conversation.title", -"Add New @:conversation.title", -"New @:conversation.title", -"Projects first", -"Last Activity", -"No priority", -"@:pinned first", -"@:bookmarked first", -"Show Recents & @:pinned", -"Hide Recents & @:pinned", -"Show Archive", -"Hide Archive", -"Show empty projects", -"Hide empty projects", -"Show conversation counts", -"Hide conversation counts", -"Press {trigger} for quick commands OR start typing...", -"Press / to focus here and start typing", -"Are you sure you want to delete selected conversation and all its chat splits? | Are you sure you want to delete selected conversations and all their chat splits?", -"Delete", -"@:conversation.title deleted", -"Failed to delete @:conversation.title", -"Convert to Chat", -"@:conversation.title converted to Chat", -"Failed to convert conversation to Chat", -"Convert to @:forge.forgeCanvas", -"@:conversation.title converted to @:forge.forgeCanvas", -"Failed to convert conversation to @:forge.forgeCanvas", -"Messages cloned to new split successfully", -"Failed to clone messages to new split", -"Messages cloned to new conversation successfully", -"Failed to clone messages to new conversation", -"Archive", -"Orphaned Conversation", -"This conversation is archived. Unarchive it to continue the discussion.", -"Sending a new message will automatically unarchive.", -"Unarchive", -"Conversation unarchived automatically.", -"{count} conversation archived | {count} conversations archived", -"{count} conversation restored | {count} conversations restored", -"Unload archived items", -"Archived items unloaded", -"Unable to update archive status. Please try again.", -"Archive {item}", -"Export @:conversation.title as JSON", -"Successfully exported conversations as JSON", -"Show All Splits", -"Save Splits As", -"New Single Split Chat", -"Split Preset | Split Presets", -"Save Splits As @:preset", -"Edit Split @:preset {presetName}", -"@:preset Name", -"@:preset Options", -"@:select @:preset Options", -"Save @:preset", -"Split @:preset added", -"Split @:preset updated", -"Failed to save Split @:preset", -"Delete Split @:preset", -"Are you sure you want to delete {splitPresetName}? ", -"Split @:preset deleted", -"Compact Mode", -"@:enable @:conversationActions.compactMode", -"@:disable @:conversationActions.compactMode", -"Split Widths", -"Slim", -"Balanced", -"Roomy", -"Spacious", -"Full", -"Response Configuration", -"Select a preset...", -"Save as Preset", -"Common Settings", -"Advanced Parameters", -"JSON object for advanced model parameters", -"", -"Provider Options", -"Provider-specific configuration", -"Thinking Configuration", -"Extended thinking configuration", -"Provider may ignore or partially honor thinking settings", -"Custom Parameters", -"Provider may ignore or partially honor these", -"custom_param", -"value", -"Delete Parameter", -"Delete custom parameter \"{param}\"?", -"Parameter key is required.", -"This key is reserved for built-in parameters.", -"A parameter with this key already exists.", -"Invalid JSON", -"Constraint Mode is On", -"Freeform Mode is On - no min/max limits", -"Expand for other options", -"Collapse other options", -"Temperature", -"Controls randomness (0=focused, 2=creative)", -"Top P", -"Probability mass to keep during nucleus sampling", -"Top K", -"Limit token selection to the top K tokens", -"Max Output Tokens", -"Maximum tokens for responses", -"Maximum tokens for responses (limit {0})", -"Context Window Size", -"Maximum tokens accepted in the prompt", -"Maximum tokens accepted in the prompt (limit {0})", -"Set to 0 to use model's maximum context size", -"Presence Penalty", -"Penalize new tokens based on whether they appear in the text so far", -"Frequency Penalty", -"Penalize tokens based on frequency in the text so far", -"Repeat Penalty", -"Discourage repeating phrases", -"Repeat Last N", -"Context window for applying repeat penalty", -"Min P", -"Minimum cumulative probability for token selection", -"Mirostat", -"Stabilize perplexity dynamically", -"Off", -"Mirostat 1.0", -"Mirostat 2.0", -"Mirostat Tau", -"Target surprise level (lower = safer)", -"Mirostat Eta", -"Learning rate for Mirostat adjustment", -"GPU Layers", -"Number of layers to offload to GPU", -"Threads", -"CPU threads to use for generation", -"Model Parameters", -"Max Output Tokens (Legacy)", -"Context Window @:size", -"Number of GPU Layers", -"@:select or insert a parameter", -"@:select a @:preset", -"Save as @:preset", -"Add New Parameter", -"Extra @:params", -"Apply and Save as Model Default", -"Save @:modelParams.params As Preset", -"Failed to save params preset.", -"@:modelParams.params preset saved.", -"Delete @:preset", -"Are you sure you want to delete {presetName}?", -"Failed to delete params preset.", -"@:modelParams.params preset deleted.", -"Thinking Effort", -"Think Lightly", -"Think Moderately", -"Think Deeply", -"Default", -"Dynamic", -"Exclude", -"Split Options", -"Add Split Chat", -"Hide Split", -"Copy Split to New Conversation", -"Move Split to New Conversation", -"Delete Split", -"Remove Split", -"Split removed", -"Split reset", -"Split copied to new conversation", -"Split moved to new conversation", -"Failed to copy split to new conversation", -"Failed to move split to new conversation", -"Export Chat", -"Copy Chat", -"Active Branch as JSON", -"Active Branch as Markdown", -"All Branches as JSON", -"Successfully {action} chat as {format}", -"exported", -"copied", -"Show All Hidden Messages", -"All hidden messages are now visible", -"Are you sure you want to delete this Split?", -"Message|Messages", -"Message and Descendants", -"Send on Enter", -"Send Modifier", -"Shift", -"Alt", -"Ctrl", -"Meta", -"Re-send user message", -"Send as @:assistant Message", -"Sending a message as \"Assistant\" lets you shape the conversation by adding AI responses yourself. The AI will continue as if it wrote that message. Useful for providing context or guiding responses.", -"Sent as Assistant Message", -"Manually Edited", -"@:bookmark Message | @:bookmark Messages", -"Remove @:bookmark | Remove Bookmarks", -"Delete Message | Delete Messages", -"Remove Message", -"Regenerate assistant message as a new branch", -"@:continue Generation", -"Use as prompt in new split", -"Fold Messages Above", -"Unfold Messages Above", -"Clone with Ancestors to New Split", -"Clone with Ancestors to New Conversation", -"Extra Actions", -"No model selected. Please select a model to send a message", -"Delete Message", -"Are you sure you want to delete this message?", -"Delete Message and its descendants", -"Are you sure you want to delete this message and all its descendants?", -"Quick Commands", -"No matching commands", -"Type \\ followed by command or alias", -"Regenerating message...", -"Context shield applied", -"Compressing with shield...", -"Message @:bookmarked", -"Copied to clipboard", -"Continuing generation...", -"Resending message...", -"Shiftcuts", -"Enable or disable the Shiftcuts feature. Unlike standard keyboard shortcuts, Shiftcuts are triggered by double-tapping the Shift key and then pressing another key to perform an action; including: 't' to open new split chat, 'e' to open environment selector, '1' to toggle sidebar, and 'm' to open minimap.", -"URL Endpoint", -"Give it a unique name", -"Duplicate or invalid {item} name. Please enter a unique name.", -"You have not backed up your data, would you like to export your data for backup?", -"It has been 24hrs since your last backup, would you like to export your data for backup?", -"Storage may be cleared by the browser under storage pressure. We recommend backing up your data regularly.", -"Export @:data", -"Clear @:data", -"Restore @:data", -"Drag and drop your data backup to restore from.", -"Restoring from backup file will replace all existing data. We recommend to export a backup first.", -"Failed to export data", -"Backup @:data", -"@:data exported", -"Failed to clear data", -"@:data has been cleared", -"Enter '{string}' here", -"Please enter '{string}' below to proceed", -"@:warning", -"Invalid confirmation. Please enter '{string}' to proceed.", -"Are you sure you want to clear all data? This action cannot be undone.", -"Please select a file to restore from", -"Are you sure you want to restore all data? This action will replace all existing data and cannot be undone. We recommend to export a backup first.", -"Restore", -"@:data Imported", -"Failed to Import @:data", -"Setup {item}", -"{item} setup completed", -"Could not setup {item}", -"Welcome to Msty Studio!", -"We'd need at least one model provider to get started.", -"Welcome to Msty!", -"How would you like to get started?", -"Got Ollama/Msty Models?", -"Got MLX Models?", -"Got LLaMA.cpp Models?", -"You can use your existing Ollama or Msty models directly, if any, or specify a custom location. Note: we will still be using our own service to run those models.", -"If you don't have any MLX models yet, you can specify a custom location where you'd like to store them.", -"We found MLX models in your Hugging Face Hub cache! You can use them directly or specify a custom location.", -"Specify a custom location where you'd like to store your GGUF models for LLaMA.cpp.", -"No location set", -"Set Your Own", -"Custom model locations are not available for MLX", -"Enter custom models path", -"To get you started, {modelName} will be downloaded. You can choose a different model.", -"Use models like DeepSeek R1, Meta Llama4, Microsoft Phi4, IBM Granite, Google Gemma, etc", -"Use offline and keep your @:data private", -"Models are free to download and use", -"Install and use specialized models", -"Needs extra storage and memory", -"That's it!", -"You can now start chatting with your models privately and securely.", -"Error Setting Up @:localAIService", -"We could not set up @:localAIService{'.'} Please check the logs for more details. {errorMessage}", -"There was a permission issue setting up Local AI. You can rerun the app as an admin (not recommended) or consider installing the app as for a single user only (recommended).", -"{errorMessage} Consider installing Local AI from archive files if you continue to get this error. Please visit https://docs.msty.studio/getting-started/onboarding", -"Error Setting Up MLX Service", -"We could not set up MLX Service. Please check the logs for more details. {errorMessage}", -"To get you started, {modelName} will be downloaded. MLX is Apple's optimized framework for Apple Silicon.", -"MLX is currently in experimental mode. It may have some limitations and rough edges. Please report any issues to the team.", -"Optimized for Apple Silicon (M1, M2, M3, M4)", -"Efficient memory usage with unified memory architecture", -"Supports MLX, SafeTensors, and GGUF models", -"Native performance on macOS", -"Only available on Apple Silicon Macs", -"Smaller model selection compared to Ollama", -"MLX Setup Complete!", -"You can now use MLX models with optimal performance on your Mac.", -"Checking system compatibility...", -"Downloading MLX server...", -"Starting MLX service...", -"Setting up MLX...", -"Downloading Model: {progress}%", -"LLaMA.cpp support is experimental and under active development", -"Error Setting Up LLaMA.cpp Service", -"We could not set up LLaMA.cpp Service. Please check the logs for more details. {errorMessage}", -"To get you started, {modelName} will be downloaded. LLaMA.cpp provides efficient cross-platform AI inference.", -"Works on Windows, macOS, and Linux", -"Supports both CPU and GPU acceleration", -"Efficient memory usage and fast inference", -"Compatible with GGUF model format", -"Requires desktop application", -"Performance depends on hardware configuration", -"LLaMA.cpp Setup Complete!", -"You can now use LLaMA.cpp models with efficient performance on your system.", -"Downloading LLaMA.cpp server...", -"Starting LLaMA.cpp service...", -"Setting up LLaMA.cpp...", -"Downloading: {progress}%", -"With most online providers, you'd need to get an API key from the provider's website. {findYourKey}", -"Find your API key", -"Use OpenAI, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Ollama, Remote Msty, etc", -"Get started without downloading models", -"Some vendors provide extra features like image generation, web search, etc", -"Requires internet connection to chat", -"Vendor charges may apply", -"{count} model available | {count} models available", -"{count} model added | {count} models added", -"Forget this provider", -"Let's Go!", -"No @:localAI? Get @:remoteToolsConnector.title for 1-click Setup", -"You are now ready to chat with one of the models from {providerName}.", -"Continue {service} Setup", -"Enter your email", -"Invalid email or something went wrong. Please try again.", -"Login link sent to { email }", -"Model Hub", -"Model Providers", -"Access models from the cloud or remote servers.", -"Models list is pulled automatically", -"Add Provider", -"Use OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Msty, Remote Ollama, etc.", -"Get started quickly", -"No download required", -"Delete Provider", -"Are you sure you want to delete {providerName}?", -"Provider deleted", -"Error", -"Failed to delete provider", -"Copy to Other Workspace", -"Copy/Sync to Other Workspaces", -"Copy this provider to one or more workspaces.", -"Sync this provider to one or more workspaces. If this provider was copied before, it will be updated. If not, it will be added.", -"@:select Workspaces", -"Available Workspaces", -"Update Provider", -"New Language Models Provider", -"Edit Language Model Provider", -"Models Provider", -"Model ID", -"Model Name", -"Provider Name", -"Provider URL", -"Provider Token", -"Save Provider", -"@:select Provider", -"Give it a name (optional)", -"@:select Models", -"Available Models", -"Add Custom Model", -"Inference Endpoint (must start with http:// or https://)", -"Base URL", -"Resource Name (will be ignored if Base URL is set)", -"API @:version", -"AWS Region", -"Access Key ID", -"Secret Access Key", -"Session Token (Optional)", -"Not all models have been tested with Msty and it may not support all the models available in the provider.", -"Click 'Fetch Models' to retrieve available models from the provider (an API key may be required), or manually add a model below.", -"Enter your API key to try to retrieve all the available models from {providerName}, or manually add a custom model.", -"Fetch Models", -"All Models", -"Unselected", -"All Purposes", -"Search models...", -"You must have CORS enabled in LM Studio to work with Msty", -"Most of the OpenAI compatible providers endpoint need /v1 prefix e.g. https://example.com/v1 If you are running into issues, try appending /v1 to the endpoint.", -"Models Provider {providerName} added", -"Models Provider {providerName} updated", -"Failed to add Provider", -"Failed to update Provider", -"Using long-term credentials for Amazon Bedrock is not recommended.", -"e.g. us-east-1", -"Failed to update provider visibility", -"{provider} is now {visibility}", -"Models Count", -"Show in Model Selector", -"No models available for this provider", -"Model updated successfully", -"Failed to update model", -"Add New", -"@:remoteToolsConnector.title Proxy @:localAI Endpoint", -"Make sure @:remoteToolsConnector.title is running and accessible at the provided URL via Tunneling. Copy and paste the full Tunnel Connection Info with token and URL.", -"Make sure Msty Desktop is running with remote connections enabled.", -"Learn how to enable remote connections", -"This service runs whenever the app itself is up and running. You may have to update the port number if Local AI port got changed. Otherwise, it's best to leave it as is.", -"When using self-hosted Ollama, make sure Ollama is running and accessible at the provided URL. You must add https://msty.studio to the allowed origins when starting Ollama service.", -"e.g. http://localhost:11434 or https://ollama.com", -"This provider is used to run MLX models on Apple Silicon Macs. The endpoint is auto-corrected to make sure it matches with your local MLX setup. You can change it temporarily if needed.", -"This provider is used to run LLaMA.cpp models. Most likely, you won't need to change the default endpoint. If you do, make sure LLaMA.cpp service is running and accessible at the provided URL.", -"@:localAI Models", -"There are no compatible providers available to manage Local Models. Please add at least one provider of type Msty Remote or Ollama Remote to use Local Models.", -"{count} Active Download | {count} Active Downloads", -"Featured Models", -"Installed Models", -"Or Install model by tag e.g. {example}", -"Already Installed", -"Model {modelName} is already installed", -"Abort Installation of {modelName}", -"Installation of {modelName} aborted", -"Uninstall Model", -"Are you sure you want to uninstall {modelName}?", -"Model removed", -"Failed to uninstall model", -"Model {modelName} is ready to use", -"Failed to install model {modelName}", -"{modelName} requires a newer version of Local AI. Please update to the latest version from Settings > Local AI > Service Version > ... > Force Update Local AI Service", -"Ollama Models", -"Hugging Face Models", -"Search by author, model, or paste a Hugging Face repo URL", -"Find models by name, author, or URL. Or get started with one of the model families below.", -"Searching for models...", -"Import GGUF", -"Import GGUF Model", -"Select a GGUF model file from your file system to import into {providerLabel}.", -"Active Imports", -"No file selected", -"Click the button below to select a GGUF file", -"Drag and drop a GGUF file here, or click the button below", -"Drop file here", -"Release to select file", -"Select GGUF File", -"Choose Different File", -"Import Model", -"e.g., my-custom-model", -"This will be the name you use to reference the model in conversations.", -"Remove file", -"Dismiss", -"Use symlink (saves disk space)", -"Creates a symbolic link instead of copying the file. Only available for local servers.", -"Calculating file digest", -"Uploading file", -"Creating symlink", -"Creating model", -"Model {modelName} imported successfully", -"File", -"Uploading", -"Completed", -"Please select a valid GGUF file", -"Import Safetensors", -"Import Safetensors Model", -"Select a directory containing safetensors model weights to import into {providerLabel}. Supported architectures include Gemma, Llama, Mistral, and Phi.", -"No directory selected", -"The directory should contain safetensors files and a config.json", -"Select Safetensors Directory", -"Select Directory", -"Choose Different Directory", -"Remove directory", -"Scanning directory", -"Processing file {current} of {total}", -"Creating model from safetensors", -"Directory", -"Uploading files", -"files selected", -"Safetensors import is only available in the desktop app", -"Failed to select directory", -"No valid safetensors files found in the selected directory", -"LLaMA.cpp Models", -"{count} Active LLaMA.cpp Download | {count} Active LLaMA.cpp Downloads", -"LLaMA.cpp model {modelName} is already installed", -"Model Ready", -"LLaMA.cpp model {modelName} is ready to use", -"Installation Failed", -"Failed to install LLaMA.cpp model {modelName}", -"LLaMA.cpp model {modelName} installed", -"Downloading of LLaMA.cpp model {modelName} was aborted", -"Failed to cancel LLaMA.cpp model download", -"Cancelled download of LLaMA.cpp model {modelName}", -"Uninstall Failed", -"Failed to uninstall LLaMA.cpp model {modelName}", -"Model Removed", -"Uninstalled LLaMA.cpp model {modelName}", -"Uninstall LLaMA.cpp Model", -"Featured LLaMA.cpp Models", -"Installed LLaMA.cpp Models", -"LLaMA.cpp Community Models", -"Browse, search, and install GGUF models directly from Hugging Face to your local LLaMA.cpp models folder.", -"Search LLaMA.cpp Community Models", -"Search LLaMA.cpp models from Hugging Face", -"Find LLaMA.cpp compatible GGUF models or pick one of the featured model families below.", -"Searching for LLaMA.cpp models...", -"MLX Models", -"MLX models are only supported on Apple Silicon Macs (M1, M2, M3, M4, etc.). Your current device is not compatible.", -"There are no compatible MLX providers available. Please add at least one MLX provider to use MLX Models.", -"{count} Active MLX Download | {count} Active MLX Downloads", -"Learn More about MLX", -"Featured MLX Models", -"Installed MLX Models", -"MLX Model {modelName} is already installed", -"Uninstall MLX Model", -"MLX Model removed", -"Failed to uninstall MLX model", -"MLX Model {modelName} is ready to use", -"Failed to install MLX model {modelName}", -"Downloading of MLX model {modelName} was aborted", -"MLX Community Models", -"Search MLX Community Models", -"Search MLX models from HuggingFace mlx-community", -"Find MLX optimized models from HuggingFace. Or get started with one of the model families below.", -"Searching for MLX models...", -"Sticky Prompt", -"Disable Sticky Prompt", -"Edit Sticky Prompt", -"When a 'sticky' prompt is pinned, it is added to the beginning of each new message while ignoring any previous ones. This effectively makes the conversation focused on one active context. System prompt is always included in the context.", -"@:context Shield", -"Enable @:contextShield.title", -"Enable @:contextShield.title{'.'} Hold Option/Alt to @:contextShield.title all synced splits.", -"Remove @:contextShield.title", -"Disable @:contextShield.title{'.'} Hold Option/Alt to remove @:contextShield.title from all synced splits.", -"Break @:context", -"Custom @:context", -"Generate @:context @:summary", -"@:context @:summary", -"Edit @:context @:summary", -"Regenerate @:context @:summary", -"Clear @:context @:summary", -"This summary is generated from the context of the conversations above and is included in the context when generating new messages below this shield.", -"@:contextShield.title with @:summary", -"Data", -"Advanced Configurations", -"Application Info", -"App Version", -"The latest updates are checked periodically and you will be notified when a new update is available. You can also manually check for updates, which will then automatically install any available updates.", -"Check and Apply Updates", -"Enable Auto Updates", -"Disable Auto Updates", -"View Changelog", -"Checking for updates...", -"Failed to check for updates", -"Auto updates enabled", -"Auto updates disabled", -"New update available", -"Downloading update...", -"You're on the latest version", -"Models Info", -"Update your local model metadata. This information includes details about each model, but not the model files themselves. This applies to both locally stored and online models.", -"Fetch Latest Models Info", -"Models info updated successfully", -"Failed to update models info", -"App Settings", -"Resetting app settings to their defaults can help resolve potential issues. This will restore the default user preferences, such as appearance and models path, but will not delete any data, including chats or downloaded/imported models.", -"Reset App Settings", -"Are you sure you want to reset all app settings to their defaults? This will restore default preferences but won't delete your data.", -"App settings reset successfully", -"Failed to reset app settings", -"Data Paths", -"All data, including models, conversations, settings, and logs, are stored locally on your device. Only modify the contents of these directories if you are familiar with the application's file structure.", -"App Data", -"App Logs", -"Open in Finder", -"Help & Discussions", -"Connect with our community on Discord to get support, share your feedback, and stay informed.", -"Say Hi!", -"View Docs", -"Log Viewer", -"View and analyze application logs in real-time. Use filters and search to troubleshoot issues efficiently.", -"Search Logs...", -"Refresh Logs", -"Stop Auto-Refresh", -"Enable Auto-Refresh", -"Stop Auto-Scroll", -"Resume Auto-Scroll", -"Copy Logs to Clipboard", -"Download Logs", -"Clear Logs Display", -"Clear Logs File", -"Show All Logs", -"Clear Log File", -"Are you sure you want to clear the log file? This will permanently delete all log entries.", -"Loading logs...", -"No logs available", -"No logs match the current filters", -"{count} total line | {count} total lines", -"{count} filtered line | {count} filtered lines", -"Logs copied to clipboard", -"Logs downloaded successfully", -"Log file cleared successfully", -"Failed to load logs", -"Failed to copy logs", -"Failed to download logs", -"Failed to clear logs", -"All Levels", -"Info", -"Debug", -"Notifications", -"Review and manage application notifications including errors, warnings, and info events.", -"Search Notifications...", -"Searching all notifications in database", -"Refresh Notifications", -"Auto-Refresh Enabled", -"Copy All to Clipboard", -"Copy Notification", -"Download Notifications", -"Clear All Notifications", -"Clear Notifications", -"Are you sure you want to permanently delete all notifications? This action cannot be undone.", -"Loading notifications...", -"Loading more...", -"End of list", -"No notifications available", -"{count} notification | {count} notifications", -"Showing {count}", -"Notification copied to clipboard", -"Notifications downloaded successfully", -"Notifications cleared successfully", -"Notification deleted successfully", -"Failed to load notifications", -"Failed to copy notification", -"Failed to download notifications", -"Failed to clear notifications", -"Failed to delete notification", -"Purge Notifications", -"Older than 1 day", -"Older than 7 days", -"Older than 15 days", -"Older than 30 days", -"Are you sure you want to delete notifications older than {days} days? This action cannot be undone.", -"Purge", -"Notifications purged successfully", -"Failed to purge notifications", -"Errors", -"Warnings", -"Show extra items", -"Hide extra items", -"Models & Prompts", -"Personas & Tools", -"Knowledge & Insights", -"System", -"Version {version}", -"Restart to Apply Updates", -"Restart Now", -"Downloading Update...", -"Opening Changelog...", -"Update error - click for details", -"Update ready - restart to apply", -"Downloading update... {percent}%", -"Update Error", -"An error occurred while updating: {error}", -"Download Manually", -"Show in Finder", -"Show in File Explorer", -"Show in File Manager", -"Settings", -"General", -"Default Prompts", -"These prompts shape how titles are generated, search queries are built, knowledge is retrieved, and context is summarized. Changes are saved to this device’s global settings (master database) and apply across all workspaces (not per workspace).", -"Available Prompts", -"Customized", -"{count} customized", -"Using Custom", -"Using Default", -"Click to edit prompt", -"Variables", -"Last modified", -"Select a prompt to customize", -"Clear Content", -"Reset to Default", -"Insert from Library", -"Save Changes", -"Discard Changes", -"Content Generation", -"Search & Synthesis", -"Analysis & Extraction", -"License and Access", -"Font @:size", -"Real-Time Data Search", -"Default RTD Provider", -"Choose the default Real-Time Data search provider that will be used when creating new conversations.", -"{provider} set as default RTD provider", -"Failed to save default RTD provider", -"No RTD providers available", -"Configure advanced options for", -"Configuration saved for {provider}", -"Default RTD Mode", -"Set the default RTD mode for new conversations.", -"New conversations will use push mode by default.", -"New conversations will use pull mode by default.", -"Pull mode requires an Aurum plan.", -"Failed to save default RTD mode", -"Teams", -"Appearance", -"Auto-archive inactive conversations", -"Automatically move inactive conversations to Archive after the selected number of days. Use Enable auto-archive to turn it on. Run archive now performs a one-time cleanup using the current day threshold.", -"Enable auto-archive", -"Disable auto-archive", -"Archived conversations stay accessible from the Archive section.", -"Archive after", -"day | days", -"Enable or disable from the menu", -"Run archive now", -"Enable auto-archive and set days > 0 to run", -"Auto-archive set to {days} day | Auto-archive set to {days} days", -"Auto-archive enabled", -"Auto-archive disabled", -"Setup {service}", -"Workspace Lock & Secrets Encryption", -"Lock your workspace with a passphrase so sensitive settings and API keys stay hidden until you unlock. Unlock once per session, rotate the passphrase anytime, or turn protection off if you change your mind.", -"Passphrase-based encryption is experimental. Please keep a backup of your secrets before enabling.", -"Status:", -"Locked", -"Unlocked", -"Lock", -"Unlock", -"Workspace is protected. Unlock with your passphrase.", -"Unprotected", -"Workspace lock is not configured. Set a passphrase first.", -"Enter Passphrase", -"Workspace unlocked for this session", -"Workspace locked", -"Disable Encryption", -"Enter passphrase to decrypt and disable encryption.", -"Disable Protection", -"Enter your passphrase to disable workspace protection. This will remove encryption from your stored secrets and API keys.", -"Are you sure you want to disable workspace protection? This will permanently decrypt all encrypted secrets and API keys in your database.", -"Enable Protection", -"Set Passphrase", -"Important: Save your passphrase safely and securely. You cannot recover a forgotten passphrase, and without it, you will lose access to your encrypted workspace data.", -"Change Passphrase", -"Important: Save your new passphrase safely and securely. You cannot recover a forgotten passphrase, and without it, you will lose access to your encrypted workspace data.", -"Update Passphrase", -"Passphrase", -"Current passphrase", -"New passphrase", -"Confirm passphrase", -"Passphrase must be at least 8 characters", -"Passphrases do not match", -"Invalid input", -"Passphrase configured", -"Failed to configure passphrase", -"Passphrase updated", -"Failed to update passphrase", -"Decrypt stored secrets and remove workspace protection?", -"Encryption disabled", -"Failed to disable encryption", -"Incorrect passphrase", -"{workspaceName} is locked", -"Can't unlock this workspace?", -"Switch back to {workspaceName} so you can keep working.", -"Switch back to {workspaceName}", -"Unable to switch workspaces. Please try again.", -"Select the button below to export a copy of your data for backup or transfer to another device. The exported data includes conversations, prompts, models, settings, and other application data across all Workspaces.", -"@:data Backup Reminder Interval", -"How often to remind you to backup your data.", -"Danger Zone", -"Actions in this section are irreversible and may result in data loss. We recommend exporting a copy of your data before performing any actions here.", -"Clear Data", -"Permanently delete all application data including conversations, prompts, models, settings, and other related information across all Workspaces.", -"Restore @:data from Backup", -"Import a previously exported data zip file to restore conversations, prompts, models, settings, and other application data across all Workspaces. This action will overwrite all existing data.", -"Migrate", -"Msty App 1.x to Studio Migration", -"Step 2: Select Items to Migrate", -"Select Items", -"You can import Prompt Library Prompts, Remote Model Providers, Conversations, and Attachments into the current workspace you are in. If you want to import into a different workspace, please switch to that workspace first.", -"Migrating remote model providers will NOT carry over API keys, they must be re-entered. Some legacy models may not be supported in Studio.", -"If migrating attachments, first zip the attachments folder. You can migrate attachments separately after migrating the database or together with the database.", -"Database Migration", -"Step 1: Select Msty App 1.x Database File", -"Drag and drop your Msty Database file", -"Msty App 1.x database files are typically named `msty.db`", -"Attachments Migration", -"Migrate Separately", -"Step 3: Add Zipped Attachments Folder", -"Successfully migrated the attachments", -"Failed to migrate the attachments", -"Drag and drop your zipped attachments folder", -"Zip the entire attachments folder from Msty App 1.x. After selecting, you can migrate separately if adding after database migration.", -"Please select a database file and at least one table to migrate", -"Missing Data", -"Migrate your data from Msty App 1.x into Studio. Imported data will not overwrite existing data.", -"Successfully migrated {item}", -"Failed to migrate {item}", -"Migration In Progress...", -"{item} Migration Completed", -"{item} Migration Failed", -"Migrating {item}...", -"Migration Error", -"View Details", -"Message", -"Cause", -"Color Preference", -"Accent Color", -"Dark", -"Light", -"Default | Defaults", -"Base Color", -"Emerald", -"Lime", -"Green", -"Red", -"Orange", -"Amber", -"Yellow", -"Teal", -"Cyan", -"Sky", -"Indigo", -"Violet", -"Purple", -"Fuchsia", -"Pink", -"Rose", -"Slate", -"Gray", -"Zinc", -"Stone", -"Sandy", -"Lighter", -"Code Theme", -"RTL Support", -"Enable right-to-left layouts for languages like Arabic, Hebrew, and Persian. The entire workspace updates instantly when toggled.", -"Enable RTL Layout", -"Right-to-left layout is active across the app.", -"The app is currently using a left-to-right layout.", -"Mini Map", -"Enable the inline mini map message navigator with branch previews. When disabled, a simpler Top/Bottom navigator is used.", -"Branch Breadcrumbs", -"Show a compact navigation bar at the top of conversations when branches exist.", -"Spellcheck", -"Enable or disable spellcheck for text input fields. Disabling can help when working with multiple languages or technical content. Your operating system's spell checker settings may override these preferences. Restart the application after changing this setting for the changes to take full effect.", -"Language & Localization", -"Switch between interface languages, preview developer mode, or import a temporary locale file. If you want to contribute a translation, please visit https://github.com/cloudstack-llc/msty-studio-i18n", -"Language", -"Download Template", -"Download this built-in locale JSON file.", -"Download the current custom locale you imported.", -"Download an empty template based on the base locale.", -"Import Locale", -"Imported locales last only until you restart or refresh the app.", -"Locale Imported", -"Now using {code}. Review the interface to confirm translations.", -"We couldn't import that locale file. Make sure it's valid JSON based on the template.", -"Developer Mode", -"Security", -"Configure security settings for the application", -"Disable Web Security", -"This may help you resolve some CORS related issue. However, this is not recommended and may expose your application to security risks. Disable it only if you know what you are doing. You must restart the app for this setting to take effect.", -"Apply & Restart", -"Font Style", -"Galaxy Far Away", -"Everything Everywhere", -"Home Alone", -"Lord of the Loops", -"Rendering Modules", -"@:select Rendering Modules", -"Allow Msty Studio web to connect to this device to run remote tools and access local models. This service must be actively running to allow remote connections.", -"Enable Service", -"Connection Token", -"Remember Token", -"Enter a strong connection token", -"This token is used to authenticate the connection between Msty Studio and this app when connecting remotely. You can regenerate it at any time to invalidate the previous token. Make sure to use a strong token and keep it secret.", -"Remote Service is now active", -"Error Enabling Connector", -"Failed to enable Remote Service. Please check the logs for more details", -"Copy Local URL", -"Copy Tunnel URL", -"Remote Service is now disabled", -"Enable Tunneling (Experimental)", -"Set up @:localAIService to run AI models locally on your device.", -"Models Location", -"Configure where your Local AI models are stored.", -"Use Existing Models", -"Use models you already have without downloading them again.", -"@:service Configurations", -"These configurations are applied to the @:localAIService when it starts. @:localAIService will automatically restart after you save any changes.", -"Configure Port Number", -"Port number for @:localAIService{'.'} Leave empty to use default.", -"Maximum Parallel Chats", -"Maximum number of concurrent chat sessions (when using split mode).", -"Maximum Loaded Models", -"Maximum number of LLMs loaded at the same time. Keeping more models in memory speeds up initial responses but uses more system resources.", -"Enable Network Access", -"Allow other devices on your network to access this @:localAIService through this device’s IP address.", -"Allowed Network Origins", -"List permitted network origins here (comma-separated). Each entry must begin with http:// or https://. Use * to permit all origins.", -"e.g. https://msty.studio, http://localhost:3000, *", -"Allow Access from Msty Studio", -"Allow connections from Msty Studio Web to this app so it can access @:localAIService{'.'}", -"Capture @:service Logs", -"Enable logging to capture service data for debugging. Use this option only when necessary.", -"Enter valid JSON to set environment variables for the @:localAIService{'.'}", -"You have unsaved changes in the @:localAIService Configurations. Once you save, @:localAIService will be restarted with the new configurations.", -"Save Changes and Restart Service", -"@:localAIService Configurations saved and service restarted", -"Failed to save @:localAIService Configurations. Please check the logs for more details.", -"@:model Configurations", -"These configurations get applied to all models during chat sessions.", -"Model Keep-Alive Timeout", -"Time (in minutes) after which the model will be unloaded from memory if not used.", -"Enter valid JSON to pass extra parameters to models during chat sessions.", -"You have unsaved changes in the @:settings.localAI.modelConfigurations.title{'.'} Make sure to save them before starting a new chat session.", -"@:settings.localAI.modelConfigurations.title saved", -"Failed to save @:settings.localAI.modelConfigurations.title. Please check the logs for more details.", -"Open Local AI Settings", -"Manage Local AI Models", -"Browse, install, and manage AI models for local inference.", -"Open Local AI Models Hub", -"Vibe CLI Proxy", -"Unified proxy for AI coding assistants. Connect to Claude Code, ChatGPT, Gemini, Qwen Code through a single local endpoint.", -"Installs CLIProxyAPI binary to connect AI coding assistants (Claude Code, ChatGPT, Gemini, Qwen) via local proxy with OAuth authentication.", -"Install Vibe CLI Proxy", -"Start or stop the Vibe CLI Proxy service.", -"Service Endpoint", -"Use this endpoint for OpenAI-compatible requests routed through Vibe CLI Proxy.", -"Network host: {host}", -"Endpoint copied", -"Version", -"Installed CLIProxyAPI version.", -"Current version", -"Reinstall", -"Not installed", -"Service Configurations", -"Configure port, authentication directory, and network access for the proxy.", -"Port", -"Retries", -"Auth directory", -"Enable network access", -"Allow other devices on the network to reach the proxy.", -"Capture service logs", -"Persist proxy logs for troubleshooting (may increase disk usage).", -"Enable remote management", -"Expose management endpoints; requires a secret key.", -"Management secret key", -"Vibe CLI Proxy configurations updated", -"Failed to update Vibe CLI Proxy configurations", -"The local port where the proxy service listens for requests.", -"Number of retry attempts for failed upstream requests.", -"Directory where authentication tokens are stored.", -"Secret key required for remote management operations.", -"Auth Folder", -"Path where Vibe CLI Proxy stores OAuth tokens for connected providers. Managed automatically; not editable.", -"Authentication", -"Securely link your AI accounts so Vibe CLI Proxy can call their APIs on your behalf. When you connect, a browser window opens for that provider where you complete sign-in.", -"Opening browser for OAuth…", -"Complete authentication in your browser, then return here.", -"Failed to start OAuth flow", -"Device Authorization", -"Enter the code below at the authorization page to complete authentication.", -"Copy Code", -"Code copied to clipboard", -"Open GitHub", -"Important: Vibe CLI Proxy is a local proxy to third-party CLI coding agents. By proceeding, you accept full responsibility for compliance with each AI provider's terms of service. Use at your own risk. Msty is not liable for any account issues or service violations that may arise.", -"Set @:mlxService to run optimized AI models on your Apple Silicon Mac.", -"Configure where your MLX models are stored.", -"Open MLX Settings", -"Manage MLX Models", -"Browse, install, and manage MLX models optimized for Apple Silicon.", -"Open MLX Models Hub", -"System Compatibility", -"Check if your system is compatible with MLX.", -"Check Again", -"Not checked", -"Compatible", -"Not compatible", -"MLX Requirements:", -"Apple Silicon Mac (M1, M2, M3, M4)", -"macOS 13.0 or later", -"Unified memory architecture", -"Set @:llamacppService to run efficient AI models on Windows, macOS, and Linux.", -"Configure where your LLaMA.cpp models are stored.", -"Open LLaMA.cpp Settings", -"Manage LLaMA.cpp Models", -"Browse, install, and manage LLaMA.cpp models for cross-platform inference.", -"Open LLaMA.cpp Models Hub", -"Check if your system is compatible with LLaMA.cpp.", -"LLaMA.cpp requires the desktop application", -"System Information", -"Platform", -"Architecture", -"Available Memory", -"GPU", -"LLaMA.cpp Requirements:", -"Desktop application (Windows, macOS, or Linux)", -"At least 4GB RAM (8GB+ recommended)", -"Sufficient storage for models (varies by model size)", -"Optional: GPU for acceleration (CUDA, Metal, OpenCL)", -"CPU Threads", -"Number of CPU threads to use during inference. Set to -1 to auto-detect based on your system (maps to the --threads flag).", -"Concurrent Requests", -"Number of chats that can run at the same time per model (maps to --parallel flag). With parallel=2, each chat gets half the context size.", -"Concurrent requests", -"Enter valid JSON to set environment variables for llama-server process. These variables have less priority than CLI args set in the Service and Model Configurations.", -"You have unsaved changes in the @:settings.llamacpp.modelConfigurations.title{'.'} Make sure to save them before starting a new chat session.", -"@:settings.llamacpp.modelConfigurations.title saved", -"Failed to save @:settings.llamacpp.modelConfigurations.title. Please check the logs for more details.", -"MLX", -"@:mlx Service", -"LLaMA.cpp", -"@:llamacpp Service", -"Settings and Configs", -"Prompts", -"API Keys", -"Create New Workspace", -"Switch Workspace", -"Switch to {workspaceName} Workspace", -"Hide Workspace Tray", -"Show Workspace Tray", -"Workspace switched!", -"{workspaceName} is now the active workspace", -"Delete Workspace", -"Workspace {workspaceName} is active", -"Your current active Workspace is: {workspaceName}", -"New Workspace", -"Edit Workspace", -"Workspace Name", -"What to copy from {activeWorkspace} workspace?", -"Copying items is disabled because the active workspace has a passphrase set.", -"Create and Switch", -"Create and Stay", -"Workspace name already exists", -"Invalid or duplicate workspace name", -"Workspace updated", -"Failed to update Workspace", -"Workspace created and switched", -"Workspace created", -"Failed to create Workspace", -"Are you sure you want to delete {workspaceName}? All data associated with this workspace will be deleted. This action cannot be undone.", -"@:download Workspace @:data", -"Workspace {workspaceName} deleted", -"Failed to delete Workspace", -"Export Workspace", -"Workspace {workspaceName} data exported as {fileName}", -"Failed to export Workspace {workspaceName}", -"@:import Workspace", -"Drag and drop a zipped Msty Workspace file to import and create a new Workspace. In case of duplicate names, the imported workspace will be renamed. You can change it later.", -"Workspace {workspaceName} has been imported", -"Failed to import Workspace", -"Attachments", -"Documents", -"Images", -"Webpages", -"YouTube Links", -"Drop Them!", -"@:select all", -"Deselect all", -"Drag-and-drop {attachmentType} here", -"Add New Attachments", -"Add {documentTypes} as well as some other code files", -"Add .png, .jpg, or jpeg images", -"Drag-and-drop or browse more", -"or paste comma-separated URLs", -"Click to manage attached {attachmentType}", -"Selected model may not support image attachments.", -"Click to install vision capabilities.", -"Checking vision capabilities...", -"Installing vision capabilities...", -"{count} document attached | {count} documents attached", -"{count} image attached | {count} images attached", -"{count} webpage attached | {count} webpages attached", -"a webpage link | webpage links", -"Hold {key} to share with Synced Splits", -"{count} YouTube link attached | {count} YouTube links attached", -"Failed to attach files", -"Failed to attach webpages", -"Failed to import YouTube links info. {errorMessage}", -"Detach all", -"Detach All", -"Are you sure you want to detach all {attachmentType}? These {attachmentType} will not be available in the conversation anymore across all splits.", -"Maximum Result", -"Attachments detached", -"Manage keys", -"A valid Jina API Key is required to use this feature. You can visit the following link to get one for free:", -"You currently have {count} Jina API key(s) added. You can add add more keys and Msty will pick a random valid key to use for the request.", -"New Jina API Key", -"Edit Jina API Key", -"Available Keys", -"Key is {status}. Click to re-verify", -"Verify Key and Add", -"Add a new Jina API key to use with the Jina Reader and Search endpoints. You can add multiple keys and verify them to ensure they are valid. When using the keys, Msty will pick a random valid key to use for the request.", -"All Good!", -"Key seems to be valid and ready to use", -"Jina API Key added", -"Error{status}!", -"Failed to add Jina API Key. Please check the API key and make sure it is valid.", -"Token Budget", -"Maximum number of tokens to use for Jina API requests. This helps control costs and response length.", -"Real Time @:data", -"Click to toggle RTD; double-click to configure", -"@:rtd.title Contexts", -"Source removed", -"Failed to remove source", -"Failed to update source", -"Search Provider", -"Jina", -"Use @:remoteToolsConnector.title", -"No sources available", -"Save {providerName} as default search provider", -"{providerName} it is!", -"{providerName} is now the default search provider", -"Auto with Fallback", -"Google", -"Brave", -"Ecosia", -"Custom Search Query", -"This query will be used for searching. Leave it empty to use the prompt as a query", -"Limit by Domain", -"e.g. reddit.com or gov or (site:reddit.com OR site:gov)", -"Enter comma separated domains e.g. reddit.com,wikipedia.com", -"Extra Operators", -"Search Date Range", -"After date - Before date", -"@:rtd.title Enabled", -"API", -"@:remoteToolsConnector.title", -"Use @:rtd.jina", -"Use @:rtd.settings.google", -"@:rtd.settings.google @:apiKey", -"Custom Search Engine ID", -"@:rtd.settings.google @:rtd.google.cseIdLabel", -"Use @:rtd.settings.brave", -"Filter Results", -"@:rtd.settings.brave @:apiKey", -"SearXNG", -"Engines", -"Comma-separated list of engines to use e.g. google, brave etc.", -"Extra Params", -"Add extra params. This should be a valid JSON object.", -"Your SearXNG server must have JSON enabled as well as be served over HTTPS. For a workaround over HTTP on some browsers, check out our docs at https://docs.msty.studio", -"Use @:rtd.searXng.title", -"Tavily", -"Use @:rtd.tavily.title", -"Search Topic", -"Category of search", -"News", -"Finance", -"Enter @:rtd.tavily.title @:apiKey", -"Search Depth", -"Depth of the search", -"Advance", -"Basic", -"Time Range", -"Time range back from the current date", -"Exa", -"Use @:rtd.exa.title", -"Enter @:rtd.exa.title @:apiKey", -"Ollama", -"Use @:rtd.ollama.title", -"Enter @:rtd.ollama.title @:apiKey", -"Disable @:rtd.title", -"@:rtd.title disabled", -"Failed to disable @:rtd.title", -"Remote Service", -"To use this feature, you need to connect with @:remoteToolsConnector.title{'.'}", -"RTD is experimental and may not work as expected.", -"@:remoteToolsConnector.title - Connected", -"@:remoteToolsConnector.title - Disconnected", -"@:connect with @:remoteToolsConnector.title", -"@:connect @:remoteToolsConnector.title first", -"@:reconnect with @:remoteToolsConnector.title", -"@:disconnect Now", -"Check Connection Health", -"Edit Connection Details", -"You do not have permission to access this feature", -"Connect to @:remoteToolsConnector.title", -"Save and Connect", -"Remember @:connectionInfo", -"@:import @:connectionInfo", -"Drag and drop Msty Remote Connection Config file to import and connect to @:remoteToolsConnector.title{'.'}", -"@:connectionInfo imported", -"Failed to import @:connectionInfo", -"Export Saved @:connectionInfo", -"@:connectionInfo exported", -"Failed to export @:connectionInfo", -"Connected!", -"@:remoteToolsConnector.title connected at {url}", -"Failed to connect with @:remoteToolsConnector.title{'.'} Make sure the @:remoteToolsConnector.title is running and accessible at the provided URL.", -"Token is missing. Please check the token and try again.", -"Forget Previous @:connectionInfo", -"@:connectionInfo forgotten", -"Tool Command Paths", -"If you are using Toolsets, set the paths to the commands you are using.", -"@:select or enter a command", -"Enter full path to the command", -"Assign @:path", -"Disconnected!", -"Disconnected from @:remoteToolsConnector.title", -"Forge Mode", -"Forge mode gives you a blank canvas and a powerful writer to create, edit, style and refine content freely.", -"Forge", -"@:forge.title Content", -"Forging Content", -"Edit Raw Markdown", -"Edit as Branch", -"This content has been forged. Raw markdown editing is not allowed.", -"Changes saved", -"Failed to save changes", -"Write something or type / for options...", -"Enter details summary", -"Simplify", -"Fix Spelling & Grammar", -"Make Shorter", -"Make Longer", -"TL;DR;", -"Emojify", -"@:change Tone", -"Academic", -"Business", -"Casual", -"Child Friendly", -"Conversational", -"Emotional", -"Humorous", -"Informative", -"Inspirational", -"Professional", -"Narrative", -"Objective", -"Persuasive", -"Poetic", -"Clear Formatting", -"Bold", -"Italic", -"Underline", -"Strikethrough", -"Code", -"Code Block", -"Blockquote", -"Undo", -"Redo", -"Texts", -"Paragraph", -"Heading 1", -"Heading 2", -"Heading 3", -"Lists", -"Bullet List", -"Numbered List", -"Task List", -"What do you want to forge today?", -"Forge Writer", -"Type your custom prompt...", -"Ask", -"Ask the model to generate a response based on a custom prompt", -"@:forge.title Canvas", -"New @:forge.forgeCanvas", -"Add New @:forge.forgeCanvas", -"Preview", -"Prompt | Prompts", -"Discard", -"Insert", -"Regenerate", -"Rewrite", -"Exit", -"Custom Prompt", -"Markdown", -"JSON", -"HTML", -"Formatted", -"Invalid @:json", -"@:download as @:markdown file", -"@:download as @:json file", -"@:download as HTML file", -"Copy @:markdown to Clipboard", -"Copy HTML to Clipboard", -"Copy Text to Clipboard", -"Copied!", -"Content copied to clipboard as @:markdown", -"Content copied to clipboard as HTML", -"Content copied to clipboard as formatted text", -"Content copied to clipboard as @:json", -"{item} copied to clipboard", -"Content exported to clipboard as @:json", -"Variable | Variables", -"@:pinned {item}", -"Pin {item}", -"{item} pinned", -"Unable to pin {item}", -"Unpin {item}", -"{item} unpinned", -"Unable to unpin {item}", -"Default {item}", -"Set {item} as default", -"{item} set as default", -"Unable to set {item} as default", -"Default {item}. Click to unset.", -"{item} removed as default", -"Model", -"Provider sorting", -"Created At", -"Group by provider", -"Model sorting", -"Recent", -"Filter by purpose", -"All purposes", -"@:model Settings", -"Sync @:split", -"Split | Splits", -"Template | Templates", -"Apply Changes", -"Split @:preset | Split @:preset", -"New @:preset", -"Split {index}", -"@:delete @:preset", -"Import @:preset | Import @:preset", -"Drag and drop a zipped Msty presets file to import and create new presets. In case of duplicate names, the imported presets will be renamed. You can change it later.", -"@:preset imported", -"Failed to import presets", -"Export @:preset | Export @:preset", -"Export Selected @:preset | Export Selected @:preset", -"Split preset exported as {fileName} | Split presets exported as {fileName}", -"Failed to export preset | Failed to export presets", -"@:delete @:preset | Delete @:preset", -"@:delete Selected @:preset | Delete Selected @:preset", -"Are you sure you want to delete {presetName}? | Are you sure you want to delete {count} presets?", -"Split preset deleted | Split presets deleted", -"Could not delete split preset | Could not delete split presets", -"Split preset updated", -"Could not update split preset", -"Split preset saved", -"Could not save split preset", -"No @:splitPreset.title available.", -"Get started by adding or importing a new @:splitPreset.title", -"Invalid Templates", -"Some templates are invalid or missing required fields. Please correct them before continuing.", -"Shadow Personas", -"Create Shadow Persona", -"Edit Shadow Persona", -"Assigned Persona", -"Change Persona", -"Change Shadow Persona", -"Current Persona", -"Select New Persona", -"Waiting for completion", -"Changing the persona will reset the analysis context and may affect continuity.", -"No Persona Assigned", -"Hide Shadow Personas", -"Show Shadow Personas", -"No splits being monitored", -"Monitoring {count} split (click to show) | Monitoring {count} splits (click to show)", -"Monitoring {count} split | Monitoring {count} splits", -"Activate", -"Deactivate", -"Process Now", -"Processing...", -"Create and Assign", -"Latest Insight", -"No output yet", -"Outputs", -"View Latest", -"View History", -"No history available", -"Select version", -"Shadow Persona Name", -"e.g., Technical Analyst, Performance Monitor", -"Switch Shadow Persona", -"Select a shadow persona to switch to", -"Select Shadow Persona", -"Search shadow personas...", -"Description (Optional)", -"Describe what this shadow persona observes or analyzes", -"Select Persona", -"Choose a persona to use", -"Select Splits to Monitor", -"Choose splits to monitor", -"Choose splits to monitor (can be set later)", -"Splits can be dynamically assigned and managed after creation", -"Update Trigger", -"Message Interval", -"Time Interval", -"Messages Per Split", -"Max Context", -"Synthesis Mode", -"Output Format", -"Max Processing Time", -"Version Management", -"Max Versions", -"Advanced Settings", -"Include System Messages", -"Auto Delete Old Versions", -"Waiting for splits", -"Processing now", -"No Shadow Personas", -"Create a Shadow Persona to monitor and analyze your conversation splits", -"Unlock Shadow Personas", -"Experimental", -"Shadow Personas is an experimental feature that analyzes conversations and generates alternative perspectives and insights in parallel.", -"No Output Yet", -"This Shadow Persona hasn't generated any output yet", -"Save this conversation to enable Shadow Persona processing", -"Delete Shadow Persona", -"Are you sure you want to delete \"{name}\"? \"{name}\" will be deleted from all the conversations it is attached to. This action cannot be undone.", -"Successfully deleted the shadow persona", -"Failed to delete the shadow persona", -"Detach Shadow Persona", -"Detach", -"Detach \"{name}\" from this conversation? The shadow persona will remain available for other conversations.", -"Successfully detached the shadow persona", -"Failed to detach the shadow persona", -"Successfully switched the shadow persona", -"Failed to switch the shadow persona", -"Successfully updated the shadow persona", -"Failed to update the shadow persona", -"Successfully created the shadow persona", -"Failed to create the shadow persona", -"Queue Cleared", -"Cancelled {cancelledCount} queued item | Cancelled {cancelledCount} queued items", -"Queue Updated", -"Cancelled {cancelledCount} auto-triggered item | Cancelled {cancelledCount} auto-triggered items", -"Queue Full", -"Processing queue is full. Please wait for current items to complete", -"Already Processing", -"This conversation is already being processed", -"Every Message", -"Every {n} Messages", -"Manual Only", -"Automatic", -"Runs after each message (fastest, more frequent)", -"Runs after {n} messages (batched)", -"Only when you click Process Now", -"Auto", -"Combined Analysis", -"Per Split", -"Comparative", -"Picks the best mode based on splits and intent", -"One summary across all splits", -"Keep each split separate and labeled", -"Side-by-side differences and agreements", -"Auto will use Combined because only one split is present.", -"Auto will use Comparative because multiple models are in use.", -"Auto will use Per Split because splits use the same model.", -"Insights", -"Summary", -"Recommendations", -"Analysis", -"Locate splits", -"Manage Splits", -"Add all splits", -"Select all", -"{count} of {total} selected", -"Streaming", -"Starting", -"Collecting context from splits...", -"Waiting for conversation to complete", -"Analyzing conversation splits...", -"Shadow Persona will analyze once all responses are received", -"Tool Calls", -"Reasoning", -"Attach Existing", -"Attach Shadow Persona", -"Previous Version", -"Next Version", -"Attach", -"Select a shadow persona to attach to this conversation", -"Choose a shadow persona to attach", -"Queued #{position}", -"Add to Queue", -"Processing Queue", -"Remove from Queue", -"Removed from queue", -"in queue", -"Clear All", -"No items in queue", -"Est. wait: {time}", -"{count} item in queue | {count} items in queue", -"Monitoring & Queue", -"Monitored Splits", -"Toolbox", -"Msty @:remoteToolsConnector.title is not running; tools usage will be skipped.", -"Tool | Tools", -"A collection of tools to help you with your LLM work.", -"Available Tools", -"Available Toolsets", -"Set Default Parameters", -"Set Parameters", -"This dependency seems to be missing from your environment. Without this, the tool may not work as expected.", -"Default Parameters for {toolName}", -"These parameters will be used globally for all instances of {toolName} tool. You can override these when creating a toolset.", -"Arguments", -"@:select an @:argument and set its value. Leave it blank to skip setting a value.", -"Custom @:argument", -"Enter the name of the new @:argument{'.'} Separate multiple arguments with a comma.", -"eg. --arg1, someArg, -verbose", -"Environment Variables", -"@:select or enter a new Environment @:variable and set its value.", -"Add Environment @:variable", -"@:select an Environment @:variable", -"Add a new Environment @:variable", -"Default parameters saved for {toolName}.", -"Failed to save default parameters.", -"Add New Tool", -"Add your own MCP compatible tool to the toolbox. Once added, you can add it to a toolset, set parameters, and use it with a model.", -"Give it a name (uses the tool ID by default)", -"Tool ID", -"Unique tool identifier (auto-filled if detected from config)", -"Tool with this ID already exists. Please enter a unique ID.", -"Tool Added", -"Tool added to the toolbox. You can now add it to a toolset and use it with a model.", -"Tool added to the toolbox and a matching toolset was created. It's ready to use with a model.", -"Failed to add tool to the toolbox. {error}", -"Tool Configuration", -"Enter or paste tool configuration JSON. Accepts direct config or wrapped formats (will auto-extract toolId)", -"Show me an example of a tool configuration", -"The tool configuration accepts multiple formats including wrapped configs with mcpServers. It will auto-extract the toolId and name when possible. Must contain at minimum {command}. Dynamic arguments need to be wrapped in curly braces {curly} like so: {argExample}. Similarly, dynamic environment variables can be set using {envVarLabel}.", -"Auto-create toolset with same name", -"Edit Tool", -"Update the name, notes, and configuration of the tool.", -"Tool @:updatedSuccess", -"@:failedToUpdate tool.", -"Use external MCP tools powered by Msty @:remoteToolsConnector.title to extend your models' capabilities and enhance your LLM experience.", -"You can get started by importing many of the tools that Msty ships with or adding your own tools.", -"Note: These tools are not provided, tested, or maintained by Msty. We are merely providing a platform to use these and allowing to import them as a convenience. PLEASE USE THEM AT YOUR OWN RISK. Msty is not responsible for any issues that may arise from using these tools. Also, for support, please reach out to the tool's author.", -"Import Default @:toolbox.tools.title", -"{count} default tools imported successfully. You can create toolsets and use them with a model.", -"{count} default tools imported successfully and {toolsetCount} corresponding toolsets auto-created.", -"Failed to import default @:toolbox.tools.title", -"Delete Tool", -"Are you sure you want to delete {toolName}?", -"Tool deleted", -"@:failedToDelete tool", -"Delete All Tools", -"Are you sure you want to delete all tools? This action cannot be undone.", -"All tools have been deleted successfully", -"Failed to delete all tools", -"Tool configuration copied to clipboard", -"View Tools Usage", -"No Tool Calls Found", -"It seems there were some tools being able to the model but it did not make any tool calls. This could be because the model did not need to use any tools.", -"Toolset | Toolsets", -"No Toolsets found", -"Toolsets are a collection of tools with parameters. You can create a toolset and add tools to it. When chatting with a model, you can select one or multiple toolsets to use with the model.", -"Please add some tools to get started.", -"No tools in this toolset", -"Enabled features", -"Loading feature details…", -"All features", -"Unable to load feature details", -"Add New @:toolbox.toolsets.title", -"Create a new toolset to group tools together. You can add tools to the toolset and use it with a model. Make sure to set/overwrite the parameters for each tool in the toolset by clicking {icon} button.", -"Set Parameters for {toolName}", -"Set parameters for the {toolName} tool. You can override the default parameters set for the tool. Use the Tool Console to test the tool, view available features, and limit features if needed.", -"Toolset saved and added to the toolbox. You can now use it with a model.", -"@:failedToSave toolset.", -"Edit Toolset", -"Edit the name and notes of the toolset. You can also add or remove tools from the toolset and tweak the parameters or limit features for each tool by clicking {icon} button.", -"Toolset @:updatedSuccess", -"@:failedToUpdate toolset.", -"Delete Toolset", -"Are you sure you want to delete {toolsetName}?", -"Toolset deleted", -"@:failedToDelete toolset", -"Delete All Toolsets", -"Are you sure you want to delete all toolsets? This action cannot be undone.", -"All toolsets have been deleted successfully", -"Failed to delete all toolsets", -"Export @:toolbox.toolsets.title", -"For security, sensitive configuration values can be removed before exporting. Select which environment variables and arguments to scrub for each tool.", -"Environment variables to scrub", -"Arguments to scrub", -"Scrub custom arguments string", -"Select environment variables to remove values", -"Select arguments to remove values", -"No configuration data to scrub", -"Common sensitive values are pre-selected for your security.", -"Toolset configuration copied to clipboard", -"Toolset configuration downloaded", -"Failed to fetch toolset data for export", -"Some tools were not found and skipped: {tools}", -"{count} tool | {count} tools", -"View Tools & Notes", -"Tool Console", -"You can use this console to test {toolName} and see the output. You can also use it to test the tool with different parameters or limit the available features. All features are enabled by default, select the checkboxes to limit the features to only those selected.", -"List {toolName}'s Features", -"Missing {count} Required @:argument", -"@:continue with Missing @:argument", -"View Source on GitHub", -"Enable specific features for this tool", -"Search or pick features to allow", -"Currently enabled features", -"Tool Call", -"Add the required properties to call {featureName}. You can add extra properties if you want. Be careful with calling the tool just like that esp. without the right values.", -"@:select a property", -"Add a new property", -"Execute @:toolbox.toolsets.console.toolCall", -"Click to manage used toolsets", -"@:select model may not support tools.", -"{count} Active Toolset | {count} Active Toolsets", -"{count} Active Live Context | {count} Active Live Contexts", -"Live @:context", -"Live Contexts", -"Untitled Live Context", -"Select Source", -"Toggle to include or exclude this source from the context", -"Add New @:liveContexts.title", -"Create a new @:liveContexts.title source to add external data context to your conversation.", -"Failed to add @:liveContexts.title", -"@:liveContexts.title added", -"Edit @:liveContexts.title", -"Provide a prompt for Push-mode here; include any Pull-mode details in the Notes section.", -"Endpoint Details", -"URL", -"Custom Headers", -"Has Body", -"Custom Processing", -"Prompt Template", -"Request Headers", -"Add request headers as a JSON object. This will be sent with the request to the API endpoint.", -"{'{'}\n \"Authorization\": \"Bearer {'{'}apiKey:'key'{'}'}\",\n \"X-From\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}", -"Request Body", -"Add request body as a JSON object. This will be sent with the request to the API endpoint.", -"{'{'}\n \"q\": \"{'{'}query:'term'{'}'}\",\n \"from\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}", -"Dynamic Placeholders", -"Placeholder syntax", -"Placeholders:", -"Processing Function", -"Add a processing function to transform the response data before using it in the conversation. The function should return a string.", -"function process({'{'}data, placeholders{'}'}) {'{'}", -" // access data and optional placeholders\n return JSON.stringify(data)", -"{'}'}", -"Access via placeholders param", -"Use placeholders in code:", -"Enter test values for detected placeholders to test the endpoint.", -"@:liveContexts.title updated", -"Failed to update @:liveContexts.title", -"Delete @:liveContexts.title", -"Are you sure you want to delete {liveContextName}?", -"@:liveContexts.title deleted", -"Failed to delete @:liveContexts.title", -"No @:liveContexts.title found", -"@:liveContexts.title are external data contexts that you can add to your conversation. You can create a new @:liveContexts.title source and use it with a model.", -"Delete All @:liveContexts.contexts", -"Are you sure you want to delete all live contexts? This action cannot be undone.", -"All live contexts have been deleted successfully", -"Failed to delete all live contexts", -"Export @:liveContexts.title", -"For security, sensitive header values can be removed before exporting. Select which headers to scrub.", -"Headers to scrub", -"Select headers to remove values", -"Common sensitive headers are pre-selected for your security.", -"Live context configuration copied to clipboard", -"Live context configuration downloaded", -"Push", -"Pull", -"Push mode: runs automatically before the model replies", -"Pull mode: called on-demand by model", -"Mode | Modes", -"@:modes.mode", -"Exit {mode} @:modes.mode", -"Zen", -"a state of calm attentiveness", -"New @:modes.zenMode.title @:conversation.title", -"@:modes.vaporMode.vapor @:modes.mode", -"Vapor", -"Conversations will not be saved in your history and will disappear when you turn it off or navigate away", -"This will disappear when you turn off @:modes.vaporMode.vapor @:modes.mode or navigate away", -"Exit @:modes.vaporMode.vapor @:modes.mode", -"Enter @:modes.vaporMode.vapor @:modes.mode", -"@:save @:conversation.title", -"@:modes.vaporMode.vapor chat has been preserved", -"Failed to preserve @:modes.vaporMode.vapor chat", -"Focus @:modes.mode", -"Normal @:modes.mode", -"Query", -"Search Items", -"No results found", -"Try searching for a different term", -"@:conversation.title", -"Found {count} result | Found {count} results", -"Search {entity}", -"Look up {entity} quickly using keywords", -"Search matches all words by default (e.g., {example} → matches text containing both words in any order)", -"blue car", -"Use {operator} for partial matches (e.g., {example})", -"*", -"run* → runs, running", -"@:user {operator} to match any term (e.g., {example})", -"OR", -"apple OR orange", -"Use double quotes {operator} for exact matches (e.g., {example})", -"\"\"", -"\"blue car\"", -"Use {operator} to escape special characters (e.g., {example})", -"\"C++\", \"node.js\"", -"Clear Search", -"Helpful Tips", -"Hide Search", -"@:bookmark {item}", -"Jump to @:bookmarked {item}", -"@:bookmarked {item}", -"{item} @:bookmarked", -"Unable to bookmark {item}", -"@:bookmarked {item} has been deleted", -"No bookmarks available.", -"Get started by bookmarking {item}", -"Remove @:bookmarked {item}", -"{item} removed from bookmarks", -"Unable to remove {item} from bookmarks", -"Turnstile | Turnstiles", -"New @:turnstile.title", -"@:select a @:turnstile.title", -"Click to open or Alt+Click to add to queue", -"No Queued @:entry | {count}/{total} @:entry Queued | {count}/{total} @:entry Queued", -"Once your prompt is ready, click @:turnstile.queueEntry to add an entry to the queue.", -"Manage Saved Turnstiles", -"Save @:turnstile.title As", -"@:turnstile.title has been saved.", -"Failed to save turnstile.", -"Load @:turnstile.title", -"@:turnstile.title Loaded!", -"{count} entry loaded and enqueued. | {count} entries are loaded and enqueued.", -"Failed to load turnstile.", -"Clear Queue", -"Are you sure you want to clear the queue? This will remove all the messages you have added.", -"New Entry", -"Invalid Entries", -"Some entries are invalid or missing required fields. Please correct them before continuing.", -"Couldn't run {metaType}. Please make sure that it is not the first entry in the queue.", -"@:turnstile.title has been updated.", -"Failed to update turnstile. Have you set prompt and model?", -"Failed to save turnstile. Have you set prompt and model?", -"Delete Selected @:turnstile.title | Delete Selected @:turnstile.title", -"Delete @:turnstile.title", -"Are you sure you want to delete {turnstileName}? | Are you sure you want to delete {count} turnstiles?", -"No @:turnstile.title Available.", -"Get started by adding or importing a new @:turnstile.title{'.'}", -"@:new @:turnstile.title", -"@:entry {index}", -"Add @:message.renderingActions.continueGeneration", -"Add @:regenerate", -"Add @:persona.title", -"Add @:contextShield.title", -"Add @:contextShield.contextShieldWithSummary", -"Import @:turnstile.title", -"Drag and drop a zipped Msty @:turnstile.title to import and create new turnstiles. In case of duplicate names, the imported turnstiles will be renamed. You can change it later.", -"Turnstiles imported", -"Failed to import turnstiles", -"Export @:turnstile.title", -"Export Selected @:turnstile.title | Export Selected @:turnstile.title", -"@:turnstile.title exported as {fileName} | @:turnstile.title exported as {fileName}", -"Failed to export @:turnstile.title | Failed to export @:turnstile.title", -"Model Matchmaker", -"Adjust the gravity sliders for strengths like coding, reasoning, or math, and Matchmaker will rank and recommend the best models for your needs. Results may vary by data quality, model size, and task complexity.", -"Found your model?", -"Test and compare in Msty Studio.", -"Gravity", -"Remote Only", -"Ranked Models", -"No models found. Try adjusting your requirements.", -"Coding", -"The ability to write code in a programming language.", -"Agentic Coding", -"The agentic ability to write code in a programming language.", -"@:data Analysis", -"The ability to analyze data and generate insights.", -"Instructions Following", -"The ability to follow instructions and perform tasks.", -"GOAT: Generalist of All Trades", -"The ability to perform a wide range of tasks.", -"The ability to understand and generate human language.", -"Mathematics", -"The ability to perform mathematical calculations.", -"Paraphrasing", -"Demonstrated rewriting ability to rephrase any given text.", -"Critical Thinking - the ability to reason and make decisions.", -"Simplification", -"The ability to simplify any given complex text.", -"Story Generation", -"The ability to generate stories or narratives.", -"Summarization", -"The ability of summarizing textual and numerical information.", -"Tools Usage", -"The ability to call and use external tools.", -"Max Input Tokens", -"The max no. of tokens accepted in one call.", -"The max no. of tokens generated in one call.", -"Input Tokens Savings", -"Input Cost/Million Tokens", -"The cost savings of generating input tokens.", -"Output Tokens Savings", -"Output Cost/Million Tokens", -"The cost savings of generating output tokens.", -"Normalized Score", -"Reset Strengths", -"@:save Strengths As @:preset", -"Failed to save strengths preset.", -"Strengths preset saved.", -"Strengths preset loaded.", -"Failed to delete strengths preset.", -"Strengths preset deleted.", -"Model Cost Calculator", -"Calculate and compare costs for AI models from OpenAI, Anthropic, Google, and more. Estimate your expenses based on input/output token usage and model pricing. These are estimates only and actual costs may vary.", -"Token Inputs", -"Filters", -"VRAM Calculator", -"Check to see if a model fits your device's VRAM before downloading or running it. This calculator provides estimated VRAM requirements based on model architecture and size. Select one of the options below to get started.", -"Copy {item} to Workspaces", -"Copy/Move {item} to Workspaces", -"Action", -"Copy {item} to one or more workspaces.", -"Copy/Move {item} to one or more workspaces.", -"{item} copied to {count} workspace | {item} copied to {count} workspaces", -"{item} moved to {count} workspace | {item} moved to {count} workspaces", -"Failed to copy {item} to {count} workspace | Failed to copy {item} to {count} workspaces", -"Failed to move {item} to {count} workspace | Failed to move {item} to {count} workspaces", -"Partially Copied", -"Could not copy {item} to {count} workspace | Could not copy {item} to {count} workspaces", -"Partially Moved", -"Could not move {item} to {count} workspace | Could not move {item} to {count} workspaces", -"Some workspaces({workspaces}) were skipped because {item} already exists in them", -"Already existing copies of {item} will be skipped.", -"Assignment | Assignments", -"Model Squad", -"@:modelSquad.title is a collection of specialized AI models, where each models is assigned to perform a specific task, such as Auto Title Generation, @:context Summary Generation, etc. When it's time to perform that specific task, the assigned model is selected automatically.", -"Add New @:assignment", -"No more tasks available", -"Auto Title Generation", -"@:contextShield.title Summary Generation", -"@:rtd.title Prompt Synthesis", -"Forge Content Generation", -"@:pii.scrubbing.title", -"Icon Finder", -"@:assignment saved", -"@:assignment failed to save", -"Assign Model for {task}", -"Select a model to assign to the {task} task in ModelSquad.", -"Select Model", -"Choose a model...", -"Currently assigned: {model}", -"Unknown model", -"Assign Model", -"Change Model", -"This model will be used automatically when the {task} task is performed.", -"Model assigned to {task} successfully!", -"Please select a model to assign.", -"Failed to save model assignment. Please try again.", -"PII (Personally Identifiable Information)", -"PII Scrubbing", -"Automatically detect and remove personally identifiable information from Knowledge Stack content before displaying it in conversations.", -"Using {model} for PII detection and removal.", -"No model assigned for @:pii.scrubbing.title in ModelSquad. Knowledge Stack retrieval will fail until a model is assigned.", -"@:pii.scrubbing.title configuration error - aborting Knowledge Stack retrieval for security", -"Error setting up @:pii.scrubbing.title - aborting Knowledge Stack retrieval", -"[PERSON_NAME]", -"[EMAIL_ADDRESS]", -"[PHONE_NUMBER]", -"[ADDRESS]", -"[ID_NUMBER]", -"[CREDIT_CARD]", -"[BANK_ACCOUNT]", -"[IP_ADDRESS]", -"[DATE_OF_BIRTH]", -"Personal Identifiers", -"Contact Information", -"Financial Information", -"Medical Information", -"Digital Identifiers", -"Biometric Data", -"Location Data", -"Persona | Personas", -"New @:persona.title", -"Active @:persona.title", -"No @:persona.title Available.", -"Get started by adding or importing a new @:persona.title{'.'} You can also import default Personas to get started.", -"@:contextShield.title Position", -"@:persona.title saved", -"@:persona.title failed to save", -"@:persona.title updated", -"Could not update @:persona.title", -"Delete Selected @:persona.title", -"Delete @:persona.title", -"Are you sure you want to delete {personaName}? | Are you sure you want to delete {count} @:persona.title{'?'}", -"@:persona.title deleted | @:persona.title deleted", -"Could not delete @:persona.title | Could not delete @:persona.title", -"Import @:persona.title", -"Drag and drop a zipped Msty @:persona.title to import and create new Personas. In case of duplicate names, the imported Personas will be renamed. You can change it later.", -"Personas imported", -"Failed to import Personas", -"Export @:persona.title", -"Export Selected @:persona.title | Export Selected @:persona.title", -"@:persona.title exported as {fileName} | @:persona.title exported as {fileName}", -"Failed to export @:persona.title | Failed to export @:persona.title", -"New Folder at Root", -"Set as Default Folder", -"Unset Default Folder", -"@:folder updated", -"Failed to update @:folder", -"@:folder created", -"Failed to create @:folder", -"Delete @:folder", -"Are you sure you want to delete {folderName} with all its @:persona.title{'?'}", -"@:folder deleted", -"Failed to delete @:folder", -"@:select a @:persona.title", -"Turn Auto Responder On", -"Turn Auto Responder Off", -"Hide and Isolate System Prompt", -"Isolate Response", -"Auto Responder", -"Context Count", -"Set the number of recent messages to use as context for the @:persona.title{'.'}", -"Few-Shot Prompts", -"Few-shot learning is a machine learning technique that allows you to train a model with a small amount of data. You can use few-shot prompts to provide examples to the model to help it understand the context and generate better responses.", -"Add New Shot", -"Cost", -"Cost in USD", -"Prompt Tokens", -"Completion Tokens", -"Total Tokens", -"Usage", -"Tokens", -"Tokens Processed", -"@:select a provider | @:select providers", -"Tokens Processed for {provider}", -"Total Usage", -"From {from} to {to}", -"Crunching the numbers", -"Throughput for {model}", -"Measured in tokens per second", -"Latency for {model}", -"Measured in seconds", -"Total", -"Min", -"Max", -"Avg", -"Today", -"Last 7 days", -"Last 14 days", -"Last 30 days", -"Last 3 months", -"Last 6 months", -"Last 12 months", -"Month to date", -"Year to date", -"All time", -"@:select date range", -"Month", -"Year", -"Day", -"Week", -"Insights Summary", -"No data available for the selected date range and providers.", -"No data available for the selected date range and provider.", -"Throughput", -"No data available for the selected date range, provider and model.", -"Latency", -"Hide {item}", -"{item} has been hidden", -"Unable to hide {item}", -"Unhide Parent {item}", -"Hidden Parent Content. Click to unhide.", -"Show {item}", -"Failed to verify license. Please try again.", -"Enter Aurum License Key", -"You are using the {licenseType} license.", -"License Key", -"Logout", -"You are using the {licenseType} license and logged in as Owner.", -"Activate Aurum License", -"Enter your license key to unlock premium features", -"Manage License", -"Aurum Lifetime", -"One-time purchase with lifetime access to premium features", -"Aurum Annual", -"Yearly subscription with continuous updates and premium features", -"One-time purchase", -"Yearly subscription", -"Verify & Activate", -"Deactivate License", -"Licensed to", -"Expires on", -"Expired", -"Expires in {days} days", -"Need a license?", -"Purchase at msty.ai", -"Already have a license?", -"Manage Activation", -"{item} has been cloned", -"Unable to clone {item}", -"Clone to {item}", -"Successfully cloned to a new {item} ", -"Unable to clone to a new {item}", -"Import {item} from JSON Clipboard", -"Import {item} from JSON File", -"{count} {item} imported successfully", -"@:importJson.successMessage.detail {item} to {destination}", -"{count} {item} imported successfully and corresponding toolsets auto-created", -"Invalid config or nothing to import. Please make sure the JSON is valid and try again.", -"Failed to import. Please check the JSON and try again.", -"Failed to import {failed} items: {items}", -"Drag and drop a JSON file to import {item}.", -"Team | Teams", -"@:create @:team.label", -"Invite User", -"Overview", -"Users", -"All Teams", -"Team {teamName} successfully created.", -"Member|Members", -"All Users", -"Create New Team", -"Edit Team", -"Add Users", -"Update Users", -"Add Users to Team", -"Team Name", -"Enter the new team name", -"Create a new team to manage resources.", -"No users assigned to this team.", -"Invited", -"Manage your teams and users.", -"A team is used to manage resources. You can add users to the team to collaborate and share access to resources.", -"Delete Team", -"Are you sure you want to delete", -"Please type {name} to confirm deletion.", -"Policy | Policies", -"@:toolbox.title", -"Allow user to use Toolbox feature", -"@:promptsLibrary.title", -"Allow user to use Prompts Library feature", -"@:persona.title", -"Allow user to use Persona feature", -"@:turnstile.title", -"Allow user to use Turnstile feature", -"@:knowledgeStack.title", -"Allow user to use Knowledge Stack feature", -"Allow user to use @:remoteToolsConnector.title feature", -"@:rtd.title", -"Allow user to use @:rtd.title feature", -"@:attachments.title", -"Allow user to use @:attachments.title feature", -"@:forge.forgeMode.title", -"Allow user to use @:forge.forgeMode.title feature", -"@:insights", -"Allow user to use @:insights feature", -"Msty Studio Web Access", -"Allow user to access Msty Studio from web browser", -"Msty Studio Desktop Access", -"Allow user to access Msty Studio from desktop application", -"Platform Access", -"Manage access to specific model providers.", -"You have reached your limit to invite users.", -"Logged In As", -"A secure login link will be sent to the provided email address. Aurum license holders must verify their license key before using this feature.", -"continue with License Key", -"Send Login Link", -"Team Users", -"Verifying you request to access. Please wait", -"You have been invited to join an account on Msty Studio. ", -"Something went wrong, please contact you account Admin.", -"A login link will be sent to the email provided above.", -"User {email} invited.", -"@:invalid @:email", -"User already exists", -"Failed to invite {email}.", -"Unable to load users list", -"User {email} delete successfully.", -"Unable to delete user {email}", -"Delete User", -"Are you sure you want to delete {email}?", -"Assign users to team {teamName}", -"Successfully assigned {user} to team {teamName}", -"Remove user from team", -"Drop {user} from team {teamName}", -"@:select users to add", -"Update {item}", -"Edit {item}", -"{item} has been updated", -"Unable to update {item}", -"Tools", -"Vision", -"Embedding", -"Image", -"Thinking", -"Label", -"@:select an @:environment.title", -"New @:environment.title", -"Environment | Environments", -"Add new environments to get started.", -"@:environment.title saved", -"@:environment.title failed to save", -"@:delete @:environment.title | Delete @:environment.title", -"@:delete Selected @:environment.title | Delete Selected @:environment.title", -"@:delete @:environment.title", -"Are you sure you want to delete {environmentName}? | Are you sure you want to delete {count} environments?", -"@:environment.title deleted | @:environment.title deleted", -"Could not delete @:environment.title | Could not delete @:environment.title", -"Backup @:environment.title", -"@:environment.title backed up", -"Failed to backup @:environment.title", -"Restore @:environment.title", -"Drag and drop a Msty Environment file to restore Environments. Note: All existing environments will be deleted and replaced with the imported ones.", -"@:environment.title restored", -"Failed to restore @:environment.title", -"Quick @:select Environment Variable", -"Search or select a variable to copy it to the clipboard", -"Make Active {itemType}", -"Active {itemType}", -"{itemName} is now the active {itemType}", -"Failed to make {itemName} as the active {itemType}", -"Move {item}", -"Move {count} {sourceType} to {item}", -"Are you sure you want to move the selected {item}?", -"{item} has been moved | {item} have been moved", -"Unable to move {item}", -"Could not determine the target project.", -"Could not determine the target folder.", -"{item} has been deleted", -"Unable to delete {item}", -"@:prompts Library", -"New @:prompt", -"@:search.label @:prompt", -"Quick @:prompt", -"Save to Quick @:prompts", -"Copy @:prompt to Clipboard", -"Type / to search the @:promptsLibrary.title", -"@:folder", -"@:prompt", -"Delete all @:prompt and @:folders", -"This will clear entire @:promptsLibrary.title and @:folder@:folders. There is no way to recover them after deletion.", -"All @:prompt deleted", -"Get started by adding or importing a new @:prompt{'.'} You can also import default @:prompts to get started.", -"Import Default @:prompts", -"You can now use the imported prompts in your conversations.", -"Copy {count} @:prompts to clipboard", -"Failed to import default @:prompts", -"Failed to copy @:prompt{'.'} Please try again.", -"Are you sure you want to delete {folderName} with all its sub-folders and prompts?", -"Add New @:prompt", -"Edit @:prompt", -"@:prompt Name", -"@:description", -"@:prompt updated", -"Failed to update @:prompt", -"@:prompt created", -"Failed to create @:prompt", -"Delete {count} @:prompt", -"Are you sure you want to delete?", -"@:prompt deleted", -"Failed to delete @:prompt", -"Import Default {item}", -"Default {item} imported", -"Failed to import default {item}", -"Isolate @:context", -"Remove @:context Isolation", -"Isolated @:context", -"Clear All @:context Isolations", -"All @:context Isolations cleared", -"Response Metrics", -"Long press or Alt click to cycle metrics", -"Quick View", -"Details View", -"Input | Inputs", -"Output | Outputs", -"Think", -"The model performed internal thinking but didn’t return a summary. To enable thinking summaries, apply the 'Thinking' tag to this model by clicking on the edit icon next to the model selection.", -"Service | Services", -"@:localAI @:service", -"Version | Versions", -"Invalid config. Please enter a valid JSON object.", -"Unsaved Changes", -"Day | Days", -"Every", -"Files", -"File | @:files", -"Really Delete?", -"Similarity", -"Save as Draft", -"Compose", -"Embedding Model", -"Document | Documents", -"Matched", -"@:folder Name", -"Add New @:folder", -"Edit @:folder", -"An error occurred. Please try again later. Check logs for more details.", -"Models Path", -"This is where {service} downloads and looks for models. You can update the path to use a custom folder.", -"Edit Models Path", -"Set your preferred location.", -"Note: Changing the models path will restart the {service} for the changes to take effect.", -"Select Models Path", -"Models path updated", -"Failed to update models path", -"Give your system prompt a short title. It will be added to Quick Prompts for easy reuse.", -"Quick @:prompt Name", -"System prompt saved to Quick Prompts.", -"Failed to save system prompt to Quick Prompts.", -"Add some system prompt text before saving to Quick Prompts.", -"Service Health", -"Status of the {service}. Having trouble? Try restarting or reviewing the logs.", -"Restart Service", -"Stop Service", -"Start Service", -"Failed to perform {action} on {service}. Please check the logs for more details.", -"{service} Restarted", -"Running", -"Stopped", -"Service Endpoint | Service Endpoints", -"Local endpoint for {service}. Use this to connect from other applications running locally on device.", -"Once the service is running, the address will be displayed here.", -"Because the service is available on the network, you can also connect to it using the Network Service URL from other devices.", -"Copy Network URL", -"Service Version", -"Shows the current version of {service}. To ensure optimal performance and access to new features, keep it up to date. Reinstallation is also available if needed.", -"Force Update {service}", -"Force Update {service} (CPU)", -"Force Update {service} (CUDA)", -"Force Update {service} (CUDA 12.4)", -"Force Update {service} (CUDA 13.1)", -"Force Update {service} (Vulkan)", -"Force Update {service} (ROCm)", -"Force Update {service} (OpenCL)", -"Force Update {service} (SYCL)", -"{service} is updated to the latest version {version}", -"Failed to update {service}. Please check the logs for more details.", -"Remove {service}", -"Are you sure you want to remove {service}? This will delete the service binary and all its configurations. You can reinstall it later from the settings page.", -"{service} has been removed successfully", -"Failed to remove {service}. Please check the logs for more details.", -"These configurations are applied to the {service} when it starts. {service} will automatically restart after you save any changes.", -"Allow other devices on your network to access this {service} through this device's IP address.", -"Allow connections from Msty Studio Web to this app so it can access {service}.", -"Capture Service Logs", -"You have unsaved changes in the {service} Configurations. Once you save, {service} will be restarted with the new configurations.", -"{service} Configurations saved and service restarted", -"Failed to save {service} Configurations. Please check the logs for more details.", -"Keyboard Shortcuts", -"Customize keyboard shortcuts for quick access to features", -"Search shortcuts...", -"Search by shortcut", -"Search by name", -"Press any key combination...", -"Press keys...", -"Not set", -"Edit shortcut", -"Global", -"Shortcut saved", -"Error saving shortcut", -"Shortcut reset", -"Reset to default", -"Reset all shortcuts", -"All shortcuts reset to defaults", -"No shortcuts found", -"Conflicts with: {name}", -"Navigation", -"@:settings.appearance", -"Conversation", -"Reset All Shortcuts", -"Are you sure you want to reset all keyboard shortcuts to their default values?", -"Customize Shortcuts", -"Contextual", -"System Wide", -"Option key shortcuts work in Msty. If they produce special characters instead, check System Settings > Keyboard > Input Sources", -"Keyboard Shortcuts Example", -"This component demonstrates how to register and use keyboard shortcuts in your components.", -"Registered Shortcuts:", -"Example Action 1", -"Scoped Action", -"Actions:", -"Update First Shortcut", -"Test Conflict Detection", -"Action Log:", -"No actions yet. Try pressing the shortcuts!", -"Developer Notes:", -"Shortcuts are automatically cleaned up when the component unmounts", -"Use component-scoped shortcuts to avoid ID conflicts", -"Platform-specific bindings are handled automatically (Cmd on Mac, Ctrl on Windows)", -"Check for conflicts before registering shortcuts that might collide with existing ones", -"Shortcuts can be global (work everywhere) or context-specific", -"Select split to remove", -"Press", -"Create New", -"Copy", -"No Messages Selected", -"Select at least one message to perform any actions", -"Export Message | Export Messages", -"Copy Message | Copy Messages", -"As JSON", -"As Markdown", -"Successfully {action} messages as {format}", -"Re-index {item}", -"{item} re-indexed successfully", -"Failed to re-index {item}", -"Are you sure you want to re-index {item}?", -"Recent|Recents", -"Recents & @:pinned", -"Knowledge Stack | Knowledge Stacks", -"@:knowledgeStack.title Contexts", -"Processing: {fileName}", -"Composing", -"Composing…", -"YouTube", -"Overall progress", -"In-flight:", -"Ignored for retrieval", -"Importing folder: {name}", -"Processing {count} knowledge stack(s)", -"Save Edits", -"Save Edits and Mark as Draft", -"Are you sure you want to save your edits? This will mark the Knowledge Stack as a draft and prevent it from being used in production until processed again.", -"Choose where to import the @:knowledgeStack.title", -"New @:knowledgeStack.title", -"Add description", -"Edit description", -"Add a description for this Knowledge Stack...", -"Saving...", -"Saved {time}", -"Basic Information", -"@:similarity Threshold", -"@:similarity Match", -"You have unsaved changes. Are you sure you want to leave this page? Your changes will be lost.", -"You have unsaved changes that will be lost if you reload the page.", -"No @:knowledgeStack.title selected", -"Knowledge Stack lets you bring in files, folders, notes, and YouTube transcripts, making them searchable and chat-ready through Retrieval-Augmented Generation (RAG)", -"Select a @:knowledgeStack.title", -"Select a @:knowledgeStack.title from the tree or create a new one", -"Edit Ignore Rules", -"Ignore Rules", -"Define patterns to exclude files and folders from processing.", -"Priority: Local .mstyignore/.gitignore → Folder rules → System defaults", -"# Enter patterns here, one per line\n# Example: *.log, node_modules/, !important.txt", -"Show examples & help", -"Log files", -"Temp files in all dirs", -"Entire directory", -"Exception pattern", -"Multiple image types", -"All files in test & subdirs", -"Case-insensitive match", -"Files starting with secret-", -"Use template", -"Clear all", -"Ignore rules updated successfully", -"Failed to update ignore rules", -"Delete @:folder '{folderName}'", -"Are you sure you want to delete this folder? All Knowledge Stacks inside it will be removed. There is no undo for this action.", -"Add New @:knowledgeStack.title", -"Delete @:knowledgeStack.title", -"Are you sure you want to delete this Knowledge Stack? All items inside it will be removed. There is no undo for this action.", -"Delete All @:knowledgeStack.title", -"This will clear entire @:knowledgeStack.title{'.'} There is no way to recover them after deletion.", -"All @:knowledgeStack.title deleted", -"Failed to delete all @:knowledgeStack.title", -"Chunk | @:knowledgeStack.chunksConsole.chunks", -"Chunks", -"@:knowledgeStack.chunksConsole.chunks Console", -"Use this console to understand how your Knowledge Stack, { title }, is being used and what chunks are being sent to a model when chatting. You can also delete a chunk if you think it's not relevant or useful.", -"Query Text", -"@:similarity", -"Highest", -"High", -"Medium", -"Low", -"# of @:knowledgeStack.chunksConsole.chunks", -"Source File", -"Source Note", -"Source Video", -"Source", -"Score", -"Search Results", -"No search results found. Try adjusting your query or search settings.", -"No results match the current similarity filter. Try adjusting the filter to show more results.", -"@:knowledgeStack.chunksConsole.chunk has been deleted", -"Search Type", -"Hybrid Search", -"Semantic Search", -"Keyword Search", -"This filter only affects which results are displayed below. It does not change the actual query.", -"Content has been scrubbed for PII removal", -"Used cached scrubbed version", -"Freshly scrubbed content", -"Run Query", -"{count} selected", -"Selected Stacks", -"Search Knowledge Stacks...", -"Recently Updated", -"No Knowledge Stacks found", -"No Knowledge Stacks available", -"No description", -"Number of @:knowledgeStack.chunksConsole.chunks", -"Synthesize Query", -"Enable PII Scrubbing", -"Max Full Content Contexts", -"Full Content Contexts can significantly increase token usage and may impact performance", -"Manage Stacks", -"Only completed stacks can be selected", -"Total Files", -"Vector Dimensions", -"Word Count", -"Reading Time", -"No embedding model configured", -"Model {modelId} not found", -"Model provider was automatically remapped", -"Change Query Embedding model", -"Select Query Embedding Model", -"The original embedding model for this Knowledge Stack is not available. Please select a new model.", -"The embedding model provider was automatically remapped to a compatible provider.", -"Current Model", -"No model configured", -"Select New Model", -"Default (Local)", -"@:files", -"Add .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx or any other supported file types.", -"Drag and drop files here", -"Browse Files", -"Drop files here", -"@:folders & Obsidian Vaults", -"Add folders containing files. You can drop Obsidian Vaults as well.", -"Drag and drop folders here", -"Browse Folders", -"Live Mode", -"Folders are monitored for changes and automatically update the Knowledge Stack", -"Duplicate Folder", -"Folder Already Added", -"This folder has already been added to the @:knowledgeStack.title", -"The folder '{path}' has already been added", -"Folder Processed", -"{count} files added successfully", -"Only folders can be added here. Please select a folder instead of individual files.", -"Select Folder", -"Please use the Browse button to select a folder in web mode", -"Processed", -"Error Processing Folder", -"Folder Explorer", -"Show Ignored Files", -"No folders added yet", -"Failed to Load Folder", -"Folder Removed", -"'{name}' has been removed from the Knowledge Stack", -"Failed to Remove Folder", -"Ignored", -"Loading...", -"Loading folder contents...", -"Are you sure you want to remove \"{name}\" from this Knowledge Stack? The folder and its files will remain on your system.", -"Expand folder", -"Collapse folder", -"This folder is ignored based on .mstyignore or .gitignore rules", -"This file is ignored based on .mstyignore or .gitignore rules", -"Actions menu", -"Empty folder", -"{count} item | {count} items", -"{count} hidden item | {count} hidden items", -"Obsidian Vaults", -"Add Obsidian Vaults to your Knowledge Stack. Msty will index all the notes in the vault.", -"Drag and drop Obsidian Vaults here", -"Browse Obsidian Vaults", -"Add your own notes to the Knowledge Stack. These notes will be chunked and embedded for semantic search.", -"Add Note", -"Enter note title...", -"Enter note content...", -"No notes added yet. Click 'Add Note' to get started.", -"Not saved yet", -"Add YouTube video links to index their transcripts. Msty will fetch transcripts and make them searchable.", -"Drag and drop YouTube links here or paste them below", -"Paste YouTube URLs here (space or comma separated)...", -"Paste YouTube URLs here ({count} detected) | Paste YouTube URLs here ({count} detected)", -"Auto-pull detected URLs", -"{count} URL detected | {count} URLs detected", -"{count} YouTube URL detected but not pulled yet | {count} YouTube URLs detected but not pulled yet", -"Mark for Reprocessing", -"Lock Temporarily", -"Lock Permanently", -"Ignore for Retrieval", -"Include in Retrieval", -"More actions", -"Load Mode", -"Select Load Mode", -"Distribution", -"Choose how this file should be loaded during Knowledge Stack composition.", -"Static Files", -"Dynamic Files", -"Sync Files", -"Special Modes", -"Special Modes Ratio", -"Static Mode", -"Uses the cached version from when the file was added. Fast and predictable, but doesn't reflect recent changes.", -"Cached content loaded from initial indexing", -"Dynamic Mode", -"Loads the latest file content on each composition. Slightly slower but always up-to-date.", -"Fresh content loaded on each composition", -"Recommended", -"Sync Mode", -"Watches for file changes and automatically recomposes. Best for small, frequently updated files.", -"Auto-recomposes when files change", -"Expensive", -"Start Sync Mode", -"Pause Sync Mode", -"Pause All", -"Sync Mode Started", -"Now watching file changes for {name}", -"Sync Mode Paused", -"File watching has been paused", -"Failed to Start Sync Mode", -"Please ensure the Knowledge Stack has files marked for Sync Mode", -"All Sync Modes Paused", -"File watching has been stopped for all knowledge stacks", -"{count} Active | {count} Active", -"Active Sync Modes", -"{count} file | {count} files", -"Started {time}", -"{stacks} stack, {files} files | {stacks} stacks, {files} files", -"{hours}h ago", -"{days}d ago", -"Analytics and Insights", -"Last Composed", -"Analytics Sections", -"Performance Timings", -"Summary Statistics", -"Content Breakdown", -"Query Settings", -"Reading Statistics", -"No Analytics Available", -"Analytics will be available after composing this Knowledge Stack.", -"No Analytics Sections Selected", -"Please select one or more analytics sections above to view insights about your Knowledge Stack.", -"Select All Sections", -"Loading Items", -"Splitting @:knowledgeStack.chunksConsole.chunks", -"Embedding @:knowledgeStack.chunksConsole.chunks", -"Composing Stack", -"Total Time", -"Some operations may run in parallel, so individual times may not sum to total time", -"File Reading", -"Database Write", -"# of Items", -"Total @:knowledgeStack.chunksConsole.chunks", -"Available @:knowledgeStack.chunksConsole.chunks", -"Skipped @:knowledgeStack.chunksConsole.chunks", -"Character Count", -"Ignored Items", -"Ignored for Retrieval", -"These items are excluded from search and retrieval operations", -"Percentage of items ignored", -"of {total}", -"YouTube Videos", -"No Ignored Items", -"All items in this Knowledge Stack are included in search and retrieval", -"Recommendation", -"FILES", -"OBSIDIAN VAULTS", -"FOLDERS", -"NOTES", -"YOUTUBE LINKS", -"Scrubbed @:knowledgeStack.chunksConsole.chunks", -"Cached @:knowledgeStack.chunksConsole.chunks", -"Coverage", -"Scrubbing Progress", -"Load Analytics", -"Failed to load PII analytics data", -"PII Analytics Not Loaded", -"Click \"Load Analytics\" to view PII scrubbing statistics", -"This score reflects how comprehensively PII scrubbing is applied to your Knowledge Stack. A higher score means more chunks have been processed for PII removal.", -"PII scrubbing is optional. Enable it in query settings only if your content contains sensitive personal information.", -"Measures how well sensitive information is protected in your Knowledge Stack", -"Not Enabled", -"Well Protected", -"Partially Protected", -"Limited Protection", -"Minimal Protection", -"Excellent privacy protection - nearly all content secured", -"Good privacy protection - most content is secured", -"Partial privacy protection - consider reviewing settings", -"Limited privacy protection - review sensitive content", -"PII scrubbing is not enabled. This is completely fine if your content doesn't contain sensitive personal information.", -"Consider enabling PII scrubbing only if your Knowledge Stack contains names, addresses, phone numbers, emails, or other personal data.", -"Significant content reduction ({percentage}%) - extensive PII found", -"Moderate content reduction ({percentage}%) - some PII removed", -"Minimal content reduction ({percentage}%) - low PII detected", -"No content size change - no PII detected or removed", -"All chunks processed successfully", -"Nearly all chunks processed successfully", -"Most chunks processed - some may need attention", -"Incomplete processing - check PII scrubbing configuration", -"Large knowledge base - consider increasing PII detection coverage", -"Many unprocessed chunks - review PII scrubbing settings", -"PII scrubbing is optional. Enable it in query settings if your content contains sensitive information like names, emails, or phone numbers.", -"PII scrubbing helps protect sensitive information. It's optional and can be enabled in query settings if needed.", -"Security Status", -"Privacy Status", -"When to Enable", -"Content Impact", -"Processing Efficiency", -"Scale Recommendation", -"Coverage Recommendation", -"Optional Feature", -"Privacy Option", -"Prompt Prefix", -"Privacy Optimization Score", -"PII Protection Level", -"PII Scrubbing Status", -"Unscrubbed @:knowledgeStack.chunksConsole.chunks", -"Original Size", -"Processed Size", -"Size Reduction", -"Privacy @:insgiths", -"Data has been modified", -"Show outdated data anyway", -"Content Distribution", -"{label} contribute {percentage}% of all chunks", -"Processing Issue", -"{label} have low efficiency ({efficiency}%)", -"Data Quality Issue", -"{count} content type(s) have high skip rates", -"Content Diversity", -"Single content type - consider diversifying sources", -"Excellent content diversity across multiple source types", -"Optimization Tip", -"Reduce chunk size to 800-1200 characters for better content granularity", -"Increase chunk size to 1500-2000 characters for better efficiency", -"Embedding Throughput", -"{rate} chunks/sec ({time}ms each)", -"Search Strategy", -"Balanced approach combining keyword + semantic search", -"AI-powered semantic search - best for conceptual queries", -"Traditional keyword search - best for exact terms", -"Retrieval Volume", -"Very low chunk count may miss relevant information", -"High chunk count may include noise and slow responses", -"Optimal chunk count for balanced retrieval", -"Content Filtering", -"Relaxed filtering - may include loosely related content", -"Strict filtering - highly focused results", -"Balanced filtering for relevant content", -"Guided Context", -"Custom prompt prefix will guide query interpretation", -"Lock Indicator", -"All items can be reprocessed", -"{percentage}% of items are locked", -"Most items are locked - limited reprocessing capability", -"Privacy & Security", -"Privacy protection enabled for sensitive data", -"No PII scrubbing - ensure content is not sensitive", -"Scale Optimization", -"Large knowledge base - increase chunk count for better coverage", -"Small knowledge base - consider reducing chunk count", -"Performance Profile", -"Configuration optimized for fast responses", -"Configuration optimized for high-quality results", -"High Lock Rate", -"{percentage}% of items are locked and won't be reprocessed", -"Consider unlocking temporarily locked items if they need updates", -"Over 50% of items are locked. This may significantly reduce the knowledge base's ability to stay updated.", -"Lock Status", -"Total Items", -"Temporarily Locked", -"Permanently Locked", -"Lock Status by Content Type", -"Temp. Locked", -"Perm. Locked", -"Lock Status @:insights", -"Content @:insights", -"Composition Optimization Score", -"Composition @:insights", -"Performance @:insights", -"Processing Phase Details", -"Total Processing Time", -"Total Locked Items", -"Efficiency", -"Load Mode Analytics", -"File loading behavior across your Knowledge Stack", -"Load Mode Distribution", -"Special Modes %", -"Visual Breakdown", -"No files in this Knowledge Stack", -"Load Mode options are only available in the desktop application", -"All files are using Static Mode. Enable Dynamic or Sync Mode for files to use the latest content.", -"Sync Mode Active", -"Watching {files} • Started {time}", -"Fresh", -"Live", -"High Sync File Count", -"{count} files are in Sync Mode", -"Consider using Dynamic Mode for less frequently updated files to reduce resource usage", -"Sync Mode Enabled", -"{count} files are automatically updating when changed", -"High Dynamic Mode Usage", -"{percentage}% of files are using Dynamic Mode", -"Static Mode may be sufficient for files that rarely change", -"Dynamic Mode Active", -"{count} files are loading fresh content on each composition", -"Static Mode Only", -"All files are using cached content from initial indexing", -"Enable Dynamic or Sync Mode for frequently updated files to ensure fresh content", -"Mixed Load Modes", -"{percentage}% of files are using special load modes", -"Compose Settings", -"@:knowledgeStack.chunksConsole.chunk Overlapping", -"Changing the embedding model will require recomposing the entire Knowledge Stack and even then there is a chance that recomposition will fail.", -"Learn more about embedding model compatibility", -"Select an embedding model", -"Select chunk overlapping", -"Select chunk size", -"Chunking Method", -"Recursive Character", -"Sentence", -"Choose how documents should be chunked into smaller pieces for better search and retrieval.", -"Overlapping", -"Choose how much overlap should be between chunks. Higher overlap can improve context but increase token usage.", -"@:knowledgeStack.chunksConsole.chunk Size", -"Set the maximum size of each chunk in characters. Smaller chunks can improve search accuracy but increase token usage.", -"@:knowledgeStack.chunksConsole.chunk Sizes To Ignore", -"Specify chunk sizes that should be ignored during processing. Useful for excluding very small or very large chunks.", -"Push Mode", -"Pull Mode", -"Knowledge Stack Context", -"Failed to load Knowledge Stack chunks. Please try again.", -"Search Settings", -"Search Query", -"Content", -"Full Content", -"@:knowledgeStack.chunksConsole.chunk Information", -"Knowledge Stack", -"chunks", -"Max @:knowledgeStack.chunksConsole.chunks", -"@:knowledgeStack.chunksConsole.chunk Retrieval Mode", -"Choose between Push mode where chunks are pre-fetched, or Pull Mode where the model can query Knowledge Stacks directly", -"@:knowledgeStack.chunksConsole.chunk Overlap", -"Synthesized Query", -"chunk | chunks", -"View Full Content", -"Full @:knowledgeStack.chunksConsole.chunk Content", -"Scrubbed", -"Original", -"@:knowledgeStack.chunksConsole.chunk ID", -"PII Status", -"PII Scrubbed", -"PII Un-scrubbed", -"Original content without @:pii.scrubbing.title", -"Query Analysis", -"Full Content Context Active", -"Documents Retrieved", -"Content Context", -"Keywords", -"Full Doc", -"Full Document", -"@:knowledgeStack.chunksConsole.chunks Visualizer", -"Visualize how documents are chunked", -"Open Visualizer", -"View Visualizer", -"Available Files", -"Loading files...", -"No files found", -"Select a File", -"Choose a file from the left to visualize its chunks and content", -"MIME Type", -"@:knowledgeStack.chunksConsole.chunks", -"Overlaps", -"Stitched Size", -"Show Overlaps", -"Hide Overlaps", -"Show @:knowledgeStack.chunksConsole.chunks", -"Show Stitched", -"Copy Content", -"Stitched Content", -"Un-scrubbed @:knowledgeStack.chunksConsole.chunks", -"Overlaps have been removed for clean text reconstruction", -"@:knowledgeStack.chunksConsole.chunk {number}", -"Overlap Previous", -"Overlap Next", -"This text overlaps with the previous chunk", -"This text overlaps with the next chunk", -"Character positions in file", -"Core content without overlaps", -"{count} chunks", -"Show Original", -"Show Scrubbed", -"Show Scrubbed Only", -"Show All @:knowledgeStack.chunksConsole.chunks", -"Per Page", -"{start}-{end} of {total} chunks", -"Loading chunks...", -"No items found", -"Select an Item", -"Choose a file or note from the left to visualize its chunks and content", -"Open Console", -"{count} @:knowledgeStack.chunksConsole.chunk Selected", -"Delete Selected", -"Clear Selection", -"Confirm Delete", -"Are you sure you want to delete {count} selected chunks? This action cannot be undone.", -"@:knowledgeStack.chunksConsole.chunks Deleted", -"Successfully deleted {count} chunks", -"{count} @:knowledgeStack.chunksConsole.chunk deleted successfully", -"Delete Failed", -"Force Compose", -"Overall Progress", -"{count} items exported", -"Items", -"Export completed successfully!", -"Saved to: {path}", -"Cancel All", -"Done", -"Exporting", -"Folder", -"Export failed", -"Import failed", -"Your changes to the Knowledge Stack have been saved. You will need to recompose it to apply the changes.", -"Knowledge stack saved and processing started", -"Cannot force compose: Knowledge stack must be saved first", -"Failed to force compose Knowledge Stack", -"Force compose started - all items will be reprocessed", -"Failed to update query settings", -"Query settings updated", -"just now", -"{minutes}m ago", -"Failed to select item", -"Failed to select folder", -"Knowledge Stack {title} processing completed", -"Knowledge Stack {title} processing failed", -"Nothing to compose for Knowledge Stack {title}", -"Error composing Knowledge Stack {title}", -"Importing from URL is only available in the desktop application", -"{count} @:knowledgeStack.title deleted!", -"Failed to create the @:knowledgeStack.title", -"Failed to save edits to the @:knowledgeStack.title", -"Folder '{name}' added to the Knowledge Stack", -"Folder '{name}' locked temporarily", -"Folder '{name}' locked permanently", -"Failed to lock the folder", -"Folder '{name}' unlocked", -"Failed to unlock the folder", -"Path: {path}", -"Name: {name}", -"Unknown", -"Loading PII analytics...", -"All items are unlocked and can be reprocessed when needed.", -"Abort Processing", -"Processing Failed", -"Error Message", -"Occurred at", -"Failed File", -"Error Summary", -"Technical Details", -"Stack Trace", -"Copy Details", -"Error details copied to clipboard", -"Click to see error details", -"File is null", -"Error checking if path is directory", -"Error processing folder", -"Failed to lock folder temporarily", -"Failed to lock folder permanently", -"Failed to unlock folder", -"Status: Completed", -"Status: Processing", -"Status: Pending", -"Status: Draft", -"Status: Needs Reprocessing", -"Status: Error", -"Status: Temporarily Locked", -"Status: Permanently Locked", -"Status: Aborted", -"Status: Unknown", -"Unlock Aurum Features", -"Upgrade to Aurum license for the most powerful AI features and advanced capabilities", -"Everything you need", -"View Pricing", -"Feature Matrix", -"Activate License", -"Aurum", -"Upload image…", -"Only image files are supported.", -"Image must be 1MB or smaller.", -"Profile image updated.", -"Failed to update image. Please try again.", -"Click to change profile image", -"Lost & Found", -"Find and recover lost workspaces from your computer. Only workspace databases are scanned and discovered, not attachments.", -"Lost & Found is experimental. Always keep backups of your workspace data before attempting recovery.", -"Scan for Lost Workspaces", -"Scan App Data", -"Scan Folder…", -"Workspace", -"Last Modified", -"Actions", -"Linked", -"Found", -"Restore current workspace", -"Import As New Workspace", -"Restore current workspace?", -"This will replace the data of the currently active workspace with the data from the selected recovered file. This cannot be undone.", -"Failed to import workspace", -"Workspace imported", -"Recovered workspace has been imported. Switch to it from the workspace tray if needed.", -"Failed to restore workspace", -"Workspace restored", -"Current workspace has been restored from the recovered file.", -"Failed to import recovered workspace", -"Failed to import recovered workspace (unexpected)", -"Failed to restore workspace from recovered file", -"Failed to restore workspace from recovered file (unexpected)", -"Quick filter...", -"Toggle filter", -"Toggle sidebar", -"Adjust", -"{item} is experimental and under active development. Please report any issues to the team.", -"File Type", -"Attachment Type", -"Browse Existing Attachments", -"View Associations", -"Delete Attachment | Delete Attachments", -"Are you sure you want to delete the attachment? All the associations to the attachment will also be removed. This action cannot be undone. | Are you sure you want to delete the attachments? All the associations to the attachments will also be removed. This action cannot be undone.", -"Successfully deleted the attachment | Successfully deleted the attachments", -"Failed to delete the attachment | Failed to delete the attachments", -"Search by Name", -"Filter by Attachment Type", -"Attachments Manager", -"No Attachments Found", -"You have no attachments available.", -"Associations for {attachmentName}", -"Search by Association Name", -"Filter by Associated Entity", -"No Associations Found", -"You have not used this attachment anywhere yet.", -"Association Name", -"Associated Entity", -"Jump to {entity}", -"Detach Association", -"Are you sure you want to detach the association from the {associationEntity}? This action cannot be undone.", -"Successfully detached the association", -"Failed to detach the association", -"AI Prompt", -"Describe what the icon represents...", -"Find Icon", -"Finding..." -] \ No newline at end of file diff --git a/tools/msty_ca/tr_001.json b/tools/msty_ca/tr_001.json deleted file mode 100644 index e9bf9be..0000000 --- a/tools/msty_ca/tr_001.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "You": "Vós", - "Select": "Selecciona", - "Conversations": "Converses", - "Copy to Clipboard": "Copia al porta-retalls", - "to copy markdown directly": "per copiar el markdown directament", - "Click to copy markdown directly": "Feu clic per copiar el markdown directament", - "to show more options": "per mostrar més opcions", - "Long press or Alt+click for more options": "Premeu llargament o Alt+clic per a més opcions", - "on message": "al missatge", - "@:select a model | @:select models": "@:select un model | @:select els models", - "@:manage Models": "@:manage els models", - "Required": "Obligatori", - "Optional": "Opcional", - "System Prompt": "Indicació del sistema", - "@:systemPrompt Attach @:mode": "Mode d'adjunció de la indicació del sistema", - "@:user Prompt": "Indicació de l'usuari", - "Delete {item}": "Suprimeix {item}", - "Delete All": "Suprimeix-ho tot", - "Create": "Crea", - "Edit": "Edita", - "Expand editor": "Amplia l'editor", - "Collapse editor": "Replega l'editor", - "Enable": "Activa", - "Disable": "Desactiva", - "Save": "Desa", - "Saved": "Desat", - "Cancel": "Cancel·la", - "Close": "Tanca", - "Bookmarked": "Marcat", - "Pinned": "Fixat", - "Update": "Actualitza", - "Apply": "Aplica", - "Reset": "Restableix", - "Icon": "Icona", - "Clear": "Esborra", - "API Key": "Clau API", - "Models": "Models", - "Available {itemType}": "{itemType} disponibles", - "Unavailable": "No disponible", - "Detected": "Detectat", - "Continue": "Continua", - "Undetected": "No detectat", - "Welcome!": "Us donem la benvinguda!", - "Plan": "Pla", - "All changes saved": "S'han desat tots els canvis", - "Toolbar": "Barra d'eines", - "Bookmark | Bookmarks": "Marcador | Marcadors", - "Waiting :: Hold on :: Just a moment :: One second :: Patience is a virtue :: Almost there :: Loading awesomeness": "S'està esperant :: Un moment :: Només un instant :: Un segon :: La paciència és una virtut :: Gairebé hi som :: S'està carregant la meravella", - "Searching the Web :: Browsing the internet :: Looking online :: Scouring the web :: Consulting the oracle :: Asking the internet nicely :: Diving into cyberspace :: Mining the web": "S'està cercant al web :: S'està navegant per internet :: S'està mirant en línia :: S'està escorcollant el web :: S'està consultant l'oracle :: S'està demanant amablement a internet :: S'està capbussant al ciberespai :: S'està minant el web", - "Querying @:knowledgeStack.title :: Searching your knowledge :: Looking through your docs :: Exploring your knowledge base :: Rifling through your wisdom :: Consulting your digital library :: Scanning your archives :: Digging through your notes": "S'està consultant la @:knowledgeStack.title :: S'està cercant en el vostre coneixement :: S'estan examinant els vostres documents :: S'està explorant la vostra base de coneixement :: S'està furgant en la vostra saviesa :: S'està consultant la vostra biblioteca digital :: S'estan examinant els vostres arxius :: S'està furgant en les vostres notes", - "Preparing Tools :: Getting tools ready :: Setting up tools :: Loading tools :: Sharpening the instruments :: Assembling the toolkit :: Warming up the engines :: Prepping the workspace": "S'estan preparant les eines :: S'estan enllestint les eines :: S'estan configurant les eines :: S'estan carregant les eines :: S'estan esmolant els instruments :: S'està muntant la caixa d'eines :: S'estan escalfant els motors :: S'està preparant l'espai de treball", - "Model is doing its magic ✨ :: AI is thinking :: Processing your request :: Working on it :: Crunching the numbers :: Neurons firing :: Pondering deeply :: Computing brilliance :: Engaging brain mode :: Summoning intelligence": "El model fa la seva màgia ✨ :: La IA està pensant :: S'està processant la vostra sol·licitud :: S'hi està treballant :: S'estan fent els càlculs :: Les neurones s'activen :: S'està reflexionant a fons :: S'està computant brillantor :: Mode cervell activat :: S'està invocant la intel·ligència", - "Processing Context :: Understanding context :: Analyzing context :: Reading the situation :: Connecting the dots :: Grasping the big picture :: Piecing it together :: Making sense of things": "S'està processant el context :: S'està entenent el context :: S'està analitzant el context :: S'està llegint la situació :: S'estan lligant els caps :: S'està copsant la visió de conjunt :: S'està encaixant tot plegat :: S'està donant sentit a les coses", - "Streaming :: Sending response :: Delivering answer :: Transmitting :: Beaming down results :: Flowing your way :: En route to you :: Coming in hot": "S'està transmetent en temps real :: S'està enviant la resposta :: S'està lliurant la resposta :: S'està transmetent :: S'estan teletransportant els resultats :: De camí cap a vós :: En ruta cap a vós :: Arriba ben calent", - "Scrubbing PII Data :: Protecting your privacy :: Removing personal info :: Anonymizing data :: Keeping secrets safe :: Privacy mode engaged :: Redacting the sensitive bits :: Going incognito": "S'estan netejant les dades personals :: S'està protegint la vostra privadesa :: S'està suprimint la informació personal :: S'estan anonimitzant les dades :: S'estan guardant bé els secrets :: Mode de privadesa activat :: S'estan ocultant les parts sensibles :: Mode d'incògnit activat", - "Synthesizing Query for Better Results :: Optimizing your question :: Enhancing query :: Refining search terms :: Polishing your request :: Fine-tuning the question :: Crafting the perfect query :: Making your words shine": "S'està sintetitzant la consulta per a millors resultats :: S'està optimitzant la vostra pregunta :: S'està millorant la consulta :: S'estan afinant els termes de cerca :: S'està polint la vostra sol·licitud :: S'està ajustant la pregunta :: S'està creant la consulta perfecta :: S'està fent brillar les vostres paraules", - "Fetching Live Contexts :: Gathering real-time data :: Pulling fresh insights :: Syncing with live sources :: Tapping into the data stream :: Collecting current intel :: Refreshing context feeds :: Harvesting live updates :: Connecting to the pulse": "S'estan obtenint els contextos en directe :: S'estan recollint dades en temps real :: S'estan obtenint coneixements nous :: S'està sincronitzant amb fonts en directe :: S'està accedint al flux de dades :: S'està recollint informació actual :: S'estan actualitzant els canals de context :: S'estan recol·lectant actualitzacions en directe :: S'està connectant amb el batec", - "Initializing...": "S'està inicialitzant...", - "Add": "Afegeix", - "Expand {group}": "Amplia {group}", - "Collapse {group}": "Replega {group}", - "Show extra add-ons": "Mostra els complements addicionals", - "Hide extra add-ons": "Amaga els complements addicionals", - "Model & Prompts": "Model i indicacions", - "Data & Knowledge": "Dades i coneixement", - "Tools & Personas": "Eines i personalitats", - "Unauthorized": "No autoritzat", - "Valid": "Vàlid", - "Invalid": "No vàlid", - "Done!": "Fet!", - "Confirm": "Confirma", - "Share with synced splits": "Comparteix amb les divisions sincronitzades", - "Source | Sources": "Font | Fonts", - "Grounding Sources": "Fonts de fonamentació", - "Manage": "Gestiona", - "Chat | Chats": "Xat | Xats", - "Advanced Options": "Opcions avançades", - "Duplicate": "Duplica", - "@:manage {item}": "@:manage {item}", - "Success!": "Correcte!", - "Notes": "Notes", - "View Notes": "Mostra les notes", - "Error!": "Error!", - "Warning": "Avís", - "Authorized": "Autoritzat", - "Not authorized": "No autoritzat", - "Authorize": "Autoritza", - "Re-authorize": "Torna a autoritzar", - "Remove authorization": "Suprimeix l'autorització", - "Failed to delete": "No s'ha pogut suprimir", - "Failed to save": "No s'ha pogut desar", - "Failed to update": "No s'ha pogut actualitzar", - "updated.": "actualitzat.", - "Apply and share with synced splits": "Aplica i comparteix amb les divisions sincronitzades", - "Click to edit": "Feu clic per editar", - "Click to add @:systemPrompt": "Feu clic per afegir una indicació del sistema", - "Pause": "Posa en pausa", - "Resume": "Reprèn", - "Retry": "Torna-ho a provar", - "Stop": "Atura", - "Run": "Executa", - "Re-run": "Torna a executar", - "Remove": "Elimina", - "Skip": "Omet", - "Unskip": "No ometis", - "Start Importing": "Comença la importació", - "New": "Nou", - "Entry | Entries": "Entrada | Entrades", - "Import": "Importa", - "Connect": "Connecta", - "Disconnect": "Desconnecta", - "Reconnect": "Torna a connectar", - "Select Target Folder": "Selecciona la carpeta de destinació", - "Create new folder for imported items": "Crea una carpeta nova per als elements importats", - "New folder name": "Nom de la carpeta nova", - "Remote": "Remot", - "Local": "Local", - "Strength | Strengths": "Punt fort | Punts forts", - "Provider": "Proveïdor", - "{count} Capability | {count} Capabilities": "{count} capacitat | {count} capacitats", - "Preset | Presets": "Predefinit | Predefinits", - "Save As @:preset": "Desa com a predefinit", - "Append": "Afegeix al final", - "Prepend": "Afegeix al principi", - "Replace": "Substitueix", - "Description": "Descripció", - "Mode": "Mode", - "Add-ons": "Complements", - "User": "Usuari" -} diff --git a/tools/msty_ca/tr_002.json b/tools/msty_ca/tr_002.json deleted file mode 100644 index ad68630..0000000 --- a/tools/msty_ca/tr_002.json +++ /dev/null @@ -1,201 +0,0 @@ -{ - "Assistant": "Assistent", - "@:assistant @:message.title": "Missatge de l'assistent", - "Connection Info": "Informació de connexió", - "Export": "Exporta", - "Export Options": "Opcions d'exportació", - "Choose File": "Trieu un fitxer", - "Purpose": "Finalitat", - "Download": "Baixa", - "Downloads": "Baixades", - "Download as JSON": "Baixa com a JSON", - "Install": "Instal·la", - "Installed": "Instal·lat", - "Modified": "Modificat", - "Created": "Creat", - "Minimize": "Minimitza", - "Status": "Estat", - "Type": "Tipus", - "Yes": "Sí", - "File Size": "Mida del fitxer", - "Size": "Mida", - "Like | Likes": "M'agrada | M'agrada", - "Cancelled": "Cancel·lat", - "Parameter @:size": "Mida dels paràmetres", - "Quantization": "Quantització", - "@:quantization Level": "Nivell de quantització", - "Context Size": "Mida del context", - "Default to model max": "Per defecte, el màxim del model", - "Maximum tokens the model processes at once. Set to 0 to use model's maximum. Larger values increase memory usage. This value is saved globally per model with LLaMa.cpp. Context is shared equally across the number of concurrent requests set via LLaMa.cpp service settings.": "Nombre màxim de tokens que el model processa alhora. Establiu-lo a 0 per fer servir el màxim del model. Els valors més alts augmenten l'ús de memòria. Aquest valor es desa globalment per a cada model amb LLaMa.cpp. El context es reparteix equitativament entre el nombre de sol·licituds simultànies definit a la configuració del servei LLaMa.cpp.", - "Truncate Middle": "Trunca pel mig", - "Truncate Old": "Trunca els antics", - "None": "Cap", - "How to handle messages when context limit is approached.": "Com gestionar els missatges quan s'acosta el límit del context.", - "Storage": "Emmagatzematge", - "Params": "Paràmetres", - "Arch": "Arquitectura", - "Filter": "Filtre", - "Sort & Display": "Ordena i mostra", - "Search...": "Cerca...", - "Folders first": "Primer les carpetes", - "Items first": "Primer els elements", - "Name": "Nom", - "Title": "Títol", - "Updated": "Actualitzat", - "Last Used": "Darrer ús", - "Ascending": "Ascendent", - "Descending": "Descendent", - "Visibility": "Visibilitat", - "Show empty folders": "Mostra les carpetes buides", - "Hide empty folders": "Amaga les carpetes buides", - "Show item counts": "Mostra el recompte d'elements", - "Hide item counts": "Amaga el recompte d'elements", - "No {item} found for this search": "No s'ha trobat cap {item} per a aquesta cerca", - "Loading": "S'està carregant", - "Invite": "Convida", - "Refresh": "Actualitza", - "Email": "Adreça electrònica", - "Role": "Rol", - "Admin": "Administrador", - "Owner": "Propietari", - "Inactive": "Inactiu", - "Argument|Arguments": "Argument|Arguments", - "Abort": "Interromp", - "Send": "Envia", - "Remind Me Later": "Recorda-m'ho més tard", - "Text": "Text", - "Folders": "Carpetes", - "Folder | @:folders": "Carpeta | @:folders", - "Search": "Cerca", - "Active": "Actiu", - "Archived": "Arxivat", - "All": "Tot", - "Fuzzy search enabled": "Cerca aproximada activada", - "Fuzzy search disabled": "Cerca aproximada desactivada", - "Fuzzy Search Enabled. Click to Toggle": "Cerca aproximada activada. Feu clic per canviar", - "Fuzzy Search Disabled. Click to Toggle": "Cerca aproximada desactivada. Feu clic per canviar", - "Change": "Canvia", - "Expand All Projects": "Amplia tots els projectes", - "Collapse All Projects": "Replega tots els projectes", - "Expand All Folders": "Amplia totes les carpetes", - "Collapse All Folders": "Replega totes les carpetes", - "Clone {item}": "Clona {item}", - "{item} cloned": "S'ha clonat {item}", - "Failed to clone {item}": "No s'ha pogut clonar {item}", - "Add notes to help you remember the purpose of this {item}; this will also be seen by models which can provide them more details on how to use this {item} (@:optional)": "Afegiu notes que us ajudin a recordar la finalitat d'aquest {item}; també les veuran els models, cosa que els proporciona més detalls sobre com utilitzar aquest {item} (@:optional)", - "Endpoint Test Results": "Resultats de la prova del punt final", - "Test Connection": "Prova la connexió", - "No {item} found": "No s'ha trobat cap {item}", - "@:select {item}": "@:select {item}", - "{count} {title}": "{count} {title}", - "Feature|Features": "Funcionalitat|Funcionalitats", - "Raw": "En brut", - "Raw Output": "Sortida en brut", - "Property|Properties": "Propietat|Propietats", - "Configure": "Configura", - "Context | Contexts": "Context | Contextos", - "Path | Paths": "Camí | Camins", - "Project | Projects": "Projecte | Projectes", - "New Project at Root": "Projecte nou a l'arrel", - "Project Name": "Nom del projecte", - "Project Description": "Descripció del projecte", - "Default Model": "Model per defecte", - "Custom Instructions": "Instruccions personalitzades", - "Add Child Project": "Afegeix un projecte fill", - "Move Folder to Root": "Mou la carpeta a l'arrel", - "Failed to move project to root.": "No s'ha pogut moure el projecte a l'arrel.", - "The project was successfully moved to the root.": "El projecte s'ha mogut correctament a l'arrel.", - "Delete Project": "Suprimeix el projecte", - "Set as Default Project": "Estableix com a projecte per defecte", - "Unset Default Project": "Desfés el projecte per defecte", - "Misc": "Divers", - "Include Project Context": "Inclou el context del projecte", - "Are you sure you want to delete {projectName} and all its conversations?": "Segur que voleu suprimir {projectName} i totes les seves converses?", - "@:cancel": "@:cancel", - "@:delete": "Suprimeix", - "Project deleted": "S'ha suprimit el projecte", - "Delete All Conversations": "Suprimeix totes les converses", - "Are you sure you want to delete all conversations in {projectName}? This action cannot be undone.": "Segur que voleu suprimir totes les converses de {projectName}? Aquesta acció no es pot desfer.", - "Deleted {count} conversation | Deleted {count} conversations": "S'ha suprimit {count} conversa | S'han suprimit {count} converses", - "No conversations to delete": "No hi ha converses per suprimir", - "Failed to delete conversations": "No s'han pogut suprimir les converses", - "Archive All Conversations": "Arxiva totes les converses", - "Archive all conversations in {projectName}? They will move to the Archive and can be restored later.": "Voleu arxivar totes les converses de {projectName}? Es mouran a l'arxiu i es podran restaurar més endavant.", - "Archive All": "Arxiva-ho tot", - "Archived {count} conversation | Archived {count} conversations": "S'ha arxivat {count} conversa | S'han arxivat {count} converses", - "Failed to archive conversations": "No s'han pogut arxivar les converses", - "Add Files": "Afegeix fitxers", - "Edit Project": "Edita el projecte", - "New Project": "Projecte nou", - "Drag and drop files that will get attached to each conversation in this project.": "Arrossegueu i deixeu anar els fitxers que s'adjuntaran a cada conversa d'aquest projecte.", - "Project created": "S'ha creat el projecte", - "Project created! It's currently hidden because it's empty. Click the button below to show it now, or it will appear automatically when you add your first conversation.": "S'ha creat el projecte! De moment està amagat perquè és buit. Feu clic al botó de sota per mostrar-lo ara, o apareixerà automàticament quan hi afegiu la primera conversa.", - "Project updated": "S'ha actualitzat el projecte", - "Failed to create Project": "No s'ha pogut crear el projecte", - "Failed to update Project": "No s'ha pogut actualitzar el projecte", - "Show Empty Projects": "Mostra els projectes buits", - "Empty projects are now visible": "Ara els projectes buits són visibles", - "Start a New Conversation to Get Started": "Inicieu una conversa nova per començar", - "Selected model": "Model seleccionat", - "Endpoint": "Punt final", - "Auth Token": "Testimoni d'autenticació", - "Before": "Abans", - "After": "Després", - "Method": "Mètode", - "HTTP @:method": "@:method HTTP", - "Get": "Get", - "Post": "Post", - "@:preset with the same name already exists.": "Ja existeix un predefinit amb el mateix nom.", - "@:presetAlreadyExistsMessage If you save, it will overwrite the existing preset.": "@:presetAlreadyExistsMessage Si el deseu, se sobreescriurà el predefinit existent.", - "No {propsName} available. Add a custom one.": "No hi ha cap {propsName} disponible. Afegiu-ne un de personalitzat.", - "@:local AI": "IA local", - "Click to add a label": "Feu clic per afegir una etiqueta", - "Branch label (max 30 chars)": "Etiqueta de la branca (màx. 30 car.)", - "Label Branch...": "Etiqueta la branca...", - "Label Branch": "Etiqueta la branca", - "No label": "Sense etiqueta", - "Click for more options": "Feu clic per a més opcions", - "Branch Explorer": "Explorador de branques", - "Branch Explorer...": "Explorador de branques...", - "Branch {n}": "Branca {n}", - "Current": "Actual", - "Branches": "Branques", - "Compare": "Compara", - "Compare Branches": "Compara les branques", - "Compare branches": "Compara les branques", - "Exit compare mode": "Surt del mode de comparació", - "Select first branch to compare": "Seleccioneu la primera branca a comparar", - "Select second branch to compare": "Seleccioneu la segona branca a comparar", - "Selected": "Seleccionat", - "Content is identical": "El contingut és idèntic", - "First branch": "Primera branca", - "Second branch": "Segona branca", - "Select branch": "Seleccioneu una branca", - "Select two branches above to compare their content": "Seleccioneu dues branques a dalt per comparar-ne el contingut", - "Switch to {name}": "Canvia a {name}", - "Diff": "Diferències", - "Side by Side": "Costat per costat", - "Conversation | Conversations": "Conversa | Converses", - "@:conversation.title Title": "Títol de la conversa", - "Failed to generate context summary.": "No s'ha pogut generar el resum del context.", - "Check Settings > Notifications for more details.": "Consulteu Configuració > Notificacions per a més detalls.", - "Failed to send message.": "No s'ha pogut enviar el missatge.", - "Check Settings > Notifications for more details. {error}": "Consulteu Configuració > Notificacions per a més detalls. {error}", - "Message exceeds context limit": "El missatge supera el límit del context", - "Your message with search results and context is too large for this model. Try: increasing context size from model parameters, reducing search results, clearing conversation history, using a model with larger context (16k+), or shortening your system instructions.": "El vostre missatge amb els resultats de la cerca i el context és massa gran per a aquest model. Proveu de: augmentar la mida del context des dels paràmetres del model, reduir els resultats de la cerca, esborrar l'historial de la conversa, fer servir un model amb un context més gran (16k+) o escurçar les instruccions del sistema.", - "Delete @:conversation.title": "Suprimeix la conversa", - "Add New @:conversation.title": "Afegeix una conversa nova", - "New @:conversation.title": "Conversa nova", - "Projects first": "Primer els projectes", - "Last Activity": "Darrera activitat", - "No priority": "Sense prioritat", - "@:pinned first": "Primer els fixats", - "@:bookmarked first": "Primer els marcats", - "Show Recents & @:pinned": "Mostra els recents i els fixats", - "Hide Recents & @:pinned": "Amaga els recents i els fixats", - "Show Archive": "Mostra l'arxiu", - "Hide Archive": "Amaga l'arxiu", - "Show empty projects": "Mostra els projectes buits", - "Hide empty projects": "Amaga els projectes buits", - "Show conversation counts": "Mostra el recompte de converses" -} diff --git a/tools/msty_ca/tr_003.json b/tools/msty_ca/tr_003.json deleted file mode 100644 index dd86e2c..0000000 --- a/tools/msty_ca/tr_003.json +++ /dev/null @@ -1,191 +0,0 @@ -{ - "Hide conversation counts": "Amaga el recompte de converses", - "Press {trigger} for quick commands OR start typing...": "Premeu {trigger} per a ordres ràpides O comenceu a escriure...", - "Press / to focus here and start typing": "Premeu / per posar el focus aquí i començar a escriure", - "Are you sure you want to delete selected conversation and all its chat splits? | Are you sure you want to delete selected conversations and all their chat splits?": "Segur que voleu suprimir la conversa seleccionada i totes les seves divisions de xat? | Segur que voleu suprimir les converses seleccionades i totes les seves divisions de xat?", - "Delete": "Suprimeix", - "@:conversation.title deleted": "S'ha suprimit la conversa", - "Failed to delete @:conversation.title": "No s'ha pogut suprimir la conversa", - "Convert to Chat": "Converteix en xat", - "@:conversation.title converted to Chat": "S'ha convertit la conversa en xat", - "Failed to convert conversation to Chat": "No s'ha pogut convertir la conversa en xat", - "Convert to @:forge.forgeCanvas": "Converteix en @:forge.forgeCanvas", - "@:conversation.title converted to @:forge.forgeCanvas": "S'ha convertit la conversa en @:forge.forgeCanvas", - "Failed to convert conversation to @:forge.forgeCanvas": "No s'ha pogut convertir la conversa en @:forge.forgeCanvas", - "Messages cloned to new split successfully": "Els missatges s'han clonat correctament a la nova divisió", - "Failed to clone messages to new split": "No s'han pogut clonar els missatges a la nova divisió", - "Messages cloned to new conversation successfully": "Els missatges s'han clonat correctament a la nova conversa", - "Failed to clone messages to new conversation": "No s'han pogut clonar els missatges a la nova conversa", - "Archive": "Arxiva", - "Orphaned Conversation": "Conversa òrfena", - "This conversation is archived. Unarchive it to continue the discussion.": "Aquesta conversa està arxivada. Desarxiveu-la per continuar la conversa.", - "Sending a new message will automatically unarchive.": "En enviar un missatge nou, es desarxivarà automàticament.", - "Unarchive": "Desarxiva", - "Conversation unarchived automatically.": "La conversa s'ha desarxivat automàticament.", - "{count} conversation archived | {count} conversations archived": "S'ha arxivat {count} conversa | S'han arxivat {count} converses", - "{count} conversation restored | {count} conversations restored": "S'ha restaurat {count} conversa | S'han restaurat {count} converses", - "Unload archived items": "Descarrega els elements arxivats", - "Archived items unloaded": "S'han descarregat els elements arxivats", - "Unable to update archive status. Please try again.": "No s'ha pogut actualitzar l'estat de l'arxiu. Torneu-ho a provar.", - "Archive {item}": "Arxiva {item}", - "Export @:conversation.title as JSON": "Exporta la conversa com a JSON", - "Successfully exported conversations as JSON": "Les converses s'han exportat correctament com a JSON", - "Show All Splits": "Mostra totes les divisions", - "Save Splits As": "Desa les divisions com a", - "New Single Split Chat": "Xat nou d'una sola divisió", - "Split Preset | Split Presets": "Predefinit de divisió | Predefinits de divisió", - "Save Splits As @:preset": "Desa les divisions com a predefinit", - "Edit Split @:preset {presetName}": "Edita el predefinit de divisió {presetName}", - "@:preset Name": "Nom del predefinit", - "@:preset Options": "Opcions del predefinit", - "@:select @:preset Options": "Selecciona les opcions del predefinit", - "Save @:preset": "Desa el predefinit", - "Split @:preset added": "S'ha afegit el predefinit de divisió", - "Split @:preset updated": "S'ha actualitzat el predefinit de divisió", - "Failed to save Split @:preset": "No s'ha pogut desar el predefinit de divisió", - "Delete Split @:preset": "Suprimeix el predefinit de divisió", - "Are you sure you want to delete {splitPresetName}? ": "Segur que voleu suprimir {splitPresetName}? ", - "Split @:preset deleted": "S'ha suprimit el predefinit de divisió", - "Compact Mode": "Mode compacte", - "@:enable @:conversationActions.compactMode": "Activa el mode compacte", - "@:disable @:conversationActions.compactMode": "Desactiva el mode compacte", - "Split Widths": "Amplada de les divisions", - "Slim": "Estret", - "Balanced": "Equilibrat", - "Roomy": "Ample", - "Spacious": "Espaiós", - "Full": "Complet", - "Response Configuration": "Configuració de la resposta", - "Select a preset...": "Seleccioneu un predefinit...", - "Save as Preset": "Desa com a predefinit", - "Common Settings": "Configuració comuna", - "Advanced Parameters": "Paràmetres avançats", - "JSON object for advanced model parameters": "Objecte JSON per a paràmetres avançats del model", - "Provider Options": "Opcions del proveïdor", - "Provider-specific configuration": "Configuració específica del proveïdor", - "Thinking Configuration": "Configuració del raonament", - "Extended thinking configuration": "Configuració del raonament ampliat", - "Provider may ignore or partially honor thinking settings": "El proveïdor pot ignorar o respectar parcialment la configuració del raonament", - "Custom Parameters": "Paràmetres personalitzats", - "Provider may ignore or partially honor these": "El proveïdor pot ignorar-los o respectar-los parcialment", - "value": "valor", - "Delete Parameter": "Suprimeix el paràmetre", - "Delete custom parameter \"{param}\"?": "Voleu suprimir el paràmetre personalitzat «{param}»?", - "Parameter key is required.": "La clau del paràmetre és obligatòria.", - "This key is reserved for built-in parameters.": "Aquesta clau està reservada per als paràmetres integrats.", - "A parameter with this key already exists.": "Ja existeix un paràmetre amb aquesta clau.", - "Invalid JSON": "JSON no vàlid", - "Constraint Mode is On": "El mode de restricció està activat", - "Freeform Mode is On - no min/max limits": "El mode lliure està activat: sense límits mín./màx.", - "Expand for other options": "Amplia per veure altres opcions", - "Collapse other options": "Replega les altres opcions", - "Temperature": "Temperatura", - "Controls randomness (0=focused, 2=creative)": "Controla l'aleatorietat (0=concentrat, 2=creatiu)", - "Probability mass to keep during nucleus sampling": "Massa de probabilitat que es manté durant el mostreig de nucli", - "Limit token selection to the top K tokens": "Limita la selecció de tokens als K tokens principals", - "Max Output Tokens": "Màxim de tokens de sortida", - "Maximum tokens for responses": "Nombre màxim de tokens per a les respostes", - "Maximum tokens for responses (limit {0})": "Nombre màxim de tokens per a les respostes (límit {0})", - "Context Window Size": "Mida de la finestra de context", - "Maximum tokens accepted in the prompt": "Nombre màxim de tokens acceptats a la indicació", - "Maximum tokens accepted in the prompt (limit {0})": "Nombre màxim de tokens acceptats a la indicació (límit {0})", - "Set to 0 to use model's maximum context size": "Establiu-lo a 0 per fer servir la mida màxima de context del model", - "Presence Penalty": "Penalització de presència", - "Penalize new tokens based on whether they appear in the text so far": "Penalitza els tokens nous segons si ja apareixen al text", - "Frequency Penalty": "Penalització de freqüència", - "Penalize tokens based on frequency in the text so far": "Penalitza els tokens segons la freqüència al text fins ara", - "Repeat Penalty": "Penalització de repetició", - "Discourage repeating phrases": "Desincentiva la repetició de frases", - "Repeat Last N": "Repeteix els últims N", - "Context window for applying repeat penalty": "Finestra de context per aplicar la penalització de repetició", - "Minimum cumulative probability for token selection": "Probabilitat acumulada mínima per a la selecció de tokens", - "Stabilize perplexity dynamically": "Estabilitza la perplexitat dinàmicament", - "Off": "Desactivat", - "Target surprise level (lower = safer)": "Nivell de sorpresa objectiu (més baix = més segur)", - "Learning rate for Mirostat adjustment": "Taxa d'aprenentatge per a l'ajust de Mirostat", - "GPU Layers": "Capes de GPU", - "Number of layers to offload to GPU": "Nombre de capes que es descarreguen a la GPU", - "Threads": "Fils", - "CPU threads to use for generation": "Fils de CPU que s'utilitzen per a la generació", - "Model Parameters": "Paràmetres del model", - "Max Output Tokens (Legacy)": "Màxim de tokens de sortida (antic)", - "Context Window @:size": "@:size de la finestra de context", - "Number of GPU Layers": "Nombre de capes de GPU", - "@:select or insert a parameter": "@:select o insereix un paràmetre", - "@:select a @:preset": "@:select un predefinit", - "Save as @:preset": "Desa com a predefinit", - "Add New Parameter": "Afegeix un paràmetre nou", - "Extra @:params": "Paràmetres addicionals", - "Apply and Save as Model Default": "Aplica i desa com a valor per defecte del model", - "Save @:modelParams.params As Preset": "Desa els paràmetres com a predefinit", - "Failed to save params preset.": "No s'ha pogut desar el predefinit de paràmetres.", - "@:modelParams.params preset saved.": "S'ha desat el predefinit de paràmetres.", - "Delete @:preset": "Suprimeix el predefinit", - "Are you sure you want to delete {presetName}?": "Segur que voleu suprimir {presetName}?", - "Failed to delete params preset.": "No s'ha pogut suprimir el predefinit de paràmetres.", - "@:modelParams.params preset deleted.": "S'ha suprimit el predefinit de paràmetres.", - "Thinking Effort": "Esforç de raonament", - "Think Lightly": "Raona lleugerament", - "Think Moderately": "Raona moderadament", - "Think Deeply": "Raona a fons", - "Default": "Per defecte", - "Dynamic": "Dinàmic", - "Exclude": "Exclou", - "Split Options": "Opcions de divisió", - "Add Split Chat": "Afegeix un xat dividit", - "Hide Split": "Amaga la divisió", - "Copy Split to New Conversation": "Copia la divisió a una conversa nova", - "Move Split to New Conversation": "Mou la divisió a una conversa nova", - "Delete Split": "Suprimeix la divisió", - "Remove Split": "Elimina la divisió", - "Split removed": "S'ha eliminat la divisió", - "Split reset": "S'ha restablert la divisió", - "Split copied to new conversation": "S'ha copiat la divisió a una conversa nova", - "Split moved to new conversation": "S'ha mogut la divisió a una conversa nova", - "Failed to copy split to new conversation": "No s'ha pogut copiar la divisió a una conversa nova", - "Failed to move split to new conversation": "No s'ha pogut moure la divisió a una conversa nova", - "Export Chat": "Exporta el xat", - "Copy Chat": "Copia el xat", - "Active Branch as JSON": "Branca activa com a JSON", - "Active Branch as Markdown": "Branca activa com a Markdown", - "All Branches as JSON": "Totes les branques com a JSON", - "Successfully {action} chat as {format}": "S'ha {action} el xat com a {format}", - "exported": "exportat", - "copied": "copiat", - "Show All Hidden Messages": "Mostra tots els missatges amagats", - "All hidden messages are now visible": "Ara tots els missatges amagats són visibles", - "Are you sure you want to delete this Split?": "Segur que voleu suprimir aquesta divisió?", - "Message|Messages": "Missatge|Missatges", - "Message and Descendants": "Missatge i descendents", - "Send on Enter": "Envia amb Retorn", - "Send Modifier": "Modificador d'enviament", - "Shift": "Maj", - "Alt": "Alt", - "Ctrl": "Ctrl", - "Meta": "Meta", - "Re-send user message": "Torna a enviar el missatge de l'usuari", - "Send as @:assistant Message": "Envia com a missatge de l'assistent", - "Sending a message as \"Assistant\" lets you shape the conversation by adding AI responses yourself. The AI will continue as if it wrote that message. Useful for providing context or guiding responses.": "Enviar un missatge com a «Assistent» us permet donar forma a la conversa afegint vós mateix respostes de la IA. La IA continuarà com si hagués escrit aquell missatge. És útil per aportar context o orientar les respostes.", - "Sent as Assistant Message": "Enviat com a missatge de l'assistent", - "Manually Edited": "Editat manualment", - "@:bookmark Message | @:bookmark Messages": "Marca el missatge | Marca els missatges", - "Remove @:bookmark | Remove Bookmarks": "Treu el marcador | Treu els marcadors", - "Delete Message | Delete Messages": "Suprimeix el missatge | Suprimeix els missatges", - "Remove Message": "Elimina el missatge", - "Regenerate assistant message as a new branch": "Regenera el missatge de l'assistent com a branca nova", - "@:continue Generation": "Continua la generació", - "Use as prompt in new split": "Fes-lo servir com a indicació en una divisió nova", - "Fold Messages Above": "Plega els missatges de dalt", - "Unfold Messages Above": "Desplega els missatges de dalt", - "Clone with Ancestors to New Split": "Clona amb els ascendents a una divisió nova", - "Clone with Ancestors to New Conversation": "Clona amb els ascendents a una conversa nova", - "Extra Actions": "Accions addicionals", - "No model selected. Please select a model to send a message": "No s'ha seleccionat cap model. Seleccioneu un model per enviar un missatge", - "Delete Message": "Suprimeix el missatge", - "Are you sure you want to delete this message?": "Segur que voleu suprimir aquest missatge?", - "Delete Message and its descendants": "Suprimeix el missatge i els seus descendents", - "Are you sure you want to delete this message and all its descendants?": "Segur que voleu suprimir aquest missatge i tots els seus descendents?", - "Quick Commands": "Ordres ràpides", - "No matching commands": "No hi ha ordres coincidents", - "Type \\ followed by command or alias": "Escriviu \\ seguit d'una ordre o àlies" -} diff --git a/tools/msty_ca/tr_004.json b/tools/msty_ca/tr_004.json deleted file mode 100644 index 6a92e9b..0000000 --- a/tools/msty_ca/tr_004.json +++ /dev/null @@ -1,220 +0,0 @@ -{ - "Regenerating message...": "S'està regenerant el missatge...", - "Context shield applied": "S'ha aplicat l'escut de context", - "Compressing with shield...": "S'està comprimint amb l'escut...", - "Message @:bookmarked": "Missatge marcat", - "Copied to clipboard": "S'ha copiat al porta-retalls", - "Continuing generation...": "S'està continuant la generació...", - "Resending message...": "S'està reenviant el missatge...", - "Enable or disable the Shiftcuts feature. Unlike standard keyboard shortcuts, Shiftcuts are triggered by double-tapping the Shift key and then pressing another key to perform an action; including: 't' to open new split chat, 'e' to open environment selector, '1' to toggle sidebar, and 'm' to open minimap.": "Activa o desactiva la funció Shiftcuts. A diferència de les dreceres de teclat estàndard, els Shiftcuts s'activen prement dues vegades la tecla Maj i després una altra tecla per executar una acció; per exemple: «t» per obrir un xat dividit nou, «e» per obrir el selector d'entorn, «1» per mostrar o amagar la barra lateral i «m» per obrir el minimapa.", - "URL Endpoint": "Punt final de l'URL", - "Give it a unique name": "Poseu-li un nom únic", - "Duplicate or invalid {item} name. Please enter a unique name.": "El nom de {item} està duplicat o no és vàlid. Introduïu un nom únic.", - "You have not backed up your data, would you like to export your data for backup?": "No heu fet cap còpia de seguretat de les dades. Voleu exportar-les per fer-ne una còpia?", - "It has been 24hrs since your last backup, would you like to export your data for backup?": "Fa 24 h de la darrera còpia de seguretat. Voleu exportar les dades per fer-ne una còpia?", - "Storage may be cleared by the browser under storage pressure. We recommend backing up your data regularly.": "El navegador pot esborrar l'emmagatzematge si hi ha manca d'espai. Us recomanem fer còpies de seguretat de les dades regularment.", - "Export @:data": "Exporta les dades", - "Clear @:data": "Esborra les dades", - "Restore @:data": "Restaura les dades", - "Drag and drop your data backup to restore from.": "Arrossegueu i deixeu anar la còpia de seguretat de les dades des de la qual voleu restaurar.", - "Restoring from backup file will replace all existing data. We recommend to export a backup first.": "Restaurar des d'un fitxer de còpia de seguretat reemplaçarà totes les dades existents. Us recomanem exportar primer una còpia de seguretat.", - "Failed to export data": "No s'han pogut exportar les dades", - "Backup @:data": "Fes una còpia de seguretat de les dades", - "@:data exported": "S'han exportat les dades", - "Failed to clear data": "No s'han pogut esborrar les dades", - "@:data has been cleared": "S'han esborrat les dades", - "Enter '{string}' here": "Introduïu «{string}» aquí", - "Please enter '{string}' below to proceed": "Introduïu «{string}» a continuació per continuar", - "@:warning": "@:warning", - "Invalid confirmation. Please enter '{string}' to proceed.": "La confirmació no és vàlida. Introduïu «{string}» per continuar.", - "Are you sure you want to clear all data? This action cannot be undone.": "Segur que voleu esborrar totes les dades? Aquesta acció no es pot desfer.", - "Please select a file to restore from": "Seleccioneu un fitxer des del qual restaurar", - "Are you sure you want to restore all data? This action will replace all existing data and cannot be undone. We recommend to export a backup first.": "Segur que voleu restaurar totes les dades? Aquesta acció reemplaçarà totes les dades existents i no es pot desfer. Us recomanem exportar primer una còpia de seguretat.", - "Restore": "Restaura", - "@:data Imported": "S'han importat les dades", - "Failed to Import @:data": "No s'han pogut importar les dades", - "Setup {item}": "Configura {item}", - "{item} setup completed": "S'ha completat la configuració de {item}", - "Could not setup {item}": "No s'ha pogut configurar {item}", - "Welcome to Msty Studio!": "Us donem la benvinguda a Msty Studio!", - "We'd need at least one model provider to get started.": "Necessitem com a mínim un proveïdor de models per començar.", - "Welcome to Msty!": "Us donem la benvinguda a Msty!", - "How would you like to get started?": "Com voleu començar?", - "Got Ollama/Msty Models?": "Teniu models d'Ollama/Msty?", - "Got MLX Models?": "Teniu models MLX?", - "Got LLaMA.cpp Models?": "Teniu models de LLaMA.cpp?", - "You can use your existing Ollama or Msty models directly, if any, or specify a custom location. Note: we will still be using our own service to run those models.": "Podeu utilitzar directament els models d'Ollama o de Msty que ja tingueu, si en teniu, o bé especificar una ubicació personalitzada. Nota: continuarem fent servir el nostre propi servei per executar aquests models.", - "If you don't have any MLX models yet, you can specify a custom location where you'd like to store them.": "Si encara no teniu cap model MLX, podeu especificar una ubicació personalitzada on voleu desar-los.", - "We found MLX models in your Hugging Face Hub cache! You can use them directly or specify a custom location.": "Hem trobat models MLX a la memòria cau del vostre Hugging Face Hub! Els podeu utilitzar directament o especificar una ubicació personalitzada.", - "Specify a custom location where you'd like to store your GGUF models for LLaMA.cpp.": "Especifiqueu una ubicació personalitzada on voleu desar els vostres models GGUF per a LLaMA.cpp.", - "No location set": "No s'ha definit cap ubicació", - "Set Your Own": "Definiu-ne una de pròpia", - "Custom model locations are not available for MLX": "Les ubicacions de models personalitzades no estan disponibles per a MLX", - "Enter custom models path": "Introduïu el camí dels models personalitzats", - "To get you started, {modelName} will be downloaded. You can choose a different model.": "Per començar, es baixarà {modelName}. Podeu triar un model diferent.", - "Use models like DeepSeek R1, Meta Llama4, Microsoft Phi4, IBM Granite, Google Gemma, etc": "Feu servir models com ara DeepSeek R1, Meta Llama4, Microsoft Phi4, IBM Granite, Google Gemma, etc.", - "Use offline and keep your @:data private": "Useu-lo sense connexió i mantingueu les vostres dades privades", - "Models are free to download and use": "Els models es poden baixar i utilitzar de franc", - "Install and use specialized models": "Instal·leu i feu servir models especialitzats", - "Needs extra storage and memory": "Necessita emmagatzematge i memòria addicionals", - "That's it!": "Ja està!", - "You can now start chatting with your models privately and securely.": "Ara ja podeu començar a xatejar amb els vostres models de manera privada i segura.", - "Error Setting Up @:localAIService": "Error en configurar @:localAIService", - "We could not set up @:localAIService{'.'} Please check the logs for more details. {errorMessage}": "No hem pogut configurar @:localAIService{'.'} Reviseu els registres per a més detalls. {errorMessage}", - "There was a permission issue setting up Local AI. You can rerun the app as an admin (not recommended) or consider installing the app as for a single user only (recommended).": "Hi ha hagut un problema de permisos en configurar la IA local. Podeu tornar a executar l'aplicació com a administrador (no recomanat) o bé plantejar-vos instal·lar l'aplicació només per a un sol usuari (recomanat).", - "{errorMessage} Consider installing Local AI from archive files if you continue to get this error. Please visit https://docs.msty.studio/getting-started/onboarding": "{errorMessage} Plantegeu-vos instal·lar la IA local des dels fitxers d'arxiu si continueu rebent aquest error. Visiteu https://docs.msty.studio/getting-started/onboarding", - "Error Setting Up MLX Service": "Error en configurar el servei MLX", - "We could not set up MLX Service. Please check the logs for more details. {errorMessage}": "No hem pogut configurar el servei MLX. Reviseu els registres per a més detalls. {errorMessage}", - "To get you started, {modelName} will be downloaded. MLX is Apple's optimized framework for Apple Silicon.": "Per començar, es baixarà {modelName}. MLX és el marc de treball d'Apple optimitzat per a Apple Silicon.", - "MLX is currently in experimental mode. It may have some limitations and rough edges. Please report any issues to the team.": "MLX es troba actualment en mode experimental. Pot tenir algunes limitacions i imperfeccions. Comuniqueu qualsevol problema a l'equip.", - "Optimized for Apple Silicon (M1, M2, M3, M4)": "Optimitzat per a Apple Silicon (M1, M2, M3, M4)", - "Efficient memory usage with unified memory architecture": "Ús eficient de la memòria amb arquitectura de memòria unificada", - "Supports MLX, SafeTensors, and GGUF models": "Admet models MLX, SafeTensors i GGUF", - "Native performance on macOS": "Rendiment natiu a macOS", - "Only available on Apple Silicon Macs": "Només disponible als Mac amb Apple Silicon", - "Smaller model selection compared to Ollama": "Selecció de models més reduïda en comparació amb Ollama", - "MLX Setup Complete!": "Configuració d'MLX completada!", - "You can now use MLX models with optimal performance on your Mac.": "Ara podeu fer servir models MLX amb un rendiment òptim al vostre Mac.", - "Checking system compatibility...": "S'està comprovant la compatibilitat del sistema...", - "Downloading MLX server...": "S'està baixant el servidor MLX...", - "Starting MLX service...": "S'està iniciant el servei MLX...", - "Setting up MLX...": "S'està configurant l'MLX...", - "Downloading Model: {progress}%": "S'està baixant el model: {progress}%", - "LLaMA.cpp support is experimental and under active development": "La compatibilitat amb LLaMA.cpp és experimental i s'està desenvolupant activament", - "Error Setting Up LLaMA.cpp Service": "Error en configurar el servei LLaMA.cpp", - "We could not set up LLaMA.cpp Service. Please check the logs for more details. {errorMessage}": "No hem pogut configurar el servei LLaMA.cpp. Reviseu els registres per a més detalls. {errorMessage}", - "To get you started, {modelName} will be downloaded. LLaMA.cpp provides efficient cross-platform AI inference.": "Per començar, es baixarà {modelName}. LLaMA.cpp ofereix una inferència d'IA eficient i multiplataforma.", - "Works on Windows, macOS, and Linux": "Funciona a Windows, macOS i Linux", - "Supports both CPU and GPU acceleration": "Admet acceleració tant per CPU com per GPU", - "Efficient memory usage and fast inference": "Ús eficient de la memòria i inferència ràpida", - "Compatible with GGUF model format": "Compatible amb el format de model GGUF", - "Requires desktop application": "Requereix l'aplicació d'escriptori", - "Performance depends on hardware configuration": "El rendiment depèn de la configuració del maquinari", - "LLaMA.cpp Setup Complete!": "Configuració de LLaMA.cpp completada!", - "You can now use LLaMA.cpp models with efficient performance on your system.": "Ara podeu fer servir models de LLaMA.cpp amb un rendiment eficient al vostre sistema.", - "Downloading LLaMA.cpp server...": "S'està baixant el servidor de LLaMA.cpp...", - "Starting LLaMA.cpp service...": "S'està iniciant el servei de LLaMA.cpp...", - "Setting up LLaMA.cpp...": "S'està configurant LLaMA.cpp...", - "Downloading: {progress}%": "S'està baixant: {progress}%", - "With most online providers, you'd need to get an API key from the provider's website. {findYourKey}": "Amb la majoria de proveïdors en línia, us caldrà obtenir una clau API del lloc web del proveïdor. {findYourKey}", - "Find your API key": "Trobeu la vostra clau API", - "Use OpenAI, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Ollama, Remote Msty, etc": "Feu servir OpenAI, Azure, Claude Sonnet, Google Gemini, Perplexity, Ollama remot, Msty remot, etc.", - "Get started without downloading models": "Comenceu sense baixar cap model", - "Some vendors provide extra features like image generation, web search, etc": "Alguns proveïdors ofereixen funcions addicionals com ara la generació d'imatges, la cerca web, etc.", - "Requires internet connection to chat": "Requereix connexió a internet per xatejar", - "Vendor charges may apply": "Es poden aplicar càrrecs del proveïdor", - "{count} model available | {count} models available": "{count} model disponible | {count} models disponibles", - "{count} model added | {count} models added": "S'ha afegit {count} model | S'han afegit {count} models", - "Forget this provider": "Oblida aquest proveïdor", - "Let's Go!": "Som-hi!", - "No @:localAI? Get @:remoteToolsConnector.title for 1-click Setup": "No teniu @:localAI? Obteniu @:remoteToolsConnector.title per a una configuració amb un sol clic", - "You are now ready to chat with one of the models from {providerName}.": "Ara ja podeu xatejar amb un dels models de {providerName}.", - "Continue {service} Setup": "Continua la configuració de {service}", - "Enter your email": "Introduïu la vostra adreça electrònica", - "Invalid email or something went wrong. Please try again.": "L'adreça electrònica no és vàlida o alguna cosa ha anat malament. Torneu-ho a provar.", - "Login link sent to { email }": "S'ha enviat l'enllaç d'inici de sessió a { email }", - "Model Hub": "Centre de models", - "Model Providers": "Proveïdors de models", - "Access models from the cloud or remote servers.": "Accediu a models del núvol o de servidors remots.", - "Models list is pulled automatically": "La llista de models s'obté automàticament", - "Add Provider": "Afegeix un proveïdor", - "Use OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Msty, Remote Ollama, etc.": "Feu servir OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Msty remot, Ollama remot, etc.", - "Get started quickly": "Comenceu ràpidament", - "No download required": "No cal baixar res", - "Delete Provider": "Suprimeix el proveïdor", - "Are you sure you want to delete {providerName}?": "Segur que voleu suprimir {providerName}?", - "Provider deleted": "S'ha suprimit el proveïdor", - "Error": "Error", - "Failed to delete provider": "No s'ha pogut suprimir el proveïdor", - "Copy to Other Workspace": "Copia a un altre espai de treball", - "Copy/Sync to Other Workspaces": "Copia/sincronitza a altres espais de treball", - "Copy this provider to one or more workspaces.": "Copieu aquest proveïdor a un o més espais de treball.", - "Sync this provider to one or more workspaces. If this provider was copied before, it will be updated. If not, it will be added.": "Sincronitzeu aquest proveïdor a un o més espais de treball. Si s'havia copiat abans, s'actualitzarà. Si no, s'afegirà.", - "@:select Workspaces": "Selecciona els espais de treball", - "Available Workspaces": "Espais de treball disponibles", - "Update Provider": "Actualitza el proveïdor", - "New Language Models Provider": "Proveïdor de models de llenguatge nou", - "Edit Language Model Provider": "Edita el proveïdor de models de llenguatge", - "Models Provider": "Proveïdor de models", - "Model ID": "ID del model", - "Model Name": "Nom del model", - "Provider Name": "Nom del proveïdor", - "Provider URL": "URL del proveïdor", - "Provider Token": "Testimoni del proveïdor", - "Save Provider": "Desa el proveïdor", - "@:select Provider": "Selecciona el proveïdor", - "Give it a name (optional)": "Poseu-li un nom (opcional)", - "@:select Models": "Selecciona els models", - "Available Models": "Models disponibles", - "Add Custom Model": "Afegeix un model personalitzat", - "Inference Endpoint (must start with http:// or https://)": "Punt final d'inferència (ha de començar per http:// o https://)", - "Base URL": "URL base", - "Resource Name (will be ignored if Base URL is set)": "Nom del recurs (s'ignorarà si s'ha definit l'URL base)", - "API @:version": "@:version de l'API", - "AWS Region": "Regió d'AWS", - "Access Key ID": "ID de la clau d'accés", - "Secret Access Key": "Clau d'accés secreta", - "Session Token (Optional)": "Testimoni de sessió (opcional)", - "Not all models have been tested with Msty and it may not support all the models available in the provider.": "No tots els models s'han provat amb Msty i pot ser que no admeti tots els models disponibles al proveïdor.", - "Click 'Fetch Models' to retrieve available models from the provider (an API key may be required), or manually add a model below.": "Feu clic a «Recupera els models» per obtenir els models disponibles del proveïdor (pot caldre una clau API), o bé afegiu un model manualment a continuació.", - "Enter your API key to try to retrieve all the available models from {providerName}, or manually add a custom model.": "Introduïu la vostra clau API per intentar obtenir tots els models disponibles de {providerName}, o bé afegiu manualment un model personalitzat.", - "Fetch Models": "Recupera els models", - "All Models": "Tots els models", - "Unselected": "No seleccionat", - "All Purposes": "Totes les finalitats", - "Search models...": "Cerca models...", - "You must have CORS enabled in LM Studio to work with Msty": "Heu de tenir CORS activat a LM Studio per treballar amb Msty", - "Most of the OpenAI compatible providers endpoint need /v1 prefix e.g. https://example.com/v1 If you are running into issues, try appending /v1 to the endpoint.": "La majoria de punts finals de proveïdors compatibles amb OpenAI necessiten el prefix /v1, p. ex. https://example.com/v1. Si teniu problemes, proveu d'afegir /v1 al final del punt final.", - "Models Provider {providerName} added": "S'ha afegit el proveïdor de models {providerName}", - "Models Provider {providerName} updated": "S'ha actualitzat el proveïdor de models {providerName}", - "Failed to add Provider": "No s'ha pogut afegir el proveïdor", - "Failed to update Provider": "No s'ha pogut actualitzar el proveïdor", - "Using long-term credentials for Amazon Bedrock is not recommended.": "No es recomana utilitzar credencials de llarga durada per a Amazon Bedrock.", - "e.g. us-east-1": "p. ex. us-east-1", - "Failed to update provider visibility": "No s'ha pogut actualitzar la visibilitat del proveïdor", - "{provider} is now {visibility}": "Ara {provider} està {visibility}", - "Models Count": "Recompte de models", - "Show in Model Selector": "Mostra al selector de models", - "No models available for this provider": "No hi ha cap model disponible per a aquest proveïdor", - "Model updated successfully": "El model s'ha actualitzat correctament", - "Failed to update model": "No s'ha pogut actualitzar el model", - "Add New": "Afegeix-ne un de nou", - "@:remoteToolsConnector.title Proxy @:localAI Endpoint": "Punt final del proxy d'@:localAI de @:remoteToolsConnector.title", - "Make sure @:remoteToolsConnector.title is running and accessible at the provided URL via Tunneling. Copy and paste the full Tunnel Connection Info with token and URL.": "Assegureu-vos que @:remoteToolsConnector.title s'està executant i és accessible a l'URL proporcionat mitjançant túnel. Copieu i enganxeu la informació completa de connexió del túnel amb el testimoni i l'URL.", - "Make sure Msty Desktop is running with remote connections enabled.": "Assegureu-vos que Msty Desktop s'està executant amb les connexions remotes activades.", - "Learn how to enable remote connections": "Apreneu com activar les connexions remotes", - "This service runs whenever the app itself is up and running. You may have to update the port number if Local AI port got changed. Otherwise, it's best to leave it as is.": "Aquest servei s'executa sempre que l'aplicació està en marxa. És possible que hàgiu d'actualitzar el número de port si el port de la IA local ha canviat. Si no, val més deixar-lo tal com està.", - "When using self-hosted Ollama, make sure Ollama is running and accessible at the provided URL. You must add https://msty.studio to the allowed origins when starting Ollama service.": "Quan feu servir Ollama autoallotjat, assegureu-vos que Ollama s'està executant i és accessible a l'URL proporcionat. Heu d'afegir https://msty.studio als orígens permesos en iniciar el servei d'Ollama.", - "e.g. http://localhost:11434 or https://ollama.com": "p. ex. http://localhost:11434 o https://ollama.com", - "This provider is used to run MLX models on Apple Silicon Macs. The endpoint is auto-corrected to make sure it matches with your local MLX setup. You can change it temporarily if needed.": "Aquest proveïdor s'utilitza per executar models MLX als Mac amb Apple Silicon. El punt final es corregeix automàticament per assegurar que coincideix amb la vostra configuració local d'MLX. El podeu canviar temporalment si cal.", - "This provider is used to run LLaMA.cpp models. Most likely, you won't need to change the default endpoint. If you do, make sure LLaMA.cpp service is running and accessible at the provided URL.": "Aquest proveïdor s'utilitza per executar models de LLaMA.cpp. El més probable és que no calgui canviar el punt final per defecte. Si ho feu, assegureu-vos que el servei de LLaMA.cpp s'està executant i és accessible a l'URL proporcionat.", - "@:localAI Models": "Models d'@:localAI", - "There are no compatible providers available to manage Local Models. Please add at least one provider of type Msty Remote or Ollama Remote to use Local Models.": "No hi ha cap proveïdor compatible disponible per gestionar els models locals. Afegiu com a mínim un proveïdor de tipus Msty remot o Ollama remot per utilitzar els models locals.", - "{count} Active Download | {count} Active Downloads": "{count} baixada activa | {count} baixades actives", - "Featured Models": "Models destacats", - "Installed Models": "Models instal·lats", - "Or Install model by tag e.g. {example}": "O bé instal·leu el model per etiqueta, p. ex. {example}", - "Already Installed": "Ja instal·lat", - "Model {modelName} is already installed": "El model {modelName} ja està instal·lat", - "Abort Installation of {modelName}": "Interromp la instal·lació de {modelName}", - "Installation of {modelName} aborted": "S'ha interromput la instal·lació de {modelName}", - "Uninstall Model": "Desinstal·la el model", - "Are you sure you want to uninstall {modelName}?": "Segur que voleu desinstal·lar {modelName}?", - "Model removed": "S'ha eliminat el model", - "Failed to uninstall model": "No s'ha pogut desinstal·lar el model", - "Model {modelName} is ready to use": "El model {modelName} ja es pot fer servir", - "Failed to install model {modelName}": "No s'ha pogut instal·lar el model {modelName}", - "{modelName} requires a newer version of Local AI. Please update to the latest version from Settings > Local AI > Service Version > ... > Force Update Local AI Service": "{modelName} requereix una versió més recent de la IA local. Actualitzeu a la darrera versió des de Configuració > IA local > Versió del servei > ... > Força l'actualització del servei de IA local", - "Ollama Models": "Models d'Ollama", - "Hugging Face Models": "Models de Hugging Face", - "Search by author, model, or paste a Hugging Face repo URL": "Cerqueu per autor o model, o enganxeu l'URL d'un repositori de Hugging Face", - "Find models by name, author, or URL. Or get started with one of the model families below.": "Trobeu models per nom, autor o URL. O bé comenceu amb una de les famílies de models de sota.", - "Searching for models...": "S'estan cercant models...", - "Import GGUF": "Importa GGUF", - "Import GGUF Model": "Importa un model GGUF", - "Select a GGUF model file from your file system to import into {providerLabel}.": "Seleccioneu un fitxer de model GGUF del vostre sistema de fitxers per importar-lo a {providerLabel}.", - "Active Imports": "Importacions actives", - "No file selected": "No s'ha seleccionat cap fitxer", - "Click the button below to select a GGUF file": "Feu clic al botó de sota per seleccionar un fitxer GGUF", - "Drag and drop a GGUF file here, or click the button below": "Arrossegueu i deixeu anar un fitxer GGUF aquí, o feu clic al botó de sota" -} diff --git a/tools/msty_ca/tr_005.json b/tools/msty_ca/tr_005.json deleted file mode 100644 index 5ff3b86..0000000 --- a/tools/msty_ca/tr_005.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "Drop file here": "Deixeu anar el fitxer aquí", - "Release to select file": "Deixeu anar per seleccionar el fitxer", - "Select GGUF File": "Selecciona un fitxer GGUF", - "Choose Different File": "Tria un fitxer diferent", - "Import Model": "Importa el model", - "e.g., my-custom-model": "p. ex., el-meu-model-personalitzat", - "This will be the name you use to reference the model in conversations.": "Aquest serà el nom que fareu servir per referir-vos al model a les converses.", - "Remove file": "Elimina el fitxer", - "Dismiss": "Descarta", - "Use symlink (saves disk space)": "Usa un enllaç simbòlic (estalvia espai de disc)", - "Creates a symbolic link instead of copying the file. Only available for local servers.": "Crea un enllaç simbòlic en comptes de copiar el fitxer. Només està disponible per a servidors locals.", - "Calculating file digest": "S'està calculant el resum del fitxer", - "Uploading file": "S'està pujant el fitxer", - "Creating symlink": "S'està creant l'enllaç simbòlic", - "Creating model": "S'està creant el model", - "Model {modelName} imported successfully": "El model {modelName} s'ha importat correctament", - "File": "Fitxer", - "Uploading": "S'està pujant", - "Completed": "Completat", - "Please select a valid GGUF file": "Seleccioneu un fitxer GGUF vàlid", - "Import Safetensors": "Importa Safetensors", - "Import Safetensors Model": "Importa un model Safetensors", - "Select a directory containing safetensors model weights to import into {providerLabel}. Supported architectures include Gemma, Llama, Mistral, and Phi.": "Seleccioneu un directori que contingui pesos de model safetensors per importar-los a {providerLabel}. Les arquitectures admeses inclouen Gemma, Llama, Mistral i Phi.", - "No directory selected": "No s'ha seleccionat cap directori", - "The directory should contain safetensors files and a config.json": "El directori ha de contenir fitxers safetensors i un config.json", - "Select Safetensors Directory": "Selecciona el directori de Safetensors", - "Select Directory": "Selecciona un directori", - "Choose Different Directory": "Tria un directori diferent", - "Remove directory": "Elimina el directori", - "Scanning directory": "S'està escanejant el directori", - "Processing file {current} of {total}": "S'està processant el fitxer {current} de {total}", - "Creating model from safetensors": "S'està creant el model a partir de safetensors", - "Directory": "Directori", - "Uploading files": "S'estan pujant els fitxers", - "files selected": "fitxers seleccionats", - "Safetensors import is only available in the desktop app": "La importació de safetensors només està disponible a l'aplicació d'escriptori", - "Failed to select directory": "No s'ha pogut seleccionar el directori", - "No valid safetensors files found in the selected directory": "No s'ha trobat cap fitxer safetensors vàlid al directori seleccionat", - "LLaMA.cpp Models": "Models de LLaMA.cpp", - "{count} Active LLaMA.cpp Download | {count} Active LLaMA.cpp Downloads": "{count} baixada activa de LLaMA.cpp | {count} baixades actives de LLaMA.cpp", - "LLaMA.cpp model {modelName} is already installed": "El model de LLaMA.cpp {modelName} ja està instal·lat", - "Model Ready": "Model a punt", - "LLaMA.cpp model {modelName} is ready to use": "El model de LLaMA.cpp {modelName} ja es pot fer servir", - "Installation Failed": "La instal·lació ha fallat", - "Failed to install LLaMA.cpp model {modelName}": "No s'ha pogut instal·lar el model de LLaMA.cpp {modelName}", - "LLaMA.cpp model {modelName} installed": "S'ha instal·lat el model de LLaMA.cpp {modelName}", - "Downloading of LLaMA.cpp model {modelName} was aborted": "S'ha interromput la baixada del model de LLaMA.cpp {modelName}", - "Failed to cancel LLaMA.cpp model download": "No s'ha pogut cancel·lar la baixada del model de LLaMA.cpp", - "Cancelled download of LLaMA.cpp model {modelName}": "S'ha cancel·lat la baixada del model de LLaMA.cpp {modelName}", - "Uninstall Failed": "La desinstal·lació ha fallat", - "Failed to uninstall LLaMA.cpp model {modelName}": "No s'ha pogut desinstal·lar el model de LLaMA.cpp {modelName}", - "Model Removed": "S'ha eliminat el model", - "Uninstalled LLaMA.cpp model {modelName}": "S'ha desinstal·lat el model de LLaMA.cpp {modelName}", - "Uninstall LLaMA.cpp Model": "Desinstal·la el model de LLaMA.cpp", - "Featured LLaMA.cpp Models": "Models destacats de LLaMA.cpp", - "Installed LLaMA.cpp Models": "Models instal·lats de LLaMA.cpp", - "LLaMA.cpp Community Models": "Models de la comunitat de LLaMA.cpp", - "Browse, search, and install GGUF models directly from Hugging Face to your local LLaMA.cpp models folder.": "Navegueu, cerqueu i instal·leu models GGUF directament des de Hugging Face a la vostra carpeta local de models de LLaMA.cpp.", - "Search LLaMA.cpp Community Models": "Cerca models de la comunitat de LLaMA.cpp", - "Search LLaMA.cpp models from Hugging Face": "Cerqueu models de LLaMA.cpp a Hugging Face", - "Find LLaMA.cpp compatible GGUF models or pick one of the featured model families below.": "Trobeu models GGUF compatibles amb LLaMA.cpp o trieu una de les famílies de models destacades de sota.", - "Searching for LLaMA.cpp models...": "S'estan cercant models de LLaMA.cpp...", - "MLX Models": "Models MLX", - "MLX models are only supported on Apple Silicon Macs (M1, M2, M3, M4, etc.). Your current device is not compatible.": "Els models MLX només s'admeten als Mac amb Apple Silicon (M1, M2, M3, M4, etc.). El vostre dispositiu actual no és compatible.", - "There are no compatible MLX providers available. Please add at least one MLX provider to use MLX Models.": "No hi ha cap proveïdor MLX compatible disponible. Afegiu com a mínim un proveïdor MLX per utilitzar els models MLX.", - "{count} Active MLX Download | {count} Active MLX Downloads": "{count} baixada activa d'MLX | {count} baixades actives d'MLX", - "Learn More about MLX": "Més informació sobre MLX", - "Featured MLX Models": "Models MLX destacats", - "Installed MLX Models": "Models MLX instal·lats", - "MLX Model {modelName} is already installed": "El model MLX {modelName} ja està instal·lat", - "Uninstall MLX Model": "Desinstal·la el model MLX", - "MLX Model removed": "S'ha eliminat el model MLX", - "Failed to uninstall MLX model": "No s'ha pogut desinstal·lar el model MLX", - "MLX Model {modelName} is ready to use": "El model MLX {modelName} ja es pot fer servir", - "Failed to install MLX model {modelName}": "No s'ha pogut instal·lar el model MLX {modelName}", - "Downloading of MLX model {modelName} was aborted": "S'ha interromput la baixada del model MLX {modelName}", - "MLX Community Models": "Models de la comunitat d'MLX", - "Search MLX Community Models": "Cerca models de la comunitat d'MLX", - "Search MLX models from HuggingFace mlx-community": "Cerqueu models MLX de mlx-community de HuggingFace", - "Find MLX optimized models from HuggingFace. Or get started with one of the model families below.": "Trobeu models optimitzats per a MLX de HuggingFace. O bé comenceu amb una de les famílies de models de sota.", - "Searching for MLX models...": "S'estan cercant models MLX...", - "Sticky Prompt": "Indicació fixada", - "Disable Sticky Prompt": "Desactiva la indicació fixada", - "Edit Sticky Prompt": "Edita la indicació fixada", - "When a 'sticky' prompt is pinned, it is added to the beginning of each new message while ignoring any previous ones. This effectively makes the conversation focused on one active context. System prompt is always included in the context.": "Quan es fixa una indicació «fixada», s'afegeix al començament de cada missatge nou i s'ignoren les anteriors. Així la conversa es concentra en un únic context actiu. La indicació del sistema sempre s'inclou al context.", - "@:context Shield": "Escut de context", - "Enable @:contextShield.title": "Activa l'@:contextShield.title", - "Enable @:contextShield.title{'.'} Hold Option/Alt to @:contextShield.title all synced splits.": "Activa l'@:contextShield.title{'.'} Mantingueu premut Opció/Alt per aplicar-lo a totes les divisions sincronitzades.", - "Remove @:contextShield.title": "Treu l'@:contextShield.title", - "Disable @:contextShield.title{'.'} Hold Option/Alt to remove @:contextShield.title from all synced splits.": "Desactiva l'@:contextShield.title{'.'} Mantingueu premut Opció/Alt per treure'l de totes les divisions sincronitzades.", - "Break @:context": "Trenca el context", - "Custom @:context": "Context personalitzat", - "Generate @:context @:summary": "Genera el resum del context", - "@:context @:summary": "Resum del context", - "Edit @:context @:summary": "Edita el resum del context", - "Regenerate @:context @:summary": "Regenera el resum del context", - "Clear @:context @:summary": "Esborra el resum del context", - "This summary is generated from the context of the conversations above and is included in the context when generating new messages below this shield.": "Aquest resum es genera a partir del context de les converses de dalt i s'inclou al context en generar missatges nous per sota d'aquest escut.", - "@:contextShield.title with @:summary": "@:contextShield.title amb resum", - "Data": "Dades", - "Advanced Configurations": "Configuracions avançades", - "Application Info": "Informació de l'aplicació", - "App Version": "Versió de l'aplicació", - "The latest updates are checked periodically and you will be notified when a new update is available. You can also manually check for updates, which will then automatically install any available updates.": "Les darreres actualitzacions es comproven periòdicament i se us notificarà quan n'hi hagi una de nova disponible. També podeu comprovar les actualitzacions manualment, cosa que instal·larà automàticament les que hi hagi disponibles.", - "Check and Apply Updates": "Comprova i aplica les actualitzacions", - "Enable Auto Updates": "Activa les actualitzacions automàtiques", - "Disable Auto Updates": "Desactiva les actualitzacions automàtiques", - "View Changelog": "Mostra el registre de canvis", - "Checking for updates...": "S'estan comprovant les actualitzacions...", - "Failed to check for updates": "No s'han pogut comprovar les actualitzacions", - "Auto updates enabled": "S'han activat les actualitzacions automàtiques", - "Auto updates disabled": "S'han desactivat les actualitzacions automàtiques", - "New update available": "Hi ha una actualització nova disponible", - "Downloading update...": "S'està baixant l'actualització...", - "You're on the latest version": "Teniu la darrera versió", - "Models Info": "Informació dels models", - "Update your local model metadata. This information includes details about each model, but not the model files themselves. This applies to both locally stored and online models.": "Actualitzeu les metadades dels vostres models locals. Aquesta informació inclou detalls de cada model, però no els fitxers del model. S'aplica tant als models emmagatzemats localment com als models en línia.", - "Fetch Latest Models Info": "Recupera la darrera informació dels models", - "Models info updated successfully": "La informació dels models s'ha actualitzat correctament", - "Failed to update models info": "No s'ha pogut actualitzar la informació dels models", - "App Settings": "Configuració de l'aplicació", - "Resetting app settings to their defaults can help resolve potential issues. This will restore the default user preferences, such as appearance and models path, but will not delete any data, including chats or downloaded/imported models.": "Restablir la configuració de l'aplicació als valors per defecte pot ajudar a resoldre possibles problemes. Això restaurarà les preferències per defecte de l'usuari, com ara l'aparença i el camí dels models, però no suprimirà cap dada, inclosos els xats o els models baixats o importats.", - "Reset App Settings": "Restableix la configuració de l'aplicació", - "Are you sure you want to reset all app settings to their defaults? This will restore default preferences but won't delete your data.": "Segur que voleu restablir tota la configuració de l'aplicació als valors per defecte? Això restaurarà les preferències per defecte però no suprimirà les vostres dades.", - "App settings reset successfully": "La configuració de l'aplicació s'ha restablert correctament", - "Failed to reset app settings": "No s'ha pogut restablir la configuració de l'aplicació", - "Data Paths": "Camins de les dades", - "All data, including models, conversations, settings, and logs, are stored locally on your device. Only modify the contents of these directories if you are familiar with the application's file structure.": "Totes les dades, inclosos els models, les converses, la configuració i els registres, s'emmagatzemen localment al vostre dispositiu. Modifiqueu el contingut d'aquests directoris només si coneixeu l'estructura de fitxers de l'aplicació.", - "App Data": "Dades de l'aplicació", - "App Logs": "Registres de l'aplicació", - "Open in Finder": "Obre al Finder", - "Help & Discussions": "Ajuda i debats", - "Connect with our community on Discord to get support, share your feedback, and stay informed.": "Connecteu amb la nostra comunitat a Discord per rebre assistència, compartir els vostres comentaris i estar al dia.", - "Say Hi!": "Saludeu!", - "View Docs": "Mostra la documentació", - "Log Viewer": "Visualitzador de registres", - "View and analyze application logs in real-time. Use filters and search to troubleshoot issues efficiently.": "Visualitzeu i analitzeu els registres de l'aplicació en temps real. Feu servir els filtres i la cerca per resoldre problemes de manera eficient.", - "Search Logs...": "Cerca als registres...", - "Refresh Logs": "Actualitza els registres", - "Stop Auto-Refresh": "Atura l'actualització automàtica", - "Enable Auto-Refresh": "Activa l'actualització automàtica", - "Stop Auto-Scroll": "Atura el desplaçament automàtic", - "Resume Auto-Scroll": "Reprèn el desplaçament automàtic", - "Copy Logs to Clipboard": "Copia els registres al porta-retalls", - "Download Logs": "Baixa els registres", - "Clear Logs Display": "Esborra la visualització dels registres", - "Clear Logs File": "Esborra el fitxer de registres", - "Show All Logs": "Mostra tots els registres", - "Clear Log File": "Esborra el fitxer de registre", - "Are you sure you want to clear the log file? This will permanently delete all log entries.": "Segur que voleu esborrar el fitxer de registre? Això suprimirà permanentment totes les entrades del registre.", - "Loading logs...": "S'estan carregant els registres...", - "No logs available": "No hi ha cap registre disponible", - "No logs match the current filters": "Cap registre coincideix amb els filtres actuals", - "{count} total line | {count} total lines": "{count} línia en total | {count} línies en total", - "{count} filtered line | {count} filtered lines": "{count} línia filtrada | {count} línies filtrades", - "Logs copied to clipboard": "S'han copiat els registres al porta-retalls", - "Logs downloaded successfully": "Els registres s'han baixat correctament", - "Log file cleared successfully": "El fitxer de registre s'ha esborrat correctament", - "Failed to load logs": "No s'han pogut carregar els registres", - "Failed to copy logs": "No s'han pogut copiar els registres", - "Failed to download logs": "No s'han pogut baixar els registres", - "Failed to clear logs": "No s'han pogut esborrar els registres", - "All Levels": "Tots els nivells", - "Info": "Informació", - "Debug": "Depuració", - "Notifications": "Notificacions", - "Review and manage application notifications including errors, warnings, and info events.": "Reviseu i gestioneu les notificacions de l'aplicació, inclosos errors, avisos i esdeveniments informatius.", - "Search Notifications...": "Cerca a les notificacions...", - "Searching all notifications in database": "S'està cercant a totes les notificacions de la base de dades", - "Refresh Notifications": "Actualitza les notificacions", - "Auto-Refresh Enabled": "Actualització automàtica activada", - "Copy All to Clipboard": "Copia-ho tot al porta-retalls", - "Copy Notification": "Copia la notificació", - "Download Notifications": "Baixa les notificacions", - "Clear All Notifications": "Esborra totes les notificacions", - "Clear Notifications": "Esborra les notificacions", - "Are you sure you want to permanently delete all notifications? This action cannot be undone.": "Segur que voleu suprimir permanentment totes les notificacions? Aquesta acció no es pot desfer.", - "Loading notifications...": "S'estan carregant les notificacions...", - "Loading more...": "S'està carregant més...", - "End of list": "Final de la llista", - "No notifications available": "No hi ha cap notificació disponible", - "{count} notification | {count} notifications": "{count} notificació | {count} notificacions", - "Showing {count}": "Es mostren {count}", - "Notification copied to clipboard": "S'ha copiat la notificació al porta-retalls", - "Notifications downloaded successfully": "Les notificacions s'han baixat correctament", - "Notifications cleared successfully": "Les notificacions s'han esborrat correctament", - "Notification deleted successfully": "La notificació s'ha suprimit correctament", - "Failed to load notifications": "No s'han pogut carregar les notificacions", - "Failed to copy notification": "No s'ha pogut copiar la notificació", - "Failed to download notifications": "No s'han pogut baixar les notificacions", - "Failed to clear notifications": "No s'han pogut esborrar les notificacions", - "Failed to delete notification": "No s'ha pogut suprimir la notificació", - "Purge Notifications": "Purga les notificacions", - "Older than 1 day": "De fa més d'1 dia", - "Older than 7 days": "De fa més de 7 dies", - "Older than 15 days": "De fa més de 15 dies", - "Older than 30 days": "De fa més de 30 dies", - "Are you sure you want to delete notifications older than {days} days? This action cannot be undone.": "Segur que voleu suprimir les notificacions de fa més de {days} dies? Aquesta acció no es pot desfer.", - "Purge": "Purga", - "Notifications purged successfully": "Les notificacions s'han purgat correctament", - "Failed to purge notifications": "No s'han pogut purgar les notificacions", - "Errors": "Errors", - "Warnings": "Avisos", - "Show extra items": "Mostra els elements addicionals", - "Hide extra items": "Amaga els elements addicionals", - "Models & Prompts": "Models i indicacions", - "Personas & Tools": "Personalitats i eines", - "Knowledge & Insights": "Coneixement i informació", - "System": "Sistema", - "Version {version}": "Versió {version}", - "Restart to Apply Updates": "Reinicia per aplicar les actualitzacions", - "Restart Now": "Reinicia ara", - "Downloading Update...": "S'està baixant l'actualització...", - "Opening Changelog...": "S'està obrint el registre de canvis...", - "Update error - click for details": "Error d'actualització: feu clic per veure'n els detalls", - "Update ready - restart to apply": "Actualització a punt: reinicieu per aplicar-la", - "Downloading update... {percent}%": "S'està baixant l'actualització... {percent}%", - "Update Error": "Error d'actualització", - "An error occurred while updating: {error}": "S'ha produït un error en actualitzar: {error}" -} diff --git a/tools/msty_ca/tr_006.json b/tools/msty_ca/tr_006.json deleted file mode 100644 index 3f9343c..0000000 --- a/tools/msty_ca/tr_006.json +++ /dev/null @@ -1,217 +0,0 @@ -{ - "Download Manually": "Baixa manualment", - "Show in Finder": "Mostra al Finder", - "Show in File Explorer": "Mostra a l'Explorador de fitxers", - "Show in File Manager": "Mostra al gestor de fitxers", - "Settings": "Configuració", - "General": "General", - "Default Prompts": "Indicacions per defecte", - "These prompts shape how titles are generated, search queries are built, knowledge is retrieved, and context is summarized. Changes are saved to this device’s global settings (master database) and apply across all workspaces (not per workspace).": "Aquestes indicacions determinen com es generen els títols, es construeixen les consultes de cerca, es recupera el coneixement i es resumeix el context. Els canvis es desen a la configuració global d'aquest dispositiu (base de dades mestra) i s'apliquen a tots els espais de treball (no per espai de treball).", - "Available Prompts": "Indicacions disponibles", - "Customized": "Personalitzat", - "{count} customized": "{count} personalitzades", - "Using Custom": "S'usa la personalitzada", - "Using Default": "S'usa la predeterminada", - "Click to edit prompt": "Feu clic per editar la indicació", - "Variables": "Variables", - "Last modified": "Darrera modificació", - "Select a prompt to customize": "Seleccioneu una indicació per personalitzar-la", - "Clear Content": "Esborra el contingut", - "Reset to Default": "Restableix al valor per defecte", - "Insert from Library": "Insereix des de la biblioteca", - "Save Changes": "Desa els canvis", - "Discard Changes": "Descarta els canvis", - "Content Generation": "Generació de contingut", - "Search & Synthesis": "Cerca i síntesi", - "Analysis & Extraction": "Anàlisi i extracció", - "License and Access": "Llicència i accés", - "Font @:size": "@:size de la lletra", - "Real-Time Data Search": "Cerca de dades en temps real", - "Default RTD Provider": "Proveïdor de RTD per defecte", - "Choose the default Real-Time Data search provider that will be used when creating new conversations.": "Trieu el proveïdor de cerca de dades en temps real per defecte que s'utilitzarà en crear converses noves.", - "{provider} set as default RTD provider": "{provider} s'ha establert com a proveïdor de RTD per defecte", - "Failed to save default RTD provider": "No s'ha pogut desar el proveïdor de RTD per defecte", - "No RTD providers available": "No hi ha cap proveïdor de RTD disponible", - "Configure advanced options for": "Configura les opcions avançades de", - "Configuration saved for {provider}": "S'ha desat la configuració de {provider}", - "Default RTD Mode": "Mode de RTD per defecte", - "Set the default RTD mode for new conversations.": "Establiu el mode de RTD per defecte per a les converses noves.", - "New conversations will use push mode by default.": "Les converses noves utilitzaran el mode d'emissió (push) per defecte.", - "New conversations will use pull mode by default.": "Les converses noves utilitzaran el mode de recepció (pull) per defecte.", - "Pull mode requires an Aurum plan.": "El mode de recepció (pull) requereix un pla Aurum.", - "Failed to save default RTD mode": "No s'ha pogut desar el mode de RTD per defecte", - "Teams": "Equips", - "Appearance": "Aparença", - "Auto-archive inactive conversations": "Arxiva automàticament les converses inactives", - "Automatically move inactive conversations to Archive after the selected number of days. Use Enable auto-archive to turn it on. Run archive now performs a one-time cleanup using the current day threshold.": "Mou automàticament les converses inactives a l'arxiu després del nombre de dies seleccionat. Feu servir «Activa l'arxivament automàtic» per activar-ho. «Arxiva ara» fa una neteja puntual amb el llindar de dies actual.", - "Enable auto-archive": "Activa l'arxivament automàtic", - "Disable auto-archive": "Desactiva l'arxivament automàtic", - "Archived conversations stay accessible from the Archive section.": "Les converses arxivades continuen sent accessibles des de la secció d'arxiu.", - "Archive after": "Arxiva després de", - "day | days": "dia | dies", - "Enable or disable from the menu": "Activeu-ho o desactiveu-ho des del menú", - "Run archive now": "Arxiva ara", - "Enable auto-archive and set days > 0 to run": "Activeu l'arxivament automàtic i establiu dies > 0 per executar-lo", - "Auto-archive set to {days} day | Auto-archive set to {days} days": "L'arxivament automàtic s'ha establert a {days} dia | L'arxivament automàtic s'ha establert a {days} dies", - "Auto-archive enabled": "S'ha activat l'arxivament automàtic", - "Auto-archive disabled": "S'ha desactivat l'arxivament automàtic", - "Setup {service}": "Configura {service}", - "Workspace Lock & Secrets Encryption": "Bloqueig de l'espai de treball i xifratge de secrets", - "Lock your workspace with a passphrase so sensitive settings and API keys stay hidden until you unlock. Unlock once per session, rotate the passphrase anytime, or turn protection off if you change your mind.": "Bloquegeu el vostre espai de treball amb una frase de pas perquè la configuració sensible i les claus API quedin amagades fins que el desbloquegeu. Desbloquegeu-lo un cop per sessió, canvieu la frase de pas quan vulgueu o desactiveu la protecció si canvieu d'opinió.", - "Passphrase-based encryption is experimental. Please keep a backup of your secrets before enabling.": "El xifratge basat en frase de pas és experimental. Conserveu una còpia de seguretat dels vostres secrets abans d'activar-lo.", - "Status:": "Estat:", - "Locked": "Bloquejat", - "Unlocked": "Desbloquejat", - "Lock": "Bloqueja", - "Unlock": "Desbloqueja", - "Workspace is protected. Unlock with your passphrase.": "L'espai de treball està protegit. Desbloquegeu-lo amb la vostra frase de pas.", - "Unprotected": "Sense protecció", - "Workspace lock is not configured. Set a passphrase first.": "El bloqueig de l'espai de treball no està configurat. Definiu primer una frase de pas.", - "Enter Passphrase": "Introduïu la frase de pas", - "Workspace unlocked for this session": "L'espai de treball s'ha desbloquejat per a aquesta sessió", - "Workspace locked": "S'ha bloquejat l'espai de treball", - "Disable Encryption": "Desactiva el xifratge", - "Enter passphrase to decrypt and disable encryption.": "Introduïu la frase de pas per desxifrar i desactivar el xifratge.", - "Disable Protection": "Desactiva la protecció", - "Enter your passphrase to disable workspace protection. This will remove encryption from your stored secrets and API keys.": "Introduïu la vostra frase de pas per desactivar la protecció de l'espai de treball. Això eliminarà el xifratge dels vostres secrets i claus API emmagatzemats.", - "Are you sure you want to disable workspace protection? This will permanently decrypt all encrypted secrets and API keys in your database.": "Segur que voleu desactivar la protecció de l'espai de treball? Això desxifrarà permanentment tots els secrets i claus API xifrats de la vostra base de dades.", - "Enable Protection": "Activa la protecció", - "Set Passphrase": "Defineix la frase de pas", - "Important: Save your passphrase safely and securely. You cannot recover a forgotten passphrase, and without it, you will lose access to your encrypted workspace data.": "Important: deseu la vostra frase de pas de manera segura. No es pot recuperar una frase de pas oblidada i, sense ella, perdreu l'accés a les dades xifrades del vostre espai de treball.", - "Change Passphrase": "Canvia la frase de pas", - "Important: Save your new passphrase safely and securely. You cannot recover a forgotten passphrase, and without it, you will lose access to your encrypted workspace data.": "Important: deseu la vostra nova frase de pas de manera segura. No es pot recuperar una frase de pas oblidada i, sense ella, perdreu l'accés a les dades xifrades del vostre espai de treball.", - "Update Passphrase": "Actualitza la frase de pas", - "Passphrase": "Frase de pas", - "Current passphrase": "Frase de pas actual", - "New passphrase": "Frase de pas nova", - "Confirm passphrase": "Confirmeu la frase de pas", - "Passphrase must be at least 8 characters": "La frase de pas ha de tenir com a mínim 8 caràcters", - "Passphrases do not match": "Les frases de pas no coincideixen", - "Invalid input": "Entrada no vàlida", - "Passphrase configured": "S'ha configurat la frase de pas", - "Failed to configure passphrase": "No s'ha pogut configurar la frase de pas", - "Passphrase updated": "S'ha actualitzat la frase de pas", - "Failed to update passphrase": "No s'ha pogut actualitzar la frase de pas", - "Decrypt stored secrets and remove workspace protection?": "Voleu desxifrar els secrets emmagatzemats i treure la protecció de l'espai de treball?", - "Encryption disabled": "S'ha desactivat el xifratge", - "Failed to disable encryption": "No s'ha pogut desactivar el xifratge", - "Incorrect passphrase": "La frase de pas és incorrecta", - "{workspaceName} is locked": "{workspaceName} està bloquejat", - "Can't unlock this workspace?": "No podeu desbloquejar aquest espai de treball?", - "Switch back to {workspaceName} so you can keep working.": "Torneu a {workspaceName} per continuar treballant.", - "Switch back to {workspaceName}": "Torna a {workspaceName}", - "Unable to switch workspaces. Please try again.": "No s'han pogut canviar els espais de treball. Torneu-ho a provar.", - "Select the button below to export a copy of your data for backup or transfer to another device. The exported data includes conversations, prompts, models, settings, and other application data across all Workspaces.": "Seleccioneu el botó de sota per exportar una còpia de les vostres dades com a còpia de seguretat o per transferir-les a un altre dispositiu. Les dades exportades inclouen converses, indicacions, models, configuració i altres dades de l'aplicació de tots els espais de treball.", - "@:data Backup Reminder Interval": "Interval de recordatori de còpia de seguretat de les dades", - "How often to remind you to backup your data.": "Amb quina freqüència recordar-vos que feu una còpia de seguretat de les dades.", - "Danger Zone": "Zona de perill", - "Actions in this section are irreversible and may result in data loss. We recommend exporting a copy of your data before performing any actions here.": "Les accions d'aquesta secció són irreversibles i poden provocar pèrdua de dades. Us recomanem exportar una còpia de les vostres dades abans de fer cap acció aquí.", - "Clear Data": "Esborra les dades", - "Permanently delete all application data including conversations, prompts, models, settings, and other related information across all Workspaces.": "Suprimeix permanentment totes les dades de l'aplicació, incloses converses, indicacions, models, configuració i altra informació relacionada de tots els espais de treball.", - "Restore @:data from Backup": "Restaura les dades des d'una còpia de seguretat", - "Import a previously exported data zip file to restore conversations, prompts, models, settings, and other application data across all Workspaces. This action will overwrite all existing data.": "Importeu un fitxer zip de dades exportat prèviament per restaurar converses, indicacions, models, configuració i altres dades de l'aplicació de tots els espais de treball. Aquesta acció sobreescriurà totes les dades existents.", - "Migrate": "Migra", - "Msty App 1.x to Studio Migration": "Migració de l'Msty App 1.x a Studio", - "Step 2: Select Items to Migrate": "Pas 2: Seleccioneu els elements a migrar", - "Select Items": "Selecciona els elements", - "You can import Prompt Library Prompts, Remote Model Providers, Conversations, and Attachments into the current workspace you are in. If you want to import into a different workspace, please switch to that workspace first.": "Podeu importar indicacions de la biblioteca d'indicacions, proveïdors de models remots, converses i adjuncions a l'espai de treball on us trobeu actualment. Si voleu importar-les a un espai de treball diferent, canvieu-hi primer.", - "Migrating remote model providers will NOT carry over API keys, they must be re-entered. Some legacy models may not be supported in Studio.": "En migrar els proveïdors de models remots NO es transferiran les claus API; cal tornar-les a introduir. És possible que alguns models antics no s'admetin a Studio.", - "If migrating attachments, first zip the attachments folder. You can migrate attachments separately after migrating the database or together with the database.": "Si migreu adjuncions, comprimiu primer la carpeta d'adjuncions en un zip. Podeu migrar les adjuncions per separat després de migrar la base de dades o juntament amb la base de dades.", - "Database Migration": "Migració de la base de dades", - "Step 1: Select Msty App 1.x Database File": "Pas 1: Seleccioneu el fitxer de base de dades de l'Msty App 1.x", - "Drag and drop your Msty Database file": "Arrossegueu i deixeu anar el vostre fitxer de base de dades de Msty", - "Msty App 1.x database files are typically named `msty.db`": "Els fitxers de base de dades de l'Msty App 1.x solen anomenar-se `msty.db`", - "Attachments Migration": "Migració de les adjuncions", - "Migrate Separately": "Migra per separat", - "Step 3: Add Zipped Attachments Folder": "Pas 3: Afegiu la carpeta d'adjuncions comprimida", - "Successfully migrated the attachments": "Les adjuncions s'han migrat correctament", - "Failed to migrate the attachments": "No s'han pogut migrar les adjuncions", - "Drag and drop your zipped attachments folder": "Arrossegueu i deixeu anar la vostra carpeta d'adjuncions comprimida", - "Zip the entire attachments folder from Msty App 1.x. After selecting, you can migrate separately if adding after database migration.": "Comprimiu en un zip tota la carpeta d'adjuncions de l'Msty App 1.x. Després de seleccionar-la, podeu migrar-la per separat si l'afegiu després de la migració de la base de dades.", - "Please select a database file and at least one table to migrate": "Seleccioneu un fitxer de base de dades i com a mínim una taula per migrar", - "Missing Data": "Falten dades", - "Migrate your data from Msty App 1.x into Studio. Imported data will not overwrite existing data.": "Migreu les vostres dades de l'Msty App 1.x a Studio. Les dades importades no sobreescriuran les dades existents.", - "Successfully migrated {item}": "S'ha migrat {item} correctament", - "Failed to migrate {item}": "No s'ha pogut migrar {item}", - "Migration In Progress...": "Migració en curs...", - "{item} Migration Completed": "Migració de {item} completada", - "{item} Migration Failed": "La migració de {item} ha fallat", - "Migrating {item}...": "S'està migrant {item}...", - "Migration Error": "Error de migració", - "View Details": "Mostra els detalls", - "Message": "Missatge", - "Cause": "Causa", - "Color Preference": "Preferència de color", - "Accent Color": "Color d'accent", - "Dark": "Fosc", - "Light": "Clar", - "Default | Defaults": "Predeterminat | Predeterminats", - "Base Color": "Color base", - "Emerald": "Maragda", - "Lime": "Llima", - "Green": "Verd", - "Red": "Vermell", - "Orange": "Taronja", - "Amber": "Ambre", - "Yellow": "Groc", - "Teal": "Xarxet", - "Cyan": "Cian", - "Sky": "Cel", - "Indigo": "Indi", - "Violet": "Violeta", - "Purple": "Porpra", - "Fuchsia": "Fúcsia", - "Pink": "Rosa", - "Rose": "Rosat", - "Slate": "Pissarra", - "Gray": "Gris", - "Zinc": "Zinc", - "Stone": "Pedra", - "Sandy": "Sorra", - "Lighter": "Més clar", - "Code Theme": "Tema del codi", - "RTL Support": "Compatibilitat amb RTL", - "Enable right-to-left layouts for languages like Arabic, Hebrew, and Persian. The entire workspace updates instantly when toggled.": "Activeu les disposicions de dreta a esquerra per a llengües com l'àrab, l'hebreu i el persa. Tot l'espai de treball s'actualitza a l'instant en activar-ho.", - "Enable RTL Layout": "Activa la disposició RTL", - "Right-to-left layout is active across the app.": "La disposició de dreta a esquerra està activa a tota l'aplicació.", - "The app is currently using a left-to-right layout.": "L'aplicació utilitza actualment una disposició d'esquerra a dreta.", - "Mini Map": "Minimapa", - "Enable the inline mini map message navigator with branch previews. When disabled, a simpler Top/Bottom navigator is used.": "Activeu el navegador de missatges en minimapa amb previsualitzacions de branques. Quan està desactivat, s'utilitza un navegador més senzill de dalt/baix.", - "Branch Breadcrumbs": "Ruta de navegació de branques", - "Show a compact navigation bar at the top of conversations when branches exist.": "Mostra una barra de navegació compacta a la part superior de les converses quan hi ha branques.", - "Spellcheck": "Correcció ortogràfica", - "Enable or disable spellcheck for text input fields. Disabling can help when working with multiple languages or technical content. Your operating system's spell checker settings may override these preferences. Restart the application after changing this setting for the changes to take full effect.": "Activeu o desactiveu la correcció ortogràfica als camps d'entrada de text. Desactivar-la pot ajudar quan treballeu amb diverses llengües o contingut tècnic. La configuració del corrector ortogràfic del vostre sistema operatiu pot prevaler sobre aquestes preferències. Reinicieu l'aplicació després de canviar aquest paràmetre perquè els canvis tinguin efecte complet.", - "Language & Localization": "Llengua i localització", - "Switch between interface languages, preview developer mode, or import a temporary locale file. If you want to contribute a translation, please visit https://github.com/cloudstack-llc/msty-studio-i18n": "Canvieu entre les llengües de la interfície, previsualitzeu el mode de desenvolupador o importeu un fitxer de configuració regional temporal. Si voleu contribuir amb una traducció, visiteu https://github.com/cloudstack-llc/msty-studio-i18n", - "Language": "Llengua", - "Download Template": "Baixa la plantilla", - "Download this built-in locale JSON file.": "Baixa aquest fitxer JSON de configuració regional integrat.", - "Download the current custom locale you imported.": "Baixa la configuració regional personalitzada actual que heu importat.", - "Download an empty template based on the base locale.": "Baixa una plantilla buida basada en la configuració regional base.", - "Import Locale": "Importa una configuració regional", - "Imported locales last only until you restart or refresh the app.": "Les configuracions regionals importades només duren fins que reinicieu o actualitzeu l'aplicació.", - "Locale Imported": "S'ha importat la configuració regional", - "Now using {code}. Review the interface to confirm translations.": "Ara s'utilitza {code}. Reviseu la interfície per confirmar les traduccions.", - "We couldn't import that locale file. Make sure it's valid JSON based on the template.": "No hem pogut importar aquest fitxer de configuració regional. Assegureu-vos que sigui un JSON vàlid basat en la plantilla.", - "Developer Mode": "Mode de desenvolupador", - "Security": "Seguretat", - "Configure security settings for the application": "Configureu els paràmetres de seguretat de l'aplicació", - "Disable Web Security": "Desactiva la seguretat web", - "This may help you resolve some CORS related issue. However, this is not recommended and may expose your application to security risks. Disable it only if you know what you are doing. You must restart the app for this setting to take effect.": "Això us pot ajudar a resoldre algun problema relacionat amb CORS. Tanmateix, no es recomana i pot exposar l'aplicació a riscos de seguretat. Desactiveu-la només si sabeu què feu. Heu de reiniciar l'aplicació perquè aquest paràmetre tingui efecte.", - "Apply & Restart": "Aplica i reinicia", - "Font Style": "Estil de la lletra", - "Rendering Modules": "Mòduls de renderització", - "@:select Rendering Modules": "Selecciona els mòduls de renderització", - "Allow Msty Studio web to connect to this device to run remote tools and access local models. This service must be actively running to allow remote connections.": "Permet que el web de Msty Studio es connecti a aquest dispositiu per executar eines remotes i accedir a models locals. Aquest servei s'ha d'estar executant activament per permetre les connexions remotes.", - "Enable Service": "Activa el servei", - "Connection Token": "Testimoni de connexió", - "Remember Token": "Recorda el testimoni", - "Enter a strong connection token": "Introduïu un testimoni de connexió fort", - "This token is used to authenticate the connection between Msty Studio and this app when connecting remotely. You can regenerate it at any time to invalidate the previous token. Make sure to use a strong token and keep it secret.": "Aquest testimoni s'utilitza per autenticar la connexió entre Msty Studio i aquesta aplicació en connectar-se remotament. El podeu regenerar en qualsevol moment per invalidar el testimoni anterior. Assegureu-vos d'utilitzar un testimoni fort i mantingueu-lo en secret.", - "Remote Service is now active": "El servei remot ja està actiu", - "Error Enabling Connector": "Error en activar el connector", - "Failed to enable Remote Service. Please check the logs for more details": "No s'ha pogut activar el servei remot. Reviseu els registres per a més detalls", - "Copy Local URL": "Copia l'URL local", - "Copy Tunnel URL": "Copia l'URL del túnel", - "Remote Service is now disabled": "El servei remot ja està desactivat" -} diff --git a/tools/msty_ca/tr_007.json b/tools/msty_ca/tr_007.json deleted file mode 100644 index 7df774e..0000000 --- a/tools/msty_ca/tr_007.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "Enable Tunneling (Experimental)": "Activa el túnel (experimental)", - "Set up @:localAIService to run AI models locally on your device.": "Configureu @:localAIService per executar models d'IA localment al vostre dispositiu.", - "Models Location": "Ubicació dels models", - "Configure where your Local AI models are stored.": "Configureu on s'emmagatzemen els vostres models de IA local.", - "Use Existing Models": "Usa els models existents", - "Use models you already have without downloading them again.": "Useu els models que ja teniu sense tornar-los a baixar.", - "@:service Configurations": "Configuracions del servei", - "These configurations are applied to the @:localAIService when it starts. @:localAIService will automatically restart after you save any changes.": "Aquestes configuracions s'apliquen a @:localAIService quan s'inicia. @:localAIService es reiniciarà automàticament després de desar qualsevol canvi.", - "Configure Port Number": "Configura el número de port", - "Port number for @:localAIService{'.'} Leave empty to use default.": "Número de port de @:localAIService{'.'} Deixeu-ho buit per fer servir el valor per defecte.", - "Maximum Parallel Chats": "Màxim de xats en paral·lel", - "Maximum number of concurrent chat sessions (when using split mode).": "Nombre màxim de sessions de xat simultànies (quan s'utilitza el mode dividit).", - "Maximum Loaded Models": "Màxim de models carregats", - "Maximum number of LLMs loaded at the same time. Keeping more models in memory speeds up initial responses but uses more system resources.": "Nombre màxim d'LLM carregats alhora. Mantenir més models a la memòria accelera les respostes inicials però consumeix més recursos del sistema.", - "Enable Network Access": "Activa l'accés a la xarxa", - "Allow other devices on your network to access this @:localAIService through this device’s IP address.": "Permet que altres dispositius de la vostra xarxa accedeixin a @:localAIService a través de l'adreça IP d'aquest dispositiu.", - "Allowed Network Origins": "Orígens de xarxa permesos", - "List permitted network origins here (comma-separated). Each entry must begin with http:// or https://. Use * to permit all origins.": "Indiqueu aquí els orígens de xarxa permesos (separats per comes). Cada entrada ha de començar per http:// o https://. Feu servir * per permetre tots els orígens.", - "e.g. https://msty.studio, http://localhost:3000, *": "p. ex. https://msty.studio, http://localhost:3000, *", - "Allow Access from Msty Studio": "Permet l'accés des de Msty Studio", - "Allow connections from Msty Studio Web to this app so it can access @:localAIService{'.'}": "Permet les connexions des del web de Msty Studio a aquesta aplicació perquè pugui accedir a @:localAIService{'.'}", - "Capture @:service Logs": "Captura els registres del servei", - "Enable logging to capture service data for debugging. Use this option only when necessary.": "Activeu el registre per capturar dades del servei per a la depuració. Feu servir aquesta opció només quan calgui.", - "Enter valid JSON to set environment variables for the @:localAIService{'.'}": "Introduïu un JSON vàlid per definir les variables d'entorn de @:localAIService{'.'}", - "You have unsaved changes in the @:localAIService Configurations. Once you save, @:localAIService will be restarted with the new configurations.": "@:localAIService té canvis de configuració sense desar. Un cop els deseu, @:localAIService es reiniciarà amb les noves configuracions.", - "Save Changes and Restart Service": "Desa els canvis i reinicia el servei", - "@:localAIService Configurations saved and service restarted": "S'han desat les configuracions de @:localAIService i s'ha reiniciat el servei", - "Failed to save @:localAIService Configurations. Please check the logs for more details.": "No s'han pogut desar les configuracions del servei. Reviseu els registres per a més detalls.", - "@:model Configurations": "Configuracions del model", - "These configurations get applied to all models during chat sessions.": "Aquestes configuracions s'apliquen a tots els models durant les sessions de xat.", - "Model Keep-Alive Timeout": "Temps d'espera de manteniment del model", - "Time (in minutes) after which the model will be unloaded from memory if not used.": "Temps (en minuts) després del qual el model es descarregarà de la memòria si no s'utilitza.", - "Enter valid JSON to pass extra parameters to models during chat sessions.": "Introduïu un JSON vàlid per passar paràmetres addicionals als models durant les sessions de xat.", - "You have unsaved changes in the @:settings.localAI.modelConfigurations.title{'.'} Make sure to save them before starting a new chat session.": "Teniu canvis sense desar a @:settings.localAI.modelConfigurations.title{'.'} Assegureu-vos de desar-los abans d'iniciar una sessió de xat nova.", - "@:settings.localAI.modelConfigurations.title saved": "S'ha desat @:settings.localAI.modelConfigurations.title", - "Failed to save @:settings.localAI.modelConfigurations.title. Please check the logs for more details.": "No s'han pogut desar les configuracions del model. Reviseu els registres per a més detalls.", - "Open Local AI Settings": "Obre la configuració de la IA local", - "Manage Local AI Models": "Gestiona els models de IA local", - "Browse, install, and manage AI models for local inference.": "Navegueu, instal·leu i gestioneu models d'IA per a la inferència local.", - "Open Local AI Models Hub": "Obre el centre de models de IA local", - "Unified proxy for AI coding assistants. Connect to Claude Code, ChatGPT, Gemini, Qwen Code through a single local endpoint.": "Proxy unificat per a assistents de codi amb IA. Connecteu amb Claude Code, ChatGPT, Gemini i Qwen Code a través d'un únic punt final local.", - "Installs CLIProxyAPI binary to connect AI coding assistants (Claude Code, ChatGPT, Gemini, Qwen) via local proxy with OAuth authentication.": "Instal·la el binari CLIProxyAPI per connectar assistents de codi amb IA (Claude Code, ChatGPT, Gemini, Qwen) mitjançant un proxy local amb autenticació OAuth.", - "Install Vibe CLI Proxy": "Instal·la el Vibe CLI Proxy", - "Start or stop the Vibe CLI Proxy service.": "Inicieu o atureu el servei Vibe CLI Proxy.", - "Service Endpoint": "Punt final del servei", - "Use this endpoint for OpenAI-compatible requests routed through Vibe CLI Proxy.": "Useu aquest punt final per a les sol·licituds compatibles amb OpenAI encaminades a través del Vibe CLI Proxy.", - "Network host: {host}": "Amfitrió de xarxa: {host}", - "Endpoint copied": "S'ha copiat el punt final", - "Version": "Versió", - "Installed CLIProxyAPI version.": "Versió de CLIProxyAPI instal·lada.", - "Current version": "Versió actual", - "Reinstall": "Torna a instal·lar", - "Not installed": "No instal·lat", - "Service Configurations": "Configuracions del servei", - "Configure port, authentication directory, and network access for the proxy.": "Configureu el port, el directori d'autenticació i l'accés a la xarxa del proxy.", - "Port": "Port", - "Retries": "Reintents", - "Auth directory": "Directori d'autenticació", - "Enable network access": "Activa l'accés a la xarxa", - "Allow other devices on the network to reach the proxy.": "Permet que altres dispositius de la xarxa arribin al proxy.", - "Capture service logs": "Captura els registres del servei", - "Persist proxy logs for troubleshooting (may increase disk usage).": "Conserva els registres del proxy per a la resolució de problemes (pot augmentar l'ús del disc).", - "Enable remote management": "Activa la gestió remota", - "Expose management endpoints; requires a secret key.": "Exposa els punts finals de gestió; requereix una clau secreta.", - "Management secret key": "Clau secreta de gestió", - "Vibe CLI Proxy configurations updated": "S'han actualitzat les configuracions del Vibe CLI Proxy", - "Failed to update Vibe CLI Proxy configurations": "No s'han pogut actualitzar les configuracions del Vibe CLI Proxy", - "The local port where the proxy service listens for requests.": "El port local on el servei de proxy escolta les sol·licituds.", - "Number of retry attempts for failed upstream requests.": "Nombre d'intents de reintent per a les sol·licituds amunt fallides.", - "Directory where authentication tokens are stored.": "Directori on s'emmagatzemen els testimonis d'autenticació.", - "Secret key required for remote management operations.": "Clau secreta necessària per a les operacions de gestió remota.", - "Auth Folder": "Carpeta d'autenticació", - "Path where Vibe CLI Proxy stores OAuth tokens for connected providers. Managed automatically; not editable.": "Camí on el Vibe CLI Proxy emmagatzema els testimonis OAuth dels proveïdors connectats. Es gestiona automàticament; no és editable.", - "Authentication": "Autenticació", - "Securely link your AI accounts so Vibe CLI Proxy can call their APIs on your behalf. When you connect, a browser window opens for that provider where you complete sign-in.": "Enllaceu de manera segura els vostres comptes d'IA perquè el Vibe CLI Proxy pugui cridar les seves API en nom vostre. Quan us connecteu, s'obre una finestra del navegador per a aquell proveïdor on completeu l'inici de sessió.", - "Opening browser for OAuth…": "S'està obrint el navegador per a l'OAuth…", - "Complete authentication in your browser, then return here.": "Completeu l'autenticació al navegador i, després, torneu aquí.", - "Failed to start OAuth flow": "No s'ha pogut iniciar el flux d'OAuth", - "Device Authorization": "Autorització del dispositiu", - "Enter the code below at the authorization page to complete authentication.": "Introduïu el codi de sota a la pàgina d'autorització per completar l'autenticació.", - "Copy Code": "Copia el codi", - "Code copied to clipboard": "S'ha copiat el codi al porta-retalls", - "Open GitHub": "Obre GitHub", - "Important: Vibe CLI Proxy is a local proxy to third-party CLI coding agents. By proceeding, you accept full responsibility for compliance with each AI provider's terms of service. Use at your own risk. Msty is not liable for any account issues or service violations that may arise.": "Important: el Vibe CLI Proxy és un proxy local cap a agents de codi de CLI de tercers. En continuar, accepteu tota la responsabilitat del compliment de les condicions del servei de cada proveïdor d'IA. Useu-lo sota la vostra responsabilitat. Msty no es fa responsable de cap problema de compte ni de cap violació del servei que en pugui derivar.", - "Set @:mlxService to run optimized AI models on your Apple Silicon Mac.": "Configureu @:mlxService per executar models d'IA optimitzats al vostre Mac amb Apple Silicon.", - "Configure where your MLX models are stored.": "Configureu on s'emmagatzemen els vostres models MLX.", - "Open MLX Settings": "Obre la configuració d'MLX", - "Manage MLX Models": "Gestiona els models MLX", - "Browse, install, and manage MLX models optimized for Apple Silicon.": "Navegueu, instal·leu i gestioneu models MLX optimitzats per a Apple Silicon.", - "Open MLX Models Hub": "Obre el centre de models MLX", - "System Compatibility": "Compatibilitat del sistema", - "Check if your system is compatible with MLX.": "Comproveu si el vostre sistema és compatible amb MLX.", - "Check Again": "Torna a comprovar", - "Not checked": "No comprovat", - "Compatible": "Compatible", - "Not compatible": "No compatible", - "MLX Requirements:": "Requisits d'MLX:", - "Apple Silicon Mac (M1, M2, M3, M4)": "Mac amb Apple Silicon (M1, M2, M3, M4)", - "macOS 13.0 or later": "macOS 13.0 o posterior", - "Unified memory architecture": "Arquitectura de memòria unificada", - "Set @:llamacppService to run efficient AI models on Windows, macOS, and Linux.": "Configureu @:llamacppService per executar models d'IA eficients a Windows, macOS i Linux.", - "Configure where your LLaMA.cpp models are stored.": "Configureu on s'emmagatzemen els vostres models de LLaMA.cpp.", - "Open LLaMA.cpp Settings": "Obre la configuració de LLaMA.cpp", - "Manage LLaMA.cpp Models": "Gestiona els models de LLaMA.cpp", - "Browse, install, and manage LLaMA.cpp models for cross-platform inference.": "Navegueu, instal·leu i gestioneu models de LLaMA.cpp per a la inferència multiplataforma.", - "Open LLaMA.cpp Models Hub": "Obre el centre de models de LLaMA.cpp", - "Check if your system is compatible with LLaMA.cpp.": "Comproveu si el vostre sistema és compatible amb LLaMA.cpp.", - "LLaMA.cpp requires the desktop application": "LLaMA.cpp requereix l'aplicació d'escriptori", - "System Information": "Informació del sistema", - "Platform": "Plataforma", - "Architecture": "Arquitectura", - "Available Memory": "Memòria disponible", - "LLaMA.cpp Requirements:": "Requisits de LLaMA.cpp:", - "Desktop application (Windows, macOS, or Linux)": "Aplicació d'escriptori (Windows, macOS o Linux)", - "At least 4GB RAM (8GB+ recommended)": "Com a mínim 4 GB de RAM (es recomanen 8 GB o més)", - "Sufficient storage for models (varies by model size)": "Emmagatzematge suficient per als models (varia segons la mida del model)", - "Optional: GPU for acceleration (CUDA, Metal, OpenCL)": "Opcional: GPU per a l'acceleració (CUDA, Metal, OpenCL)", - "CPU Threads": "Fils de CPU", - "Number of CPU threads to use during inference. Set to -1 to auto-detect based on your system (maps to the --threads flag).": "Nombre de fils de CPU que s'utilitzen durant la inferència. Establiu-lo a -1 per detectar-lo automàticament segons el vostre sistema (correspon a l'indicador --threads).", - "Concurrent Requests": "Sol·licituds simultànies", - "Number of chats that can run at the same time per model (maps to --parallel flag). With parallel=2, each chat gets half the context size.": "Nombre de xats que poden executar-se alhora per model (correspon a l'indicador --parallel). Amb parallel=2, cada xat rep la meitat de la mida del context.", - "Concurrent requests": "Sol·licituds simultànies", - "Enter valid JSON to set environment variables for llama-server process. These variables have less priority than CLI args set in the Service and Model Configurations.": "Introduïu un JSON vàlid per definir les variables d'entorn del procés llama-server. Aquestes variables tenen menys prioritat que els arguments de CLI definits a les configuracions del servei i del model.", - "You have unsaved changes in the @:settings.llamacpp.modelConfigurations.title{'.'} Make sure to save them before starting a new chat session.": "Teniu canvis sense desar a @:settings.llamacpp.modelConfigurations.title{'.'} Assegureu-vos de desar-los abans d'iniciar una sessió de xat nova.", - "@:settings.llamacpp.modelConfigurations.title saved": "S'ha desat @:settings.llamacpp.modelConfigurations.title", - "Failed to save @:settings.llamacpp.modelConfigurations.title. Please check the logs for more details.": "No s'han pogut desar les configuracions del model. Reviseu els registres per a més detalls.", - "@:mlx Service": "Servei @:mlx", - "@:llamacpp Service": "Servei @:llamacpp", - "Settings and Configs": "Configuració i ajustos", - "API Keys": "Claus API", - "Create New Workspace": "Crea un espai de treball nou", - "Switch Workspace": "Canvia d'espai de treball", - "Switch to {workspaceName} Workspace": "Canvia a l'espai de treball {workspaceName}", - "Hide Workspace Tray": "Amaga la safata d'espais de treball", - "Show Workspace Tray": "Mostra la safata d'espais de treball", - "Workspace switched!": "S'ha canviat d'espai de treball!", - "{workspaceName} is now the active workspace": "Ara {workspaceName} és l'espai de treball actiu", - "Delete Workspace": "Suprimeix l'espai de treball", - "Workspace {workspaceName} is active": "L'espai de treball {workspaceName} està actiu", - "Your current active Workspace is: {workspaceName}": "El vostre espai de treball actiu actual és: {workspaceName}", - "New Workspace": "Espai de treball nou", - "Edit Workspace": "Edita l'espai de treball", - "Workspace Name": "Nom de l'espai de treball", - "What to copy from {activeWorkspace} workspace?": "Què voleu copiar de l'espai de treball {activeWorkspace}?", - "Copying items is disabled because the active workspace has a passphrase set.": "La còpia d'elements està desactivada perquè l'espai de treball actiu té definida una frase de pas.", - "Create and Switch": "Crea i canvia-hi", - "Create and Stay": "Crea i queda't", - "Workspace name already exists": "El nom de l'espai de treball ja existeix", - "Invalid or duplicate workspace name": "Nom d'espai de treball no vàlid o duplicat", - "Workspace updated": "S'ha actualitzat l'espai de treball", - "Failed to update Workspace": "No s'ha pogut actualitzar l'espai de treball", - "Workspace created and switched": "S'ha creat l'espai de treball i s'hi ha canviat", - "Workspace created": "S'ha creat l'espai de treball", - "Failed to create Workspace": "No s'ha pogut crear l'espai de treball", - "Are you sure you want to delete {workspaceName}? All data associated with this workspace will be deleted. This action cannot be undone.": "Segur que voleu suprimir {workspaceName}? Se suprimiran totes les dades associades a aquest espai de treball. Aquesta acció no es pot desfer.", - "@:download Workspace @:data": "Baixa les dades de l'espai de treball", - "Workspace {workspaceName} deleted": "S'ha suprimit l'espai de treball {workspaceName}", - "Failed to delete Workspace": "No s'ha pogut suprimir l'espai de treball", - "Export Workspace": "Exporta l'espai de treball", - "Workspace {workspaceName} data exported as {fileName}": "Les dades de l'espai de treball {workspaceName} s'han exportat com a {fileName}", - "Failed to export Workspace {workspaceName}": "No s'ha pogut exportar l'espai de treball {workspaceName}", - "@:import Workspace": "Importa un espai de treball", - "Drag and drop a zipped Msty Workspace file to import and create a new Workspace. In case of duplicate names, the imported workspace will be renamed. You can change it later.": "Arrossegueu i deixeu anar un fitxer comprimit d'espai de treball de Msty per importar-lo i crear un espai de treball nou. En cas de noms duplicats, l'espai de treball importat es reanomenarà. El podeu canviar més endavant.", - "Workspace {workspaceName} has been imported": "S'ha importat l'espai de treball {workspaceName}", - "Failed to import Workspace": "No s'ha pogut importar l'espai de treball", - "Attachments": "Adjuncions", - "Documents": "Documents", - "Images": "Imatges", - "Webpages": "Pàgines web", - "YouTube Links": "Enllaços de YouTube", - "Drop Them!": "Deixeu-los anar!", - "@:select all": "Selecciona-ho tot", - "Deselect all": "Desselecciona-ho tot", - "Drag-and-drop {attachmentType} here": "Arrossegueu i deixeu anar {attachmentType} aquí", - "Add New Attachments": "Afegeix adjuncions noves", - "Add {documentTypes} as well as some other code files": "Afegiu {documentTypes} i també altres fitxers de codi", - "Add .png, .jpg, or jpeg images": "Afegiu imatges .png, .jpg o jpeg", - "Drag-and-drop or browse more": "Arrossegueu i deixeu anar o exploreu-ne més", - "or paste comma-separated URLs": "o enganxeu URL separats per comes", - "Click to manage attached {attachmentType}": "Feu clic per gestionar {attachmentType} adjuntats", - "Selected model may not support image attachments.": "És possible que el model seleccionat no admeti adjuncions d'imatge.", - "Click to install vision capabilities.": "Feu clic per instal·lar les capacitats de visió.", - "Checking vision capabilities...": "S'estan comprovant les capacitats de visió...", - "Installing vision capabilities...": "S'estan instal·lant les capacitats de visió...", - "{count} document attached | {count} documents attached": "{count} document adjuntat | {count} documents adjuntats", - "{count} image attached | {count} images attached": "{count} imatge adjuntada | {count} imatges adjuntades", - "{count} webpage attached | {count} webpages attached": "{count} pàgina web adjuntada | {count} pàgines web adjuntades", - "a webpage link | webpage links": "un enllaç de pàgina web | enllaços de pàgines web", - "Hold {key} to share with Synced Splits": "Mantingueu premut {key} per compartir amb les divisions sincronitzades", - "{count} YouTube link attached | {count} YouTube links attached": "{count} enllaç de YouTube adjuntat | {count} enllaços de YouTube adjuntats", - "Failed to attach files": "No s'han pogut adjuntar els fitxers", - "Failed to attach webpages": "No s'han pogut adjuntar les pàgines web", - "Failed to import YouTube links info. {errorMessage}": "No s'ha pogut importar la informació dels enllaços de YouTube. {errorMessage}", - "Detach all": "Desadjunta-ho tot", - "Detach All": "Desadjunta-ho tot", - "Are you sure you want to detach all {attachmentType}? These {attachmentType} will not be available in the conversation anymore across all splits.": "Segur que voleu desadjuntar {attachmentType}? Aquests {attachmentType} ja no estaran disponibles a la conversa en cap divisió.", - "Maximum Result": "Resultat màxim", - "Attachments detached": "S'han desadjuntat les adjuncions", - "Manage keys": "Gestiona les claus", - "A valid Jina API Key is required to use this feature. You can visit the following link to get one for free:": "Cal una clau API de Jina vàlida per utilitzar aquesta funció. Podeu visitar l'enllaç següent per obtenir-ne una de franc:", - "You currently have {count} Jina API key(s) added. You can add add more keys and Msty will pick a random valid key to use for the request.": "Actualment teniu {count} clau(s) API de Jina afegida(es). Podeu afegir més claus i Msty triarà una clau vàlida a l'atzar per fer servir en la sol·licitud.", - "New Jina API Key": "Clau API de Jina nova", - "Edit Jina API Key": "Edita la clau API de Jina", - "Available Keys": "Claus disponibles", - "Key is {status}. Click to re-verify": "La clau està {status}. Feu clic per tornar a verificar-la", - "Verify Key and Add": "Verifica la clau i afegeix-la", - "Add a new Jina API key to use with the Jina Reader and Search endpoints. You can add multiple keys and verify them to ensure they are valid. When using the keys, Msty will pick a random valid key to use for the request.": "Afegiu una clau API de Jina nova per fer-la servir amb els punts finals Jina Reader i Search. Podeu afegir diverses claus i verificar-les per assegurar-vos que són vàlides. En fer servir les claus, Msty en triarà una de vàlida a l'atzar per a la sol·licitud.", - "All Good!": "Tot correcte!", - "Key seems to be valid and ready to use": "La clau sembla vàlida i a punt per fer-se servir", - "Jina API Key added": "S'ha afegit la clau API de Jina", - "Error{status}!": "Error{status}!", - "Failed to add Jina API Key. Please check the API key and make sure it is valid.": "No s'ha pogut afegir la clau API de Jina. Comproveu la clau API i assegureu-vos que sigui vàlida.", - "Token Budget": "Pressupost de tokens", - "Maximum number of tokens to use for Jina API requests. This helps control costs and response length.": "Nombre màxim de tokens que s'utilitzaran per a les sol·licituds de l'API de Jina. Això ajuda a controlar els costos i la longitud de la resposta." -} diff --git a/tools/msty_ca/tr_008.json b/tools/msty_ca/tr_008.json deleted file mode 100644 index 8cdc74b..0000000 --- a/tools/msty_ca/tr_008.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "Real Time @:data": "@:data en temps real", - "Click to toggle RTD; double-click to configure": "Feu clic per activar/desactivar la RTD; feu doble clic per configurar-la", - "@:rtd.title Contexts": "Contextos de @:rtd.title", - "Source removed": "S'ha eliminat la font", - "Failed to remove source": "No s'ha pogut eliminar la font", - "Failed to update source": "No s'ha pogut actualitzar la font", - "Search Provider": "Proveïdor de cerca", - "Jina": "Jina", - "Use @:remoteToolsConnector.title": "Usa @:remoteToolsConnector.title", - "No sources available": "No hi ha cap font disponible", - "Save {providerName} as default search provider": "Desa {providerName} com a proveïdor de cerca per defecte", - "{providerName} it is!": "Doncs {providerName}!", - "{providerName} is now the default search provider": "Ara {providerName} és el proveïdor de cerca per defecte", - "Auto with Fallback": "Automàtic amb alternativa", - "Google": "Google", - "Brave": "Brave", - "Ecosia": "Ecosia", - "Custom Search Query": "Consulta de cerca personalitzada", - "This query will be used for searching. Leave it empty to use the prompt as a query": "Aquesta consulta s'utilitzarà per cercar. Deixeu-la buida per fer servir la indicació com a consulta", - "Limit by Domain": "Limita per domini", - "e.g. reddit.com or gov or (site:reddit.com OR site:gov)": "p. ex. reddit.com o gov o (site:reddit.com OR site:gov)", - "Enter comma separated domains e.g. reddit.com,wikipedia.com": "Introduïu dominis separats per comes, p. ex. reddit.com,wikipedia.com", - "Extra Operators": "Operadors addicionals", - "Search Date Range": "Interval de dates de la cerca", - "After date - Before date": "Data posterior - Data anterior", - "@:rtd.title Enabled": "@:rtd.title activada", - "API": "API", - "@:remoteToolsConnector.title": "@:remoteToolsConnector.title", - "Use @:rtd.jina": "Usa @:rtd.jina", - "Use @:rtd.settings.google": "Usa @:rtd.settings.google", - "@:rtd.settings.google @:apiKey": "@:apiKey de @:rtd.settings.google", - "Custom Search Engine ID": "ID de motor de cerca personalitzat", - "@:rtd.settings.google @:rtd.google.cseIdLabel": "@:rtd.google.cseIdLabel de @:rtd.settings.google", - "Use @:rtd.settings.brave": "Usa @:rtd.settings.brave", - "Filter Results": "Filtra els resultats", - "@:rtd.settings.brave @:apiKey": "@:apiKey de @:rtd.settings.brave", - "SearXNG": "SearXNG", - "Engines": "Motors", - "Comma-separated list of engines to use e.g. google, brave etc.": "Llista de motors a utilitzar separats per comes, p. ex. google, brave, etc.", - "Extra Params": "Paràmetres addicionals", - "Add extra params. This should be a valid JSON object.": "Afegiu paràmetres addicionals. Ha de ser un objecte JSON vàlid.", - "Your SearXNG server must have JSON enabled as well as be served over HTTPS. For a workaround over HTTP on some browsers, check out our docs at https://docs.msty.studio": "El vostre servidor SearXNG ha de tenir el JSON activat i servir-se per HTTPS. Per a una solució alternativa per HTTP en alguns navegadors, consulteu la nostra documentació a https://docs.msty.studio", - "Use @:rtd.searXng.title": "Usa @:rtd.searXng.title", - "Tavily": "Tavily", - "Use @:rtd.tavily.title": "Usa @:rtd.tavily.title", - "Search Topic": "Tema de cerca", - "Category of search": "Categoria de la cerca", - "News": "Notícies", - "Finance": "Finances", - "Enter @:rtd.tavily.title @:apiKey": "Introduïu la @:apiKey de @:rtd.tavily.title", - "Search Depth": "Profunditat de la cerca", - "Depth of the search": "Profunditat de la cerca", - "Advance": "Avançada", - "Basic": "Bàsica", - "Time Range": "Interval de temps", - "Time range back from the current date": "Interval de temps enrere des de la data actual", - "Exa": "Exa", - "Use @:rtd.exa.title": "Usa @:rtd.exa.title", - "Enter @:rtd.exa.title @:apiKey": "Introduïu la @:apiKey de @:rtd.exa.title", - "Ollama": "Ollama", - "Use @:rtd.ollama.title": "Usa @:rtd.ollama.title", - "Enter @:rtd.ollama.title @:apiKey": "Introduïu la @:apiKey de @:rtd.ollama.title", - "Disable @:rtd.title": "Desactiva la @:rtd.title", - "@:rtd.title disabled": "@:rtd.title desactivada", - "Failed to disable @:rtd.title": "No s'ha pogut desactivar la @:rtd.title", - "Remote Service": "Servei remot", - "To use this feature, you need to connect with @:remoteToolsConnector.title{'.'}": "Per fer servir aquesta funció, us heu de connectar amb @:remoteToolsConnector.title{'.'}", - "RTD is experimental and may not work as expected.": "La RTD és experimental i pot ser que no funcioni com s'espera.", - "@:remoteToolsConnector.title - Connected": "@:remoteToolsConnector.title - Connectat", - "@:remoteToolsConnector.title - Disconnected": "@:remoteToolsConnector.title - Desconnectat", - "@:connect with @:remoteToolsConnector.title": "@:connect amb @:remoteToolsConnector.title", - "@:connect @:remoteToolsConnector.title first": "@:connect primer @:remoteToolsConnector.title", - "@:reconnect with @:remoteToolsConnector.title": "@:reconnect amb @:remoteToolsConnector.title", - "@:disconnect Now": "@:disconnect ara", - "Check Connection Health": "Comprova l'estat de la connexió", - "Edit Connection Details": "Edita els detalls de la connexió", - "You do not have permission to access this feature": "No teniu permís per accedir a aquesta funció", - "Connect to @:remoteToolsConnector.title": "Connecta amb @:remoteToolsConnector.title", - "Save and Connect": "Desa i connecta", - "Remember @:connectionInfo": "Recorda la @:connectionInfo", - "@:import @:connectionInfo": "@:import la @:connectionInfo", - "Drag and drop Msty Remote Connection Config file to import and connect to @:remoteToolsConnector.title{'.'}": "Arrossegueu i deixeu anar el fitxer de configuració de connexió remota de Msty per importar-lo i connectar amb @:remoteToolsConnector.title{'.'}", - "@:connectionInfo imported": "@:connectionInfo importada", - "Failed to import @:connectionInfo": "No s'ha pogut importar la @:connectionInfo", - "Export Saved @:connectionInfo": "Exporta la @:connectionInfo desada", - "@:connectionInfo exported": "@:connectionInfo exportada", - "Failed to export @:connectionInfo": "No s'ha pogut exportar la @:connectionInfo", - "Connected!": "Connectat!", - "@:remoteToolsConnector.title connected at {url}": "@:remoteToolsConnector.title connectat a {url}", - "Failed to connect with @:remoteToolsConnector.title{'.'} Make sure the @:remoteToolsConnector.title is running and accessible at the provided URL.": "No s'ha pogut connectar amb @:remoteToolsConnector.title{'.'} Assegureu-vos que @:remoteToolsConnector.title s'està executant i és accessible a l'URL proporcionat.", - "Token is missing. Please check the token and try again.": "Falta el testimoni. Comproveu el testimoni i torneu-ho a provar.", - "Forget Previous @:connectionInfo": "Oblida la @:connectionInfo anterior", - "@:connectionInfo forgotten": "@:connectionInfo oblidada", - "Tool Command Paths": "Camins de les ordres de les eines", - "If you are using Toolsets, set the paths to the commands you are using.": "Si feu servir conjunts d'eines, definiu els camins de les ordres que utilitzeu.", - "@:select or enter a command": "Seleccioneu o introduïu una ordre", - "Enter full path to the command": "Introduïu el camí complet de l'ordre", - "Assign @:path": "Assigna el camí", - "Disconnected!": "Desconnectat!", - "Disconnected from @:remoteToolsConnector.title": "Desconnectat de @:remoteToolsConnector.title", - "Forge Mode": "Mode forja", - "Forge mode gives you a blank canvas and a powerful writer to create, edit, style and refine content freely.": "El mode forja us ofereix un llenç en blanc i un escriptor potent per crear, editar, donar estil i refinar contingut lliurement.", - "Forge": "Forja", - "@:forge.title Content": "Contingut de la @:forge.title", - "Forging Content": "S'està forjant el contingut", - "Edit Raw Markdown": "Edita el Markdown en brut", - "Edit as Branch": "Edita com a branca", - "This content has been forged. Raw markdown editing is not allowed.": "Aquest contingut s'ha forjat. No es permet editar el Markdown en brut.", - "Changes saved": "S'han desat els canvis", - "Failed to save changes": "No s'han pogut desar els canvis", - "Write something or type / for options...": "Escriviu alguna cosa o teclegeu / per veure les opcions...", - "Enter details summary": "Introduïu un resum dels detalls", - "Simplify": "Simplifica", - "Fix Spelling & Grammar": "Corregeix l'ortografia i la gramàtica", - "Make Shorter": "Escurça", - "Make Longer": "Allarga", - "TL;DR;": "TL;DR;", - "Emojify": "Emojifica", - "@:change Tone": "@:change el to", - "Academic": "Acadèmic", - "Business": "Empresarial", - "Casual": "Informal", - "Child Friendly": "Apte per a infants", - "Conversational": "Conversacional", - "Emotional": "Emotiu", - "Humorous": "Humorístic", - "Informative": "Informatiu", - "Inspirational": "Inspirador", - "Professional": "Professional", - "Narrative": "Narratiu", - "Objective": "Objectiu", - "Persuasive": "Persuasiu", - "Poetic": "Poètic", - "Clear Formatting": "Esborra el format", - "Bold": "Negreta", - "Italic": "Cursiva", - "Underline": "Subratllat", - "Strikethrough": "Ratllat", - "Code": "Codi", - "Code Block": "Bloc de codi", - "Blockquote": "Cita", - "Undo": "Desfés", - "Redo": "Refés", - "Texts": "Textos", - "Paragraph": "Paràgraf", - "Heading 1": "Encapçalament 1", - "Heading 2": "Encapçalament 2", - "Heading 3": "Encapçalament 3", - "Lists": "Llistes", - "Bullet List": "Llista de pics", - "Numbered List": "Llista numerada", - "Task List": "Llista de tasques", - "What do you want to forge today?": "Què voleu forjar avui?", - "Forge Writer": "Escriptor de la forja", - "Type your custom prompt...": "Escriviu la vostra indicació personalitzada...", - "Ask": "Pregunta", - "Ask the model to generate a response based on a custom prompt": "Demaneu al model que generi una resposta a partir d'una indicació personalitzada", - "@:forge.title Canvas": "Llenç de la @:forge.title", - "New @:forge.forgeCanvas": "@:forge.forgeCanvas nou", - "Add New @:forge.forgeCanvas": "Afegeix un @:forge.forgeCanvas nou", - "Preview": "Previsualització", - "Prompt | Prompts": "Indicació | Indicacions", - "Discard": "Descarta", - "Insert": "Insereix", - "Regenerate": "Regenera", - "Rewrite": "Reescriu", - "Exit": "Surt", - "Custom Prompt": "Indicació personalitzada", - "Markdown": "Markdown", - "JSON": "JSON", - "HTML": "HTML", - "Formatted": "Amb format", - "Invalid @:json": "@:json no vàlid", - "@:download as @:markdown file": "@:download com a fitxer @:markdown", - "@:download as @:json file": "@:download com a fitxer @:json", - "@:download as HTML file": "@:download com a fitxer HTML", - "Copy @:markdown to Clipboard": "Copia el @:markdown al porta-retalls", - "Copy HTML to Clipboard": "Copia l'HTML al porta-retalls", - "Copy Text to Clipboard": "Copia el text al porta-retalls", - "Copied!": "Copiat!", - "Content copied to clipboard as @:markdown": "S'ha copiat el contingut al porta-retalls com a @:markdown", - "Content copied to clipboard as HTML": "S'ha copiat el contingut al porta-retalls com a HTML", - "Content copied to clipboard as formatted text": "S'ha copiat el contingut al porta-retalls com a text amb format", - "Content copied to clipboard as @:json": "S'ha copiat el contingut al porta-retalls com a @:json", - "{item} copied to clipboard": "S'ha copiat {item} al porta-retalls", - "Content exported to clipboard as @:json": "S'ha exportat el contingut al porta-retalls com a @:json", - "Variable | Variables": "Variable | Variables", - "@:pinned {item}": "@:pinned {item}", - "Pin {item}": "Fixa {item}", - "{item} pinned": "S'ha fixat {item}", - "Unable to pin {item}": "No s'ha pogut fixar {item}", - "Unpin {item}": "Deixa de fixar {item}", - "{item} unpinned": "S'ha deixat de fixar {item}", - "Unable to unpin {item}": "No s'ha pogut deixar de fixar {item}", - "Default {item}": "{item} per defecte", - "Set {item} as default": "Estableix {item} com a predeterminat", - "{item} set as default": "S'ha establert {item} com a predeterminat", - "Unable to set {item} as default": "No s'ha pogut establir {item} com a predeterminat", - "Default {item}. Click to unset.": "{item} per defecte. Feu clic per desfer-ho.", - "{item} removed as default": "S'ha tret {item} com a predeterminat", - "Model": "Model", - "Provider sorting": "Ordenació dels proveïdors", - "Created At": "Data de creació", - "Group by provider": "Agrupa per proveïdor", - "Model sorting": "Ordenació dels models", - "Recent": "Recent", - "Filter by purpose": "Filtra per finalitat", - "All purposes": "Totes les finalitats", - "@:model Settings": "Configuració del model", - "Sync @:split": "Sincronitza la divisió", - "Split | Splits": "Divisió | Divisions", - "Template | Templates": "Plantilla | Plantilles", - "Apply Changes": "Aplica els canvis", - "Split @:preset | Split @:preset": "Predefinit de divisió | Predefinits de divisió", - "New @:preset": "Predefinit nou", - "Split {index}": "Divisió {index}", - "@:delete @:preset": "Suprimeix el predefinit", - "Import @:preset | Import @:preset": "Importa un predefinit | Importa predefinits", - "Drag and drop a zipped Msty presets file to import and create new presets. In case of duplicate names, the imported presets will be renamed. You can change it later.": "Arrossegueu i deixeu anar un fitxer comprimit de predefinits de Msty per importar-lo i crear predefinits nous. En cas de noms duplicats, els predefinits importats es reanomenaran. Els podeu canviar més endavant." -} diff --git a/tools/msty_ca/tr_009.json b/tools/msty_ca/tr_009.json deleted file mode 100644 index fc67869..0000000 --- a/tools/msty_ca/tr_009.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "@:preset imported": "@:preset importat", - "Failed to import presets": "No s'han pogut importar els predefinits", - "Export @:preset | Export @:preset": "Exporta el predefinit | Exporta els predefinits", - "Export Selected @:preset | Export Selected @:preset": "Exporta el predefinit seleccionat | Exporta els predefinits seleccionats", - "Split preset exported as {fileName} | Split presets exported as {fileName}": "El predefinit de divisió s'ha exportat com a {fileName} | Els predefinits de divisió s'han exportat com a {fileName}", - "Failed to export preset | Failed to export presets": "No s'ha pogut exportar el predefinit | No s'han pogut exportar els predefinits", - "@:delete @:preset | Delete @:preset": "Suprimeix el predefinit | Suprimeix els predefinits", - "@:delete Selected @:preset | Delete Selected @:preset": "Suprimeix el predefinit seleccionat | Suprimeix els predefinits seleccionats", - "Are you sure you want to delete {presetName}? | Are you sure you want to delete {count} presets?": "Segur que voleu suprimir {presetName}? | Segur que voleu suprimir {count} predefinits?", - "Split preset deleted | Split presets deleted": "S'ha suprimit el predefinit de divisió | S'han suprimit els predefinits de divisió", - "Could not delete split preset | Could not delete split presets": "No s'ha pogut suprimir el predefinit de divisió | No s'han pogut suprimir els predefinits de divisió", - "Split preset updated": "S'ha actualitzat el predefinit de divisió", - "Could not update split preset": "No s'ha pogut actualitzar el predefinit de divisió", - "Split preset saved": "S'ha desat el predefinit de divisió", - "Could not save split preset": "No s'ha pogut desar el predefinit de divisió", - "No @:splitPreset.title available.": "No hi ha cap @:splitPreset.title disponible.", - "Get started by adding or importing a new @:splitPreset.title": "Comenceu afegint o important un @:splitPreset.title nou", - "Invalid Templates": "Plantilles no vàlides", - "Some templates are invalid or missing required fields. Please correct them before continuing.": "Algunes plantilles no són vàlides o els falten camps obligatoris. Corregiu-les abans de continuar.", - "Shadow Personas": "Personalitats ombra", - "Create Shadow Persona": "Crea una personalitat ombra", - "Edit Shadow Persona": "Edita la personalitat ombra", - "Assigned Persona": "Personalitat assignada", - "Change Persona": "Canvia la personalitat", - "Change Shadow Persona": "Canvia la personalitat ombra", - "Current Persona": "Personalitat actual", - "Select New Persona": "Selecciona una personalitat nova", - "Waiting for completion": "S'està esperant que s'acabi", - "Changing the persona will reset the analysis context and may affect continuity.": "Canviar la personalitat restablirà el context d'anàlisi i pot afectar la continuïtat.", - "No Persona Assigned": "Cap personalitat assignada", - "Hide Shadow Personas": "Amaga les personalitats ombra", - "Show Shadow Personas": "Mostra les personalitats ombra", - "No splits being monitored": "No s'està supervisant cap divisió", - "Monitoring {count} split (click to show) | Monitoring {count} splits (click to show)": "S'està supervisant {count} divisió (feu clic per mostrar) | S'estan supervisant {count} divisions (feu clic per mostrar)", - "Monitoring {count} split | Monitoring {count} splits": "S'està supervisant {count} divisió | S'estan supervisant {count} divisions", - "Activate": "Activa", - "Deactivate": "Desactiva", - "Process Now": "Processa ara", - "Processing...": "S'està processant...", - "Create and Assign": "Crea i assigna", - "Latest Insight": "Darrera observació", - "No output yet": "Encara no hi ha cap sortida", - "Outputs": "Sortides", - "View Latest": "Mostra l'última", - "View History": "Mostra l'historial", - "No history available": "No hi ha historial disponible", - "Select version": "Selecciona una versió", - "Shadow Persona Name": "Nom de la personalitat ombra", - "e.g., Technical Analyst, Performance Monitor": "p. ex., analista tècnic, monitor de rendiment", - "Switch Shadow Persona": "Canvia de personalitat ombra", - "Select a shadow persona to switch to": "Seleccioneu la personalitat ombra a la qual voleu canviar", - "Select Shadow Persona": "Selecciona una personalitat ombra", - "Search shadow personas...": "Cerca personalitats ombra...", - "Description (Optional)": "Descripció (opcional)", - "Describe what this shadow persona observes or analyzes": "Descriviu què observa o analitza aquesta personalitat ombra", - "Select Persona": "Selecciona una personalitat", - "Choose a persona to use": "Trieu una personalitat per fer servir", - "Select Splits to Monitor": "Selecciona les divisions a supervisar", - "Choose splits to monitor": "Trieu les divisions a supervisar", - "Choose splits to monitor (can be set later)": "Trieu les divisions a supervisar (es pot definir més endavant)", - "Splits can be dynamically assigned and managed after creation": "Les divisions es poden assignar i gestionar dinàmicament després de la creació", - "Update Trigger": "Activador d'actualització", - "Message Interval": "Interval de missatges", - "Time Interval": "Interval de temps", - "Messages Per Split": "Missatges per divisió", - "Max Context": "Context màxim", - "Synthesis Mode": "Mode de síntesi", - "Output Format": "Format de sortida", - "Max Processing Time": "Temps màxim de processament", - "Version Management": "Gestió de versions", - "Max Versions": "Màxim de versions", - "Advanced Settings": "Configuració avançada", - "Include System Messages": "Inclou els missatges del sistema", - "Auto Delete Old Versions": "Suprimeix automàticament les versions antigues", - "Waiting for splits": "S'estan esperant les divisions", - "Processing now": "S'està processant ara", - "No Shadow Personas": "Cap personalitat ombra", - "Create a Shadow Persona to monitor and analyze your conversation splits": "Creeu una personalitat ombra per supervisar i analitzar les divisions de les vostres converses", - "Unlock Shadow Personas": "Desbloqueja les personalitats ombra", - "Experimental": "Experimental", - "Shadow Personas is an experimental feature that analyzes conversations and generates alternative perspectives and insights in parallel.": "Les personalitats ombra són una funció experimental que analitza les converses i genera perspectives i observacions alternatives en paral·lel.", - "No Output Yet": "Encara no hi ha cap sortida", - "This Shadow Persona hasn't generated any output yet": "Aquesta personalitat ombra encara no ha generat cap sortida", - "Save this conversation to enable Shadow Persona processing": "Deseu aquesta conversa per activar el processament de la personalitat ombra", - "Delete Shadow Persona": "Suprimeix la personalitat ombra", - "Are you sure you want to delete \"{name}\"? \"{name}\" will be deleted from all the conversations it is attached to. This action cannot be undone.": "Segur que voleu suprimir «{name}»? «{name}» se suprimirà de totes les converses a les quals està adjuntada. Aquesta acció no es pot desfer.", - "Successfully deleted the shadow persona": "S'ha suprimit la personalitat ombra correctament", - "Failed to delete the shadow persona": "No s'ha pogut suprimir la personalitat ombra", - "Detach Shadow Persona": "Desadjunta la personalitat ombra", - "Detach": "Desadjunta", - "Detach \"{name}\" from this conversation? The shadow persona will remain available for other conversations.": "Voleu desadjuntar «{name}» d'aquesta conversa? La personalitat ombra continuarà disponible per a altres converses.", - "Successfully detached the shadow persona": "S'ha desadjuntat la personalitat ombra correctament", - "Failed to detach the shadow persona": "No s'ha pogut desadjuntar la personalitat ombra", - "Successfully switched the shadow persona": "S'ha canviat la personalitat ombra correctament", - "Failed to switch the shadow persona": "No s'ha pogut canviar la personalitat ombra", - "Successfully updated the shadow persona": "S'ha actualitzat la personalitat ombra correctament", - "Failed to update the shadow persona": "No s'ha pogut actualitzar la personalitat ombra", - "Successfully created the shadow persona": "S'ha creat la personalitat ombra correctament", - "Failed to create the shadow persona": "No s'ha pogut crear la personalitat ombra", - "Queue Cleared": "S'ha buidat la cua", - "Cancelled {cancelledCount} queued item | Cancelled {cancelledCount} queued items": "S'ha cancel·lat {cancelledCount} element en cua | S'han cancel·lat {cancelledCount} elements en cua", - "Queue Updated": "S'ha actualitzat la cua", - "Cancelled {cancelledCount} auto-triggered item | Cancelled {cancelledCount} auto-triggered items": "S'ha cancel·lat {cancelledCount} element activat automàticament | S'han cancel·lat {cancelledCount} elements activats automàticament", - "Queue Full": "Cua plena", - "Processing queue is full. Please wait for current items to complete": "La cua de processament és plena. Espereu que s'acabin els elements actuals", - "Already Processing": "Ja s'està processant", - "This conversation is already being processed": "Aquesta conversa ja s'està processant", - "Every Message": "Cada missatge", - "Every {n} Messages": "Cada {n} missatges", - "Manual Only": "Només manual", - "Automatic": "Automàtic", - "Runs after each message (fastest, more frequent)": "S'executa després de cada missatge (el més ràpid, més freqüent)", - "Runs after {n} messages (batched)": "S'executa després de {n} missatges (per lots)", - "Only when you click Process Now": "Només quan feu clic a «Processa ara»", - "Auto": "Automàtic", - "Combined Analysis": "Anàlisi combinada", - "Per Split": "Per divisió", - "Comparative": "Comparativa", - "Picks the best mode based on splits and intent": "Tria el millor mode segons les divisions i la intenció", - "One summary across all splits": "Un únic resum de totes les divisions", - "Keep each split separate and labeled": "Mantén cada divisió separada i etiquetada", - "Side-by-side differences and agreements": "Diferències i coincidències costat per costat", - "Auto will use Combined because only one split is present.": "El mode automàtic farà servir Combinada perquè només hi ha una divisió.", - "Auto will use Comparative because multiple models are in use.": "El mode automàtic farà servir Comparativa perquè s'utilitzen diversos models.", - "Auto will use Per Split because splits use the same model.": "El mode automàtic farà servir Per divisió perquè les divisions utilitzen el mateix model.", - "Insights": "Observacions", - "Summary": "Resum", - "Recommendations": "Recomanacions", - "Analysis": "Anàlisi", - "Locate splits": "Localitza les divisions", - "Manage Splits": "Gestiona les divisions", - "Add all splits": "Afegeix totes les divisions", - "Select all": "Selecciona-ho tot", - "{count} of {total} selected": "{count} de {total} seleccionats", - "Streaming": "Transmissió en temps real", - "Starting": "S'està iniciant", - "Collecting context from splits...": "S'està recollint el context de les divisions...", - "Waiting for conversation to complete": "S'està esperant que s'acabi la conversa", - "Analyzing conversation splits...": "S'estan analitzant les divisions de la conversa...", - "Shadow Persona will analyze once all responses are received": "La personalitat ombra analitzarà quan s'hagin rebut totes les respostes", - "Tool Calls": "Crides a eines", - "Reasoning": "Raonament", - "Attach Existing": "Adjunta'n una d'existent", - "Attach Shadow Persona": "Adjunta una personalitat ombra", - "Previous Version": "Versió anterior", - "Next Version": "Versió següent", - "Attach": "Adjunta", - "Select a shadow persona to attach to this conversation": "Seleccioneu una personalitat ombra per adjuntar-la a aquesta conversa", - "Choose a shadow persona to attach": "Trieu una personalitat ombra per adjuntar-la", - "Queued #{position}": "En cua núm. {position}", - "Add to Queue": "Afegeix a la cua", - "Processing Queue": "Cua de processament", - "Remove from Queue": "Treu de la cua", - "Removed from queue": "S'ha tret de la cua", - "in queue": "a la cua", - "Clear All": "Esborra-ho tot", - "No items in queue": "No hi ha elements a la cua", - "Est. wait: {time}": "Espera est.: {time}", - "{count} item in queue | {count} items in queue": "{count} element a la cua | {count} elements a la cua", - "Monitoring & Queue": "Supervisió i cua", - "Monitored Splits": "Divisions supervisades", - "Toolbox": "Caixa d'eines", - "Msty @:remoteToolsConnector.title is not running; tools usage will be skipped.": "Msty @:remoteToolsConnector.title no s'està executant; s'ometrà l'ús de les eines.", - "Tool | Tools": "Eina | Eines", - "A collection of tools to help you with your LLM work.": "Un conjunt d'eines per ajudar-vos amb la vostra feina amb LLM.", - "Available Tools": "Eines disponibles", - "Available Toolsets": "Conjunts d'eines disponibles", - "Set Default Parameters": "Defineix els paràmetres per defecte", - "Set Parameters": "Defineix els paràmetres", - "This dependency seems to be missing from your environment. Without this, the tool may not work as expected.": "Sembla que aquesta dependència falta al vostre entorn. Sense ella, és possible que l'eina no funcioni com s'espera.", - "Default Parameters for {toolName}": "Paràmetres per defecte de {toolName}", - "These parameters will be used globally for all instances of {toolName} tool. You can override these when creating a toolset.": "Aquests paràmetres s'utilitzaran globalment per a totes les instàncies de l'eina {toolName}. Els podeu substituir en crear un conjunt d'eines.", - "Arguments": "Arguments", - "@:select an @:argument and set its value. Leave it blank to skip setting a value.": "Seleccioneu un @:argument i definiu-ne el valor. Deixeu-lo en blanc per no definir cap valor.", - "Custom @:argument": "@:argument personalitzat", - "Enter the name of the new @:argument{'.'} Separate multiple arguments with a comma.": "Introduïu el nom del nou @:argument{'.'} Separeu diversos arguments amb una coma.", - "eg. --arg1, someArg, -verbose": "p. ex. --arg1, algunArg, -verbose", - "Environment Variables": "Variables d'entorn", - "@:select or enter a new Environment @:variable and set its value.": "Seleccioneu o introduïu una @:variable d'entorn nova i definiu-ne el valor.", - "Add Environment @:variable": "Afegeix una @:variable d'entorn", - "@:select an Environment @:variable": "Selecciona una @:variable d'entorn", - "Add a new Environment @:variable": "Afegeix una @:variable d'entorn nova", - "Default parameters saved for {toolName}.": "S'han desat els paràmetres per defecte de {toolName}.", - "Failed to save default parameters.": "No s'han pogut desar els paràmetres per defecte.", - "Add New Tool": "Afegeix una eina nova", - "Add your own MCP compatible tool to the toolbox. Once added, you can add it to a toolset, set parameters, and use it with a model.": "Afegiu la vostra pròpia eina compatible amb MCP a la caixa d'eines. Un cop afegida, la podeu afegir a un conjunt d'eines, definir-ne els paràmetres i fer-la servir amb un model.", - "Give it a name (uses the tool ID by default)": "Poseu-li un nom (per defecte fa servir l'ID de l'eina)", - "Tool ID": "ID de l'eina", - "Unique tool identifier (auto-filled if detected from config)": "Identificador únic de l'eina (s'emplena automàticament si es detecta a la configuració)", - "Tool with this ID already exists. Please enter a unique ID.": "Ja existeix una eina amb aquest ID. Introduïu un ID únic.", - "Tool Added": "S'ha afegit l'eina", - "Tool added to the toolbox. You can now add it to a toolset and use it with a model.": "S'ha afegit l'eina a la caixa d'eines. Ara la podeu afegir a un conjunt d'eines i fer-la servir amb un model.", - "Tool added to the toolbox and a matching toolset was created. It's ready to use with a model.": "S'ha afegit l'eina a la caixa d'eines i s'ha creat un conjunt d'eines corresponent. Ja es pot fer servir amb un model.", - "Failed to add tool to the toolbox. {error}": "No s'ha pogut afegir l'eina a la caixa d'eines. {error}", - "Tool Configuration": "Configuració de l'eina", - "Enter or paste tool configuration JSON. Accepts direct config or wrapped formats (will auto-extract toolId)": "Introduïu o enganxeu el JSON de configuració de l'eina. Accepta configuració directa o formats embolcallats (extraurà automàticament el toolId)", - "Show me an example of a tool configuration": "Mostra'm un exemple de configuració d'eina", - "The tool configuration accepts multiple formats including wrapped configs with mcpServers. It will auto-extract the toolId and name when possible. Must contain at minimum {command}. Dynamic arguments need to be wrapped in curly braces {curly} like so: {argExample}. Similarly, dynamic environment variables can be set using {envVarLabel}.": "La configuració de l'eina accepta diversos formats, inclosos els embolcallats amb mcpServers. Extraurà automàticament el toolId i el nom quan sigui possible. Com a mínim ha de contenir {command}. Els arguments dinàmics s'han d'envoltar amb claus {curly} d'aquesta manera: {argExample}. De la mateixa manera, les variables d'entorn dinàmiques es poden definir amb {envVarLabel}.", - "Auto-create toolset with same name": "Crea automàticament un conjunt d'eines amb el mateix nom", - "Edit Tool": "Edita l'eina", - "Update the name, notes, and configuration of the tool.": "Actualitzeu el nom, les notes i la configuració de l'eina.", - "Tool @:updatedSuccess": "S'ha actualitzat l'eina correctament", - "@:failedToUpdate tool.": "No s'ha pogut actualitzar l'eina.", - "Use external MCP tools powered by Msty @:remoteToolsConnector.title to extend your models' capabilities and enhance your LLM experience.": "Feu servir eines MCP externes impulsades per Msty @:remoteToolsConnector.title per ampliar les capacitats dels vostres models i millorar la vostra experiència amb LLM.", - "You can get started by importing many of the tools that Msty ships with or adding your own tools.": "Podeu començar important moltes de les eines que inclou Msty o afegint les vostres pròpies eines.", - "Note: These tools are not provided, tested, or maintained by Msty. We are merely providing a platform to use these and allowing to import them as a convenience. PLEASE USE THEM AT YOUR OWN RISK. Msty is not responsible for any issues that may arise from using these tools. Also, for support, please reach out to the tool's author.": "Nota: aquestes eines no estan proporcionades, provades ni mantingudes per Msty. Simplement oferim una plataforma per fer-les servir i permetem importar-les com a comoditat. FEU-LES SERVIR SOTA LA VOSTRA RESPONSABILITAT. Msty no es fa responsable de cap problema que pugui sorgir de l'ús d'aquestes eines. A més, per a assistència, adreceu-vos a l'autor de l'eina.", - "Import Default @:toolbox.tools.title": "Importa les @:toolbox.tools.title per defecte", - "{count} default tools imported successfully. You can create toolsets and use them with a model.": "S'han importat {count} eines per defecte correctament. Podeu crear conjunts d'eines i fer-los servir amb un model.", - "{count} default tools imported successfully and {toolsetCount} corresponding toolsets auto-created.": "S'han importat {count} eines per defecte correctament i s'han creat automàticament {toolsetCount} conjunts d'eines corresponents.", - "Failed to import default @:toolbox.tools.title": "No s'han pogut importar les @:toolbox.tools.title per defecte", - "Delete Tool": "Suprimeix l'eina", - "Are you sure you want to delete {toolName}?": "Segur que voleu suprimir {toolName}?", - "Tool deleted": "S'ha suprimit l'eina", - "@:failedToDelete tool": "No s'ha pogut suprimir l'eina", - "Delete All Tools": "Suprimeix totes les eines", - "Are you sure you want to delete all tools? This action cannot be undone.": "Segur que voleu suprimir totes les eines? Aquesta acció no es pot desfer.", - "All tools have been deleted successfully": "S'han suprimit totes les eines correctament", - "Failed to delete all tools": "No s'han pogut suprimir totes les eines", - "Tool configuration copied to clipboard": "S'ha copiat la configuració de l'eina al porta-retalls" -} diff --git a/tools/msty_ca/tr_010.json b/tools/msty_ca/tr_010.json deleted file mode 100644 index f2c3560..0000000 --- a/tools/msty_ca/tr_010.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "View Tools Usage": "Mostra l'ús de les eines", - "No Tool Calls Found": "No s'ha trobat cap crida a eines", - "It seems there were some tools being able to the model but it did not make any tool calls. This could be because the model did not need to use any tools.": "Sembla que hi havia algunes eines disponibles per al model, però no ha fet cap crida a eines. Pot ser que el model no hagi necessitat utilitzar cap eina.", - "Toolset | Toolsets": "Conjunt d'eines | Conjunts d'eines", - "No Toolsets found": "No s'ha trobat cap conjunt d'eines", - "Toolsets are a collection of tools with parameters. You can create a toolset and add tools to it. When chatting with a model, you can select one or multiple toolsets to use with the model.": "Els conjunts d'eines són un recull d'eines amb paràmetres. Podeu crear un conjunt d'eines i afegir-hi eines. Quan xategeu amb un model, podeu seleccionar un o més conjunts d'eines per fer-los servir amb el model.", - "Please add some tools to get started.": "Afegiu unes quantes eines per començar.", - "No tools in this toolset": "No hi ha cap eina en aquest conjunt d'eines", - "Enabled features": "Funcions activades", - "Loading feature details…": "S'estan carregant els detalls de la funció…", - "All features": "Totes les funcions", - "Unable to load feature details": "No s'han pogut carregar els detalls de la funció", - "Add New @:toolbox.toolsets.title": "Afegeix un conjunt d'eines nou", - "Create a new toolset to group tools together. You can add tools to the toolset and use it with a model. Make sure to set/overwrite the parameters for each tool in the toolset by clicking {icon} button.": "Creeu un conjunt d'eines nou per agrupar eines. Podeu afegir eines al conjunt i fer-lo servir amb un model. Assegureu-vos de definir o sobreescriure els paràmetres de cada eina del conjunt fent clic al botó {icon}.", - "Set Parameters for {toolName}": "Defineix els paràmetres de {toolName}", - "Set parameters for the {toolName} tool. You can override the default parameters set for the tool. Use the Tool Console to test the tool, view available features, and limit features if needed.": "Definiu els paràmetres de l'eina {toolName}. Podeu substituir els paràmetres per defecte definits per a l'eina. Feu servir la consola de l'eina per provar-la, veure les funcions disponibles i limitar-les si cal.", - "Toolset saved and added to the toolbox. You can now use it with a model.": "S'ha desat el conjunt d'eines i s'ha afegit a la caixa d'eines. Ara el podeu fer servir amb un model.", - "@:failedToSave toolset.": "No s'ha pogut desar el conjunt d'eines.", - "Edit Toolset": "Edita el conjunt d'eines", - "Edit the name and notes of the toolset. You can also add or remove tools from the toolset and tweak the parameters or limit features for each tool by clicking {icon} button.": "Editeu el nom i les notes del conjunt d'eines. També podeu afegir o treure eines del conjunt i ajustar els paràmetres o limitar les funcions de cada eina fent clic al botó {icon}.", - "Toolset @:updatedSuccess": "S'ha actualitzat el conjunt d'eines correctament", - "@:failedToUpdate toolset.": "No s'ha pogut actualitzar el conjunt d'eines.", - "Delete Toolset": "Suprimeix el conjunt d'eines", - "Are you sure you want to delete {toolsetName}?": "Segur que voleu suprimir {toolsetName}?", - "Toolset deleted": "S'ha suprimit el conjunt d'eines", - "@:failedToDelete toolset": "No s'ha pogut suprimir el conjunt d'eines", - "Delete All Toolsets": "Suprimeix tots els conjunts d'eines", - "Are you sure you want to delete all toolsets? This action cannot be undone.": "Segur que voleu suprimir tots els conjunts d'eines? Aquesta acció no es pot desfer.", - "All toolsets have been deleted successfully": "S'han suprimit tots els conjunts d'eines correctament", - "Failed to delete all toolsets": "No s'han pogut suprimir tots els conjunts d'eines", - "Export @:toolbox.toolsets.title": "Exporta els conjunts d'eines", - "For security, sensitive configuration values can be removed before exporting. Select which environment variables and arguments to scrub for each tool.": "Per seguretat, es poden eliminar els valors de configuració sensibles abans d'exportar. Seleccioneu quines variables d'entorn i arguments voleu netejar de cada eina.", - "Environment variables to scrub": "Variables d'entorn a netejar", - "Arguments to scrub": "Arguments a netejar", - "Scrub custom arguments string": "Neteja la cadena d'arguments personalitzats", - "Select environment variables to remove values": "Seleccioneu les variables d'entorn de les quals voleu eliminar els valors", - "Select arguments to remove values": "Seleccioneu els arguments dels quals voleu eliminar els valors", - "No configuration data to scrub": "No hi ha cap dada de configuració a netejar", - "Common sensitive values are pre-selected for your security.": "Els valors sensibles habituals estan preseleccionats per a la vostra seguretat.", - "Toolset configuration copied to clipboard": "S'ha copiat la configuració del conjunt d'eines al porta-retalls", - "Toolset configuration downloaded": "S'ha baixat la configuració del conjunt d'eines", - "Failed to fetch toolset data for export": "No s'han pogut obtenir les dades del conjunt d'eines per exportar-les", - "Some tools were not found and skipped: {tools}": "No s'han trobat algunes eines i s'han omès: {tools}", - "{count} tool | {count} tools": "{count} eina | {count} eines", - "View Tools & Notes": "Mostra les eines i les notes", - "Tool Console": "Consola de l'eina", - "You can use this console to test {toolName} and see the output. You can also use it to test the tool with different parameters or limit the available features. All features are enabled by default, select the checkboxes to limit the features to only those selected.": "Podeu fer servir aquesta consola per provar {toolName} i veure'n la sortida. També la podeu utilitzar per provar l'eina amb paràmetres diferents o limitar les funcions disponibles. Totes les funcions estan activades per defecte; marqueu les caselles per limitar les funcions només a les seleccionades.", - "List {toolName}'s Features": "Llista les funcions de {toolName}", - "Missing {count} Required @:argument": "Falten {count} arguments obligatoris", - "@:continue with Missing @:argument": "Continua tot i que falti l'argument", - "View Source on GitHub": "Mostra el codi font a GitHub", - "Enable specific features for this tool": "Activa funcions específiques per a aquesta eina", - "Search or pick features to allow": "Cerqueu o trieu les funcions que voleu permetre", - "Currently enabled features": "Funcions activades actualment", - "Tool Call": "Crida a l'eina", - "Add the required properties to call {featureName}. You can add extra properties if you want. Be careful with calling the tool just like that esp. without the right values.": "Afegiu les propietats necessàries per cridar {featureName}. Si voleu, podeu afegir propietats addicionals. Aneu amb compte de no cridar l'eina sense més, sobretot sense els valors correctes.", - "@:select a property": "@:select una propietat", - "Add a new property": "Afegeix una propietat nova", - "Execute @:toolbox.toolsets.console.toolCall": "Executa la @:toolbox.toolsets.console.toolCall", - "Click to manage used toolsets": "Feu clic per gestionar els conjunts d'eines utilitzats", - "@:select model may not support tools.": "És possible que el model seleccionat no admeti eines.", - "{count} Active Toolset | {count} Active Toolsets": "{count} conjunt d'eines actiu | {count} conjunts d'eines actius", - "{count} Active Live Context | {count} Active Live Contexts": "{count} context en directe actiu | {count} contextos en directe actius", - "Live @:context": "@:context en directe", - "Live Contexts": "Contextos en directe", - "Untitled Live Context": "Context en directe sense títol", - "Select Source": "Selecciona la font", - "Toggle to include or exclude this source from the context": "Activeu-ho per incloure o excloure aquesta font del context", - "Add New @:liveContexts.title": "Afegeix un context en directe nou", - "Create a new @:liveContexts.title source to add external data context to your conversation.": "Creeu una font de context en directe nova per afegir context de dades externes a la vostra conversa.", - "Failed to add @:liveContexts.title": "No s'ha pogut afegir el context en directe", - "@:liveContexts.title added": "S'ha afegit el context en directe", - "Edit @:liveContexts.title": "Edita el context en directe", - "Provide a prompt for Push-mode here; include any Pull-mode details in the Notes section.": "Indiqueu aquí una indicació per al mode d'emissió (push); incloeu qualsevol detall del mode de recepció (pull) a la secció de notes.", - "Endpoint Details": "Detalls del punt final", - "URL": "URL", - "Custom Headers": "Capçaleres personalitzades", - "Has Body": "Té cos", - "Custom Processing": "Processament personalitzat", - "Prompt Template": "Plantilla d'indicació", - "Request Headers": "Capçaleres de la sol·licitud", - "Add request headers as a JSON object. This will be sent with the request to the API endpoint.": "Afegiu les capçaleres de la sol·licitud com a objecte JSON. S'enviaran amb la sol·licitud al punt final de l'API.", - "{'{'}\n \"Authorization\": \"Bearer {'{'}apiKey:'key'{'}'}\",\n \"X-From\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}": "{'{'}\n \"Authorization\": \"Bearer {'{'}apiKey:'key'{'}'}\",\n \"X-From\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}", - "Request Body": "Cos de la sol·licitud", - "Add request body as a JSON object. This will be sent with the request to the API endpoint.": "Afegiu el cos de la sol·licitud com a objecte JSON. S'enviarà amb la sol·licitud al punt final de l'API.", - "{'{'}\n \"q\": \"{'{'}query:'term'{'}'}\",\n \"from\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}": "{'{'}\n \"q\": \"{'{'}query:'term'{'}'}\",\n \"from\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}", - "Dynamic Placeholders": "Marcadors de posició dinàmics", - "Placeholder syntax": "Sintaxi dels marcadors de posició", - "Placeholders:": "Marcadors de posició:", - "Processing Function": "Funció de processament", - "Add a processing function to transform the response data before using it in the conversation. The function should return a string.": "Afegiu una funció de processament per transformar les dades de la resposta abans de fer-les servir a la conversa. La funció ha de retornar una cadena.", - "function process({'{'}data, placeholders{'}'}) {'{'}": "function process({'{'}data, placeholders{'}'}) {'{'}", - " // access data and optional placeholders\n return JSON.stringify(data)": " // accedeix a les dades i als marcadors de posició opcionals\n return JSON.stringify(data)", - "{'}'}": "{'}'}", - "Access via placeholders param": "Accedeix-hi mitjançant el paràmetre placeholders", - "Use placeholders in code:": "Feu servir marcadors de posició al codi:", - "Enter test values for detected placeholders to test the endpoint.": "Introduïu valors de prova per als marcadors de posició detectats per provar el punt final.", - "@:liveContexts.title updated": "S'ha actualitzat el context en directe", - "Failed to update @:liveContexts.title": "No s'ha pogut actualitzar el context en directe", - "Delete @:liveContexts.title": "Suprimeix el context en directe", - "Are you sure you want to delete {liveContextName}?": "Segur que voleu suprimir {liveContextName}?", - "@:liveContexts.title deleted": "S'ha suprimit el context en directe", - "Failed to delete @:liveContexts.title": "No s'ha pogut suprimir el context en directe", - "No @:liveContexts.title found": "No s'ha trobat cap context en directe", - "@:liveContexts.title are external data contexts that you can add to your conversation. You can create a new @:liveContexts.title source and use it with a model.": "Els @:liveContexts.title són contextos de dades externes que podeu afegir a la vostra conversa. Podeu crear una font de @:liveContexts.title nova i fer-la servir amb un model.", - "Delete All @:liveContexts.contexts": "Suprimeix tots els contextos en directe", - "Are you sure you want to delete all live contexts? This action cannot be undone.": "Segur que voleu suprimir tots els contextos en directe? Aquesta acció no es pot desfer.", - "All live contexts have been deleted successfully": "S'han suprimit tots els contextos en directe correctament", - "Failed to delete all live contexts": "No s'han pogut suprimir tots els contextos en directe", - "Export @:liveContexts.title": "Exporta el context en directe", - "For security, sensitive header values can be removed before exporting. Select which headers to scrub.": "Per seguretat, es poden eliminar els valors de capçalera sensibles abans d'exportar. Seleccioneu quines capçaleres voleu netejar.", - "Headers to scrub": "Capçaleres a netejar", - "Select headers to remove values": "Seleccioneu les capçaleres de les quals voleu eliminar els valors", - "Common sensitive headers are pre-selected for your security.": "Les capçaleres sensibles habituals estan preseleccionades per a la vostra seguretat.", - "Live context configuration copied to clipboard": "S'ha copiat la configuració del context en directe al porta-retalls", - "Live context configuration downloaded": "S'ha baixat la configuració del context en directe", - "Push": "Emissió (push)", - "Pull": "Recepció (pull)", - "Push mode: runs automatically before the model replies": "Mode d'emissió (push): s'executa automàticament abans que el model respongui", - "Pull mode: called on-demand by model": "Mode de recepció (pull): el model el crida sota demanda", - "Mode | Modes": "Mode | Modes", - "@:modes.mode": "@:modes.mode", - "Exit {mode} @:modes.mode": "Surt del mode {mode}", - "Zen": "Zen", - "a state of calm attentiveness": "un estat d'atenció serena", - "New @:modes.zenMode.title @:conversation.title": "Conversa nova en mode Zen", - "@:modes.vaporMode.vapor @:modes.mode": "@:modes.mode @:modes.vaporMode.vapor", - "Vapor": "Vapor", - "Conversations will not be saved in your history and will disappear when you turn it off or navigate away": "Les converses no es desaran al vostre historial i desapareixeran quan ho desactiveu o navegueu cap a una altra banda", - "This will disappear when you turn off @:modes.vaporMode.vapor @:modes.mode or navigate away": "Això desapareixerà quan desactiveu el @:modes.mode @:modes.vaporMode.vapor o navegueu cap a una altra banda", - "Exit @:modes.vaporMode.vapor @:modes.mode": "Surt del @:modes.mode @:modes.vaporMode.vapor", - "Enter @:modes.vaporMode.vapor @:modes.mode": "Entra al @:modes.mode @:modes.vaporMode.vapor", - "@:save @:conversation.title": "Desa la conversa", - "@:modes.vaporMode.vapor chat has been preserved": "S'ha conservat el xat @:modes.vaporMode.vapor", - "Failed to preserve @:modes.vaporMode.vapor chat": "No s'ha pogut conservar el xat @:modes.vaporMode.vapor", - "Focus @:modes.mode": "@:modes.mode Focus", - "Normal @:modes.mode": "@:modes.mode normal", - "Query": "Consulta", - "Search Items": "Cerca elements", - "No results found": "No s'ha trobat cap resultat", - "Try searching for a different term": "Proveu de cercar un altre terme", - "@:conversation.title": "@:conversation.title", - "Found {count} result | Found {count} results": "S'ha trobat {count} resultat | S'han trobat {count} resultats", - "Search {entity}": "Cerca {entity}", - "Look up {entity} quickly using keywords": "Cerqueu {entity} ràpidament amb paraules clau", - "Search matches all words by default (e.g., {example} → matches text containing both words in any order)": "La cerca coincideix amb totes les paraules per defecte (p. ex., {example} → coincideix amb text que conté totes dues paraules en qualsevol ordre)", - "blue car": "cotxe blau", - "Use {operator} for partial matches (e.g., {example})": "Feu servir {operator} per a coincidències parcials (p. ex., {example})", - "*": "*", - "run* → runs, running": "corr* → corre, corrent", - "@:user {operator} to match any term (e.g., {example})": "Feu servir {operator} per coincidir amb qualsevol terme (p. ex., {example})", - "OR": "OR", - "apple OR orange": "poma OR taronja", - "Use double quotes {operator} for exact matches (e.g., {example})": "Feu servir cometes dobles {operator} per a coincidències exactes (p. ex., {example})", - "\"\"": "\"\"", - "\"blue car\"": "\"cotxe blau\"", - "Use {operator} to escape special characters (e.g., {example})": "Feu servir {operator} per escapar caràcters especials (p. ex., {example})", - "\"C++\", \"node.js\"": "\"C++\", \"node.js\"", - "Clear Search": "Esborra la cerca", - "Helpful Tips": "Consells útils", - "Hide Search": "Amaga la cerca", - "@:bookmark {item}": "Marca {item}", - "Jump to @:bookmarked {item}": "Vés a {item} marcat", - "@:bookmarked {item}": "{item} marcat", - "{item} @:bookmarked": "{item} marcat", - "Unable to bookmark {item}": "No s'ha pogut marcar {item}", - "@:bookmarked {item} has been deleted": "S'ha suprimit {item} marcat", - "No bookmarks available.": "No hi ha marcadors disponibles.", - "Get started by bookmarking {item}": "Comenceu marcant {item}", - "Remove @:bookmarked {item}": "Treu {item} dels marcadors", - "{item} removed from bookmarks": "S'ha tret {item} dels marcadors", - "Unable to remove {item} from bookmarks": "No s'ha pogut treure {item} dels marcadors", - "Turnstile | Turnstiles": "Turnstile | Turnstiles", - "New @:turnstile.title": "@:turnstile.title nou", - "@:select a @:turnstile.title": "@:select un @:turnstile.title", - "Click to open or Alt+Click to add to queue": "Feu clic per obrir o Alt+clic per afegir a la cua", - "No Queued @:entry | {count}/{total} @:entry Queued | {count}/{total} @:entry Queued": "Cap @:entry en cua | {count}/{total} @:entry en cua | {count}/{total} @:entry en cua", - "Once your prompt is ready, click @:turnstile.queueEntry to add an entry to the queue.": "Quan la vostra indicació estigui a punt, feu clic a @:turnstile.queueEntry per afegir una entrada a la cua.", - "Manage Saved Turnstiles": "Gestiona els Turnstiles desats", - "Save @:turnstile.title As": "Desa el @:turnstile.title com a", - "@:turnstile.title has been saved.": "S'ha desat el @:turnstile.title correctament.", - "Failed to save turnstile.": "No s'ha pogut desar el Turnstile.", - "Load @:turnstile.title": "Carrega el @:turnstile.title", - "@:turnstile.title Loaded!": "@:turnstile.title carregat!", - "{count} entry loaded and enqueued. | {count} entries are loaded and enqueued.": "S'ha carregat i encuat {count} entrada. | S'han carregat i encuat {count} entrades.", - "Failed to load turnstile.": "No s'ha pogut carregar el Turnstile.", - "Clear Queue": "Buida la cua", - "Are you sure you want to clear the queue? This will remove all the messages you have added.": "Segur que voleu buidar la cua? Això eliminarà tots els missatges que heu afegit.", - "New Entry": "Entrada nova", - "Invalid Entries": "Entrades no vàlides", - "Some entries are invalid or missing required fields. Please correct them before continuing.": "Algunes entrades no són vàlides o els falten camps obligatoris. Corregiu-les abans de continuar.", - "Couldn't run {metaType}. Please make sure that it is not the first entry in the queue.": "No s'ha pogut executar {metaType}. Assegureu-vos que no sigui la primera entrada de la cua.", - "@:turnstile.title has been updated.": "S'ha actualitzat el @:turnstile.title correctament.", - "Failed to update turnstile. Have you set prompt and model?": "No s'ha pogut actualitzar el Turnstile. Heu definit la indicació i el model?", - "Failed to save turnstile. Have you set prompt and model?": "No s'ha pogut desar el Turnstile. Heu definit la indicació i el model?", - "Delete Selected @:turnstile.title | Delete Selected @:turnstile.title": "Suprimeix el @:turnstile.title seleccionat | Suprimeix els @:turnstile.title seleccionats", - "Delete @:turnstile.title": "Suprimeix el @:turnstile.title", - "Are you sure you want to delete {turnstileName}? | Are you sure you want to delete {count} turnstiles?": "Segur que voleu suprimir {turnstileName}? | Segur que voleu suprimir {count} Turnstiles?", - "No @:turnstile.title Available.": "No hi ha cap @:turnstile.title disponible.", - "Get started by adding or importing a new @:turnstile.title{'.'}": "Comenceu afegint o important un @:turnstile.title nou{'.'}", - "@:new @:turnstile.title": "Turnstile nou", - "@:entry {index}": "@:entry {index}", - "Add @:message.renderingActions.continueGeneration": "Afegeix @:message.renderingActions.continueGeneration", - "Add @:regenerate": "Afegeix @:regenerate", - "Add @:persona.title": "Afegeix @:persona.title", - "Add @:contextShield.title": "Afegeix @:contextShield.title", - "Add @:contextShield.contextShieldWithSummary": "Afegeix @:contextShield.contextShieldWithSummary", - "Import @:turnstile.title": "Importa el @:turnstile.title", - "Drag and drop a zipped Msty @:turnstile.title to import and create new turnstiles. In case of duplicate names, the imported turnstiles will be renamed. You can change it later.": "Arrossegueu i deixeu anar un @:turnstile.title de Msty comprimit per importar-lo i crear Turnstiles nous. En cas de noms duplicats, els Turnstiles importats es reanomenaran. Els podeu canviar més endavant.", - "Turnstiles imported": "S'han importat els Turnstiles", - "Failed to import turnstiles": "No s'han pogut importar els Turnstiles", - "Export @:turnstile.title": "Exporta el @:turnstile.title", - "Export Selected @:turnstile.title | Export Selected @:turnstile.title": "Exporta el @:turnstile.title seleccionat | Exporta els @:turnstile.title seleccionats", - "@:turnstile.title exported as {fileName} | @:turnstile.title exported as {fileName}": "@:turnstile.title exportat com a {fileName} | @:turnstile.title exportats com a {fileName}", - "Failed to export @:turnstile.title | Failed to export @:turnstile.title": "No s'ha pogut exportar el @:turnstile.title | No s'han pogut exportar els @:turnstile.title", - "Model Matchmaker": "Emparellador de models", - "Adjust the gravity sliders for strengths like coding, reasoning, or math, and Matchmaker will rank and recommend the best models for your needs. Results may vary by data quality, model size, and task complexity.": "Ajusteu els controls lliscants de gravetat per a punts forts com ara la programació, el raonament o les matemàtiques, i l'Emparellador classificarà i recomanarà els millors models per a les vostres necessitats. Els resultats poden variar segons la qualitat de les dades, la mida del model i la complexitat de la tasca.", - "Found your model?": "Heu trobat el vostre model?", - "Test and compare in Msty Studio.": "Proveu-lo i compareu-lo a Msty Studio." -} diff --git a/tools/msty_ca/tr_011.json b/tools/msty_ca/tr_011.json deleted file mode 100644 index a906599..0000000 --- a/tools/msty_ca/tr_011.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "Gravity": "Gravetat", - "Remote Only": "Només remots", - "Ranked Models": "Models classificats", - "No models found. Try adjusting your requirements.": "No s'ha trobat cap model. Proveu d'ajustar els vostres requisits.", - "Coding": "Programació", - "The ability to write code in a programming language.": "La capacitat d'escriure codi en un llenguatge de programació.", - "Agentic Coding": "Programació agèntica", - "The agentic ability to write code in a programming language.": "La capacitat agèntica d'escriure codi en un llenguatge de programació.", - "@:data Analysis": "Anàlisi de dades", - "The ability to analyze data and generate insights.": "La capacitat d'analitzar dades i generar observacions.", - "Instructions Following": "Seguiment d'instruccions", - "The ability to follow instructions and perform tasks.": "La capacitat de seguir instruccions i fer tasques.", - "GOAT: Generalist of All Trades": "GOAT: generalista de tots els oficis", - "The ability to perform a wide range of tasks.": "La capacitat de fer una àmplia gamma de tasques.", - "The ability to understand and generate human language.": "La capacitat d'entendre i generar llenguatge humà.", - "Mathematics": "Matemàtiques", - "The ability to perform mathematical calculations.": "La capacitat de fer càlculs matemàtics.", - "Paraphrasing": "Paràfrasi", - "Demonstrated rewriting ability to rephrase any given text.": "Capacitat demostrada de reescriptura per reformular qualsevol text.", - "Critical Thinking - the ability to reason and make decisions.": "Pensament crític: la capacitat de raonar i prendre decisions.", - "Simplification": "Simplificació", - "The ability to simplify any given complex text.": "La capacitat de simplificar qualsevol text complex.", - "Story Generation": "Generació d'històries", - "The ability to generate stories or narratives.": "La capacitat de generar històries o narracions.", - "Summarization": "Resum", - "The ability of summarizing textual and numerical information.": "La capacitat de resumir informació textual i numèrica.", - "Tools Usage": "Ús d'eines", - "The ability to call and use external tools.": "La capacitat de cridar i fer servir eines externes.", - "Max Input Tokens": "Màxim de tokens d'entrada", - "The max no. of tokens accepted in one call.": "El nombre màxim de tokens acceptats en una crida.", - "The max no. of tokens generated in one call.": "El nombre màxim de tokens generats en una crida.", - "Input Tokens Savings": "Estalvi de tokens d'entrada", - "Input Cost/Million Tokens": "Cost d'entrada/milió de tokens", - "The cost savings of generating input tokens.": "L'estalvi de costos en generar tokens d'entrada.", - "Output Tokens Savings": "Estalvi de tokens de sortida", - "Output Cost/Million Tokens": "Cost de sortida/milió de tokens", - "The cost savings of generating output tokens.": "L'estalvi de costos en generar tokens de sortida.", - "Normalized Score": "Puntuació normalitzada", - "Reset Strengths": "Restableix els punts forts", - "@:save Strengths As @:preset": "Desa els punts forts com a predefinit", - "Failed to save strengths preset.": "No s'ha pogut desar el predefinit de punts forts.", - "Strengths preset saved.": "S'ha desat el predefinit de punts forts.", - "Strengths preset loaded.": "S'ha carregat el predefinit de punts forts.", - "Failed to delete strengths preset.": "No s'ha pogut suprimir el predefinit de punts forts.", - "Strengths preset deleted.": "S'ha suprimit el predefinit de punts forts.", - "Model Cost Calculator": "Calculadora de cost dels models", - "Calculate and compare costs for AI models from OpenAI, Anthropic, Google, and more. Estimate your expenses based on input/output token usage and model pricing. These are estimates only and actual costs may vary.": "Calculeu i compareu els costos dels models d'IA d'OpenAI, Anthropic, Google i més. Estimeu les vostres despeses segons l'ús de tokens d'entrada/sortida i els preus del model. Són només estimacions i els costos reals poden variar.", - "Token Inputs": "Entrades de tokens", - "Filters": "Filtres", - "VRAM Calculator": "Calculadora de VRAM", - "Check to see if a model fits your device's VRAM before downloading or running it. This calculator provides estimated VRAM requirements based on model architecture and size. Select one of the options below to get started.": "Comproveu si un model cap a la VRAM del vostre dispositiu abans de baixar-lo o executar-lo. Aquesta calculadora ofereix una estimació dels requisits de VRAM segons l'arquitectura i la mida del model. Seleccioneu una de les opcions de sota per començar.", - "Copy {item} to Workspaces": "Copia {item} als espais de treball", - "Copy/Move {item} to Workspaces": "Copia/mou {item} als espais de treball", - "Action": "Acció", - "Copy {item} to one or more workspaces.": "Copieu {item} a un o més espais de treball.", - "Copy/Move {item} to one or more workspaces.": "Copieu/moveu {item} a un o més espais de treball.", - "{item} copied to {count} workspace | {item} copied to {count} workspaces": "S'ha copiat {item} a {count} espai de treball | S'ha copiat {item} a {count} espais de treball", - "{item} moved to {count} workspace | {item} moved to {count} workspaces": "S'ha mogut {item} a {count} espai de treball | S'ha mogut {item} a {count} espais de treball", - "Failed to copy {item} to {count} workspace | Failed to copy {item} to {count} workspaces": "No s'ha pogut copiar {item} a {count} espai de treball | No s'ha pogut copiar {item} a {count} espais de treball", - "Failed to move {item} to {count} workspace | Failed to move {item} to {count} workspaces": "No s'ha pogut moure {item} a {count} espai de treball | No s'ha pogut moure {item} a {count} espais de treball", - "Partially Copied": "Copiat parcialment", - "Could not copy {item} to {count} workspace | Could not copy {item} to {count} workspaces": "No s'ha pogut copiar {item} a {count} espai de treball | No s'ha pogut copiar {item} a {count} espais de treball", - "Partially Moved": "Mogut parcialment", - "Could not move {item} to {count} workspace | Could not move {item} to {count} workspaces": "No s'ha pogut moure {item} a {count} espai de treball | No s'ha pogut moure {item} a {count} espais de treball", - "Some workspaces({workspaces}) were skipped because {item} already exists in them": "S'han omès alguns espais de treball ({workspaces}) perquè {item} ja hi existeix", - "Already existing copies of {item} will be skipped.": "Les còpies ja existents de {item} s'ometran.", - "Assignment | Assignments": "Assignació | Assignacions", - "Model Squad": "Esquadra de models", - "@:modelSquad.title is a collection of specialized AI models, where each models is assigned to perform a specific task, such as Auto Title Generation, @:context Summary Generation, etc. When it's time to perform that specific task, the assigned model is selected automatically.": "@:modelSquad.title és un recull de models d'IA especialitzats, on cada model s'assigna per fer una tasca específica, com ara la generació automàtica de títols, la generació del resum de @:context, etc. Quan arriba el moment de fer aquesta tasca específica, el model assignat se selecciona automàticament.", - "Add New @:assignment": "Afegeix una @:assignment nova", - "No more tasks available": "No hi ha més tasques disponibles", - "Auto Title Generation": "Generació automàtica de títols", - "@:contextShield.title Summary Generation": "Generació del resum de l'@:contextShield.title", - "@:rtd.title Prompt Synthesis": "Síntesi d'indicacions de @:rtd.title", - "Forge Content Generation": "Generació de contingut de la forja", - "@:pii.scrubbing.title": "@:pii.scrubbing.title", - "Icon Finder": "Cercador d'icones", - "@:assignment saved": "@:assignment desada", - "@:assignment failed to save": "No s'ha pogut desar l'@:assignment", - "Assign Model for {task}": "Assigna un model per a {task}", - "Select a model to assign to the {task} task in ModelSquad.": "Seleccioneu un model per assignar-lo a la tasca {task} a l'Esquadra de models.", - "Select Model": "Selecciona un model", - "Choose a model...": "Trieu un model...", - "Currently assigned: {model}": "Assignat actualment: {model}", - "Unknown model": "Model desconegut", - "Assign Model": "Assigna el model", - "Change Model": "Canvia el model", - "This model will be used automatically when the {task} task is performed.": "Aquest model s'utilitzarà automàticament quan es faci la tasca {task}.", - "Model assigned to {task} successfully!": "El model s'ha assignat a {task} correctament!", - "Please select a model to assign.": "Seleccioneu un model per assignar-lo.", - "Failed to save model assignment. Please try again.": "No s'ha pogut desar l'assignació del model. Torneu-ho a provar.", - "PII (Personally Identifiable Information)": "PII (informació d'identificació personal)", - "PII Scrubbing": "Neteja de PII", - "Automatically detect and remove personally identifiable information from Knowledge Stack content before displaying it in conversations.": "Detecta i elimina automàticament la informació d'identificació personal del contingut de la pila de coneixement abans de mostrar-la a les converses.", - "Using {model} for PII detection and removal.": "S'utilitza {model} per detectar i eliminar la PII.", - "No model assigned for @:pii.scrubbing.title in ModelSquad. Knowledge Stack retrieval will fail until a model is assigned.": "No hi ha cap model assignat per a @:pii.scrubbing.title a l'Esquadra de models. La recuperació de la pila de coneixement fallarà fins que s'assigni un model.", - "@:pii.scrubbing.title configuration error - aborting Knowledge Stack retrieval for security": "Error de configuració de @:pii.scrubbing.title: s'interromp la recuperació de la pila de coneixement per seguretat", - "Error setting up @:pii.scrubbing.title - aborting Knowledge Stack retrieval": "Error en configurar @:pii.scrubbing.title: s'interromp la recuperació de la pila de coneixement", - "[PERSON_NAME]": "[PERSON_NAME]", - "[EMAIL_ADDRESS]": "[EMAIL_ADDRESS]", - "[PHONE_NUMBER]": "[PHONE_NUMBER]", - "[ADDRESS]": "[ADDRESS]", - "[ID_NUMBER]": "[ID_NUMBER]", - "[CREDIT_CARD]": "[CREDIT_CARD]", - "[BANK_ACCOUNT]": "[BANK_ACCOUNT]", - "[IP_ADDRESS]": "[IP_ADDRESS]", - "[DATE_OF_BIRTH]": "[DATE_OF_BIRTH]", - "Personal Identifiers": "Identificadors personals", - "Contact Information": "Informació de contacte", - "Financial Information": "Informació financera", - "Medical Information": "Informació mèdica", - "Digital Identifiers": "Identificadors digitals", - "Biometric Data": "Dades biomètriques", - "Location Data": "Dades d'ubicació", - "Persona | Personas": "Personalitat | Personalitats", - "New @:persona.title": "@:persona.title nova", - "Active @:persona.title": "@:persona.title activa", - "No @:persona.title Available.": "No hi ha cap @:persona.title disponible.", - "Get started by adding or importing a new @:persona.title{'.'} You can also import default Personas to get started.": "Comenceu afegint o important una @:persona.title nova{'.'} També podeu importar personalitats per defecte per començar.", - "@:contextShield.title Position": "Posició de l'@:contextShield.title", - "@:persona.title saved": "@:persona.title desada", - "@:persona.title failed to save": "No s'ha pogut desar la @:persona.title", - "@:persona.title updated": "@:persona.title actualitzada", - "Could not update @:persona.title": "No s'ha pogut actualitzar la @:persona.title", - "Delete Selected @:persona.title": "Suprimeix la @:persona.title seleccionada", - "Delete @:persona.title": "Suprimeix la @:persona.title", - "Are you sure you want to delete {personaName}? | Are you sure you want to delete {count} @:persona.title{'?'}": "Segur que voleu suprimir {personaName}? | Segur que voleu suprimir {count} @:persona.title{'?'}", - "@:persona.title deleted | @:persona.title deleted": "@:persona.title suprimida | @:persona.title suprimides", - "Could not delete @:persona.title | Could not delete @:persona.title": "No s'ha pogut suprimir la @:persona.title | No s'han pogut suprimir les @:persona.title", - "Import @:persona.title": "Importa la @:persona.title", - "Drag and drop a zipped Msty @:persona.title to import and create new Personas. In case of duplicate names, the imported Personas will be renamed. You can change it later.": "Arrossegueu i deixeu anar una @:persona.title de Msty comprimida per importar-la i crear personalitats noves. En cas de noms duplicats, les personalitats importades es reanomenaran. Les podeu canviar més endavant.", - "Personas imported": "S'han importat les personalitats", - "Failed to import Personas": "No s'han pogut importar les personalitats", - "Export @:persona.title": "Exporta la @:persona.title", - "Export Selected @:persona.title | Export Selected @:persona.title": "Exporta la @:persona.title seleccionada | Exporta les @:persona.title seleccionades", - "@:persona.title exported as {fileName} | @:persona.title exported as {fileName}": "@:persona.title exportada com a {fileName} | @:persona.title exportades com a {fileName}", - "Failed to export @:persona.title | Failed to export @:persona.title": "No s'ha pogut exportar la @:persona.title | No s'han pogut exportar les @:persona.title", - "New Folder at Root": "Carpeta nova a l'arrel", - "Set as Default Folder": "Estableix com a carpeta per defecte", - "Unset Default Folder": "Desfés la carpeta per defecte", - "@:folder updated": "S'ha actualitzat la carpeta", - "Failed to update @:folder": "No s'ha pogut actualitzar la carpeta", - "@:folder created": "S'ha creat la carpeta", - "Failed to create @:folder": "No s'ha pogut crear la carpeta", - "Delete @:folder": "Suprimeix la carpeta", - "Are you sure you want to delete {folderName} with all its @:persona.title{'?'}": "Segur que voleu suprimir {folderName} amb totes les seves @:persona.title{'?'}", - "@:folder deleted": "S'ha suprimit la carpeta", - "Failed to delete @:folder": "No s'ha pogut suprimir la carpeta", - "@:select a @:persona.title": "@:select una @:persona.title", - "Turn Auto Responder On": "Activa el responedor automàtic", - "Turn Auto Responder Off": "Desactiva el responedor automàtic", - "Hide and Isolate System Prompt": "Amaga i aïlla la indicació del sistema", - "Isolate Response": "Aïlla la resposta", - "Auto Responder": "Responedor automàtic", - "Context Count": "Recompte de context", - "Set the number of recent messages to use as context for the @:persona.title{'.'}": "Definiu el nombre de missatges recents que s'utilitzaran com a context per a la @:persona.title{'.'}", - "Few-Shot Prompts": "Indicacions amb pocs exemples (few-shot)", - "Few-shot learning is a machine learning technique that allows you to train a model with a small amount of data. You can use few-shot prompts to provide examples to the model to help it understand the context and generate better responses.": "L'aprenentatge amb pocs exemples (few-shot) és una tècnica d'aprenentatge automàtic que us permet entrenar un model amb una petita quantitat de dades. Podeu fer servir indicacions few-shot per proporcionar exemples al model i ajudar-lo a entendre el context i generar respostes millors.", - "Add New Shot": "Afegeix un exemple nou", - "Cost": "Cost", - "Cost in USD": "Cost en USD", - "Prompt Tokens": "Tokens de la indicació", - "Completion Tokens": "Tokens de la compleció", - "Total Tokens": "Tokens totals", - "Usage": "Ús", - "Tokens": "Tokens", - "Tokens Processed": "Tokens processats", - "@:select a provider | @:select providers": "@:select un proveïdor | @:select proveïdors", - "Tokens Processed for {provider}": "Tokens processats per a {provider}", - "Total Usage": "Ús total", - "From {from} to {to}": "De {from} a {to}", - "Crunching the numbers": "S'estan fent els càlculs", - "Throughput for {model}": "Rendiment de {model}", - "Measured in tokens per second": "Mesurat en tokens per segon", - "Latency for {model}": "Latència de {model}", - "Measured in seconds": "Mesurat en segons", - "Total": "Total", - "Min": "Mín.", - "Max": "Màx.", - "Avg": "Mitj.", - "Today": "Avui", - "Last 7 days": "Últims 7 dies", - "Last 14 days": "Últims 14 dies", - "Last 30 days": "Últims 30 dies", - "Last 3 months": "Últims 3 mesos", - "Last 6 months": "Últims 6 mesos", - "Last 12 months": "Últims 12 mesos", - "Month to date": "Del mes fins ara", - "Year to date": "De l'any fins ara", - "All time": "Des de sempre", - "@:select date range": "@:select l'interval de dates", - "Month": "Mes", - "Year": "Any", - "Day": "Dia", - "Week": "Setmana", - "Insights Summary": "Resum d'observacions", - "No data available for the selected date range and providers.": "No hi ha dades disponibles per a l'interval de dates i els proveïdors seleccionats.", - "No data available for the selected date range and provider.": "No hi ha dades disponibles per a l'interval de dates i el proveïdor seleccionats.", - "Throughput": "Rendiment", - "No data available for the selected date range, provider and model.": "No hi ha dades disponibles per a l'interval de dates, el proveïdor i el model seleccionats.", - "Latency": "Latència", - "Hide {item}": "Amaga {item}", - "{item} has been hidden": "S'ha amagat {item}", - "Unable to hide {item}": "No s'ha pogut amagar {item}", - "Unhide Parent {item}": "Mostra el {item} pare", - "Hidden Parent Content. Click to unhide.": "Contingut pare amagat. Feu clic per mostrar-lo.", - "Show {item}": "Mostra {item}", - "Failed to verify license. Please try again.": "No s'ha pogut verificar la llicència. Torneu-ho a provar.", - "Enter Aurum License Key": "Introduïu la clau de llicència Aurum", - "You are using the {licenseType} license.": "Esteu utilitzant la llicència {licenseType}.", - "License Key": "Clau de llicència", - "Logout": "Tanca la sessió", - "You are using the {licenseType} license and logged in as Owner.": "Esteu utilitzant la llicència {licenseType} i heu iniciat la sessió com a propietari.", - "Activate Aurum License": "Activa la llicència Aurum", - "Enter your license key to unlock premium features": "Introduïu la vostra clau de llicència per desbloquejar les funcions premium", - "Manage License": "Gestiona la llicència", - "Aurum Lifetime": "Aurum de per vida", - "One-time purchase with lifetime access to premium features": "Compra única amb accés de per vida a les funcions premium", - "Aurum Annual": "Aurum anual" -} diff --git a/tools/msty_ca/tr_012.json b/tools/msty_ca/tr_012.json deleted file mode 100644 index 9dfe756..0000000 --- a/tools/msty_ca/tr_012.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "Yearly subscription with continuous updates and premium features": "Subscripció anual amb actualitzacions contínues i funcions premium", - "One-time purchase": "Compra única", - "Yearly subscription": "Subscripció anual", - "Verify & Activate": "Verifica i activa", - "Deactivate License": "Desactiva la llicència", - "Licensed to": "Llicència a nom de", - "Expires on": "Caduca el", - "Expired": "Caducada", - "Expires in {days} days": "Caduca d'aquí a {days} dies", - "Need a license?": "Necessiteu una llicència?", - "Purchase at msty.ai": "Compreu-la a msty.ai", - "Already have a license?": "Ja teniu una llicència?", - "Manage Activation": "Gestiona l'activació", - "{item} has been cloned": "S'ha clonat {item}", - "Unable to clone {item}": "No s'ha pogut clonar {item}", - "Clone to {item}": "Clona a {item}", - "Successfully cloned to a new {item} ": "S'ha clonat correctament a un nou {item} ", - "Unable to clone to a new {item}": "No s'ha pogut clonar a un nou {item}", - "Import {item} from JSON Clipboard": "Importa {item} des del porta-retalls JSON", - "Import {item} from JSON File": "Importa {item} des d'un fitxer JSON", - "{count} {item} imported successfully": "S'han importat {count} {item} correctament", - "@:importJson.successMessage.detail {item} to {destination}": "@:importJson.successMessage.detail {item} a {destination}", - "{count} {item} imported successfully and corresponding toolsets auto-created": "S'han importat {count} {item} correctament i s'han creat automàticament els conjunts d'eines corresponents", - "Invalid config or nothing to import. Please make sure the JSON is valid and try again.": "La configuració no és vàlida o no hi ha res a importar. Assegureu-vos que el JSON sigui vàlid i torneu-ho a provar.", - "Failed to import. Please check the JSON and try again.": "No s'ha pogut importar. Comproveu el JSON i torneu-ho a provar.", - "Failed to import {failed} items: {items}": "No s'han pogut importar {failed} elements: {items}", - "Drag and drop a JSON file to import {item}.": "Arrossegueu i deixeu anar un fitxer JSON per importar {item}.", - "Team | Teams": "Equip | Equips", - "@:create @:team.label": "Crea un equip", - "Invite User": "Convida un usuari", - "Overview": "Resum general", - "Users": "Usuaris", - "All Teams": "Tots els equips", - "Team {teamName} successfully created.": "L'equip {teamName} s'ha creat correctament.", - "Member|Members": "Membre|Membres", - "All Users": "Tots els usuaris", - "Create New Team": "Crea un equip nou", - "Edit Team": "Edita l'equip", - "Add Users": "Afegeix usuaris", - "Update Users": "Actualitza els usuaris", - "Add Users to Team": "Afegeix usuaris a l'equip", - "Team Name": "Nom de l'equip", - "Enter the new team name": "Introduïu el nom del nou equip", - "Create a new team to manage resources.": "Creeu un equip nou per gestionar recursos.", - "No users assigned to this team.": "No hi ha cap usuari assignat a aquest equip.", - "Invited": "Convidat", - "Manage your teams and users.": "Gestioneu els vostres equips i usuaris.", - "A team is used to manage resources. You can add users to the team to collaborate and share access to resources.": "Un equip s'utilitza per gestionar recursos. Podeu afegir usuaris a l'equip per col·laborar i compartir l'accés als recursos.", - "Delete Team": "Suprimeix l'equip", - "Are you sure you want to delete": "Segur que voleu suprimir", - "Please type {name} to confirm deletion.": "Escriviu {name} per confirmar la supressió.", - "Policy | Policies": "Política | Polítiques", - "@:toolbox.title": "@:toolbox.title", - "Allow user to use Toolbox feature": "Permet que l'usuari faci servir la funció Caixa d'eines", - "@:promptsLibrary.title": "@:promptsLibrary.title", - "Allow user to use Prompts Library feature": "Permet que l'usuari faci servir la funció Biblioteca d'indicacions", - "@:persona.title": "@:persona.title", - "Allow user to use Persona feature": "Permet que l'usuari faci servir la funció Personalitat", - "@:turnstile.title": "@:turnstile.title", - "Allow user to use Turnstile feature": "Permet que l'usuari faci servir la funció Turnstile", - "@:knowledgeStack.title": "@:knowledgeStack.title", - "Allow user to use Knowledge Stack feature": "Permet que l'usuari faci servir la funció Pila de coneixement", - "Allow user to use @:remoteToolsConnector.title feature": "Permet que l'usuari faci servir la funció @:remoteToolsConnector.title", - "@:rtd.title": "@:rtd.title", - "Allow user to use @:rtd.title feature": "Permet que l'usuari faci servir la funció @:rtd.title", - "@:attachments.title": "@:attachments.title", - "Allow user to use @:attachments.title feature": "Permet que l'usuari faci servir la funció @:attachments.title", - "@:forge.forgeMode.title": "@:forge.forgeMode.title", - "Allow user to use @:forge.forgeMode.title feature": "Permet que l'usuari faci servir la funció @:forge.forgeMode.title", - "@:insights": "@:insights", - "Allow user to use @:insights feature": "Permet que l'usuari faci servir la funció @:insights", - "Msty Studio Web Access": "Accés web a Msty Studio", - "Allow user to access Msty Studio from web browser": "Permet que l'usuari accedeixi a Msty Studio des del navegador web", - "Msty Studio Desktop Access": "Accés d'escriptori a Msty Studio", - "Allow user to access Msty Studio from desktop application": "Permet que l'usuari accedeixi a Msty Studio des de l'aplicació d'escriptori", - "Platform Access": "Accés a la plataforma", - "Manage access to specific model providers.": "Gestioneu l'accés a proveïdors de models específics.", - "You have reached your limit to invite users.": "Heu arribat al límit per convidar usuaris.", - "Logged In As": "Sessió iniciada com a", - "A secure login link will be sent to the provided email address. Aurum license holders must verify their license key before using this feature.": "S'enviarà un enllaç d'inici de sessió segur a l'adreça electrònica proporcionada. Els titulars d'una llicència Aurum han de verificar la seva clau de llicència abans de fer servir aquesta funció.", - "continue with License Key": "continua amb la clau de llicència", - "Send Login Link": "Envia l'enllaç d'inici de sessió", - "Team Users": "Usuaris de l'equip", - "Verifying you request to access. Please wait": "S'està verificant la vostra sol·licitud d'accés. Espereu", - "You have been invited to join an account on Msty Studio. ": "Us han convidat a unir-vos a un compte de Msty Studio. ", - "Something went wrong, please contact you account Admin.": "Alguna cosa ha anat malament; contacteu amb l'administrador del vostre compte.", - "A login link will be sent to the email provided above.": "S'enviarà un enllaç d'inici de sessió a l'adreça electrònica proporcionada més amunt.", - "User {email} invited.": "S'ha convidat l'usuari {email}.", - "@:invalid @:email": "Adreça electrònica no vàlida", - "User already exists": "L'usuari ja existeix", - "Failed to invite {email}.": "No s'ha pogut convidar {email}.", - "Unable to load users list": "No s'ha pogut carregar la llista d'usuaris", - "User {email} delete successfully.": "S'ha suprimit l'usuari {email} correctament.", - "Unable to delete user {email}": "No s'ha pogut suprimir l'usuari {email}", - "Delete User": "Suprimeix l'usuari", - "Are you sure you want to delete {email}?": "Segur que voleu suprimir {email}?", - "Assign users to team {teamName}": "Assigna usuaris a l'equip {teamName}", - "Successfully assigned {user} to team {teamName}": "S'ha assignat {user} a l'equip {teamName} correctament", - "Remove user from team": "Treu l'usuari de l'equip", - "Drop {user} from team {teamName}": "Treu {user} de l'equip {teamName}", - "@:select users to add": "@:select els usuaris a afegir", - "Update {item}": "Actualitza {item}", - "Edit {item}": "Edita {item}", - "{item} has been updated": "S'ha actualitzat {item}", - "Unable to update {item}": "No s'ha pogut actualitzar {item}", - "Tools": "Eines", - "Vision": "Visió", - "Embedding": "Embedding", - "Image": "Imatge", - "Thinking": "Raonament", - "Label": "Etiqueta", - "@:select an @:environment.title": "@:select un @:environment.title", - "New @:environment.title": "@:environment.title nou", - "Environment | Environments": "Entorn | Entorns", - "Add new environments to get started.": "Afegiu entorns nous per començar.", - "@:environment.title saved": "@:environment.title desat", - "@:environment.title failed to save": "No s'ha pogut desar l'@:environment.title", - "@:delete @:environment.title | Delete @:environment.title": "Suprimeix l'@:environment.title | Suprimeix els @:environment.title", - "@:delete Selected @:environment.title | Delete Selected @:environment.title": "Suprimeix l'@:environment.title seleccionat | Suprimeix els @:environment.title seleccionats", - "@:delete @:environment.title": "Suprimeix l'@:environment.title", - "Are you sure you want to delete {environmentName}? | Are you sure you want to delete {count} environments?": "Segur que voleu suprimir {environmentName}? | Segur que voleu suprimir {count} entorns?", - "@:environment.title deleted | @:environment.title deleted": "@:environment.title suprimit | @:environment.title suprimits", - "Could not delete @:environment.title | Could not delete @:environment.title": "No s'ha pogut suprimir l'@:environment.title | No s'han pogut suprimir els @:environment.title", - "Backup @:environment.title": "Fes una còpia de seguretat de l'@:environment.title", - "@:environment.title backed up": "S'ha fet una còpia de seguretat de l'@:environment.title", - "Failed to backup @:environment.title": "No s'ha pogut fer una còpia de seguretat de l'@:environment.title", - "Restore @:environment.title": "Restaura l'@:environment.title", - "Drag and drop a Msty Environment file to restore Environments. Note: All existing environments will be deleted and replaced with the imported ones.": "Arrossegueu i deixeu anar un fitxer d'entorn de Msty per restaurar els entorns. Nota: tots els entorns existents se suprimiran i es reemplaçaran pels importats.", - "@:environment.title restored": "@:environment.title restaurat", - "Failed to restore @:environment.title": "No s'ha pogut restaurar l'@:environment.title", - "Quick @:select Environment Variable": "Selecció ràpida de variable d'entorn", - "Search or select a variable to copy it to the clipboard": "Cerqueu o seleccioneu una variable per copiar-la al porta-retalls", - "Make Active {itemType}": "Fes que {itemType} sigui actiu", - "Active {itemType}": "{itemType} actiu", - "{itemName} is now the active {itemType}": "Ara {itemName} és el {itemType} actiu", - "Failed to make {itemName} as the active {itemType}": "No s'ha pogut fer que {itemName} sigui el {itemType} actiu", - "Move {item}": "Mou {item}", - "Move {count} {sourceType} to {item}": "Mou {count} {sourceType} a {item}", - "Are you sure you want to move the selected {item}?": "Segur que voleu moure el {item} seleccionat?", - "{item} has been moved | {item} have been moved": "S'ha mogut {item} | S'han mogut {item}", - "Unable to move {item}": "No s'ha pogut moure {item}", - "Could not determine the target project.": "No s'ha pogut determinar el projecte de destinació.", - "Could not determine the target folder.": "No s'ha pogut determinar la carpeta de destinació.", - "{item} has been deleted": "S'ha suprimit {item}", - "Unable to delete {item}": "No s'ha pogut suprimir {item}", - "@:prompts Library": "Biblioteca d'indicacions", - "New @:prompt": "@:prompt nova", - "@:search.label @:prompt": "Cerca indicacions", - "Quick @:prompt": "@:prompt ràpida", - "Save to Quick @:prompts": "Desa a les indicacions ràpides", - "Copy @:prompt to Clipboard": "Copia la @:prompt al porta-retalls", - "Type / to search the @:promptsLibrary.title": "Teclegeu / per cercar a la @:promptsLibrary.title", - "@:folder": "@:folder", - "@:prompt": "@:prompt", - "Delete all @:prompt and @:folders": "Suprimeix totes les indicacions i carpetes", - "This will clear entire @:promptsLibrary.title and @:folder@:folders. There is no way to recover them after deletion.": "Això esborrarà tota la @:promptsLibrary.title i les carpetes. No es poden recuperar després de suprimir-les.", - "All @:prompt deleted": "S'han suprimit totes les indicacions", - "Get started by adding or importing a new @:prompt{'.'} You can also import default @:prompts to get started.": "Comenceu afegint o important una @:prompt nova{'.'} També podeu importar @:prompts per defecte per començar.", - "Import Default @:prompts": "Importa les @:prompts per defecte", - "You can now use the imported prompts in your conversations.": "Ara podeu fer servir les indicacions importades a les vostres converses.", - "Copy {count} @:prompts to clipboard": "Copia {count} @:prompts al porta-retalls", - "Failed to import default @:prompts": "No s'han pogut importar les @:prompts per defecte", - "Failed to copy @:prompt{'.'} Please try again.": "No s'ha pogut copiar la @:prompt{'.'} Torneu-ho a provar.", - "Are you sure you want to delete {folderName} with all its sub-folders and prompts?": "Segur que voleu suprimir {folderName} amb totes les seves subcarpetes i indicacions?", - "Add New @:prompt": "Afegeix una @:prompt nova", - "Edit @:prompt": "Edita la @:prompt", - "@:prompt Name": "Nom de la @:prompt", - "@:description": "@:description", - "@:prompt updated": "@:prompt actualitzada", - "Failed to update @:prompt": "No s'ha pogut actualitzar la @:prompt", - "@:prompt created": "@:prompt creada", - "Failed to create @:prompt": "No s'ha pogut crear la @:prompt", - "Delete {count} @:prompt": "Suprimeix {count} @:prompt", - "Are you sure you want to delete?": "Segur que ho voleu suprimir?", - "@:prompt deleted": "@:prompt suprimida", - "Failed to delete @:prompt": "No s'ha pogut suprimir la @:prompt", - "Import Default {item}": "Importa {item} per defecte", - "Default {item} imported": "S'ha importat {item} per defecte", - "Failed to import default {item}": "No s'ha pogut importar {item} per defecte", - "Isolate @:context": "Aïlla el @:context", - "Remove @:context Isolation": "Treu l'aïllament del @:context", - "Isolated @:context": "@:context aïllat", - "Clear All @:context Isolations": "Esborra tots els aïllaments de context", - "All @:context Isolations cleared": "S'han esborrat tots els aïllaments de context", - "Response Metrics": "Mètriques de la resposta", - "Long press or Alt click to cycle metrics": "Premeu llargament o Alt+clic per recórrer les mètriques", - "Quick View": "Vista ràpida", - "Details View": "Vista de detalls", - "Input | Inputs": "Entrada | Entrades", - "Output | Outputs": "Sortida | Sortides", - "Think": "Raona", - "The model performed internal thinking but didn’t return a summary. To enable thinking summaries, apply the 'Thinking' tag to this model by clicking on the edit icon next to the model selection.": "El model ha fet un raonament intern però no ha retornat cap resum. Per activar els resums de raonament, apliqueu l'etiqueta «Raonament» a aquest model fent clic a la icona d'edició que hi ha al costat de la selecció del model.", - "Service | Services": "Servei | Serveis", - "@:localAI @:service": "@:service de @:localAI", - "Version | Versions": "Versió | Versions", - "Invalid config. Please enter a valid JSON object.": "La configuració no és vàlida. Introduïu un objecte JSON vàlid.", - "Unsaved Changes": "Canvis sense desar", - "Day | Days": "Dia | Dies", - "Every": "Cada", - "Files": "Fitxers", - "File | @:files": "Fitxer | @:files", - "Really Delete?": "Segur que ho voleu suprimir?", - "Similarity": "Similitud", - "Save as Draft": "Desa com a esborrany", - "Compose": "Redacta", - "Embedding Model": "Model d'embedding", - "Document | Documents": "Document | Documents", - "Matched": "Coincident", - "@:folder Name": "Nom de la carpeta", - "Add New @:folder": "Afegeix una carpeta nova", - "Edit @:folder": "Edita la carpeta", - "An error occurred. Please try again later. Check logs for more details.": "S'ha produït un error. Torneu-ho a provar més tard. Reviseu els registres per a més detalls.", - "Models Path": "Camí dels models", - "This is where {service} downloads and looks for models. You can update the path to use a custom folder.": "Aquí és on {service} baixa i cerca els models. Podeu actualitzar el camí per fer servir una carpeta personalitzada.", - "Edit Models Path": "Edita el camí dels models", - "Set your preferred location.": "Definiu la vostra ubicació preferida.", - "Note: Changing the models path will restart the {service} for the changes to take effect.": "Nota: canviar el camí dels models reiniciarà {service} perquè els canvis tinguin efecte.", - "Select Models Path": "Selecciona el camí dels models", - "Models path updated": "S'ha actualitzat el camí dels models" -} diff --git a/tools/msty_ca/tr_013.json b/tools/msty_ca/tr_013.json deleted file mode 100644 index 6f6d3d1..0000000 --- a/tools/msty_ca/tr_013.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "Failed to update models path": "No s'ha pogut actualitzar el camí dels models", - "Give your system prompt a short title. It will be added to Quick Prompts for easy reuse.": "Poseu un títol curt a la vostra indicació del sistema. S'afegirà a les indicacions ràpides per poder-la reutilitzar fàcilment.", - "Quick @:prompt Name": "Nom de la @:prompt ràpida", - "System prompt saved to Quick Prompts.": "S'ha desat la indicació del sistema a les indicacions ràpides.", - "Failed to save system prompt to Quick Prompts.": "No s'ha pogut desar la indicació del sistema a les indicacions ràpides.", - "Add some system prompt text before saving to Quick Prompts.": "Afegiu text a la indicació del sistema abans de desar-la a les indicacions ràpides.", - "Service Health": "Estat del servei", - "Status of the {service}. Having trouble? Try restarting or reviewing the logs.": "Estat del {service}. Teniu problemes? Proveu de reiniciar-lo o de revisar els registres.", - "Restart Service": "Reinicia el servei", - "Stop Service": "Atura el servei", - "Start Service": "Inicia el servei", - "Failed to perform {action} on {service}. Please check the logs for more details.": "No s'ha pogut fer {action} a {service}. Reviseu els registres per a més detalls.", - "{service} Restarted": "S'ha reiniciat {service}", - "Running": "En execució", - "Stopped": "Aturat", - "Service Endpoint | Service Endpoints": "Punt final del servei | Punts finals del servei", - "Local endpoint for {service}. Use this to connect from other applications running locally on device.": "Punt final local de {service}. Feu-lo servir per connectar-vos des d'altres aplicacions que s'executen localment al dispositiu.", - "Once the service is running, the address will be displayed here.": "Quan el servei estigui en execució, l'adreça es mostrarà aquí.", - "Because the service is available on the network, you can also connect to it using the Network Service URL from other devices.": "Com que el servei està disponible a la xarxa, també us hi podeu connectar fent servir l'URL del servei de xarxa des d'altres dispositius.", - "Copy Network URL": "Copia l'URL de xarxa", - "Service Version": "Versió del servei", - "Shows the current version of {service}. To ensure optimal performance and access to new features, keep it up to date. Reinstallation is also available if needed.": "Mostra la versió actual de {service}. Per garantir un rendiment òptim i l'accés a les funcions noves, mantingueu-lo actualitzat. També podeu tornar-lo a instal·lar si cal.", - "Force Update {service}": "Força l'actualització de {service}", - "Force Update {service} (CPU)": "Força l'actualització de {service} (CPU)", - "Force Update {service} (CUDA)": "Força l'actualització de {service} (CUDA)", - "Force Update {service} (CUDA 12.4)": "Força l'actualització de {service} (CUDA 12.4)", - "Force Update {service} (CUDA 13.1)": "Força l'actualització de {service} (CUDA 13.1)", - "Force Update {service} (Vulkan)": "Força l'actualització de {service} (Vulkan)", - "Force Update {service} (ROCm)": "Força l'actualització de {service} (ROCm)", - "Force Update {service} (OpenCL)": "Força l'actualització de {service} (OpenCL)", - "Force Update {service} (SYCL)": "Força l'actualització de {service} (SYCL)", - "{service} is updated to the latest version {version}": "{service} s'ha actualitzat a la darrera versió {version}", - "Failed to update {service}. Please check the logs for more details.": "No s'ha pogut actualitzar {service}. Reviseu els registres per a més detalls.", - "Remove {service}": "Elimina {service}", - "Are you sure you want to remove {service}? This will delete the service binary and all its configurations. You can reinstall it later from the settings page.": "Segur que voleu eliminar {service}? Això suprimirà el binari del servei i totes les seves configuracions. El podeu tornar a instal·lar més endavant des de la pàgina de configuració.", - "{service} has been removed successfully": "S'ha eliminat {service} correctament", - "Failed to remove {service}. Please check the logs for more details.": "No s'ha pogut eliminar {service}. Reviseu els registres per a més detalls.", - "These configurations are applied to the {service} when it starts. {service} will automatically restart after you save any changes.": "Aquestes configuracions s'apliquen a {service} quan s'inicia. {service} es reiniciarà automàticament després de desar qualsevol canvi.", - "Allow other devices on your network to access this {service} through this device's IP address.": "Permet que altres dispositius de la vostra xarxa accedeixin a aquest {service} a través de l'adreça IP d'aquest dispositiu.", - "Allow connections from Msty Studio Web to this app so it can access {service}.": "Permet les connexions des del web de Msty Studio a aquesta aplicació perquè pugui accedir a {service}.", - "Capture Service Logs": "Captura els registres del servei", - "You have unsaved changes in the {service} Configurations. Once you save, {service} will be restarted with the new configurations.": "Teniu canvis sense desar a les configuracions de {service}. Un cop els deseu, {service} es reiniciarà amb les noves configuracions.", - "{service} Configurations saved and service restarted": "S'han desat les configuracions de {service} i s'ha reiniciat el servei", - "Failed to save {service} Configurations. Please check the logs for more details.": "No s'han pogut desar les configuracions de {service}. Reviseu els registres per a més detalls.", - "Keyboard Shortcuts": "Dreceres de teclat", - "Customize keyboard shortcuts for quick access to features": "Personalitzeu les dreceres de teclat per accedir ràpidament a les funcions", - "Search shortcuts...": "Cerca dreceres...", - "Search by shortcut": "Cerca per drecera", - "Search by name": "Cerca per nom", - "Press any key combination...": "Premeu qualsevol combinació de tecles...", - "Press keys...": "Premeu tecles...", - "Not set": "Sense definir", - "Edit shortcut": "Edita la drecera", - "Global": "Global", - "Shortcut saved": "S'ha desat la drecera", - "Error saving shortcut": "Error en desar la drecera", - "Shortcut reset": "S'ha restablert la drecera", - "Reset to default": "Restableix al valor per defecte", - "Reset all shortcuts": "Restableix totes les dreceres", - "All shortcuts reset to defaults": "S'han restablert totes les dreceres als valors per defecte", - "No shortcuts found": "No s'ha trobat cap drecera", - "Conflicts with: {name}": "Entra en conflicte amb: {name}", - "Navigation": "Navegació", - "@:settings.appearance": "@:settings.appearance", - "Conversation": "Conversa", - "Reset All Shortcuts": "Restableix totes les dreceres", - "Are you sure you want to reset all keyboard shortcuts to their default values?": "Segur que voleu restablir totes les dreceres de teclat als seus valors per defecte?", - "Customize Shortcuts": "Personalitza les dreceres", - "Contextual": "Contextual", - "System Wide": "A tot el sistema", - "Option key shortcuts work in Msty. If they produce special characters instead, check System Settings > Keyboard > Input Sources": "Les dreceres amb la tecla Opció funcionen a Msty. Si en comptes d'això produeixen caràcters especials, comproveu Configuració del sistema > Teclat > Fonts d'entrada", - "Keyboard Shortcuts Example": "Exemple de dreceres de teclat", - "This component demonstrates how to register and use keyboard shortcuts in your components.": "Aquest component mostra com registrar i fer servir dreceres de teclat als vostres components.", - "Registered Shortcuts:": "Dreceres registrades:", - "Example Action 1": "Acció d'exemple 1", - "Scoped Action": "Acció amb àmbit", - "Actions:": "Accions:", - "Update First Shortcut": "Actualitza la primera drecera", - "Test Conflict Detection": "Prova la detecció de conflictes", - "Action Log:": "Registre d'accions:", - "No actions yet. Try pressing the shortcuts!": "Encara no hi ha cap acció. Proveu de prémer les dreceres!", - "Developer Notes:": "Notes per a desenvolupadors:", - "Shortcuts are automatically cleaned up when the component unmounts": "Les dreceres es netegen automàticament quan el component es desmunta", - "Use component-scoped shortcuts to avoid ID conflicts": "Feu servir dreceres amb àmbit de component per evitar conflictes d'ID", - "Platform-specific bindings are handled automatically (Cmd on Mac, Ctrl on Windows)": "Les assignacions específiques de plataforma es gestionen automàticament (Cmd a Mac, Ctrl a Windows)", - "Check for conflicts before registering shortcuts that might collide with existing ones": "Comproveu si hi ha conflictes abans de registrar dreceres que puguin xocar amb les existents", - "Shortcuts can be global (work everywhere) or context-specific": "Les dreceres poden ser globals (funcionen a tot arreu) o específiques de context", - "Select split to remove": "Seleccioneu la divisió a eliminar", - "Press": "Premeu", - "Create New": "Crea'n una de nova", - "Copy": "Copia", - "No Messages Selected": "Cap missatge seleccionat", - "Select at least one message to perform any actions": "Seleccioneu com a mínim un missatge per fer qualsevol acció", - "Export Message | Export Messages": "Exporta el missatge | Exporta els missatges", - "Copy Message | Copy Messages": "Copia el missatge | Copia els missatges", - "As JSON": "Com a JSON", - "As Markdown": "Com a Markdown", - "Successfully {action} messages as {format}": "S'han {action} els missatges com a {format}", - "Re-index {item}": "Torna a indexar {item}", - "{item} re-indexed successfully": "S'ha tornat a indexar {item} correctament", - "Failed to re-index {item}": "No s'ha pogut tornar a indexar {item}", - "Are you sure you want to re-index {item}?": "Segur que voleu tornar a indexar {item}?", - "Recent|Recents": "Recent|Recents", - "Recents & @:pinned": "Recents i fixats", - "Knowledge Stack | Knowledge Stacks": "Pila de coneixement | Piles de coneixement", - "@:knowledgeStack.title Contexts": "Contextos de la @:knowledgeStack.title", - "Processing: {fileName}": "S'està processant: {fileName}", - "Composing": "S'està redactant", - "Composing…": "S'està redactant…", - "YouTube": "YouTube", - "Overall progress": "Progrés general", - "In-flight:": "En curs:", - "Ignored for retrieval": "Ignorat per a la recuperació", - "Importing folder: {name}": "S'està important la carpeta: {name}", - "Processing {count} knowledge stack(s)": "S'estan processant {count} piles de coneixement", - "Save Edits": "Desa les edicions", - "Save Edits and Mark as Draft": "Desa les edicions i marca com a esborrany", - "Are you sure you want to save your edits? This will mark the Knowledge Stack as a draft and prevent it from being used in production until processed again.": "Segur que voleu desar les vostres edicions? Això marcarà la pila de coneixement com a esborrany i n'impedirà l'ús en producció fins que no es torni a processar.", - "Choose where to import the @:knowledgeStack.title": "Trieu on importar la @:knowledgeStack.title", - "New @:knowledgeStack.title": "@:knowledgeStack.title nova", - "Add description": "Afegeix una descripció", - "Edit description": "Edita la descripció", - "Add a description for this Knowledge Stack...": "Afegiu una descripció per a aquesta pila de coneixement...", - "Saving...": "S'està desant...", - "Saved {time}": "Desat {time}", - "Basic Information": "Informació bàsica", - "@:similarity Threshold": "Llindar de similitud", - "@:similarity Match": "Coincidència de similitud", - "You have unsaved changes. Are you sure you want to leave this page? Your changes will be lost.": "Teniu canvis sense desar. Segur que voleu sortir d'aquesta pàgina? Es perdran els vostres canvis.", - "You have unsaved changes that will be lost if you reload the page.": "Teniu canvis sense desar que es perdran si torneu a carregar la pàgina.", - "No @:knowledgeStack.title selected": "No s'ha seleccionat cap @:knowledgeStack.title", - "Knowledge Stack lets you bring in files, folders, notes, and YouTube transcripts, making them searchable and chat-ready through Retrieval-Augmented Generation (RAG)": "La pila de coneixement us permet incorporar fitxers, carpetes, notes i transcripcions de YouTube, i fer-los cercables i a punt per al xat mitjançant la generació augmentada per recuperació (RAG)", - "Select a @:knowledgeStack.title": "Selecciona una @:knowledgeStack.title", - "Select a @:knowledgeStack.title from the tree or create a new one": "Seleccioneu una @:knowledgeStack.title de l'arbre o creeu-ne una de nova", - "Edit Ignore Rules": "Edita les regles d'exclusió", - "Ignore Rules": "Regles d'exclusió", - "Define patterns to exclude files and folders from processing.": "Definiu patrons per excloure fitxers i carpetes del processament.", - "Priority: Local .mstyignore/.gitignore → Folder rules → System defaults": "Prioritat: .mstyignore/.gitignore locals → Regles de la carpeta → Valors per defecte del sistema", - "# Enter patterns here, one per line\n# Example: *.log, node_modules/, !important.txt": "# Introduïu els patrons aquí, un per línia\n# Exemple: *.log, node_modules/, !important.txt", - "Show examples & help": "Mostra exemples i ajuda", - "Log files": "Fitxers de registre", - "Temp files in all dirs": "Fitxers temporals a tots els directoris", - "Entire directory": "Tot el directori", - "Exception pattern": "Patró d'excepció", - "Multiple image types": "Diversos tipus d'imatge", - "All files in test & subdirs": "Tots els fitxers de test i subdirectoris", - "Case-insensitive match": "Coincidència sense distinció de majúscules", - "Files starting with secret-": "Fitxers que comencen per secret-", - "Use template": "Fes servir la plantilla", - "Clear all": "Esborra-ho tot", - "Ignore rules updated successfully": "Les regles d'exclusió s'han actualitzat correctament", - "Failed to update ignore rules": "No s'han pogut actualitzar les regles d'exclusió", - "Delete @:folder '{folderName}'": "Suprimeix la carpeta «{folderName}»", - "Are you sure you want to delete this folder? All Knowledge Stacks inside it will be removed. There is no undo for this action.": "Segur que voleu suprimir aquesta carpeta? Se n'eliminaran totes les piles de coneixement que conté. Aquesta acció no es pot desfer.", - "Add New @:knowledgeStack.title": "Afegeix una @:knowledgeStack.title nova", - "Delete @:knowledgeStack.title": "Suprimeix la @:knowledgeStack.title", - "Are you sure you want to delete this Knowledge Stack? All items inside it will be removed. There is no undo for this action.": "Segur que voleu suprimir aquesta pila de coneixement? Se n'eliminaran tots els elements que conté. Aquesta acció no es pot desfer.", - "Delete All @:knowledgeStack.title": "Suprimeix totes les @:knowledgeStack.title", - "This will clear entire @:knowledgeStack.title{'.'} There is no way to recover them after deletion.": "Això esborrarà tota la @:knowledgeStack.title{'.'} No es poden recuperar després de suprimir-les.", - "All @:knowledgeStack.title deleted": "S'han suprimit totes les @:knowledgeStack.title", - "Failed to delete all @:knowledgeStack.title": "No s'han pogut suprimir totes les @:knowledgeStack.title", - "Chunk | @:knowledgeStack.chunksConsole.chunks": "Fragment | @:knowledgeStack.chunksConsole.chunks", - "Chunks": "Fragments", - "@:knowledgeStack.chunksConsole.chunks Console": "Consola de @:knowledgeStack.chunksConsole.chunks", - "Use this console to understand how your Knowledge Stack, { title }, is being used and what chunks are being sent to a model when chatting. You can also delete a chunk if you think it's not relevant or useful.": "Feu servir aquesta consola per entendre com s'utilitza la vostra pila de coneixement, { title }, i quins fragments s'envien a un model quan xategeu. També podeu suprimir un fragment si penseu que no és rellevant o útil.", - "Query Text": "Text de la consulta", - "@:similarity": "@:similarity", - "Highest": "Molt alta", - "High": "Alta", - "Medium": "Mitjana", - "Low": "Baixa", - "# of @:knowledgeStack.chunksConsole.chunks": "Nre. de @:knowledgeStack.chunksConsole.chunks", - "Source File": "Fitxer d'origen", - "Source Note": "Nota d'origen", - "Source Video": "Vídeo d'origen", - "Source": "Origen", - "Score": "Puntuació", - "Search Results": "Resultats de la cerca", - "No search results found. Try adjusting your query or search settings.": "No s'ha trobat cap resultat de cerca. Proveu d'ajustar la consulta o la configuració de cerca.", - "No results match the current similarity filter. Try adjusting the filter to show more results.": "Cap resultat coincideix amb el filtre de similitud actual. Proveu d'ajustar el filtre per mostrar més resultats.", - "@:knowledgeStack.chunksConsole.chunk has been deleted": "S'ha suprimit el @:knowledgeStack.chunksConsole.chunk", - "Search Type": "Tipus de cerca", - "Hybrid Search": "Cerca híbrida", - "Semantic Search": "Cerca semàntica", - "Keyword Search": "Cerca per paraules clau", - "This filter only affects which results are displayed below. It does not change the actual query.": "Aquest filtre només afecta quins resultats es mostren a sota. No canvia la consulta real.", - "Content has been scrubbed for PII removal": "S'ha netejat el contingut per eliminar la PII", - "Used cached scrubbed version": "S'ha fet servir la versió netejada de la memòria cau", - "Freshly scrubbed content": "Contingut netejat de nou", - "Run Query": "Executa la consulta", - "{count} selected": "{count} seleccionats", - "Selected Stacks": "Piles seleccionades", - "Search Knowledge Stacks...": "Cerca piles de coneixement...", - "Recently Updated": "Actualitzades recentment", - "No Knowledge Stacks found": "No s'ha trobat cap pila de coneixement", - "No Knowledge Stacks available": "No hi ha cap pila de coneixement disponible", - "No description": "Sense descripció", - "Number of @:knowledgeStack.chunksConsole.chunks": "Nombre de @:knowledgeStack.chunksConsole.chunks", - "Synthesize Query": "Sintetitza la consulta", - "Enable PII Scrubbing": "Activa la neteja de PII", - "Max Full Content Contexts": "Màxim de contextos de contingut complet", - "Full Content Contexts can significantly increase token usage and may impact performance": "Els contextos de contingut complet poden augmentar significativament l'ús de tokens i poden afectar el rendiment", - "Manage Stacks": "Gestiona les piles", - "Only completed stacks can be selected": "Només es poden seleccionar les piles completades", - "Total Files": "Fitxers totals", - "Vector Dimensions": "Dimensions del vector", - "Word Count": "Recompte de paraules", - "Reading Time": "Temps de lectura", - "No embedding model configured": "No s'ha configurat cap model d'embedding", - "Model {modelId} not found": "No s'ha trobat el model {modelId}", - "Model provider was automatically remapped": "El proveïdor del model s'ha reassignat automàticament", - "Change Query Embedding model": "Canvia el model d'embedding de la consulta", - "Select Query Embedding Model": "Selecciona el model d'embedding de la consulta", - "The original embedding model for this Knowledge Stack is not available. Please select a new model.": "El model d'embedding original d'aquesta pila de coneixement no està disponible. Seleccioneu un model nou.", - "The embedding model provider was automatically remapped to a compatible provider.": "El proveïdor del model d'embedding s'ha reassignat automàticament a un proveïdor compatible.", - "Current Model": "Model actual", - "No model configured": "No s'ha configurat cap model", - "Select New Model": "Selecciona un model nou", - "Default (Local)": "Per defecte (local)" -} diff --git a/tools/msty_ca/tr_014.json b/tools/msty_ca/tr_014.json deleted file mode 100644 index 35dc33a..0000000 --- a/tools/msty_ca/tr_014.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "@:files": "@:files", - "Add .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx or any other supported file types.": "Afegiu fitxers .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx o qualsevol altre tipus de fitxer admès.", - "Drag and drop files here": "Arrossegueu i deixeu anar els fitxers aquí", - "Browse Files": "Explora els fitxers", - "Drop files here": "Deixeu anar els fitxers aquí", - "@:folders & Obsidian Vaults": "@:folders i magatzems d'Obsidian", - "Add folders containing files. You can drop Obsidian Vaults as well.": "Afegiu carpetes que continguin fitxers. També podeu deixar-hi anar magatzems d'Obsidian.", - "Drag and drop folders here": "Arrossegueu i deixeu anar les carpetes aquí", - "Browse Folders": "Explora les carpetes", - "Live Mode": "Mode en directe", - "Folders are monitored for changes and automatically update the Knowledge Stack": "Les carpetes se supervisen per detectar canvis i actualitzen automàticament la pila de coneixement", - "Duplicate Folder": "Carpeta duplicada", - "Folder Already Added": "La carpeta ja s'ha afegit", - "This folder has already been added to the @:knowledgeStack.title": "Aquesta carpeta ja s'ha afegit a la @:knowledgeStack.title", - "The folder '{path}' has already been added": "La carpeta «{path}» ja s'ha afegit", - "Folder Processed": "Carpeta processada", - "{count} files added successfully": "S'han afegit {count} fitxers correctament", - "Only folders can be added here. Please select a folder instead of individual files.": "Aquí només s'hi poden afegir carpetes. Seleccioneu una carpeta en comptes de fitxers individuals.", - "Select Folder": "Selecciona una carpeta", - "Please use the Browse button to select a folder in web mode": "Feu servir el botó Explora per seleccionar una carpeta en mode web", - "Processed": "Processat", - "Error Processing Folder": "Error en processar la carpeta", - "Folder Explorer": "Explorador de carpetes", - "Show Ignored Files": "Mostra els fitxers ignorats", - "No folders added yet": "Encara no s'ha afegit cap carpeta", - "Failed to Load Folder": "No s'ha pogut carregar la carpeta", - "Folder Removed": "Carpeta eliminada", - "'{name}' has been removed from the Knowledge Stack": "S'ha eliminat «{name}» de la pila de coneixement", - "Failed to Remove Folder": "No s'ha pogut eliminar la carpeta", - "Ignored": "Ignorat", - "Loading...": "S'està carregant...", - "Loading folder contents...": "S'està carregant el contingut de la carpeta...", - "Are you sure you want to remove \"{name}\" from this Knowledge Stack? The folder and its files will remain on your system.": "Segur que voleu eliminar «{name}» d'aquesta pila de coneixement? La carpeta i els seus fitxers es mantindran al vostre sistema.", - "Expand folder": "Amplia la carpeta", - "Collapse folder": "Replega la carpeta", - "This folder is ignored based on .mstyignore or .gitignore rules": "Aquesta carpeta s'ignora segons les regles de .mstyignore o .gitignore", - "This file is ignored based on .mstyignore or .gitignore rules": "Aquest fitxer s'ignora segons les regles de .mstyignore o .gitignore", - "Actions menu": "Menú d'accions", - "Empty folder": "Carpeta buida", - "{count} item | {count} items": "{count} element | {count} elements", - "{count} hidden item | {count} hidden items": "{count} element amagat | {count} elements amagats", - "Obsidian Vaults": "Magatzems d'Obsidian", - "Add Obsidian Vaults to your Knowledge Stack. Msty will index all the notes in the vault.": "Afegiu magatzems d'Obsidian a la vostra pila de coneixement. Msty indexarà totes les notes del magatzem.", - "Drag and drop Obsidian Vaults here": "Arrossegueu i deixeu anar els magatzems d'Obsidian aquí", - "Browse Obsidian Vaults": "Explora els magatzems d'Obsidian", - "Add your own notes to the Knowledge Stack. These notes will be chunked and embedded for semantic search.": "Afegiu les vostres pròpies notes a la pila de coneixement. Aquestes notes es fragmentaran i s'incrustaran (embedding) per a la cerca semàntica.", - "Add Note": "Afegeix una nota", - "Enter note title...": "Introduïu el títol de la nota...", - "Enter note content...": "Introduïu el contingut de la nota...", - "No notes added yet. Click 'Add Note' to get started.": "Encara no s'ha afegit cap nota. Feu clic a «Afegeix una nota» per començar.", - "Not saved yet": "Encara no s'ha desat", - "Add YouTube video links to index their transcripts. Msty will fetch transcripts and make them searchable.": "Afegiu enllaços de vídeos de YouTube per indexar-ne les transcripcions. Msty obtindrà les transcripcions i les farà cercables.", - "Drag and drop YouTube links here or paste them below": "Arrossegueu i deixeu anar els enllaços de YouTube aquí o enganxeu-los a sota", - "Paste YouTube URLs here (space or comma separated)...": "Enganxeu els URL de YouTube aquí (separats per espais o comes)...", - "Paste YouTube URLs here ({count} detected) | Paste YouTube URLs here ({count} detected)": "Enganxeu els URL de YouTube aquí ({count} detectat) | Enganxeu els URL de YouTube aquí ({count} detectats)", - "Auto-pull detected URLs": "Obtén automàticament els URL detectats", - "{count} URL detected | {count} URLs detected": "{count} URL detectat | {count} URL detectats", - "{count} YouTube URL detected but not pulled yet | {count} YouTube URLs detected but not pulled yet": "{count} URL de YouTube detectat però encara no obtingut | {count} URL de YouTube detectats però encara no obtinguts", - "Mark for Reprocessing": "Marca per tornar a processar", - "Lock Temporarily": "Bloqueja temporalment", - "Lock Permanently": "Bloqueja permanentment", - "Ignore for Retrieval": "Ignora per a la recuperació", - "Include in Retrieval": "Inclou a la recuperació", - "More actions": "Més accions", - "Load Mode": "Mode de càrrega", - "Select Load Mode": "Selecciona el mode de càrrega", - "Distribution": "Distribució", - "Choose how this file should be loaded during Knowledge Stack composition.": "Trieu com s'ha de carregar aquest fitxer durant la composició de la pila de coneixement.", - "Static Files": "Fitxers estàtics", - "Dynamic Files": "Fitxers dinàmics", - "Sync Files": "Fitxers de sincronització", - "Special Modes": "Modes especials", - "Special Modes Ratio": "Proporció de modes especials", - "Static Mode": "Mode estàtic", - "Uses the cached version from when the file was added. Fast and predictable, but doesn't reflect recent changes.": "Fa servir la versió de la memòria cau de quan es va afegir el fitxer. És ràpid i predictible, però no reflecteix els canvis recents.", - "Cached content loaded from initial indexing": "Contingut de la memòria cau carregat des de la indexació inicial", - "Dynamic Mode": "Mode dinàmic", - "Loads the latest file content on each composition. Slightly slower but always up-to-date.": "Carrega el contingut més recent del fitxer en cada composició. Una mica més lent però sempre actualitzat.", - "Fresh content loaded on each composition": "Contingut nou carregat en cada composició", - "Recommended": "Recomanat", - "Sync Mode": "Mode de sincronització", - "Watches for file changes and automatically recomposes. Best for small, frequently updated files.": "Vigila els canvis als fitxers i torna a compondre automàticament. Ideal per a fitxers petits que s'actualitzen sovint.", - "Auto-recomposes when files change": "Torna a compondre automàticament quan els fitxers canvien", - "Expensive": "Costós", - "Start Sync Mode": "Inicia el mode de sincronització", - "Pause Sync Mode": "Posa en pausa el mode de sincronització", - "Pause All": "Posa-ho tot en pausa", - "Sync Mode Started": "S'ha iniciat el mode de sincronització", - "Now watching file changes for {name}": "Ara es vigilen els canvis dels fitxers de {name}", - "Sync Mode Paused": "S'ha posat en pausa el mode de sincronització", - "File watching has been paused": "S'ha posat en pausa la vigilància de fitxers", - "Failed to Start Sync Mode": "No s'ha pogut iniciar el mode de sincronització", - "Please ensure the Knowledge Stack has files marked for Sync Mode": "Assegureu-vos que la pila de coneixement té fitxers marcats per al mode de sincronització", - "All Sync Modes Paused": "S'han posat en pausa tots els modes de sincronització", - "File watching has been stopped for all knowledge stacks": "S'ha aturat la vigilància de fitxers de totes les piles de coneixement", - "{count} Active | {count} Active": "{count} actiu | {count} actius", - "Active Sync Modes": "Modes de sincronització actius", - "{count} file | {count} files": "{count} fitxer | {count} fitxers", - "Started {time}": "Iniciat {time}", - "{stacks} stack, {files} files | {stacks} stacks, {files} files": "{stacks} pila, {files} fitxers | {stacks} piles, {files} fitxers", - "{hours}h ago": "fa {hours} h", - "{days}d ago": "fa {days} d", - "Analytics and Insights": "Analítiques i observacions", - "Last Composed": "Darrera composició", - "Analytics Sections": "Seccions d'analítiques", - "Performance Timings": "Temps de rendiment", - "Summary Statistics": "Estadístiques resum", - "Content Breakdown": "Desglossament del contingut", - "Query Settings": "Configuració de la consulta", - "Reading Statistics": "Estadístiques de lectura", - "No Analytics Available": "No hi ha analítiques disponibles", - "Analytics will be available after composing this Knowledge Stack.": "Les analítiques estaran disponibles després de compondre aquesta pila de coneixement.", - "No Analytics Sections Selected": "Cap secció d'analítiques seleccionada", - "Please select one or more analytics sections above to view insights about your Knowledge Stack.": "Seleccioneu una o més seccions d'analítiques de dalt per veure observacions sobre la vostra pila de coneixement.", - "Select All Sections": "Selecciona totes les seccions", - "Loading Items": "S'estan carregant els elements", - "Splitting @:knowledgeStack.chunksConsole.chunks": "S'estan dividint els @:knowledgeStack.chunksConsole.chunks", - "Embedding @:knowledgeStack.chunksConsole.chunks": "S'estan incrustant els @:knowledgeStack.chunksConsole.chunks", - "Composing Stack": "S'està component la pila", - "Total Time": "Temps total", - "Some operations may run in parallel, so individual times may not sum to total time": "Algunes operacions poden executar-se en paral·lel, de manera que els temps individuals poden no sumar el temps total", - "File Reading": "Lectura de fitxers", - "Database Write": "Escriptura a la base de dades", - "# of Items": "Nre. d'elements", - "Total @:knowledgeStack.chunksConsole.chunks": "Total de @:knowledgeStack.chunksConsole.chunks", - "Available @:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks disponibles", - "Skipped @:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks omesos", - "Character Count": "Recompte de caràcters", - "Ignored Items": "Elements ignorats", - "Ignored for Retrieval": "Ignorat per a la recuperació", - "These items are excluded from search and retrieval operations": "Aquests elements s'exclouen de les operacions de cerca i recuperació", - "Percentage of items ignored": "Percentatge d'elements ignorats", - "of {total}": "de {total}", - "YouTube Videos": "Vídeos de YouTube", - "No Ignored Items": "Cap element ignorat", - "All items in this Knowledge Stack are included in search and retrieval": "Tots els elements d'aquesta pila de coneixement s'inclouen a la cerca i la recuperació", - "Recommendation": "Recomanació", - "FILES": "FITXERS", - "OBSIDIAN VAULTS": "MAGATZEMS D'OBSIDIAN", - "FOLDERS": "CARPETES", - "NOTES": "NOTES", - "YOUTUBE LINKS": "ENLLAÇOS DE YOUTUBE", - "Scrubbed @:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks netejats", - "Cached @:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks a la memòria cau", - "Coverage": "Cobertura", - "Scrubbing Progress": "Progrés de la neteja", - "Load Analytics": "Carrega les analítiques", - "Failed to load PII analytics data": "No s'han pogut carregar les dades d'analítiques de PII", - "PII Analytics Not Loaded": "Analítiques de PII no carregades", - "Click \"Load Analytics\" to view PII scrubbing statistics": "Feu clic a «Carrega les analítiques» per veure les estadístiques de neteja de PII", - "This score reflects how comprehensively PII scrubbing is applied to your Knowledge Stack. A higher score means more chunks have been processed for PII removal.": "Aquesta puntuació reflecteix com d'exhaustivament s'aplica la neteja de PII a la vostra pila de coneixement. Una puntuació més alta significa que s'han processat més fragments per eliminar-ne la PII.", - "PII scrubbing is optional. Enable it in query settings only if your content contains sensitive personal information.": "La neteja de PII és opcional. Activeu-la a la configuració de la consulta només si el vostre contingut conté informació personal sensible.", - "Measures how well sensitive information is protected in your Knowledge Stack": "Mesura com de ben protegida està la informació sensible a la vostra pila de coneixement", - "Not Enabled": "No activat", - "Well Protected": "Ben protegit", - "Partially Protected": "Parcialment protegit", - "Limited Protection": "Protecció limitada", - "Minimal Protection": "Protecció mínima", - "Excellent privacy protection - nearly all content secured": "Protecció de la privadesa excel·lent: gairebé tot el contingut està assegurat", - "Good privacy protection - most content is secured": "Bona protecció de la privadesa: la major part del contingut està assegurat", - "Partial privacy protection - consider reviewing settings": "Protecció parcial de la privadesa: plantegeu-vos revisar la configuració", - "Limited privacy protection - review sensitive content": "Protecció limitada de la privadesa: reviseu el contingut sensible", - "PII scrubbing is not enabled. This is completely fine if your content doesn't contain sensitive personal information.": "La neteja de PII no està activada. Això està perfectament bé si el vostre contingut no conté informació personal sensible.", - "Consider enabling PII scrubbing only if your Knowledge Stack contains names, addresses, phone numbers, emails, or other personal data.": "Plantegeu-vos activar la neteja de PII només si la vostra pila de coneixement conté noms, adreces, números de telèfon, adreces electròniques o altres dades personals.", - "Significant content reduction ({percentage}%) - extensive PII found": "Reducció significativa del contingut ({percentage}%): s'ha trobat molta PII", - "Moderate content reduction ({percentage}%) - some PII removed": "Reducció moderada del contingut ({percentage}%): s'ha eliminat una mica de PII", - "Minimal content reduction ({percentage}%) - low PII detected": "Reducció mínima del contingut ({percentage}%): s'ha detectat poca PII", - "No content size change - no PII detected or removed": "Sense canvi en la mida del contingut: no s'ha detectat ni eliminat cap PII", - "All chunks processed successfully": "S'han processat tots els fragments correctament", - "Nearly all chunks processed successfully": "S'han processat gairebé tots els fragments correctament", - "Most chunks processed - some may need attention": "S'han processat la majoria de fragments: alguns poden necessitar atenció", - "Incomplete processing - check PII scrubbing configuration": "Processament incomplet: comproveu la configuració de la neteja de PII", - "Large knowledge base - consider increasing PII detection coverage": "Base de coneixement gran: plantegeu-vos augmentar la cobertura de detecció de PII", - "Many unprocessed chunks - review PII scrubbing settings": "Molts fragments sense processar: reviseu la configuració de la neteja de PII", - "PII scrubbing is optional. Enable it in query settings if your content contains sensitive information like names, emails, or phone numbers.": "La neteja de PII és opcional. Activeu-la a la configuració de la consulta si el vostre contingut conté informació sensible com ara noms, adreces electròniques o números de telèfon.", - "PII scrubbing helps protect sensitive information. It's optional and can be enabled in query settings if needed.": "La neteja de PII ajuda a protegir la informació sensible. És opcional i es pot activar a la configuració de la consulta si cal.", - "Security Status": "Estat de seguretat", - "Privacy Status": "Estat de privadesa", - "When to Enable": "Quan activar-la", - "Content Impact": "Impacte en el contingut", - "Processing Efficiency": "Eficiència del processament", - "Scale Recommendation": "Recomanació d'escala", - "Coverage Recommendation": "Recomanació de cobertura", - "Optional Feature": "Funció opcional", - "Privacy Option": "Opció de privadesa", - "Prompt Prefix": "Prefix de la indicació", - "Privacy Optimization Score": "Puntuació d'optimització de la privadesa", - "PII Protection Level": "Nivell de protecció de PII", - "PII Scrubbing Status": "Estat de la neteja de PII", - "Unscrubbed @:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks sense netejar", - "Original Size": "Mida original", - "Processed Size": "Mida processada", - "Size Reduction": "Reducció de mida", - "Privacy @:insgiths": "Privadesa", - "Data has been modified": "Les dades s'han modificat", - "Show outdated data anyway": "Mostra les dades obsoletes igualment", - "Content Distribution": "Distribució del contingut", - "{label} contribute {percentage}% of all chunks": "{label} aporten el {percentage}% de tots els fragments", - "Processing Issue": "Problema de processament", - "{label} have low efficiency ({efficiency}%)": "{label} tenen una eficiència baixa ({efficiency}%)", - "Data Quality Issue": "Problema de qualitat de les dades", - "{count} content type(s) have high skip rates": "{count} tipus de contingut tenen taxes d'omissió altes", - "Content Diversity": "Diversitat del contingut", - "Single content type - consider diversifying sources": "Un sol tipus de contingut: plantegeu-vos diversificar les fonts", - "Excellent content diversity across multiple source types": "Excel·lent diversitat de contingut entre múltiples tipus de font", - "Optimization Tip": "Consell d'optimització", - "Reduce chunk size to 800-1200 characters for better content granularity": "Reduïu la mida dels fragments a 800-1200 caràcters per a una millor granularitat del contingut", - "Increase chunk size to 1500-2000 characters for better efficiency": "Augmenteu la mida dels fragments a 1500-2000 caràcters per a una millor eficiència", - "Embedding Throughput": "Rendiment de l'embedding", - "{rate} chunks/sec ({time}ms each)": "{rate} fragments/s ({time} ms cadascun)", - "Search Strategy": "Estratègia de cerca", - "Balanced approach combining keyword + semantic search": "Enfocament equilibrat que combina cerca per paraules clau + semàntica", - "AI-powered semantic search - best for conceptual queries": "Cerca semàntica amb IA: ideal per a consultes conceptuals", - "Traditional keyword search - best for exact terms": "Cerca tradicional per paraules clau: ideal per a termes exactes", - "Retrieval Volume": "Volum de recuperació", - "Very low chunk count may miss relevant information": "Un recompte de fragments molt baix pot ometre informació rellevant", - "High chunk count may include noise and slow responses": "Un recompte de fragments alt pot incloure soroll i alentir les respostes", - "Optimal chunk count for balanced retrieval": "Recompte de fragments òptim per a una recuperació equilibrada", - "Content Filtering": "Filtratge del contingut" -} diff --git a/tools/msty_ca/tr_015.json b/tools/msty_ca/tr_015.json deleted file mode 100644 index 130f8dd..0000000 --- a/tools/msty_ca/tr_015.json +++ /dev/null @@ -1,201 +0,0 @@ -{ - "Relaxed filtering - may include loosely related content": "Filtratge relaxat: pot incloure contingut poc relacionat", - "Strict filtering - highly focused results": "Filtratge estricte: resultats molt focalitzats", - "Balanced filtering for relevant content": "Filtratge equilibrat per a contingut rellevant", - "Guided Context": "Context guiat", - "Custom prompt prefix will guide query interpretation": "El prefix de la indicació personalitzat guiarà la interpretació de la consulta", - "Lock Indicator": "Indicador de bloqueig", - "All items can be reprocessed": "Tots els elements es poden tornar a processar", - "{percentage}% of items are locked": "El {percentage}% dels elements estan bloquejats", - "Most items are locked - limited reprocessing capability": "La majoria d'elements estan bloquejats: capacitat de reprocessament limitada", - "Privacy & Security": "Privadesa i seguretat", - "Privacy protection enabled for sensitive data": "Protecció de la privadesa activada per a dades sensibles", - "No PII scrubbing - ensure content is not sensitive": "Sense neteja de PII: assegureu-vos que el contingut no sigui sensible", - "Scale Optimization": "Optimització d'escala", - "Large knowledge base - increase chunk count for better coverage": "Base de coneixement gran: augmenteu el recompte de fragments per a una millor cobertura", - "Small knowledge base - consider reducing chunk count": "Base de coneixement petita: plantegeu-vos reduir el recompte de fragments", - "Performance Profile": "Perfil de rendiment", - "Configuration optimized for fast responses": "Configuració optimitzada per a respostes ràpides", - "Configuration optimized for high-quality results": "Configuració optimitzada per a resultats d'alta qualitat", - "High Lock Rate": "Taxa de bloqueig alta", - "{percentage}% of items are locked and won't be reprocessed": "El {percentage}% dels elements estan bloquejats i no es tornaran a processar", - "Consider unlocking temporarily locked items if they need updates": "Plantegeu-vos desbloquejar els elements bloquejats temporalment si necessiten actualitzacions", - "Over 50% of items are locked. This may significantly reduce the knowledge base's ability to stay updated.": "Més del 50% dels elements estan bloquejats. Això pot reduir significativament la capacitat de la base de coneixement de mantenir-se actualitzada.", - "Lock Status": "Estat del bloqueig", - "Total Items": "Elements totals", - "Temporarily Locked": "Bloquejat temporalment", - "Permanently Locked": "Bloquejat permanentment", - "Lock Status by Content Type": "Estat del bloqueig per tipus de contingut", - "Temp. Locked": "Bloq. temp.", - "Perm. Locked": "Bloq. perm.", - "Lock Status @:insights": "@:insights de l'estat del bloqueig", - "Content @:insights": "@:insights del contingut", - "Composition Optimization Score": "Puntuació d'optimització de la composició", - "Composition @:insights": "@:insights de la composició", - "Performance @:insights": "@:insights de rendiment", - "Processing Phase Details": "Detalls de la fase de processament", - "Total Processing Time": "Temps total de processament", - "Total Locked Items": "Elements bloquejats totals", - "Efficiency": "Eficiència", - "Load Mode Analytics": "Analítiques del mode de càrrega", - "File loading behavior across your Knowledge Stack": "Comportament de càrrega de fitxers a la vostra pila de coneixement", - "Load Mode Distribution": "Distribució del mode de càrrega", - "Special Modes %": "% de modes especials", - "Visual Breakdown": "Desglossament visual", - "No files in this Knowledge Stack": "No hi ha fitxers en aquesta pila de coneixement", - "Load Mode options are only available in the desktop application": "Les opcions del mode de càrrega només estan disponibles a l'aplicació d'escriptori", - "All files are using Static Mode. Enable Dynamic or Sync Mode for files to use the latest content.": "Tots els fitxers fan servir el mode estàtic. Activeu el mode dinàmic o de sincronització perquè els fitxers utilitzin el contingut més recent.", - "Sync Mode Active": "Mode de sincronització actiu", - "Watching {files} • Started {time}": "Es vigilen {files} • Iniciat {time}", - "Fresh": "Nou", - "Live": "En directe", - "High Sync File Count": "Recompte alt de fitxers en sincronització", - "{count} files are in Sync Mode": "{count} fitxers estan en mode de sincronització", - "Consider using Dynamic Mode for less frequently updated files to reduce resource usage": "Plantegeu-vos fer servir el mode dinàmic per als fitxers que s'actualitzen menys sovint per reduir l'ús de recursos", - "Sync Mode Enabled": "Mode de sincronització activat", - "{count} files are automatically updating when changed": "{count} fitxers s'actualitzen automàticament quan canvien", - "High Dynamic Mode Usage": "Ús alt del mode dinàmic", - "{percentage}% of files are using Dynamic Mode": "El {percentage}% dels fitxers fan servir el mode dinàmic", - "Static Mode may be sufficient for files that rarely change": "El mode estàtic pot ser suficient per a fitxers que rarament canvien", - "Dynamic Mode Active": "Mode dinàmic actiu", - "{count} files are loading fresh content on each composition": "{count} fitxers carreguen contingut nou en cada composició", - "Static Mode Only": "Només mode estàtic", - "All files are using cached content from initial indexing": "Tots els fitxers fan servir contingut de la memòria cau de la indexació inicial", - "Enable Dynamic or Sync Mode for frequently updated files to ensure fresh content": "Activeu el mode dinàmic o de sincronització per als fitxers que s'actualitzen sovint per garantir contingut nou", - "Mixed Load Modes": "Modes de càrrega mixtos", - "{percentage}% of files are using special load modes": "El {percentage}% dels fitxers fan servir modes de càrrega especials", - "Compose Settings": "Configuració de la composició", - "@:knowledgeStack.chunksConsole.chunk Overlapping": "Solapament de @:knowledgeStack.chunksConsole.chunk", - "Changing the embedding model will require recomposing the entire Knowledge Stack and even then there is a chance that recomposition will fail.": "Canviar el model d'embedding requerirà tornar a compondre tota la pila de coneixement i, fins i tot llavors, hi ha la possibilitat que la recomposició falli.", - "Learn more about embedding model compatibility": "Més informació sobre la compatibilitat del model d'embedding", - "Select an embedding model": "Seleccioneu un model d'embedding", - "Select chunk overlapping": "Seleccioneu el solapament dels fragments", - "Select chunk size": "Seleccioneu la mida dels fragments", - "Chunking Method": "Mètode de fragmentació", - "Recursive Character": "Caràcter recursiu", - "Sentence": "Frase", - "Choose how documents should be chunked into smaller pieces for better search and retrieval.": "Trieu com s'han de fragmentar els documents en trossos més petits per a una millor cerca i recuperació.", - "Overlapping": "Solapament", - "Choose how much overlap should be between chunks. Higher overlap can improve context but increase token usage.": "Trieu quant solapament hi ha d'haver entre els fragments. Un solapament més alt pot millorar el context però augmenta l'ús de tokens.", - "@:knowledgeStack.chunksConsole.chunk Size": "Mida de @:knowledgeStack.chunksConsole.chunk", - "Set the maximum size of each chunk in characters. Smaller chunks can improve search accuracy but increase token usage.": "Definiu la mida màxima de cada fragment en caràcters. Els fragments més petits poden millorar la precisió de la cerca però augmenten l'ús de tokens.", - "@:knowledgeStack.chunksConsole.chunk Sizes To Ignore": "Mides de @:knowledgeStack.chunksConsole.chunk a ignorar", - "Specify chunk sizes that should be ignored during processing. Useful for excluding very small or very large chunks.": "Especifiqueu les mides de fragments que s'han d'ignorar durant el processament. És útil per excloure fragments molt petits o molt grans.", - "Push Mode": "Mode d'emissió (push)", - "Pull Mode": "Mode de recepció (pull)", - "Knowledge Stack Context": "Context de la pila de coneixement", - "Failed to load Knowledge Stack chunks. Please try again.": "No s'han pogut carregar els fragments de la pila de coneixement. Torneu-ho a provar.", - "Search Settings": "Configuració de la cerca", - "Search Query": "Consulta de cerca", - "Content": "Contingut", - "Full Content": "Contingut complet", - "@:knowledgeStack.chunksConsole.chunk Information": "Informació de @:knowledgeStack.chunksConsole.chunk", - "Knowledge Stack": "Pila de coneixement", - "chunks": "fragments", - "Max @:knowledgeStack.chunksConsole.chunks": "Màxim de @:knowledgeStack.chunksConsole.chunks", - "@:knowledgeStack.chunksConsole.chunk Retrieval Mode": "Mode de recuperació de @:knowledgeStack.chunksConsole.chunk", - "Choose between Push mode where chunks are pre-fetched, or Pull Mode where the model can query Knowledge Stacks directly": "Trieu entre el mode d'emissió (push), on els fragments s'obtenen prèviament, o el mode de recepció (pull), on el model pot consultar les piles de coneixement directament", - "@:knowledgeStack.chunksConsole.chunk Overlap": "Solapament de @:knowledgeStack.chunksConsole.chunk", - "Synthesized Query": "Consulta sintetitzada", - "chunk | chunks": "fragment | fragments", - "View Full Content": "Mostra el contingut complet", - "Full @:knowledgeStack.chunksConsole.chunk Content": "Contingut complet de @:knowledgeStack.chunksConsole.chunk", - "Scrubbed": "Netejat", - "Original": "Original", - "@:knowledgeStack.chunksConsole.chunk ID": "ID de @:knowledgeStack.chunksConsole.chunk", - "PII Status": "Estat de la PII", - "PII Scrubbed": "PII netejada", - "PII Un-scrubbed": "PII sense netejar", - "Original content without @:pii.scrubbing.title": "Contingut original sense @:pii.scrubbing.title", - "Query Analysis": "Anàlisi de la consulta", - "Full Content Context Active": "Context de contingut complet actiu", - "Documents Retrieved": "Documents recuperats", - "Content Context": "Context del contingut", - "Keywords": "Paraules clau", - "Full Doc": "Doc. complet", - "Full Document": "Document complet", - "@:knowledgeStack.chunksConsole.chunks Visualizer": "Visualitzador de @:knowledgeStack.chunksConsole.chunks", - "Visualize how documents are chunked": "Visualitzeu com es fragmenten els documents", - "Open Visualizer": "Obre el visualitzador", - "View Visualizer": "Mostra el visualitzador", - "Available Files": "Fitxers disponibles", - "Loading files...": "S'estan carregant els fitxers...", - "No files found": "No s'ha trobat cap fitxer", - "Select a File": "Selecciona un fitxer", - "Choose a file from the left to visualize its chunks and content": "Trieu un fitxer de l'esquerra per visualitzar-ne els fragments i el contingut", - "MIME Type": "Tipus MIME", - "@:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks", - "Overlaps": "Solapaments", - "Stitched Size": "Mida cosida", - "Show Overlaps": "Mostra els solapaments", - "Hide Overlaps": "Amaga els solapaments", - "Show @:knowledgeStack.chunksConsole.chunks": "Mostra els @:knowledgeStack.chunksConsole.chunks", - "Show Stitched": "Mostra el text cosit", - "Copy Content": "Copia el contingut", - "Stitched Content": "Contingut cosit", - "Un-scrubbed @:knowledgeStack.chunksConsole.chunks": "@:knowledgeStack.chunksConsole.chunks sense netejar", - "Overlaps have been removed for clean text reconstruction": "S'han eliminat els solapaments per a una reconstrucció neta del text", - "@:knowledgeStack.chunksConsole.chunk {number}": "@:knowledgeStack.chunksConsole.chunk {number}", - "Overlap Previous": "Solapament anterior", - "Overlap Next": "Solapament següent", - "This text overlaps with the previous chunk": "Aquest text se solapa amb el fragment anterior", - "This text overlaps with the next chunk": "Aquest text se solapa amb el fragment següent", - "Character positions in file": "Posicions dels caràcters al fitxer", - "Core content without overlaps": "Contingut principal sense solapaments", - "{count} chunks": "{count} fragments", - "Show Original": "Mostra l'original", - "Show Scrubbed": "Mostra el netejat", - "Show Scrubbed Only": "Mostra només el netejat", - "Show All @:knowledgeStack.chunksConsole.chunks": "Mostra tots els @:knowledgeStack.chunksConsole.chunks", - "Per Page": "Per pàgina", - "{start}-{end} of {total} chunks": "{start}-{end} de {total} fragments", - "Loading chunks...": "S'estan carregant els fragments...", - "No items found": "No s'ha trobat cap element", - "Select an Item": "Selecciona un element", - "Choose a file or note from the left to visualize its chunks and content": "Trieu un fitxer o una nota de l'esquerra per visualitzar-ne els fragments i el contingut", - "Open Console": "Obre la consola", - "{count} @:knowledgeStack.chunksConsole.chunk Selected": "{count} @:knowledgeStack.chunksConsole.chunk seleccionats", - "Delete Selected": "Suprimeix els seleccionats", - "Clear Selection": "Esborra la selecció", - "Confirm Delete": "Confirma la supressió", - "Are you sure you want to delete {count} selected chunks? This action cannot be undone.": "Segur que voleu suprimir {count} fragments seleccionats? Aquesta acció no es pot desfer.", - "@:knowledgeStack.chunksConsole.chunks Deleted": "@:knowledgeStack.chunksConsole.chunks suprimits", - "Successfully deleted {count} chunks": "S'han suprimit {count} fragments correctament", - "{count} @:knowledgeStack.chunksConsole.chunk deleted successfully": "S'ha suprimit {count} @:knowledgeStack.chunksConsole.chunk correctament", - "Delete Failed": "La supressió ha fallat", - "Force Compose": "Força la composició", - "Overall Progress": "Progrés general", - "{count} items exported": "S'han exportat {count} elements", - "Items": "Elements", - "Export completed successfully!": "L'exportació s'ha completat correctament!", - "Saved to: {path}": "Desat a: {path}", - "Cancel All": "Cancel·la-ho tot", - "Done": "Fet", - "Exporting": "S'està exportant", - "Folder": "Carpeta", - "Export failed": "L'exportació ha fallat", - "Import failed": "La importació ha fallat", - "Your changes to the Knowledge Stack have been saved. You will need to recompose it to apply the changes.": "S'han desat els vostres canvis a la pila de coneixement. Caldrà que la torneu a compondre per aplicar els canvis.", - "Knowledge stack saved and processing started": "S'ha desat la pila de coneixement i ha començat el processament", - "Cannot force compose: Knowledge stack must be saved first": "No es pot forçar la composició: primer cal desar la pila de coneixement", - "Failed to force compose Knowledge Stack": "No s'ha pogut forçar la composició de la pila de coneixement", - "Force compose started - all items will be reprocessed": "S'ha iniciat la composició forçada: es tornaran a processar tots els elements", - "Failed to update query settings": "No s'ha pogut actualitzar la configuració de la consulta", - "Query settings updated": "S'ha actualitzat la configuració de la consulta", - "just now": "ara mateix", - "{minutes}m ago": "fa {minutes} min", - "Failed to select item": "No s'ha pogut seleccionar l'element", - "Failed to select folder": "No s'ha pogut seleccionar la carpeta", - "Knowledge Stack {title} processing completed": "El processament de la pila de coneixement {title} s'ha completat", - "Knowledge Stack {title} processing failed": "El processament de la pila de coneixement {title} ha fallat", - "Nothing to compose for Knowledge Stack {title}": "No hi ha res a compondre per a la pila de coneixement {title}", - "Error composing Knowledge Stack {title}": "Error en compondre la pila de coneixement {title}", - "Importing from URL is only available in the desktop application": "La importació des d'un URL només està disponible a l'aplicació d'escriptori", - "{count} @:knowledgeStack.title deleted!": "S'han suprimit {count} @:knowledgeStack.title!", - "Failed to create the @:knowledgeStack.title": "No s'ha pogut crear la @:knowledgeStack.title", - "Failed to save edits to the @:knowledgeStack.title": "No s'han pogut desar les edicions a la @:knowledgeStack.title", - "Folder '{name}' added to the Knowledge Stack": "S'ha afegit la carpeta «{name}» a la pila de coneixement", - "Folder '{name}' locked temporarily": "S'ha bloquejat la carpeta «{name}» temporalment", - "Folder '{name}' locked permanently": "S'ha bloquejat la carpeta «{name}» permanentment", - "Failed to lock the folder": "No s'ha pogut bloquejar la carpeta" -} diff --git a/tools/msty_ca/tr_016.json b/tools/msty_ca/tr_016.json deleted file mode 100644 index 0714e50..0000000 --- a/tools/msty_ca/tr_016.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "Top P": "Top P", - "Top K": "Top K", - "Min P": "Min P", - "Mirostat": "Mirostat", - "Mirostat 1.0": "Mirostat 1.0", - "Mirostat 2.0": "Mirostat 2.0", - "Mirostat Tau": "Mirostat Tau", - "Mirostat Eta": "Mirostat Eta", - "custom_param": "custom_param", - "Shiftcuts": "Shiftcuts", - "Galaxy Far Away": "Galaxy Far Away", - "Everything Everywhere": "Everything Everywhere", - "Home Alone": "Home Alone", - "Lord of the Loops": "Lord of the Loops", - "Vibe CLI Proxy": "Vibe CLI Proxy", - "GPU": "GPU", - "MLX": "MLX", - "LLaMA.cpp": "LLaMA.cpp", - "Prompts": "Indicacions", - "Folder '{name}' unlocked": "S'ha desbloquejat la carpeta «{name}»", - "Failed to unlock the folder": "No s'ha pogut desbloquejar la carpeta", - "Path: {path}": "Camí: {path}", - "Name: {name}": "Nom: {name}", - "Unknown": "Desconegut", - "Loading PII analytics...": "S'estan carregant les analítiques de PII...", - "All items are unlocked and can be reprocessed when needed.": "Tots els elements estan desbloquejats i es poden tornar a processar quan calgui.", - "Abort Processing": "Interromp el processament", - "Processing Failed": "El processament ha fallat", - "Error Message": "Missatge d'error", - "Occurred at": "S'ha produït a", - "Failed File": "Fitxer fallit", - "Error Summary": "Resum de l'error", - "Technical Details": "Detalls tècnics", - "Stack Trace": "Traça de la pila", - "Copy Details": "Copia els detalls", - "Error details copied to clipboard": "S'han copiat els detalls de l'error al porta-retalls", - "Click to see error details": "Feu clic per veure els detalls de l'error", - "File is null": "El fitxer és nul", - "Error checking if path is directory": "Error en comprovar si el camí és un directori", - "Error processing folder": "Error en processar la carpeta", - "Failed to lock folder temporarily": "No s'ha pogut bloquejar la carpeta temporalment", - "Failed to lock folder permanently": "No s'ha pogut bloquejar la carpeta permanentment", - "Failed to unlock folder": "No s'ha pogut desbloquejar la carpeta", - "Status: Completed": "Estat: completat", - "Status: Processing": "Estat: en processament", - "Status: Pending": "Estat: pendent", - "Status: Draft": "Estat: esborrany", - "Status: Needs Reprocessing": "Estat: cal tornar a processar", - "Status: Error": "Estat: error", - "Status: Temporarily Locked": "Estat: bloquejat temporalment", - "Status: Permanently Locked": "Estat: bloquejat permanentment", - "Status: Aborted": "Estat: interromput", - "Status: Unknown": "Estat: desconegut", - "Unlock Aurum Features": "Desbloqueja les funcions d'Aurum", - "Upgrade to Aurum license for the most powerful AI features and advanced capabilities": "Passeu a la llicència Aurum per gaudir de les funcions d'IA més potents i de capacitats avançades", - "Everything you need": "Tot el que necessiteu", - "View Pricing": "Mostra els preus", - "Feature Matrix": "Matriu de funcions", - "Activate License": "Activa la llicència", - "Aurum": "Aurum", - "Upload image…": "Penja una imatge…", - "Only image files are supported.": "Només s'admeten fitxers d'imatge.", - "Image must be 1MB or smaller.": "La imatge ha de fer 1 MB o menys.", - "Profile image updated.": "S'ha actualitzat la imatge de perfil.", - "Failed to update image. Please try again.": "No s'ha pogut actualitzar la imatge. Torneu-ho a provar.", - "Click to change profile image": "Feu clic per canviar la imatge de perfil", - "Lost & Found": "Objectes perduts", - "Find and recover lost workspaces from your computer. Only workspace databases are scanned and discovered, not attachments.": "Trobeu i recupereu espais de treball perduts del vostre ordinador. Només s'escanegen i es descobreixen les bases de dades dels espais de treball, no pas les adjuncions.", - "Lost & Found is experimental. Always keep backups of your workspace data before attempting recovery.": "Els objectes perduts són una funció experimental. Conserveu sempre còpies de seguretat de les dades del vostre espai de treball abans d'intentar una recuperació.", - "Scan for Lost Workspaces": "Cerca espais de treball perduts", - "Scan App Data": "Escaneja les dades de l'aplicació", - "Scan Folder…": "Escaneja la carpeta…", - "Workspace": "Espai de treball", - "Last Modified": "Darrera modificació", - "Actions": "Accions", - "Linked": "Enllaçat", - "Found": "Trobat", - "Restore current workspace": "Restaura l'espai de treball actual", - "Import As New Workspace": "Importa com a espai de treball nou", - "Restore current workspace?": "Voleu restaurar l'espai de treball actual?", - "This will replace the data of the currently active workspace with the data from the selected recovered file. This cannot be undone.": "Això reemplaçarà les dades de l'espai de treball actiu actual amb les dades del fitxer recuperat seleccionat. Això no es pot desfer.", - "Failed to import workspace": "No s'ha pogut importar l'espai de treball", - "Workspace imported": "S'ha importat l'espai de treball", - "Recovered workspace has been imported. Switch to it from the workspace tray if needed.": "S'ha importat l'espai de treball recuperat. Canvieu-hi des de la safata d'espais de treball si cal.", - "Failed to restore workspace": "No s'ha pogut restaurar l'espai de treball", - "Workspace restored": "S'ha restaurat l'espai de treball", - "Current workspace has been restored from the recovered file.": "L'espai de treball actual s'ha restaurat des del fitxer recuperat.", - "Failed to import recovered workspace": "No s'ha pogut importar l'espai de treball recuperat", - "Failed to import recovered workspace (unexpected)": "No s'ha pogut importar l'espai de treball recuperat (inesperat)", - "Failed to restore workspace from recovered file": "No s'ha pogut restaurar l'espai de treball des del fitxer recuperat", - "Failed to restore workspace from recovered file (unexpected)": "No s'ha pogut restaurar l'espai de treball des del fitxer recuperat (inesperat)", - "Quick filter...": "Filtre ràpid...", - "Toggle filter": "Activa/desactiva el filtre", - "Toggle sidebar": "Mostra/amaga la barra lateral", - "Adjust": "Ajusta", - "{item} is experimental and under active development. Please report any issues to the team.": "{item} és experimental i s'està desenvolupant activament. Comuniqueu qualsevol problema a l'equip.", - "File Type": "Tipus de fitxer", - "Attachment Type": "Tipus d'adjunció", - "Browse Existing Attachments": "Explora les adjuncions existents", - "View Associations": "Mostra les associacions", - "Delete Attachment | Delete Attachments": "Suprimeix l'adjunció | Suprimeix les adjuncions", - "Are you sure you want to delete the attachment? All the associations to the attachment will also be removed. This action cannot be undone. | Are you sure you want to delete the attachments? All the associations to the attachments will also be removed. This action cannot be undone.": "Segur que voleu suprimir l'adjunció? També se n'eliminaran totes les associacions. Aquesta acció no es pot desfer. | Segur que voleu suprimir les adjuncions? També se n'eliminaran totes les associacions. Aquesta acció no es pot desfer.", - "Successfully deleted the attachment | Successfully deleted the attachments": "S'ha suprimit l'adjunció correctament | S'han suprimit les adjuncions correctament", - "Failed to delete the attachment | Failed to delete the attachments": "No s'ha pogut suprimir l'adjunció | No s'han pogut suprimir les adjuncions", - "Search by Name": "Cerca per nom", - "Filter by Attachment Type": "Filtra per tipus d'adjunció", - "Attachments Manager": "Gestor d'adjuncions", - "No Attachments Found": "No s'ha trobat cap adjunció", - "You have no attachments available.": "No teniu cap adjunció disponible.", - "Associations for {attachmentName}": "Associacions de {attachmentName}", - "Search by Association Name": "Cerca pel nom de l'associació", - "Filter by Associated Entity": "Filtra per entitat associada", - "No Associations Found": "No s'ha trobat cap associació", - "You have not used this attachment anywhere yet.": "Encara no heu fet servir aquesta adjunció enlloc.", - "Association Name": "Nom de l'associació", - "Associated Entity": "Entitat associada", - "Jump to {entity}": "Vés a {entity}", - "Detach Association": "Desadjunta l'associació", - "Are you sure you want to detach the association from the {associationEntity}? This action cannot be undone.": "Segur que voleu desadjuntar l'associació de {associationEntity}? Aquesta acció no es pot desfer.", - "Successfully detached the association": "S'ha desadjuntat l'associació correctament", - "Failed to detach the association": "No s'ha pogut desadjuntar l'associació", - "AI Prompt": "Indicació d'IA", - "Describe what the icon represents...": "Descriviu què representa la icona...", - "Find Icon": "Cerca una icona", - "Finding...": "S'està cercant..." -}