feat(i18n): add language switcher in top-right corner for multi-language support #9

This commit is contained in:
rustmailer
2025-11-24 21:51:16 +08:00
parent 5ebc7394d0
commit ea81d0298b
119 changed files with 15277 additions and 1662 deletions
+784
View File
@@ -0,0 +1,784 @@
{
"common": {
"submit": "Enviar",
"cancel": "Cancelar",
"save": "Guardar",
"delete": "Eliminar",
"edit": "Editar",
"search": "Buscar",
"add": "Añadir",
"remove": "Quitar",
"create": "Crear",
"update": "Actualizar",
"confirm": "Confirmar",
"close": "Cerrar",
"yes": "Sí",
"no": "No",
"ok": "Aceptar",
"loading": "Cargando...",
"empty": "Vacío",
"noData": "Sin datos",
"table": {
"noResults": "Sin resultados"
},
"failed": "fallido",
"notFound": "No encontrado",
"back": "Atrás",
"goBack": "Volver",
"backToHome": "Volver a Inicio",
"tryAgain": "Intentar de nuevo",
"more": "Más",
"actions": "Acciones",
"filter": "Filtro",
"reset": "Restablecer",
"clear": "Borrar",
"error": "Error",
"apply": "Aplicar",
"select": "Seleccionar",
"selectAll": "Seleccionar todo",
"deselectAll": "Deseleccionar todo",
"all": "Todos",
"none": "Ninguno",
"showLess": "mostrar menos",
"showMore": "mostrar más..."
},
"navigation": {
"home": "Inicio",
"settings": "Configuración",
"accounts": "Cuentas",
"dashboard": "Panel de control",
"mailbox": "Buzón",
"oauth2": "OAuth2",
"accessTokens": "Tokens de acceso",
"apiDocs": "Documentación API",
"general": "General",
"auth": "Autenticación",
"other": "Otro"
},
"auth": {
"welcome": "Bienvenido a Bichon",
"username": "Nombre de usuario",
"password": "Contraseña",
"login": "Iniciar sesión",
"loginFailed": "Error al iniciar sesión",
"invalidPassword": "Contraseña inválida. Inténtalo de nuevo.",
"somethingWentWrong": "Algo salió mal",
"sessionExpired": "¡Sesión caducada!",
"sessionExpiredDesc": "Tu sesión ha caducado debido a la inactividad. Inicia sesión para continuar.",
"logout": "Cerrar sesión",
"areYouSureYouWantToLogOut": "¿Estás seguro de que quieres cerrar sesión?",
"youWillNeedToLogInAgain": "Necesitarás iniciar sesión de nuevo para acceder a tu cuenta."
},
"errors": {
"pageNotFound": "¡Ups! ¡Página no encontrada!",
"pageNotFoundDesc": "Parece que la página que estás buscando no existe o ha sido eliminada.",
"somethingWentWrong": "¡Ups! Algo salió mal :')",
"somethingWentWrongDesc": "Lamentamos las molestias. Por favor, inténtalo de nuevo más tarde.",
"internalServerError": "¡Error interno del servidor!",
"contentNotModified": "¡Contenido no modificado!",
"networkError": "Error de red",
"networkErrorDesc": "No se puede conectar con el servidor. Por favor, comprueba tu conexión a internet y vuelve a intentarlo.",
"forbidden": "Prohibido",
"forbiddenTitle": "Acceso prohibido",
"forbiddenDesc": "No tienes permiso para ver este recurso.",
"unauthorized": "No autorizado",
"unauthorizedTitle": "Acceso no autorizado",
"unauthorizedDesc": "Inicia sesión con credenciales válidas para acceder a este recurso.",
"maintenance": "Mantenimiento",
"maintenanceTitle": "¡El sitio está en mantenimiento!",
"maintenanceDesc": "El sitio está temporalmente fuera de servicio. Volveremos a estar en línea pronto.",
"learnMore": "Saber más"
},
"dashboard": {
"title": "Panel de control",
"mailAccounts": "Cuentas de correo",
"connected": "Conectado",
"totalEmails": "Total de correos",
"syncedLocally": "Sincronizado localmente",
"totalEmailSize": "Tamaño total de correos",
"logicalVolume": "Volumen lógico",
"localDataFiles": "Archivos de datos locales",
"actualDiskUsage": "Uso real de disco",
"indexSize": "Tamaño del índice",
"tantivyIndex": "Índice Tantivy",
"dayTrend": "Tendencia de 30 días",
"attachments": "Archivos adjuntos",
"topLists": "Listas principales",
"newEmails": "Nuevos correos",
"messageDistribution": "Distribución de mensajes",
"attachmentRatio": "Ratio de adjuntos",
"attachmentRatioDesc": "El {{percent}}% de los correos tienen adjuntos",
"noEmailsSynced": "Aún no hay correos sincronizados",
"withAttachments": "Con adjuntos",
"noAttachments": "Sin adjuntos",
"top10Senders": "Los 10 principales remitentes",
"byMessageCount": "Por conteo de mensajes",
"sender": "Remitente",
"count": "Conteo",
"top10LargestEmails": "Los 10 correos más grandes",
"byMessageSize": "Por tamaño de mensaje",
"subject": "Asunto",
"size": "Tamaño",
"noSubject": "(Sin asunto)",
"top10Accounts": "Las 10 principales cuentas",
"emails": "Correos",
"account": "Cuenta",
"noRecentActivity": "Sin actividad reciente",
"noSendersData": "Sin datos de remitentes",
"noLargeEmails": "Sin correos grandes",
"noAccountData": "Sin datos de cuenta"
},
"accounts": {
"title": "Cuentas de correo",
"description": "Gestiona y configura tus cuentas de correo electrónico.",
"addImap": "Añadir IMAP",
"addNoSync": "Añadir NoSync",
"moreAccountTypes": "Más tipos de cuenta",
"noAccountConfigurations": "Sin configuraciones de cuenta",
"noAccountConfigurationsDesc": "Aún no has añadido ninguna configuración de cuenta. Añade una para empezar a usar las funcionalidades de la cuenta.",
"addConfiguration": "Añadir configuración",
"name": "Nombre",
"email": "Correo electrónico",
"status": "Estado",
"type": "Tipo",
"lastSync": "Última sincronización",
"actions": "Acciones",
"edit": "Editar",
"delete": "Eliminar",
"detail": "Detalle",
"syncFolders": "Carpetas a sincronizar",
"oauth2Tokens": "Tokens OAuth2",
"id": "ID",
"enabled": "Habilitado",
"auth": "Autenticación",
"incSync": "Sinc. Increm.",
"state": "Estado",
"createdAt": "Creado el",
"updatedAt": "Actualizado el",
"openMenu": "Abrir menú",
"emailAccountRegistration": "Registro de cuenta de correo",
"emailAccountRegistrationDesc": "Introduce tu dirección de correo electrónico. Configurarás los detalles IMAP/SMTP en los próximos pasos. Intentaremos autodescubrir las direcciones del servidor SMTP/IMAP basándonos en el correo electrónico proporcionado.",
"emailAddress": "Dirección de correo electrónico",
"emailPlaceholder": "ej. juan.perez@ejemplo.com",
"namePlaceholder": "ej. Juan Pérez",
"optional": "Opcional",
"emailCannotBeModified": "La dirección de correo electrónico de la cuenta no se puede modificar durante la edición.",
"addAccount": "Añadir cuenta",
"updateAccount": "Actualizar cuenta",
"accountUpdated": "Cuenta actualizada",
"accountCreated": "Cuenta creada",
"accountUpdatedDesc": "Tu cuenta ha sido actualizada con éxito.",
"accountCreatedDesc": "Tu cuenta ha sido creada con éxito.",
"accountUpdateFailed": "Error al actualizar la cuenta",
"accountCreationFailed": "Error al crear la cuenta",
"updateFailed": "Error al actualizar, por favor, inténtalo de nuevo más tarde",
"creationFailed": "Error al crear, por favor, inténtalo de nuevo más tarde",
"selectSyncFolders": "Selecciona carpetas a sincronizar",
"allMailFolderSelected": "Advertencia: Carpeta 'Todo el correo' seleccionada",
"accountSyncFoldersUpdated": "Carpetas de sincronización de cuenta actualizadas",
"accountSyncFoldersUpdateFailed": "Error al actualizar las carpetas de sincronización de cuenta",
"serverConfiguration": "Configuración del servidor (IMAP)",
"syncFoldersTitle": "Carpetas a sincronizar",
"allMailFolderSelectedDesc": "Seleccionar carpetas con el atributo 'Todo el correo' probablemente resultará en la duplicación de mensajes ya sincronizados de carpetas como Bandeja de entrada y Enviados. Esto podría consumir significativamente más espacio de almacenamiento.",
"allMailSkipped": "Carpetas predeterminadas seleccionadas. 'Todo el correo' omitido para evitar duplicados.",
"selectAtLeastOneFolder": "Selecciona al menos una carpeta",
"chooseFoldersToSync": "Elige las carpetas a sincronizar para {{email}}. Las carpetas añadidas recientemente comenzarán a descargarse durante el próximo ciclo de sincronización.",
"accountDetails": "Detalles de la cuenta",
"capabilities": "Capacidades",
"folderLimit": "Límite de carpetas",
"incrementalSyncInterval": "Intervalo de sincronización incremental",
"everyMinutes": "cada {{minutes}} minutos",
"foldersConfiguredForSync": "{{count}} carpeta(s) configurada(s) para sincronización",
"foldersSelected": "{{count}} carpeta(s) seleccionada(s)",
"imapHost": "Host IMAP",
"imapHostPlaceholder": "ej. imap.ejemplo.com",
"imapPort": "Puerto IMAP",
"imapPortPlaceholder": "ej. 993",
"imapEncryption": "Cifrado IMAP",
"selectEncryptionMethod": "Selecciona el método de cifrado",
"chooseEncryptionMethod": "Elige el método de cifrado a utilizar para IMAP.",
"imapAuthMethod": "Método de autenticación IMAP",
"selectAuthMethod": "Selecciona el método de autenticación",
"chooseAuthMethod": "Elige el método de autenticación a utilizar para IMAP.",
"imapPassword": "Contraseña IMAP",
"leaveEmptyToKeepPassword": "Deja vacío para mantener la contraseña actual",
"enterPassword": "Introduce tu contraseña",
"leaveEmptyToKeepExisting": "Deja vacío para mantener la contraseña existente, o introduce un nuevo valor para actualizarla.",
"useProxy": "Usar Proxy",
"selectProxy": "Seleccionar Proxy",
"incrementalSync": "Sincronización incremental (Minutos)",
"incrementalSyncPlaceholder": "ej. 300",
"enabledDescription": "Determina si esta cuenta está activa. Si está deshabilitada, no se realizarán sincronizaciones asociadas.",
"dateSince": "Fecha desde",
"none": "Ninguno",
"fixed": "Fija",
"relative": "Relativa",
"selectDate": "Seleccionar fecha",
"selectUnit": "Seleccionar unidad",
"days": "Días",
"months": "Meses",
"years": "Años",
"enterValue": "Introduce valor",
"mustBeAtLeast1": "Debe ser al menos 1",
"dateSelection": "Selección de fecha",
"since": "desde",
"recent": "reciente",
"notAvailable": "no disponible",
"host": "host",
"port": "puerto",
"encryption": "cifrado",
"authType": "tipo de autenticación",
"password": "contraseña",
"useProxyField": "usar proxy",
"clickSaveWhenDone": "Haz clic en Guardar cuando hayas terminado.",
"step": "Paso {{index}}",
"goBack": "Volver atrás",
"autoConfiguring": "Autoconfigurando...",
"continue": "Continuar",
"saveChanges": "Guardar cambios",
"submit": "Enviar",
"field": "Campo",
"value": "Valor",
"refreshToken": "Token de actualización",
"accessTokenCopiedToClipboard": "Token de acceso copiado al portapapeles",
"refreshTokenCopiedToClipboard": "Token de actualización copiado al portapapeles",
"noOAuth2Tokens": "Sin tokens OAuth2",
"theAccountHasNotCompletedTheAuthorizationProcess": "La cuenta no ha completado el proceso de autorización. Por favor, ",
"clickHere": "haz clic aquí",
"toAuthorizeTheAccount": " para autorizar la cuenta.",
"detailsOfTheOAuth2TokensForTheAccount": "Detalles de los tokens OAuth2 para la cuenta.",
"updateTheEmailAccountHere": "Actualiza la cuenta de correo electrónico aquí. ",
"addNewEmailAccountHere": "Añade una nueva cuenta de correo electrónico aquí. ",
"thisAccountIsUsedForIdentificationPurposesOnly": "Esta cuenta se utiliza solo para fines de identificación y no requiere sincronización con el servidor de correo. Ayuda a importar datos de correo electrónico.",
"determinesWhetherThisAccountIsActiveNoSync": "Determina si esta cuenta está activa. Si está deshabilitada, la cuenta no podrá importar datos ni ejecutar consultas.",
"folderSync": {
"noData": "Sin datos",
"noFolders": "No hay carpetas para sincronizar",
"batches": "lotes"
},
"viewDetails": "ver detalles",
"runningState": {
"notStarted": "No iniciado",
"inProgress": "En curso",
"calculating": "Calculando...",
"initialSync": "Sincronización inicial",
"completed": "Completado",
"duration": "Duración",
"startTime": "Hora de inicio:",
"endTime": "Hora de finalización:",
"syncProgress": "Progreso de sincronización",
"incrementalSync": "Sincronización incremental",
"syncInterval": "Intervalo de sincronización:",
"everyMinutes": "Cada {{minutes}} minutos",
"errorLogs": "Registros de errores",
"noErrorLogs": "No hay registros de errores disponibles.",
"noActiveState": "No hay estado activo disponible",
"accountNotStarted": "La sincronización de la cuenta podría no haber comenzado todavía",
"close": "Cerrar"
},
"steps": {
"complete": "Completado",
"emailAddress": "Dirección de correo electrónico",
"imap": "IMAP",
"syncPreferences": "Preferencias de sincronización",
"summary": "Resumen"
},
"imapProxy": "Usar proxy SOCKS5 para conexiones IMAP.",
"syncStartDateDescription": "Establece la fecha de inicio de la sincronización, fija o relativa a la hora actual. Se excluirán los correos anteriores a esta fecha, {{fixedPart}}.",
"syncAfterDate": "sincronizar datos después de la fecha establecida",
"syncRecentData": "mover la fecha de sincronización hacia adelante en el tiempo, sincronizando solo datos recientes",
"folderLimitDescription": "Limita el número de correos a sincronizar por carpeta (mínimo 100). Deja vacío para no tener límite.",
"folderLimitPlaceholder": "ej. 1000",
"imap": "IMAP",
"minutes": "minutos"
},
"mailbox": {
"title": "Buzón",
"folders": "Carpetas",
"messages": "Mensajes",
"noMessages": "No hay mensajes",
"selectFolder": "Selecciona una carpeta para ver los mensajes",
"deleteDialog": {
"title": "Eliminar correo electrónico",
"desc": "¿Estás seguro de que quieres eliminar {{countText}}? Esta acción eliminará permanentemente el/los correo(s) seleccionado(s) de la base de datos local. El/los correo(s) se perderán para siempre y no se podrán recuperar.",
"descCountSingle": "este correo electrónico",
"descCountMultiple": "estos {{count}} correos electrónicos",
"warningTitle": "¡Advertencia!",
"warningDesc": "Procede con precaución.",
"confirm": "Eliminar",
"successTitle": "Mensajes eliminados con éxito",
"successDesc": "Los mensajes han sido eliminados.",
"errorTitle": "Error al eliminar mensajes"
},
"thread": {
"title": "Hilo de conversación ({{count}} {{messageLabel}})",
"message": "mensaje",
"messages": "mensajes",
"noSubject": "(Sin asunto)",
"invalidDate": "Fecha inválida",
"empty": "No hay mensajes en este hilo.",
"loadError": "Error al cargar el hilo",
"loadingMore": "Cargando...",
"loadMore": "Cargar más"
},
"bulkActions": {
"ariaLabel": "Acciones masivas para {{count}} {{emailLabel}} seleccionado(s)",
"email": "correo electrónico",
"emails": "correos electrónicos",
"selected": "seleccionado",
"clearSelection": "Borrar selección",
"clearSelectionWithKey": "Borrar selección ({{key}})",
"delete": "Eliminar",
"deleteTooltip": "Eliminar correos seleccionados"
}
},
"search": {
"title": "Buscar",
"searching": "Buscando, por favor espera...",
"noEmailsFound": "No se encontraron correos electrónicos",
"startSearching": "Empieza a buscar por palabra clave, remitente o usa filtros avanzados.",
"adjustSearch": "Intenta ajustar tus criterios de búsqueda o borra los filtros.",
"tagFilter": "Filtro de etiquetas",
"from": "De",
"to": "Para",
"subject": "Asunto",
"date": "Fecha",
"editTag": "Editar etiqueta",
"keyword": "Palabra clave",
"sender": "Remitente",
"recipient": "Destinatario",
"hasAttachment": "Tiene adjunto",
"yes": "Sí",
"no": "No",
"dateRange": "Rango de fechas",
"startDate": "Fecha de inicio",
"endDate": "Fecha de finalización",
"advancedFilters": "Filtros avanzados",
"searchArchivedEmails": "Buscar en correos archivados",
"fullTextMultiAccount": "Texto completo · Multi-cuenta · Filtros avanzados",
"account": "Cuenta",
"mailbox": "Buzón",
"selectAccount": "Seleccionar cuenta",
"selectMailbox": "Seleccionar buzón",
"noActiveEmailAccount": "No hay cuenta de correo electrónico activa.",
"addEmailAccount": "Añadir cuenta de correo electrónico",
"noMailboxSelectAccount": "No hay buzón. Por favor, selecciona una cuenta primero.",
"searchInSubjectBody": "Buscar en asunto, cuerpo, adjuntos...",
"searchingButton": "Buscando...",
"searchButton": "Buscar",
"advanced": "Avanzado",
"clear": "Borrar",
"since": "Desde:",
"before": "Antes de:",
"selectDate": "Seleccionar fecha",
"pleaseSelectAtLeastOne": "Por favor, selecciona al menos un criterio de búsqueda",
"cc": "CC",
"bcc": "CCO",
"attachmentName": "Nombre del adjunto",
"messageId": "ID del mensaje",
"minSize": "Tamaño mín.",
"maxSize": "Tamaño máx.",
"senderRecipients": "Remitente / Destinatarios",
"attachmentsSize": "Adjuntos y tamaño",
"minimumBytes": "Mínimo (bytes)",
"maximumBytes": "Máximo (bytes)",
"originalMessageIdHeader": "Encabezado Message-ID del correo original",
"addTags": {
"title": "Editar etiquetas",
"none": "Aún no hay etiquetas añadidas",
"searchPlaceholder": "Buscar o crear etiquetas...",
"createHint": "Crear nueva etiqueta: {{tag}}",
"invalidTitle": "Etiqueta inválida",
"updatedTitle": "Etiquetas actualizadas",
"updatedDesc": "Las etiquetas han sido actualizadas con éxito",
"updateFailedTitle": "Error al actualizar",
"tryAgain": "Inténtalo de nuevo más tarde",
"selectedCount": "{{count}} etiqueta(s) seleccionada(s)",
"cancel": "Cancelar",
"save": "Guardar",
"saving": "Guardando..."
},
"thread": {
"title": "Hilo de conversación · {{count}} mensajes",
"error": "Error al cargar el hilo",
"empty": "No hay mensajes en este hilo",
"invalidDate": "Fecha inválida",
"noSubject": "(Sin asunto)",
"loadingMore": "Cargando...",
"loadMore": "Cargar más"
}
},
"mail": {
"emailViewer": "Visor de correo electrónico",
"noMessageSelected": "Ningún mensaje seleccionado",
"account": "Cuenta",
"from": "De",
"to": "Para",
"subject": "Asunto",
"date": "Fecha",
"tags": "Etiquetas",
"noTagsYet": "Aún no hay etiquetas",
"id": "ID",
"cc": "CC",
"bcc": "CCO",
"attachments": "Adjuntos",
"download": "Descargar",
"delete": "Eliminar",
"viewThread": "Ver hilo",
"downloadStarted": "Descarga iniciada",
"downloadComplete": "Descarga completada",
"downloadFailed": "Error de descarga",
"failedToDownloadFile": "Error al descargar el archivo",
"failedToLoadEmail": "Error al cargar el correo electrónico.",
"isBeingDownloaded": "{{id}} se está descargando",
"downloaded": "{{id}} descargado",
"showLess": "mostrar menos",
"showMore": "mostrar más...",
"onlyNonInlineAttachments": "Solo se muestran aquí los adjuntos que no están en línea.",
"noAttachments": "Sin adjuntos"
},
"oauth2": {
"title": "OAuth2",
"addConfiguration": "Añadir configuración",
"id": "ID",
"provider": "Proveedor",
"clientId": "ID de cliente",
"clientSecret": "Secreto de cliente",
"redirectUri": "URI de redirección",
"scopes": "Ámbitos",
"status": "Estado",
"enabled": "Habilitado",
"disabled": "Deshabilitado",
"edit": "Editar",
"delete": "Eliminar",
"enable": "Habilitar",
"disable": "Deshabilitar",
"noConfigurations": "Sin configuraciones OAuth2",
"noConfigurationsDesc": "Aún no has añadido configuraciones OAuth2. Añade una para empezar a usar las funcionalidades OAuth2.",
"description": "Gestiona automáticamente la adquisición, almacenamiento y actualización de tokens de acceso, asegurando una experiencia de autenticación fluida y siempre lista.",
"addNew": "Añadir nuevo",
"updateHere": "Actualizar aquí.",
"createNewHere": "Crear uno nuevo aquí.",
"clickSaveWhenDone": "Haz clic en Guardar cuando hayas terminado.",
"quickPresets": "Preajustes rápidos:",
"gmail": "Gmail",
"outlook": "Outlook",
"whenDisabled": "Cuando está deshabilitado: - Los nuevos flujos de autorización serán rechazados inmediatamente - Los tokens de acceso y actualización existentes serán revocados en un minuto - Los usuarios deberán volver a autorizar cuando se vuelva a habilitar",
"clientIdLabel": "ID de cliente:",
"enterYourClientId": "Introduce tu ID de cliente",
"theUniqueIdentifierForYourApplication": "El identificador único para tu aplicación, proporcionado por el proveedor OAuth.",
"clientSecretLabel": "Secreto de cliente:",
"leaveEmptyToKeepExistingSecret": "Deja vacío para mantener el secreto existente",
"enterYourClientSecret": "Introduce tu secreto de cliente",
"leaveEmptyToKeepTheExistingSecret": "Deja vacío para mantener el secreto existente, introduce un nuevo valor solo para actualizarlo.",
"aSecretKeyProvidedByTheOAuthProvider": "Una clave secreta proporcionada por el proveedor OAuth para autenticar tu aplicación.",
"authUrlLabel": "URL de autorización:",
"enterTheAuthorizationUrl": "Introduce la URL de autorización",
"theUrlWhereUsersWillBeRedirected": "La URL a la que se redirigirá a los usuarios para autorizar tu aplicación.",
"tokenUrlLabel": "URL de token:",
"enterTheTokenUrl": "Introduce la URL de token",
"theUrlUsedToExchange": "La URL utilizada para intercambiar el código de autorización por un token de acceso.",
"redirectUrlLabel": "URI de redirección:",
"enterYourRedirectUrl": "Introduce tu URI de redirección",
"theRedirectUrlAfterAuthorization": "El URI de redirección después de la autorización. Debe coincidir con el registrado en el proveedor OAuth. Utiliza el formato http://[host]:[port]/oauth2/callback (o https://), donde [host] y [port] coinciden con tu despliegue de RustMailer. La ruta /oauth2/callback es fija.",
"scope": "Ámbito:",
"enterTheScopeHere": "Introduce el ámbito aquí.",
"addScope": "Añadir ámbito",
"key": "Clave:",
"enterTheKeyHere": "Introduce la clave aquí.",
"value": "Valor:",
"enterTheValueHere": "Introduce el valor aquí.",
"addExtraParams": "Añadir parámetros extra",
"useProxyOptional": "Usar Proxy (Opcional):",
"selectAProxy": "Seleccionar un proxy",
"noProxyAvailable": "No hay proxy disponible",
"useSocks5ProxyForOAuthRequests": "Usar proxy SOCKS5 para las solicitudes OAuth cuando el acceso directo está bloqueado.",
"descriptionLabel": "Descripción:",
"describeThePurposeOfTheOauth2Application": "Describe el propósito de la aplicación OAuth2",
"optional": "Opcional",
"saving": "Guardando...",
"creating": "Creando...",
"saveChanges": "Guardar cambios",
"save": "Guardar",
"updated": "Actualizado",
"created": "Creado",
"yourOAuth2ApplicationHasBeenSuccessfully": "Tu aplicación OAuth2 ha sido {{action}} con éxito.",
"updateFailed": "Error al actualizar",
"creationFailed": "Error al crear",
"updateOrCreationFailed": "Error al {{action}}, por favor, inténtalo de nuevo más tarde",
"clientSecretIsRequired": "El Secreto de cliente es obligatorio",
"clientSecretCannotBeEmpty": "El Secreto de cliente no puede estar vacío",
"keyIsRequired": "La Clave es obligatoria",
"keyCannotBeEmpty": "La Clave no puede estar vacía",
"valueIsRequired": "El Valor es obligatorio",
"valueCannotBeEmpty": "El Valor no puede estar vacío",
"descriptionMustNotExceed255Characters": "La descripción no debe exceder los 255 caracteres.",
"clientIdIsRequired": "El ID de cliente es obligatorio",
"clientIdCannotBeEmpty": "El ID de cliente no puede estar vacío",
"authorizationUrlIsRequired": "La URL de autorización es obligatoria",
"authorizationUrlCannotBeEmpty": "La URL de autorización no puede estar vacía",
"invalidAuthorizationUrlFormat": "Formato de URL de autorización inválido",
"tokenUrlIsRequired": "La URL de token es obligatoria",
"tokenUrlCannotBeEmpty": "La URL de token no puede estar vacía",
"invalidTokenUrlFormat": "Formato de URL de token inválido",
"redirectUriIsRequired": "El URI de redirección es obligatorio",
"redirectUriCannotBeEmpty": "El URI de redirección no puede estar vacío",
"invalidRedirectUriFormat": "Formato de URI de redirección inválido",
"authorizeEmailAccount": "Autorizar cuenta de correo electrónico",
"authorizeAnEmailAccountToStartTheOAuth2AuthorizationProcess": "Autoriza una cuenta de correo electrónico para iniciar el proceso de autorización OAuth2.",
"loadingAccounts": "Cargando cuentas...",
"selectAnAccount": "Selecciona una cuenta",
"noEmailAccountsRegistered": "No hay cuentas de correo electrónico registradas. Por favor, crea una.",
"pleaseCreateOne": "Por favor, crea una.",
"createAccount": "Crear cuenta",
"authorize": "Autorizar",
"getAuthorizeUrlFailed": "Error al obtener la URL de autorización",
"getAuthorizeUrlFailedDesc": "Error al obtener la URL de autorización, por favor, inténtalo de nuevo más tarde",
"oauth2ClientUpdated": "Cliente OAuth2 actualizado",
"oauth2ClientHasBeenSuccessfully": "Tu cliente OAuth2 ha sido {{action}} con éxito.",
"statusUpdateFailed": "Error al actualizar el estado, por favor, inténtalo de nuevo más tarde",
"disableOAuth2Client": "Deshabilitar cliente OAuth2",
"enableOAuth2Client": "Habilitar cliente OAuth2",
"areYouSureYouWantTo": "¿Estás seguro de que quieres {{action}} este cliente OAuth2?",
"thisWillPreventTheOAuth2ClientFromBeingUsed": "Esto evitará que se utilice el cliente OAuth2.",
"deleteToken": "Eliminar token",
"areYouSureYouWantToDelete": "¿Estás seguro de que quieres eliminar",
"thisActionWillPermanentlyRemoveTheOauth2Record": "Esta acción eliminará permanentemente el registro OAuth2 del sistema. Esto no se puede deshacer.",
"enterIdToConfirmDeletion": "Introduce el ID para confirmar la eliminación.",
"warning": "¡Advertencia!",
"pleaseBeCareful": "Por favor, ten cuidado, esta acción no se puede deshacer.",
"deleteSuccess": "Eliminación exitosa",
"yourOAuth2ApplicationHasBeenSuccessfullyDeleted": "Tu aplicación OAuth2 ha sido eliminada con éxito.",
"oauth2DeleteFailed": "Error al eliminar OAuth2",
"deleteFailed": "Error al eliminar, por favor, inténtalo de nuevo más tarde",
"actions": {
"openMenu": "Abrir menú",
"edit": "Editar",
"authorize": "Autorizar",
"delete": "Eliminar"
},
"authFailed": "Autenticación OAuth2 fallida",
"error": "Error",
"unknownError": "Ha ocurrido un error desconocido.",
"tryAgain": "Intentar de nuevo",
"goHome": "Ir a inicio",
"authSuccess": "Autenticación OAuth2 exitosa",
"success": "Éxito",
"successMessage": "Tu cuenta de correo electrónico ha sido autenticada con éxito a través de OAuth2. El token de acceso ha sido almacenado por el sistema y se actualizará automáticamente cuando sea necesario.",
"goToAccounts": "Ir a Cuentas",
"authAtatus": "Estado de la autenticación OAuth2",
"information": "Información",
"noStatus": "Esta página muestra el resultado de tu autenticación OAuth2. Actualmente no hay un estado específico disponible. Por favor, vuelve a intentarlo si es necesario.",
"backToLogin": "Volver a Iniciar sesión"
},
"accessTokens": {
"title": "Tokens de acceso",
"name": "Nombre",
"accounts": "Cuentas",
"token": "Token",
"createdAt": "Creado el",
"expiresAt": "Caduca el",
"edit": "Editar",
"delete": "Eliminar",
"create": "Crear",
"noTokens": "Sin tokens de acceso",
"noTokensDesc": "Aún no has creado tokens de acceso. Crea uno para usar las funcionalidades de la API.",
"description": "Gestiona aquí los tokens de acceso, sus reglas ACL, listas blancas de IP y ajustes de límite de velocidad.",
"editToken": "Editar token",
"addNew": "Añadir nuevo",
"updateTheAccessTokenHere": "Actualiza el token de acceso aquí.",
"createNewAccessTokenHere": "Crea un nuevo token de acceso aquí.",
"selectAccounts": "Seleccionar cuentas",
"selectMultipleAccountsForTheAccessToken": "Selecciona varias cuentas para el ámbito del token de acceso.",
"enterOneIpAddressPerLine": "Introduce una dirección IP por línea, ej.:\n192.168.1.1\n192.168.1.2",
"aListOfIpAddressesAllowed": "Una lista de direcciones IP permitidas para acceder al recurso. Introduce una IP por línea. (Opcional)",
"enterQuota": "Introduce la cuota, ej. 100",
"theMaximumNumberOfRequestsAllowed": "El número máximo de solicitudes permitidas dentro del intervalo. (Opcional)",
"enterIntervalInSeconds": "Introduce el intervalo en segundos, ej. 60",
"theTimeWindowForTheRateLimit": "La ventana de tiempo (en segundos) para el límite de velocidad. (Opcional)",
"describeThePurposeOfTheAccessToken": "Describe el propósito del token de acceso",
"updating": "Actualizando...",
"saving": "Guardando...",
"creating": "Creando...",
"saveChanges": "Guardar cambios",
"save": "Guardar",
"updated": "Actualizado",
"created": "Creado",
"yourAccessTokenHasBeenSuccessfully": "Tu token de acceso ha sido {{action}} con éxito.",
"updateFailed": "Error al actualizar",
"creationFailed": "Error al crear",
"updateOrCreationFailed": "Error al {{action}}, por favor, inténtalo de nuevo más tarde",
"quotaMustBeAPositiveInteger": "La cuota debe ser un número entero positivo.",
"intervalMustBeAPositiveInteger": "El intervalo debe ser un número entero positivo.",
"invalidIpAddressesFound": "Se encontraron direcciones IP inválidas. Por favor, introduce direcciones IPv4 o IPv6 válidas.",
"atLeastOneAccountIsRequired": "Se requiere al menos una cuenta.",
"descriptionMustNotExceed255Characters": "La descripción no debe exceder los 255 caracteres.",
"notUsedYet": "Aún no usado",
"theListOfAccountsThatCanBeQueried": "La lista de cuentas que se pueden consultar con el token de acceso.",
"accountId": "ID de cuenta",
"filterByEmailAddressOrAccountId": "Filtrar por dirección de correo electrónico o ID de cuenta...",
"aclRulesForAccessTokens": "Las reglas ACL para los tokens de acceso incluyen la comprobación de la lista blanca de IP y la aplicación del límite de velocidad.",
"actions": {
"openMenu": "Abrir menú",
"edit": "Editar",
"delete": "Eliminar"
},
"quota": "Cuota",
"interval": "Intervalo"
},
"settings": {
"title": "Configuración",
"general": "General",
"proxy": "Proxy",
"name": "Nombre",
"host": "Host",
"port": "Puerto",
"username": "Nombre de usuario",
"password": "Contraseña",
"type": "Tipo",
"actions": "Acciones",
"edit": "Editar",
"delete": "Eliminar",
"add": "Añadir",
"noProxies": "Sin proxies",
"noProxiesDesc": "Aún no has añadido configuraciones de proxy. Añade una para usar las funcionalidades de proxy.",
"root": "Raíz",
"rootTitle": "Usuario raíz",
"rootDesc": "Gestiona las credenciales de inicio de sesión del usuario raíz, incluido el token y la contraseña.",
"rootAccessManagement": "Gestión de acceso de usuario raíz",
"manageRootTokenAndPassword": "Gestiona de forma segura el token y la contraseña del usuario raíz.",
"resetRootToken": "Restablecer token raíz",
"generateNewToken": "Generar un nuevo token, el antiguo caducará inmediatamente.",
"reset": "Restablecer",
"resetRootPassword": "Restablecer contraseña raíz",
"changePasswordForFutureLogins": "Cambiar la contraseña para futuros inicios de sesión.",
"youAreAboutToResetTheRootToken": "Estás a punto de restablecer el token raíz. Esta acción no se puede deshacer.",
"confirmReset": "Confirmar restablecimiento",
"youAreAboutToResetTheRootPassword": "Estás a punto de restablecer la contraseña raíz. Asegúrate de guardarla de forma segura.",
"enterNewRootPassword": "Introduce la nueva contraseña raíz",
"theRootTokenHasBeenReset": "El token raíz ha sido restablecido",
"yourLoginInformationHasBeenUpdated": "Tu información de inicio de sesión ha sido actualizada. No necesitarás volver a iniciar sesión.",
"invalidPassword": "Contraseña inválida",
"rootPasswordMustBeAtLeast6Characters": "La contraseña raíz debe tener al menos 6 caracteres.",
"theRootPasswordHasBeenReset": "La contraseña raíz ha sido restablecida",
"useNewPasswordForNextLogin": "Usa la nueva contraseña para el próximo inicio de sesión.",
"failedToCopyText": "Error al copiar el texto",
"filterProxy": "Filtrar proxies...",
"filterOauth2": "Filtrar OAuth2...",
"filterAccount": "Filtrar cuentas...",
"filterAccessToken": "Filtrar tokens de acceso...",
"selectAll": "Seleccionar todo",
"theme": "Tema",
"id": "Id",
"url": "Url",
"createdAt": "Creado el",
"updatedAt": "Actualizado el",
"enabled": "Habilitado",
"useProxy": "Usar proxy",
"authUrl": "URL de autorización",
"tokenUrl": "URL de token",
"description": "Descripción",
"token": "Token",
"accounts": "Cuentas",
"acl": "ACL",
"lastAccess": "Último acceso",
"enterProxyIdToConfirmDeletion": "Introduce el ID del proxy para confirmar la eliminación.",
"updateTheProxyHere": "Actualiza el proxy aquí. ",
"addNewProxyHere": "Añade un nuevo proxy aquí. ",
"pleaseUseAnIpAddressForBetterReliability": "Utiliza una dirección IP (ej. 127.0.0.1) en lugar de un nombre de host o dominio para una mejor fiabilidad.",
"adding": "Añadiendo...",
"yourProxyHasBeenSuccessfully": "Tu proxy ha sido {{action}} con éxito.",
"proxyUpdateOrAddFailed": "Error al {{action}} el proxy, por favor, inténtalo de nuevo más tarde"
},
"apiDocs": {
"choosePreferredType": "Elige el tipo de documentación API preferido",
"swaggerUI": "Swagger UI",
"reDoc": "ReDoc",
"openAPIExplorer": "Explorador OpenAPI",
"scalar": "Scalar",
"downloadSpecYAML": "Descargar especificación YAML"
},
"dialogs": {
"confirmDelete": "Confirmar eliminación",
"confirmDeleteDesc": "¿Estás seguro de que quieres eliminar este elemento? Esta acción no se puede deshacer.",
"deleteSuccess": "Eliminado con éxito",
"deleteFailed": "Error al eliminar",
"saveSuccess": "Guardado con éxito",
"saveFailed": "Error al guardar",
"createSuccess": "Creado con éxito",
"createFailed": "Error al crear",
"updateSuccess": "Actualizado con éxito",
"updateFailed": "Error al actualizar",
"continue": "Continuar",
"deleting": "Eliminando...",
"accountDeleted": "Cuenta eliminada",
"accountDeletedDesc": "Tu cuenta ha sido eliminada con éxito.",
"accountDeleteFailed": "Error al eliminar la cuenta",
"deleteAccountPermanently": "Eliminar cuenta permanentemente",
"youAreDeleting": "Estás eliminando {{email}}. Esto eliminará permanentemente:",
"accountCredentials": "Credenciales y configuración de la cuenta",
"localCachedMetadata": "Metadatos almacenados en caché localmente y estado de sincronización",
"imapSyncData": "Datos de sincronización IMAP",
"oauthTokens": "Tokens OAuth y credenciales API",
"typeEmailToConfirm": "Escribe la dirección de correo electrónico de la cuenta para confirmar:",
"typeToConfirm": "Escribe \"{{email}}\" para confirmar",
"cannotBeUndone": "¡Esta acción no se puede deshacer!",
"allResourcesErased": "Todos los recursos asociados se borrarán permanentemente.",
"permanentlyDeleteAccount": "Eliminar cuenta permanentemente"
},
"command": {
"typeCommandOrSearch": "Escribe un comando o busca...",
"noResultsFound": "No se encontraron resultados.",
"theme": "Tema",
"light": "Claro",
"dark": "Oscuro"
},
"validation": {
"required": "Este campo es obligatorio",
"invalidEmail": "Dirección de correo electrónico inválida",
"invalidUrl": "URL inválida",
"passwordMinLength": "La contraseña debe tener al menos {{min}} caracteres",
"pleaseEnterPassword": "Por favor, introduce tu contraseña",
"passwordRequired": "La contraseña es obligatoria cuando el método de autenticación es Contraseña",
"emailRequired": "El correo electrónico es obligatorio",
"imapHostRequired": "El host IMAP es obligatorio",
"imapHostCannotBeEmpty": "El host IMAP no puede estar vacío",
"imapPortMustBePositive": "El puerto IMAP debe ser un número entero positivo",
"imapPortMustBeLessThan65536": "El puerto IMAP debe ser menor que 65536",
"folderLimitMustBeNumber": "El límite de carpetas debe ser un número",
"folderLimitMustBeAtLeast100": "El límite de carpetas debe ser de al menos 100",
"incrementalSyncMustBeNumber": "El intervalo de sincronización incremental debe ser un número",
"incrementalSyncMustBeAtLeast10": "El intervalo de sincronización incremental debe ser de al menos 10 minutos"
},
"table": {
"noResults": "No se encontraron resultados",
"loading": "Cargando...",
"page": "Página",
"of": "de",
"rowsPerPage": "Filas por página",
"showing": "Mostrando",
"to": "a",
"results": "resultados",
"asc": "Asc",
"desc": "Desc",
"hide": "Ocultar",
"edit": "Editar",
"delete": "Eliminar"
},
"proxyDelete": {
"title": "Eliminar Proxy",
"successTitle": "Eliminación exitosa",
"successDesc": "El proxy ha sido eliminado con éxito.",
"close": "Cerrar",
"failedTitle": "Error al eliminar el proxy",
"failedDesc": "Error al eliminar, por favor, inténtalo de nuevo más tarde",
"tryAgain": "Intentar de nuevo",
"confirmText": "¿Estás seguro de que quieres eliminar",
"permanent": "Esta acción eliminará permanentemente el Proxy del sistema. Esto no se puede deshacer.",
"proxyIdLabel": "ID del Proxy:",
"proxyIdPlaceholder": "Introduce el ID del Proxy para confirmar la eliminación.",
"warningTitle": "¡Advertencia!",
"warningDesc": "Por favor, ten cuidado, esta acción no se puede deshacer.",
"deleteBtn": "Eliminar"
}
}