libre-webui 0.24.0 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -15
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +9 -0
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.js +2 -0
- package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
- package/backend/dist/persistence/postgresPersonalAutomationsMigration.d.ts +8 -0
- package/backend/dist/persistence/postgresPersonalAutomationsMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresPersonalAutomationsMigration.js +98 -0
- package/backend/dist/persistence/postgresPersonalAutomationsMigration.js.map +1 -0
- package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/postgresResourceRepositories.js +274 -0
- package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
- package/backend/dist/persistence/resourceTypes.d.ts +83 -2
- package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
- package/backend/dist/persistence/resourceTypes.js.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.d.ts +1 -0
- package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.js +181 -0
- package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
- package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteResourceRepositories.js +233 -0
- package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.js +41 -0
- package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
- package/backend/dist/platform/jobs/domainJobContracts.d.ts +3 -0
- package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobContracts.js +3 -0
- package/backend/dist/platform/jobs/domainJobContracts.js.map +1 -1
- package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobHandlers.js +101 -1
- package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
- package/backend/dist/routes/automations.d.ts +3 -0
- package/backend/dist/routes/automations.d.ts.map +1 -0
- package/backend/dist/routes/automations.js +232 -0
- package/backend/dist/routes/automations.js.map +1 -0
- package/backend/dist/routes/calendar.d.ts +3 -0
- package/backend/dist/routes/calendar.d.ts.map +1 -0
- package/backend/dist/routes/calendar.js +206 -0
- package/backend/dist/routes/calendar.js.map +1 -0
- package/backend/dist/routes/chat.d.ts.map +1 -1
- package/backend/dist/routes/chat.js +99 -7
- package/backend/dist/routes/chat.js.map +1 -1
- package/backend/dist/routes/ollama.d.ts.map +1 -1
- package/backend/dist/routes/ollama.js +4 -1
- package/backend/dist/routes/ollama.js.map +1 -1
- package/backend/dist/routes/search.d.ts.map +1 -1
- package/backend/dist/routes/search.js +5 -3
- package/backend/dist/routes/search.js.map +1 -1
- package/backend/dist/services/automationSchedulerService.d.ts +28 -0
- package/backend/dist/services/automationSchedulerService.d.ts.map +1 -0
- package/backend/dist/services/automationSchedulerService.js +191 -0
- package/backend/dist/services/automationSchedulerService.js.map +1 -0
- package/backend/dist/services/automationService.d.ts +53 -0
- package/backend/dist/services/automationService.d.ts.map +1 -0
- package/backend/dist/services/automationService.js +224 -0
- package/backend/dist/services/automationService.js.map +1 -0
- package/backend/dist/services/chatGenerationService.d.ts.map +1 -1
- package/backend/dist/services/chatGenerationService.js +7 -1
- package/backend/dist/services/chatGenerationService.js.map +1 -1
- package/backend/dist/services/chatService.d.ts +9 -1
- package/backend/dist/services/chatService.d.ts.map +1 -1
- package/backend/dist/services/chatService.js +91 -13
- package/backend/dist/services/chatService.js.map +1 -1
- package/backend/dist/services/contextCompactionService.d.ts +11 -6
- package/backend/dist/services/contextCompactionService.d.ts.map +1 -1
- package/backend/dist/services/contextCompactionService.js +127 -27
- package/backend/dist/services/contextCompactionService.js.map +1 -1
- package/backend/dist/services/durableChatGenerationService.d.ts.map +1 -1
- package/backend/dist/services/durableChatGenerationService.js +15 -3
- package/backend/dist/services/durableChatGenerationService.js.map +1 -1
- package/backend/dist/services/ollamaService.d.ts.map +1 -1
- package/backend/dist/services/ollamaService.js +9 -2
- package/backend/dist/services/ollamaService.js.map +1 -1
- package/backend/dist/services/pluginService.d.ts +10 -0
- package/backend/dist/services/pluginService.d.ts.map +1 -1
- package/backend/dist/services/pluginService.js +42 -7
- package/backend/dist/services/pluginService.js.map +1 -1
- package/backend/dist/services/preferencesService.d.ts.map +1 -1
- package/backend/dist/services/preferencesService.js +3 -0
- package/backend/dist/services/preferencesService.js.map +1 -1
- package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
- package/backend/dist/services/titleGenerationService.js +5 -1
- package/backend/dist/services/titleGenerationService.js.map +1 -1
- package/backend/dist/services/webSearchPlanService.d.ts +18 -0
- package/backend/dist/services/webSearchPlanService.d.ts.map +1 -0
- package/backend/dist/services/webSearchPlanService.js +160 -0
- package/backend/dist/services/webSearchPlanService.js.map +1 -0
- package/backend/dist/services/webSearchService.d.ts +9 -3
- package/backend/dist/services/webSearchService.d.ts.map +1 -1
- package/backend/dist/services/webSearchService.js +8 -2
- package/backend/dist/services/webSearchService.js.map +1 -1
- package/backend/dist/storage.d.ts +7 -1
- package/backend/dist/storage.d.ts.map +1 -1
- package/backend/dist/storage.js +65 -1
- package/backend/dist/storage.js.map +1 -1
- package/backend/dist/types/index.d.ts +79 -0
- package/backend/dist/types/index.d.ts.map +1 -1
- package/backend/dist/types/index.js.map +1 -1
- package/backend/dist/utils/automationSchedule.d.ts +26 -0
- package/backend/dist/utils/automationSchedule.d.ts.map +1 -0
- package/backend/dist/utils/automationSchedule.js +231 -0
- package/backend/dist/utils/automationSchedule.js.map +1 -0
- package/backend/dist/utils/chatContext.d.ts +7 -0
- package/backend/dist/utils/chatContext.d.ts.map +1 -1
- package/backend/dist/utils/chatContext.js +13 -2
- package/backend/dist/utils/chatContext.js.map +1 -1
- package/backend/dist/utils/openAIResponsesAdapter.d.ts.map +1 -1
- package/backend/dist/utils/openAIResponsesAdapter.js +3 -1
- package/backend/dist/utils/openAIResponsesAdapter.js.map +1 -1
- package/backend/dist/utils/pluginChatAdapter.d.ts +1 -0
- package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
- package/backend/dist/utils/pluginChatAdapter.js +82 -19
- package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
- package/backend/dist/utils/pluginModelCatalog.d.ts +20 -0
- package/backend/dist/utils/pluginModelCatalog.d.ts.map +1 -1
- package/backend/dist/utils/pluginModelCatalog.js +101 -9
- package/backend/dist/utils/pluginModelCatalog.js.map +1 -1
- package/backend/dist/utils/resourceLimits.d.ts +7 -0
- package/backend/dist/utils/resourceLimits.d.ts.map +1 -1
- package/backend/dist/utils/resourceLimits.js +7 -0
- package/backend/dist/utils/resourceLimits.js.map +1 -1
- package/backend/dist/utils/thinkingOptions.d.ts +23 -3
- package/backend/dist/utils/thinkingOptions.d.ts.map +1 -1
- package/backend/dist/utils/thinkingOptions.js +35 -9
- package/backend/dist/utils/thinkingOptions.js.map +1 -1
- package/backend/dist/websocketServer.d.ts.map +1 -1
- package/backend/dist/websocketServer.js +9 -3
- package/backend/dist/websocketServer.js.map +1 -1
- package/backend/package.json +1 -1
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/assets/index-6o-Hc2wS.js +41 -0
- package/frontend/dist/assets/index-D-pM957b.css +1 -0
- package/frontend/dist/index.html +12 -12
- package/frontend/dist/js/ArtifactContainer-CpUi6ekF.js +1 -0
- package/frontend/dist/js/{ArtifactDemoPage-TONeQvof.js → ArtifactDemoPage-BeNs3gHp.js} +1 -1
- package/frontend/dist/js/{ArtifactSandboxFrame-CV2XXu_t.js → ArtifactSandboxFrame-qsj_Y3LV.js} +2 -2
- package/frontend/dist/js/ArtifactSlideOutPanel-CSFRluWA.js +1 -0
- package/frontend/dist/js/AutomationsPage-KUeWoZNv.js +1 -0
- package/frontend/dist/js/CalendarPage-D9I972w8.js +1 -0
- package/frontend/dist/js/ChatPage-CmBx4oAL.js +16 -0
- package/frontend/dist/js/{FirstTimeSetup-smhj0X6o.js → FirstTimeSetup-Df0YJni3.js} +1 -1
- package/frontend/dist/js/GalleryPage-bLCrdJN_.js +1 -0
- package/frontend/dist/js/HomePage-Uc6PEg-U.js +1 -0
- package/frontend/dist/js/{LibreClawPage-CRKei1MM.js → LibreClawPage-CG63DHg1.js} +1 -1
- package/frontend/dist/js/{ModelManagerModals-D0amaOnl.js → ModelManagerModals-DcLGYN3l.js} +1 -1
- package/frontend/dist/js/ModelSelector-yxJC64rM.js +1 -0
- package/frontend/dist/js/ModelsPage-1R_TxgmJ.js +2 -0
- package/frontend/dist/js/NotesPage-L65j5HoW.js +1 -0
- package/frontend/dist/js/PersonasPage-CKeBpHIH.js +13 -0
- package/frontend/dist/js/PluginUsagePage-BX1SKMbW.js +1 -0
- package/frontend/dist/js/{RichMessageContent-Bxi_u0gC.js → RichMessageContent-DiySVYGB.js} +1 -1
- package/frontend/dist/js/SettingsModal-68SG1uZ2.js +1 -0
- package/frontend/dist/js/SystemPage-CytpZiQV.js +1 -0
- package/frontend/dist/js/UserManagementPage-BzJBvZiS.js +1 -0
- package/frontend/dist/js/WorkPage-C8gr0QJe.js +6 -0
- package/frontend/dist/js/api-BDtqBtqw.js +14 -0
- package/frontend/dist/js/{appStore-CJtomipz.js → appStore-0JnCUlEq.js} +2 -2
- package/frontend/dist/js/ar-CSpi37Gr.js +2 -0
- package/frontend/dist/js/{authStore-BckFDL70.js → authStore-DbMdvNgJ.js} +3 -3
- package/frontend/dist/js/{babel-D24oDI9y.js → babel-BsYoxD-7.js} +1 -1
- package/frontend/dist/js/bn-CyH1BeDD.js +2 -0
- package/frontend/dist/js/calendarDates-Co3o_05Y.js +1 -0
- package/frontend/dist/js/chatStore-CHQ2uINS.js +3 -0
- package/frontend/dist/js/{config-CNVNpf_q.js → config-DSOYQ9a3.js} +1 -1
- package/frontend/dist/js/cs-Cv2NfRK5.js +2 -0
- package/frontend/dist/js/da-D6D6IvPK.js +2 -0
- package/frontend/dist/js/de-BNoJJTrT.js +2 -0
- package/frontend/dist/js/es-kzo9C7q_.js +2 -0
- package/frontend/dist/js/{estree-D1TYSBcf.js → estree-BcnBcOAx.js} +7 -7
- package/frontend/dist/js/fr-CjHYvJRp.js +2 -0
- package/frontend/dist/js/hi-BU98AdCQ.js +2 -0
- package/frontend/dist/js/{html-Dmddj0zf.js → html-DkY55Jys.js} +10 -10
- package/frontend/dist/js/id-CpdedejX.js +2 -0
- package/frontend/dist/js/is-Cp5dDWBH.js +2 -0
- package/frontend/dist/js/it-CuH_cK4U.js +2 -0
- package/frontend/dist/js/ja-BWXXXiHn.js +2 -0
- package/frontend/dist/js/ko-DQgv2M1t.js +2 -0
- package/frontend/dist/js/{markdown-Bl_LsHEk.js → markdown-IZSI9DXw.js} +6 -6
- package/frontend/dist/js/{messageCodeStyles-CgKxn4tN.js → messageCodeStyles-BFNR9Wv6.js} +2 -2
- package/frontend/dist/js/ms-DCcRoIcX.js +2 -0
- package/frontend/dist/js/nl-CbKR1_EU.js +2 -0
- package/frontend/dist/js/pl-CRyJZccn.js +2 -0
- package/frontend/dist/js/{postcss-Bx9CTcIc.js → postcss-BJ0okz7n.js} +1 -1
- package/frontend/dist/js/pt-BXYmHFGH.js +2 -0
- package/frontend/dist/js/{router-vendor-CbPDks39.js → router-vendor-DGFGM3EP.js} +1 -1
- package/frontend/dist/js/ru-M9SyZG4b.js +2 -0
- package/frontend/dist/js/{standalone-BWau8hEE.js → standalone-Csw3jfJ_.js} +5 -5
- package/frontend/dist/js/sv-DJ486LTU.js +2 -0
- package/frontend/dist/js/th-Ch7gKtZv.js +2 -0
- package/frontend/dist/js/tr-ClehWhSC.js +2 -0
- package/frontend/dist/js/{typescript-DxGn3Yn-.js → typescript-CnF4UVx7.js} +2 -2
- package/frontend/dist/js/{ui-jlx9WA5A.js → ui-CC-K19wO.js} +2 -2
- package/frontend/dist/js/ui-vendor-B1UgO3vd.js +177 -0
- package/frontend/dist/js/uk-BqAd5zHF.js +2 -0
- package/frontend/dist/js/{vi-BgRaIrQC.js → vi-D9gjlDVB.js} +2 -2
- package/frontend/dist/js/{workApi-DWRpZ_cq.js → workApi-C3uy9EDT.js} +3 -3
- package/frontend/dist/js/{yaml-DioTxVLA.js → yaml-DzT5hBSH.js} +5 -5
- package/frontend/dist/js/zh-DKTyHkiR.js +2 -0
- package/package.json +2 -2
- package/frontend/dist/assets/index-BlTbxYPP.js +0 -33
- package/frontend/dist/assets/index-CbiWSGOj.css +0 -1
- package/frontend/dist/js/ArtifactContainer-C-n1vPsA.js +0 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-2exw7YqL.js +0 -1
- package/frontend/dist/js/ChatPage-wnyG_TyC.js +0 -23
- package/frontend/dist/js/GalleryPage-BZfeWlBg.js +0 -1
- package/frontend/dist/js/HomePage-gf4GgI6z.js +0 -1
- package/frontend/dist/js/ModelSelector-C5Tn6y0p.js +0 -1
- package/frontend/dist/js/ModelsPage-Rbags4Xq.js +0 -2
- package/frontend/dist/js/NotesPage-9NR9HZZ8.js +0 -1
- package/frontend/dist/js/PersonasPage-DYP67Qiy.js +0 -13
- package/frontend/dist/js/PluginUsagePage-QtCgymRu.js +0 -1
- package/frontend/dist/js/SettingsModal-B4RelkLP.js +0 -1
- package/frontend/dist/js/SystemPage-xFSTYdBS.js +0 -1
- package/frontend/dist/js/UserManagementPage-Cp430WCP.js +0 -1
- package/frontend/dist/js/WorkPage-DFES41Qm.js +0 -6
- package/frontend/dist/js/api-DUUxxx_B.js +0 -14
- package/frontend/dist/js/ar-DMH3qbt6.js +0 -2
- package/frontend/dist/js/bn-CGDX8khx.js +0 -2
- package/frontend/dist/js/chatStore-DK-_wd-j.js +0 -3
- package/frontend/dist/js/cs-CJLgUk3m.js +0 -2
- package/frontend/dist/js/da-DnZMnCVM.js +0 -2
- package/frontend/dist/js/de-CWpguVQ5.js +0 -2
- package/frontend/dist/js/es-DVU1vjm0.js +0 -2
- package/frontend/dist/js/fr-pWnSnypD.js +0 -2
- package/frontend/dist/js/hi-B6xDfxA5.js +0 -2
- package/frontend/dist/js/id-BThSTUAG.js +0 -2
- package/frontend/dist/js/is-BOohDFie.js +0 -2
- package/frontend/dist/js/it-BdRArcCC.js +0 -2
- package/frontend/dist/js/ja-5Cq35sMr.js +0 -2
- package/frontend/dist/js/ko-BlzNRtpQ.js +0 -2
- package/frontend/dist/js/ms-CtGeurkZ.js +0 -2
- package/frontend/dist/js/nl-MKPHGjVF.js +0 -2
- package/frontend/dist/js/pl-BwBrqCey.js +0 -2
- package/frontend/dist/js/pt-CKzoHWBB.js +0 -2
- package/frontend/dist/js/ru-BQC4jh0Y.js +0 -2
- package/frontend/dist/js/sv-Cm0qXxzM.js +0 -2
- package/frontend/dist/js/th-DUPbiRI2.js +0 -2
- package/frontend/dist/js/tr-AsFu_Br5.js +0 -2
- package/frontend/dist/js/ui-vendor-54SgntkX.js +0 -177
- package/frontend/dist/js/uk-DrMMOZ17.js +0 -2
- package/frontend/dist/js/zh-B4rcgcAy.js +0 -2
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e={common:{loading:`Cargando...`,save:`Guardar`,saving:`Guardando...`,cancel:`Cancelar`,delete:`Eliminar`,edit:`Editar`,close:`Cerrar`,back:`Atrás`,next:`Siguiente`,confirm:`Confirmar`,error:`Error`,success:`Éxito`,warning:`Advertencia`,or:`o`,optional:`opcional`,enabled:`Habilitado`,disabled:`Deshabilitado`,on:`Activado`,off:`Desactivado`,yes:`Sí`,no:`No`,search:`Buscar`,noResults:`No se encontraron resultados`,retry:`Reintentar`,refresh:`Actualizar`,download:`Descargar`,upload:`Subir`,export:`Exportar`,import:`Importar`,reset:`Restablecer`,apply:`Aplicar`,clear:`Limpiar`,all:`Todos`,none:`Ninguno`,default:`Predeterminado`,custom:`Personalizado`,remove:`Quitar`,home:`Inicio`,more:`Más`},brand:{name:`Libre WebUI`,shortName:`Libre`},auth:{login:{title:`Bienvenido de nuevo`,subtitle:`Inicia sesión en tu cuenta para continuar`,username:`Nombre de usuario`,usernamePlaceholder:`Ingresa tu nombre de usuario`,password:`Contraseña`,passwordPlaceholder:`Ingresa tu contraseña`,signIn:`Iniciar sesión`,signingIn:`Iniciando sesión...`,noAccount:`¿No tienes una cuenta?`,signUpHere:`Regístrate aquí`,loginSuccess:`¡Inicio de sesión exitoso!`,loginFailed:`Error de inicio de sesión`,checkCredentials:`Error de inicio de sesión. Por favor verifica tus credenciales.`,approvalPending:`Tu cuenta está esperando la aprobación del administrador.`,enterBoth:`Por favor ingresa usuario y contraseña`,githubSuccess:`¡Inicio de sesión con GitHub exitoso!`,githubFailed:`Autenticación de GitHub fallida`,githubVerifyFailed:`Error al verificar autenticación de GitHub`,verificationFailed:`La verificación de seguridad falló. Actualiza la página e inténtalo de nuevo.`},signup:{title:`Crear cuenta`,subtitle:`Regístrate para una nueva cuenta`,username:`Nombre de usuario`,usernamePlaceholder:`Elige un nombre de usuario`,email:`Correo electrónico`,emailPlaceholder:`tu@correo.com`,password:`Contraseña`,passwordPlaceholder:`Elige una contraseña`,confirmPassword:`Confirmar contraseña`,confirmPasswordPlaceholder:`Confirma tu contraseña`,createAccount:`Crear cuenta`,creatingAccount:`Creando cuenta...`,hasAccount:`¿Ya tienes una cuenta?`,signInHere:`Inicia sesión aquí`,signupSuccess:`¡Cuenta creada exitosamente!`,approvalPending:`Registro recibido. Un administrador debe aprobar tu cuenta.`,awaitingApproval:`Esperando aprobación`,awaitingApprovalDescription:`Tu cuenta ha sido creada, pero un administrador debe activarla antes de que puedas iniciar sesión.`,backToSignIn:`Volver a iniciar sesión`,signupFailed:`Error en el registro`,tryAgain:`Error en el registro. Por favor intenta de nuevo.`,usernameRequired:`Nombre de usuario y contraseña son obligatorios`,passwordMismatch:`Las contraseñas no coinciden`,passwordTooShort:`La contraseña debe tener al menos 6 caracteres`},logout:{button:`Cerrar sesión`,success:`Sesión cerrada exitosamente`},oauth:{continueWith:`Continuar con {{provider}}`,connectingTo:`Conectando a {{provider}}...`,github:`GitHub`,huggingFace:`Hugging Face`},checkingAuth:`Verificando autenticación...`,welcome:`Bienvenido`,noEmail:`Sin correo electrónico`,role:`Rol`,id:`ID`,userId:`ID de usuario`,signInDescription:`Inicia sesión con tu cuenta de GitHub para continuar`,signInWithGitHub:`Iniciar sesión con GitHub`,jwtActive:`Autenticación JWT activa`,jwtDescription:`Autenticación basada en JWT con GitHub OAuth`,github:`GitHub`,provider:`Proveedor`,tagline:`Tu pila de IA debería responder a ti.`,selfHosted:`Autohospedado · Apache 2.0`,highlights:{local:{title:`Primero local`,body:`Tus conversaciones y archivos permanecen en la máquina donde ejecutas esto.`},providers:{title:`Cualquier proveedor`,body:`Modelos locales a través de Ollama, además de los proveedores remotos que elijas añadir.`},work:{title:`Trabajo aislado`,body:`Dale a un modelo un espacio de trabajo aislado con archivos, una terminal y una vista previa.`}},oidc:{defaultProviderName:`Inicio de sesión único`}},setup:{welcome:{title:`Bienvenido a Libre WebUI`,subtitle:`Comencemos`,description:`Configura tu instancia de Libre WebUI en solo unos pasos`,createAdmin:`Crear cuenta de administrador`,features:{secure:{title:`Seguro y privado`,description:`Tus conversaciones permanecen en tu dispositivo`},fast:{title:`Rápido y responsivo`,description:`Optimizado para velocidad y rendimiento`},openSource:{title:`Código abierto`,description:`Software libre y de código abierto`}}},admin:{title:`Crear cuenta de administrador`,subtitle:`Configuración del administrador`,description:`Crea la primera cuenta de administrador para tu instancia de Libre WebUI`,usernamePlaceholder:`Ingresa nombre de usuario admin`,passwordPlaceholder:`Ingresa contraseña (mín. 6 caracteres)`,confirmPlaceholder:`Confirma tu contraseña`,creating:`Creando...`,createAdmin:`Crear admin`,success:`¡Cuenta de administrador creada exitosamente!`,failed:`Error al crear cuenta de administrador`,approvalUnexpected:`El administrador inicial no pudo ser activado. Por favor, inténtalo de nuevo.`,fillAllFields:`Por favor completa todos los campos`,note:`Esta será la cuenta de administrador principal para tu instancia de Libre WebUI`},encryptionKey:{title:`Guarda tu clave de cifrado`,subtitle:`Importante: Guarda esta clave`,description:`Esta clave de cifrado protege tus datos sensibles. Guárdala de forma segura - la necesitarás si alguna vez necesitas restaurar tu base de datos.`,warning:`Advertencia`,warningText:`Si pierdes esta clave y necesitas restaurar tu base de datos, tus datos cifrados (claves API, preferencias) serán irrecuperables.`,label:`Tu clave de cifrado`,loading:`Cargando...`,copyToClipboard:`Copiar al portapapeles`,copied:`¡Clave de cifrado copiada al portapapeles!`,copyFailed:`Error al copiar la clave al portapapeles`,envNote:`Esta clave también está guardada en tu archivo backend/.env como ENCRYPTION_KEY`,acknowledgment:`He guardado mi clave de cifrado en un lugar seguro y entiendo que perderla puede resultar en pérdida de datos.`,confirmRequired:`Por favor confirma que has guardado la clave de cifrado`,continue:`Continuar a Libre WebUI`}},chat:{greeting:{morning:`Buenos días`,afternoon:`Buenas tardes`,evening:`Buenas tardes`,night:`Buenas noches`},followUp:`Continuar`,welcome:{helpToday:`¿En qué puedo ayudarte hoy?`,helpTonight:`¿En qué puedo ayudarte esta noche?`,variety:{create:{title:`¿Qué vamos a crear?`,subtitle:`Empieza con una idea, un boceto o un problema que se resiste.`},explore:{title:`¿Por dónde empezamos?`,subtitle:`Trae esa pregunta a la que siempre vuelves.`},imagine:{title:`¿Qué estás imaginando?`,subtitle:`Podemos darle forma juntos.`},focus:{title:`¿Qué merece tu atención?`,subtitle:`Aclaremos cuál es el siguiente paso.`},untangle:{title:`¿Qué se ha complicado?`,subtitle:`Cuéntame primero la versión desordenada.`},momentum:{title:`Cuando quieras.`,subtitle:`Retoma una idea, un plan o algo que dejaste a medias.`},open:{title:`¿Qué tienes en mente?`,subtitle:`Una idea pequeña o un proyecto ambicioso. Todo sirve.`},challenge:{title:`¿Qué vamos a resolver?`,subtitle:`Cuéntame qué no está funcionando todavía.`},draft:{title:`Empecemos por algún sitio.`,subtitle:`No tiene que estar perfecto.`},possibility:{title:`¿En qué podría convertirse?`,subtitle:`Enséñame el material en bruto.`},unexpected:{title:`Hagamos algo inesperado.`,subtitle:`Dame una condición, un estado de ánimo o una idea a medio formar.`}}},input:{placeholder:`Enviar un mensaje`,messagePlaceholder:`Mensaje...`,attachImages:`Adjuntar imágenes`,attachments:`Adjuntos y funciones avanzadas`,sendMessage:`Enviar mensaje`,stopGeneration:`Detener generación`,menu:{uploadImages:`Subir imágenes`,attachDocument:`Adjuntar documento`,attachWebpage:`Adjuntar página web`,structuredOutput:`Salida estructurada`,attach:`Adjuntar`,documentAttached:`Documento adjuntado`,webpageAttached:`Página web adjuntada`,attachFailed:`No se pudo adjuntar`,attachKnowledge:`Adjuntar conocimiento`,noCollections:`Aún no hay colecciones: crea una en Ajustes → Documentos`},voiceInput:`Entrada de voz`,voiceStop:`Dejar de escuchar`,transcriptionSource:`Fuente de reconocimiento de voz`,browserSpeech:`Servicio de voz del navegador`,providerTranscriptionDisclosure:`Grabar y enviar audio a {{provider}} para transcribirlo`,webSearchOn:`Búsqueda web activada — las respuestas usan resultados en vivo`,webSearchOff:`Buscar en la web para este mensaje`,thinkingOn:`Razonamiento activado ({{level}})`,thinkingOff:`Razonar antes de responder`},session:{new:`Nuevo chat`,work:`Trabajo`,chat:`Chat`,private:`Privado`,incognito:`Chat de incógnito`,privateMode:`Modo privado`,privateDescription:`Esta conversación no se guardará`,privateTooltip:`Iniciar una conversación privada que no se guardará`,deleteConfirm:`¿Estás seguro de que deseas eliminar este chat?`,generatingTitle:`Generando título`,noChats:`Aún no hay chats`,createFirst:`Crea tu primer chat arriba`,chats:`Chats`,renameChat:`Renombrar chat`,openNewTab:`Abrir en pestaña nueva`,pinChat:`Fijar`,unpinChat:`Desfijar`,deleteChat:`Eliminar chat`,archiveChat:`Archivar chat`,groups:{pinned:`Fijados`,today:`Hoy`,yesterday:`Ayer`,previous7Days:`Últimos 7 días`,previous30Days:`Últimos 30 días`,older:`Más antiguos`},folder:{new:`Nueva carpeta`,namePlaceholder:`Nombre de la carpeta`,move:`Mover a carpeta`,remove:`Quitar de la carpeta`,delete:`Eliminar carpeta`,deleteConfirm:`¿Eliminar esta carpeta? Los chats se conservan.`}},persona:{applied:`Persona aplicada`,label:`Persona`,loadFailed:`No se pudieron cargar los detalles de la persona`,removeFailed:`No se pudo eliminar la persona`},model:{updated:`Modelo actualizado`,noModels:`No hay modelos disponibles`,noModelsDescription:`No hay modelos disponibles. Asegúrate de que Ollama esté ejecutándose y tenga modelos instalados.`,pullCommand:`ollama pull llama3.2:3b`,noModelsTooltip:`No hay modelos disponibles. Asegúrate de que Ollama esté ejecutándose y los modelos estén instalados.`,selectBeforePrivateChat:`Selecciona un modelo disponible antes de iniciar el chat privado`,selectBeforeSending:`Selecciona un modelo disponible antes de enviar`},footer:{disclaimer:`Los LLM pueden cometer errores - verifica la información importante`,images:`{{count}} imagen`,images_plural:`{{count}} imágenes`,structuredOutput:`Salida estructurada`},mediaUpload:{dropImagesHere:`Arrastra imágenes aquí o`,supportedFormats:`Soporta: JPG, PNG, GIF, WebP (máx. 10 MB cada una)`,browse:`explorar`},structuredOutput:{title:`Formato de respuesta`,none:`Ninguno (lenguaje natural)`,noneDescription:`Respuesta predeterminada en lenguaje natural`,json:`JSON`,jsonDescription:`Formato JSON estructurado`,list:`Lista`,listDescription:`Array de elementos`,summary:`Resumen`,summaryDescription:`Resumen de documento con puntos clave`,analysis:`Análisis`,analysisDescription:`Análisis estructurado con pros/contras`,custom:`Esquema personalizado`,customDescription:`Define tu propio esquema JSON`,customSchema:`Esquema JSON personalizado`,schemaPreview:`Vista previa del esquema`,applySchema:`Aplicar esquema`,cancel:`Cancelar`,enabled:`Salida estructurada habilitada`},controls:{title:`Controles del chat`,systemPrompt:`Prompt del sistema`,systemPromptPlaceholder:`Instrucciones que solo se aplican a este chat…`,advancedParams:`Parámetros avanzados`,advancedParamsDescription:`Anulaciones para este chat. Los campos vacíos usan tus valores globales.`,fromModel:`del modelo`,fromModelHint:`Este valor proviene de la configuración recomendada por el propio modelo.`,contextCapped:`Contexto limitado a {{context}} de los {{trained}} para los que se entrenó el modelo, para que siga cargando.`,saved:`Controles guardados`,saveFailed:`No se pudieron guardar los controles`,params:{temperature:`Temperatura`,topP:`Top P`,topK:`Top K`,minP:`Min P`,maxTokens:`Tokens máx.`,repeatPenalty:`Penalización de repetición`,seed:`Semilla`,contextLength:`Longitud de contexto`},thinking:`Razonamiento`,thinkingDescription:`Cuánto razona el modelo antes de responder. Los modelos sin razonamiento lo ignoran.`},message:{sources:`Fuentes`},toasts:{chatCreated:`Nuevo chat creado`,createFailed:`No se pudo crear la sesión`,loadFailed:`No se pudieron cargar las sesiones`,chatDeleted:`Chat eliminado`,deleteFailed:`No se pudo eliminar el chat`,deleteSessionFailed:`No se pudo eliminar la sesión`,historyCleared:`Todo el historial de chat se ha borrado`,historyClearFailed:`No se pudo borrar el historial de chat`,titleUpdated:`Título del chat actualizado`,updateFailed:`No se pudo actualizar la sesión`,noValidSession:`No hay una sesión de chat válida. Crea o selecciona un chat.`,sessionNotFound:`Sesión no encontrada o no válida. Selecciona o crea una sesión de chat válida.`,noModelProvider:`No hay ningún proveedor de modelos disponible`,modelUnavailable:`El modelo seleccionado "{{model}}" no está disponible desde {{provider}}. Reactiva ese proveedor o selecciona otro modelo.`,modelSwitched:`Cambiado a {{model}} (el modelo anterior ya no está disponible)`,modelsLoadFailed:`No se pudieron cargar los modelos`,modelUpdated:`Modelo actualizado para el chat actual`,modelUpdateFailed:`No se pudo actualizar el modelo de la sesión`},documents:{title:`Documentos en contexto`},context:{title:`Ventana de contexto:`,full:`{{percent}}% llena`,tokensUsed:`{{used}} / {{budget}} tokens usados`,tokensUsedNoBudget:`{{used}} tokens usados`,capped:`limitada desde {{trained}}`}},sidebar:{navigation:{chat:`Chat`,models:`Modelos`,personas:`Personas`,imagine:`Generar`,agents:`Agentes`,work:`Trabajo`,settings:`Configuración`,usageAnalytics:`Uso del proveedor`,system:`Sistema`,userManagement:`Gestión de usuarios`,signOut:`Cerrar sesión`,exploreLabel:`Explorar`,notes:`Notas`},toggleSize:`Cambiar tamaño de barra lateral`,expandSidebar:`Expandir barra lateral`},user:{menu:{changePicture:`Cambiar imagen`,settings:`Configuración`,usageAnalytics:`Uso del proveedor`,system:`Sistema`,userManagement:`Gestión de usuarios`,logout:`Cerrar sesión`},avatar:{title:`Cambiar imagen de perfil`,updated:`Imagen de perfil actualizada`,updateFailed:`Error al actualizar imagen de perfil`,saving:`Guardando...`,label:`Avatar`,uploadAvatarImage:`Subir imagen de avatar`,dragAndDrop:`Arrastra y suelta una imagen o haz clic para explorar`,chooseImage:`Elegir imagen`,uploading:`Subiendo...`,enterImageUrl:`O introduce la URL de la imagen`,supportedFormats:`Soporta: JPG, PNG, GIF, WebP (máx. 2 MB). Las imágenes cuadradas funcionan mejor.`,customAvatar:`Imagen de avatar personalizada`,clickToChange:`Haz clic para cambiar o eliminar`,removed:`Avatar eliminado`,uploaded:`Avatar subido con éxito`,invalidFile:`Por favor selecciona un archivo de imagen válido`,fileTooLarge:`El tamaño de la imagen del avatar debe ser menor a 2 MB`,readFailed:`Error al leer el archivo de imagen`,uploadFailed:`Error al subir la imagen del avatar`},profile:{noEmail:`Sin correo electrónico`}},settings:JSON.parse(`{"title":"Configuración","tabs":{"appearance":"Apariencia","model":"Modelo","systemMessage":"Mensaje del sistema","plugins":"Plugins","search":"Búsqueda","generation":"Generación","documents":"Documentos","tts":"Voz","imageGen":"Imágenes","data":"Datos","shortcuts":"Atajos","about":"Acerca de","sessions":"Sesiones","apiKeys":"Claves API"},"appearance":{"title":"Apariencia","language":{"title":"Idioma","description":"Selecciona tu idioma preferido"},"theme":{"title":"Tema","light":"Claro","dark":"Oscuro","amoled":"Negro Puro","system":"Sistema"},"accent":{"title":"Color de acento","custom":"Color personalizado","useColor":"Usar {{color}} como acento","behaviorTitle":"Paleta de la interfaz","behaviorDescription":"Elige si el acento se limita a los controles o adapta toda la interfaz clara u oscura.","defaultStyle":"Predeterminada","defaultStyleDescription":"Mantener las superficies neutras de los temas claro y oscuro.","adaptedStyle":"Adaptar al acento","adaptedStyleDescription":"Teñir superficies, bordes y texto con el color de acento."},"chatInterface":{"title":"Interfaz de chat","showUsername":"Mostrar nombre de usuario","showUsernameDescription":"Mostrar nombre de usuario en mensajes de chat","followUpSuggestions":"Sugerencias de seguimiento","followUpSuggestionsDescription":"Sugerir respuestas rápidas tras cada respuesta","hapticFeedback":"Respuesta háptica (Android)","hapticFeedbackDescription":"Usar vibraciones sutiles para acciones móviles importantes"},"background":{"title":"Imagen de fondo","enable":"Habilitar imagen de fondo","enableDescription":"Mostrar fondo personalizado con efecto de desenfoque","blur":"Desenfoque","opacity":"Opacidad","upload":"Subir imagen de fondo","dragDrop":"Arrastra una imagen o haz clic para explorar","chooseImage":"Elegir imagen"}},"saveSettings":"Guardar configuración","model":{"title":"Configuración del modelo","defaultModel":"Modelo predeterminado","defaultModelDescription":"Este modelo se usará por defecto para nuevas conversaciones","selectModel":"Seleccionar un modelo","specializedModels":"Modelos especializados","visionModel":"Modelo de visión","selectVisionModel":"Usar el modelo de chat actual","visionModelDescription":"Se utiliza automáticamente siempre que el contexto del chat saliente contenga imágenes. Elige un modelo que admita la entrada de imágenes.","visionModelUpdateFailed":"Error al actualizar el modelo de visión: {{error}}","visionModelNoProvider":"Este modelo de visión no tiene identidad de proveedor. Selecciona un modelo disponible.","persona":"Persona","updateAll":"Actualizar todos los modelos","updateAllDescription":"Buscar actualizaciones y descargar las últimas versiones de todos los modelos instalados","updateAllButton":"Actualizar todos","updating":"Actualizando modelos...","currentModelInfo":"Info del modelo actual","name":"Nombre","size":"Tamaño","family":"Familia","format":"Formato","status":"Estado","statusStarting":"Iniciando...","statusComplete":"Completado","statusError":"Error","bulkOperations":"Operaciones masivas","autoTitle":{"title":"Generación automática de títulos","enable":"Habilitar título automático","enableDescription":"Generar automáticamente títulos para nuevas conversaciones","taskModel":"Modelo de tarea","selectTaskModel":"Seleccionar modelo de tarea","taskModelDescription":"Modelo usado para generar títulos de conversación"},"updatingModel":"Actualizando {{name}} ({{current}}/{{total}})","modelsProgress":"{{current}} de {{total}} modelos"},"systemMessage":{"title":"Mensaje del sistema","description":"Establece un mensaje de sistema personalizado que se usará para todas las nuevas conversaciones.","placeholder":"Ingresa un mensaje del sistema...","saved":"Mensaje del sistema guardado","saveFailed":"Error al guardar mensaje del sistema"},"plugins":{"title":"Plugins","description":"Gestiona tus plugins instalados","providerConnections":"Conexiones de proveedores","providerConnectionsDescription":"Conecta, configura e inspecciona proveedores de modelos a través de plugins.","providers":"Proveedores","searchProviders":"Buscar proveedores","noProvidersFound":"Ningún proveedor coincide con tu búsqueda.","selectProvider":"Selecciona un proveedor","selectProviderDescription":"Elige un proveedor para inspeccionar su conexión y catálogo de modelos.","addNew":"Agregar nuevo plugin","upload":"Subir plugin","addJson":"Agregar JSON","uploading":"Subiendo...","jsonPlaceholder":"Pega la configuración JSON del plugin...","install":"Instalar plugin","noPlugins":"No hay plugins instalados","noPluginsDescription":"Agrega un plugin para extender funcionalidades","loading":"Cargando plugins...","installed":"Plugins instalados","active":"Plugins activos","activeLabel":"Activo","inactive":"Inactivo","activate":"Activar","deactivate":"Desactivar","models":"modelos","apiKeySet":"Clave API establecida","apiKeyConfiguration":"Configuración de clave API","apiKeyDescription":"Almacena una clave API personal para {{name}}.","apiKeyEnvAlternative":"Alternativamente, establece la","environmentVariable":"variable de entorno","apiKeyConfigured":"Clave API configurada","apiKeyPlaceholder":"Ingresa tu clave API...","saveApiKey":"Guardar clave API","showApiKey":"Mostrar clave API","hideApiKey":"Ocultar clave API","configure":"Configurar","providerSettings":"Ajustes del proveedor","status":"Estado","defaultEndpoint":"Endpoint predeterminado","modelCatalog":"Catálogo de modelos","modelCatalogDescription":"Modelos descubiertos y configurados para este proveedor y sus capacidades.","refreshModels":"Actualizar modelos","noModelsConfigured":"No hay modelos configurados para este proveedor.","modelId":"ID del modelo","capabilities":"Capacidades","modelCatalogUpdated":"Catálogo de modelos actualizado: {{count}} modelos.","modelCatalogUnchanged":"El catálogo de modelos ya está actualizado.","modelCatalogNeedsApiKey":"Añade una clave de API válida para este proveedor para cargar su lista de modelos en vivo.","modelCatalogUnavailable":"No se pudo cargar la lista de modelos del proveedor.","modelCatalogRefreshFailed":"Error al actualizar el catálogo de modelos","capability":{"chat":"Chat","embedding":"Embedding","image":"Imagen","speech":"Voz","transcription":"Transcripción"},"exportPlugin":"Exportar plugin","deletePlugin":"Eliminar plugin","apiKey":{"title":"Clave API","placeholder":"Ingresa clave API","save":"Guardar clave","remove":"Eliminar clave","configured":"Clave API configurada","notConfigured":"Clave API requerida","saved":"Clave API guardada exitosamente","removed":"Clave API eliminada","saveFailed":"Error al guardar clave API","removeFailed":"Error al eliminar clave API","enterKey":"Por favor ingresa una clave API"},"variables":"Variables"},"generation":{"title":"Opciones de generación","description":"Configura cómo la IA genera respuestas","scopeLabel":"Se aplica a","scopeAll":"Todos los modelos","scopeModel":"Solo {{model}}","scopeAllHint":"Los valores que usa cada modelo salvo que tenga los suyos.","scopeModelHint":"Se guarda solo para este modelo y prevalece sobre los valores generales.","advancedSettings":"Ajustes avanzados de generación","advancedSettingsDescription":"Muestreo, límites de tokens, contexto, penalizaciones y secuencias de parada","coreParameters":"Parámetros principales","temperature":"Temperatura","temperatureDescription":"Controla la aleatoriedad. Valores más bajos son más enfocados, más altos más creativos.","topP":"Top P","topPDescription":"Controla la diversidad mediante muestreo de núcleo. Valores más bajos se enfocan en tokens probables.","topK":"Top K","topKDescription":"Limita la selección de tokens a los K más probables. Establece en 0 para deshabilitar.","minP":"Min P","minPDescription":"Umbral mínimo de probabilidad para selección de tokens.","generationControl":"Control de generación","maxTokens":"Tokens máximos","maxTokensDescription":"Número máximo de tokens a generar en la respuesta.","repeatPenalty":"Penalización de repetición","repeatPenaltyDescription":"Penaliza tokens repetidos. Valores más altos reducen la repetición.","contextLength":"Longitud de contexto","contextLengthDescription":"Tamaño máximo de ventana de contexto para conversaciones.","seed":"Semilla","optional":"opcional","random":"Aleatorio","seedDescription":"Establece una semilla específica para salidas reproducibles.","advancedOptions":"Opciones avanzadas","presencePenalty":"Penalización de presencia","presencePenaltyDescription":"Penaliza tokens que aparecen en el contexto.","frequencyPenalty":"Penalización de frecuencia","frequencyPenaltyDescription":"Penaliza tokens usados frecuentemente.","stopSequences":"Secuencias de parada","commaSeparated":"separadas por comas","stopSequencesDescription":"Tokens personalizados que detendrán la generación cuando se encuentren.","resetDefaults":"Restablecer predeterminados","saveOptions":"Guardar opciones","embeddingSettings":"Configuración de embeddings","enableEmbeddings":"Habilitar embeddings de documentos","thinking":"Razonamiento","thinkingDescription":"Esfuerzo de razonamiento predeterminado para las respuestas. Cada chat puede cambiarlo.","thinkingLevels":{"default":"Predeterminado del modelo","off":"Desactivado","on":"Activado","low":"Bajo","medium":"Medio","high":"Alto"}},"documents":{"title":"Configuración de documentos","embeddings":{"title":"Embeddings","enable":"Habilitar embeddings de documentos","model":"Modelo de embedding","modelDescription":"Selecciona el modelo usado para embedding de documentos","chunkSize":"Tamaño de chunk","chunkSizeInTokens":"(en tokens)","chunkSizeDescription":"Tamaño de los chunks de texto para embedding","chunkOverlap":"Superposición de chunks","chunkOverlapInTokens":"(en tokens)","chunkOverlapDescription":"Superposición entre chunks consecutivos","similarityThreshold":"Umbral de similitud","similarityDescription":"Puntuación mínima de similitud para incluir resultados","status":"Estado de embedding","statusLabel":"Estado","available":"Disponible","unavailable":"No disponible","chunksWithEmbeddings":"Chunks con embeddings","coverage":"Cobertura","regenerate":"Regenerar embeddings","regenerating":"Regenerando..."},"collections":{"title":"Colecciones de conocimiento","description":"Agrupa documentos en colecciones y adjúntalas a cualquier chat.","namePlaceholder":"Nombre de la colección","create":"Crear","none":"Sin colección","deleteConfirm":"¿Eliminar esta colección? Los documentos se conservan.","createFailed":"No se pudo crear la colección","deleteFailed":"No se pudo eliminar la colección","assignFailed":"No se pudo mover el documento"},"library":{"title":"Documentos subidos","description":"Documentos disponibles como contexto del chat. Un documento subido en un chat permanece en su conversación; un documento sin chat ni colección se suma a todas las conversaciones.","empty":"Aún no hay documentos subidos.","chatScope":"Un chat","everyChatScope":"Todos los chats","deleteConfirm":"¿Eliminar \\"{{name}}\\"? Desaparecerá de todos los chats.","deleteFailed":"No se pudo eliminar el documento"}},"tts":{"title":"Texto a voz","description":"Configura ajustes de texto a voz para leer mensajes en voz alta","loadingProviders":"Cargando proveedores TTS...","noProviders":"Sin proveedores TTS","noProvidersDescription":"Configura un plugin con soporte TTS para habilitar texto a voz","enable":"Habilitar TTS","enableDescription":"Permitir texto a voz para mensajes del asistente","autoPlay":"Reproducción automática","autoPlayDescription":"Leer automáticamente nuevos mensajes del asistente en voz alta","streamSentences":"Reproducción natural por lotes","streamSentencesDescription":"Genera por adelantado varios lotes adaptados a las frases y reprodúcelos como una única respuesta continua.","voiceConfiguration":"Configuración de voz","model":"Modelo TTS","modelDescription":"Selecciona el modelo para generación de texto a voz","voice":"Voz","selectVoice":"Selecciona una voz","voiceDescription":"Elige la voz para texto a voz","providerDefaultVoice":"Este modelo usa su voz predeterminada a menos que proporciones una grabación de referencia al generar el habla.","voiceCloningAvailable":"Clonación de voz disponible","voiceCloningAvailableDescription":"Usa Imagina → Audio para crear voz a partir de una grabación de referencia autorizada y su transcripción exacta. Si quieres, puedes guardar la referencia como una voz reutilizable.","savedVoiceOption":"{{name}} (voz guardada)","savedVoices":"Voces guardadas","loadingSavedVoices":"Cargando voces guardadas…","deleteSavedVoice":"Eliminar la voz guardada {{name}}","deleteSavedVoiceConfirm":"¿Eliminar la voz guardada «{{name}}»? Se borrarán su grabación de referencia y su transcripción.","savedVoiceDeleted":"Voz guardada eliminada","savedVoicePreferenceCleanupFailed":"Se eliminó la voz guardada, pero no se pudieron restablecer los ajustes de Voz","savedVoiceDeleteFailed":"No se pudo eliminar la voz guardada","speed":"Velocidad","speedSlow":"0,5x","speedNormal":"1,0x","speedFast":"2,0x","availableProviders":"Proveedores disponibles","models":"modelos","test":"Probar","testing":"Probando...","stop":"Detener"},"imageGen":{"title":"Generación de imágenes","description":"Configura ajustes y proveedores de generación de imágenes","loadingProviders":"Cargando proveedores de generación de imágenes...","noProviders":"Sin proveedores de generación de imágenes","noProvidersDescription":"Configura un plugin con soporte de generación de imágenes","enable":"Habilitar generación de imágenes","enableDescription":"Permitir generación de imágenes con IA en conversaciones","configuration":"Configuración","model":"Modelo","modelDescription":"Selecciona el modelo para generación de imágenes","size":"Tamaño","sizeDescription":"Resolución de imágenes generadas","quality":"Calidad","qualityDescription":"Nivel de calidad de imágenes generadas","style":"Estilo","styleDescription":"Preajuste de estilo para imágenes generadas","availableProviders":"Proveedores disponibles","models":"modelos"},"data":{"title":"Gestión de datos","export":"Exportar datos","exportDescription":"Descarga un archivo portátil de preferencias, carpetas de chat, sesiones y mensajes, notas, colecciones de conocimiento y texto extraído de documentos.","archiveScopeV3":"Incluye preferencias, chats, carpetas, notas, colecciones de conocimiento y texto extraído de documentos. Excluye cuentas y secretos, voces clonadas biométricas, contenido multimedia generado, personas y memoria, y datos o volúmenes de Work.","exportAll":"Exportar todos los datos","import":"Importar datos","importDescription":"Importa datos de una exportación anterior.","importData":"Importar datos","importing":"Importando...","clearSessions":"Limpiar sesiones","clearSessionsDescription":"Eliminar todas las sesiones de chat. Esta acción no se puede deshacer.","clearAll":"Limpiar todo","clearing":"Limpiando...","importOptions":"Opciones de importación","importOptionsDescription":"Elige cómo manejar datos existentes","validatingArchive":"Validando el archivo y calculando los cambios…","archiveValidationFailed":"Falló la validación del archivo","preflightReport":"Vista previa de la importación","preflightIncoming":"{{folders}} carpetas · {{sessions}} chats · {{messages}} mensajes · {{notes}} notas · {{collections}} colecciones · {{documents}} documentos · {{chunks}} fragmentos","preflightRemappedIds":"Se reasignarán {{count}} ID para proteger los datos de otra cuenta.","skipDuplicates":"Omitir duplicados","overwrite":"Sobrescribir existentes","importResults":"Resultados de importación","preferences":"Preferencias","imported":"Importado","failed":"Fallido","sessions":"Sesiones","sessionFolders":"Carpetas de sesiones","notes":"Notas","knowledgeCollections":"Colecciones de conocimiento","importedLabel":"importado","overwrittenLabel":"sobrescrito","skipped":"omitido","toCreate":"por crear","toOverwrite":"por sobrescribir","toSkip":"por omitir","documents":"Documentos","warnings":"Advertencias","refreshAfterImportFailed":"Los datos se importaron, pero algunas vistas no se pudieron actualizar. Recarga Libre WebUI para ver todos los cambios.","errors":"Errores","archivedChats":{"title":"Chats archivados","empty":"No hay chats archivados","unarchive":"Desarchivar"}},"about":{"title":"Acerca de","versionLabel":"Versión","ollama":{"title":"Estado de Ollama","version":"Versión","healthy":"Saludable","unhealthy":"No saludable"},"stats":{"models":"Modelos","sessions":"Sesiones"},"features":{"privacy":{"title":"Privacidad primero","description":"Tus datos permanecen en tu dispositivo"},"openSource":{"title":"Código abierto","description":"Software libre y de código abierto"},"localInference":{"title":"Inferencia local","description":"Ejecuta modelos de IA localmente con Ollama"}},"openSourceBy":"Código abierto por {{company}}","links":{"title":"Enlaces","github":"GitHub","githubDescription":"Ver código fuente y contribuir","website":"Sitio web","websiteDescription":"Visita nuestro sitio web","documentation":"Documentación","reportIssue":"Reportar problemas","reportIssueDescription":"Reportes de bugs y solicitudes de funciones","documentationDescription":"Guías, tutoriales y referencia de API","forgejo":"Espejo Forgejo","forgejoDescription":"Repositorio Forgejo auto-alojado","sponsor":"Patrocinar","sponsorDescription":"Ayuda a financiar el proyecto"},"version":"Versión {{version}}"},"groups":{"general":"General","chat":"Chat","media":"Voz e imágenes","connections":"Conexiones"},"search":{"title":"Búsqueda web","description":"Busca en la web mediante una instancia autoalojada de SearXNG. Al activarla, el chat ofrece un interruptor de búsqueda y las tareas de Work con acceso a red pueden buscar.","enableLabel":"Activar búsqueda web","enableDescription":"Ofrecer búsqueda web en chats y tareas de Work. Las búsquedas se ejecutan en el servidor contra la instancia configurada.","urlLabel":"URL de SearXNG","urlDescription":"URL base de la instancia de SearXNG accesible desde el servidor. La pila de despliegue privado incluida ofrece http://searxng:8080.","maxResultsLabel":"Resultados por búsqueda","maxResultsDescription":"Cuántos resultados alimentan una respuesta o llamada de herramienta, 1-10.","maxResultsInvalid":"Los resultados por búsqueda deben estar entre 1 y 10.","safeSearchLabel":"Búsqueda segura","safeSearchDescription":"Pedir al motor que filtre resultados explícitos.","test":"Probar conexión","testing":"Probando…","testOk":"La búsqueda funciona — se devolvieron {{results}} resultados","testFailed":"La prueba de búsqueda falló","save":"Guardar","saved":"Configuración de búsqueda guardada","saveFailed":"No se pudo guardar la configuración de búsqueda"},"compaction":{"title":"Compactación del contexto","description":"Cuando una conversación supera el umbral de tokens, el servidor resume sus mensajes más antiguos y solo conserva textualmente los más recientes. Se aplica a todos los usuarios de este servidor.","thresholdLabel":"Umbral de tokens","thresholdDescription":"Tokens de contexto estimados a partir de los cuales se resume el historial antiguo, 500-1.000.000.","thresholdInvalid":"El umbral de tokens debe estar entre 500 y 1.000.000.","keepRecentLabel":"Mensajes recientes conservados","keepRecentDescription":"Cuántos de los últimos mensajes se mantienen siempre textualmente, 2-200.","keepRecentInvalid":"Los mensajes recientes conservados deben estar entre 2 y 200.","modelLabel":"Modelo de compactación","modelDescription":"El modelo que escribe los resúmenes. Si no se elige ninguno, se usa el modelo de la propia sesión.","sessionModelOption":"Usar el modelo de la sesión","promptLabel":"Prompt de resumen personalizado","promptPlaceholder":"Déjalo vacío para usar el prompt integrado","promptDescription":"Las variables de plantilla {{previousSummaryVariable}} y {{messagesVariable}} se sustituyen por el resumen anterior y los mensajes que se van a resumir.","saved":"Ajustes de compactación guardados","saveFailed":"No se pudieron guardar los ajustes de compactación"},"sessions":{"title":"Sesiones","description":"Todos los lugares donde esta cuenta tiene la sesión iniciada. Cerrar una sesión surte efecto de inmediato; iniciar sesión de nuevo restaura el acceso.","signOutOthers":"Cerrar las demás sesiones","signingOutOthers":"Cerrando sesión…","signOut":"Cerrar sesión","signingOut":"Cerrando sesión…","revoked":"Sesión cerrada.","revokeFailed":"No se pudo cerrar la sesión.","othersRevoked":"Otras sesiones cerradas: {{count}}","loadFailed":"No se pudieron cargar las sesiones.","empty":"No se encontraron sesiones.","current":"Esta sesión","revokedBadge":"Cerrada","unknownDevice":"Dispositivo desconocido","createdAt":"Inicio de sesión","lastSeenAt":"Última actividad","expiresAt":"Expira"},"apiKeys":{"title":"Claves API","description":"Tokens con permisos limitados para scripts e integraciones. Cada clave solo tiene acceso a los ámbitos que elijas.","newKeyTitle":"Tu nueva clave API","copy":"Copiar","copied":"Copiado al portapapeles.","copyFailed":"No se pudo copiar.","showOnceWarning":"Cópiala ahora: no se volverá a mostrar.","dismiss":"Listo","createTitle":"Crear una clave","nameLabel":"Nombre","namePlaceholder":"p. ej., pipeline de CI","nameRequired":"Dale un nombre a la clave.","expiryLabel":"Expira en días (opcional)","expiryPlaceholder":"Nunca","expiryInvalid":"La expiración debe ser un número entero de días.","scopesLabel":"Ámbitos","scopesRequired":"Selecciona al menos un ámbito.","create":"Crear clave","creating":"Creando…","created":"Clave API creada.","createFailed":"No se pudo crear la clave API.","revoke":"Revocar","revoking":"Revocando…","revoked":"Clave API revocada.","revokeFailed":"No se pudo revocar la clave API.","revokedBadge":"Revocada","loadFailed":"No se pudieron cargar las claves API.","empty":"Aún no hay claves API.","createdAt":"Creada","lastUsedAt":"Último uso","expiresAt":"Expira","neverExpires":"Nunca"}}`),models:{title:`Modelos`,subtitle:`Descarga, gestiona y monitorea tus modelos de Ollama`,installed:`Modelos instalados`,available:`Modelos disponibles`,pull:`Descargar modelo`,pulling:`Descargando...`,delete:`Eliminar modelo`,deleting:`Eliminando...`,size:`Tamaño`,modified:`Modificado`,family:`Familia`,parameters:`Parámetros`,quantization:`Cuantización`,noModels:`No hay modelos instalados`,pullFirst:`Descarga un modelo para comenzar`,noModelsFound:`No se encontraron modelos`},personas:{title:`Personas`,create:`Crear persona`,edit:`Editar persona`,delete:`Eliminar persona`,name:`Nombre`,description:`Descripción`,systemPrompt:`Prompt del sistema`,model:`Modelo`,avatar:`Avatar`,background:`Fondo`,noPersonas:`No hay personas creadas`,createFirst:`Crea tu primera persona para personalizar tu experiencia de chat`},gallery:{title:`Galería`,subtitle:`Tu galería de imágenes generadas por IA`,imageCount:`{{count}} imágenes`,generate:`Generar imagen`,generateDescription:`Crea imágenes con IA`,generating:`Generando...`,prompt:`Prompt`,promptPlaceholder:`Describe la imagen que quieres generar...`,noImages:`Aún no hay imágenes generadas`,download:`Descargar`,delete:`Eliminar`,regenerate:`Regenerar`,model:`Modelo`,size:`Tamaño`,quality:`Calidad`,created:`Creado`},errors:{generic:`Ocurrió un error`,network:`Error de red. Por favor verifica tu conexión.`,unauthorized:`No estás autorizado para realizar esta acción.`,notFound:`El recurso solicitado no fue encontrado.`,serverError:`Error del servidor. Por favor intenta más tarde.`,validation:`Por favor verifica tu entrada e intenta de nuevo.`},keyboard:{title:`Atajos de teclado`,toggleSidebar:`Alternar barra lateral`,openSettings:`Abrir configuración`,toggleDarkMode:`Alternar modo oscuro`,showShortcuts:`Mostrar atajos de teclado`,closeModals:`Cerrar modales`,groups:{navigation:`Navegación`,general:`General`,chat:`Chat`,workspace:`Espacio de trabajo`},actions:{sendMessage:`Enviar mensaje`,newLine:`Nueva línea en mensaje`,saveEdit:`Guardar el mensaje editado`,cancelEdit:`Cancelar la edición`,saveFile:`Guardar archivo`,formatCode:`Formatear código`},description:`Todos los atajos de teclado disponibles en Libre WebUI.`,newChat:`Nuevo chat`,newWork:`Nueva sesión de Work`,openPalette:`Abrir la paleta de comandos`},modelManager:{title:`Modelos`,loading:`Cargando modelos...`,systemStatus:{online:`Ollama en línea`,offline:`Ollama sin conexión`,models:`modelo`,models_plural:`modelos`,running:`ejecutándose`,vram:`VRAM`},sections:{pull:`Descargar nuevo modelo`,library:`Explorar biblioteca`,huggingface:`HuggingFace Hub`,running:`Modelos en ejecución`,local:`Modelos locales`,advanced:`Acciones avanzadas`,catalog:`Catálogo de modelos`},catalog:{searchPlaceholder:`Buscar modelos por nombre o proveedor...`,noModels:`Todavía no hay modelos disponibles.`,empty:`Ningún modelo coincide con tu búsqueda.`,providerOllama:`Ollama`,hidden:`Oculto`,visibilityFailed:`No se pudo actualizar la visibilidad del modelo.`,filterAll:`Todos los modelos`,filterLocal:`Local`,filterProviders:`Proveedores`,filterHidden:`Ocultos`,enableAll:`Activar los mostrados`,disableAll:`Desactivar los mostrados`,rename:`Editar nombre e imagen`,setPicture:`Establecer imagen`,clearPicture:`Quitar imagen`,pictureInvalid:`Elige un archivo de imagen.`,pictureTooLarge:`Las imágenes deben pesar menos de 192 KB.`,saving:`Guardando…`,hide:`Ocultar a los usuarios`,show:`Mostrar a los usuarios`},pull:{placeholder:`Ingresa nombre del modelo (ej. llama3.2:3b, deepseek-r1:14b)`,button:`Descargar`,cancel:`Cancelar`,popular:`Modelos populares:`,browseAll:`Explorar todos los modelos en ollama.com`,success:`Modelo {{name}} descargado exitosamente`,cancelled:`Descarga de modelo cancelada`,failed:`Error al descargar modelo`,enterName:`Por favor ingresa un nombre de modelo`,restricted:`La instalación de modelos está restringida a administradores en esta instancia.`},progress:{starting:`Inicializando...`,pulling:`Descargando modelo...`,pullingLayer:`descargando`,verifying:`Verificando integridad...`,verifyingDigest:`verificando digest sha256`,writing:`Escribiendo manifiesto...`,cleaning:`Limpiando...`},library:{available:`disponible`,search:`Buscar modelos...`,noResults:`No se encontraron modelos que coincidan con tu criterio`,installed:`Instalado`,more:`+{{count}} más`,refresh:`Actualizar biblioteca`},huggingface:{browseAll:`Ver todo en HuggingFace`,checkingGguf:`Buscando archivos GGUF...`,noGgufAvailable:`No hay archivos GGUF disponibles para Ollama`,ggufFilesCount:`Archivos GGUF ({{count}}) - Descargar a Ollama`,noModelsFound:`No se encontraron modelos`,noResults:`No se encontraron modelos. Intenta ajustar tu búsqueda o filtros.`,browseAllLink:`Ver todo`,search:`Buscar modelos en HuggingFace...`,by:`por`,gated:`Acceso restringido`,viewOnHF:`Ver en HuggingFace`,sortDownloads:`Descargas`,sortLikes:`Me gusta`,sortRecent:`Reciente`,taskTextGeneration:`Generación de texto`,taskTextToSpeech:`Texto a voz`,taskTextToImage:`Texto a imagen`,taskSpeechRecognition:`Reconocimiento de voz`,tasks:{textGen:`Generación de texto`,tts:`Texto a voz`,image:`Texto a imagen`,stt:`Reconocimiento de voz`},sort:{downloads:`Más descargados`,likes:`Más gustados`,recent:`Actualizados recientemente`}},local:{noModels:`Aún no hay modelos instalados`,pullToStart:`Descarga un modelo arriba para comenzar`,installed:`instalado`,running:`Ejecutándose`,info:`Info`,copy:`Copiar`,delete:`Eliminar`,deleteConfirm:`¿Estás seguro de que deseas eliminar el modelo "{{name}}"?`,deleteSuccess:`Modelo {{name}} eliminado exitosamente`,deleteFailed:`Error al eliminar modelo`},advanced:{createModel:`Crear modelo`,fromModelfile:`Desde Modelfile`,copyModel:`Copiar modelo`,duplicateExisting:`Duplicar existente`,testEmbeddings:`Probar embeddings`,generateVectors:`Generar vectores`,healthCheck:`Verificación de salud`,testConnection:`Probar conexión`,healthy:`¡Ollama está saludable!`},modals:{details:{title:`Detalles del modelo`,info:`Información del modelo`,family:`Familia`,parameters:`Parámetros`,quantization:`Cuantización`,format:`Formato`,systemPrompt:`Prompt del sistema`,template:`Plantilla`,license:`Licencia`,modelfile:`Modelfile`,noDetails:`Sin detalles disponibles`},copy:{title:`Copiar modelo`,source:`Modelo origen`,selectModel:`Selecciona un modelo...`,newName:`Nuevo nombre de modelo`,placeholder:`ej. mi-modelo-personalizado`,copying:`Copiando...`,button:`Copiar modelo`,success:`Modelo copiado a {{name}}`,failed:`Error al copiar modelo`,enterBoth:`Por favor ingresa nombres de origen y destino`},create:{title:`Crear modelo personalizado`,name:`Nombre del modelo`,namePlaceholder:`ej. mi-asistente`,modelfile:`Modelfile`,modelfilePlaceholder:`FROM llama3.2
|
|
2
|
-
SYSTEM Eres un asistente útil.`,see:`Ver`,docs:`Documentación de Modelfile`,docsLink:`para referencia de sintaxis`,creating:`Creando...`,button:`Crear modelo`,success:`Modelo {{name}} creado exitosamente`,failed:`Error al crear modelo`,enterBoth:`Por favor ingresa nombre del modelo y contenido del Modelfile`},embeddings:{title:`Probar embeddings`,model:`Modelo de embedding`,selectModel:`Selecciona un modelo...`,recommended:`Recomendados: nomic-embed-text, mxbai-embed-large`,input:`Texto de entrada`,placeholder:`Ingresa texto para generar embeddings...`,generating:`Generando...`,button:`Generar embeddings`,result:`Resultado ({{count}} dimensiones)`,success:`Vector de embedding de {{count}} dimensiones generado`,failed:`Error al generar embeddings`,enterBoth:`Por favor selecciona un modelo e ingresa texto`}}},personaManager:{title:`Personas`,subtitle:`Crea y gestiona personas de IA con personalidades, memorias y comportamientos personalizados`,loading:`Cargando personas...`,createButton:`Crear persona`,importExport:`Importar/Exportar`,stats:{title:`Tus personas`,count:`{{count}} persona creada`,count_plural:`{{count}} personas creadas`},empty:{title:`Aún no hay personas`,description:`Crea tu primera persona para comenzar con interacciones de IA personalizadas`,button:`Crear tu primera persona`},deleteConfirm:`¿Estás seguro de que deseas eliminar "{{name}}"?`,deleteSuccess:`Persona "{{name}}" eliminada exitosamente`,downloadSuccess:`Persona "{{name}}" descargada exitosamente`,failed:`Error al {{action}} persona`},personaForm:{title:{create:`Crear nueva persona`,edit:`Editar persona`},subtitle:{create:`Crea una nueva persona de IA con personalidad personalizada, sistemas de memoria y capacidades de aprendizaje adaptativo`,edit:`Personaliza tu persona de IA con memoria avanzada, aprendizaje adaptativo y parámetros inteligentes`},loading:`Cargando formulario...`,saved:`Guardado`,tabs:{basic:`Básico`,parameters:`Parámetros`,memory:`Memoria y aprendizaje`,advanced:`Avanzado`},basic:{name:`Nombre`,namePlaceholder:`Ingresa nombre de persona`,model:`Modelo`,selectModel:`Selecciona un modelo`,description:`Descripción`,descriptionPlaceholder:`Describe tu persona...`,systemPrompt:`Prompt del sistema`,systemPromptPlaceholder:`Ingresa el prompt del sistema que define el comportamiento de tu persona...`,systemPromptHint:`El prompt del sistema define cómo se comportará y responderá tu persona.`},parameters:{temperature:`Temperatura`,temperatureHint:`Controla creatividad vs consistencia`,topP:`Top-P`,topPHint:`Controla diversidad de respuesta`,topK:`Top-K`,topKHint:`Limita vocabulario a los top-k tokens`,contextWindow:`Ventana de contexto`,contextWindowHint:`Longitud máxima del historial de conversación`,maxTokens:`Tokens máximos`,maxTokensHint:`Longitud máxima de respuesta`,repeatPenalty:`Penalización de repetición`,repeatPenaltyHint:`Reduce respuestas repetitivas`},memory:{title:`Sistema de memoria`,subtitle:`La persona recuerda conversaciones a lo largo del tiempo`,enableHint:`Habilita el sistema de memoria para que tu persona recuerde conversaciones y construya contexto a lo largo del tiempo.`,loading:`Cargando estado de memoria...`,noData:`Aún no hay datos de memoria`,memories:`Memorias`,mbUsed:`MB usados`,lastBackup:`Última copia de seguridad`,never:`Nunca`,maxMemories:`Memorias máximas`,maxMemoriesHint:`Cuántas memorias puede almacenar esta persona`,retention:`Retención de memoria`,retentionHint:`Días para mantener memorias antes de limpiar`,autoCleanup:`Limpieza automática de memorias antiguas`,wipeAll:`Borrar todas las memorias`,wipeCannot:`Esto no se puede deshacer`,wipeButton:`Borrar`,wiping:`Borrando...`,wipeConfirm:`¿Estás seguro de que deseas borrar todas las memorias? Esto no se puede deshacer.`,wipeSuccess:`Se borraron {{count}} memorias`},learning:{title:`Aprendizaje adaptativo`,subtitle:`La persona evoluciona basándose en interacciones`,enableHint:`Habilita el aprendizaje adaptativo para que tu persona evolucione y personalice respuestas basándose en tus interacciones.`,speed:`Velocidad de aprendizaje`,slow:`Lento`,slowDesc:`Cambios graduales`,balanced:`Equilibrado`,balancedDesc:`Ritmo moderado`,fast:`Rápido`,fastDesc:`Adaptación rápida`,autoAdapt:`Auto-adaptar a preferencias del usuario`,whatLearns:`Lo que aprende la persona:`,conversationTone:`Tono de conversación`,responseStyle:`Estilo de respuesta`,userPreferences:`Preferencias del usuario`,topicInterests:`Intereses en temas`},advanced:{embeddingModel:`Modelo de embedding`,embeddingHint:`Selecciona el modelo usado para codificación de memoria y búsqueda semántica. Los modelos de embedding se muestran primero, seguidos de otros modelos disponibles.`,noModels:`No se encontraron modelos`,embeddingModels:`Modelos de embedding`,otherModels:`Otros modelos`,installHint:`Instala un modelo de embedding:`,recommended:`Recomendados: nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`Acerca de configuración avanzada`,aboutDescription:`El modelo de embedding es usado por el sistema de memoria para entender significado semántico y encontrar memorias relevantes durante conversaciones. Elige un modelo que coincida con tu caso de uso y recursos disponibles.`},actions:{cancel:`Cancelar`,save:`Guardar`,saving:`Guardando...`,saveClose:`Guardar y cerrar`,create:`Crear`},success:{created:`Persona creada`,updated:`Persona actualizada`},error:{saveFailed:`Error al guardar`}},personaCard:{enhanced:`Mejorado`,systemPrompt:`Prompt del sistema`,memories:`memorias`,use:`Usar`,editTooltip:`Editar persona`,downloadTooltip:`Descargar persona`,backup:`Copia de seguridad`,exportDNA:`Exportar ADN`,wipeMemories:`Borrar memorias`,wipeConfirm:`¿Estás seguro de que deseas borrar todas las memorias de esta persona? Esta acción no se puede deshacer.`,wipeSuccess:`Se borraron {{count}} memorias`,backupSuccess:`Copia de seguridad de persona descargada exitosamente`,dnaSuccess:`ADN de persona exportado exitosamente`,failed:`Error al {{action}}`},userManager:{title:`Gestión de usuarios`,subtitle:`Gestiona cuentas de usuario y permisos`,pageDescription:`Gestiona cuentas de usuario, permisos y controles de acceso para tu instancia de Libre WebUI.`,loading:`Cargando usuarios...`,createUser:`Crear usuario`,search:`Buscar usuarios...`,noUsers:`No se encontraron usuarios`,noUsersMatching:`No hay usuarios que coincidan con tu búsqueda`,columns:{user:`Usuario`,email:`Correo electrónico`,role:`Rol`,created:`Creado`,actions:`Acciones`},roles:{admin:`Admin`,user:`Usuario`},noEmail:`Sin correo`,deleteConfirm:`¿Estás seguro de que deseas eliminar el usuario "{{name}}"?`,deleteSuccess:`Usuario eliminado exitosamente`,deleteFailed:`Error al eliminar usuario`,cannotDeleteSelf:`No puedes eliminar tu propia cuenta`,approval:{title:`Aprobaciones pendientes`,description:`Revisa los nuevos registros antes de permitirles acceso a esta instancia.`,registered:`Registrado`,activate:`Activar cuenta`,reject:`Rechazar registro`,approved:`{{name}} ya puede iniciar sesión.`,failed:`No se pudo aprobar la cuenta.`,notification:`{{count}} registro(s) esperando tu aprobación.`,notificationBadge:`{{count}} aprobaciones de usuario pendientes`},form:{title:{create:`Crear usuario`,edit:`Editar usuario`},username:`Nombre de usuario`,usernamePlaceholder:`Ingresa nombre de usuario`,email:`Correo electrónico`,emailPlaceholder:`Ingresa correo (opcional)`,password:`Contraseña`,passwordPlaceholder:`Ingresa contraseña`,passwordHint:`Deja en blanco para mantener contraseña actual`,role:`Rol`,creating:`Creando...`,updating:`Actualizando...`,createButton:`Crear usuario`,updateButton:`Actualizar usuario`,createSuccess:`Usuario creado exitosamente`,updateSuccess:`Usuario actualizado exitosamente`,createFailed:`Error al crear usuario`,updateFailed:`Error al actualizar usuario`},workAccess:{title:`Acceso a Work`,description:`Permitir que todos los usuarios activos creen y ejecuten tareas de Work en sandboxes aislados. Los administradores siempre tienen acceso; los espacios de trabajo en carpetas del host siguen siendo solo para administradores.`,saved:`Acceso a Work actualizado`,saveFailed:`No se pudo actualizar el acceso a Work`},workPolicies:{title:`Políticas de Work`,description:`Preajustes de ejecución con nombre (imagen, límites, parada por inactividad) bajo los que crear tareas. Los campos vacíos heredan los valores globales.`,add:`Añadir política`,name:`Nombre`,image:`Imagen`,memory:`Memoria`,cpu:`CPU`,pids:`Límite de PID`,workspaceSize:`Tamaño del espacio de trabajo`,idleMinutes:`Parada por inactividad (minutos)`,networkDefault:`Red predeterminada`,networkInherit:`Heredar predeterminado`,networkOn:`Activada`,networkOff:`Desactivada`,save:`Guardar`,cancel:`Cancelar`,edit:`Editar política`,delete:`Eliminar política`,deleteConfirm:`¿Eliminar esta política? Las tareas que la usan vuelven a los valores globales.`,empty:`Aún no hay políticas. Las tareas usan los valores de ejecución globales.`,saved:`Política de Work guardada`,deleted:`Política de Work eliminada`,failed:`No se pudo guardar la política de Work`,invalidNumber:`El límite de PID y la parada por inactividad deben ser números.`},modelAccess:{title:`Descarga de modelos`,description:`Permitir que todos los usuarios activos descarguen modelos desde Ollama y el navegador de Hugging Face. Los administradores siempre pueden descargar modelos.`,saved:`Acceso a descarga de modelos actualizado`,saveFailed:`No se pudo actualizar el acceso a descarga de modelos`},webSearchAccess:{title:`Búsqueda web`,description:`Permitir que todos los usuarios activos usen la búsqueda web en chats y tareas de Work. Los administradores siempre pueden usarla. El motor se configura en Configuración > Búsqueda.`,saved:`Acceso a búsqueda web actualizado`,saveFailed:`No se pudo actualizar el acceso a búsqueda web`},agentAccess:{title:`Agentes`,description:`Ofrecer la sección Agentes (Libre Claw) a los administradores. Las CLI de agentes se ejecutan en el host como el usuario del servidor, fuera del sandbox de Work.`,saved:`Acceso a agentes actualizado`,saveFailed:`No se pudo actualizar el acceso a agentes`,lockedByEnv:`Fijado por la variable de entorno AGENT_CLI_MODELS_ENABLED.`},groups:{title:`Grupos`,description:`Agrupa cuentas para gestionar el acceso compartido e inspecciona lo que cada cuenta puede hacer en la práctica.`,newGroup:`Nuevo grupo`,nameLabel:`Nombre`,nameRequired:`Dale un nombre al grupo.`,descriptionLabel:`Descripción (opcional)`,create:`Crear grupo`,creating:`Creando…`,created:`Grupo creado.`,createFailed:`No se pudo crear el grupo.`,deleted:`Grupo eliminado.`,deleteFailed:`No se pudo eliminar el grupo.`,deleteGroup:`Eliminar grupo`,loadFailed:`No se pudieron cargar los grupos.`,empty:`Aún no hay grupos.`,memberCount:`Miembros: {{count}}`,noMembers:`Aún no hay miembros.`,addedAt:`Añadido`,addMember:`Añadir miembro`,add:`Añadir`,selectUser:`Selecciona un usuario…`,memberAdded:`Miembro añadido.`,memberAddFailed:`No se pudo añadir el miembro.`,removeMember:`Quitar miembro`,memberRemoved:`Miembro quitado.`,memberRemoveFailed:`No se pudo quitar el miembro.`,effectiveTitle:`Acceso efectivo`,effectiveDescription:`Elige una cuenta para ver el acceso que resulta de su rol, grupos y permisos.`,accessLookupFailed:`No se pudo cargar el acceso efectivo.`,roleLabel:`Rol`,statusLabel:`Estado`,memberOf:`Grupos`,featuresLabel:`Acceso a funciones`,grantsLabel:`Permisos`,grantVia:`vía`},audit:{title:`Registro de auditoría de seguridad`,description:`Inicios de sesión recientes, comprobaciones de permisos y cambios administrativos en esta instancia.`,actionFilter:`Acción`,actionPlaceholder:`p. ej., auth.login`,resultFilter:`Resultado`,resultSuccess:`Éxito`,resultDenied:`Denegado`,resultFailure:`Error`,limitFilter:`Límite`,loadFailed:`No se pudo cargar el registro de auditoría.`,empty:`Aún no hay eventos de auditoría registrados.`,actor:`Actor`,target:`Objetivo`}},usageAnalytics:{eyebrow:`Administración`,title:`Uso del proveedor`,description:`Sigue las llamadas de API salientes y el consumo de modelos en los plugins habilitados en esta instancia.`,days:`{{count}} días`,refresh:`Actualizar uso`,loadFailed:`No se pudo cargar el uso del proveedor.`,metrics:{calls:`Llamadas`,tokens:`Tokens`},cards:{calls:`Llamadas de API`,callsDetail:`Entre {{count}} usuario(s) activo(s)`,tokens:`Tokens reportados`,tokensDetail:`Uso reportado en {{count}} llamada(s)`,success:`Tasa de éxito`,successDetail:`{{count}} llamada(s) fallida(s)`,latency:`Latencia media`,latencyDetail:`Tiempo de extremo a extremo del proveedor`},activity:{title:`Consumo a lo largo del tiempo`,callsDescription:`Solicitudes salientes diarias a los complementos habilitados`,tokensDescription:`Totales diarios de tokens reportados por los proveedores`,chartLabel:`Gráfico diario de {{metric}} del proveedor`},models:{title:`Consumo por modelo`,description:`Los modelos con mayor tráfico en este período.`,model:`Modelo`,success:`Éxito`,latency:`Latencia`},providers:{title:`Tráfico de complementos habilitados`},capabilities:{title:`Mezcla de capacidades`,characters:`{{count}} caracteres`,bytes:`{{count}} bytes`,images:`{{count}} imágenes`,jobs:`{{count}} trabajos de video`,inputs:`{{count}} entradas`,reportedTokens:`{{count}} tokens reportados`},empty:{title:`Aún no hay llamadas al proveedor`,description:`Las llamadas aparecerán aquí después de que un complemento habilitado gestione solicitudes de chat, Work, incrustación, imagen, voz, sonido o video.`},privacyNote:`El uso se mide en el servidor en el límite del complemento saliente. Libre WebUI almacena proveedor, modelo, tiempo, estado y contadores reportados, nunca prompts, respuestas, endpoints, credenciales ni cuerpos de error del proveedor. Los totales de tokens incluyen solo las llamadas en las que el proveedor devolvió metadatos de uso.`,heatmap:{title:`Un año de actividad`,description:`Llamadas diarias a proveedores durante el último año, coloreadas según el modelo más usado cada día.`,calls:`llamadas`,noCalls:`Sin llamadas`,other:`Otros modelos`,less:`Menos`,more:`Más`,yearTotal:`{{formatted}} llamadas en el último año`}},systemPage:{eyebrow:`Administración`,title:`Sistema`,description:`Monitoree la máquina y el entorno de ejecución que alojan esta instancia de Libre WebUI.`,updated:`Actualizado el {{date}}`,refresh:`Actualizar información del sistema`,loadFailed:`No se pudo cargar la información del sistema.`,cards:{uptime:`Tiempo de actividad del host`,uptimeDetail:`En ejecución desde {{date}}`,memory:`Memoria usada`,memoryDetail:`{{used}} de {{total}}`,freeSpace:`Espacio libre`,freeSpaceDetail:`{{label}} · {{total}} total`,containers:`Contenedores en ejecución`,containersDetail:`{{total}} contenedor(es) conocidos por Docker`,dockerUnavailable:`Docker no disponible`,unavailable:`No disponible`},host:{title:`Host y entorno de ejecución`,description:`Detalles del sistema operativo, procesador y proceso de Libre WebUI.`,container:`Entorno de ejecución de contenedores`,native:`Tiempo de ejecución nativo`,hostname:`Nombre de host`,operatingSystem:`Sistema operativo`,processor:`Procesador`,logicalCpus:`CPU lógicas`,loadAverage:`Carga media · 1 / 5 / 15 min`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`Proceso`,workingDirectory:`Directorio de trabajo`},memory:{title:`Memoria`,description:`Memoria del sistema visible en tiempo de ejecución y uso del proceso de la aplicación.`,usedOf:`{{used}} usados de {{total}}`,free:`{{value}} libres`,processRss:`RSS del proceso`,heapUsed:`Heap V8 usado`,heapTotal:`Heap V8 total`,external:`Memoria externa`},storage:{title:`Almacenamiento`,description:`Espacio disponible para el sistema de archivos del tiempo de ejecución y los datos persistentes de la aplicación.`,used:`{{value}} usados`,free:`{{value}} libres`,empty:`La información del sistema de archivos no está disponible en este tiempo de ejecución.`},docker:{title:`Docker`,description:`Estado de solo lectura de Docker Engine y una lista reducida de contenedores.`,connected:`Conectado`,unavailable:`No disponible`,unavailableDetail:`Los diagnósticos de Docker Engine no están disponibles.`,socketStatus:`Socket local: {{status}}`,mounted:`montado`,notMounted:`no montado`,running:`En ejecución`,stopped:`Detenido`,paused:`En pausa`,total:`Total`,version:`Versión`,host:`Host`,architecture:`Arquitectura`,cpus:`CPU`,memory:`Memoria`,container:`Contenedor`,image:`Imagen`,state:`Estado`,created:`Creado`,empty:`Docker está conectado y actualmente no hay contenedores listados.`},network:{title:`Red`,description:`Interfaces visibles en tiempo de ejecución, direcciones y contadores de tráfico de Linux.`,internal:`interna`,empty:`No hay interfaces de red visibles para el entorno de ejecución de la aplicación.`},securityNote:`Esta página está restringida a administradores. El servidor solo devuelve resúmenes operativos: no expone variables de entorno, credenciales, etiquetas de Docker, montajes, comandos de contenedor ni cargas útiles de inspección. Cuando Libre WebUI se ejecuta en un contenedor, los detalles de CPU y memoria a nivel de host provienen de Docker Engine cuando su socket local está disponible; otros valores describen el entorno de ejecución de la aplicación.`,work:{title:`Work`,description:`Sandboxes de todos los usuarios`,access:`Acceso`,accessAdmins:`Solo administradores`,accessAllUsers:`Todos los usuarios`,runtimeAvailable:`Disponible`,runtimeUnavailable:`No disponible`,activeRuntimes:`Entornos activos`,pendingCleanups:`Limpiezas pendientes`,orphans:`Contenedores huérfanos`,owner:`Propietario`,task:`Tarea`,state:`Estado`,preview:`Vista previa`,terminals:`Terminales`,updated:`Actualizado`,stateRunning:`En ejecución`,stateStopped:`Detenido`,stateStarting:`Iniciando`,stateUnknown:`Desconocido`,noTasks:`Aún no hay tareas de Work.`}},chatHistory:{label:`Historial de la conversación`,jumpToTurn:`Ir al turno {{index}} de {{total}}`},chatMessage:{you:`Tú`,assistant:`Asistente`,system:`Sistema`,copy:`Copiar`,copyMessage:`Copiar mensaje`,copied:`¡Copiado!`,regenerate:`Regenerar`,regenerateResponse:`Regenerar respuesta`,edit:`Editar`,editSystemMessage:`Editar mensaje del sistema`,saveChanges:`Guardar cambios`,cancelEditing:`Cancelar edición`,saveAndSubmit:`Guardar y enviar`,goodResponse:`Buena respuesta`,badResponse:`Mala respuesta`,delete:`Eliminar`,deleteConfirm:`¿Eliminar este mensaje?`,branch:`Ramificar`,speaking:`Hablando...`,speakMessage:`Leer mensaje`,stopSpeaking:`Detener lectura`,showMore:`Mostrar más`,showLess:`Mostrar menos`,thinking:`Pensando`,thoughtFor:`Pensó durante {{duration}}`,hiddenLines:`{{count}} líneas ocultas`,systemMessagePlaceholder:`Ingresa tu mensaje del sistema...`,fullSizeImage:`Imagen a tamaño completo`,startConversation:`Iniciar una conversación`,startConversationDescription:`Envía un mensaje para comenzar a chatear con tu asistente de IA. Haz preguntas, obtén ayuda con código o mantén una conversación natural.`,scrollToBottom:`Desplazar al final`,newMessages:`Nuevos mensajes`},imageGallery:{title:`Galería de imágenes`,noImages:`Aún no hay imágenes`,noImagesHint:`Genera tu primera imagen usando el panel de la derecha`,delete:`Eliminar`,download:`Descargar`,deleteConfirm:`¿Estás seguro de que deseas eliminar esta imagen?`,deleteSuccess:`Imagen eliminada`,deleteFailed:`Error al eliminar imagen`,downloadFailed:`Error al descargar imagen`,loadMore:`Cargar más ({{current}} de {{total}})`,loadFailed:`Error al cargar galería`},imageGeneration:{title:`Generar imagen`,prompt:`Prompt`,promptPlaceholder:`Describe la imagen que quieres crear...`,model:`Modelo`,selectModel:`Seleccionar modelo`,noModels:`No hay modelos de generación de imágenes disponibles`,configurePlugin:`Configura un plugin con soporte de generación de imágenes`,size:`Tamaño`,quality:`Calidad`,style:`Estilo`,generate:`Generar`,generating:`Generando...`,success:`Imagen generada exitosamente`,failed:`Error al generar imagen`,enterPrompt:`Por favor ingresa un prompt`,promptTooLong:`El prompt excede la longitud máxima de {{max}} caracteres`},mediaGeneration:{title:`Generar multimedia`,description:`Crea video, sonido, música o voz con un proveedor multimedia activado.`,image:`Imagen`,video:`Video`,audio:`Audio`,sound:`Sonido`,speech:`Voz`,model:`Modelo`,voice:`Voz o ID de voz`,cloneVoice:`Clonar una voz de referencia`,cloneVoiceDescription:`Genera esta voz a partir de una grabación de referencia en lugar de una voz predefinida.`,referenceAudio:`Audio de referencia`,referenceTranscript:`Transcripción exacta de la referencia`,referenceTranscriptPlaceholder:`Escribe exactamente lo que se dice en la grabación de referencia…`,referenceAudioTooLarge:`El audio de referencia debe ocupar {{max}} o menos.`,cloneConsent:`Clona una voz solo si tienes el permiso del hablante. La grabación se envía al proveedor seleccionado para esta generación y Libre WebUI no la guarda.`,saveVoiceProfile:`Guardar como voz reutilizable`,saveVoiceProfileDescription:`Guarda de forma segura esta grabación de referencia y su transcripción. Libre WebUI las envía al proveedor seleccionado en cada lote de Voz que usa esta voz.`,voiceProfileName:`Nombre de la voz guardada`,voiceProfileNamePlaceholder:`Por ejemplo, Mi voz`,voiceStorageConsent:`Confirmo que tengo permiso del hablante para clonar y guardar esta voz. La referencia permanecerá guardada hasta que la elimine.`,resolution:`Resolución`,aspectRatio:`Relación de aspecto`,duration:`Duración`,providerDefault:`Predeterminado del proveedor`,generateAudio:`Generar audio con el video cuando se admita`,prompt:`Indicación`,text:`Texto a hablar`,videoPlaceholder:`Describe la escena, el movimiento, la cámara y la iluminación...`,audioPlaceholder:`Introduce el texto que quieres que diga la voz...`,soundPlaceholder:`Describe el sonido, la música, la atmósfera o la respuesta hablada que deseas...`,generate:`Generar`,generating:`Generando… esto puede tardar varios minutos`,success:`Multimedia generada y guardada en Imagine`,successWithSavedVoice:`Se generó el contenido y «{{name}}» ya está disponible en los ajustes de Voz`,failed:`Error al generar multimedia`,loadFailed:`Error al cargar los proveedores multimedia`,noModels:`No hay modelos de {{kind}} disponibles. Activa un proveedor compatible y guarda sus credenciales primero.`},mediaGallery:{itemCount:`{{count}} elementos`,empty:`Aún no hay multimedia generada`,emptyHint:`Genera una imagen, video o clip de voz y aparecerá aquí.`,filters:{all:`Todos`,image:`Imágenes`,video:`Vídeos`,audio:`Audio`}},errorBoundary:{title:`Algo salió mal`,description:`Encontramos un error inesperado. Por favor intenta actualizar la página.`,tryAgain:`Actualizar página`,goHome:`Ir al inicio`,errorDetails:`Detalles del error (desarrollo)`},documents:{title:`Documentos`,upload:`Subir documento`,uploading:`Subiendo...`,noDocuments:`No hay documentos subidos`,uploadHint:`Sube documentos para usar en tus conversaciones`,delete:`Eliminar`,deleteConfirm:`¿Estás seguro de que deseas eliminar este documento?`,deleteSuccess:`Documento eliminado`,deleteFailed:`Error al eliminar documento`,uploadSuccess:`Documento subido exitosamente`,uploadFailed:`Error al subir documento`,types:`Soportados: PDF, TXT, MD, DOCX`,unsupportedFileType:`Solo se soportan archivos PDF y TXT`,fileSizeTooLarge:`El tamaño del archivo debe ser menor a 10 MB`,uploadSuccessWithName:`Documento "{{name}}" subido exitosamente`,removeSuccess:`Documento eliminado exitosamente`,removeFailed:`Error al eliminar documento`,removeError:`Ocurrió un error al eliminar el documento`,clickToUpload:`Haz clic para subir`,orDragAndDrop:`o arrastra y suelta`,fileTypesAndSize:`Archivos PDF o TXT hasta 10 MB`,uploadedDocuments:`Documentos subidos`,removeDocument:`Eliminar documento`},ttsButton:{speak:`Hablar`,stop:`Detener`,speaking:`Hablando...`,generateFailed:`Error al generar voz`,playbackFailed:`Error en reproducción de audio`,stopSpeaking:`Detener lectura`,preparingSpeech:`Preparando voz...`,generatingSpeech:`Generando voz...`,bufferingSpeech:`Almacenando voz en búfer...`,enableAudio:`Activar audio y leer en voz alta`,enableAudioShort:`Activar audio`,readAloud:`Leer en voz alta`},artifacts:{title:`Artefactos`,code:`Código`,preview:`Vista previa`,copy:`Copiar código`,copied:`¡Copiado!`,download:`Descargar`,expand:`Expandir`,collapse:`Contraer`,openInNewTab:`Abrir en nueva pestaña`,invalidSvg:`Contenido SVG inválido`,invalidJson:`Contenido JSON inválido`,previewMode:`Modo vista previa`,codeMode:`Modo código`,copyContent:`Copiar contenido`,openInPanel:`Abrir en panel`,openInNewWindow:`Abrir en nueva ventana`,created:`Creado`,closePanelEsc:`Cerrar panel (Esc)`,copyButton:`Copiar`,open:`Abrir`,dragEdgeToResize:`Arrastra el borde para redimensionar`,previewUnavailable:`Preview unavailable`,previewUnavailableDescription:`This artifact does not contain renderable preview content. Switch to code view to inspect the source.`,versionOf:`Versión {{current}} de {{total}}`,previousVersion:`Versión anterior`,nextVersion:`Versión siguiente`},personaImportExport:{title:`Importar y exportar personas`,description:`Exporta tus personas para compartirlas o importa personas de otros`,exportPersonas:`Exportar personas`,importPersonas:`Importar personas`,noPersonasToExport:`No hay personas para exportar`,personasAvailable:`{{count}} persona disponible`,personasAvailable_plural:`{{count}} personas disponibles`,exportAll:`Exportar todo`,uploadJsonFile:`Subir archivo JSON`,pasteJsonLabel:`Pegar datos JSON`,pasteJsonPlaceholder:`Pega los datos JSON de la persona aquí...`,importing:`Importando...`,importButton:`Importar persona(s)`,expectedFormat:`Formato JSON esperado:`,exportSuccess:`Persona "{{name}}" exportada exitosamente`,exportFailed:`Error al exportar persona`,exportAllSuccess:`Todas las {{count}} personas exportadas exitosamente`,exportAllFailed:`Error al exportar personas`,pasteJsonData:`Por favor pega los datos JSON de la persona`,importMultipleSuccess:`Se importaron {{count}} personas exitosamente`,importMultipleFailed:`Error al importar {{count}} personas`,importNoneFailed:`Error al importar cualquier persona`,importSuccess:`Persona importada exitosamente`,importFailed:`Error al importar persona`},generationStats:{details:`Detalles`,promptTokens:`Tokens del prompt:`,generatedTokens:`Tokens generados:`,totalTokens:`Tokens totales:`,speed:`Velocidad:`,promptEval:`Evaluación del prompt:`,generation:`Generación:`,modelLoad:`Carga del modelo:`,totalTime:`Tiempo total:`,generatedAt:`Generado a las:`},userMenu:{loggedOut:`Sesión cerrada correctamente`,pictureUpdated:`Foto de perfil actualizada`,failedUpdateAvatar:`Error al actualizar el avatar`,failedUpdatePicture:`Error al actualizar la foto de perfil`,noEmail:`Sin correo electrónico`,changePicture:`Cambiar imagen`,settings:`Configuración`,userManagement:`Gestión de usuarios`,signOut:`Cerrar sesión`,changeProfilePicture:`Cambiar foto de perfil`},pluginManager:{title:`Gestor de plugins`,upload:`Subir`,addJson:`Añadir JSON`,browseHF:`Explorar HF Hub`,confirmDelete:`¿Estás seguro de que quieres eliminar este plugin?`,uploading:`Subiendo plugin...`,pasteJson:`Pega el JSON del plugin aquí...`,installPlugin:`Instalar plugin`,loading:`Cargando plugins...`,noPlugins:`No hay plugins instalados`,noPluginsDescription:`Sube un archivo de plugin o añade uno desde JSON para comenzar.`,active:`Activo`,id:`ID`,endpoint:`Endpoint`,activate:`Activar`,deactivate:`Desactivar`,activePlugin:`Plugin activo`,activePluginDescription:`Todas las solicitudes de chat se enrutarán a través de este plugin`,variables:{title:`Variables`,save:`Guardar`,saving:`Guardando...`,saved:`Variables guardadas`,saveFailed:`Error al guardar variables`,resetDefaults:`Restablecer valores`,reset:`Variables restablecidas`,resetFailed:`Error al restablecer las variables`,sensitiveSet:`Valor establecido (ingrese nuevo valor para cambiar)`,showValue:`Mostrar valor de {{label}}`,hideValue:`Ocultar valor de {{label}}`,connection:`Conexión`,advanced:`Parámetros avanzados`,inherited:`Usar predeterminado del proveedor`,inheritedValue:`Usar predeterminado del proveedor ({{value}})`,enabled:`Habilitado`,disabled:`Deshabilitado`,required:`Se requiere un valor`,fullApiEndpoint:`URL completa del endpoint de API`,endpointHelp:`Introduce la URL de solicitud completa, incluyendo su ruta de operación (por ejemplo, /v1/chat/completions), no solo la URL base del proveedor.`,invalidUrl:`Introduce una URL de endpoint de API completa válida, por ejemplo https://provider.example/v1/chat/completions`,insecureUrl:`Los endpoints de API deben usar HTTP o HTTPS.`,httpWarning:`HTTP no cifra las credenciales ni el tráfico. Úsalo solo en una red de confianza.`,invalidBaseUrl:`Las URLs base no pueden contener una cadena de consulta ni un fragmento.`,invalidApiPath:`Debe empezar con / y no contener URL, consulta, fragmento ni el segmento ..`,tooLong:`El valor es demasiado largo`}},huggingface:{title:`Explorador de modelos HuggingFace`,subtitle:`Explora y selecciona modelos del Hub`,searchPlaceholder:`Buscar modelos...`,filters:`Filtros`,task:`Tarea`,sortBy:`Ordenar por`,noModels:`No se encontraron modelos`,adjustSearch:`Intenta ajustar tu búsqueda o filtros`,gated:`Restringido`,selected:`Seleccionado`,select:`Seleccionar`,refresh:`Actualizar`,modelsFound:`modelos encontrados`},demoMode:{title:`Modo demo`,github:`GitHub`},libreClaw:{title:`Agentes`,subtitle:`Ejecuciones, aprobaciones, programaciones, memoria, herramientas y uso del agente local.`,dashboard:`Panel de control`,connection:{disconnectedTitle:`El demonio de Libre Claw no está conectado`,disconnectedDescription:`Inícielo localmente con <command>libre-claw start</command> o configure <env>LIBRE_CLAW_BASE_URL</env> en el entorno backend.`},status:{connected:`Conectado`,disconnected:`desconectado`,activeRuns:`{{count}} activo`,activeRuns_plural:`{{count}} activo`},states:{queued:`En cola`,running:`En ejecución`,blocked:`Bloqueado`,done:`hecho`,failed:`Fallido`,cancelled:`Cancelado`},startRun:{title:`Iniciar ejecución del agente`,placeholder:`Pídale a Libre Claw que inspeccione un repositorio, corrija un error, ejecute una revisión, programe un informe...`,chatRun:`Ejecutar chat`,goalMode:`Modo objetivo`,providerOverride:`Anulación del proveedor`,modelOverride:`Anulación de modelo`,run:`Ejecutar`},modelRoute:{title:`Ruta Modelo`,providerPlaceholder:`proveedor`,modelPlaceholder:`modelo`,persistGlobal:`Persistir en la configuración global Libre Claw`,saveModel:`Guardar modelo`,theme:`Tema de Libre Claw`,saveTheme:`Guardar tema`},runs:{title:`Ejecuciones`,empty:`Aún no hay ejecuciones de Libre Claw.`},timeline:{title:`Cronología de la ejecución`,empty:`Seleccione una ejecución para inspeccionar sus eventos.`,streaming:`Transmitiendo...`,assistantResponse:`Respuesta del asistente`,resultOk:`bien`,resultError:`error`,labels:{userMessage:`Mensaje de usuario`,toolCall:`llamada de herramienta`,toolResult:`Resultado de la herramienta`,approvalRequest:`Solicitud de aprobación`,approvalResponse:`Respuesta de aprobación`,runStarted:`Ejecución iniciada`,runFinished:`Ejecución finalizada`,usage:`Uso`,error:`error`}},approvals:{needed:`Aprobación necesaria`,allowOnce:`permitir una vez`,alwaysAllowTool:`Permitir siempre la herramienta`,deny:`Rechazar`,toolApprovalRequested:`Se solicita aprobación de herramienta`},automations:{title:`Automatizaciones`,namePlaceholder:`Nombre`,schedulePlaceholder:`daily 09:00`,promptPlaceholder:`Aviso de automatización`,create:`crear`,empty:`No hay automatizaciones programadas Libre Claw.`,runNow:`Ejecutar ahora`,pause:`Pausa`,resume:`Reanudar`,routes:{report:`Informe`,telegram:`Telegram`},status:{active:`Activo`,paused:`En pausa`}},usageFallback:{title:`Uso y respaldo`,usage:`Uso`,fallbackRoute:`Ruta alternativa`,noUsage:`Aún no hay registros de uso.`},metrics:{provider:`Proveedor`,model:`modelo`,input:`Entrada`,output:`Salida`,cached:`En caché`,reasoning:`Razonamiento`,cost:`Costo`,tool:`Herramienta`,resolution:`Resolución`,state:`Estado`,stopReason:`Motivo de detención`,tokens:`{{formatted}} ficha`,tokens_plural:`{{formatted}} fichas`},fallbacks:{tool:`herramienta`,unknown:`desconocido`,resolved:`resuelto`,unknownError:`Error desconocido`},toasts:{loadStatusFailed:`No se pudo cargar el estado Libre Claw`,enterTask:`Ingrese una tarea para Libre Claw`,runStarted:`Ejecución de Libre Claw iniciada`,startRunFailed:`No se pudo iniciar la ejecución de Libre Claw`,runCancelled:`Ejecución cancelada`,cancelRunFailed:`No se pudo cancelar la ejecución`,approved:`Aprobado`,denied:`denegado`,resolvePermissionFailed:`No se pudo resolver el permiso`,providerModelRequired:`Se requiere proveedor y modelo.`,modelUpdated:`Modelo de Libre Claw actualizado`,updateModelFailed:`No se pudo actualizar el modelo`,themeUpdated:`Tema de Libre Claw actualizado`,updateThemeFailed:`No se pudo actualizar el tema`,automationRequired:`Se requieren el nombre, el cronograma y el aviso de la automatización`,automationCreated:`Automatización creada`,createAutomationFailed:`No se pudo crear la automatización`,automationUpdated:`Automatización actualizada`,updateAutomationFailed:`No se pudo actualizar la automatización`}},work:{title:`Trabajo`,subtitle:`Espacios de trabajo aislados para modelos`,tasks:{title:`Tareas de trabajo`,subtitle:`Espacios de trabajo locales persistentes`,new:`Nueva tarea`,emptyTitle:`Aún no hay tareas de trabajo`,empty:`Tus tareas de trabajo aparecerán aquí después de enviar el primer mensaje.`,untitled:`Tarea sin título`,actions:`Acciones de la tarea`,delete:`Eliminar tarea`,deleteNamed:`Eliminar {{title}}`,deleteConfirm:`¿Eliminar «{{title}}» y su espacio de trabajo de forma permanente?`,close:`Cerrar tareas de trabajo`,open:`Abrir tareas de trabajo`,rename:`Título de la tarea`,loading:`Cargando tarea…`,notFound:`Esta tarea de trabajo no está disponible`,back:`Iniciar una nueva tarea`,status:`Estado: {{status}}`},landing:{title:`Iniciar una nueva tarea de trabajo`,description:`Asigna a un modelo local o de un proveedor configurado un espacio de trabajo aislado y persistente. Puede inspeccionar archivos, ejecutar herramientas y continuar donde lo dejó cuando vuelvas.`,isolated:`Aislado`,isolatedBody:`Cada tarea tiene su propio contenedor y archivos.`,durable:`Persistente`,durableBody:`Vuelve más tarde a su conversación y espacio de trabajo.`,controlled:`Controlado`,controlledBody:`El entorno de ejecución y los archivos de la tarea permanecen aislados del host.`},composer:{placeholder:`Describe lo que quieres crear o cambiar…`,model:`Modelo de trabajo`,noModels:`No hay modelos compatibles con el modo Trabajo`,cancel:`Detener`,send:`Ejecutar`,hint:`Cada tarea conserva sus propios archivos e historial. Revisa la salida del modelo antes de usarla.`,remoteTitle:`Proveedor remoto`,remoteHint:`La conversación y la salida de las herramientas se envían al servicio configurado. Una ejecución autónoma puede realizar varias llamadas al proveedor y generar cargos. Los archivos del espacio de trabajo permanecen locales, salvo que una herramienta devuelva su contenido.`,remoteDismiss:`Ocultar`,remoteDismissLabel:`Ocultar aviso del proveedor remoto`,remoteDismissFailed:`No se pudo guardar la preferencia del proveedor remoto.`,noModelSelected:`No hay ningún modelo compatible con el modo Trabajo seleccionado.`},conversation:{ready:`Espacio de trabajo listo`,empty:`Continúa la tarea abajo. Esta conversación y sus archivos permanecen asociados a este espacio de trabajo.`,loadOlder:`Cargar mensajes anteriores`},status:{preparing:`Preparando el espacio de trabajo aislado…`,running:`Trabajando en el espacio de trabajo local…`},statusLabels:{idle:`Inactivo`,thinking:`Pensando`,complete:`Completado`,needsInput:`Requiere información`,error:`Error`},live:{connecting:`Conectando con las actualizaciones en vivo…`,reconnecting:`Reconectando con las actualizaciones en vivo…`,unavailable:`Actualizaciones en vivo no disponibles`,newActivity:`Nueva actividad`,skillsLoaded:`Habilidades del espacio de trabajo · {{count}}`},runtime:{unavailable:`Entorno de ejecución no disponible`,ready:`Entorno de ejecución listo`,readyOllama:`Docker listo`,readyPlugin:`Docker + plugin listos`,readyHybrid:`Docker + modelos listos`,reason:`Se requieren Docker y un proveedor de modelos disponible mediante Ollama o un plugin.`},workspace:{label:`Vistas del espacio de trabajo`,files:`Archivos`,activity:`Actividad`,preview:`Vista previa`,resize:`Cambiar el tamaño de la conversación y el espacio de trabajo`,resizeHint:`Arrastra para cambiar el tamaño. Usa las teclas de flecha para un control preciso. Haz doble clic o pulsa Intro para restablecer.`,splitSize:`Conversación {{conversation}} %, espacio de trabajo {{workspace}} %`,terminal:`Terminal`,git:`Git`},files:{discard:`¿Descartar los cambios no guardados del archivo?`,leaveWithDraft:`¿Salir de este archivo? La edición sin guardar se conservará como borrador en el navegador.`,up:`Carpeta principal`,back:`Volver a los archivos`,empty:`Aún no hay archivos en esta carpeta.`,select:`Selecciona un archivo para inspeccionarlo y editarlo.`,editorLabel:`Editor de archivos: {{path}}`,format:`Formatear`,formatted:`Código formateado.`,formatFailed:`No se pudo formatear este archivo.`,formatShortcut:`Formatear (Mayús+Alt+F)`,formatTooLarge:`El formateo está limitado a archivos de menos de 100.000 caracteres y 4.000 líneas.`,formatUnsupported:`El formato no está disponible para este tipo de archivo.`,saveShortcut:`Guardar (⌘/Ctrl+S)`,highlightPaused:`El resaltado en tiempo real está pausado para archivos grandes, a fin de mantener una edición fluida.`,plainTextLarge:`Texto sin formato · archivo grande`,changes:`Cambios`,changesSince:`Qué cambió desde el último turno`,diffLabel:`Cambios desde el último turno: {{path}}`,diffFolded:`{{count}} líneas sin cambios`},activity:{empty:`Los comandos, las operaciones de archivos y los resultados de las herramientas aparecerán aquí.`,toolActivity:`Actividad de herramientas`,details:`Detalles`,kinds:{message:`Mensaje`,toolCall:`Llamada a herramienta`,toolResult:`Resultado de herramienta`,error:`Error`}},preview:{command:`Comando de inicio opcional`,start:`Iniciar vista previa`,stop:`Detener vista previa`,open:`Abrir`,starting:`Iniciando vista previa…`,frameTitle:`Vista previa del espacio de trabajo`,failed:`No se pudo iniciar la vista previa. Revisa Actividad e inténtalo con otro comando.`,empty:`Inicia la aplicación dentro de este espacio de trabajo para inspeccionarla aquí.`},mobile:{surface:`Vista de la tarea`,conversation:`Conversación`,workspace:`Espacio de trabajo`},toasts:{runFailed:`No se pudo iniciar la tarea de trabajo.`,updateFailed:`No se pudo actualizar esta tarea.`,renameFailed:`No se pudo cambiar el nombre de esta tarea.`,cancelled:`Ejecución de trabajo detenida.`,cancelFailed:`No se pudo detener la ejecución de trabajo.`,deleteFailed:`No se pudo eliminar esta tarea de trabajo.`,saveFailed:`No se pudo guardar este archivo.`,saved:`Archivo guardado.`,previewFailed:`No se pudo iniciar la vista previa.`,previewStopFailed:`No se pudo detener la vista previa.`},terminal:{connecting:`Abriendo un shell en el entorno aislado…`,closed:`La sesión de terminal ha terminado.`,failed:`No se pudo iniciar la sesión de terminal.`,reconnect:`Reconectar`,unavailable:`La terminal interactiva no está disponible en esta instalación.`,blockedByRun:`El modelo está usando este contenedor. La terminal se abrirá al terminar el turno.`,taskRunning:`Turno del modelo en curso`},policy:{label:`Política de ejecución`,default:`Predeterminada (límites globales)`},git:{actionFailed:`La acción de Git falló.`,blockedByPreview:`Detén la vista previa antes de cambiar el estado de Git.`,blockedByRun:`Las acciones de escritura de Git se desbloquean al terminar el turno del modelo.`,branchCreated:`{{name}} creada.`,branchSwitched:`Cambiado a {{name}}.`,clean:`El árbol de trabajo está limpio.`,commit:`Confirmar cambios preparados`,commitMessage:`Mensaje del commit`,committed:`Commit creado.`,detached:`HEAD separado`,diff:`Vista previa del diff`,diffFailed:`No se pudo cargar este diff.`,history:`Historial local`,initialize:`Inicializar Git`,initializeDescription:`Crea un repositorio local para estado, diffs, ramas y commits. No se conectan credenciales remotas.`,initialized:`Repositorio Git inicializado.`,loadFailed:`No se pudo cargar el estado de Git.`,localOnly:`Solo Git local. Push, pull y pull requests requieren un intermediario de credenciales de confianza aparte.`,newBranch:`Nueva rama local`,noCommits:`Aún no hay commits.`,noDiff:`Aún no hay diff textual. Los archivos sin seguimiento aparecen tras prepararlos.`,notInitialized:`Git no está inicializado`,selectChange:`Selecciona un archivo modificado para inspeccionar su diff.`,selectPath:`Seleccionar {{path}}`,stageAll:`Preparar todo`,stageSelected:`Preparar {{count}}`,staged:`Cambios preparados.`,switchBranch:`Cambiar de rama local`,changes:`Cambios`,createBranch:`Crear`,filterFiles:`Filtrar archivos modificados`,noFilterMatches:`Ningún archivo modificado coincide con este filtro.`,allChanges:`Todos los cambios`,diffTruncated:`Este diff está truncado.`,binaryFile:`Archivo binario, sin diff de texto.`},hostWorkspace:{hint:`Déjalo en blanco para un espacio aislado, o apunta la tarea a una carpeta de esta máquina.`,label:`Carpeta del espacio de trabajo (opcional)`,warning:`La tarea puede leer y escribir esta carpeta directamente. Déjalo en blanco para usar un espacio aislado.`}},personaBackground:{label:`Imagen de fondo`,uploadBackgroundImage:`Subir imagen de fondo`,dragAndDrop:`Arrastra y suelta una imagen o haz clic para explorar`,chooseImage:`Elegir imagen`,uploading:`Subiendo...`,enterImageUrl:`O ingresa la URL de la imagen`,supportedFormats:`Soporta: JPG, PNG, GIF, WebP (máx 5MB). Las imágenes horizontales anchas funcionan mejor.`,customBackground:`Imagen de fondo personalizada`,clickToChange:`Haz clic para cambiar o eliminar`,removed:`Fondo eliminado`,uploaded:`Fondo subido exitosamente`,invalidFile:`Por favor selecciona un archivo de imagen válido`,fileTooLarge:`El tamaño de la imagen de fondo debe ser menor a 5MB`,readFailed:`Error al leer el archivo de imagen`,uploadFailed:`Error al subir la imagen de fondo`},modelSelector:{searchInstalled:`Buscar modelos instalados...`,searchOllama:`Buscar en la biblioteca de Ollama...`,searchHuggingFace:`Buscar en HuggingFace...`,selectModel:`Seleccionar modelo`,personas:`Personas`,ollamaModels:`Modelos Ollama`,pluginModels:`Modelos de plugins`,actions:`Acciones`,installed:`Instalado`,use:`Usar`,pull:`Descargar`,pullRestricted:`La instalación de modelos está restringida a administradores en esta instancia.`,adminOnlyPull:`Solo administradores`,legacyProvider:`proveedor no registrado`,providerNotRecorded:`Proveedor no registrado`,providerUnavailable:`proveedor no disponible`,reselectProvider:`vuelve a seleccionar un proveedor para fijar este modelo`,unavailable:`no disponible`,unavailableSelections:`Selecciones no disponibles`,agentModels:`Agentes`},whatsNew:{title:`Novedades`,releaseNotes:`Notas de la versión`,cta:`Vale, vamos`},notes:{title:`Notas`,new:`Nueva nota`,untitled:`Sin título`,empty:`Aún no hay notas`,selectOrCreate:`Selecciona una nota o crea una nueva`,contentPlaceholder:`Escribe en Markdown…`,saved:`Guardado`,saveFailed:`No se pudo guardar la nota`,createFailed:`No se pudo crear la nota`,deleteConfirm:`¿Eliminar esta nota?`,deleteFailed:`No se pudo eliminar la nota`},home:{active:`activo`,continue:`Continuar`,start:`Empezar`,explore:`Explorar`},palette:{empty:`Sin coincidencias.`,placeholder:`Buscar chats, Work, acciones…`,toggleTheme:`Cambiar tema`,actions:`Acciones`,chats:`Chats`,search:`Buscar`,settings:`Configuración`,work:`Trabajo`},tabs:{actions:`Acciones de pestaña`,close:`Cerrar pestaña`,closeAll:`Cerrar todas las pestañas`,closeOthers:`Cerrar las demás pestañas`,closeRight:`Cerrar pestañas a la derecha`,home:`Inicio`,label:`Pestañas abiertas`,new:`Nueva pestaña`,newWork:`Nuevo Work`,chat:`Chat`,newChat:`Nuevo chat`,work:`Trabajo`}};export{e as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e={common:{loading:`Chargement...`,save:`Enregistrer`,saving:`Enregistrement...`,cancel:`Annuler`,delete:`Supprimer`,edit:`Modifier`,close:`Fermer`,back:`Retour`,next:`Suivant`,confirm:`Confirmer`,error:`Erreur`,success:`Succès`,warning:`Avertissement`,or:`ou`,optional:`optionnel`,enabled:`Activé`,disabled:`Désactivé`,on:`Activé`,off:`Désactivé`,yes:`Oui`,no:`Non`,search:`Rechercher`,noResults:`Aucun résultat trouvé`,retry:`Réessayer`,refresh:`Actualiser`,download:`Télécharger`,upload:`Envoyer`,export:`Exporter`,import:`Importer`,reset:`Réinitialiser`,apply:`Appliquer`,clear:`Effacer`,all:`Tout`,none:`Aucun`,default:`Par défaut`,custom:`Personnalisé`,remove:`Supprimer`,home:`Accueil`,more:`Plus`},brand:{name:`Libre WebUI`,shortName:`Libre`},auth:{login:{title:`Bon retour`,subtitle:`Connectez-vous à votre compte pour continuer`,username:`Nom d'utilisateur`,usernamePlaceholder:`Entrez votre nom d'utilisateur`,password:`Mot de passe`,passwordPlaceholder:`Entrez votre mot de passe`,signIn:`Se connecter`,signingIn:`Connexion en cours...`,noAccount:`Vous n'avez pas de compte ?`,signUpHere:`Inscrivez-vous ici`,loginSuccess:`Connexion réussie !`,loginFailed:`Échec de la connexion`,checkCredentials:`Échec de la connexion. Veuillez vérifier vos identifiants.`,approvalPending:`Votre compte est en attente d'approbation par un administrateur.`,enterBoth:`Veuillez entrer le nom d'utilisateur et le mot de passe`,githubSuccess:`Connexion GitHub réussie !`,githubFailed:`Échec de l'authentification GitHub`,githubVerifyFailed:`Échec de la vérification de l'authentification GitHub`,verificationFailed:`La vérification de sécurité a échoué. Actualisez la page et réessayez.`},signup:{title:`Créer un compte`,subtitle:`Inscrivez-vous pour créer votre compte`,username:`Nom d'utilisateur`,usernamePlaceholder:`Choisissez un nom d'utilisateur`,email:`Email`,emailPlaceholder:`votre@email.com`,password:`Mot de passe`,passwordPlaceholder:`Choisissez un mot de passe`,confirmPassword:`Confirmer le mot de passe`,confirmPasswordPlaceholder:`Confirmez votre mot de passe`,createAccount:`Créer un compte`,creatingAccount:`Création du compte...`,hasAccount:`Vous avez déjà un compte ?`,signInHere:`Connectez-vous ici`,signupSuccess:`Compte créé avec succès !`,approvalPending:`Inscription reçue. Un administrateur doit approuver votre compte.`,awaitingApproval:`En attente d'approbation`,awaitingApprovalDescription:`Votre compte a été créé, mais un administrateur doit l'activer avant que vous puissiez vous connecter.`,backToSignIn:`Retour à la connexion`,signupFailed:`Échec de l'inscription`,tryAgain:`Échec de l'inscription. Veuillez réessayer.`,usernameRequired:`Le nom d'utilisateur et le mot de passe sont requis`,passwordMismatch:`Les mots de passe ne correspondent pas`,passwordTooShort:`Le mot de passe doit contenir au moins 6 caractères`},logout:{button:`Déconnexion`,success:`Déconnexion réussie`},oauth:{continueWith:`Continuer avec {{provider}}`,connectingTo:`Connexion à {{provider}}...`,github:`GitHub`,huggingFace:`Hugging Face`},checkingAuth:`Vérification de l'authentification...`,welcome:`Bienvenue`,noEmail:`Aucun e-mail fourni`,role:`Rôle`,id:`ID`,userId:`ID utilisateur`,signInDescription:`Connectez-vous avec votre compte GitHub pour continuer`,signInWithGitHub:`Se connecter avec GitHub`,jwtActive:`Authentification JWT active`,jwtDescription:`Authentification JWT avec GitHub OAuth`,github:`GitHub`,provider:`Fournisseur`,tagline:`Votre pile d'IA devrait répondre à vos ordres.`,selfHosted:`Auto-hébergé · Apache 2.0`,highlights:{local:{title:`Local d'abord`,body:`Vos conversations et fichiers restent sur la machine sur laquelle vous l'exécutez.`},providers:{title:`N'importe quel fournisseur`,body:`Modèles locaux via Ollama, plus les fournisseurs distants que vous choisissez d'ajouter.`},work:{title:`Travail isolé`,body:`Donnez à un modèle un espace de travail sandbox avec fichiers, terminal et aperçu.`}},oidc:{defaultProviderName:`Authentification unique`}},setup:{welcome:{title:`Bienvenue sur Libre WebUI`,subtitle:`Commencer`,description:`Configurez votre instance Libre WebUI en quelques étapes`,createAdmin:`Créer un compte administrateur`,features:{secure:{title:`Sécurisé et privé`,description:`Vos conversations restent sur votre appareil`},fast:{title:`Rapide et réactif`,description:`Optimisé pour la vitesse et les performances`},openSource:{title:`Open Source`,description:`Logiciel libre et open source`}}},admin:{title:`Créer un compte administrateur`,subtitle:`Configuration administrateur`,description:`Créez le premier compte administrateur pour votre instance Libre WebUI`,usernamePlaceholder:`Entrez le nom d'utilisateur admin`,passwordPlaceholder:`Entrez le mot de passe (min 6 caractères)`,confirmPlaceholder:`Confirmez votre mot de passe`,creating:`Création...`,createAdmin:`Créer l'admin`,success:`Compte administrateur créé avec succès !`,failed:`Échec de la création du compte administrateur`,approvalUnexpected:`L'administrateur initial n'a pas pu être activé. Veuillez réessayer.`,fillAllFields:`Veuillez remplir tous les champs`,note:`Ce sera le compte administrateur principal pour votre instance Libre WebUI`},encryptionKey:{title:`Sauvegardez votre clé de chiffrement`,subtitle:`Important : Sauvegardez cette clé`,description:`Cette clé de chiffrement protège vos données sensibles. Conservez-la en sécurité - vous en aurez besoin si vous devez restaurer votre base de données.`,warning:`Avertissement`,warningText:`Si vous perdez cette clé et devez restaurer votre base de données, vos données chiffrées (clés API, préférences) seront irrécupérables.`,label:`Votre clé de chiffrement`,loading:`Chargement...`,copyToClipboard:`Copier dans le presse-papiers`,copied:`Clé de chiffrement copiée dans le presse-papiers !`,copyFailed:`Échec de la copie de la clé`,envNote:`Cette clé est également sauvegardée dans votre fichier backend/.env sous ENCRYPTION_KEY`,acknowledgment:`J'ai sauvegardé ma clé de chiffrement dans un endroit sécurisé et je comprends que la perdre peut entraîner une perte de données.`,confirmRequired:`Veuillez confirmer que vous avez sauvegardé la clé de chiffrement`,continue:`Continuer vers Libre WebUI`}},chat:{greeting:{morning:`Bonjour`,afternoon:`Bon après-midi`,evening:`Bonsoir`,night:`Bonne nuit`},followUp:`Poursuivre`,welcome:{helpToday:`Comment puis-je vous aider aujourd'hui ?`,helpTonight:`Comment puis-je vous aider ce soir ?`,variety:{create:{title:`Qu’allons-nous créer ?`,subtitle:`Partez d’une pensée, d’une esquisse ou d’un problème qui résiste.`},explore:{title:`Par où commencer ?`,subtitle:`Apportez cette question qui vous revient sans cesse.`},imagine:{title:`Qu’imaginez-vous ?`,subtitle:`Nous pouvons lui donner forme ensemble.`},focus:{title:`Qu’est-ce qui mérite votre attention ?`,subtitle:`Clarifions la prochaine étape.`},untangle:{title:`Qu’est-ce qui coince ?`,subtitle:`Commencez par me donner la version en vrac.`},momentum:{title:`Quand vous voulez.`,subtitle:`Reprenons une idée, un plan ou un fil resté en suspens.`},open:{title:`À quoi pensez-vous ?`,subtitle:`Petite idée ou projet ambitieux : tout fonctionne.`},challenge:{title:`Quel problème allons-nous résoudre ?`,subtitle:`Dites-moi ce qui ne fonctionne pas encore.`},draft:{title:`Commençons quelque part.`,subtitle:`Pas besoin que ce soit parfait.`},possibility:{title:`Que pourrait devenir cette idée ?`,subtitle:`Montrez-moi la matière brute.`},unexpected:{title:`Créons quelque chose d’inattendu.`,subtitle:`Donnez-moi une contrainte, une ambiance ou une idée encore floue.`}}},input:{placeholder:`Envoyer un message`,messagePlaceholder:`Message...`,attachImages:`Joindre des images`,attachments:`Pièces jointes et fonctionnalités avancées`,sendMessage:`Envoyer le message`,stopGeneration:`Arrêter la génération`,menu:{uploadImages:`Téléverser des images`,attachDocument:`Joindre un document`,attachWebpage:`Joindre une page web`,structuredOutput:`Sortie structurée`,attach:`Joindre`,documentAttached:`Document joint`,webpageAttached:`Page web jointe`,attachFailed:`Impossible de joindre`,attachKnowledge:`Joindre des connaissances`,noCollections:`Aucune collection — créez-en une dans Paramètres → Documents`},voiceInput:`Saisie vocale`,voiceStop:`Arrêter l'écoute`,transcriptionSource:`Source de reconnaissance vocale`,browserSpeech:`Service de reconnaissance vocale du navigateur`,providerTranscriptionDisclosure:`Enregistrer et envoyer l’audio à {{provider}} pour transcription`,webSearchOn:`Recherche web activée — les réponses utilisent des résultats en direct`,webSearchOff:`Chercher sur le web pour ce message`,thinkingOn:`Réflexion activée ({{level}})`,thinkingOff:`Réfléchir avant de répondre`},session:{new:`Nouvelle conversation`,work:`Travail`,chat:`Chat`,private:`Privé`,incognito:`Chat incognito`,privateMode:`Mode privé`,privateDescription:`Cette conversation ne sera pas sauvegardée`,privateTooltip:`Démarrer une conversation privée qui ne sera pas sauvegardée`,deleteConfirm:`Êtes-vous sûr de vouloir supprimer cette conversation ?`,generatingTitle:`Génération du titre`,noChats:`Aucune conversation`,createFirst:`Créez votre première conversation ci-dessus`,chats:`Conversations`,renameChat:`Renommer la conversation`,openNewTab:`Ouvrir dans un nouvel onglet`,pinChat:`Épingler`,unpinChat:`Désépingler`,deleteChat:`Supprimer la conversation`,archiveChat:`Archiver la discussion`,groups:{pinned:`Épinglés`,today:`Aujourd'hui`,yesterday:`Hier`,previous7Days:`7 derniers jours`,previous30Days:`30 derniers jours`,older:`Plus ancien`},folder:{new:`Nouveau dossier`,namePlaceholder:`Nom du dossier`,move:`Déplacer vers un dossier`,remove:`Retirer du dossier`,delete:`Supprimer le dossier`,deleteConfirm:`Supprimer ce dossier ? Les discussions sont conservées.`}},persona:{applied:`Persona appliqué`,label:`Persona`,loadFailed:`Échec du chargement des détails de la persona`,removeFailed:`Échec de la suppression du persona`},model:{updated:`Modèle mis à jour`,noModels:`Aucun modèle disponible`,noModelsDescription:`Aucun modèle disponible. Assurez-vous qu'Ollama est en cours d'exécution et que des modèles sont installés.`,pullCommand:`ollama pull llama3.2:3b`,noModelsTooltip:`Aucun modèle disponible. Veuillez vous assurer qu'Ollama est en cours d'exécution et que des modèles sont installés.`,selectBeforePrivateChat:`Sélectionnez un modèle disponible avant de démarrer une discussion privée`,selectBeforeSending:`Sélectionnez un modèle disponible avant d'envoyer`},footer:{disclaimer:`Les LLM peuvent faire des erreurs - vérifiez les informations importantes`,images:`{{count}} image`,images_plural:`{{count}} images`,structuredOutput:`Sortie structurée`},mediaUpload:{dropImagesHere:`Déposez des images ici ou`,supportedFormats:`Formats supportés : JPG, PNG, GIF, WebP (max 10 Mo chacun)`,browse:`parcourir`},structuredOutput:{title:`Format de réponse`,none:`Aucun (Langage naturel)`,noneDescription:`Réponse par défaut en langage naturel`,json:`JSON`,jsonDescription:`Format JSON structuré`,list:`Liste`,listDescription:`Tableau d'éléments`,summary:`Résumé`,summaryDescription:`Résumé du document avec points clés`,analysis:`Analyse`,analysisDescription:`Analyse structurée avec avantages/inconvénients`,custom:`Schéma personnalisé`,customDescription:`Définissez votre propre schéma JSON`,customSchema:`Schéma JSON personnalisé`,schemaPreview:`Aperçu du schéma`,applySchema:`Appliquer le schéma`,cancel:`Annuler`,enabled:`Sortie structurée activée`},controls:{title:`Contrôles de la discussion`,systemPrompt:`Prompt système`,systemPromptPlaceholder:`Instructions valables uniquement pour cette discussion…`,advancedParams:`Paramètres avancés`,advancedParamsDescription:`Remplacements pour cette discussion. Les champs vides utilisent vos valeurs globales.`,fromModel:`du modèle`,fromModelHint:`Cette valeur provient des réglages recommandés par le modèle lui-même.`,contextCapped:`Contexte limité à {{context}} sur les {{trained}} pour lesquels le modèle a été entraîné, afin qu'il se charge encore.`,saved:`Contrôles enregistrés`,saveFailed:`Impossible d'enregistrer les contrôles`,params:{temperature:`Température`,topP:`Top P`,topK:`Top K`,minP:`Min P`,maxTokens:`Tokens max`,repeatPenalty:`Pénalité de répétition`,seed:`Graine`,contextLength:`Longueur de contexte`},thinking:`Réflexion`,thinkingDescription:`Le temps que le modèle passe à réfléchir avant de répondre. Les modèles sans raisonnement l'ignorent.`},message:{sources:`Sources`},toasts:{chatCreated:`Nouveau chat créé`,createFailed:`Échec de la création de la session`,loadFailed:`Échec du chargement des sessions`,chatDeleted:`Chat supprimé`,deleteFailed:`Échec de la suppression du chat`,deleteSessionFailed:`Échec de la suppression de la session`,historyCleared:`Tout l'historique de chat a été effacé`,historyClearFailed:`Échec de l'effacement de l'historique du chat`,titleUpdated:`Titre du chat mis à jour`,updateFailed:`Échec de la mise à jour de la session`,noValidSession:`Aucune session de chat valide. Veuillez créer ou sélectionner un chat.`,sessionNotFound:`Session introuvable ou invalide. Veuillez sélectionner ou créer une session de chat valide.`,noModelProvider:`Aucun fournisseur de modèles disponible`,modelUnavailable:`Le modèle sélectionné "{{model}}" n'est pas disponible auprès de {{provider}}. Réactivez ce fournisseur ou sélectionnez un autre modèle.`,modelSwitched:`Basculement vers {{model}} (le modèle précédent n'est plus disponible)`,modelsLoadFailed:`Échec du chargement des modèles`,modelUpdated:`Modèle mis à jour pour le chat actuel`,modelUpdateFailed:`Échec de la mise à jour du modèle de session`},documents:{title:`Documents dans le contexte`},context:{title:`Fenêtre de contexte :`,full:`{{percent}}% pleine`,tokensUsed:`{{used}} / {{budget}} jetons utilisés`,tokensUsedNoBudget:`{{used}} jetons utilisés`,capped:`limitée depuis {{trained}}`}},sidebar:{navigation:{chat:`Chat`,models:`Modèles`,personas:`Personas`,imagine:`Imaginer`,agents:`Agents`,work:`Travail`,settings:`Paramètres`,usageAnalytics:`Utilisation des fournisseurs`,system:`Système`,userManagement:`Gestion des utilisateurs`,signOut:`Déconnexion`,exploreLabel:`Explorer`,notes:`Notes`},toggleSize:`Basculer la taille de la barre latérale`,expandSidebar:`Agrandir la barre latérale`},user:{menu:{changePicture:`Changer la photo`,settings:`Paramètres`,usageAnalytics:`Utilisation des fournisseurs`,system:`Système`,userManagement:`Gestion des utilisateurs`,logout:`Déconnexion`},avatar:{title:`Changer la photo de profil`,updated:`Photo de profil mise à jour`,updateFailed:`Échec de la mise à jour de la photo de profil`,saving:`Enregistrement...`,label:`Avatar`,uploadAvatarImage:`Télécharger une image d'avatar`,dragAndDrop:`Glissez-déposez une image ou cliquez pour parcourir`,chooseImage:`Choisir une image`,uploading:`Téléchargement...`,enterImageUrl:`Ou entrez l'URL de l'image`,supportedFormats:`Formats supportés : JPG, PNG, GIF, WebP (max 2 Mo). Les images carrées fonctionnent mieux.`,customAvatar:`Image d'avatar personnalisée`,clickToChange:`Cliquez pour modifier ou supprimer`,removed:`Avatar supprimé`,uploaded:`Avatar téléchargé avec succès`,invalidFile:`Veuillez sélectionner un fichier image valide`,fileTooLarge:`La taille de l'image d'avatar doit être inférieure à 2 Mo`,readFailed:`Échec de la lecture du fichier image`,uploadFailed:`Échec du téléchargement de l'image d'avatar`},profile:{noEmail:`Aucun email fourni`}},settings:JSON.parse(`{"title":"Paramètres","tabs":{"appearance":"Apparence","model":"Modèle","systemMessage":"Message système","plugins":"Plugins","search":"Recherche","generation":"Génération","documents":"Documents","tts":"Voix","imageGen":"Images","data":"Données","shortcuts":"Raccourcis","about":"À propos","sessions":"Sessions","apiKeys":"Clés API"},"appearance":{"title":"Apparence","language":{"title":"Langue","description":"Sélectionnez votre langue préférée"},"theme":{"title":"Thème","light":"Clair","dark":"Sombre","amoled":"Noir Pur","system":"Système"},"accent":{"title":"Couleur d'accent","custom":"Couleur personnalisée","useColor":"Utiliser {{color}} comme couleur d'accent","behaviorTitle":"Palette de l'interface","behaviorDescription":"Choisissez si la couleur d'accent reste limitée aux commandes ou adapte toute l'interface claire ou sombre.","defaultStyle":"Par défaut","defaultStyleDescription":"Conserver les surfaces neutres des thèmes clair et sombre.","adaptedStyle":"Adapter à l'accent","adaptedStyleDescription":"Teinter les surfaces, bordures et textes avec votre couleur d'accent."},"chatInterface":{"title":"Interface de chat","showUsername":"Afficher le nom d'utilisateur","showUsernameDescription":"Afficher le nom d'utilisateur dans les messages","followUpSuggestions":"Suggestions de suivi","followUpSuggestionsDescription":"Proposer des réponses rapides après chaque réponse","hapticFeedback":"Retour haptique (Android)","hapticFeedbackDescription":"Utiliser des vibrations discrètes pour les actions mobiles importantes"},"background":{"title":"Image d'arrière-plan","enable":"Activer l'image d'arrière-plan","enableDescription":"Afficher un arrière-plan personnalisé avec effet de flou","blur":"Flou","opacity":"Opacité","upload":"Envoyer une image d'arrière-plan","dragDrop":"Glissez-déposez une image ou cliquez pour parcourir","chooseImage":"Choisir une image"}},"saveSettings":"Enregistrer les paramètres","model":{"title":"Paramètres du modèle","defaultModel":"Modèle par défaut","defaultModelDescription":"Ce modèle sera utilisé par défaut pour les nouvelles conversations","selectModel":"Sélectionnez un modèle","specializedModels":"Modèles spécialisés","visionModel":"Modèle de vision","selectVisionModel":"Utiliser le modèle de chat actuel","visionModelDescription":"Utilisé automatiquement chaque fois que le contexte de chat sortant contient des images. Choisissez un modèle qui prend en charge l'entrée d'images.","visionModelUpdateFailed":"Échec de la mise à jour du modèle de vision : {{error}}","visionModelNoProvider":"Ce modèle de vision n'a pas d'identité de fournisseur. Sélectionnez un modèle disponible.","persona":"Persona","updateAll":"Mettre à jour tous les modèles","updateAllDescription":"Vérifier les mises à jour et télécharger les dernières versions de tous les modèles installés","updateAllButton":"Tout mettre à jour","updating":"Mise à jour des modèles...","currentModelInfo":"Infos du modèle actuel","name":"Nom","size":"Taille","family":"Famille","format":"Format","status":"Statut","statusStarting":"Démarrage...","statusComplete":"Terminé","statusError":"Erreur","bulkOperations":"Opérations en masse","autoTitle":{"title":"Génération automatique du titre","enable":"Activer le titre automatique","enableDescription":"Générer automatiquement des titres pour les nouvelles conversations","taskModel":"Modèle de tâche","selectTaskModel":"Sélectionnez le modèle de tâche","taskModelDescription":"Modèle utilisé pour générer les titres des conversations"},"updatingModel":"Mise à jour de {{name}} ({{current}}/{{total}})","modelsProgress":"{{current}} sur {{total}} modèles"},"systemMessage":{"title":"Message système","description":"Définissez un message système personnalisé qui sera utilisé pour toutes les nouvelles conversations.","placeholder":"Entrez un message système...","saved":"Message système enregistré","saveFailed":"Échec de l'enregistrement du message système"},"plugins":{"title":"Plugins","description":"Gérez vos plugins installés","providerConnections":"Connexions aux fournisseurs","providerConnectionsDescription":"Connectez, configurez et inspectez les fournisseurs de modèles via des plugins.","providers":"Fournisseurs","searchProviders":"Rechercher des fournisseurs","noProvidersFound":"Aucun fournisseur ne correspond à votre recherche.","selectProvider":"Sélectionner un fournisseur","selectProviderDescription":"Choisissez un fournisseur pour inspecter sa connexion et son catalogue de modèles.","addNew":"Ajouter un nouveau plugin","upload":"Envoyer un plugin","addJson":"Ajouter JSON","uploading":"Envoi...","jsonPlaceholder":"Collez la configuration JSON du plugin...","install":"Installer un plugin","noPlugins":"Aucun plugin installé","noPluginsDescription":"Ajoutez un plugin pour étendre les fonctionnalités","loading":"Chargement des plugins...","installed":"Plugins installés","active":"Plugins actifs","activeLabel":"Actif","inactive":"Inactif","activate":"Activer","deactivate":"Désactiver","models":"modèles","apiKeySet":"Clé API définie","apiKeyConfiguration":"Configuration de la clé API","apiKeyDescription":"Stocker une clé API personnelle pour {{name}}.","apiKeyEnvAlternative":"Alternativement, définissez la","environmentVariable":"variable d'environnement","apiKeyConfigured":"Clé API configurée","apiKeyPlaceholder":"Entrez votre clé API...","saveApiKey":"Enregistrer la clé API","showApiKey":"Afficher la clé API","hideApiKey":"Masquer la clé API","configure":"Configurer","providerSettings":"Paramètres du fournisseur","status":"Statut","defaultEndpoint":"Endpoint par défaut","modelCatalog":"Catalogue de modèles","modelCatalogDescription":"Modèles découverts et configurés pour ce fournisseur et ses capacités.","refreshModels":"Actualiser les modèles","noModelsConfigured":"Aucun modèle n'est configuré pour ce fournisseur.","modelId":"ID du modèle","capabilities":"Capacités","modelCatalogUpdated":"Catalogue de modèles mis à jour : {{count}} modèles.","modelCatalogUnchanged":"Le catalogue de modèles est déjà à jour.","modelCatalogNeedsApiKey":"Ajoutez une clé API valide pour ce fournisseur afin de charger sa liste de modèles en direct.","modelCatalogUnavailable":"Impossible de charger la liste des modèles du fournisseur.","modelCatalogRefreshFailed":"Échec de l'actualisation du catalogue de modèles","capability":{"chat":"Chat","embedding":"Embedding","image":"Image","speech":"Parole","transcription":"Transcription"},"exportPlugin":"Exporter le plugin","deletePlugin":"Supprimer le plugin","apiKey":{"title":"Clé API","placeholder":"Entrez la clé API","save":"Enregistrer la clé","remove":"Supprimer la clé","configured":"Clé API configurée","notConfigured":"Clé API requise","saved":"Clé API enregistrée avec succès","removed":"Clé API supprimée","saveFailed":"Échec de l'enregistrement de la clé API","removeFailed":"Échec de la suppression de la clé API","enterKey":"Veuillez entrer une clé API"},"variables":"Variables"},"generation":{"title":"Options de génération","description":"Configurez comment l'IA génère les réponses","scopeLabel":"S'applique à","scopeAll":"Tous les modèles","scopeModel":"Uniquement {{model}}","scopeAllHint":"Les valeurs utilisées par chaque modèle, sauf s'il a les siennes.","scopeModelHint":"Enregistré pour ce seul modèle, et prioritaire sur les valeurs générales.","advancedSettings":"Paramètres de génération avancés","advancedSettingsDescription":"Échantillonnage, limites de jetons, contexte, pénalités et séquences d'arrêt","coreParameters":"Paramètres principaux","temperature":"Température","temperatureDescription":"Contrôle l'aléatoire. Les valeurs basses sont plus précises, les valeurs hautes plus créatives.","topP":"Top P","topPDescription":"Contrôle la diversité via l'échantillonnage nucleus. Les valeurs basses se concentrent sur les tokens probables.","topK":"Top K","topKDescription":"Limite la sélection de tokens aux K plus probables. Mettez 0 pour désactiver.","minP":"Min P","minPDescription":"Seuil de probabilité minimum pour la sélection de tokens.","generationControl":"Contrôle de génération","maxTokens":"Tokens maximum","maxTokensDescription":"Nombre maximum de tokens à générer dans la réponse.","repeatPenalty":"Pénalité de répétition","repeatPenaltyDescription":"Pénalise les tokens répétés. Les valeurs plus élevées réduisent la répétition.","contextLength":"Longueur du contexte","contextLengthDescription":"Taille maximale de la fenêtre de contexte pour les conversations.","seed":"Seed","optional":"optionnel","random":"Aléatoire","seedDescription":"Définissez un seed spécifique pour des résultats reproductibles.","advancedOptions":"Options avancées","presencePenalty":"Pénalité de présence","presencePenaltyDescription":"Pénalise les tokens qui apparaissent dans le contexte.","frequencyPenalty":"Pénalité de fréquence","frequencyPenaltyDescription":"Pénalise les tokens fréquemment utilisés.","stopSequences":"Séquences d'arrêt","commaSeparated":"séparés par des virgules","stopSequencesDescription":"Tokens personnalisés qui arrêteront la génération lorsqu'ils seront rencontrés.","resetDefaults":"Réinitialiser les valeurs par défaut","saveOptions":"Enregistrer les options","embeddingSettings":"Paramètres d'embedding","enableEmbeddings":"Activer les embeddings de documents","thinking":"Réflexion","thinkingDescription":"Effort de réflexion par défaut pour les réponses. Chaque conversation peut le remplacer.","thinkingLevels":{"default":"Valeur du modèle","off":"Désactivée","on":"Activée","low":"Faible","medium":"Moyenne","high":"Élevée"}},"documents":{"title":"Paramètres des documents","embeddings":{"title":"Embeddings","enable":"Activer les embeddings de documents","model":"Modèle d'embedding","modelDescription":"Sélectionnez le modèle utilisé pour l'embedding de documents","chunkSize":"Taille des chunks","chunkSizeInTokens":"(en tokens)","chunkSizeDescription":"Taille des morceaux de texte pour l'embedding","chunkOverlap":"Chevauchement des chunks","chunkOverlapInTokens":"(en tokens)","chunkOverlapDescription":"Chevauchement entre les chunks consécutifs","similarityThreshold":"Seuil de similarité","similarityDescription":"Score de similarité minimum pour inclure les résultats","status":"Statut des embeddings","statusLabel":"Statut","available":"Disponible","unavailable":"Indisponible","chunksWithEmbeddings":"Chunks avec embeddings","coverage":"Couverture","regenerate":"Régénérer les embeddings","regenerating":"Régénération..."},"collections":{"title":"Collections de connaissances","description":"Regroupez des documents en collections et joignez-les à toute discussion.","namePlaceholder":"Nom de la collection","create":"Créer","none":"Aucune collection","deleteConfirm":"Supprimer cette collection ? Les documents sont conservés.","createFailed":"Impossible de créer la collection","deleteFailed":"Impossible de supprimer la collection","assignFailed":"Impossible de déplacer le document"},"library":{"title":"Documents importés","description":"Documents disponibles comme contexte de chat. Un document importé dans un chat reste dans sa conversation ; un document sans chat ni collection rejoint toutes les conversations.","empty":"Aucun document importé pour le moment.","chatScope":"Un seul chat","everyChatScope":"Tous les chats","deleteConfirm":"Supprimer « {{name}} » ? Il disparaîtra de tous les chats.","deleteFailed":"Impossible de supprimer le document"}},"tts":{"title":"Synthèse vocale","description":"Configurez les paramètres de synthèse vocale pour la lecture des messages","loadingProviders":"Chargement des fournisseurs TTS...","noProviders":"Aucun fournisseur TTS","noProvidersDescription":"Configurez un plugin avec support TTS pour activer la synthèse vocale","enable":"Activer la synthèse vocale","enableDescription":"Autoriser la synthèse vocale pour les messages de l'assistant","autoPlay":"Lecture automatique des réponses","autoPlayDescription":"Lire automatiquement les nouveaux messages de l'assistant","streamSentences":"Lecture naturelle par lots","streamSentencesDescription":"Générer à l'avance plusieurs lots découpés selon les phrases, puis les lire comme une seule réponse fluide.","voiceConfiguration":"Configuration de la voix","model":"Modèle TTS","modelDescription":"Sélectionnez le modèle pour la génération de synthèse vocale","voice":"Voix","selectVoice":"Sélectionnez une voix","voiceDescription":"Choisissez la voix pour la synthèse vocale","providerDefaultVoice":"Ce modèle utilise sa voix par défaut, sauf si vous fournissez un enregistrement de référence lors de la génération de la parole.","voiceCloningAvailable":"Clonage vocal disponible","voiceCloningAvailableDescription":"Utilisez Imaginer → Audio pour créer une voix à partir d’un enregistrement de référence consenti et de sa transcription exacte. Vous pouvez enregistrer cette référence comme voix réutilisable.","savedVoiceOption":"{{name}} (voix enregistrée)","savedVoices":"Voix enregistrées","loadingSavedVoices":"Chargement des voix enregistrées…","deleteSavedVoice":"Supprimer la voix enregistrée {{name}}","deleteSavedVoiceConfirm":"Supprimer la voix enregistrée «\xA0{{name}}\xA0»\xA0? Son enregistrement de référence et sa transcription seront supprimés.","savedVoiceDeleted":"Voix enregistrée supprimée","savedVoicePreferenceCleanupFailed":"Voix enregistrée supprimée, mais les réglages de la parole n’ont pas pu être réinitialisés","savedVoiceDeleteFailed":"Impossible de supprimer la voix enregistrée","speed":"Vitesse","speedSlow":"0.5x","speedNormal":"1.0x","speedFast":"2.0x","availableProviders":"Fournisseurs disponibles","models":"modèles","test":"Tester","testing":"Test...","stop":"Arrêter"},"imageGen":{"title":"Génération d'images","description":"Configurez les paramètres et fournisseurs de génération d'images","loadingProviders":"Chargement des fournisseurs de génération d'images...","noProviders":"Aucun fournisseur de génération d'images","noProvidersDescription":"Configurez un plugin avec support de génération d'images","enable":"Activer la génération d'images","enableDescription":"Autoriser la génération d'images IA dans les conversations","configuration":"Configuration","model":"Modèle","modelDescription":"Sélectionnez le modèle pour la génération d'images","size":"Taille","sizeDescription":"Résolution des images générées","quality":"Qualité","qualityDescription":"Niveau de qualité des images générées","style":"Style","styleDescription":"Preset de style pour les images générées","availableProviders":"Fournisseurs disponibles","models":"modèles"},"data":{"title":"Gestion des données","export":"Exporter les données","exportDescription":"Téléchargez une archive portable contenant les préférences, dossiers de discussions, sessions et messages, notes, collections de connaissances et le texte extrait des documents.","archiveScopeV3":"Inclut les préférences, discussions, dossiers, notes, collections de connaissances et le texte extrait des documents. Exclut les comptes et secrets, voix clonées biométriques, médias générés, personas et mémoire, ainsi que les données ou volumes Work.","exportAll":"Exporter toutes les données","import":"Importer les données","importDescription":"Importez les données d'une exportation précédente.","importData":"Importer les données","importing":"Importation...","clearSessions":"Effacer les sessions","clearSessionsDescription":"Supprimer toutes les sessions de chat. Cette action est irréversible.","clearAll":"Tout effacer","clearing":"Effacement...","importOptions":"Options d'importation","importOptionsDescription":"Choisissez comment gérer les données existantes","validatingArchive":"Validation de l’archive et calcul des modifications…","archiveValidationFailed":"Échec de la validation de l’archive","preflightReport":"Aperçu de l’importation","preflightIncoming":"{{folders}} dossiers · {{sessions}} discussions · {{messages}} messages · {{notes}} notes · {{collections}} collections · {{documents}} documents · {{chunks}} fragments","preflightRemappedIds":"{{count}} ID seront réattribués pour protéger les données d’un autre compte.","skipDuplicates":"Ignorer les doublons","overwrite":"Écraser les existants","importResults":"Résultats de l'importation","preferences":"Préférences","imported":"Importé","failed":"Échoué","sessions":"Sessions","sessionFolders":"Dossiers de sessions","notes":"Notes","knowledgeCollections":"Collections de connaissances","importedLabel":"importées","overwrittenLabel":"écrasé","skipped":"ignorées","toCreate":"à créer","toOverwrite":"à écraser","toSkip":"à ignorer","documents":"Documents","warnings":"Avertissements","refreshAfterImportFailed":"Les données ont été importées, mais certaines vues n’ont pas pu être actualisées. Rechargez Libre WebUI pour voir toutes les modifications.","errors":"Erreurs","archivedChats":{"title":"Discussions archivées","empty":"Aucune discussion archivée","unarchive":"Désarchiver"}},"about":{"title":"À propos","versionLabel":"Version","ollama":{"title":"Statut Ollama","version":"Version","healthy":"Opérationnel","unhealthy":"Non opérationnel"},"stats":{"models":"Modèles","sessions":"Sessions"},"features":{"privacy":{"title":"Vie privée d'abord","description":"Vos données restent sur votre appareil"},"openSource":{"title":"Open Source","description":"Logiciel libre et open source"},"localInference":{"title":"Inférence locale","description":"Exécutez des modèles IA localement avec Ollama"}},"openSourceBy":"Open source par {{company}}","links":{"title":"Liens","github":"GitHub","githubDescription":"Voir le code source et contribuer","website":"Site web","websiteDescription":"Visitez notre site web","documentation":"Documentation","reportIssue":"Signaler des problèmes","reportIssueDescription":"Rapports de bugs et demandes de fonctionnalités","documentationDescription":"Guides, tutoriels et référence API","forgejo":"Miroir Forgejo","forgejoDescription":"Dépôt Forgejo auto-hébergé","sponsor":"Sponsor","sponsorDescription":"Aider à financer le projet"},"version":"Version {{version}}"},"groups":{"general":"Général","chat":"Chat","media":"Voix et images","connections":"Connexions"},"search":{"title":"Recherche web","description":"Recherchez sur le web via une instance SearXNG auto-hébergée. Une fois activée, le chat propose un bouton de recherche et les tâches Work avec accès réseau peuvent chercher.","enableLabel":"Activer la recherche web","enableDescription":"Proposer la recherche web aux chats et aux tâches Work. Les recherches s'exécutent côté serveur sur l'instance configurée.","urlLabel":"URL SearXNG","urlDescription":"URL de base de l'instance SearXNG accessible depuis le serveur. La pile de déploiement privé fournie expose http://searxng:8080.","maxResultsLabel":"Résultats par recherche","maxResultsDescription":"Combien de résultats alimentent une réponse ou un appel d'outil, 1-10.","maxResultsInvalid":"Les résultats par recherche doivent être entre 1 et 10.","safeSearchLabel":"Recherche sécurisée","safeSearchDescription":"Demander au moteur de filtrer les résultats explicites.","test":"Tester la connexion","testing":"Test en cours…","testOk":"La recherche fonctionne — {{results}} résultats renvoyés","testFailed":"Échec du test de recherche","save":"Enregistrer","saved":"Paramètres de recherche enregistrés","saveFailed":"Impossible d'enregistrer les paramètres de recherche"},"compaction":{"title":"Compactage du contexte","description":"Lorsqu'une conversation dépasse le seuil de jetons, le serveur résume ses messages les plus anciens et ne conserve mot pour mot que les plus récents. S'applique à tous les utilisateurs de ce serveur.","thresholdLabel":"Seuil de jetons","thresholdDescription":"Nombre estimé de jetons de contexte au-delà duquel l'historique ancien est résumé, 500-1 000 000.","thresholdInvalid":"Le seuil de jetons doit être compris entre 500 et 1 000 000.","keepRecentLabel":"Messages récents conservés","keepRecentDescription":"Combien des derniers messages restent toujours mot pour mot, 2-200.","keepRecentInvalid":"Le nombre de messages récents conservés doit être compris entre 2 et 200.","modelLabel":"Modèle de compactage","modelDescription":"Le modèle qui rédige les résumés. Le modèle de la session est utilisé si aucun n'est choisi.","sessionModelOption":"Utiliser le modèle de la session","promptLabel":"Invite de résumé personnalisée","promptPlaceholder":"Laisser vide pour utiliser l'invite intégrée","promptDescription":"Les variables de modèle {{previousSummaryVariable}} et {{messagesVariable}} sont remplacées par le résumé précédent et les messages à résumer.","saved":"Paramètres de compactage enregistrés","saveFailed":"Impossible d'enregistrer les paramètres de compactage"},"sessions":{"title":"Sessions","description":"Tous les endroits où ce compte est connecté. La déconnexion d'une session prend effet immédiatement ; une nouvelle connexion rétablit l'accès.","signOutOthers":"Déconnecter les autres sessions","signingOutOthers":"Déconnexion…","signOut":"Déconnecter","signingOut":"Déconnexion…","revoked":"Session déconnectée.","revokeFailed":"La session n'a pas pu être déconnectée.","othersRevoked":"Autres sessions déconnectées : {{count}}","loadFailed":"Les sessions n'ont pas pu être chargées.","empty":"Aucune session trouvée.","current":"Cette session","revokedBadge":"Déconnectée","unknownDevice":"Appareil inconnu","createdAt":"Connexion","lastSeenAt":"Dernière activité","expiresAt":"Expire"},"apiKeys":{"title":"Clés API","description":"Jetons à portée limitée pour vos scripts et intégrations. Chaque clé n'a accès qu'aux portées que vous choisissez.","newKeyTitle":"Votre nouvelle clé API","copy":"Copier","copied":"Copié dans le presse-papiers.","copyFailed":"Échec de la copie.","showOnceWarning":"Copiez-la maintenant : elle ne sera plus affichée.","dismiss":"Terminé","createTitle":"Créer une clé","nameLabel":"Nom","namePlaceholder":"ex. pipeline CI","nameRequired":"Donnez un nom à la clé.","expiryLabel":"Expire dans (jours, facultatif)","expiryPlaceholder":"Jamais","expiryInvalid":"L'expiration doit être un nombre entier de jours.","scopesLabel":"Portées","scopesRequired":"Sélectionnez au moins une portée.","create":"Créer la clé","creating":"Création…","created":"Clé API créée.","createFailed":"La clé API n'a pas pu être créée.","revoke":"Révoquer","revoking":"Révocation…","revoked":"Clé API révoquée.","revokeFailed":"La clé API n'a pas pu être révoquée.","revokedBadge":"Révoquée","loadFailed":"Les clés API n'ont pas pu être chargées.","empty":"Aucune clé API pour l'instant.","createdAt":"Créée","lastUsedAt":"Dernière utilisation","expiresAt":"Expire","neverExpires":"Jamais"}}`),models:{title:`Modèles`,subtitle:`Téléchargez, gérez et surveillez vos modèles Ollama`,installed:`Modèles installés`,available:`Modèles disponibles`,pull:`Télécharger le modèle`,pulling:`Téléchargement...`,delete:`Supprimer le modèle`,deleting:`Suppression...`,size:`Taille`,modified:`Modifié`,family:`Famille`,parameters:`Paramètres`,quantization:`Quantification`,noModels:`Aucun modèle installé`,pullFirst:`Téléchargez un modèle pour commencer`,noModelsFound:`Aucun modèle trouvé`},personas:{title:`Personas`,create:`Créer un persona`,edit:`Modifier le persona`,delete:`Supprimer le persona`,name:`Nom`,description:`Description`,systemPrompt:`Message système`,model:`Modèle`,avatar:`Avatar`,background:`Arrière-plan`,noPersonas:`Aucun persona créé`,createFirst:`Créez votre premier persona pour personnaliser votre expérience de chat`},gallery:{title:`Galerie`,subtitle:`Votre galerie d'images générées par IA`,imageCount:`{{count}} images`,generate:`Générer une image`,generateDescription:`Créer des images avec l'IA`,generating:`Génération...`,prompt:`Description`,promptPlaceholder:`Décrivez l'image que vous souhaitez générer...`,noImages:`Aucune image générée`,download:`Télécharger`,delete:`Supprimer`,regenerate:`Régénérer`,model:`Modèle`,size:`Taille`,quality:`Qualité`,created:`Créé`},errors:{generic:`Une erreur s'est produite`,network:`Erreur réseau. Veuillez vérifier votre connexion.`,unauthorized:`Vous n'êtes pas autorisé à effectuer cette action.`,notFound:`La ressource demandée n'a pas été trouvée.`,serverError:`Erreur serveur. Veuillez réessayer plus tard.`,validation:`Veuillez vérifier votre saisie et réessayer.`},keyboard:{title:`Raccourcis clavier`,toggleSidebar:`Afficher/Masquer la barre latérale`,openSettings:`Ouvrir les paramètres`,toggleDarkMode:`Basculer le mode sombre`,showShortcuts:`Afficher les raccourcis clavier`,closeModals:`Fermer les fenêtres`,groups:{navigation:`Navigation`,general:`Général`,chat:`Chat`,workspace:`Espace de travail`},actions:{sendMessage:`Envoyer le message`,newLine:`Nouvelle ligne dans le message`,saveEdit:`Enregistrer le message modifié`,cancelEdit:`Annuler la modification`,saveFile:`Enregistrer le fichier`,formatCode:`Formater le code`},description:`Tous les raccourcis clavier disponibles dans Libre WebUI.`,newChat:`Nouvelle conversation`,newWork:`Nouvelle session Work`,openPalette:`Ouvrir la palette de commandes`},modelManager:{title:`Modèles`,loading:`Chargement des modèles...`,systemStatus:{online:`Ollama en ligne`,offline:`Ollama hors ligne`,models:`modèle`,models_plural:`modèles`,running:`en cours`,vram:`VRAM`},sections:{pull:`Télécharger un nouveau modèle`,library:`Parcourir la bibliothèque`,huggingface:`HuggingFace Hub`,running:`Modèles en cours d'exécution`,local:`Modèles locaux`,advanced:`Actions avancées`,catalog:`Catalogue de modèles`},catalog:{searchPlaceholder:`Rechercher des modèles par nom ou fournisseur...`,noModels:`Aucun modèle n'est encore disponible.`,empty:`Aucun modèle ne correspond à votre recherche.`,providerOllama:`Ollama`,hidden:`Masqué`,visibilityFailed:`Impossible de mettre à jour la visibilité du modèle.`,filterAll:`Tous les modèles`,filterLocal:`Local`,filterProviders:`Fournisseurs`,filterHidden:`Masqués`,enableAll:`Activer les modèles affichés`,disableAll:`Désactiver les modèles affichés`,rename:`Modifier le nom et l'image`,setPicture:`Définir une image`,clearPicture:`Supprimer l'image`,pictureInvalid:`Choisissez un fichier image.`,pictureTooLarge:`Les images doivent faire moins de 192 Ko.`,saving:`Enregistrement…`,hide:`Masquer aux utilisateurs`,show:`Afficher aux utilisateurs`},pull:{placeholder:`Entrez le nom du modèle (ex: llama3.2:3b, deepseek-r1:14b)`,button:`Télécharger`,cancel:`Annuler`,popular:`Modèles populaires :`,browseAll:`Parcourir tous les modèles sur ollama.com`,success:`Modèle {{name}} téléchargé avec succès`,cancelled:`Téléchargement du modèle annulé`,failed:`Échec du téléchargement du modèle`,enterName:`Veuillez entrer un nom de modèle`,restricted:`L'installation des modèles est réservée aux administrateurs sur cette instance.`},progress:{starting:`Initialisation...`,pulling:`Téléchargement du modèle...`,pullingLayer:`téléchargement`,verifying:`Vérification de l'intégrité...`,verifyingDigest:`vérification du digest sha256`,writing:`Écriture du manifeste...`,cleaning:`Nettoyage...`},library:{available:`disponibles`,search:`Rechercher des modèles...`,noResults:`Aucun modèle correspondant à vos critères`,installed:`Installé`,more:`+{{count}} de plus`,refresh:`Actualiser la bibliothèque`},huggingface:{browseAll:`Parcourir tout sur HuggingFace`,checkingGguf:`Recherche des fichiers GGUF...`,noGgufAvailable:`Aucun fichier GGUF disponible pour Ollama`,ggufFilesCount:`Fichiers GGUF ({{count}}) - Télécharger vers Ollama`,noModelsFound:`Aucun modèle trouvé`,noResults:`Aucun modèle trouvé. Essayez d'ajuster votre recherche.`,browseAllLink:`Voir tout`,search:`Rechercher des modèles HuggingFace...`,by:`par`,gated:`Accès restreint`,viewOnHF:`Voir sur HuggingFace`,sortDownloads:`Téléchargements`,sortLikes:`Likes`,sortRecent:`Récent`,taskTextGeneration:`Génération de texte`,taskTextToSpeech:`Synthèse vocale`,taskTextToImage:`Texte vers image`,taskSpeechRecognition:`Reconnaissance vocale`,tasks:{textGen:`Génération de texte`,tts:`Synthèse vocale`,image:`Texte vers image`,stt:`Reconnaissance vocale`},sort:{downloads:`Plus téléchargés`,likes:`Plus aimés`,recent:`Récemment mis à jour`}},local:{noModels:`Aucun modèle installé`,pullToStart:`Téléchargez un modèle ci-dessus pour commencer`,installed:`installés`,running:`En cours`,info:`Info`,copy:`Copier`,delete:`Supprimer`,deleteConfirm:`Êtes-vous sûr de vouloir supprimer le modèle "{{name}}" ?`,deleteSuccess:`Modèle {{name}} supprimé avec succès`,deleteFailed:`Échec de la suppression du modèle`},advanced:{createModel:`Créer un modèle`,fromModelfile:`À partir d'un Modelfile`,copyModel:`Copier un modèle`,duplicateExisting:`Dupliquer un existant`,testEmbeddings:`Tester les embeddings`,generateVectors:`Générer des vecteurs`,healthCheck:`Vérification de santé`,testConnection:`Tester la connexion`,healthy:`Ollama est opérationnel !`},modals:{details:{title:`Détails du modèle`,info:`Informations sur le modèle`,family:`Famille`,parameters:`Paramètres`,quantization:`Quantification`,format:`Format`,systemPrompt:`Message système`,template:`Modèle`,license:`Licence`,modelfile:`Modelfile`,noDetails:`Aucun détail disponible`},copy:{title:`Copier le modèle`,source:`Modèle source`,selectModel:`Sélectionnez un modèle...`,newName:`Nouveau nom du modèle`,placeholder:`ex: mon-modèle-personnalisé`,copying:`Copie en cours...`,button:`Copier le modèle`,success:`Modèle copié vers {{name}}`,failed:`Échec de la copie du modèle`,enterBoth:`Veuillez entrer les noms source et destination`},create:{title:`Créer un modèle personnalisé`,name:`Nom du modèle`,namePlaceholder:`ex: mon-assistant`,modelfile:`Modelfile`,modelfilePlaceholder:`FROM llama3.2
|
|
2
|
-
SYSTEM Vous êtes un assistant utile.`,see:`Voir`,docs:`la documentation Modelfile`,docsLink:`pour la référence syntaxique`,creating:`Création...`,button:`Créer le modèle`,success:`Modèle {{name}} créé avec succès`,failed:`Échec de la création du modèle`,enterBoth:`Veuillez entrer le nom du modèle et le contenu du Modelfile`},embeddings:{title:`Tester les embeddings`,model:`Modèle d'embedding`,selectModel:`Sélectionnez un modèle...`,recommended:`Recommandés : nomic-embed-text, mxbai-embed-large`,input:`Texte d'entrée`,placeholder:`Entrez le texte pour générer les embeddings...`,generating:`Génération...`,button:`Générer les embeddings`,result:`Résultat ({{count}} dimensions)`,success:`Vecteur d'embedding de {{count}} dimensions généré`,failed:`Échec de la génération des embeddings`,enterBoth:`Veuillez sélectionner un modèle et entrer du texte`}}},personaManager:{title:`Personas`,subtitle:`Créez et gérez des personas IA avec des personnalités, mémoires et comportements personnalisés`,loading:`Chargement des personas...`,createButton:`Créer un persona`,importExport:`Importer/Exporter`,stats:{title:`Vos personas`,count:`{{count}} persona créé`,count_plural:`{{count}} personas créés`},empty:{title:`Aucun persona`,description:`Créez votre premier persona pour commencer avec des interactions IA personnalisées`,button:`Créer votre premier persona`},deleteConfirm:`Êtes-vous sûr de vouloir supprimer "{{name}}" ?`,deleteSuccess:`Persona "{{name}}" supprimé avec succès`,downloadSuccess:`Persona "{{name}}" téléchargé avec succès`,failed:`Échec de {{action}} le persona`},personaForm:{title:{create:`Créer un nouveau persona`,edit:`Modifier le persona`},subtitle:{create:`Créez un nouveau persona IA avec une personnalité personnalisée, des systèmes de mémoire et des capacités d'apprentissage adaptatif`,edit:`Personnalisez votre persona IA avec une mémoire avancée, un apprentissage adaptatif et des paramètres intelligents`},loading:`Chargement du formulaire...`,saved:`Enregistré`,tabs:{basic:`Base`,parameters:`Paramètres`,memory:`Mémoire et apprentissage`,advanced:`Avancé`},basic:{name:`Nom`,namePlaceholder:`Entrez le nom du persona`,model:`Modèle`,selectModel:`Sélectionnez un modèle`,description:`Description`,descriptionPlaceholder:`Décrivez votre persona...`,systemPrompt:`Message système`,systemPromptPlaceholder:`Entrez le message système qui définit le comportement de votre persona...`,systemPromptHint:`Le message système définit comment votre persona se comportera et répondra.`},parameters:{temperature:`Température`,temperatureHint:`Contrôle la créativité vs la cohérence`,topP:`Top-P`,topPHint:`Contrôle la diversité des réponses`,topK:`Top-K`,topKHint:`Limite le vocabulaire aux k premiers tokens`,contextWindow:`Fenêtre de contexte`,contextWindowHint:`Longueur maximale de l'historique de conversation`,maxTokens:`Tokens maximum`,maxTokensHint:`Longueur maximale de la réponse`,repeatPenalty:`Pénalité de répétition`,repeatPenaltyHint:`Réduit les réponses répétitives`},memory:{title:`Système de mémoire`,subtitle:`Le persona se souvient des conversations au fil du temps`,enableHint:`Activez le système de mémoire pour permettre à votre persona de se souvenir des conversations et de construire un contexte au fil du temps.`,loading:`Chargement du statut de la mémoire...`,noData:`Aucune donnée de mémoire`,memories:`Mémoires`,mbUsed:`Mo utilisés`,lastBackup:`Dernière sauvegarde`,never:`Jamais`,maxMemories:`Mémoires maximum`,maxMemoriesHint:`Combien de mémoires ce persona peut stocker`,retention:`Rétention de la mémoire`,retentionHint:`Jours de conservation des mémoires avant nettoyage`,autoCleanup:`Nettoyage automatique des anciennes mémoires`,wipeAll:`Effacer toutes les mémoires`,wipeCannot:`Cette action est irréversible`,wipeButton:`Effacer`,wiping:`Effacement...`,wipeConfirm:`Êtes-vous sûr de vouloir effacer toutes les mémoires ? Cette action est irréversible.`,wipeSuccess:`{{count}} mémoires effacées`},learning:{title:`Apprentissage adaptatif`,subtitle:`Le persona évolue en fonction des interactions`,enableHint:`Activez l'apprentissage adaptatif pour permettre à votre persona d'évoluer et de personnaliser les réponses en fonction de vos interactions.`,speed:`Vitesse d'apprentissage`,slow:`Lent`,slowDesc:`Changements progressifs`,balanced:`Équilibré`,balancedDesc:`Rythme modéré`,fast:`Rapide`,fastDesc:`Adaptation rapide`,autoAdapt:`S'adapter automatiquement aux préférences de l'utilisateur`,whatLearns:`Ce que le persona apprend :`,conversationTone:`Ton de conversation`,responseStyle:`Style de réponse`,userPreferences:`Préférences utilisateur`,topicInterests:`Intérêts thématiques`},advanced:{embeddingModel:`Modèle d'embedding`,embeddingHint:`Sélectionnez le modèle utilisé pour l'encodage de la mémoire et la recherche sémantique. Les modèles d'embedding sont affichés en premier, suivis des autres modèles disponibles.`,noModels:`Aucun modèle trouvé`,embeddingModels:`Modèles d'embedding`,otherModels:`Autres modèles`,installHint:`Installez un modèle d'embedding :`,recommended:`Recommandés : nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`À propos des paramètres avancés`,aboutDescription:`Le modèle d'embedding est utilisé par le système de mémoire pour comprendre le sens sémantique et trouver des mémoires pertinentes pendant les conversations. Choisissez un modèle adapté à votre cas d'utilisation et aux ressources disponibles.`},actions:{cancel:`Annuler`,save:`Enregistrer`,saving:`Enregistrement...`,saveClose:`Enregistrer et fermer`,create:`Créer`},success:{created:`Persona créé`,updated:`Persona mis à jour`},error:{saveFailed:`Échec de l'enregistrement`}},personaCard:{enhanced:`Amélioré`,systemPrompt:`Message système`,memories:`mémoires`,use:`Utiliser`,editTooltip:`Modifier le persona`,downloadTooltip:`Télécharger le persona`,backup:`Sauvegarde`,exportDNA:`Exporter l'ADN`,wipeMemories:`Effacer les mémoires`,wipeConfirm:`Êtes-vous sûr de vouloir effacer toutes les mémoires de ce persona ? Cette action est irréversible.`,wipeSuccess:`{{count}} mémoires effacées`,backupSuccess:`Sauvegarde du persona téléchargée avec succès`,dnaSuccess:`ADN du persona exporté avec succès`,failed:`Échec de {{action}}`},userManager:{title:`Gestion des utilisateurs`,subtitle:`Gérez les comptes utilisateurs et les permissions`,pageDescription:`Gérez les comptes utilisateurs, les permissions et les contrôles d'accès pour votre instance Libre WebUI.`,loading:`Chargement des utilisateurs...`,createUser:`Créer un utilisateur`,search:`Rechercher des utilisateurs...`,noUsers:`Aucun utilisateur trouvé`,noUsersMatching:`Aucun utilisateur correspondant à votre recherche`,columns:{user:`Utilisateur`,email:`Email`,role:`Rôle`,created:`Créé le`,actions:`Actions`},roles:{admin:`Admin`,user:`Utilisateur`},noEmail:`Pas d'email`,deleteConfirm:`Êtes-vous sûr de vouloir supprimer l'utilisateur "{{name}}" ?`,deleteSuccess:`Utilisateur supprimé avec succès`,deleteFailed:`Échec de la suppression de l'utilisateur`,cannotDeleteSelf:`Vous ne pouvez pas supprimer votre propre compte`,approval:{title:`Approbations en attente`,description:`Vérifiez les nouvelles inscriptions avant de les autoriser sur cette instance.`,registered:`Inscrit`,activate:`Activer le compte`,reject:`Rejeter l'inscription`,approved:`{{name}} peut maintenant se connecter.`,failed:`Le compte n'a pas pu être approuvé.`,notification:`{{count}} inscription(s) en attente de votre approbation.`,notificationBadge:`{{count}} approbations d'utilisateurs en attente`},form:{title:{create:`Créer un utilisateur`,edit:`Modifier l'utilisateur`},username:`Nom d'utilisateur`,usernamePlaceholder:`Entrez le nom d'utilisateur`,email:`Email`,emailPlaceholder:`Entrez l'email (optionnel)`,password:`Mot de passe`,passwordPlaceholder:`Entrez le mot de passe`,passwordHint:`Laissez vide pour conserver le mot de passe actuel`,role:`Rôle`,creating:`Création...`,updating:`Mise à jour...`,createButton:`Créer l'utilisateur`,updateButton:`Mettre à jour l'utilisateur`,createSuccess:`Utilisateur créé avec succès`,updateSuccess:`Utilisateur mis à jour avec succès`,createFailed:`Échec de la création de l'utilisateur`,updateFailed:`Échec de la mise à jour de l'utilisateur`},workAccess:{title:`Accès à Work`,description:`Autoriser tous les utilisateurs actifs à créer et exécuter des tâches Work dans des bacs à sable isolés. Les administrateurs y ont toujours accès ; les espaces de travail sur dossiers hôtes restent réservés aux administrateurs.`,saved:`Accès à Work mis à jour`,saveFailed:`Impossible de mettre à jour l'accès à Work`},workPolicies:{title:`Politiques Work`,description:`Préréglages d'exécution nommés (image, limites, arrêt d'inactivité) sous lesquels créer des tâches. Les champs vides héritent des valeurs globales.`,add:`Ajouter une politique`,name:`Nom`,image:`Image`,memory:`Mémoire`,cpu:`CPU`,pids:`Limite de PID`,workspaceSize:`Taille de l'espace de travail`,idleMinutes:`Arrêt d'inactivité (minutes)`,networkDefault:`Réseau par défaut`,networkInherit:`Hériter du défaut`,networkOn:`Activé`,networkOff:`Désactivé`,save:`Enregistrer`,cancel:`Annuler`,edit:`Modifier la politique`,delete:`Supprimer la politique`,deleteConfirm:`Supprimer cette politique ? Les tâches qui l'utilisent reviennent aux valeurs globales.`,empty:`Aucune politique pour l'instant. Les tâches utilisent les valeurs d'exécution globales.`,saved:`Politique Work enregistrée`,deleted:`Politique Work supprimée`,failed:`Impossible d'enregistrer la politique Work`,invalidNumber:`La limite de PID et l'arrêt d'inactivité doivent être des nombres.`},modelAccess:{title:`Téléchargement de modèles`,description:`Autoriser tous les utilisateurs actifs à télécharger des modèles depuis Ollama et le navigateur Hugging Face. Les administrateurs peuvent toujours télécharger des modèles.`,saved:`Accès au téléchargement de modèles mis à jour`,saveFailed:`Impossible de mettre à jour l'accès au téléchargement de modèles`},webSearchAccess:{title:`Recherche web`,description:`Autoriser tous les utilisateurs actifs à utiliser la recherche web dans les chats et les tâches Work. Les administrateurs peuvent toujours l'utiliser. Le moteur se configure dans Paramètres > Recherche.`,saved:`Accès à la recherche web mis à jour`,saveFailed:`Impossible de mettre à jour l'accès à la recherche web`},agentAccess:{title:`Agents`,description:`Proposer la section Agents (Libre Claw) aux administrateurs. Les CLI d'agents s'exécutent sur l'hôte avec l'utilisateur du serveur, hors du bac à sable Work.`,saved:`Accès aux agents mis à jour`,saveFailed:`Impossible de mettre à jour l'accès aux agents`,lockedByEnv:`Fixé par la variable d'environnement AGENT_CLI_MODELS_ENABLED.`},groups:{title:`Groupes`,description:`Regroupez les comptes pour gérer les accès partagés et inspectez ce que chaque compte peut réellement faire.`,newGroup:`Nouveau groupe`,nameLabel:`Nom`,nameRequired:`Donnez un nom au groupe.`,descriptionLabel:`Description (facultatif)`,create:`Créer le groupe`,creating:`Création…`,created:`Groupe créé.`,createFailed:`Le groupe n'a pas pu être créé.`,deleted:`Groupe supprimé.`,deleteFailed:`Le groupe n'a pas pu être supprimé.`,deleteGroup:`Supprimer le groupe`,loadFailed:`Les groupes n'ont pas pu être chargés.`,empty:`Aucun groupe pour l'instant.`,memberCount:`Membres : {{count}}`,noMembers:`Aucun membre pour l'instant.`,addedAt:`Ajouté`,addMember:`Ajouter un membre`,add:`Ajouter`,selectUser:`Sélectionner un utilisateur…`,memberAdded:`Membre ajouté.`,memberAddFailed:`Le membre n'a pas pu être ajouté.`,removeMember:`Retirer le membre`,memberRemoved:`Membre retiré.`,memberRemoveFailed:`Le membre n'a pas pu être retiré.`,effectiveTitle:`Accès effectif`,effectiveDescription:`Choisissez un compte pour voir l'accès dont il dispose au final via son rôle, ses groupes et ses autorisations.`,accessLookupFailed:`L'accès effectif n'a pas pu être chargé.`,roleLabel:`Rôle`,statusLabel:`Statut`,memberOf:`Groupes`,featuresLabel:`Accès aux fonctionnalités`,grantsLabel:`Autorisations`,grantVia:`via`},audit:{title:`Journal d'audit de sécurité`,description:`Connexions récentes, vérifications de permissions et modifications administratives sur cette instance.`,actionFilter:`Action`,actionPlaceholder:`ex. auth.login`,resultFilter:`Résultat`,resultSuccess:`Succès`,resultDenied:`Refusé`,resultFailure:`Échec`,limitFilter:`Limite`,loadFailed:`Le journal d'audit n'a pas pu être chargé.`,empty:`Aucun événement d'audit enregistré pour l'instant.`,actor:`Acteur`,target:`Cible`}},usageAnalytics:{eyebrow:`Administration`,title:`Utilisation des fournisseurs`,description:`Suivez les appels API sortants et la consommation des modèles sur les plugins activés de cette instance.`,days:`{{count}} jours`,refresh:`Actualiser l'utilisation`,loadFailed:`L'utilisation des fournisseurs n'a pas pu être chargée.`,metrics:{calls:`Appels`,tokens:`Jetons`},cards:{calls:`Appels API`,callsDetail:`Sur {{count}} utilisateur(s) actif(s)`,tokens:`Jetons signalés`,tokensDetail:`Utilisation signalée sur {{count}} appel(s)`,success:`Taux de réussite`,successDetail:`{{count}} appel(s) échoué(s)`,latency:`Latence moyenne`,latencyDetail:`Temps de bout en bout du fournisseur`},activity:{title:`Consommation au fil du temps`,callsDescription:`Requêtes sortantes quotidiennes vers les plugins activés`,tokensDescription:`Totaux quotidiens de jetons signalés par les fournisseurs`,chartLabel:`Graphique quotidien des {{metric}} du fournisseur`},models:{title:`Consommation par modèle`,description:`Les modèles générant le plus de trafic sur cette période.`,model:`Modèle`,success:`Succès`,latency:`Latence`},providers:{title:`Trafic des plugins activés`},capabilities:{title:`Répartition des capacités`,characters:`{{count}} caractères`,bytes:`{{count}} octets`,images:`{{count}} images`,jobs:`{{count}} tâches vidéo`,inputs:`{{count}} entrées`,reportedTokens:`{{count}} jetons signalés`},empty:{title:`Aucun appel fournisseur pour le moment`,description:`Les appels apparaîtront ici une fois qu'un plugin activé aura traité des requêtes de chat, Work, d'embedding, d'image, de parole, de son ou de vidéo.`},privacyNote:`L'utilisation est mesurée sur le serveur à la limite du plugin sortant. Libre WebUI stocke le fournisseur, le modèle, le minutage, le statut et les compteurs signalés — jamais les prompts, les réponses, les points de terminaison, les identifiants ou les corps d'erreur du fournisseur. Les totaux de jetons incluent uniquement les appels où le fournisseur a renvoyé des métadonnées d'utilisation.`,heatmap:{title:`Une année d'activité`,description:`Appels quotidiens aux fournisseurs sur l'année écoulée, colorés selon le modèle le plus utilisé chaque jour.`,calls:`appels`,noCalls:`Aucun appel`,other:`Autres modèles`,less:`Moins`,more:`Plus`,yearTotal:`{{formatted}} appels sur la dernière année`}},systemPage:{eyebrow:`Administration`,title:`Système`,description:`Surveillez la machine et l'environnement d'exécution hébergeant cette instance de Libre WebUI.`,updated:`Mis à jour le {{date}}`,refresh:`Actualiser les informations système`,loadFailed:`Les informations système n'ont pas pu être chargées.`,cards:{uptime:`Temps d'activité de l'hôte`,uptimeDetail:`En cours d'exécution depuis le {{date}}`,memory:`Mémoire utilisée`,memoryDetail:`{{used}} sur {{total}}`,freeSpace:`Espace libre`,freeSpaceDetail:`{{label}} · {{total}} au total`,containers:`Conteneurs en cours d'exécution`,containersDetail:`{{total}} conteneur(s) connu(s) de Docker`,dockerUnavailable:`Docker indisponible`,unavailable:`Indisponible`},host:{title:`Hôte et environnement d'exécution`,description:`Détails du système d'exploitation, du processeur et du processus Libre WebUI.`,container:`Environnement d'exécution de conteneurs`,native:`Runtime natif`,hostname:`Nom d'hôte`,operatingSystem:`Système d'exploitation`,processor:`Processeur`,logicalCpus:`CPU logiques`,loadAverage:`Charge moyenne · 1 / 5 / 15 min`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`Processus`,workingDirectory:`Répertoire de travail`},memory:{title:`Mémoire`,description:`Mémoire système visible au runtime et utilisation par le processus de l'application.`,usedOf:`{{used}} utilisés sur {{total}}`,free:`{{value}} libres`,processRss:`RSS du processus`,heapUsed:`Tas V8 utilisé`,heapTotal:`Tas V8 total`,external:`Mémoire externe`},storage:{title:`Stockage`,description:`Espace disponible pour le système de fichiers du runtime et les données persistantes de l'application.`,used:`{{value}} utilisés`,free:`{{value}} libres`,empty:`Les informations sur le système de fichiers sont indisponibles dans ce runtime.`},docker:{title:`Docker`,description:`Statut en lecture seule de Docker Engine et liste réduite des conteneurs.`,connected:`Connecté`,unavailable:`Indisponible`,unavailableDetail:`Les diagnostics de Docker Engine sont indisponibles.`,socketStatus:`Socket local : {{status}}`,mounted:`monté`,notMounted:`non monté`,running:`En cours d'exécution`,stopped:`Arrêté`,paused:`En pause`,total:`Total`,version:`Version`,host:`Hôte`,architecture:`Architecture`,cpus:`CPUs`,memory:`Mémoire`,container:`Conteneur`,image:`Image`,state:`État`,created:`Créé`,empty:`Docker est connecté et aucun conteneur n'est actuellement listé.`},network:{title:`Réseau`,description:`Interfaces, adresses et compteurs de trafic Linux visibles à l'exécution.`,internal:`interne`,empty:`Aucune interface réseau n'est visible pour l'environnement d'exécution de l'application.`},securityNote:`Cette page est réservée aux administrateurs. Le serveur renvoie uniquement des résumés opérationnels : il n'expose pas les variables d'environnement, les identifiants, les étiquettes Docker, les points de montage, les commandes de conteneur ou les charges utiles d'inspection. Lorsque Libre WebUI s'exécute dans un conteneur, les détails du CPU et de la mémoire au niveau de l'hôte proviennent de Docker Engine lorsque son socket local est disponible ; les autres valeurs décrivent l'environnement d'exécution de l'application.`,work:{title:`Work`,description:`Bacs à sable de tous les utilisateurs`,access:`Accès`,accessAdmins:`Administrateurs uniquement`,accessAllUsers:`Tous les utilisateurs`,runtimeAvailable:`Disponible`,runtimeUnavailable:`Indisponible`,activeRuntimes:`Environnements actifs`,pendingCleanups:`Nettoyages en attente`,orphans:`Conteneurs orphelins`,owner:`Propriétaire`,task:`Tâche`,state:`État`,preview:`Aperçu`,terminals:`Terminaux`,updated:`Mis à jour`,stateRunning:`En cours`,stateStopped:`Arrêté`,stateStarting:`Démarrage`,stateUnknown:`Inconnu`,noTasks:`Aucune tâche Work pour l'instant.`}},chatHistory:{label:`Historique de la conversation`,jumpToTurn:`Aller au tour {{index}} sur {{total}}`},chatMessage:{you:`Vous`,assistant:`Assistant`,system:`Système`,copy:`Copier`,copyMessage:`Copier le message`,copied:`Copié !`,regenerate:`Régénérer`,regenerateResponse:`Régénérer la réponse`,edit:`Modifier`,editSystemMessage:`Modifier le message système`,saveChanges:`Enregistrer les modifications`,cancelEditing:`Annuler la modification`,saveAndSubmit:`Enregistrer et envoyer`,goodResponse:`Bonne réponse`,badResponse:`Mauvaise réponse`,delete:`Supprimer`,deleteConfirm:`Supprimer ce message ?`,branch:`Branche`,speaking:`Lecture...`,speakMessage:`Lire le message`,stopSpeaking:`Arrêter la lecture`,showMore:`Voir plus`,showLess:`Voir moins`,thinking:`Réflexion`,thoughtFor:`A réfléchi pendant {{duration}}`,hiddenLines:`{{count}} lignes masquées`,systemMessagePlaceholder:`Entrez votre message système...`,fullSizeImage:`Image en taille réelle`,startConversation:`Démarrer une conversation`,startConversationDescription:`Envoyez un message pour commencer à discuter avec votre assistant IA. Posez des questions, obtenez de l'aide pour le code ou ayez une conversation naturelle.`,scrollToBottom:`Défiler vers le bas`,newMessages:`Nouveaux messages`},imageGallery:{title:`Galerie d'images`,noImages:`Aucune image`,noImagesHint:`Générez votre première image en utilisant le panneau de droite`,delete:`Supprimer`,download:`Télécharger`,deleteConfirm:`Êtes-vous sûr de vouloir supprimer cette image ?`,deleteSuccess:`Image supprimée`,deleteFailed:`Échec de la suppression de l'image`,downloadFailed:`Échec du téléchargement de l'image`,loadMore:`Charger plus ({{current}} sur {{total}})`,loadFailed:`Échec du chargement de la galerie`},imageGeneration:{title:`Générer une image`,prompt:`Description`,promptPlaceholder:`Décrivez l'image que vous souhaitez créer...`,model:`Modèle`,selectModel:`Sélectionnez un modèle`,noModels:`Aucun modèle de génération d'images disponible`,configurePlugin:`Configurez un plugin avec support de génération d'images`,size:`Taille`,quality:`Qualité`,style:`Style`,generate:`Générer`,generating:`Génération...`,success:`Image générée avec succès`,failed:`Échec de la génération de l'image`,enterPrompt:`Veuillez entrer une description`,promptTooLong:`Le prompt dépasse la longueur maximale de {{max}} caractères`},mediaGeneration:{title:`Générer des médias`,description:`Créer une vidéo, un son, de la musique ou de la parole avec un fournisseur de médias activé.`,image:`Image`,video:`Vidéo`,audio:`Audio`,sound:`Son`,speech:`Parole`,model:`Modèle`,voice:`Voix ou ID de voix`,cloneVoice:`Cloner une voix de référence`,cloneVoiceDescription:`Générer cette parole à partir d'un enregistrement de référence plutôt que d'une voix prédéfinie.`,referenceAudio:`Audio de référence`,referenceTranscript:`Transcription exacte de la référence`,referenceTranscriptPlaceholder:`Saisissez exactement ce qui est prononcé dans l'enregistrement de référence…`,referenceAudioTooLarge:`L'audio de référence doit avoir une taille maximale de {{max}}.`,cloneConsent:`Ne clonez une voix qu'avec l'autorisation de la personne qui parle. L'enregistrement est envoyé au fournisseur sélectionné pour cette génération et n'est pas conservé par Libre WebUI.`,saveVoiceProfile:`Enregistrer comme voix réutilisable`,saveVoiceProfileDescription:`Conservez cet enregistrement de référence et sa transcription de façon sécurisée. Libre WebUI les envoie au fournisseur sélectionné pour chaque lot de parole utilisant cette voix.`,voiceProfileName:`Nom de la voix enregistrée`,voiceProfileNamePlaceholder:`Par exemple, Ma voix`,voiceStorageConsent:`Je confirme avoir l’autorisation de la personne qui parle pour cloner et enregistrer cette voix. La référence restera enregistrée jusqu’à ce que je la supprime.`,resolution:`Résolution`,aspectRatio:`Format d'image`,duration:`Durée`,providerDefault:`Par défaut du fournisseur`,generateAudio:`Générer l'audio avec la vidéo si pris en charge`,prompt:`Invite`,text:`Texte à prononcer`,videoPlaceholder:`Décrivez la scène, le mouvement, la caméra et l'éclairage...`,audioPlaceholder:`Saisissez le texte que la voix doit prononcer...`,soundPlaceholder:`Décrivez le son, la musique, l'atmosphère ou la réponse vocale souhaitée...`,generate:`Générer`,generating:`Génération… cela peut prendre plusieurs minutes`,success:`Média généré et enregistré dans Imagine`,successWithSavedVoice:`Le média a été généré et «\xA0{{name}}\xA0» est maintenant disponible dans les réglages de la parole`,failed:`Échec de la génération du média`,loadFailed:`Échec du chargement des fournisseurs de médias`,noModels:`Aucun modèle {{kind}} n'est disponible. Activez un fournisseur compatible et enregistrez d'abord ses identifiants.`},mediaGallery:{itemCount:`{{count}} éléments`,empty:`Aucun média généré pour le moment`,emptyHint:`Générez une image, une vidéo ou un clip vocal et il apparaîtra ici.`,filters:{all:`Tous`,image:`Images`,video:`Vidéos`,audio:`Audio`}},errorBoundary:{title:`Une erreur s'est produite`,description:`Nous avons rencontré une erreur inattendue. Veuillez actualiser la page.`,tryAgain:`Actualiser la page`,goHome:`Retour à l'accueil`,errorDetails:`Détails de l'erreur (Développement)`},documents:{title:`Documents`,upload:`Envoyer un document`,uploading:`Envoi...`,noDocuments:`Aucun document envoyé`,uploadHint:`Envoyez des documents à utiliser dans vos conversations`,delete:`Supprimer`,deleteConfirm:`Êtes-vous sûr de vouloir supprimer ce document ?`,deleteSuccess:`Document supprimé`,deleteFailed:`Échec de la suppression du document`,uploadSuccess:`Document envoyé avec succès`,uploadFailed:`Échec de l'envoi du document`,types:`Formats supportés : PDF, TXT, MD, DOCX`,unsupportedFileType:`Seuls les fichiers PDF et TXT sont pris en charge`,fileSizeTooLarge:`La taille du fichier doit être inférieure à 10 Mo`,uploadSuccessWithName:`Document "{{name}}" envoyé avec succès`,removeSuccess:`Document supprimé avec succès`,removeFailed:`Échec de la suppression du document`,removeError:`Une erreur s'est produite lors de la suppression du document`,clickToUpload:`Cliquez pour envoyer`,orDragAndDrop:`ou glissez-déposez`,fileTypesAndSize:`Fichiers PDF ou TXT jusqu'à 10 Mo`,uploadedDocuments:`Documents envoyés`,removeDocument:`Supprimer le document`},ttsButton:{speak:`Lire`,stop:`Arrêter`,speaking:`Lecture...`,generateFailed:`Échec de la génération de la parole`,playbackFailed:`Échec de la lecture audio`,stopSpeaking:`Arrêter la lecture`,preparingSpeech:`Préparation de la parole...`,generatingSpeech:`Génération de la parole...`,bufferingSpeech:`Mise en mémoire tampon...`,enableAudio:`Activer l’audio et lire à voix haute`,enableAudioShort:`Activer l’audio`,readAloud:`Lire à voix haute`},artifacts:{title:`Artefacts`,code:`Code`,preview:`Aperçu`,copy:`Copier le code`,copied:`Copié !`,download:`Télécharger`,expand:`Agrandir`,collapse:`Réduire`,openInNewTab:`Ouvrir dans un nouvel onglet`,invalidSvg:`Contenu SVG invalide`,invalidJson:`Contenu JSON invalide`,previewMode:`Mode aperçu`,codeMode:`Mode code`,copyContent:`Copier le contenu`,openInPanel:`Ouvrir dans le panneau`,openInNewWindow:`Ouvrir dans une nouvelle fenêtre`,created:`Créé le`,closePanelEsc:`Fermer le panneau (Échap)`,copyButton:`Copier`,open:`Ouvrir`,dragEdgeToResize:`Faites glisser le bord pour redimensionner`,previewUnavailable:`Preview unavailable`,previewUnavailableDescription:`This artifact does not contain renderable preview content. Switch to code view to inspect the source.`,versionOf:`Version {{current}} sur {{total}}`,previousVersion:`Version précédente`,nextVersion:`Version suivante`},personaImportExport:{title:`Importer et exporter des personas`,description:`Exportez vos personas pour les partager ou importez des personas d'autres utilisateurs`,exportPersonas:`Exporter des personas`,importPersonas:`Importer des personas`,noPersonasToExport:`Aucun persona à exporter`,personasAvailable:`{{count}} persona disponible`,personasAvailable_plural:`{{count}} personas disponibles`,exportAll:`Tout exporter`,uploadJsonFile:`Envoyer un fichier JSON`,pasteJsonLabel:`Coller les données JSON`,pasteJsonPlaceholder:`Collez les données JSON du persona ici...`,importing:`Importation...`,importButton:`Importer le(s) persona(s)`,expectedFormat:`Format JSON attendu :`,exportSuccess:`Persona "{{name}}" exporté avec succès`,exportFailed:`Échec de l'exportation du persona`,exportAllSuccess:`Tous les {{count}} personas ont été exportés avec succès`,exportAllFailed:`Échec de l'exportation des personas`,pasteJsonData:`Veuillez coller les données JSON du persona`,importMultipleSuccess:`{{count}} personas importés avec succès`,importMultipleFailed:`Échec de l'importation de {{count}} personas`,importNoneFailed:`Échec de l'importation de tous les personas`,importSuccess:`Persona importé avec succès`,importFailed:`Échec de l'importation du persona`},generationStats:{details:`Détails`,promptTokens:`Tokens du prompt :`,generatedTokens:`Tokens générés :`,totalTokens:`Tokens totaux :`,speed:`Vitesse :`,promptEval:`Éval. du prompt :`,generation:`Génération :`,modelLoad:`Chargement du modèle :`,totalTime:`Temps total :`,generatedAt:`Généré à :`},userMenu:{loggedOut:`Déconnexion réussie`,pictureUpdated:`Photo de profil mise à jour`,failedUpdateAvatar:`Échec de la mise à jour de l'avatar`,failedUpdatePicture:`Échec de la mise à jour de la photo de profil`,noEmail:`Aucun e-mail fourni`,changePicture:`Changer la photo`,settings:`Paramètres`,userManagement:`Gestion des utilisateurs`,signOut:`Se déconnecter`,changeProfilePicture:`Changer la photo de profil`},pluginManager:{title:`Gestionnaire de plugins`,upload:`Télécharger`,addJson:`Ajouter JSON`,browseHF:`Parcourir HF Hub`,confirmDelete:`Voulez-vous vraiment supprimer ce plugin ?`,uploading:`Téléchargement du plugin...`,pasteJson:`Collez le JSON du plugin ici...`,installPlugin:`Installer le plugin`,loading:`Chargement des plugins...`,noPlugins:`Aucun plugin installé`,noPluginsDescription:`Téléchargez un fichier plugin ou ajoutez un plugin depuis JSON pour commencer.`,active:`Actif`,id:`ID`,endpoint:`Endpoint`,activate:`Activer`,deactivate:`Désactiver`,activePlugin:`Plugin actif`,activePluginDescription:`Toutes les requêtes de chat passeront par ce plugin`,variables:{title:`Variables`,save:`Enregistrer`,saving:`Enregistrement...`,saved:`Variables enregistrées`,saveFailed:`Échec de l'enregistrement`,resetDefaults:`Réinitialiser`,reset:`Variables réinitialisées`,resetFailed:`Échec de la réinitialisation des variables`,sensitiveSet:`Valeur définie (entrez une nouvelle valeur pour modifier)`,showValue:`Afficher la valeur de {{label}}`,hideValue:`Masquer la valeur de {{label}}`,connection:`Connexion`,advanced:`Paramètres avancés`,inherited:`Utiliser la valeur par défaut du fournisseur`,inheritedValue:`Utiliser la valeur par défaut du fournisseur ({{value}})`,enabled:`Activé`,disabled:`Désactivé`,required:`Une valeur est requise`,fullApiEndpoint:`URL complète du point de terminaison API`,endpointHelp:`Saisissez l'URL de requête complète, y compris son chemin d'opération (par exemple, /v1/chat/completions), et non uniquement l'URL de base du fournisseur.`,invalidUrl:`Saisissez une URL complète de point de terminaison API valide, par exemple https://provider.example/v1/chat/completions`,insecureUrl:`Les points de terminaison API doivent utiliser HTTP ou HTTPS.`,httpWarning:`HTTP ne chiffre pas les identifiants ni le trafic. Ne l'utilisez que sur un réseau de confiance.`,invalidBaseUrl:`Les URL de base ne peuvent pas contenir de chaîne de requête ni de fragment.`,invalidApiPath:`Doit commencer par / et ne contenir ni URL, ni requête, ni fragment, ni segment ..`,tooLong:`La valeur est trop longue`}},huggingface:{title:`Explorateur de modèles HuggingFace`,subtitle:`Parcourez et sélectionnez des modèles depuis le Hub`,searchPlaceholder:`Rechercher des modèles...`,filters:`Filtres`,task:`Tâche`,sortBy:`Trier par`,noModels:`Aucun modèle trouvé`,adjustSearch:`Essayez d'ajuster votre recherche ou vos filtres`,gated:`Restreint`,selected:`Sélectionné`,select:`Sélectionner`,refresh:`Actualiser`,modelsFound:`modèles trouvés`},demoMode:{title:`Mode démo`,github:`GitHub`},libreClaw:{title:`Agents`,subtitle:`Exécutions d'agents locales, approbations, planifications, mémoire, outils et usage.`,dashboard:`Tableau de bord`,connection:{disconnectedTitle:`Le daemon Libre Claw n'est pas connecté`,disconnectedDescription:`Démarrez-le localement avec <command>libre-claw start</command> ou définissez <env>LIBRE_CLAW_BASE_URL</env> dans l'environnement backend.`},status:{connected:`Connecté`,disconnected:`Déconnecté`,activeRuns:`{{count}} actif`,activeRuns_plural:`{{count}} actifs`},states:{queued:`En attente`,running:`En cours`,blocked:`Bloqué`,done:`Terminé`,failed:`Échec`,cancelled:`Annulé`},startRun:{title:`Démarrer une exécution d'agent`,placeholder:`Demandez à Libre Claw d'inspecter un dépôt, corriger un bug, faire une revue, planifier un rapport...`,chatRun:`Exécution chat`,goalMode:`Mode objectif`,providerOverride:`Fournisseur à utiliser`,modelOverride:`Modèle à utiliser`,run:`Exécuter`},modelRoute:{title:`Routage du modèle`,providerPlaceholder:`fournisseur`,modelPlaceholder:`modèle`,persistGlobal:`Enregistrer dans la configuration globale de Libre Claw`,saveModel:`Enregistrer le modèle`,theme:`Thème Libre Claw`,saveTheme:`Enregistrer le thème`},runs:{title:`Exécutions`,empty:`Aucune exécution Libre Claw pour le moment.`},timeline:{title:`Chronologie de l'exécution`,empty:`Sélectionnez une exécution pour inspecter ses événements.`,streaming:`Streaming...`,assistantResponse:`Réponse de l'assistant`,resultOk:`ok`,resultError:`erreur`,labels:{userMessage:`Message utilisateur`,toolCall:`Appel d'outil`,toolResult:`Résultat d'outil`,approvalRequest:`Demande d'approbation`,approvalResponse:`Réponse d'approbation`,runStarted:`Exécution démarrée`,runFinished:`Exécution terminée`,usage:`Usage`,error:`Erreur`}},approvals:{needed:`Approbation requise`,allowOnce:`Autoriser une fois`,alwaysAllowTool:`Toujours autoriser l'outil`,deny:`Refuser`,toolApprovalRequested:`Approbation d'outil demandée`},automations:{title:`Automatisations`,namePlaceholder:`Nom`,schedulePlaceholder:`daily 09:00`,promptPlaceholder:`Prompt de l'automatisation`,create:`Créer`,empty:`Aucune automatisation Libre Claw planifiée.`,runNow:`Exécuter maintenant`,pause:`Mettre en pause`,resume:`Reprendre`,routes:{report:`Rapport`,telegram:`Telegram`},status:{active:`Active`,paused:`En pause`}},usageFallback:{title:`Usage et fallback`,usage:`Usage`,fallbackRoute:`Route de fallback`,noUsage:`Aucun enregistrement d'usage pour le moment.`},metrics:{provider:`Fournisseur`,model:`Modèle`,input:`Entrée`,output:`Sortie`,cached:`Cache`,reasoning:`Raisonnement`,cost:`Coût`,tool:`Outil`,resolution:`Résolution`,state:`État`,stopReason:`Raison d'arrêt`,tokens:`{{formatted}} token`,tokens_plural:`{{formatted}} tokens`},fallbacks:{tool:`outil`,unknown:`inconnu`,resolved:`résolu`,unknownError:`Erreur inconnue`},toasts:{loadStatusFailed:`Impossible de charger l'état de Libre Claw`,enterTask:`Entrez une tâche pour Libre Claw`,runStarted:`Exécution Libre Claw démarrée`,startRunFailed:`Impossible de démarrer l'exécution Libre Claw`,runCancelled:`Exécution annulée`,cancelRunFailed:`Impossible d'annuler l'exécution`,approved:`Approuvé`,denied:`Refusé`,resolvePermissionFailed:`Impossible de résoudre l'approbation`,providerModelRequired:`Le fournisseur et le modèle sont requis`,modelUpdated:`Modèle Libre Claw mis à jour`,updateModelFailed:`Impossible de mettre à jour le modèle`,themeUpdated:`Thème Libre Claw mis à jour`,updateThemeFailed:`Impossible de mettre à jour le thème`,automationRequired:`Le nom, la planification et le prompt de l'automatisation sont requis`,automationCreated:`Automatisation créée`,createAutomationFailed:`Impossible de créer l'automatisation`,automationUpdated:`Automatisation mise à jour`,updateAutomationFailed:`Impossible de mettre à jour l'automatisation`}},work:{title:`Travail`,subtitle:`Espaces de travail isolés pour les modèles`,tasks:{title:`Tâches de travail`,subtitle:`Espaces de travail locaux persistants`,new:`Nouvelle tâche`,emptyTitle:`Aucune tâche de travail pour le moment`,empty:`Vos tâches de travail apparaîtront ici après l'envoi du premier message.`,untitled:`Tâche sans titre`,actions:`Actions de la tâche`,delete:`Supprimer la tâche`,deleteNamed:`Supprimer {{title}}`,deleteConfirm:`Supprimer définitivement « {{title}} » et son espace de travail ?`,close:`Fermer les tâches de travail`,open:`Ouvrir les tâches de travail`,rename:`Titre de la tâche`,loading:`Chargement de la tâche…`,notFound:`Cette tâche de travail n'est pas disponible`,back:`Démarrer une nouvelle tâche`,status:`État : {{status}}`},landing:{title:`Démarrer une nouvelle tâche de travail`,description:`Attribuez à un modèle local ou provenant d'un fournisseur configuré un espace de travail isolé et persistant. Il peut inspecter des fichiers, exécuter des outils et reprendre là où il s'était arrêté à votre retour.`,isolated:`Isolé`,isolatedBody:`Chaque tâche dispose de son propre conteneur et de ses fichiers.`,durable:`Persistant`,durableBody:`Revenez plus tard à sa conversation et à son espace de travail.`,controlled:`Contrôlé`,controlledBody:`L'environnement d'exécution et les fichiers de la tâche restent isolés de l'hôte.`},composer:{placeholder:`Décrivez ce que vous souhaitez créer ou modifier…`,model:`Modèle de travail`,noModels:`Aucun modèle compatible avec le mode Travail`,cancel:`Arrêter`,send:`Exécuter`,hint:`Chaque tâche conserve ses propres fichiers et son historique. Vérifiez la sortie du modèle avant de l'utiliser.`,remoteTitle:`Fournisseur distant`,remoteHint:`La conversation et la sortie des outils sont envoyées au service configuré. Une exécution autonome peut effectuer plusieurs appels au fournisseur et entraîner des frais. Les fichiers de l'espace de travail restent locaux, sauf si un outil renvoie leur contenu.`,remoteDismiss:`Masquer`,remoteDismissLabel:`Masquer l'avis sur le fournisseur distant`,remoteDismissFailed:`Impossible d'enregistrer la préférence du fournisseur distant.`,noModelSelected:`Aucun modèle compatible avec le mode Travail n'est sélectionné.`},conversation:{ready:`Espace de travail prêt`,empty:`Poursuivez la tâche ci-dessous. Cette conversation et ses fichiers restent associés à cet espace de travail.`,loadOlder:`Charger les messages précédents`},status:{preparing:`Préparation de l'espace de travail isolé…`,running:`Travail dans l'espace de travail local…`},statusLabels:{idle:`Inactif`,thinking:`Réflexion en cours`,complete:`Terminé`,needsInput:`Saisie requise`,error:`Erreur`},live:{connecting:`Connexion aux mises à jour en direct…`,reconnecting:`Reconnexion aux mises à jour en direct…`,unavailable:`Mises à jour en direct indisponibles`,newActivity:`Nouvelle activité`,skillsLoaded:`Compétences d’espace de travail · {{count}}`},runtime:{unavailable:`Environnement d'exécution indisponible`,ready:`Environnement d'exécution prêt`,readyOllama:`Docker prêt`,readyPlugin:`Docker + plugin prêts`,readyHybrid:`Docker + modèles prêts`,reason:`Docker et un fournisseur de modèles disponible via Ollama ou une extension sont requis.`},workspace:{label:`Vues de l'espace de travail`,files:`Fichiers`,activity:`Activité`,preview:`Aperçu`,resize:`Redimensionner la conversation et l'espace de travail`,resizeHint:`Faites glisser pour redimensionner. Utilisez les touches fléchées pour un réglage précis. Double-cliquez ou appuyez sur Entrée pour réinitialiser.`,splitSize:`Conversation {{conversation}} %, espace de travail {{workspace}} %`,terminal:`Terminal`,git:`Git`},files:{discard:`Ignorer les modifications de fichier non enregistrées ?`,leaveWithDraft:`Quitter ce fichier ? Votre modification non enregistrée restera disponible comme brouillon dans le navigateur.`,up:`Dossier parent`,back:`Retour aux fichiers`,empty:`Ce dossier ne contient encore aucun fichier.`,select:`Sélectionnez un fichier pour l'inspecter et le modifier.`,editorLabel:`Éditeur de fichier : {{path}}`,format:`Formater`,formatted:`Code formaté.`,formatFailed:`Impossible de formater ce fichier.`,formatShortcut:`Formater (Maj+Alt+F)`,formatTooLarge:`Le formatage est limité aux fichiers de moins de 100 000 caractères et 4 000 lignes.`,formatUnsupported:`Le formatage n'est pas disponible pour ce type de fichier.`,saveShortcut:`Enregistrer (⌘/Ctrl+S)`,highlightPaused:`La coloration en direct est suspendue pour les fichiers volumineux afin de préserver la fluidité de l'édition.`,plainTextLarge:`Texte brut · fichier volumineux`,changes:`Modifications`,changesSince:`Ce qui a changé depuis le dernier tour`,diffLabel:`Modifications depuis le dernier tour : {{path}}`,diffFolded:`{{count}} lignes inchangées`},activity:{empty:`Les commandes, les opérations sur les fichiers et les résultats des outils apparaîtront ici.`,toolActivity:`Activité des outils`,details:`Détails`,kinds:{message:`Message`,toolCall:`Appel d'outil`,toolResult:`Résultat d'outil`,error:`Erreur`}},preview:{command:`Commande de démarrage facultative`,start:`Démarrer l'aperçu`,stop:`Arrêter l'aperçu`,open:`Ouvrir`,starting:`Démarrage de l'aperçu…`,frameTitle:`Aperçu de l'espace de travail`,failed:`Impossible de démarrer l'aperçu. Consultez Activité, puis essayez une autre commande.`,empty:`Démarrez l'application dans cet espace de travail pour l'inspecter ici.`},mobile:{surface:`Vue de la tâche`,conversation:`Conversation`,workspace:`Espace de travail`},toasts:{runFailed:`Impossible de démarrer la tâche de travail.`,updateFailed:`Impossible de mettre à jour cette tâche.`,renameFailed:`Impossible de renommer cette tâche.`,cancelled:`L'exécution de la tâche a été arrêtée.`,cancelFailed:`Impossible d'arrêter l'exécution de la tâche.`,deleteFailed:`Impossible de supprimer cette tâche de travail.`,saveFailed:`Impossible d'enregistrer ce fichier.`,saved:`Fichier enregistré.`,previewFailed:`Impossible de démarrer l'aperçu.`,previewStopFailed:`Impossible d'arrêter l'aperçu.`},terminal:{connecting:`Ouverture d’un shell dans le bac à sable…`,closed:`Session de terminal terminée.`,failed:`La session de terminal n’a pas pu démarrer.`,reconnect:`Se reconnecter`,unavailable:`Le terminal interactif n’est pas disponible dans ce déploiement.`,blockedByRun:`Le modèle utilise ce conteneur. Le terminal s’ouvrira à la fin du tour.`,taskRunning:`Tour du modèle en cours`},policy:{label:`Politique d'exécution`,default:`Par défaut (limites globales)`},git:{actionFailed:`L'action Git a échoué.`,blockedByPreview:`Arrêtez l'aperçu avant de modifier l'état Git.`,blockedByRun:`Les actions d'écriture Git se déverrouillent à la fin du tour du modèle.`,branchCreated:`{{name}} créée.`,branchSwitched:`Basculé vers {{name}}.`,clean:`L'arbre de travail est propre.`,commit:`Committer les changements indexés`,commitMessage:`Message du commit`,committed:`Commit créé.`,detached:`HEAD détaché`,diff:`Aperçu du diff`,diffFailed:`Impossible de charger ce diff.`,history:`Historique local`,initialize:`Initialiser Git`,initializeDescription:`Créez un dépôt local pour le statut, les diffs, les branches et les commits. Aucun identifiant distant n'est connecté.`,initialized:`Dépôt Git initialisé.`,loadFailed:`Impossible de charger le statut Git.`,localOnly:`Git local uniquement. Push, pull et pull requests nécessitent un courtier d'identifiants de confiance séparé.`,newBranch:`Nouvelle branche locale`,noCommits:`Aucun commit pour l'instant.`,noDiff:`Aucun diff textuel pour l'instant. Les fichiers non suivis apparaissent après indexation.`,notInitialized:`Git n'est pas initialisé`,selectChange:`Sélectionnez un fichier modifié pour inspecter son diff.`,selectPath:`Sélectionner {{path}}`,stageAll:`Tout indexer`,stageSelected:`Indexer {{count}}`,staged:`Changements indexés.`,switchBranch:`Changer de branche locale`,changes:`Modifications`,createBranch:`Créer`,filterFiles:`Filtrer les fichiers modifiés`,noFilterMatches:`Aucun fichier modifié ne correspond à ce filtre.`,allChanges:`Tous les changements`,diffTruncated:`Ce diff est tronqué.`,binaryFile:`Fichier binaire, pas de diff texte.`},hostWorkspace:{hint:`Laissez vide pour un espace isolé, ou pointez la tâche vers un dossier de cette machine.`,label:`Dossier de l'espace de travail (facultatif)`,warning:`La tâche peut lire et écrire ce dossier directement. Laissez vide pour un espace isolé.`}},personaBackground:{label:`Image d'arrière-plan`,uploadBackgroundImage:`Télécharger une image d'arrière-plan`,dragAndDrop:`Glissez-déposez une image ou cliquez pour parcourir`,chooseImage:`Choisir une image`,uploading:`Téléchargement...`,enterImageUrl:`Ou entrez l'URL de l'image`,supportedFormats:`Formats supportés : JPG, PNG, GIF, WebP (max 5Mo). Les images paysage larges fonctionnent mieux.`,customBackground:`Image d'arrière-plan personnalisée`,clickToChange:`Cliquez pour modifier ou supprimer`,removed:`Arrière-plan supprimé`,uploaded:`Arrière-plan téléchargé avec succès`,invalidFile:`Veuillez sélectionner un fichier image valide`,fileTooLarge:`La taille de l'image d'arrière-plan doit être inférieure à 5Mo`,readFailed:`Échec de la lecture du fichier image`,uploadFailed:`Échec du téléchargement de l'image d'arrière-plan`},modelSelector:{searchInstalled:`Rechercher les modèles installés...`,searchOllama:`Rechercher dans la bibliothèque Ollama...`,searchHuggingFace:`Rechercher sur HuggingFace...`,selectModel:`Sélectionner un modèle`,personas:`Personas`,ollamaModels:`Modèles Ollama`,pluginModels:`Modèles de plugins`,actions:`Actions`,installed:`Installé`,use:`Utiliser`,pull:`Télécharger`,pullRestricted:`L'installation des modèles est réservée aux administrateurs sur cette instance.`,adminOnlyPull:`Admins uniquement`,legacyProvider:`fournisseur non enregistré`,providerNotRecorded:`Fournisseur non enregistré`,providerUnavailable:`fournisseur indisponible`,reselectProvider:`resélectionnez un fournisseur pour épingler ce modèle`,unavailable:`indisponible`,unavailableSelections:`Sélections indisponibles`,agentModels:`Agents`},whatsNew:{title:`Nouveautés`,releaseNotes:`Notes de version`,cta:`C'est parti`},notes:{title:`Notes`,new:`Nouvelle note`,untitled:`Sans titre`,empty:`Aucune note pour le moment`,selectOrCreate:`Sélectionnez une note ou créez-en une`,contentPlaceholder:`Écrivez en Markdown…`,saved:`Enregistré`,saveFailed:`Impossible d'enregistrer la note`,createFailed:`Impossible de créer une note`,deleteConfirm:`Supprimer cette note ?`,deleteFailed:`Impossible de supprimer la note`},home:{active:`actif`,continue:`Continuer`,start:`Commencer`,explore:`Explorer`},palette:{empty:`Aucun résultat.`,placeholder:`Rechercher chats, Work, actions…`,toggleTheme:`Changer de thème`,actions:`Actions`,chats:`Conversations`,search:`Rechercher`,settings:`Paramètres`,work:`Travail`},tabs:{actions:`Actions de l'onglet`,close:`Fermer l'onglet`,closeAll:`Fermer tous les onglets`,closeOthers:`Fermer les autres onglets`,closeRight:`Fermer les onglets à droite`,home:`Accueil`,label:`Onglets ouverts`,new:`Nouvel onglet`,newWork:`Nouveau Work`,chat:`Chat`,newChat:`Nouvelle conversation`,work:`Travail`}};export{e as default};
|