From 8f7df1180f9677d1462b50a722f43e675406d177 Mon Sep 17 00:00:00 2001 From: "NOONE-00X\\vfigueroa" Date: Thu, 28 Nov 2024 17:51:48 -0300 Subject: [PATCH 1/3] feat: XRDDEV-2728 Complement - Adding Spanish language file and modifications to support it. --- .../admin-service/ui/src/locales/es.json | 974 ++++++++++++++ .../admin-service/ui/src/plugins/i18n.ts | 96 +- .../admin-service/ui/src/locales/es.json | 1192 +++++++++++++++++ .../admin-service/ui/src/plugins/i18n.ts | 96 +- src/shared-ui/src/index.ts | 3 +- src/shared-ui/src/locales/es.json | 1192 +++++++++++++++++ 6 files changed, 3524 insertions(+), 29 deletions(-) create mode 100644 src/central-server/admin-service/ui/src/locales/es.json create mode 100644 src/security-server/admin-service/ui/src/locales/es.json create mode 100644 src/shared-ui/src/locales/es.json diff --git a/src/central-server/admin-service/ui/src/locales/es.json b/src/central-server/admin-service/ui/src/locales/es.json new file mode 100644 index 0000000000..5c7d97228d --- /dev/null +++ b/src/central-server/admin-service/ui/src/locales/es.json @@ -0,0 +1,974 @@ +{ + "403": { + "goBack": "Volver", + "mainTitle": "Permiso denegado", + "text": "Parece que no tiene el permiso para ver esta página. Si cree que esto es un error, verifique si ha iniciado sesión con la cuenta correcta o comuníquese con su administrador para preguntar sobre sus permisos.", + "topTitle": "Denegado" + }, + "action": { + "activate": "Activar", + "addClient": "Agregar cliente", + "addMember": "Agregar miembro", + "addSubsystem": "Agregar subsistema", + "approve": "Aprobar", + "close": "Cerca", + "confirm": "Confirmar", + "continue": "Continuar", + "copy": "Copiar", + "copyId": "Copiar identificación", + "deactivate": "Desactivar", + "decline": "Rechazar", + "done": "Hecho", + "edit": "Editar", + "emptySearch": "Su búsqueda de {msg} no encontró resultados.", + "export": "Exportar", + "finish": "Finalizar", + "goToFront": "Ir al Inicio", + "next": "Siguiente", + "no": "No", + "noData": "Sin datos", + "ok": "De acuerdo", + "previous": "Anterior", + "refresh": "Actualizar", + "register": "Registro", + "remove": "Eliminar", + "removeAll": "Eliminar todo", + "save": "Ahorrar", + "search": "Buscar", + "searching": "Búsqueda...", + "submit": "Enviar", + "unregister": "No registrado", + "select": "Seleccionar", + "generateCsr": "Generar CSR" + }, + "alert": { + "count": "Cantidad de errores similares:", + "id": "ID" + }, + "apiKey": { + "createApiKey": { + "button": "Crear clave API", + "step": { + "keyDetails": { + "apiKey": "Clave de API", + "apiKeyID": "ID de Clave API", + "assignedRoles": "Roles asignados", + "createKeyButton": "Crear Clave", + "name": "Detalles Clave", + "note": "Nota: Guarde la Clave API en un lugar seguro. La clave API es visible solo en el momento de la generación de claves. No se volverá a presentar y no se puede recuperar más tarde." + }, + "roles": { + "description": "Seleccione los roles asociados con la clave API. Los roles definen los permisos otorgados a la clave API.", + "name": "Roles", + "selectRoles": "Seleccionar roles" + } + }, + "success": "Clave API creada con éxito", + "title": "Crear clave API" + }, + "role": { + "XROAD_REGISTRATION_OFFICER": "Oficial de Registro", + "XROAD_SECURITY_OFFICER": "Oficial de Seguridad", + "XROAD_SYSTEM_ADMINISTRATOR": "Administrador del Sistema", + "XROAD_MANAGEMENT_SERVICE": "Servicios de administración" + }, + "edit": { + "roleRemoveOnly": "(solo eliminar)" + }, + "table": { + "action": { + "edit": { + "button": "Editar", + "dialog": { + "message": "Roles asociados con la Clave API:", + "title": "Editar Clave API (id: {id})" + }, + "success": "Clave API con ID {id} guardado" + }, + "revoke": { + "button": "Revocar la Clave", + "confirmationDialog": { + "message": "¿Estás seguro de que quieres revocar la Clave API con ID {ID}?", + "title": "Confirmar" + }, + "success": "Clave API con ID {id} revocada con éxito" + } + }, + "header": { + "id": "IDENTIFICACIÓN", + "roles": "Roles" + } + } + }, + "backup": { + "createBackup": { + "button": "Generación de copia de seguridad.", + "messages": { + "success": "Copia de seguridad {archivo} creada correctamente" + } + }, + "uploadBackup": { + "button": "Subir copia de seguridad", + "confirmationDialog": { + "confirmation": "El archivo {name} ya existe, ¿estás seguro de que quieres sobrescribirlo?", + "title": "El archivo ya existe" + }, + "success": "Copia de seguridad {archivo} cargada correctamente" + }, + "deleteBackup": { + "dialog": { + "confirmation": "¿Estás seguro de que quieres eliminar la copia de seguridad {archivo}?", + "title": "Confirmar" + }, + "success": "Archivo de copia de seguridad {file} eliminado" + }, + "restoreFromBackup": { + "dialog": { + "confirmation": "¿Estás seguro de que quieres restaurar desde {archivo}?", + "title": "Confirmar" + }, + "success": "Configuración restaurada desde {archivo}" + } + }, + "customValidation": { + "invalidUrl": "URL no es válida, ejemplos de formatos de URL válidos: 'http://www.ejemplo.com', 'https://www.ejemplo.com'", + "invalidIpAddress": "El campo debe contener una dirección IP o múltiples direcciones separadas por coma" + }, + "error_code": { + "certificate_profile_info_class_not_found": "No se encontró la clase del Perfil de Certificado (Certificate Profile Info)", + "certification_service_not_found": "Servicio de certificación no encontrado.", + "configuration_not_found": "Fuente de configuración no encontrada", + "configuration_part_file_not_found": "Archivo configuración no encontrado (configuration part file)", + "configuration_part_validation_failed": "La validación de la configuración falló (configuration part)", + "configuration_part_validator_not_found": "Validador de configuración no encontrado (configuration part validator)", + "error_activating_signing_key": "Error de activación de la clave de firma (singning key)", + "error_deleting_signing_key": "Error en eliminación de la clave de firma (signing key)", + "error_recreating_anchor": "Error al recrear el archivo de Ancla.", + "global_group_exists": "Ya existe un Grupo Global con el mismo código.", + "global_group_not_found": "El grupo global por código dado no existe", + "init_already_initialized": "Fallo en inicialización del Servidor Central, ya se ha inicializado completamente", + "init_invalid_params": "Parámetros vacíos, faltantes o redundantes proporcionados para la inicialización", + "init_signer_pin_policy_failed": "Fallo en la política de PIN del token en el firmante (Signer)", + "init_software_token_failed": "Falló la inicialización del software token", + "instance_identifier_not_set": "Parámetro del sistema para el identificador de instancia no configurado", + "intermediate_ca_not_found": "CA intermedia no encontrada", + "invalid_certificate": "Certificado X.509 no válido", + "invalid_member_id": "ID de miembro no válido", + "invalid_pagination_properties": "La paginación tiene propiedades no válidas", + "invalid_service_provider_id": "ID de proveedor de servicios no válido", + "invalid_sort_properties": "Parámetro de clasificación no válido", + "invalid_subsystem_id": "ID de subsistema no válido", + "invalid_url": "URL no válida", + "invalid_ip_address": "Dirección IP no válida", + "key_generation_failed": "La generación de claves falló", + "management_request_cannot_register_owner": "No se puede registrar al propietario como cliente", + "management_request_client_already_owner": "El cliente ya es propietario del servidor de seguridad", + "management_request_client_already_registered": "El cliente ya esá registrado en el servidor", + "management_request_client_registration_not_found": "El registro del cliente no existe", + "management_request_exists": "Ya existe una solicitud pendiente.", + "management_request_invalid_auth_certificate": "Certificado de autenticación no válido", + "management_request_invalid_state": "La operación solicitada no se puede aplicar en este estado", + "management_request_invalid_state_for_approval": "La solicitud no se puede aprobar", + "management_request_member_not_found": "El miembro no existe", + "management_request_not_found": "No se ha encontrado una solicitud con la ID especificada", + "management_request_not_supported": "Tipo de solicitud desconocida", + "management_request_owner_must_be_client": "El propietario no está registrado como cliente en el servidor de seguridad", + "management_request_owner_must_be_member": "El propietario debe ser miembro", + "management_request_security_server_exists": "El certificado ya está registrado.", + "management_request_server_code_exists": "El miembro ya posee un servidor de seguridad con ese código de servidor", + "management_request_server_not_found": "Servidor de seguridad no encontrado", + "management_request_server_owner_not_found": "El propietario del servidor de seguridad no se encuentra", + "management_request_unknown_type": "Tipo de solicitud desconocido", + "management_service_provider_not_set": "Proveedor de servicios de Management no establecido", + "member_class_exists": "La clase de miembro con el mismo código ya existe.", + "member_class_is_in_use": "No se puede eliminar la clase miembro: miembros de X-road encontrados pertenecientes a la clase. Solo se pueden eliminar las clases sin miembros registrados.", + "member_class_not_found": "No se ha encontrado una clase de miembro con el código especificado", + "member_exists": "Miembro con el mismo código ya existe.", + "member_not_found": "No se ha encontrado un miembro con el código/ID especificado", + "no_configuration_signing_keys_configured": "No se han configurado claves de firma de configuración (configuration signing key)", + "ocsp_responder_not_found": "No se ha encontrado el OCSP Responder", + "owners_global_group_cannot_be_deleted": "No se puede realizar la acción de eliminación en el grupo de propietarios de servidores", + "owners_global_group_member_cannot_be_deleted": "No se puede realizar la acción de eliminación sobre el miembro del grupo de propietarios de servidores", + "signer_proxy_error": "Excepción de proxy de firmante", + "signing_key_action_not_possible": "Acción de firma de clave no es posible", + "signing_key_not_found": "Clave de firma no encontrada", + "ss_auth_certificate_not_found": "Certificado de autenticación no encontrado", + "subsystem_already_registered_to_security_server": "Subsistema ya registrado en el servidor de seguridad", + "subsystem_exists": "El subsistema con el mismo código ya existe.", + "subsystem_not_found": "Subsistema con código especificado no encontrado.", + "subsystem_not_registered_to_security_server": "El subsistema no está registrado en el servidor de seguridad dado.", + "subsystem_registered_and_cannot_be_deleted": "No se puede eliminar el subsistema ya registrado.", + "timestamping_authority_not_found": "Autoridad de Sellado de tiempo no encontrada", + "token_action_not_possible": "Acción del Token no es posible", + "token_activation_failed": "Falló la activación del Token", + "token_deactivation_failed": "La desactivación del Token falló", + "token_fetch_failed": "Error al obtener Token", + "token_incorrect_pin_format": "Formato de PIN incorrecto", + "token_invalid_characters": "El Token PIN proporcionado contiene caracteres no válidos", + "token_not_found": "Token no encontrado", + "token_pin_final_try": "Intentos restantes: 1", + "token_pin_locked": "Token PIN bloqueado", + "token_weak_pin": "El Token PIN proporcionado es demasiado débil", + "unknown_configuration_part": "Parte de configuración desconocida", + "malformed_anchor": "Archivo de Ancla malformado", + "trusted_anchor_verification_failed": "La verificación de confianza del Ancla falló", + "trusted_anchor_not_found": "Ancla de confianza no encontrado", + "internal_error": "Error interno. Consulte los registros del servidor para más detalles", + "invalid_parameters": "Falla de validación", + "security_server_not_found": "Servidor de seguridad no encontrado", + "invalid_encoded_id": "ID codificado no válido", + "id_not_a_number": "ID no es un número", + "api_key_not_found": "Clave de API no encontrada", + "invalid_role": "Rol no válido", + "invalid_file_content_type": "Tipo de contenido no válido en el archivo cargado", + "invalid_file_extension": "Extensión de archivo no válida", + "double_file_extension": "No se permite la doble extensión en archivos", + "invalid_filename": "Nombre de archivo no válido", + "invalid_backup_file": "Archivo de copia de seguridad no válido", + "backup_file_not_found": "La copia de seguridad no fue encontrada", + "backup_generation_failed": "No se pudo generar la copia de seguridad", + "generate_backup_interrupted": "La generación de la copia de seguridad ha sido interrumpida", + "restore_process_failed": "El proceso de restauración falló", + "backup_restore_interrupted": "La restauración de la copia de seguridad ha sido interrumpida", + "backup_deletion_failed": "No se pudo eliminar la copia de seguridad", + "resource_read_failed": "No se pudo leer el recurso", + "conf_verification.anchor_not_for_external_source": "Falló la verificación de la configuración: Anchor_not_for_external_source", + "conf_verification.missing_private_params": "Falló la verificación de la configuración: missing_private_params", + "conf_verification.other": "La verificación de la configuración falló: other", + "conf_verification.outdated": "La verificación de la configuración falló: outdated", + "conf_verification.signature_invalid": "Falló la verificación de la configuración: signature_invalid", + "conf_verification.unreachable": "Falló de verificación de configuración: unreachable", + "cannot_add_member_to_owners_group": "No se puede agregar miembros al grupo propietario del servidor", + "validation_failure": "Falla de validación", + "invalid_distinguished_name": "Nombre distinguido (DN) no válido", + "generate_key_cert_interrupted": "La generación de clave y certificado ha sido interrumpida", + "key_and_cert_generation_failed": "No se pudo generar la clave y certificado TLS", + "csr_generation_failed": "La generación del CSR falló", + "cannot_convert_bytes_to_certificate": "No se puede convertir bytes en certificado", + "certificate_writing_failed": "Error al escribir el certificado en el archivo", + "cannot_read_certificate": "No se puede leer el certificado TLS", + "key_not_found": "El certificado importado no coincide con la clave TLS", + "certificate_already_exists": "El certificado importado ya existe", + "certificate_import_failed": "No se puede importar el certificado TLS", + "invalid_address_char": "El campo de la dirección contiene caracteres no válidos" + }, + "fields": { + "init": { + "address": "Dirección del servidor central", + "confirmPin": "Repetir el PIN", + "identifier": "Identificador de instancia", + "pin": "PIN", + "repeatPin": "Repetir el PIN" + }, + "initialServerConf": { + "centralServerAddress": "Dirección del servidor central", + "instanceIdentifier": "Identificador de instancia" + }, + "password": "Contraseña", + "username": "Nombre de usuario", + "url": "URL", + "tokenPin": "PIN", + "keyLabel": "Etiqueta para la clave", + "subsystemCode": "Código de subsistema", + "memberCode": "Código de miembro", + "memberName": "Nombre de miembro", + "memberClass": "Clase de miembro", + "securityServerAddress": "Dirección del servidor de seguridad", + "serverCode": "Código de servidor", + "securityServerCode": "Código de servidor de seguridad", + "serviceAddress": "Dirección del servidor central", + "certProfile": "Perfil de certificado", + "certFile": "Certificado", + "distinguishedName": "Nombre distinguido (DN)", + "acmeServerDirectoryUrl": "URL de directorio de servidor ACME", + "acmeServerIpAddress": "Direcciones IP del servidor ACME (es)", + "authenticationCertificateProfileId": "ID de Perfil de certificado de autenticación", + "signingCertificateProfileId": "ID de perfil de certificado de firma" + }, + "filters": { + "apply": "Aplicar", + "chooseFilters": "Elija filtros", + "clearFields": "Quitar filtros", + "groupMembers": { + "byClass": "Por clase", + "byCode": "Por código", + "byInstance": "Por instancia", + "bySubsystem": "Por subsistema", + "byType": "Por tipo", + "class": "Clase", + "instance": "Instancia", + "member": "Miembro", + "subsystem": "Subsistema" + }, + "managementRequests": { + "byCreationDate": "Por fecha de creación", + "byRequestType": "Por tipo de solicitud", + "byServerCode": "Por código del servidor", + "byServerOwnerClass": "Por clase del propietario del servidor", + "byServerOwnerCode": "Por código del propietario del servidor", + "byServerOwnerName": "Por el nombre del propietario del servidor", + "bySource": "Por origen", + "byStatus": "Por estado" + } + }, + "footer": { + "copyright": { + "company": "Instituto Nordico para Soluciones de Introperabilidad (NIIS)", + "licenceInfo": "Información de la licencia", + "title": "Derechos de autor" + }, + "software": { + "feedback": "Comentario", + "title": "Software", + "versionPrefix": "X-ROAD" + } + }, + "global": { + "appTitle": "Servidor central X-ROAD", + "pageNotFound": "Ups, página no encontrada", + "approve": "Aprobar", + "class": "Clase", + "code": "Código", + "created": "Creado", + "delete": "Borrar", + "id": "Identificación", + "instance": "Instancia", + "memberClass": "Clase miembro", + "memberCode": "Código miembro", + "memberName": "Nombre de miembro", + "name": "Nombre", + "navigation": { + "back": "Volver" + }, + "register": "Registro", + "search": "Buscar", + "server": "Servidor", + "status": "Estado", + "subsystem": "Subsistema", + "type": "Tipo" + }, + "globalConf": { + "globalConf": "Configuración global", + "internalConf": "Configuración interna", + "trustedAnchors": "Ancla de confianza", + "cfgParts": { + "title": "Partes de configuración", + "file": "Archivo", + "contentIdentifier": "Identificador de contenido", + "version": "Versión", + "allVersions": "Todas las versiones", + "updated": "Actualizado", + "dialog": { + "upload": { + "title": "Configuración", + "uploadConfigurationPart": "Cargar el archivo de configuración desde su computadora", + "success": "Archivo de configuración cargado correctamente." + } + } + }, + "anchor": { + "title": "Ancla", + "certificateHash": "Certificado hash (SHA-224)", + "created": "Creado", + "download": "Descargar", + "recreate": "Recrear", + "recreateSuccess": "{ConfigurationType} Ancla de configuración generado correctamente" + }, + "downloadUrl": { + "title": "Descargar URL", + "urlAddress": "Dirección de URL" + }, + "trustedAnchor": { + "dialog": { + "upload": { + "confirmation": "¿Continuar con la carga?", + "field": { + "generated": "Generado", + "hash": "Hash (SHA-224)" + }, + "info": "Detalles de Ancla de confianza:", + "success": "Ancla de confianza cargado con éxito", + "title": "Confirmar detalles de Ancla de confianza" + }, + "delete": { + "confirmation": "Eliminar {identificador} Ancla con hash (sha-224) {hash}?", + "success": "Eliminado con éxito el Ancla de confianza", + "title": "Eliminar el Ancla" + } + } + } + }, + "globalGroup": { + "added": "Agregado", + "addMembers": "Agregar miembros", + "areYouSure": "¿Estás seguro de que quieres eliminar el grupo global {grupo}?", + "code": "Código", + "class": "Clase", + "deleteGroup": "Eliminar Grupo", + "description": "Descripción", + "descriptionSaved": "Descripción guardada con éxito.", + "editDescription": "Editar descripción", + "groupDeletedSuccessfully": "Global Group se eliminó con éxito.", + "groupMembers": "Miembros del grupo ({MemberCount})", + "instance": "Instancia", + "memberName": "Nombre de miembro", + "subsystem": "Subsistema", + "type": "Tipo", + "dialog": { + "addMembers": { + "title": "Agregar miembros", + "success": "Miembros con identificadores: {identificadores} se agregan a este grupo global" + }, + "deleteMember": { + "title": "Eliminar miembro", + "confirmation": "¿Estás seguro de que quieres eliminar al miembro del grupo con el identificador \"{Identificador}\" de este grupo global? Ingrese el código de miembro para confirmar.", + "placeholder": "Ingrese el código de miembro", + "success": "Miembro con identificador \"{Identificador}\" se eliminó de este grupo global" + } + } + }, + "globalResources": { + "addGlobalGroup": "Agregar grupo global", + "globalGroupSuccessfullyAdded": "El Global Group se agregó con éxito.", + "code": "Código", + "description": "Descripción", + "globalGroups": "Grupos globales", + "memberCount": "Canridad de miembros", + "updated": "Actualizado" + }, + "init": { + "address": { + "info": "Nombre DNS público del servidor central o dirección IP externa. Se utiliza para conexiones entrantes desde la red externa al servidor central." + }, + "csIdentification": "Identificación del servidor central", + "initialConfiguration": "Configuración inicial", + "instanceIdentifier": { + "info": "Código de instancia de X-ROAD, identifica de manera única esta instancia de X-ROAD." + }, + "notification": "¡El servidor central se ha inicializado! Ahora continúe con la configuración completa.", + "pin": { + "info": "PIN para acceder al token de software.", + "pinMatchError": "La confirmación del PIN no coincide", + "repeat": "Repite el PIN" + }, + "softwareToken": "Token de software" + }, + "keys": { + "title": "Claves de firma", + "addKey": "Agregar clave", + "created": "Creado", + "logIn": "Acceso", + "logOut": "Finalizar la sesión", + "signKey": "Clave de firma", + "algorithm": "Algoritmo clave", + "token": "Token:", + "dialog": { + "delete": { + "title": "Eliminar la clave", + "text": "Eliminar la clave '{label}'?", + "confirmButton": "Borrar", + "success": "Clave de firma eliminada con éxito" + }, + "add": { + "title": "Agregar clave", + "labelField": "Etiqueta para la clave", + "confirmButton": "Agregar", + "success": "Clave de firma '{label}' agregada correctamente.Por favor, no active la clave de inmediato. Consulte la Guía del usuario del servidor central antes de activar la clave." + }, + "activate": { + "title": "Activar la clave", + "text": "Activar la clave '{label}'?", + "confirmButton": "Activar", + "success": "Clave de firma '{label}' activada correctamente" + } + } + }, + "tokens": { + "keysInfoMessage": "Se permite un máximo de dos claves de firma de fuente de configuración en un token de seguridad", + "logIn": "Acceso", + "pin": "PIN", + "loginDialog": { + "title": "Acceso", + "success": "Sesión de token iniciada" + }, + "logout": { + "title": "Finalizar la sesión", + "confirmButton": "Finalizar la sesión", + "text": "¿Estás seguro de que quieres cerrar sesión del token?", + "success": "Sesión de token finalizada" + }, + "errors": { + "Signer": { + "PinIncorrect": "PIN incorrecto" + } + } + }, + "cert": { + "certificate": "Certificado", + "hashInfo": "Hash (SHA-256)", + "rsaExp": "Exponente de clave pública de RSA", + "rsaModulus": "Módulo de clave pública RSA", + "ecParameters": "Parámetros de clave pública de la CE", + "ecPoint": "Punto de clave pública de la CE", + "keyUsage": { + "CRL_SIGN": "Firma de CRL", + "DATA_ENCIPHERMENT": "Cifrado de Datos", + "DECIPHER_ONLY": "Descifrado solamente", + "DIGITAL_SIGNATURE": "Firma digital", + "ENCIPHER_ONLY": "SOLO CIFRADO", + "KEY_AGREEMENT": "Acuerdo clave", + "KEY_CERT_SIGN": "Certificado de firma", + "KEY_ENCIPHERMENT": "Clave de cifrado", + "NON_REPUDIATION": "No repudio" + } + }, + "login": { + "errorMsg401": "Nombre de usuario o contraseña incorrectos", + "generalError": "Error de inicio de sesion. Por favor intente de nuevo.", + "logIn": "Acceso", + "logOut": "Finalizar la sesión" + }, + "logout": { + "idleWarning": "Ha estado inactivo durante 30 minutos y su sesión ha expirado. Por razones de seguridad, se finaliza la sesión.", + "sessionExpired": "Sesión expirada" + }, + "managementRequests": { + "addCertificate": "Agregar certificado", + "addClient": "Agregar cliente", + "approved": "Aprobado", + "submitted": "Enviado para su aprobación", + "changeOwner": "Propietario de cambio", + "changeAddress": "Dirección de cambio", + "clientEnable": "Habilitar el cliente", + "clientDisable": "Deshabilitar el cliente", + "pending": "Pendiente", + "rejected": "Rechazado", + "revoked": "Revocado", + "unknown": "Desconocido", + "removeCertificate": "Eliminar certificado", + "removeClient": "Eliminar el cliente", + "securityServerId": "Identificador de servidor", + "securityServerOwnerName": "Nombre del propietario del servidor", + "showOnlyPending": "Mostrar solo las solicitudes pendientes", + "dialog": { + "approve": { + "title": "Aprobar la solicitud", + "bodyMessage": "¿Está seguro de que desea aprobar solicitud de ID de administración {ID} de Server {ServerId}?", + "successMessage": "ID de solicitud de administración {id} de {serverId} aprobado", + "newMemberWarning": "El miembro especificado no existe actualmente. Se creará automáticamente cuando se apruebe esta solicitud." + }, + "decline": { + "title": "Rechazar solicitud de administración", + "bodyMessage": "¿Está seguro de que desea rechazar la ID de solicitud de administración {ID} de Server {ServerId}?", + "successMessage": "ID de solicitud de administración {id} desde {serverId} declinado" + } + } + }, + "managementRequestDetails": { + "requestInformation": "Solicitar información", + "requestId": "ID de solicitud", + "received": "Recibido", + "source": "Origen", + "status": "Estado", + "comments": "Comentario", + "securityServerInformation": "Información del servidor de seguridad afectado", + "ownerName": "Nombre del propietario", + "ownerClass": "Clase de propietario", + "ownerCode": "Código del propietario", + "serverCode": "Código de servidor", + "address": "DIRECCIÓN", + "clientInformation": "Cliente enviado para registro", + "ownerChangeInformation": "Nuevo propietario enviado para su registro", + "clientDisableInformation": "Client deshabilitado", + "clientEnableInformation": "Cliente habilitado", + "subsystemCode": "Código de subsistema", + "certificateformation": "Certificado de autenticación enviado para el registro", + "ca": "CA", + "serialNumber": "Número de serie", + "subject": "Sujeto", + "expires": "Expirar" + }, + "members": { + "addMember": "Agregar miembro", + "header": "Miembros", + "member": { + "details": { + "addedToGroup": "Agregado al grupo", + "globalGroups": "Grupos globales", + "group": "Grupo", + "ownedServers": "Servidores propios", + "usedServers": "Servidores usados", + "server": "Servidor", + "enterCode": "Ingrese el código de miembro", + "deleteMember": "Eliminar miembro", + "confirmDelete": "¿Está seguro que desea eliminar el miembro {miembro} de la configuración del sistema? Ingrese el código de miembro para confirmar.", + "editMemberName": "Editar el nombre del miembro", + "memberNameSaved": "Nombre del miembro guardado con éxito", + "memberDeleted": "Miembro eliminado correctamente", + "areYouSureUnregister": "¿Está seguro que no desea registrar el miembro {MiemberCode} del Servidor {ServerCode} en la configuración del sistema?", + "unregisterMember": "Registro de miembro", + "memberSuccessfullyUnregistered": "Miembro {MiemberCode} del Servidor {ServerCode} no ha sido registrado" + }, + "managementRequests": { + "created": "Creado", + "id": "Solicitud ID", + "showOnlyWaiting": "Mostrar solo solicitudes en espera", + "status": "Estado", + "type": "Tipo de solicitud" + }, + "pagenavigation": { + "details": "Detalles", + "managementRequests": "Solicitudes de administración", + "subsystems": "Subsistemas" + }, + "subsystems": { + "addClient": "Agregar subsistema", + "deleteSubsystem": "Eliminar subsistema", + "serverOwner": "Propietario del servidor", + "servercode": "Código de servidor", + "status": "Estado", + "subsystemcode": "Código de subsistema", + "subsystemSuccessfullyAdded": "Subsistema {Subsystemcode} se agrega a la configuración del sistema", + "areYouSureDelete": "¿Está seguro que desea eliminar el subsistema {Subsystemcode} del miembro X-ROAD {memberID} de la configuración del sistema?", + "subsystemSuccessfullyDeleted": "Subsistema {Subsystemcode} se ha eliminado de la configuración del sistema", + "areYouSureUnregister": "¿Está seguro que desea eliminar el subsistema {subsystemcode} del Servidor {servercode} de la configuración del sistema?", + "subsystemSuccessfullyUnregistered": "Subsistema {subsystemcode} de servidor {servercode} se ha eliminado" + } + }, + "memberSuccessfullyAdded": "Miembro {MemberName} se agrega a la configuración del sistema." + }, + "noData": { + "loading": "Cargando ... por favor espera", + "noBackups": "No hay copias de seguridad todavía", + "noCertificate": "Sin certificado", + "noCertificates": "Sin certificados", + "noData": "Sin datos", + "noMatches": "Sin criterios de coincidencia de elementos", + "noMemberClasses": "No hay clases de miembros", + "noServices": "Sin servicios", + "noTokens": "Sin Tokens", + "noSecurityServers": "Sin servidores de seguridad" + }, + "securityServers": { + "address": "DIRECCIÓN", + "ownerClass": "Clase de propietario", + "ownerCode": "Código del propietario", + "ownerName": "Nombre del propietario", + "registered": "Registrado", + "unregistered": "No registrado", + "pending": "Aprobación pendiente", + "disabled": "Temporalmente deshabilitado", + "securityServer": { + "certificationAuthority": "Autoridad de certificación", + "deleteServer": "Eliminar servidor", + "expires": "Expira", + "serialNumber": "Número de serie", + "subject": "Sujeto", + "deleteSecurityServer": "Eliminar servidor de seguridad", + "tabs": { + "authCertificates": "Certificados de autenticación", + "clients": "Clientes", + "details": "Detalles", + "managementRequests": "Solicitudes de admninistración" + }, + "dialog": { + "deleteAuthCertificate": { + "title": "Eliminar certificado de autenticación", + "content": "¿Está seguro de que desea eliminar la prueba del certificado de autenticación CA de la configuración del sistema?Ingrese el código del servidor para confirmar.", + "securityServerCode": "Ingrese el código del servidor de seguridad", + "success": "Certificado de autenticación del servidor de seguridad eliminado correctamente" + } + } + }, + "dialogs": { + "editAddress": { + "title": "Editar dirección del servidor de seguridad", + "addressField": "Dirección del servidor de seguridad", + "success": "Dirección del servidor de seguridad actualizada correctamente" + }, + "deleteAddress": { + "title": "Eliminar servidor de seguridad", + "enterCode": "Ingrese el código del servidor de seguridad", + "areYouSure": "Está seguro que desea eliminar el certificado de autenticación Test CA de la configuración del sistema? Ingrese el código del servidor para confirmar.", + "success": "Servidor de seguridad eliminado." + } + }, + "serverCode": "Código de servidor" + }, + "systemSettings": { + "centralServerAddress": "Dirección del servidor central", + "code": "Código", + "description": "Descripción", + "editCentralServerAddressSuccess": "Dirección del servidor central actualizado correctamente", + "editCentralServerAddressTitle": "Editar la dirección del servidor central", + "instanceIdentifier": "Identificador de instancia", + "managementServices": { + "title": "Servicios de administración", + "securityServer": "Servidor de seguridad de los servicios de administración" + }, + "selectSubsystem": { + "title": "Seleccionar subsistema", + "search": "Buscar", + "name": "Nombre", + "memberClass": "Clase", + "memberCode": "Código", + "subsystemCode": "Subsistema", + "xroadInstance": "Instancia", + "type": "Tipo" + }, + "selectSecurityServer": { + "title": "Seleccionar servidor de seguridad", + "search": "Buscar", + "name": "Nombre", + "memberClass": "Clase", + "memberCode": "Código", + "subsystemCode": "Subsistema", + "xroadInstance": "Instancia", + "type": "Tipo" + }, + "serviceProvider": { + "changedSuccess": "El proveedor de servicios cambió con éxito", + "registeredSuccess": "El proveedor del servicio de administración '{subsystemId}' se registró como cliente del servidor de seguridad '{securityServerId}" + }, + "memberClasses": "Clases de miembros", + "securityServerOwnerGroupCode": "Código de grupo de propietarios de servidores de seguridad", + "serviceProviderIdentifier": "Identificador de proveedores de servicios", + "serviceProviderName": "Nombre del proveedor de servicios", + "systemParameters": "Parámetros del sistema", + "wsdlAddress": "Dirección WSDL", + "managementServicesAddress": "Dirección de servicios de administración", + "editMemberClassTitle": "Editar clase de miembro", + "addMemberClassTitle": "Agregar clase de miembro", + "deleteMemberClass": "¿Eliminar clase de miembro?", + "memberClassSaved": "Clase de miembro guardada.", + "memberClassDeleted": "Clase de miembro eliminada." + }, + "tlsCertificates": { + "managementService": { + "title": "Servicio de administración de Certificado TLS", + "key": "Clave TLS de Servicio de administración", + "downloadCertificate": "Descarga de certificado", + "downloadSuccess": "Certificado TLS de servicio de administración descargado con éxito", + "generateKey": { + "button": "Recrear la clave", + "title": "Clave TLS de servicio de administración", + "confirmation": "¿Deseas generar una nueva clave y certificado para el servicio de administración?", + "explanation": "El sistema generará una nueva clave TLS para el servicio de administración y un certificado autofirmado, reemplazando la clave y el certificado existentes.", + "success": "NUEVA CLAVE Y CERTIFICADO TLS DEL SERVICIO DE ADMINISTRACION generados correctamente" + }, + "generateCsr": { + "button": "Generar CSR", + "title": "Generar solicitud de firma de certificado TLS", + "content": "Primero, proporcione un nombre distinguido (DN).Luego, genere una nueva CSR y guárdela en un lugar seguro", + "distinguishedName": "Ingrese el nombre distinguido (DN)", + "example": "CN = miservidorcentral.ejemplo.com, o = mi organización, c = ee" + }, + "uploadCertificate": { + "button": "Carga de Certificado", + "title": "carga de Certificado TLS del Servicio de administración", + "label": "Cargue el archivo del certificado desde su computadora", + "success": "Certificado TLS del servicio de administración cargado con éxito" + } + } + }, + "tab": { + "globalConf": { + "externalConf": "Configuración externa", + "internalConf": "Configuración interna", + "trustedAnchors": "Anclas de confianza" + }, + "main": { + "globalConfiguration": "Configuración global", + "managementRequests": "Solicitudes de administración", + "members": "Miembros", + "securityServers": "Servidores de seguridad", + "settings": "Ajustes", + "trustServices": "Servicios de confianza" + }, + "settings": { + "apiKeys": "Claves de API", + "backupAndRestore": "Copia de seguridad y restauración", + "globalResources": "Recursos globales", + "systemSettings": "Configuración del sistema", + "tlsCertificates": "Certificados TLS" + } + }, + "trustServices": { + "addCertificationService": "Agregar servicio de certificación", + "addCASettingsCheckbox": "Esta CA solo se puede usar para la autenticación TLS (marque si es cierto)", + "approvedCertificationService": "Servicio de certificación aprobado", + "caSettings": "Configuración de CA", + "certificationServices": "Servicios de certificación", + "certImportedSuccessfully": "Certificado importado con éxito", + "certProfileInput": "Información del perfil del certificado", + "certProfileInputExplanation": "Nombre completo de la clase que implementa la interfaz ee.ria.xroad.common.certificateprofile.CertificateProfileInfoProvide", + "acmeServerDirectoryUrlExplanation": "Utilizado por los servidores de seguridad para realizar operaciones relacionadas con el certificado a través de la API del servidor ACME.", + "acmeServerIpAddressExplanation": "Una lista de direcciones IP de origen del servidor ACME que se utilizan para completar el desafío HTTP de ACME con el servidor de seguridad. Varias direcciones están separadas por una coma. Esta información se muestra en la interfaz del usuario del servidor de seguridad.", + "acmeServerAuthProfileIdExplanation": "ID de perfil utilizado para algunos servidores ACME para informarles sobre el tipo de uso del certificado al solicitar un certificado de autenticación.", + "acmeServerSignProfileIdExplanation": "ID de perfil utilizado para algunos servidores ACME para informarles sobre el tipo de uso del certificado al solicitar un certificado de firma.", + "timestampingServices": "Servicios de sellado de tiempo", + "validFrom": "Válido desde", + "validTo": "Válido hasta", + "viewCertificate": "Ver certificado", + "uploadCertificate": "Cargue el archivo de certificado desde su computadora", + "timestampingService": { + "url": "URL", + "dialog": { + "add": { + "title": "Agregar servicio de sellado de tiempo", + "success": "Servicio de sellado de tiempo agregado correctamente" + }, + "edit": { + "title": "Editar servicio de sellado de tiempo", + "uploadCertificate": "Subir un nuevo certificado", + "success": "Servicio de sellado de tiempo editado con éxito" + } + }, + "addedSuccessfully": "Servicio de sellado de tiempo agregado correctamente" + }, + "trustService": { + "details": { + "subjectDistinguishedName": "Nombre distinguido del sujeto", + "issuerDistinguishedName": "Nombre distinguido del emisor" + }, + "delete": { + "action": "Eliminar el servicio de confianza", + "confirmationDialog": { + "title": "Confirmar", + "message": "¿Estás seguro de que quieres eliminar el servicio de confianza \"{name}\"?" + }, + "success": "Servicio de confianza eliminado con éxito" + }, + "settings": { + "tlsAuth": "Esta CA solo se puede usar para la autenticación TLS", + "certProfile": "Información del perfil del certificado (nombre completo de la clase que implementa la interfaz ee.ria.xroad.common.CertificateProfileInfoProvider)", + "saveSuccess": "Configuración de CA guardada correctamente", + "acmeCapable": "Esta CA se puede usar para Acme", + "acmeNotCapable": "Esta CA no se puede usar para Acme" + }, + "ocspResponders": { + "url": "Url", + "add": { + "dialog": { + "title": "Agregar serivico de OCSP Responder" + }, + "success": "servicio de OCSP Responder agregado con éxito" + }, + "edit": { + "dialog": { + "title": "Editar servicio de OCSP Responder", + "uploadCertificate": "Subir un nuevo certificado" + }, + "success": "OCSP Responder editado con éxito con éxito" + }, + "delete": { + "confirmationDialog": { + "message": "¿Estás seguro de que quieres eliminar el servicio de OCSP Responder con la URL {URL}?", + "title": "Confirmar" + }, + "success": "Servicio de OCSP Responder eliminado con éxito" + } + }, + "intermediateCas": { + "intermediateCa": "CA intermedia", + "add": { + "dialog": { + "title": "Agregar CAs intermedias" + }, + "success": "CA Intermedia agregada con éxito" + }, + "delete": { + "confirmationDialog": { + "message": "¿Estás seguro de que quieres eliminar la CA intermedia {name}?", + "title": "Confirmar" + }, + "success": "CA intermedia eliminada con éxito" + } + }, + "timestampingService": { + "url": "Url", + "timestampingInterval": "Intervalo de sellado de tiempo", + "timestampingIntervalMinutes": "{min} minuto (s)", + "cost": "Costo", + "costValues": { + "FREE": "Gratis", + "PAID": "Paid", + "UNDEFINED": "No definido" + }, + "delete": { + "dialog": { + "title": "Confirmar", + "message": "¿Estás seguro que quieres eliminar el servicio de sellado de tiempo con la URL {URL}?" + }, + "success": "Servicio de sellado de tiempo eliminado con éxito" + } + }, + "pagenavigation": { + "details": "Detalles", + "settings": "Configuración de CA", + "ocspResponders": "OCSP Responders", + "intermediateCas": "CAs intermedias" + } + } + }, + "validationError": { + "AssertFalse": "el valor debe ser 'falso'", + "AssertTrue": "el valor debe ser 'verdadero'", + "DecimalMax": "El valor numérico excede el máximo permitido", + "DecimalMin": "El valor numérico está por debajo del mínimo permitido", + "Digits": "El valor debe contener solo dígitos", + "Email": "El valor no cumple con el formato de correo electrónico", + "Future": "El valor de fecha y hora debe ser en el futuro", + "FutureOrPresent": "El valor de fecha y hora debe ser ahora o en el futuro", + "IdentifierChars": "El identificador de instancia no debe contener dos puntos (:), punto y coma (;), barra (/) o barra invertida (\) ni signos de porcentaje (%)", + "IdentifierCharsField": "Utilice solo caracteres de identificador válidos", + "Max": "El valor numérico excede el máximo permitido", + "Min": "El valor numérico está por debajo del mínimo permitido", + "Negative": "El valor numérico debe ser inferior a cero", + "NegativeOrZero": "El valor numérico debe ser menor o igual a cero", + "NoBackslashes": "El valor no debe contener símbolos de barra inversa (\\)", + "NoColons": "El valor no debe contener símbolos de dos puntos (:)", + "NoForwardslashes": "El valor no debe contener símbolos de barra (/)", + "NoPercents": "El valor no debe contener símbolos de porcentaje (%)", + "NoSemicolons": "El valor no debe contener símbolos de punto y coma (;)", + "Normalized": "El valor debe normalizarse", + "NotBlank": "El valor no debe estar en blanco", + "NotEmpty": "el valor no debe estar vacío", + "NotNull": "Se requiere un valor", + "Null": "El valor no debe establecerse", + "Past": "El valor de fecha y hora debe ser anterior al actual", + "PastOrPresent": "El valor de fecha y hora debe igual o anterior al actual", + "Pattern": "el valor no coincidía con el formato requerido", + "Positive": "El valor numérico debe ser mayor que cero", + "PositiveOrZero": "El valor numérico debe ser mayor o igual a cero", + "Size": "El valor no cumple con los requisitos de longitud", + "SizeField": "El valor no cumple con los requisitos de longitud" + }, + "validation": { + "messages": { + "is": "El campo {field} debe tener un valor de \"{other}\"" + } + }, + "status": { + "signer_error": "La invocación del cliente de firma falló", + "global_conf_generation": { + "status_not_found": "Se desconoce el estado de las generaciones de configuración global", + "failing": "Fallo en la generación de la configuración global desde {0}", + "global_conf_expired": "Configuración global vencida" + }, + "signing_key": { + "internal": { + "missing": "La firma de la configuración interna falló: falta la clave activa", + "token_not_found": "La firma de la configuración interna falló: no se encontró la clave activa", + "token_not_active": "La firma de la configuración interna falló: no se ingresó el PIN de la clave activa", + "key_not_available": "La firma de la configuración interna falló: la clave activa no está disponible" + }, + "external": { + "missing": "La firma de la configuración externa falló: falta la clave activa", + "token_not_found": "La firma de la configuración externa falló: no se encontró la clave activa", + "token_not_active": "La firma de la configuración externa falló: no se ingresó el PIN de la clave activa", + "key_not_available": "La firma de la configuración externa falló: la clave activa no está disponible" + } + } + } +} \ No newline at end of file diff --git a/src/central-server/admin-service/ui/src/plugins/i18n.ts b/src/central-server/admin-service/ui/src/plugins/i18n.ts index 6cabfc32bb..7b285f71c0 100644 --- a/src/central-server/admin-service/ui/src/plugins/i18n.ts +++ b/src/central-server/admin-service/ui/src/plugins/i18n.ts @@ -25,26 +25,94 @@ * THE SOFTWARE. */ import { createI18n } from 'vue-i18n'; -import veeEn from '@vee-validate/i18n/dist/locale/en.json'; -import en from '@/locales/en.json'; +import enValidationMessages from '@vee-validate/i18n/dist/locale/en.json'; import merge from 'deepmerge'; - import { messages } from '@niis/shared-ui'; +import enAppMessages from '@/locales/en.json'; + +const loadedLanguages = new Set('en'); +export const availableLanguages = ['en', 'es']; -const validation = { validation: veeEn }; +const defaultLanguage = import.meta.env.VITE_I18N_LOCALE || 'en'; +const defaultFallbackLanguage = import.meta.env.VITE_FALLBACK_LOCALE || 'en'; -type Shared = typeof messages.en; -type Vee = typeof validation; -type En = typeof en; -export type MessageSchema = Vee & Shared & En; +const sharedLanguageMessages = { + en: messages.en, + es: messages.es, +}; +const defaultLanguagePack = merge.all([ + { validation: enValidationMessages }, + sharedLanguageMessages.en, + enAppMessages, +]); -let common = merge(validation, messages.en); -common = merge(common, en); -export const i18n = createI18n<[MessageSchema], 'en'>({ +// Initialize i18n instance with default configuration +export const i18n = createI18n({ legacy: false, - locale: import.meta.env.VITE_VUE_APP_I18N_LOCALE || 'en', - fallbackLocale: import.meta.env.VITE_VUE_APP_I18N_FALLBACK_LOCALE || 'en', + locale: defaultLanguage, + fallbackLocale: defaultFallbackLanguage, silentFallbackWarn: true, allowComposition: true, - messages: { en: common as MessageSchema }, + messages: { en: defaultLanguagePack }, }); + +// Sets the active language, loading language pack if necessary +export async function setLanguage(language) { + await loadLanguagePackIfNeeded(language); + i18n.global.locale.value = language; +} + +// Loads language pack if it's not already loaded +async function loadLanguagePackIfNeeded(language) { + if (!loadedLanguages.has(language)) { + const messages = await fetchLanguageMessages(language); + const languagePack = mergeLanguageMessages(messages); + i18n.global.setLocaleMessage(language, languagePack); + loadedLanguages.add(language); + } +} + +// Fetches all language-specific messages for the given language +async function fetchLanguageMessages(language) { + const appMessagesPromise = import(`@/locales/${language}.json`).then( + (module) => module.default, + ); + + const [appMessages, validationMessages, sharedMessages] = await Promise.all([ + appMessagesPromise, + loadValidationMessages(language), + loadSharedMessages(language), + ]); + + return { appMessages, validationMessages, sharedMessages }; +} + +// Loads validation messages, with fallback to English if not available +async function loadValidationMessages(language) { + try { + const messages = await import( + `@vee-validate/i18n/dist/locale/${language}.json` + ); + return messages.default; + } catch { + return enValidationMessages; + } +} + +// Loads shared messages based on language +function loadSharedMessages(language) { + return sharedLanguageMessages[language] || sharedLanguageMessages.en; +} + +// Merges application, validation, and shared messages into a single pack +function mergeLanguageMessages({ + appMessages, + validationMessages, + sharedMessages, +}) { + return merge.all([ + { validation: validationMessages }, + sharedMessages, + appMessages, + ]); +} diff --git a/src/security-server/admin-service/ui/src/locales/es.json b/src/security-server/admin-service/ui/src/locales/es.json new file mode 100644 index 0000000000..4d6c988f7c --- /dev/null +++ b/src/security-server/admin-service/ui/src/locales/es.json @@ -0,0 +1,1192 @@ +{ + "403": { + "goBack": "Volver", + "mainTitle": "Permiso denegado", + "text": "Parece que no tiene el permiso para ver esta página. Si cree que esto es un error, verifique si ha iniciado sesión en la cuenta correcta o comuníquese con su administrador para preguntar sobre sus permisos.", + "topTitle": "Denegado" + }, + "404": { + "pageNotFound": "404 - Página no encontrada", + "text": "Parece que encontraste el", + "textUnicorn": "unicornio" + }, + "accessRights": { + "addServiceClients": "Agregar sujetos", + "addServiceClientsSuccess": "Derechos de acceso agregados con éxito", + "addServiceClientsTitle": "Agregar sujetos", + "addSubjectsSuccess": "Derechos de acceso agregados con éxito", + "id": "IDENTIFICACIÓN", + "memberName": "Nombre del miembro / Descripción del grupo", + "removeAllText": "¿Está seguro de que desea eliminar los derechos de acceso de todos los clientes?", + "removeAllTitle": "Eliminar todos los derechos de acceso?", + "removeSuccess": "Derechos de acceso eliminados con éxito", + "removeText": "¿Está seguro de que desea eliminar los derechos de acceso de este cliente?", + "removeTitle": "Eliminar los derechos de acceso?", + "rightsGiven": "Derechos de acceso dados", + "title": "Derechos de acceso" + }, + "action": { + "activate": "Activar", + "add": "Agregar", + "addClient": "Agregar cliente", + "addMember": "Agregar miembro", + "addSubsystem": "Agregar subsistema", + "cancel": "Cancelar", + "close": "Cerrar", + "confirm": "Confirmar", + "continue": "Continuar", + "copy": "Copiar", + "copyId": "Copiar identificación", + "deactivate": "Desactivar", + "delete": "Borrar", + "disable": "Desactivar", + "done": "Hecho", + "download": "Descargar", + "edit": "Editar", + "emptySearch": "Su búsqueda de {msg} no encontró resultados.", + "enable": "Permitir", + "export": "Exportar", + "finish": "Finalizar", + "goToFront": "Ir al Inicio", + "next": "Siguiente", + "noData": "Sin datos", + "ok": "Aceptar", + "order": "Orden", + "previous": "Anterior", + "refresh": "Actualizar", + "register": "Registro", + "remove": "Eliminar", + "removeAll": "Eliminar todo", + "restore": "Restaurar", + "save": "Guardar", + "search": "Buscar", + "searching": "Búsqueda...", + "submit": "Enviar", + "unregister": "No registrado", + "yes": "Sí" + }, + "alert": { + "count": "Cantidad de errores similares:", + "warningCount": "Cantidad de advertencias similares", + "id": "IDENTIFICACIÓN" + }, + "apiKey": { + "createApiKey": { + "button": "Crear clave API", + "step": { + "keyDetails": { + "apiKey": "Clave de API", + "apiKeyID": "ID de clave API", + "assignedRoles": "Roles asignados", + "createKeyButton": "Crear clave", + "name": "Detalles clave", + "note": "Nota: Guarde la l API en un lugar seguro. La clave API es visible solo en el momento de la generación de claves. No se volverá a presentar y no se puede recuperar más tarde." + }, + "roles": { + "description": "Seleccione los roles asociados con la clave API. Los roles definen los permisos otorgados a la clave API.", + "name": "Roles", + "selectRoles": "Seleccionar roles" + } + }, + "success": "Clave API creada con éxito", + "title": "Crear clave API" + }, + "role": { + "XROAD_REGISTRATION_OFFICER": "Oficial de registro", + "XROAD_SECURITYSERVER_OBSERVER": "Observador del servidor", + "XROAD_SECURITY_OFFICER": "Oficial de seguridad", + "XROAD_SERVICE_ADMINISTRATOR": "Administrador de servicio", + "XROAD_SYSTEM_ADMINISTRATOR": "Administrador de sistema" + }, + "edit": { + "roleRemoveOnly": "(solo eliminar)" + }, + "table": { + "action": { + "edit": { + "button": "Editar", + "dialog": { + "message": "Roles asociados con la clave API:", + "title": "Editar clave API (id: {id})" + }, + "success": "Clave API con id {id} guardada" + }, + "revoke": { + "button": "Revocar la clave", + "confirmationDialog": { + "message": "¿Estás seguro de que quieres revocar la clave API con ID {ID}?", + "title": "Confirmar?" + }, + "success": "Clave API con id {id} revocada con éxito" + } + }, + "header": { + "id": "IDENTIFICACIÓN", + "roles": "Roles" + } + } + }, + "backup": { + "deleteBackup": { + "dialog": { + "confirmation": "¿Estás seguro de que quieres eliminar la copia de seguridad {archivo}?", + "title": "Confirmar" + }, + "success": "Copia de seguridad {file} eliminada" + }, + "restoreFromBackup": { + "dialog": { + "confirmation": "¿Estás seguro de que quieres restaurar desde {archivo}?", + "title": "Confirmar" + }, + "success": "Configuración restaurada desde {archivo}" + }, + "createBackup": { + "button": "Configuración de copia de seguridad.", + "messages": { + "success": "Copia de seguridad {archivo} creada correctamente", + "localConfWarning": "¡Advertencia! El archivo \"/etc/xroad/services/local.conf\" utilizado para las anulaciones de configuración está en desuso y ya no se incluye en las copias de seguridad. El archivo \"/etc/xroad/services/local.properties\" debe usarse en su lugar." + } + }, + "uploadBackup": { + "button": "Subir copia de seguridad", + "confirmationDialog": { + "confirmation": "El archivo {name} ya existe, ¿estás seguro de que quieres sobrescribirlo?", + "title": "El archivo ya existe" + }, + "success": "Copia de seguridad {archivo} cargada correctamente" + } + }, + "cert": { + "activateSuccess": "El certificado ha sido activado", + "certDeleted": "Certificado eliminado", + "certificate": "Certificado", + "deleteCertConfirm": "¿Estás seguro de que quieres eliminar este certificado?", + "deleteCertTitle": "Eliminar certificado?", + "disableSuccess": "El certificado ha sido deshabilitado", + "disabled": "Deshabilitado", + "expires": "Expira", + "hashInfo": "Hash (SHA-256)", + "inUse": "en uso", + "keyUsage": { + "CRL_SIGN": "Firma de CRL", + "DATA_ENCIPHERMENT": "Cifrado de Datos", + "DECIPHER_ONLY": "Descifrado solamente", + "DIGITAL_SIGNATURE": "Firma digital", + "ENCIPHER_ONLY": "SOLO CIFRADO", + "KEY_AGREEMENT": "Acuerdo clave", + "KEY_CERT_SIGN": "Certificado de firma", + "KEY_ENCIPHERMENT": "Clave de cifrado", + "NON_REPUDIATION": "No repudio" + }, + "rsaExp": "Exponente de clave pública de RSA", + "rsaModulus": "Módulo de clave pública RSA", + "ecParameters": "Parámetros de clave pública de la CE", + "ecPoint": "Punto de clave pública de la CE", + "serialNumber": "Número de serie", + "signCertificate": "Firmar certificado", + "state": "Estado" + }, + "certificateProfile": { + "COMMON_NAME": "Nombre común (CN)", + "COUNTRY_CODE": "Código de país (c)", + "INSTANCE_IDENTIFIER": "Identificador de instancia (c)", + "INSTANCE_IDENTIFIER_O": "Identificador de instancia (O)", + "MEMBER_CLASS": "Clase miembro (o)", + "MEMBER_CLASS_BC": "Clase miembro (BC)", + "MEMBER_CLASS_OU": "Clase miembro (OU)", + "MEMBER_CODE": "Código de miembros (CN)", + "MEMBER_CODE_SN": "Código de miembros (SN)", + "ORGANIZATION_NAME": "Nombre de la organización (o)", + "ORGANIZATION_NAME_CN": "Nombre de la organización (CN)", + "SERIAL_NUMBER": "Número de serie", + "SERIAL_NUMBER_SN": "Número de serie (SN)", + "SERVER_CODE": "Código de servidor (CN)", + "SERVER_DNS_NAME": "Nombre DNS del servidor (CN)", + "SUBJECT_ALTERNATIVE_NAME": "Nombre alternativo de sujeto (SAN)" + }, + "client": { + "action": { + "delete": { + "confirmText": "¿Estas seguro que deseas eliminar este cliente?", + "confirmTitle": "Eliminar cliente", + "success": "Cliente eliminado" + }, + "makeOwner": { + "button": "Convertir en propietario", + "confirmText1": "¿Desea convertir al miembro siguiente en el nuevo miembro Propietario de este Servidor de Seguridad?", + "confirmText2": "Al presionar el botón \"Convertir en propietario\" a continuación, se enviará una solicitud para cambiar el propietario a la autoridad gobernante de X-ROAD.", + "confirmTitle": "Convertir miembro en propietario", + "success": "Propietario modificado" + }, + "removeOrphans": { + "cancelButtonText": "No", + "confirmText": "La clave y el certificado de firma asociados con el cliente eliminado no tienen usuarios. Eliminar la clave y el certificado?", + "confirmTitle": "Eliminación de clave y certificado", + "success": "Certificado eliminado" + }, + "unregister": { + "confirmText": "¿Quieres quitar el registro a este cliente?", + "confirmTitle": "Cliente no registrado", + "success": "Se quitó el registro al cliente" + }, + "disable": { + "confirmText": "¿Quieres deshabilitar a este cliente?", + "confirmTitle": "Deshabilitar el cliente", + "success": "Cliente deshabilitado en progreso" + }, + "enable": { + "confirmText": "Quieres habilitar a este cliente?", + "confirmTitle": "Habilitar el cliente", + "success": "Habilitación del cliente en progreso" + } + }, + "id": "IDENTIFICACIÓN", + "member": "Miembro", + "memberClass": "Clase miembro", + "memberCode": "Código miembro", + "memberName": "Nombre de miembro", + "name": "Nombre", + "owner": "Propietario", + "status": "Estado", + "statusText": { + "deletionInProgress": "Eliminación en progreso", + "globalError": "Error global", + "registered": "REGISTRADO", + "registrationInProgress": "Registro en progreso", + "saved": "Guardado", + "disabled": "DESHABILITADO", + "disablingInProgress": "Deshabilitar en progreso", + "enablingInProgress": "Habilitación en progreso" + }, + "subsystemCode": "Código de subsistema", + "unknownMember": "Miembro no conocido" + }, + "clients": { + "action": { + "register": { + "confirm": { + "text": "¿Está seguro de que desea enviar una solicitud de registro del cliente?", + "title": "Registre al cliente" + }, + "success": "Solicitud de registro del cliente enviada correctamente" + } + } + }, + "csr": { + "addKey": "Agregar clave", + "certificationService": "Servicio de certificación", + "client": "Cliente", + "csrDetails": "Detalles de CSR", + "csrFormat": "Formato CSR", + "eabCredRequired": "La autoridad de certificación seleccionada requiere vinculación de cuenta externa para ACME, pero las faltan credenciales en la configuración.", + "failedFetchAcmeMetadata": "No se logró obtener metadatos de ACME para la autoridad de certificación seleccionada, esto puede causar errores en los próximos pasos.", + "generateCsr": "Generar CSR", + "helpCertificationService": "Autoridad de certificación (CA) que emitirá el certificado.", + "helpClient": "Miembro de X-ROAD para el cual se emitirá el certificado.", + "helpCsrFormat": "Formato de la solicitud de firma de certificado (CSR) según los requisitos de la CA.", + "helpUsage": "Política de uso del certificado: firma de mensajes o autenticación del Servidor de Seguridad.", + "saveInfo": "Genere un nuevo CSR y guárdelo en un lugar seguro.", + "usage": "Uso", + "orderAcmeCertificate": "Solicitar un certificado del Servidor ACME con el CSR generado e importar el certificado devuelto al token." + }, + "customValidation": { + "invalidEndpoint": "El Endpoint contiene caracteres ilegales", + "invalidUrl": "URL no es válida", + "invalidXrdIdentifier": "El valor del identificador contiene caracteres ilegales", + "requiredIf": "Se requiere el campo {fieldName}" + }, + "diagnostics": { + "addOnStatus": { + "messageLogDisabled": "Deshabilitado por configuración" + }, + "globalConfiguration": { + "configurationStatus": { + "ERROR_CODE_CANNOT_DOWNLOAD_CONF": "No se puede descargar la configuración global. Verifique la conexión de red.", + "ERROR_CODE_EXPIRED_CONF": "La configuración global descargada ha expirado.", + "ERROR_CODE_INTERNAL": "Se produjo un error interno.", + "ERROR_CODE_INVALID_SIGNATURE_VALUE": "Valor de firma no válido.", + "ERROR_CODE_MISSING_PRIVATE_PARAMS": "La configuración global descargada no contenía parámetros privados", + "ERROR_CODE_UNINITIALIZED": "El cliente de configuración se está inicializando", + "SUCCESS": "Exito", + "UNKNOWN": "Descnocido" + }, + "title": "Configuración global" + }, + "javaVersion": { + "earliest": "Versión más reciente compatible", + "latest": "Última versión compatible", + "notSupported": "La versión actual de Java no es compatible", + "ok": "Correcto", + "title": "Versión java", + "vendor": "Nombre del proveedor" + }, + "mailNotificationConfiguration": { + "title": "Estado de notificación de correo", + "failureEnabled": "Notificaciones de falla", + "successEnabled": "Notificaciones de éxito", + "configuration": "Configuración del servidor de correo", + "recipientsEmails": "Correos electrónicos de los destinatarios", + "enabled": { + "true": "Habilitado", + "false": "Deshabilitado" + }, + "confStatus": { + "true": "Configurado", + "false": "Configuración incompleta" + } + }, + "message": "Mensaje", + "nextUpdate": "Siguiente actualización", + "ocspResponders": { + "certificationService": "Servicio de certificación:", + "ocspStatus": { + "ERROR_CODE_OCSP_CONNECTION_ERROR": "Incapaz de conectarse al Servicio OCSP Responder", + "ERROR_CODE_OCSP_FAILED": "No se puede obtener la respuesta del Servicio OCSP Responder", + "ERROR_CODE_OCSP_RESPONSE_INVALID": "Incapaz de analizar la respuesta del Servicio OCSP Responder", + "ERROR_CODE_OCSP_RESPONSE_UNVERIFIED": "No se puede verificar la respuesta del Servicio OCSP Responder", + "ERROR_CODE_OCSP_UNINITIALIZED": "Solicitud de estado aún no enviada", + "SUCCESS": "Exito", + "UNKNOWN": "Desconocido" + }, + "title": "Servicio OCSP Responder" + }, + "previousUpdate": "Actualización anterior", + "serviceUrl": "URL de servicio", + "status": "Estado", + "timestamping": { + "timestampingStatus": { + "ERROR_CODE_INTERNAL": "Se produjo un error interno", + "ERROR_CODE_MALFORMED_TIMESTAMP_SERVER_URL": "URL del servidor de sellado de tiempo malformado. Revise la URL.", + "ERROR_CODE_TIMESTAMP_REQUEST_TIMED_OUT": "Tiempo de espera de conexión agotado. Verifique la conexión de red con el proveedor de configuración global.", + "ERROR_CODE_TIMESTAMP_UNINITIALIZED": "Conexión OK, aún no se realiza la solicitud de sellado de tiempo", + "SUCCESS": "Exito", + "UNKNOWN": "Unknown" + }, + "title": "Sellado de tiempo" + }, + "encryption": { + "status": { + "false": "Deshabilitado", + "true": "Habilitado" + }, + "statusTitle": "Estado de cifrado:", + "backup": { + "title": "Cifrado de copia de seguridad", + "configuredKeyId": "ID de clave configurada" + }, + "messageLog": { + "archive": { + "title": "Cifrado de archivo de registro de mensajes", + "groupingTitle": "Regla de agrupación:", + "memberIdentifier": "Identificador de miembro", + "keyId": "ID de clave", + "defaultKeyNote": "Este miembro está configurado para usar la clave de cifrado predeterminada de los servidores. Para una seguridad adicional, considere definir una clave específica para ser utilizada." + }, + "database": { + "title": "Cifrado de la base de datos del registro de mensajes" + } + } + } + }, + "endpoints": { + "addEndpoint": "Agregar Endpoint", + "all": "ALL", + "deleteEndpointText": "¿Estás seguro que deseas eliminar este Endpoint?", + "deleteSuccess": "Endpoint eliminado con éxito", + "deleteTitle": "Eliminar el Endpoint", + "details": "Detalles del Endpoint", + "editSuccess": "Cambios en el Endpoint guardado con éxito", + "endpointHelp1": "Las rutas son relativas a la ruta base de API, p.'/Pets'. El asterisco (*) se puede usar como un comodín", + "endpointHelp2": "* = coincidir con un segmento de ruta.", + "endpointHelp3": "** = coincidir cero o más segmentos, p.'/mascotas/**'.", + "endpointHelp4": "Los parámetros de la ruta deben reemplazarse con un asterisco, p.'/PETS/{id}/Images' => '/Pets/*/Images'.", + "httpRequestMethod": "Método de solicitud HTTP", + "path": "Ruta", + "saveNewEndpointSuccess": "Nuevo Endpoint creado con éxito" + }, + "error_code": { + "accessright_not_found": "Derecho de acceso no encontrado", + "acme": { + "eab_credentials_missing": "Faltan las credenciales de vinculación de Cuenta Externa, son requeridas", + "eab_secret_length": "Longitud inválida del secreto base64 de la vinculación de la cuenta externa", + "account_key_pair_error": "Falló el par de claves para la cuenta del servidor ACME", + "account_keystore_password_missing": "Falta la contraseña del almacén de claves de la cuenta ACME desde el archivo de configuración acme.yml", + "fetching_metadata_error": "Error al obtener los metadatos del servidor ACME. Es posible que el servidor ACME no se encuentre accesible", + "account_creation_failure": "La creación de una cuenta en el servidor ACME falló. Si se requiere unión de cuenta externa, verifique que las credenciales correctas estén configuradas en acme.yml", + "order_creation_failure": "La creación de un nuevo pedido en el servidor ACME falló", + "order_finalization_failure": "Finalizar el pedido en el servidor ACME falló", + "http_challenge_file_creation": "La creación del archivo de desafío HTTP de la creación de ACME falló", + "http_challenge_file_deletion": "Eliminar el archivo de desafío ACME HTTP falló", + "http_challenge_missing": "Actualmente, X-Road solo admite el desafío HTTP, pero este no está disponible entre las opciones posibles del servidor ACME.", + "challenge_trigger_failure": "Falló la solicitud al servidor ACME para validar el desafío", + "authorization_failure": "La autorización falló. Generalmente relacionado con una falla de validación de desafío que se requiere para probar la propiedad del dominio", + "authorization_wait_failure": "Falló la espera para que se complete la Autorización", + "certificate_failure": "Obtener el certificado del servidor ACME", + "certificate_wait_failure": "Falló la espera para la creación del nuevo Certificado" + }, + "action_not_possible": "La acción no es posible", + "additional_member_already_exists": "Ya existe miembro adicional", + "anchor_already_exists": "Ancla ya existe", + "anchor_file_not_found": "Archivo Ancla no encontrado", + "anchor_not_found": "Ancla no encontrado", + "anchor_upload_failed": "Falló la carga del Ancla", + "api_key_not_found": "Clave de API no encontrada", + "auth_cert_not_supported": "El certificado de autenticación no es compatible", + "backup_file_not_found": "Archivo de respaldo no encontrado", + "backup_generation_failed": "Falló la generación de copias de seguridad", + "backup_restore_interrupted": "Restauración de copia de seguridad interrumpida", + "base_endpoint_not_found": "Endpoint base no encontrado", + "ca_cert_status_processing_failure": "El procesamiento de estado del certificado de CA falló", + "cannot_delete_owner": "No se puede eliminar al propietario", + "cannot_register_owner": "No se puede registrar al propietario", + "cannot_unregister_owner": "No se puede anular el propietario", + "cert_wrong_usage": "Uso incorrecto de certificado", + "certificate_already_exists": "El certificado ya existe", + "certificate_authority_not_found": "Autoridad de certificado no encontrada", + "certificate_id_not_found": "ID de certificado no encontrado", + "certificate_not_found": "Certificado no encontrado", + "certificate_profile_instantiation_failure": "Instanciación del perfil de certificado fallido", + "client_already_exists": "El cliente ya existe", + "client_not_deleted": "No se puede eliminar las claves, certificados y CSRs, porque pertenecen a un cliente existente", + "client_not_found": "cliente no encontrado", + "conf_download_failed": "Falló la descarga de la configuración", + "conf_verification": { + "anchor_not_for_external_source": "El Ancla apunta a una fuente de configuración interna. Solo se admiten Anclas de fuentes de configuración externa como Anclas de confianza.", + "missing_private_params": "Fallado de importación del Ancla de configuración: archivo de Ancla no válido", + "other": "La configuración de la fuente no pasó la verificación", + "outdated": "La configuración de la fuente está desactualizada", + "signature_invalid": "La firma de la configuración no se puede verificar", + "unreachable": "No es posible comunicarse con la fuente de configuración, verifique la URL de origen en el archivo de Ancla cargado" + }, + "core": { + "Server": { + "InternalError": "Error interno", + "ServerProxy": { + "ServiceFailed": { + "HttpError": "Error HTTP", + "SslAuthenticationFailed": "La autenticación SSL falló" + }, + "UnknownService": "Servicio desconocido" + } + }, + "Signer": { + "CertNotFound": "No se encuentra la certificación", + "KeyNotFound": "No se encuentra la clave", + "TokenNotAvailable": "Token no está disponible", + "TokenNotFound": "No se encuentra el token", + "UnknownMember": "X -Road Core - Signer: miembro desconocido" + } + }, + "csr_not_found": "CSR no encontrado", + "diagnostic_request_failed": "Falló la solicitud de diagnóstico", + "duplicate_accessright": "Derecho de acceso duplicado", + "endpoint_already_exists": "El Endpoint ya existe", + "endpoint_not_found": "Endpoint no encontrado", + "generate_backup_interrupted": "Generación de copia de seguridad interrumpida", + "global_conf_download_request_failed": "La solicitud de descarga de configuración global falló", + "global_conf_outdated": "La configuración global está desactualizada", + "gpg_key_generation_failed": "Falló la generación GPG KeyPair", + "gpg_key_generation_interrupted": "Generación de GPG interrumpida", + "identifier_not_found": "Identificador no encontrado", + "illegal_generated_endpoint_remove": "La eliminación del Endpoint generado no está permitido", + "illegal_generated_endpoint_update": "No se permite actualizar el Endpoint generado", + "import_internal_cert_failed": "Importación de certificado interno fallido", + "internal_anchor_upload_invalid_instance_id": "El Ancla tiene una identificación de instancia no válida", + "internal_key_cert_interrupted": "Certificado de clave interna interrumpida", + "invalid_backup_file": "Archivo de copia de seguridad no válido", + "invalid_cert": "Certificado no válido", + "invalid_characters_pin": "PIN tiene caracteres no válidos", + "invalid_distinguished_name": "El nombre distinguido (DN) no es válido", + "invalid_dn_parameter": "Parámetro DN no válido", + "invalid_filename": "Nombre de archivo no válido", + "invalid_https_url": "URL no usa HTTPS", + "invalid_init_params": "Parámetros de inicialización no válidos", + "invalid_instance_identifier": "Identificador de instancia no válido", + "invalid_member_class": "Clase de miembro inválido", + "invalid_service_client_id": "ID de cliente no válido", + "invalid_service_url": "URL de servicio no válido", + "invalid_wsdl": "WSDL no válido", + "invalid_wsdl_service_identifier": "Identificador de servicio WSDL no válido", + "key_and_cert_generation_failed": "Falló la generación de clave y certificado", + "key_not_found": "Clave no encontrada", + "local_group_code_already_exists": "El código de grupo local ya existe", + "local_group_member_already_exists": "Miembro del grupo local ya existe", + "local_group_member_not_found": "Miembro del grupo local no encontrado", + "local_group_not_found": "Grupo local no encontrado", + "malformed_anchor": "Ancla malformada", + "malformed_url": "URL malformada", + "management_request_sending_failed": "Envío de solicitud de administración fallida", + "member_already_owner": "El miembro ya es el propietario", + "member_class_exists": "La clase de miembro ya existe", + "member_class_not_provided": "No se proporciona la clase de miembros", + "member_code_exists": "Existe el código miembro", + "member_code_not_provided": "No se proporciona código miembro", + "missing_parameter": "Parámetro faltante", + "openapi_parsing_error": "Error al analizar la descripción de OpenApi3", + "orphans_not_found": "Las claves huérfanas, certificados y/o CSR que pertenecen al cliente dado no fueron encontrados", + "pin_code_exists": "Existe el código PIN", + "pin_code_not_provided": "El código PIN no se proporciona", + "pin_incorrect": "Pin incorrecto. Por favor intente de nuevo.", + "pin_min_char_classes_count": "Recuento mínimo de clases de caracteres para el PIN", + "pin_min_length": "Longitud mínima", + "process_failed": "Falló el proceso", + "process_not_executable": "El proceso no se puede ejecutar", + "resource_read_failed": "No se pudo leer el recurso", + "restore_process_failed": "El proceso de restauración falló", + "server_already_fully_initialized": "El servidor ya está completamente inicializado", + "server_code_exists": "El código del servidor existe", + "server_code_not_provided": "El código del servidor no se proporciona", + "service_already_exists": "Ya existe el servicio", + "service_client_not_found": "Cliente de servicio no encontrado", + "service_code_already_exists": "El código de servicio ya existe", + "service_description_not_found": "Descripción del servicio no encontrada", + "service_not_found": "servicio no encontrado", + "sign_cert_not_supported": "El certificado de firma no es compatible", + "signer_not_reachable": "El firmante no es actualmente accesible. Consulte el registro del firmante para más detalles.", + "software_token_init_failed": "Falló la inicialización del token de software", + "timestamping_service_already_configured": "El servicio de sellado de tiempo ya está configurado", + "timestamping_service_not_found": "Servicio de sellado de tiempo no encontrado", + "token": { + "malformed_csr": "Los datos de CSR están malformados" + }, + "token_not_active": "El token no está activo", + "token_not_found": "Token no encontrado", + "unsupported_openapi_version": "Versión OpenAPI no soportada. Solo las versiones 3.0.x y 3.1.0 son actualmente compatibles.", + "url_already_exists": "URL ya existe", + "validation_failure": "Falla de validación", + "warnings_detected": "Advertencias detectadas", + "weak_pin": "PIN débil", + "wrong_key_usage": "Uso de la clave incorrecta", + "wrong_servicedescription_type": "Tipo de descripción del servicio incorrecto", + "wsdl_download_failed": "Falló la descarga de WSDL", + "wsdl_exists": "WSDL existe", + "wsdl_validator_interrupted": "Validador de WSDL interrumpido", + "wsdl_validator_not_executable": "El validador de WSDL no es ejecutable" + }, + "fields": { + "addClient": { + "memberClass": "Clase miembro", + "memberCode": "Código miembro", + "subsystemCode": "Código de subsistema" + }, + "C": "Código del país", + "clientAdd": { + "client": { + "memberCode": "Código miembro", + "subsystemCode": "Código de subsistema" + } + }, + "CN": "Nombre de DNS del servidor", + "confirmPin": "Confirmar PIN", + "csr": { + "certService": "Servicio de certificación", + "client": "Cliente", + "csrFormat": "Formato CSR", + "usage": "Uso", + "certificationService": "Servicio de certificación" + }, + "dns": "DNS", + "keys": { + "name": "Nombre" + }, + "O": "Nombre de la organización", + "password": "Contraseña", + "path": "Ruta", + "pin": "PIN", + "memberClass": "Clase miembro", + "memberCode": "Código miembro", + "securityServerCode": "Código de servidor de seguridad", + "securityServerAddress": "Dirección del servidor de seguridad", + "serialNumber": "Número de serie", + "serviceCode": "Código de servicio", + "serviceDescriptionAdd": { + "restServiceCode": "Código de servicio" + }, + "serviceDescriptionUpdate": { + "newRestServiceCode": "Código de servicio" + }, + "serviceTimeout": "Se agotó el tiempo de espera", + "serviceType": "Tipo de servicio", + "serviceUrl": "Url", + "subjectAltName": "Nombre alternativo", + "token": { + "friendlyName": "Nombre amistoso", + "newPin": "Nuevo PIN", + "newPinConfirm": "Confirmar el nuevo PIN", + "oldPin": "PIN" + }, + "tokenPin": "PIN", + "url": "Url", + "username": "Nombre de usuario", + "certificationService": "Servicio de certificación" + }, + "footer": { + "copyright": { + "company": "Instituto Nordico para Soluciones de Introperabilidad (NIIS)", + "licenceInfo": "Información de la licencia", + "title": "Derechos de autor" + }, + "software": { + "feedback": "Comentario", + "title": "Software", + "versionPrefix": "X-ROAD" + } + }, + "global": { + "name": "Nombre", + "appTitle": "Servidor de seguridad X-ROAD" + }, + "general": { + "instance": "Instancia", + "memberClass": "Clase miembro", + "memberCode": "Código miembro", + "name": "Nombre", + "subsystem": "subsistema", + "subsystemCode": "Código de subsistema", + "type": "Tipo" + }, + "globalAlert": { + "backupRestoreInProgress": "La configuración del servidor de seguridad se está restaurando desde una copia de seguridad. El proceso fue iniciado {starttime}", + "globalConfigurationInvalid": "La configuración global está vencida", + "secondaryNode": "Está en un nodo secundario en un clúster de servidor de seguridad. La modificación de la configuración está deshabilitada.", + "softTokenPinNotEntered": "Ingrese el PIN token de software", + "certificateRenewalJobFailure": "El último trabajo de renovación del certificado ha fallado.", + "certificateRenewalJobFailureAuth": "Certificado de autenticación fallido (s):", + "certificateRenewalJobFailureSign": "Certificado (s) de firma fallido:", + "navigateToKeysPage": "Consulte la página de claves y certificados para obtener más detalles" + }, + "initialConfiguration": { + "anchor": { + "generated": "Generado", + "hash": "Hash (SHA-224)", + "info": "Importe el Ancla de configuración proporcionado por el administrador del servidor central.", + "title": "Ancla de la configuración" + }, + "member": { + "info": "Defina el miembro que actuará como propietario del servidor de seguridad:", + "serverCodeHelp": "Código del servidor de seguridad que identifica de manera única a este servidor de seguridad dentro de todos los servidores de seguridad del mismo propietario.", + "title": "Miembro del propietario" + }, + "noInitializationStatus": "No hay estado de inicialización disponible", + "noPermission": "Este servidor de seguridad no está inicializado actualmente, comuníquese con un administrador para hacer la configuración inicial", + "pin": { + "confirmPin": "Confirmar PIN", + "info1": "El token de software es el lugar donde se almacenan las claves de autenticación del servidor de seguridad. Defina un PIN para iniciar sesión en el token de software.", + "info2": "Se recopila toda la información requerida, presione el botón Enviar para inicializar el servidor de seguridad.", + "info3": "Una vez que se complete la inicialización, debe finalizar la configuración del Servidor de Seguridad; simplemente haga clic en el botón Configurar en la notificación emergente que aparecerá en unos momentos", + "pin": "PIN", + "pinMatchError": "La confirmación de PIN no coincide", + "title": "PIN" + }, + "success": "Servidor inicializado", + "title": "Configuración inicial", + "warning": { + "init_server_id_exists": "La identificación del servidor existe", + "init_server_owner_exists": "El propietario del servidor existe", + "init_servercode_exists": "El codigo de servidor existe", + "init_software_token_initialized": "El token de software está inicializado", + "init_unregistered_member": "Se ha quitado el registro del miembro" + } + }, + "internalServers": { + "certHash": "Certificado hash (SHA/1)", + "connTypeUpdated": "Tipo de conexión actualizado", + "connectionInfo": "El tipo de conexión para servidores en el rol del proveedor de servicios se establece en la pestaña Servicios por la URL del servicio (HTTP/HTTPS).", + "connectionType": "Tipo de conexión", + "ssCertTitle": "Certificado de servidor de seguridad", + "tlsTitle": "Certificado de TLS del sistema de información" + }, + "keys": { + "addKey": "Agregar clave", + "authDetailsTitle": "Detalles clave de autenticación", + "authKeyCert": "Claves y certificados de autenticación", + "authNotSupported": "Clave de autenticación no compatible", + "auth_key_with_registered_cert_warning": "La clave tiene certificados a los cuales se les debe quitar el desregistro antes de su eliminación. ¿Desea quitar el registro y proceder con la eliminación de los certificados asociados y la clave de la configuración del servidor? ID de la clave:", + "certMarkedForDeletion": "Certificado marcado para la eliminación", + "certRegistrationInfo": "Nombre DNS del servidor de seguridad o dirección IP", + "certStatus": { + "deletion": "Eliminación en progreso", + "globalError": "Error global", + "onlyInHWToken": "Solo en token", + "registered": "Registrado", + "registration": "Registro en progreso", + "saved": "Guardado" + }, + "certificateRegistered": "Solicitud de registro de certificado enviado correctamente", + "certificateUnregistered": "Solicitud de eliminación de registro de certificado enviado correctamente", + "csrDeleted": "CSR eliminado", + "deleteCsr": "Eliminar CSR", + "deleteCsrText": "¿Estás seguro que deseas eliminar este CSR?", + "deleteCsrTitle": "¿Eliminar CSR?", + "deleteKeyText": "¿Está seguro de que desea eliminar esta clave y todos los certificados asociados de la configuración del servidor?", + "deleteTitle": "¿Eliminar la calve?", + "detailsTitle": "Detalles de clave", + "expires": "Expira", + "friendlyName": "Nombre amistoso", + "generateCsr": "Generar CSR", + "globalErrors": "Errores globales", + "gotIt": "Entiendo", + "helpTextApi": "Las claves API se utilizan para autenticar las llamadas de API a la API REST de administración del servidor de seguridad.Las claves API están asociadas con roles que definen los permisos otorgados a la clave API.", + "helpTextKeys": "La clave de autenticación y el certificado certifican la autenticidad de un servidor de seguridad. Se utilizan para la autenticación en conexiones entre servidores de seguridad. La clave de firma y el certificado certifican la autenticidad de un miembro de X-Road. Se utilizan para firmar y verificar la integridad de los mensajes mediados.", + "helpTextSS": "El certificado TLS del servidor de seguridad se utiliza en conexiones entre el servidor de seguridad y un sistema de información. El certificado TLS interno se utiliza como certificado de cliente y servidor dependiendo de los roles del servidor de seguridad y el sistema de información.", + "helpTitleApi": "Claves de API", + "helpTitleKeys": "Claves de autenticación y firma", + "helpTitleSS": "Certificado TLS del servidor de seguridad", + "id": "IDENTIFICACIÓN", + "importCert": "Importar certificado", + "importCertSuccess": "El Certificado se cargó con éxito", + "incorrectPin": "PIN incorrecto. Por favor intente de nuevo.", + "keyDeleted": "Clave eliminada", + "keyId": "ID de clave:", + "keyInfo": "Información de la clave", + "keyLabelInput": "Etiqueta de la clave", + "keySaved": "Clave guardada", + "label": "Etiqueta:", + "logIn": "Acceso", + "logOut": "Finalizar la sesión", + "logOutText": "¿Finalizar la sesión del token?", + "logOutTitle": "Finalizar la sesión", + "loggedIn": "Iniciado sesión en token", + "loggedOut": "Sesión de token finalizada", + "noIssues": "No hay problemas", + "ocsp": "OCSP", + "ocspStatus": { + "disabled": "Deshabilitado", + "expired": "Expirado", + "good": "Bueno", + "revoked": "Revocado", + "suspended": "Suspendido", + "unknown": "Desconocido" + }, + "orderAcmeCertificate": "Solicitud de Certificado", + "acmeCertOrdered": "Certificado solicitado con éxito", + "readOnly": "Solo lectura:", + "keyAlgorithm": "Algoritmo de clave:", + "registrationRequest": "Solicitud de registro", + "renewal": "Renovación automática", + "request": "Solicitud", + "signDetailsTitle": "Detalles de la clave de firma", + "signKeyCert": "Firmar claves y certificados", + "status": "Estado", + "token": "Token:", + "tokenDetails": "Detalles del token", + "tokenId": "ID de token:", + "tokenInfo": "Información token", + "tokenPin": "PIN", + "tokenSaved": "Token guardado", + "tokenStatus": { + "active": "", + "available": "", + "inactive": "Inactivo", + "unavailable": "Bloqueado", + "unsaved": "No guardado" + }, + "type": "Tipo:", + "unknown": "Tipo de clave no especificado", + "unregisterError": "No se pudo registrar el certificado. ¿Deseas continuar con la eliminación de certificados de todos modos?", + "unregisterText": "¿Quieres quitar el registro de este certificado?", + "unregisterTitle": "Quitar registro de certificado" + }, + "localGroup": { + "accessDate": "Derechos de acceso dados", + "addLocalGroup": "Agregar grupo local", + "addMembers": "Agregar miembros", + "addSelected": "Agregar seleccionado", + "code": "Código", + "deleteText": "¿Estás seguro de que quieres eliminar este grupo?", + "deleteTitle": "¿Eliminar el grupo?", + "descSaved": "Descripción guardada", + "description": "Descripción", + "groupDeleted": "Grupo eliminado", + "groupMembers": "Miembros del grupo", + "id": "Identificación", + "localGroup": "Grupo local", + "localGroupAdded": "Grupo local agregado", + "name": "Nombre de miembro", + "noResults": "Su búsqueda no encontró resultados.", + "removeAllText": "¿Estás seguro de que quieres eliminar a todos los miembros de este grupo?", + "removeAllTitle": "¿Remover a los miembros?", + "removeText": "¿Estás seguro de que quieres eliminar a este miembro?", + "removeTitle": "¿Eliminar miembro?", + "searchOptions": "Opciones de búsqueda" + }, + "localGroups": { + "addGroup": "Agregar grupo", + "code": "Código", + "description": "Descripción", + "memberCount": "Cantidad de miemros", + "updated": "Actualizado" + }, + "login": { + "errorMsg401": "Nombre de usuario o contraseña incorrectos", + "generalError": "Error de inicio de sesion. Por favor intente de nuevo.", + "logIn": "Acceso", + "logOut": "Finalizar la sesión" + }, + "logout": { + "idleWarning": "Ha estado inactivo durante 30 minutos y su sesión ha finalizado. Por razones de seguridad, se desconectará.", + "sessionExpired": "Sesión expirada" + }, + "noData": { + "loading": "Cargando ... por favor espera", + "noBackUpEncryptionKeys": "No hay claves de cifrado de copia de seguridad configuradas", + "noBackups": "No hay copias de seguridad todavía", + "noCertificate": "Sin certificado", + "noCertificates": "Sin certificados", + "noClientData": "Sin datos del cliente", + "noCertificateAuthorities": "No hay autoridades de certificado", + "noData": "Sin datos", + "noLocalGroups": "No hay grupos locales", + "noMatches": "Sin criterios de coincidencia de elementos", + "noServices": "Sin servicios", + "noServiceClients": "No hay clientes de servicio", + "noTimestampingServices": "Sin servicios de sellado de tiempo", + "noTokens": "No hay Tokens" + }, + "serviceClientType": { + "globalGroup": "Grupo global", + "localGroup": "Grupo local", + "subsystem": "Subsistema" + }, + "serviceClients": { + "accessRights": "Derechos de acceso", + "accessRightsGiven": "Derechos de acceso otorgados", + "addSelected": "Agregar seleccionado", + "addService": "Agregar servicio", + "addServiceClient": "Agregar sujeto", + "addServiceClientAccessRightSuccess": "Derechos de acceso agregados con éxito", + "addServiceClientTitle": "Agregar un Sujeto", + "id": "IDENTIFICACIÓN", + "memberGroupCodeLabel": "Miembro/código de grupo", + "memberGroupStep": "Miembro / grupo", + "name": "Nombre del miembro / Descripción del grupo", + "noAccessRights": "Cliente no tiene derechos de acceso", + "noAvailableServices": "No hay servicios disponibles", + "removeAll": "Eliminar todo", + "removeAllText": "¿Está seguro de que desea eliminar todos los derechos de acceso de este cliente de servicio?", + "removeAllTitle": "Eliminar todos los derechos de acceso?", + "removeOneText": "¿Está seguro de que desea eliminar los derechos de acceso de este cliente de servicio?", + "removeOneTitle": "Eliminar los derechos de acceso?", + "searchPlaceHolder": "Clientes de servicio", + "serviceCode": "Código de servicio", + "serviceSelectionStep": "Código de servicio", + "servicesStep": "Servicios", + "title": "Título" + }, + "services": { + "OpenApi3Description": "Descripción Openapi3", + "addRest": "Agregar REST", + "addWsdl": "Agregar WSDL", + "applyToAll": "Aplicar a todos en WSDL", + "deleteRestText": "¿Estás seguro de que quieres eliminar este servicio REST?", + "deleteTitle": "¿Eliminar la descripción del servicio?", + "deleteWsdlText": "Estás seguro de que quieres eliminar este servicio WSDL?", + "deleted": "Descripción del servicio eliminada", + "disableNotice": "Desactivar aviso", + "disableSuccess": "Descripción del servicio Desactivado", + "disableTitle": "¿Desactivar?", + "editUrl": "Editar URL", + "enableSuccess": "Descripción del servicio habilitado", + "idGroupCode": "ID / Código de grupo", + "lastRefreshed": "Último renovado:", + "memberNameGroupDesc": "Nombre del miembro / Descripción del grupo", + "noMatches": "Sin registros coincidentes", + "openApi3Added": "Servicio OpenApi3 agregado", + "openapiDetails": "Detalles Openapi3", + "refreshed": "Actualizado", + "restAdded": "Servicio REST agregado", + "restApiBasePath": "Ruta base de API REST", + "restDetails": "Detalles del REST", + "service": "Servicio", + "serviceCode": "Código de servicio", + "serviceCodePlaceholder": "Insertar código de servicio", + "serviceSaved": "Servicio guardado", + "serviceType": "Tipo de URL", + "serviceUrl": "URL de servicio", + "service_parameters_ssl_test_warnings": { + "internal_server_ssl_error": "Falló la verificación de los certificados internos del servidor. ¿Es correcta la URL del servidor upstream y es accesible desde el Servidor de Seguridad?", + "internal_server_ssl_handshake_error": "El TLS HandShake con el servidor upstream, falta el certificado del servidor en la configuración:" + }, + "timeout": "Tiempo de espera agotado", + "timeoutSec": "Tiempo de espera (s)", + "timeoutTooltip": "La duración máxima de una solicitud al servicio, en segundos", + "tlsTooltip": "Verifique el certificado TLS cuando se establece una conexión segura", + "url": "URL", + "urlPlaceholder": "Insertar URL", + "urlTooltip": "La URL donde se dirigen las solicitudes dirigidas al servicio", + "warning": "Advertencia", + "warningCode": { + "adding_endpoints": "Agregar Endpoints:", + "adding_services": "Agregar servicios:", + "deleting_endpoints": "Eliminar Endpoints:", + "deleting_services": "Eliminar servicios:", + "wsdl_validation_warnings": "Advertencias de validación:", + "openapi_validation_warnings": "Advertencias de validación:" + }, + "verifyTls": "Verificar el certificado TLS", + "wsdlAdded": "WSDL agregado", + "wsdlDescription": "Descripción de WSDL", + "wsdlDetails": "Detalles de WSDL" + }, + "ssTlsCertificate": { + "certificateImported": "Certificado importado", + "exportCertificate": "Certificado de exportación.", + "generateCsr": "Generar CSR", + "generateInternalCsr": { + "cancel": "CANCELAR", + "done": "HECHO", + "step1": { + "description": "1) Primero, proporcione un nombre distinguido", + "label": "Nombre distinguido", + "placeholder": "Cn = miservidordeseguridad.ejemplo.com, O = mi organización, c = ee", + "tooltip": "El nombre distinguido (DN) identifica de manera única una entidad en un certificado X.509. Los siguientes tipos de atributos se encuentran comúnmente en el DN: CN = nombre común, O = nombre de la organización, C = Código de país." + }, + "step2": { + "description": "2) Genere una nueva CSR y guárdela en un lugar seguro", + "generateCSR": "Generar CSR" + }, + "title": "Generar solicitud de firma de certificado TLS" + }, + "generateKey": "Generar clave", + "generateTlsAndCertificateDialog": { + "confirmation": "¿Generar una nueva clave y certificado TLS de servidor de seguridad?", + "explanation": "El sistema generará una nueva clave TLS de servidor de seguridad y un certificado autofirmado, reemplazando la clave y el certificado existentes.", + "success": "Nuevo servidor de seguridad TLS TLS y certificado generados correctamente", + "title": "Clave TLS del servidor de seguridad" + }, + "importCertificate": "Importación de certificados", + "keyCertTitle": "Clave y certificado TLS", + "keyText": "Clave TLS interna" + }, + "stores": { + "user": { + "currentSecurityServerNotFound": "No se pudo determinar la información actual del servidor de seguridad. La respuesta de la API no es válida." + } + }, + "systemParameters": { + "approvedCertificateAuthorities": { + "table": { + "header": { + "distinguishedName": "Nombre distinguido", + "expires": "Expirar", + "ocspResponse": "Respuesta OCSP", + "acmeIpAddresses": "IP del servidor ACME" + }, + "notAvailable": "N / A", + "ocspResponse": { + "NOT_AVAILABLE": "N / A", + "OCSP_RESPONSE_GOOD": "Bueno", + "OCSP_RESPONSE_REVOKED": "Revocado", + "OCSP_RESPONSE_SUSPENDED": "Suspendido", + "OCSP_RESPONSE_UNKNOWN": "Desconocido" + } + }, + "title": "Autoridades de certificación aprobadas" + }, + "configurationAnchor": { + "action": { + "download": "Descargar", + "upload": { + "button": "Subir", + "dialog": { + "confirmation": "¿Continuar con la importación?", + "field": { + "generated": "Generado", + "hash": "Hash (SHA-224)" + }, + "info": "Detalles del Ancla de configuración:", + "success": "Ancla de configuración cargado", + "title": "Confirmar los detalles del Ancla de configuración" + } + } + }, + "table": { + "header": { + "distinguishedName": "Hash (SHA-224)", + "generated": "Generado" + } + }, + "title": "Ancla de configuración" + }, + "timestampingServices": { + "action": { + "add": { + "button": "Agregar", + "dialog": { + "info": "Servicios de sellado de tiempo de confianza:", + "success": "Servicio de sellado de tiempo agregado", + "title": "Agregar servicio de sellado de tiempo" + } + } + }, + "table": { + "action": { + "delete": { + "button": "Borrar", + "confirmation": { + "text": "¿Estás seguro de que quieres eliminar el servicio de sellado de tiempo?", + "title": "Confirmar" + }, + "success": "Servicio de sellado de tiempo eliminado con éxito" + } + }, + "header": { + "serviceURL": "URL de servicio", + "timestampingService": "Servicio de sellado de tiempo" + } + }, + "title": "Servicios de sellado de tiempo" + }, + "securityServer": { + "securityServer": "Servidor de seguridad", + "serverAddress": "Dirección del servidor", + "editDialog": { + "title": "Editar dirección del servidor de seguridad" + }, + "addressChangeInProgress": "CAMBIO EN PROCESO", + "updateSubmitted": "Cambio de dirección del servidor de seguridad enviado correctamente" + }, + "title": "Parámetros del sistema" + }, + "tab": { + "client": { + "details": "Detalles", + "internalServers": "Servidores internos", + "localGroups": "Grupos locales", + "serviceClients": "Clientes de servicio", + "services": "Servicios" + }, + "keys": { + "apiKey": "Claves de API", + "signAndAuthKeys": "Claves de firma y autenticación", + "ssTlsCertificate": "Clave TLS del servidor de seguridad" + }, + "main": { + "clients": "Clientes", + "diagnostics": "Diagnosticos", + "keys": "Claves y certificados", + "settings": "Ajustes" + }, + "services": { + "endpoints": "Endpoints", + "parameters": "Parámetros de servicio" + }, + "settings": { + "backupAndRestore": "Copia de seguridad y restauración", + "systemParameters": "Parámetros del sistema" + } + }, + "token": { + "changePin": "Cambiar el PIN", + "pinChanged": "Se cambió el PIN del token: inicie sesión en el token con el nuevo PIN", + "tokenPinPolicyHeader": "La política de PIN del token está habilitada.", + "tokenPinPolicy": "Se requiere que el PIN del token de software tenga al menos 10 caracteres ASCII provenientes de al menos tres clases de caracteres (letras minúsculas, letras mayúsculas, dígitos, caracteres especiales)." + }, + "toolbar": { + "securityServerNodeType": { + "undefined": "", + "PRIMARY": "Nodo primario", + "SECONDARY": "Nodo secundario" + } + }, + "validationError": { + "AssertFalse": "el valor debe ser 'falso'", + "AssertTrue": "el valor debe ser 'verdadero'", + "DecimalMax": "El valor numérico excede el máximo permitido", + "DecimalMin": "El valor numérico está por debajo del mínimo permitido", + "Digits": "El valor debe contener solo dígitos", + "Email": "El valor no cumple con el formato de correo electrónico", + "Future": "El valor de fecha y hora debe ser en el futuro", + "FutureOrPresent": "El valor de fecha y hora debe ser ahora o en el futuro", + "Max": "El valor numérico excede el máximo permitido", + "Min": "El valor numérico está por debajo del mínimo permitido", + "Negative": "El valor numérico debe ser inferior a cero", + "NegativeOrZero": "El valor numérico debe ser menor o igual a cero", + "NoBackslashes": "El valor no debe contener doble barras invertidas (\\)", + "NoColons": "El valor no debe contener dos puntos (:)", + "NoForwardslashes": "El valor no debe contener barra (/)", + "NoPercents": "El valor no debe contener símbolo de porcentaje (%)", + "NoSemicolons": "El valor no debe contener punto y coma (;)", + "Normalized": "El valor debe normalizarse", + "NotBlank": "El valor no debe estar en blanco", + "NotEmpty": "el valor no debe estar vacío", + "NotNull": "Se requiere valor", + "Null": "El valor debe permanecer en nulo", + "Past": "El valor de fecha y hora debe ser anterior a la actual", + "PastOrPresent": "El valor de fecha y hora debe ser ahora o anterior a la actual", + "Pattern": "el valor no coincidía con el formato requerido", + "Positive": "El valor numérico debe ser mayor que cero", + "PositiveOrZero": "El valor numérico debe ser mayor o igual a cero", + "Size": "El valor no cumple con los requisitos de longitud", + "IdentifierChars": "caracteres de identificación no válidos" + }, + "wizard": { + "addClientTitle": "Agregar cliente", + "addMemberTitle": "Agregar miembro", + "addSubsystemTitle": "Agregar subsistema", + "client": { + "addClient": "Agregar cliente", + "clientExists": "Client ya existe", + "memberClassTooltip": "Código que identifica la clase miembro (por ejemplo, agencia gubernamental, empresa privada, etc.).", + "memberCodeTooltip": "Código miembro que identifica de manera exclusiva a este miembro X-ROAD dentro de su clase miembro (por ejemplo, ID de negocio).", + "memberNameTooltip": "Nombre de la organización miembro.", + "register": "Registre al cliente", + "searchLabel": "Cliente", + "subsystemCodeTooltip": "Código del subsistema que identifica un sistema de información propiedad del miembro." + }, + "clientDetails": "Detalles del cliente", + "clientInfo1": "Especifica los detalles del Cliente que deseas agregar.", + "clientInfo2": "Si el cliente ya está existente, puedes seleccionarlo de la lista global.", + "finish": { + "acme": { + "infoLine": "Se recopila toda la información requerida. Al hacer clic en \"Enviar\", el nuevo cliente se agregará a la lista de clientes y la nueva clave y certificado aparecerán en la vista de claves y certificados. El certificado se ordenará desde el servidor ACME de CA y se importará automáticamente. Luego puedes registrar el nuevo cliente." + }, + "infoLine1": "Se recopila toda la información requerida. Al hacer clic en \"Enviar\", el nuevo cliente se agregará a la lista de clientes y la nueva clave y CSR aparecerán en la vista de claves y certificados.", + "infoLine2": "Para registrar el nuevo cliente, completa los siguientes pasos:", + "note": "Nota: Si haces clic en Cancelar, todos los datos se perderán", + "title": "Finalizar", + "todo1": "1) Enviar la CSR a una autoridad de certificación para firmar", + "todo2": "2) Una vez recibido, importa el certificado resultante a la clave correspondiente", + "todo3": "3) En este punto puedes registrar el nuevo cliente" + }, + "member": { + "info1": "Especifica los detalles del miembro que deseas agregar.", + "info2": "Si el miembro ya existe, puedes seleccionarlo de la lista global.", + "memberExists": "Miembro ya existe", + "register": "Registrar miembro", + "searchLabel": "Miembro", + "select": "Selecciona el miembro", + "title": "Detalles del miembro" + }, + "memberClass": "Clase miembro", + "memberCode": "Código miembro", + "memberName": "Nombre de miembro", + "selectClient": "Seleccionar cliente", + "selectMemberClass": "Seleccionar clase de miembro", + "signKey": { + "info": "Puedes definir una etiqueta para la clave de firma recién creada (no obligatoria)", + "keyLabel": "Etiqueta clave", + "title": "Clave de firma" + }, + "subsystem": { + "info1": "Especifica el código del subsistema que se agregará.", + "info2": "Si el subsistema ya existe, puedes seleccionarlo de la lista global.", + "registerSubsystem": "Registrar subsistema", + "searchLabel": "Subsistema", + "selectSubsystem": "Seleccionar subsistema", + "subsystemAdded": "Subsistema agregado", + "subsystemExists": "El subsistema ya existe" + }, + "subsystemCode": "Código de subsistema", + "token": { + "info": "Selecciona el token donde deseas agregar la clave de firma para el nuevo cliente. Nota: El token debe estar en estado registrado.", + "loggedIn": "Sesión iniciada", + "title": "Token", + "tokenName": "Nombre de token" + }, + "warning": { + "unregistered_member": "Miembro no registrado" + } + } +} \ No newline at end of file diff --git a/src/security-server/admin-service/ui/src/plugins/i18n.ts b/src/security-server/admin-service/ui/src/plugins/i18n.ts index 4c17ec7695..417753a1e3 100644 --- a/src/security-server/admin-service/ui/src/plugins/i18n.ts +++ b/src/security-server/admin-service/ui/src/plugins/i18n.ts @@ -24,26 +24,94 @@ * THE SOFTWARE. */ import { createI18n } from 'vue-i18n'; -import veeEn from '@vee-validate/i18n/dist/locale/en.json'; -import en from '@/locales/en.json'; +import enValidationMessages from '@vee-validate/i18n/dist/locale/en.json'; import merge from 'deepmerge'; - import { messages } from '@niis/shared-ui'; +import enAppMessages from '@/locales/en.json'; + +const loadedLanguages = new Set('en'); +export const availableLanguages = ['en', 'es']; -const validation = { validation: veeEn }; +const defaultLanguage = import.meta.env.VITE_I18N_LOCALE || 'en'; +const defaultFallbackLanguage = import.meta.env.VITE_FALLBACK_LOCALE || 'en'; -type Shared = typeof messages.en; -type Vee = typeof validation; -type En = typeof en; -export type MessageSchema = Vee & Shared & En; +const sharedLanguageMessages = { + en: messages.en, + es: messages.es, +}; +const defaultLanguagePack = merge.all([ + { validation: enValidationMessages }, + sharedLanguageMessages.en, + enAppMessages, +]); -let common = merge(validation, messages.en); -common = merge(common, en); -export const i18n = createI18n<[MessageSchema], 'en'>({ +// Initialize i18n instance with default configuration +export const i18n = createI18n({ legacy: false, - locale: import.meta.env.VITE_VUE_APP_I18N_LOCALE || 'en', - fallbackLocale: import.meta.env.VITE_VUE_APP_I18N_FALLBACK_LOCALE || 'en', + locale: defaultLanguage, + fallbackLocale: defaultFallbackLanguage, silentFallbackWarn: true, allowComposition: true, - messages: { en: common as MessageSchema }, + messages: { en: defaultLanguagePack }, }); + +// Sets the active language, loading language pack if necessary +export async function setLanguage(language) { + await loadLanguagePackIfNeeded(language); + i18n.global.locale.value = language; +} + +// Loads language pack if it's not already loaded +async function loadLanguagePackIfNeeded(language) { + if (!loadedLanguages.has(language)) { + const messages = await fetchLanguageMessages(language); + const languagePack = mergeLanguageMessages(messages); + i18n.global.setLocaleMessage(language, languagePack); + loadedLanguages.add(language); + } +} + +// Fetches all language-specific messages for the given language +async function fetchLanguageMessages(language) { + const appMessagesPromise = import(`@/locales/${language}.json`).then( + (module) => module.default, + ); + + const [appMessages, validationMessages, sharedMessages] = await Promise.all([ + appMessagesPromise, + loadValidationMessages(language), + loadSharedMessages(language), + ]); + + return { appMessages, validationMessages, sharedMessages }; +} + +// Loads validation messages, with fallback to English if not available +async function loadValidationMessages(language) { + try { + const messages = await import( + `@vee-validate/i18n/dist/locale/${language}.json` + ); + return messages.default; + } catch { + return enValidationMessages; + } +} + +// Loads shared messages based on language +function loadSharedMessages(language) { + return sharedLanguageMessages[language] || sharedLanguageMessages.en; +} + +// Merges application, validation, and shared messages into a single pack +function mergeLanguageMessages({ + appMessages, + validationMessages, + sharedMessages, +}) { + return merge.all([ + { validation: validationMessages }, + sharedMessages, + appMessages, + ]); +} diff --git a/src/shared-ui/src/index.ts b/src/shared-ui/src/index.ts index 4bb294f2c2..c58155ace1 100644 --- a/src/shared-ui/src/index.ts +++ b/src/shared-ui/src/index.ts @@ -31,10 +31,11 @@ import '@mdi/font/css/materialdesignicons.css'; import './assets/icons.css'; import en from './locales/en.json'; +import es from './locales/es.json'; export * from './components'; export * from './components/icons'; export * from './components/backups-and-restore'; export * from './types'; export * from './plugins/i18n'; -export const messages = { en }; +export const messages = { en, es }; diff --git a/src/shared-ui/src/locales/es.json b/src/shared-ui/src/locales/es.json new file mode 100644 index 0000000000..4d6c988f7c --- /dev/null +++ b/src/shared-ui/src/locales/es.json @@ -0,0 +1,1192 @@ +{ + "403": { + "goBack": "Volver", + "mainTitle": "Permiso denegado", + "text": "Parece que no tiene el permiso para ver esta página. Si cree que esto es un error, verifique si ha iniciado sesión en la cuenta correcta o comuníquese con su administrador para preguntar sobre sus permisos.", + "topTitle": "Denegado" + }, + "404": { + "pageNotFound": "404 - Página no encontrada", + "text": "Parece que encontraste el", + "textUnicorn": "unicornio" + }, + "accessRights": { + "addServiceClients": "Agregar sujetos", + "addServiceClientsSuccess": "Derechos de acceso agregados con éxito", + "addServiceClientsTitle": "Agregar sujetos", + "addSubjectsSuccess": "Derechos de acceso agregados con éxito", + "id": "IDENTIFICACIÓN", + "memberName": "Nombre del miembro / Descripción del grupo", + "removeAllText": "¿Está seguro de que desea eliminar los derechos de acceso de todos los clientes?", + "removeAllTitle": "Eliminar todos los derechos de acceso?", + "removeSuccess": "Derechos de acceso eliminados con éxito", + "removeText": "¿Está seguro de que desea eliminar los derechos de acceso de este cliente?", + "removeTitle": "Eliminar los derechos de acceso?", + "rightsGiven": "Derechos de acceso dados", + "title": "Derechos de acceso" + }, + "action": { + "activate": "Activar", + "add": "Agregar", + "addClient": "Agregar cliente", + "addMember": "Agregar miembro", + "addSubsystem": "Agregar subsistema", + "cancel": "Cancelar", + "close": "Cerrar", + "confirm": "Confirmar", + "continue": "Continuar", + "copy": "Copiar", + "copyId": "Copiar identificación", + "deactivate": "Desactivar", + "delete": "Borrar", + "disable": "Desactivar", + "done": "Hecho", + "download": "Descargar", + "edit": "Editar", + "emptySearch": "Su búsqueda de {msg} no encontró resultados.", + "enable": "Permitir", + "export": "Exportar", + "finish": "Finalizar", + "goToFront": "Ir al Inicio", + "next": "Siguiente", + "noData": "Sin datos", + "ok": "Aceptar", + "order": "Orden", + "previous": "Anterior", + "refresh": "Actualizar", + "register": "Registro", + "remove": "Eliminar", + "removeAll": "Eliminar todo", + "restore": "Restaurar", + "save": "Guardar", + "search": "Buscar", + "searching": "Búsqueda...", + "submit": "Enviar", + "unregister": "No registrado", + "yes": "Sí" + }, + "alert": { + "count": "Cantidad de errores similares:", + "warningCount": "Cantidad de advertencias similares", + "id": "IDENTIFICACIÓN" + }, + "apiKey": { + "createApiKey": { + "button": "Crear clave API", + "step": { + "keyDetails": { + "apiKey": "Clave de API", + "apiKeyID": "ID de clave API", + "assignedRoles": "Roles asignados", + "createKeyButton": "Crear clave", + "name": "Detalles clave", + "note": "Nota: Guarde la l API en un lugar seguro. La clave API es visible solo en el momento de la generación de claves. No se volverá a presentar y no se puede recuperar más tarde." + }, + "roles": { + "description": "Seleccione los roles asociados con la clave API. Los roles definen los permisos otorgados a la clave API.", + "name": "Roles", + "selectRoles": "Seleccionar roles" + } + }, + "success": "Clave API creada con éxito", + "title": "Crear clave API" + }, + "role": { + "XROAD_REGISTRATION_OFFICER": "Oficial de registro", + "XROAD_SECURITYSERVER_OBSERVER": "Observador del servidor", + "XROAD_SECURITY_OFFICER": "Oficial de seguridad", + "XROAD_SERVICE_ADMINISTRATOR": "Administrador de servicio", + "XROAD_SYSTEM_ADMINISTRATOR": "Administrador de sistema" + }, + "edit": { + "roleRemoveOnly": "(solo eliminar)" + }, + "table": { + "action": { + "edit": { + "button": "Editar", + "dialog": { + "message": "Roles asociados con la clave API:", + "title": "Editar clave API (id: {id})" + }, + "success": "Clave API con id {id} guardada" + }, + "revoke": { + "button": "Revocar la clave", + "confirmationDialog": { + "message": "¿Estás seguro de que quieres revocar la clave API con ID {ID}?", + "title": "Confirmar?" + }, + "success": "Clave API con id {id} revocada con éxito" + } + }, + "header": { + "id": "IDENTIFICACIÓN", + "roles": "Roles" + } + } + }, + "backup": { + "deleteBackup": { + "dialog": { + "confirmation": "¿Estás seguro de que quieres eliminar la copia de seguridad {archivo}?", + "title": "Confirmar" + }, + "success": "Copia de seguridad {file} eliminada" + }, + "restoreFromBackup": { + "dialog": { + "confirmation": "¿Estás seguro de que quieres restaurar desde {archivo}?", + "title": "Confirmar" + }, + "success": "Configuración restaurada desde {archivo}" + }, + "createBackup": { + "button": "Configuración de copia de seguridad.", + "messages": { + "success": "Copia de seguridad {archivo} creada correctamente", + "localConfWarning": "¡Advertencia! El archivo \"/etc/xroad/services/local.conf\" utilizado para las anulaciones de configuración está en desuso y ya no se incluye en las copias de seguridad. El archivo \"/etc/xroad/services/local.properties\" debe usarse en su lugar." + } + }, + "uploadBackup": { + "button": "Subir copia de seguridad", + "confirmationDialog": { + "confirmation": "El archivo {name} ya existe, ¿estás seguro de que quieres sobrescribirlo?", + "title": "El archivo ya existe" + }, + "success": "Copia de seguridad {archivo} cargada correctamente" + } + }, + "cert": { + "activateSuccess": "El certificado ha sido activado", + "certDeleted": "Certificado eliminado", + "certificate": "Certificado", + "deleteCertConfirm": "¿Estás seguro de que quieres eliminar este certificado?", + "deleteCertTitle": "Eliminar certificado?", + "disableSuccess": "El certificado ha sido deshabilitado", + "disabled": "Deshabilitado", + "expires": "Expira", + "hashInfo": "Hash (SHA-256)", + "inUse": "en uso", + "keyUsage": { + "CRL_SIGN": "Firma de CRL", + "DATA_ENCIPHERMENT": "Cifrado de Datos", + "DECIPHER_ONLY": "Descifrado solamente", + "DIGITAL_SIGNATURE": "Firma digital", + "ENCIPHER_ONLY": "SOLO CIFRADO", + "KEY_AGREEMENT": "Acuerdo clave", + "KEY_CERT_SIGN": "Certificado de firma", + "KEY_ENCIPHERMENT": "Clave de cifrado", + "NON_REPUDIATION": "No repudio" + }, + "rsaExp": "Exponente de clave pública de RSA", + "rsaModulus": "Módulo de clave pública RSA", + "ecParameters": "Parámetros de clave pública de la CE", + "ecPoint": "Punto de clave pública de la CE", + "serialNumber": "Número de serie", + "signCertificate": "Firmar certificado", + "state": "Estado" + }, + "certificateProfile": { + "COMMON_NAME": "Nombre común (CN)", + "COUNTRY_CODE": "Código de país (c)", + "INSTANCE_IDENTIFIER": "Identificador de instancia (c)", + "INSTANCE_IDENTIFIER_O": "Identificador de instancia (O)", + "MEMBER_CLASS": "Clase miembro (o)", + "MEMBER_CLASS_BC": "Clase miembro (BC)", + "MEMBER_CLASS_OU": "Clase miembro (OU)", + "MEMBER_CODE": "Código de miembros (CN)", + "MEMBER_CODE_SN": "Código de miembros (SN)", + "ORGANIZATION_NAME": "Nombre de la organización (o)", + "ORGANIZATION_NAME_CN": "Nombre de la organización (CN)", + "SERIAL_NUMBER": "Número de serie", + "SERIAL_NUMBER_SN": "Número de serie (SN)", + "SERVER_CODE": "Código de servidor (CN)", + "SERVER_DNS_NAME": "Nombre DNS del servidor (CN)", + "SUBJECT_ALTERNATIVE_NAME": "Nombre alternativo de sujeto (SAN)" + }, + "client": { + "action": { + "delete": { + "confirmText": "¿Estas seguro que deseas eliminar este cliente?", + "confirmTitle": "Eliminar cliente", + "success": "Cliente eliminado" + }, + "makeOwner": { + "button": "Convertir en propietario", + "confirmText1": "¿Desea convertir al miembro siguiente en el nuevo miembro Propietario de este Servidor de Seguridad?", + "confirmText2": "Al presionar el botón \"Convertir en propietario\" a continuación, se enviará una solicitud para cambiar el propietario a la autoridad gobernante de X-ROAD.", + "confirmTitle": "Convertir miembro en propietario", + "success": "Propietario modificado" + }, + "removeOrphans": { + "cancelButtonText": "No", + "confirmText": "La clave y el certificado de firma asociados con el cliente eliminado no tienen usuarios. Eliminar la clave y el certificado?", + "confirmTitle": "Eliminación de clave y certificado", + "success": "Certificado eliminado" + }, + "unregister": { + "confirmText": "¿Quieres quitar el registro a este cliente?", + "confirmTitle": "Cliente no registrado", + "success": "Se quitó el registro al cliente" + }, + "disable": { + "confirmText": "¿Quieres deshabilitar a este cliente?", + "confirmTitle": "Deshabilitar el cliente", + "success": "Cliente deshabilitado en progreso" + }, + "enable": { + "confirmText": "Quieres habilitar a este cliente?", + "confirmTitle": "Habilitar el cliente", + "success": "Habilitación del cliente en progreso" + } + }, + "id": "IDENTIFICACIÓN", + "member": "Miembro", + "memberClass": "Clase miembro", + "memberCode": "Código miembro", + "memberName": "Nombre de miembro", + "name": "Nombre", + "owner": "Propietario", + "status": "Estado", + "statusText": { + "deletionInProgress": "Eliminación en progreso", + "globalError": "Error global", + "registered": "REGISTRADO", + "registrationInProgress": "Registro en progreso", + "saved": "Guardado", + "disabled": "DESHABILITADO", + "disablingInProgress": "Deshabilitar en progreso", + "enablingInProgress": "Habilitación en progreso" + }, + "subsystemCode": "Código de subsistema", + "unknownMember": "Miembro no conocido" + }, + "clients": { + "action": { + "register": { + "confirm": { + "text": "¿Está seguro de que desea enviar una solicitud de registro del cliente?", + "title": "Registre al cliente" + }, + "success": "Solicitud de registro del cliente enviada correctamente" + } + } + }, + "csr": { + "addKey": "Agregar clave", + "certificationService": "Servicio de certificación", + "client": "Cliente", + "csrDetails": "Detalles de CSR", + "csrFormat": "Formato CSR", + "eabCredRequired": "La autoridad de certificación seleccionada requiere vinculación de cuenta externa para ACME, pero las faltan credenciales en la configuración.", + "failedFetchAcmeMetadata": "No se logró obtener metadatos de ACME para la autoridad de certificación seleccionada, esto puede causar errores en los próximos pasos.", + "generateCsr": "Generar CSR", + "helpCertificationService": "Autoridad de certificación (CA) que emitirá el certificado.", + "helpClient": "Miembro de X-ROAD para el cual se emitirá el certificado.", + "helpCsrFormat": "Formato de la solicitud de firma de certificado (CSR) según los requisitos de la CA.", + "helpUsage": "Política de uso del certificado: firma de mensajes o autenticación del Servidor de Seguridad.", + "saveInfo": "Genere un nuevo CSR y guárdelo en un lugar seguro.", + "usage": "Uso", + "orderAcmeCertificate": "Solicitar un certificado del Servidor ACME con el CSR generado e importar el certificado devuelto al token." + }, + "customValidation": { + "invalidEndpoint": "El Endpoint contiene caracteres ilegales", + "invalidUrl": "URL no es válida", + "invalidXrdIdentifier": "El valor del identificador contiene caracteres ilegales", + "requiredIf": "Se requiere el campo {fieldName}" + }, + "diagnostics": { + "addOnStatus": { + "messageLogDisabled": "Deshabilitado por configuración" + }, + "globalConfiguration": { + "configurationStatus": { + "ERROR_CODE_CANNOT_DOWNLOAD_CONF": "No se puede descargar la configuración global. Verifique la conexión de red.", + "ERROR_CODE_EXPIRED_CONF": "La configuración global descargada ha expirado.", + "ERROR_CODE_INTERNAL": "Se produjo un error interno.", + "ERROR_CODE_INVALID_SIGNATURE_VALUE": "Valor de firma no válido.", + "ERROR_CODE_MISSING_PRIVATE_PARAMS": "La configuración global descargada no contenía parámetros privados", + "ERROR_CODE_UNINITIALIZED": "El cliente de configuración se está inicializando", + "SUCCESS": "Exito", + "UNKNOWN": "Descnocido" + }, + "title": "Configuración global" + }, + "javaVersion": { + "earliest": "Versión más reciente compatible", + "latest": "Última versión compatible", + "notSupported": "La versión actual de Java no es compatible", + "ok": "Correcto", + "title": "Versión java", + "vendor": "Nombre del proveedor" + }, + "mailNotificationConfiguration": { + "title": "Estado de notificación de correo", + "failureEnabled": "Notificaciones de falla", + "successEnabled": "Notificaciones de éxito", + "configuration": "Configuración del servidor de correo", + "recipientsEmails": "Correos electrónicos de los destinatarios", + "enabled": { + "true": "Habilitado", + "false": "Deshabilitado" + }, + "confStatus": { + "true": "Configurado", + "false": "Configuración incompleta" + } + }, + "message": "Mensaje", + "nextUpdate": "Siguiente actualización", + "ocspResponders": { + "certificationService": "Servicio de certificación:", + "ocspStatus": { + "ERROR_CODE_OCSP_CONNECTION_ERROR": "Incapaz de conectarse al Servicio OCSP Responder", + "ERROR_CODE_OCSP_FAILED": "No se puede obtener la respuesta del Servicio OCSP Responder", + "ERROR_CODE_OCSP_RESPONSE_INVALID": "Incapaz de analizar la respuesta del Servicio OCSP Responder", + "ERROR_CODE_OCSP_RESPONSE_UNVERIFIED": "No se puede verificar la respuesta del Servicio OCSP Responder", + "ERROR_CODE_OCSP_UNINITIALIZED": "Solicitud de estado aún no enviada", + "SUCCESS": "Exito", + "UNKNOWN": "Desconocido" + }, + "title": "Servicio OCSP Responder" + }, + "previousUpdate": "Actualización anterior", + "serviceUrl": "URL de servicio", + "status": "Estado", + "timestamping": { + "timestampingStatus": { + "ERROR_CODE_INTERNAL": "Se produjo un error interno", + "ERROR_CODE_MALFORMED_TIMESTAMP_SERVER_URL": "URL del servidor de sellado de tiempo malformado. Revise la URL.", + "ERROR_CODE_TIMESTAMP_REQUEST_TIMED_OUT": "Tiempo de espera de conexión agotado. Verifique la conexión de red con el proveedor de configuración global.", + "ERROR_CODE_TIMESTAMP_UNINITIALIZED": "Conexión OK, aún no se realiza la solicitud de sellado de tiempo", + "SUCCESS": "Exito", + "UNKNOWN": "Unknown" + }, + "title": "Sellado de tiempo" + }, + "encryption": { + "status": { + "false": "Deshabilitado", + "true": "Habilitado" + }, + "statusTitle": "Estado de cifrado:", + "backup": { + "title": "Cifrado de copia de seguridad", + "configuredKeyId": "ID de clave configurada" + }, + "messageLog": { + "archive": { + "title": "Cifrado de archivo de registro de mensajes", + "groupingTitle": "Regla de agrupación:", + "memberIdentifier": "Identificador de miembro", + "keyId": "ID de clave", + "defaultKeyNote": "Este miembro está configurado para usar la clave de cifrado predeterminada de los servidores. Para una seguridad adicional, considere definir una clave específica para ser utilizada." + }, + "database": { + "title": "Cifrado de la base de datos del registro de mensajes" + } + } + } + }, + "endpoints": { + "addEndpoint": "Agregar Endpoint", + "all": "ALL", + "deleteEndpointText": "¿Estás seguro que deseas eliminar este Endpoint?", + "deleteSuccess": "Endpoint eliminado con éxito", + "deleteTitle": "Eliminar el Endpoint", + "details": "Detalles del Endpoint", + "editSuccess": "Cambios en el Endpoint guardado con éxito", + "endpointHelp1": "Las rutas son relativas a la ruta base de API, p.'/Pets'. El asterisco (*) se puede usar como un comodín", + "endpointHelp2": "* = coincidir con un segmento de ruta.", + "endpointHelp3": "** = coincidir cero o más segmentos, p.'/mascotas/**'.", + "endpointHelp4": "Los parámetros de la ruta deben reemplazarse con un asterisco, p.'/PETS/{id}/Images' => '/Pets/*/Images'.", + "httpRequestMethod": "Método de solicitud HTTP", + "path": "Ruta", + "saveNewEndpointSuccess": "Nuevo Endpoint creado con éxito" + }, + "error_code": { + "accessright_not_found": "Derecho de acceso no encontrado", + "acme": { + "eab_credentials_missing": "Faltan las credenciales de vinculación de Cuenta Externa, son requeridas", + "eab_secret_length": "Longitud inválida del secreto base64 de la vinculación de la cuenta externa", + "account_key_pair_error": "Falló el par de claves para la cuenta del servidor ACME", + "account_keystore_password_missing": "Falta la contraseña del almacén de claves de la cuenta ACME desde el archivo de configuración acme.yml", + "fetching_metadata_error": "Error al obtener los metadatos del servidor ACME. Es posible que el servidor ACME no se encuentre accesible", + "account_creation_failure": "La creación de una cuenta en el servidor ACME falló. Si se requiere unión de cuenta externa, verifique que las credenciales correctas estén configuradas en acme.yml", + "order_creation_failure": "La creación de un nuevo pedido en el servidor ACME falló", + "order_finalization_failure": "Finalizar el pedido en el servidor ACME falló", + "http_challenge_file_creation": "La creación del archivo de desafío HTTP de la creación de ACME falló", + "http_challenge_file_deletion": "Eliminar el archivo de desafío ACME HTTP falló", + "http_challenge_missing": "Actualmente, X-Road solo admite el desafío HTTP, pero este no está disponible entre las opciones posibles del servidor ACME.", + "challenge_trigger_failure": "Falló la solicitud al servidor ACME para validar el desafío", + "authorization_failure": "La autorización falló. Generalmente relacionado con una falla de validación de desafío que se requiere para probar la propiedad del dominio", + "authorization_wait_failure": "Falló la espera para que se complete la Autorización", + "certificate_failure": "Obtener el certificado del servidor ACME", + "certificate_wait_failure": "Falló la espera para la creación del nuevo Certificado" + }, + "action_not_possible": "La acción no es posible", + "additional_member_already_exists": "Ya existe miembro adicional", + "anchor_already_exists": "Ancla ya existe", + "anchor_file_not_found": "Archivo Ancla no encontrado", + "anchor_not_found": "Ancla no encontrado", + "anchor_upload_failed": "Falló la carga del Ancla", + "api_key_not_found": "Clave de API no encontrada", + "auth_cert_not_supported": "El certificado de autenticación no es compatible", + "backup_file_not_found": "Archivo de respaldo no encontrado", + "backup_generation_failed": "Falló la generación de copias de seguridad", + "backup_restore_interrupted": "Restauración de copia de seguridad interrumpida", + "base_endpoint_not_found": "Endpoint base no encontrado", + "ca_cert_status_processing_failure": "El procesamiento de estado del certificado de CA falló", + "cannot_delete_owner": "No se puede eliminar al propietario", + "cannot_register_owner": "No se puede registrar al propietario", + "cannot_unregister_owner": "No se puede anular el propietario", + "cert_wrong_usage": "Uso incorrecto de certificado", + "certificate_already_exists": "El certificado ya existe", + "certificate_authority_not_found": "Autoridad de certificado no encontrada", + "certificate_id_not_found": "ID de certificado no encontrado", + "certificate_not_found": "Certificado no encontrado", + "certificate_profile_instantiation_failure": "Instanciación del perfil de certificado fallido", + "client_already_exists": "El cliente ya existe", + "client_not_deleted": "No se puede eliminar las claves, certificados y CSRs, porque pertenecen a un cliente existente", + "client_not_found": "cliente no encontrado", + "conf_download_failed": "Falló la descarga de la configuración", + "conf_verification": { + "anchor_not_for_external_source": "El Ancla apunta a una fuente de configuración interna. Solo se admiten Anclas de fuentes de configuración externa como Anclas de confianza.", + "missing_private_params": "Fallado de importación del Ancla de configuración: archivo de Ancla no válido", + "other": "La configuración de la fuente no pasó la verificación", + "outdated": "La configuración de la fuente está desactualizada", + "signature_invalid": "La firma de la configuración no se puede verificar", + "unreachable": "No es posible comunicarse con la fuente de configuración, verifique la URL de origen en el archivo de Ancla cargado" + }, + "core": { + "Server": { + "InternalError": "Error interno", + "ServerProxy": { + "ServiceFailed": { + "HttpError": "Error HTTP", + "SslAuthenticationFailed": "La autenticación SSL falló" + }, + "UnknownService": "Servicio desconocido" + } + }, + "Signer": { + "CertNotFound": "No se encuentra la certificación", + "KeyNotFound": "No se encuentra la clave", + "TokenNotAvailable": "Token no está disponible", + "TokenNotFound": "No se encuentra el token", + "UnknownMember": "X -Road Core - Signer: miembro desconocido" + } + }, + "csr_not_found": "CSR no encontrado", + "diagnostic_request_failed": "Falló la solicitud de diagnóstico", + "duplicate_accessright": "Derecho de acceso duplicado", + "endpoint_already_exists": "El Endpoint ya existe", + "endpoint_not_found": "Endpoint no encontrado", + "generate_backup_interrupted": "Generación de copia de seguridad interrumpida", + "global_conf_download_request_failed": "La solicitud de descarga de configuración global falló", + "global_conf_outdated": "La configuración global está desactualizada", + "gpg_key_generation_failed": "Falló la generación GPG KeyPair", + "gpg_key_generation_interrupted": "Generación de GPG interrumpida", + "identifier_not_found": "Identificador no encontrado", + "illegal_generated_endpoint_remove": "La eliminación del Endpoint generado no está permitido", + "illegal_generated_endpoint_update": "No se permite actualizar el Endpoint generado", + "import_internal_cert_failed": "Importación de certificado interno fallido", + "internal_anchor_upload_invalid_instance_id": "El Ancla tiene una identificación de instancia no válida", + "internal_key_cert_interrupted": "Certificado de clave interna interrumpida", + "invalid_backup_file": "Archivo de copia de seguridad no válido", + "invalid_cert": "Certificado no válido", + "invalid_characters_pin": "PIN tiene caracteres no válidos", + "invalid_distinguished_name": "El nombre distinguido (DN) no es válido", + "invalid_dn_parameter": "Parámetro DN no válido", + "invalid_filename": "Nombre de archivo no válido", + "invalid_https_url": "URL no usa HTTPS", + "invalid_init_params": "Parámetros de inicialización no válidos", + "invalid_instance_identifier": "Identificador de instancia no válido", + "invalid_member_class": "Clase de miembro inválido", + "invalid_service_client_id": "ID de cliente no válido", + "invalid_service_url": "URL de servicio no válido", + "invalid_wsdl": "WSDL no válido", + "invalid_wsdl_service_identifier": "Identificador de servicio WSDL no válido", + "key_and_cert_generation_failed": "Falló la generación de clave y certificado", + "key_not_found": "Clave no encontrada", + "local_group_code_already_exists": "El código de grupo local ya existe", + "local_group_member_already_exists": "Miembro del grupo local ya existe", + "local_group_member_not_found": "Miembro del grupo local no encontrado", + "local_group_not_found": "Grupo local no encontrado", + "malformed_anchor": "Ancla malformada", + "malformed_url": "URL malformada", + "management_request_sending_failed": "Envío de solicitud de administración fallida", + "member_already_owner": "El miembro ya es el propietario", + "member_class_exists": "La clase de miembro ya existe", + "member_class_not_provided": "No se proporciona la clase de miembros", + "member_code_exists": "Existe el código miembro", + "member_code_not_provided": "No se proporciona código miembro", + "missing_parameter": "Parámetro faltante", + "openapi_parsing_error": "Error al analizar la descripción de OpenApi3", + "orphans_not_found": "Las claves huérfanas, certificados y/o CSR que pertenecen al cliente dado no fueron encontrados", + "pin_code_exists": "Existe el código PIN", + "pin_code_not_provided": "El código PIN no se proporciona", + "pin_incorrect": "Pin incorrecto. Por favor intente de nuevo.", + "pin_min_char_classes_count": "Recuento mínimo de clases de caracteres para el PIN", + "pin_min_length": "Longitud mínima", + "process_failed": "Falló el proceso", + "process_not_executable": "El proceso no se puede ejecutar", + "resource_read_failed": "No se pudo leer el recurso", + "restore_process_failed": "El proceso de restauración falló", + "server_already_fully_initialized": "El servidor ya está completamente inicializado", + "server_code_exists": "El código del servidor existe", + "server_code_not_provided": "El código del servidor no se proporciona", + "service_already_exists": "Ya existe el servicio", + "service_client_not_found": "Cliente de servicio no encontrado", + "service_code_already_exists": "El código de servicio ya existe", + "service_description_not_found": "Descripción del servicio no encontrada", + "service_not_found": "servicio no encontrado", + "sign_cert_not_supported": "El certificado de firma no es compatible", + "signer_not_reachable": "El firmante no es actualmente accesible. Consulte el registro del firmante para más detalles.", + "software_token_init_failed": "Falló la inicialización del token de software", + "timestamping_service_already_configured": "El servicio de sellado de tiempo ya está configurado", + "timestamping_service_not_found": "Servicio de sellado de tiempo no encontrado", + "token": { + "malformed_csr": "Los datos de CSR están malformados" + }, + "token_not_active": "El token no está activo", + "token_not_found": "Token no encontrado", + "unsupported_openapi_version": "Versión OpenAPI no soportada. Solo las versiones 3.0.x y 3.1.0 son actualmente compatibles.", + "url_already_exists": "URL ya existe", + "validation_failure": "Falla de validación", + "warnings_detected": "Advertencias detectadas", + "weak_pin": "PIN débil", + "wrong_key_usage": "Uso de la clave incorrecta", + "wrong_servicedescription_type": "Tipo de descripción del servicio incorrecto", + "wsdl_download_failed": "Falló la descarga de WSDL", + "wsdl_exists": "WSDL existe", + "wsdl_validator_interrupted": "Validador de WSDL interrumpido", + "wsdl_validator_not_executable": "El validador de WSDL no es ejecutable" + }, + "fields": { + "addClient": { + "memberClass": "Clase miembro", + "memberCode": "Código miembro", + "subsystemCode": "Código de subsistema" + }, + "C": "Código del país", + "clientAdd": { + "client": { + "memberCode": "Código miembro", + "subsystemCode": "Código de subsistema" + } + }, + "CN": "Nombre de DNS del servidor", + "confirmPin": "Confirmar PIN", + "csr": { + "certService": "Servicio de certificación", + "client": "Cliente", + "csrFormat": "Formato CSR", + "usage": "Uso", + "certificationService": "Servicio de certificación" + }, + "dns": "DNS", + "keys": { + "name": "Nombre" + }, + "O": "Nombre de la organización", + "password": "Contraseña", + "path": "Ruta", + "pin": "PIN", + "memberClass": "Clase miembro", + "memberCode": "Código miembro", + "securityServerCode": "Código de servidor de seguridad", + "securityServerAddress": "Dirección del servidor de seguridad", + "serialNumber": "Número de serie", + "serviceCode": "Código de servicio", + "serviceDescriptionAdd": { + "restServiceCode": "Código de servicio" + }, + "serviceDescriptionUpdate": { + "newRestServiceCode": "Código de servicio" + }, + "serviceTimeout": "Se agotó el tiempo de espera", + "serviceType": "Tipo de servicio", + "serviceUrl": "Url", + "subjectAltName": "Nombre alternativo", + "token": { + "friendlyName": "Nombre amistoso", + "newPin": "Nuevo PIN", + "newPinConfirm": "Confirmar el nuevo PIN", + "oldPin": "PIN" + }, + "tokenPin": "PIN", + "url": "Url", + "username": "Nombre de usuario", + "certificationService": "Servicio de certificación" + }, + "footer": { + "copyright": { + "company": "Instituto Nordico para Soluciones de Introperabilidad (NIIS)", + "licenceInfo": "Información de la licencia", + "title": "Derechos de autor" + }, + "software": { + "feedback": "Comentario", + "title": "Software", + "versionPrefix": "X-ROAD" + } + }, + "global": { + "name": "Nombre", + "appTitle": "Servidor de seguridad X-ROAD" + }, + "general": { + "instance": "Instancia", + "memberClass": "Clase miembro", + "memberCode": "Código miembro", + "name": "Nombre", + "subsystem": "subsistema", + "subsystemCode": "Código de subsistema", + "type": "Tipo" + }, + "globalAlert": { + "backupRestoreInProgress": "La configuración del servidor de seguridad se está restaurando desde una copia de seguridad. El proceso fue iniciado {starttime}", + "globalConfigurationInvalid": "La configuración global está vencida", + "secondaryNode": "Está en un nodo secundario en un clúster de servidor de seguridad. La modificación de la configuración está deshabilitada.", + "softTokenPinNotEntered": "Ingrese el PIN token de software", + "certificateRenewalJobFailure": "El último trabajo de renovación del certificado ha fallado.", + "certificateRenewalJobFailureAuth": "Certificado de autenticación fallido (s):", + "certificateRenewalJobFailureSign": "Certificado (s) de firma fallido:", + "navigateToKeysPage": "Consulte la página de claves y certificados para obtener más detalles" + }, + "initialConfiguration": { + "anchor": { + "generated": "Generado", + "hash": "Hash (SHA-224)", + "info": "Importe el Ancla de configuración proporcionado por el administrador del servidor central.", + "title": "Ancla de la configuración" + }, + "member": { + "info": "Defina el miembro que actuará como propietario del servidor de seguridad:", + "serverCodeHelp": "Código del servidor de seguridad que identifica de manera única a este servidor de seguridad dentro de todos los servidores de seguridad del mismo propietario.", + "title": "Miembro del propietario" + }, + "noInitializationStatus": "No hay estado de inicialización disponible", + "noPermission": "Este servidor de seguridad no está inicializado actualmente, comuníquese con un administrador para hacer la configuración inicial", + "pin": { + "confirmPin": "Confirmar PIN", + "info1": "El token de software es el lugar donde se almacenan las claves de autenticación del servidor de seguridad. Defina un PIN para iniciar sesión en el token de software.", + "info2": "Se recopila toda la información requerida, presione el botón Enviar para inicializar el servidor de seguridad.", + "info3": "Una vez que se complete la inicialización, debe finalizar la configuración del Servidor de Seguridad; simplemente haga clic en el botón Configurar en la notificación emergente que aparecerá en unos momentos", + "pin": "PIN", + "pinMatchError": "La confirmación de PIN no coincide", + "title": "PIN" + }, + "success": "Servidor inicializado", + "title": "Configuración inicial", + "warning": { + "init_server_id_exists": "La identificación del servidor existe", + "init_server_owner_exists": "El propietario del servidor existe", + "init_servercode_exists": "El codigo de servidor existe", + "init_software_token_initialized": "El token de software está inicializado", + "init_unregistered_member": "Se ha quitado el registro del miembro" + } + }, + "internalServers": { + "certHash": "Certificado hash (SHA/1)", + "connTypeUpdated": "Tipo de conexión actualizado", + "connectionInfo": "El tipo de conexión para servidores en el rol del proveedor de servicios se establece en la pestaña Servicios por la URL del servicio (HTTP/HTTPS).", + "connectionType": "Tipo de conexión", + "ssCertTitle": "Certificado de servidor de seguridad", + "tlsTitle": "Certificado de TLS del sistema de información" + }, + "keys": { + "addKey": "Agregar clave", + "authDetailsTitle": "Detalles clave de autenticación", + "authKeyCert": "Claves y certificados de autenticación", + "authNotSupported": "Clave de autenticación no compatible", + "auth_key_with_registered_cert_warning": "La clave tiene certificados a los cuales se les debe quitar el desregistro antes de su eliminación. ¿Desea quitar el registro y proceder con la eliminación de los certificados asociados y la clave de la configuración del servidor? ID de la clave:", + "certMarkedForDeletion": "Certificado marcado para la eliminación", + "certRegistrationInfo": "Nombre DNS del servidor de seguridad o dirección IP", + "certStatus": { + "deletion": "Eliminación en progreso", + "globalError": "Error global", + "onlyInHWToken": "Solo en token", + "registered": "Registrado", + "registration": "Registro en progreso", + "saved": "Guardado" + }, + "certificateRegistered": "Solicitud de registro de certificado enviado correctamente", + "certificateUnregistered": "Solicitud de eliminación de registro de certificado enviado correctamente", + "csrDeleted": "CSR eliminado", + "deleteCsr": "Eliminar CSR", + "deleteCsrText": "¿Estás seguro que deseas eliminar este CSR?", + "deleteCsrTitle": "¿Eliminar CSR?", + "deleteKeyText": "¿Está seguro de que desea eliminar esta clave y todos los certificados asociados de la configuración del servidor?", + "deleteTitle": "¿Eliminar la calve?", + "detailsTitle": "Detalles de clave", + "expires": "Expira", + "friendlyName": "Nombre amistoso", + "generateCsr": "Generar CSR", + "globalErrors": "Errores globales", + "gotIt": "Entiendo", + "helpTextApi": "Las claves API se utilizan para autenticar las llamadas de API a la API REST de administración del servidor de seguridad.Las claves API están asociadas con roles que definen los permisos otorgados a la clave API.", + "helpTextKeys": "La clave de autenticación y el certificado certifican la autenticidad de un servidor de seguridad. Se utilizan para la autenticación en conexiones entre servidores de seguridad. La clave de firma y el certificado certifican la autenticidad de un miembro de X-Road. Se utilizan para firmar y verificar la integridad de los mensajes mediados.", + "helpTextSS": "El certificado TLS del servidor de seguridad se utiliza en conexiones entre el servidor de seguridad y un sistema de información. El certificado TLS interno se utiliza como certificado de cliente y servidor dependiendo de los roles del servidor de seguridad y el sistema de información.", + "helpTitleApi": "Claves de API", + "helpTitleKeys": "Claves de autenticación y firma", + "helpTitleSS": "Certificado TLS del servidor de seguridad", + "id": "IDENTIFICACIÓN", + "importCert": "Importar certificado", + "importCertSuccess": "El Certificado se cargó con éxito", + "incorrectPin": "PIN incorrecto. Por favor intente de nuevo.", + "keyDeleted": "Clave eliminada", + "keyId": "ID de clave:", + "keyInfo": "Información de la clave", + "keyLabelInput": "Etiqueta de la clave", + "keySaved": "Clave guardada", + "label": "Etiqueta:", + "logIn": "Acceso", + "logOut": "Finalizar la sesión", + "logOutText": "¿Finalizar la sesión del token?", + "logOutTitle": "Finalizar la sesión", + "loggedIn": "Iniciado sesión en token", + "loggedOut": "Sesión de token finalizada", + "noIssues": "No hay problemas", + "ocsp": "OCSP", + "ocspStatus": { + "disabled": "Deshabilitado", + "expired": "Expirado", + "good": "Bueno", + "revoked": "Revocado", + "suspended": "Suspendido", + "unknown": "Desconocido" + }, + "orderAcmeCertificate": "Solicitud de Certificado", + "acmeCertOrdered": "Certificado solicitado con éxito", + "readOnly": "Solo lectura:", + "keyAlgorithm": "Algoritmo de clave:", + "registrationRequest": "Solicitud de registro", + "renewal": "Renovación automática", + "request": "Solicitud", + "signDetailsTitle": "Detalles de la clave de firma", + "signKeyCert": "Firmar claves y certificados", + "status": "Estado", + "token": "Token:", + "tokenDetails": "Detalles del token", + "tokenId": "ID de token:", + "tokenInfo": "Información token", + "tokenPin": "PIN", + "tokenSaved": "Token guardado", + "tokenStatus": { + "active": "", + "available": "", + "inactive": "Inactivo", + "unavailable": "Bloqueado", + "unsaved": "No guardado" + }, + "type": "Tipo:", + "unknown": "Tipo de clave no especificado", + "unregisterError": "No se pudo registrar el certificado. ¿Deseas continuar con la eliminación de certificados de todos modos?", + "unregisterText": "¿Quieres quitar el registro de este certificado?", + "unregisterTitle": "Quitar registro de certificado" + }, + "localGroup": { + "accessDate": "Derechos de acceso dados", + "addLocalGroup": "Agregar grupo local", + "addMembers": "Agregar miembros", + "addSelected": "Agregar seleccionado", + "code": "Código", + "deleteText": "¿Estás seguro de que quieres eliminar este grupo?", + "deleteTitle": "¿Eliminar el grupo?", + "descSaved": "Descripción guardada", + "description": "Descripción", + "groupDeleted": "Grupo eliminado", + "groupMembers": "Miembros del grupo", + "id": "Identificación", + "localGroup": "Grupo local", + "localGroupAdded": "Grupo local agregado", + "name": "Nombre de miembro", + "noResults": "Su búsqueda no encontró resultados.", + "removeAllText": "¿Estás seguro de que quieres eliminar a todos los miembros de este grupo?", + "removeAllTitle": "¿Remover a los miembros?", + "removeText": "¿Estás seguro de que quieres eliminar a este miembro?", + "removeTitle": "¿Eliminar miembro?", + "searchOptions": "Opciones de búsqueda" + }, + "localGroups": { + "addGroup": "Agregar grupo", + "code": "Código", + "description": "Descripción", + "memberCount": "Cantidad de miemros", + "updated": "Actualizado" + }, + "login": { + "errorMsg401": "Nombre de usuario o contraseña incorrectos", + "generalError": "Error de inicio de sesion. Por favor intente de nuevo.", + "logIn": "Acceso", + "logOut": "Finalizar la sesión" + }, + "logout": { + "idleWarning": "Ha estado inactivo durante 30 minutos y su sesión ha finalizado. Por razones de seguridad, se desconectará.", + "sessionExpired": "Sesión expirada" + }, + "noData": { + "loading": "Cargando ... por favor espera", + "noBackUpEncryptionKeys": "No hay claves de cifrado de copia de seguridad configuradas", + "noBackups": "No hay copias de seguridad todavía", + "noCertificate": "Sin certificado", + "noCertificates": "Sin certificados", + "noClientData": "Sin datos del cliente", + "noCertificateAuthorities": "No hay autoridades de certificado", + "noData": "Sin datos", + "noLocalGroups": "No hay grupos locales", + "noMatches": "Sin criterios de coincidencia de elementos", + "noServices": "Sin servicios", + "noServiceClients": "No hay clientes de servicio", + "noTimestampingServices": "Sin servicios de sellado de tiempo", + "noTokens": "No hay Tokens" + }, + "serviceClientType": { + "globalGroup": "Grupo global", + "localGroup": "Grupo local", + "subsystem": "Subsistema" + }, + "serviceClients": { + "accessRights": "Derechos de acceso", + "accessRightsGiven": "Derechos de acceso otorgados", + "addSelected": "Agregar seleccionado", + "addService": "Agregar servicio", + "addServiceClient": "Agregar sujeto", + "addServiceClientAccessRightSuccess": "Derechos de acceso agregados con éxito", + "addServiceClientTitle": "Agregar un Sujeto", + "id": "IDENTIFICACIÓN", + "memberGroupCodeLabel": "Miembro/código de grupo", + "memberGroupStep": "Miembro / grupo", + "name": "Nombre del miembro / Descripción del grupo", + "noAccessRights": "Cliente no tiene derechos de acceso", + "noAvailableServices": "No hay servicios disponibles", + "removeAll": "Eliminar todo", + "removeAllText": "¿Está seguro de que desea eliminar todos los derechos de acceso de este cliente de servicio?", + "removeAllTitle": "Eliminar todos los derechos de acceso?", + "removeOneText": "¿Está seguro de que desea eliminar los derechos de acceso de este cliente de servicio?", + "removeOneTitle": "Eliminar los derechos de acceso?", + "searchPlaceHolder": "Clientes de servicio", + "serviceCode": "Código de servicio", + "serviceSelectionStep": "Código de servicio", + "servicesStep": "Servicios", + "title": "Título" + }, + "services": { + "OpenApi3Description": "Descripción Openapi3", + "addRest": "Agregar REST", + "addWsdl": "Agregar WSDL", + "applyToAll": "Aplicar a todos en WSDL", + "deleteRestText": "¿Estás seguro de que quieres eliminar este servicio REST?", + "deleteTitle": "¿Eliminar la descripción del servicio?", + "deleteWsdlText": "Estás seguro de que quieres eliminar este servicio WSDL?", + "deleted": "Descripción del servicio eliminada", + "disableNotice": "Desactivar aviso", + "disableSuccess": "Descripción del servicio Desactivado", + "disableTitle": "¿Desactivar?", + "editUrl": "Editar URL", + "enableSuccess": "Descripción del servicio habilitado", + "idGroupCode": "ID / Código de grupo", + "lastRefreshed": "Último renovado:", + "memberNameGroupDesc": "Nombre del miembro / Descripción del grupo", + "noMatches": "Sin registros coincidentes", + "openApi3Added": "Servicio OpenApi3 agregado", + "openapiDetails": "Detalles Openapi3", + "refreshed": "Actualizado", + "restAdded": "Servicio REST agregado", + "restApiBasePath": "Ruta base de API REST", + "restDetails": "Detalles del REST", + "service": "Servicio", + "serviceCode": "Código de servicio", + "serviceCodePlaceholder": "Insertar código de servicio", + "serviceSaved": "Servicio guardado", + "serviceType": "Tipo de URL", + "serviceUrl": "URL de servicio", + "service_parameters_ssl_test_warnings": { + "internal_server_ssl_error": "Falló la verificación de los certificados internos del servidor. ¿Es correcta la URL del servidor upstream y es accesible desde el Servidor de Seguridad?", + "internal_server_ssl_handshake_error": "El TLS HandShake con el servidor upstream, falta el certificado del servidor en la configuración:" + }, + "timeout": "Tiempo de espera agotado", + "timeoutSec": "Tiempo de espera (s)", + "timeoutTooltip": "La duración máxima de una solicitud al servicio, en segundos", + "tlsTooltip": "Verifique el certificado TLS cuando se establece una conexión segura", + "url": "URL", + "urlPlaceholder": "Insertar URL", + "urlTooltip": "La URL donde se dirigen las solicitudes dirigidas al servicio", + "warning": "Advertencia", + "warningCode": { + "adding_endpoints": "Agregar Endpoints:", + "adding_services": "Agregar servicios:", + "deleting_endpoints": "Eliminar Endpoints:", + "deleting_services": "Eliminar servicios:", + "wsdl_validation_warnings": "Advertencias de validación:", + "openapi_validation_warnings": "Advertencias de validación:" + }, + "verifyTls": "Verificar el certificado TLS", + "wsdlAdded": "WSDL agregado", + "wsdlDescription": "Descripción de WSDL", + "wsdlDetails": "Detalles de WSDL" + }, + "ssTlsCertificate": { + "certificateImported": "Certificado importado", + "exportCertificate": "Certificado de exportación.", + "generateCsr": "Generar CSR", + "generateInternalCsr": { + "cancel": "CANCELAR", + "done": "HECHO", + "step1": { + "description": "1) Primero, proporcione un nombre distinguido", + "label": "Nombre distinguido", + "placeholder": "Cn = miservidordeseguridad.ejemplo.com, O = mi organización, c = ee", + "tooltip": "El nombre distinguido (DN) identifica de manera única una entidad en un certificado X.509. Los siguientes tipos de atributos se encuentran comúnmente en el DN: CN = nombre común, O = nombre de la organización, C = Código de país." + }, + "step2": { + "description": "2) Genere una nueva CSR y guárdela en un lugar seguro", + "generateCSR": "Generar CSR" + }, + "title": "Generar solicitud de firma de certificado TLS" + }, + "generateKey": "Generar clave", + "generateTlsAndCertificateDialog": { + "confirmation": "¿Generar una nueva clave y certificado TLS de servidor de seguridad?", + "explanation": "El sistema generará una nueva clave TLS de servidor de seguridad y un certificado autofirmado, reemplazando la clave y el certificado existentes.", + "success": "Nuevo servidor de seguridad TLS TLS y certificado generados correctamente", + "title": "Clave TLS del servidor de seguridad" + }, + "importCertificate": "Importación de certificados", + "keyCertTitle": "Clave y certificado TLS", + "keyText": "Clave TLS interna" + }, + "stores": { + "user": { + "currentSecurityServerNotFound": "No se pudo determinar la información actual del servidor de seguridad. La respuesta de la API no es válida." + } + }, + "systemParameters": { + "approvedCertificateAuthorities": { + "table": { + "header": { + "distinguishedName": "Nombre distinguido", + "expires": "Expirar", + "ocspResponse": "Respuesta OCSP", + "acmeIpAddresses": "IP del servidor ACME" + }, + "notAvailable": "N / A", + "ocspResponse": { + "NOT_AVAILABLE": "N / A", + "OCSP_RESPONSE_GOOD": "Bueno", + "OCSP_RESPONSE_REVOKED": "Revocado", + "OCSP_RESPONSE_SUSPENDED": "Suspendido", + "OCSP_RESPONSE_UNKNOWN": "Desconocido" + } + }, + "title": "Autoridades de certificación aprobadas" + }, + "configurationAnchor": { + "action": { + "download": "Descargar", + "upload": { + "button": "Subir", + "dialog": { + "confirmation": "¿Continuar con la importación?", + "field": { + "generated": "Generado", + "hash": "Hash (SHA-224)" + }, + "info": "Detalles del Ancla de configuración:", + "success": "Ancla de configuración cargado", + "title": "Confirmar los detalles del Ancla de configuración" + } + } + }, + "table": { + "header": { + "distinguishedName": "Hash (SHA-224)", + "generated": "Generado" + } + }, + "title": "Ancla de configuración" + }, + "timestampingServices": { + "action": { + "add": { + "button": "Agregar", + "dialog": { + "info": "Servicios de sellado de tiempo de confianza:", + "success": "Servicio de sellado de tiempo agregado", + "title": "Agregar servicio de sellado de tiempo" + } + } + }, + "table": { + "action": { + "delete": { + "button": "Borrar", + "confirmation": { + "text": "¿Estás seguro de que quieres eliminar el servicio de sellado de tiempo?", + "title": "Confirmar" + }, + "success": "Servicio de sellado de tiempo eliminado con éxito" + } + }, + "header": { + "serviceURL": "URL de servicio", + "timestampingService": "Servicio de sellado de tiempo" + } + }, + "title": "Servicios de sellado de tiempo" + }, + "securityServer": { + "securityServer": "Servidor de seguridad", + "serverAddress": "Dirección del servidor", + "editDialog": { + "title": "Editar dirección del servidor de seguridad" + }, + "addressChangeInProgress": "CAMBIO EN PROCESO", + "updateSubmitted": "Cambio de dirección del servidor de seguridad enviado correctamente" + }, + "title": "Parámetros del sistema" + }, + "tab": { + "client": { + "details": "Detalles", + "internalServers": "Servidores internos", + "localGroups": "Grupos locales", + "serviceClients": "Clientes de servicio", + "services": "Servicios" + }, + "keys": { + "apiKey": "Claves de API", + "signAndAuthKeys": "Claves de firma y autenticación", + "ssTlsCertificate": "Clave TLS del servidor de seguridad" + }, + "main": { + "clients": "Clientes", + "diagnostics": "Diagnosticos", + "keys": "Claves y certificados", + "settings": "Ajustes" + }, + "services": { + "endpoints": "Endpoints", + "parameters": "Parámetros de servicio" + }, + "settings": { + "backupAndRestore": "Copia de seguridad y restauración", + "systemParameters": "Parámetros del sistema" + } + }, + "token": { + "changePin": "Cambiar el PIN", + "pinChanged": "Se cambió el PIN del token: inicie sesión en el token con el nuevo PIN", + "tokenPinPolicyHeader": "La política de PIN del token está habilitada.", + "tokenPinPolicy": "Se requiere que el PIN del token de software tenga al menos 10 caracteres ASCII provenientes de al menos tres clases de caracteres (letras minúsculas, letras mayúsculas, dígitos, caracteres especiales)." + }, + "toolbar": { + "securityServerNodeType": { + "undefined": "", + "PRIMARY": "Nodo primario", + "SECONDARY": "Nodo secundario" + } + }, + "validationError": { + "AssertFalse": "el valor debe ser 'falso'", + "AssertTrue": "el valor debe ser 'verdadero'", + "DecimalMax": "El valor numérico excede el máximo permitido", + "DecimalMin": "El valor numérico está por debajo del mínimo permitido", + "Digits": "El valor debe contener solo dígitos", + "Email": "El valor no cumple con el formato de correo electrónico", + "Future": "El valor de fecha y hora debe ser en el futuro", + "FutureOrPresent": "El valor de fecha y hora debe ser ahora o en el futuro", + "Max": "El valor numérico excede el máximo permitido", + "Min": "El valor numérico está por debajo del mínimo permitido", + "Negative": "El valor numérico debe ser inferior a cero", + "NegativeOrZero": "El valor numérico debe ser menor o igual a cero", + "NoBackslashes": "El valor no debe contener doble barras invertidas (\\)", + "NoColons": "El valor no debe contener dos puntos (:)", + "NoForwardslashes": "El valor no debe contener barra (/)", + "NoPercents": "El valor no debe contener símbolo de porcentaje (%)", + "NoSemicolons": "El valor no debe contener punto y coma (;)", + "Normalized": "El valor debe normalizarse", + "NotBlank": "El valor no debe estar en blanco", + "NotEmpty": "el valor no debe estar vacío", + "NotNull": "Se requiere valor", + "Null": "El valor debe permanecer en nulo", + "Past": "El valor de fecha y hora debe ser anterior a la actual", + "PastOrPresent": "El valor de fecha y hora debe ser ahora o anterior a la actual", + "Pattern": "el valor no coincidía con el formato requerido", + "Positive": "El valor numérico debe ser mayor que cero", + "PositiveOrZero": "El valor numérico debe ser mayor o igual a cero", + "Size": "El valor no cumple con los requisitos de longitud", + "IdentifierChars": "caracteres de identificación no válidos" + }, + "wizard": { + "addClientTitle": "Agregar cliente", + "addMemberTitle": "Agregar miembro", + "addSubsystemTitle": "Agregar subsistema", + "client": { + "addClient": "Agregar cliente", + "clientExists": "Client ya existe", + "memberClassTooltip": "Código que identifica la clase miembro (por ejemplo, agencia gubernamental, empresa privada, etc.).", + "memberCodeTooltip": "Código miembro que identifica de manera exclusiva a este miembro X-ROAD dentro de su clase miembro (por ejemplo, ID de negocio).", + "memberNameTooltip": "Nombre de la organización miembro.", + "register": "Registre al cliente", + "searchLabel": "Cliente", + "subsystemCodeTooltip": "Código del subsistema que identifica un sistema de información propiedad del miembro." + }, + "clientDetails": "Detalles del cliente", + "clientInfo1": "Especifica los detalles del Cliente que deseas agregar.", + "clientInfo2": "Si el cliente ya está existente, puedes seleccionarlo de la lista global.", + "finish": { + "acme": { + "infoLine": "Se recopila toda la información requerida. Al hacer clic en \"Enviar\", el nuevo cliente se agregará a la lista de clientes y la nueva clave y certificado aparecerán en la vista de claves y certificados. El certificado se ordenará desde el servidor ACME de CA y se importará automáticamente. Luego puedes registrar el nuevo cliente." + }, + "infoLine1": "Se recopila toda la información requerida. Al hacer clic en \"Enviar\", el nuevo cliente se agregará a la lista de clientes y la nueva clave y CSR aparecerán en la vista de claves y certificados.", + "infoLine2": "Para registrar el nuevo cliente, completa los siguientes pasos:", + "note": "Nota: Si haces clic en Cancelar, todos los datos se perderán", + "title": "Finalizar", + "todo1": "1) Enviar la CSR a una autoridad de certificación para firmar", + "todo2": "2) Una vez recibido, importa el certificado resultante a la clave correspondiente", + "todo3": "3) En este punto puedes registrar el nuevo cliente" + }, + "member": { + "info1": "Especifica los detalles del miembro que deseas agregar.", + "info2": "Si el miembro ya existe, puedes seleccionarlo de la lista global.", + "memberExists": "Miembro ya existe", + "register": "Registrar miembro", + "searchLabel": "Miembro", + "select": "Selecciona el miembro", + "title": "Detalles del miembro" + }, + "memberClass": "Clase miembro", + "memberCode": "Código miembro", + "memberName": "Nombre de miembro", + "selectClient": "Seleccionar cliente", + "selectMemberClass": "Seleccionar clase de miembro", + "signKey": { + "info": "Puedes definir una etiqueta para la clave de firma recién creada (no obligatoria)", + "keyLabel": "Etiqueta clave", + "title": "Clave de firma" + }, + "subsystem": { + "info1": "Especifica el código del subsistema que se agregará.", + "info2": "Si el subsistema ya existe, puedes seleccionarlo de la lista global.", + "registerSubsystem": "Registrar subsistema", + "searchLabel": "Subsistema", + "selectSubsystem": "Seleccionar subsistema", + "subsystemAdded": "Subsistema agregado", + "subsystemExists": "El subsistema ya existe" + }, + "subsystemCode": "Código de subsistema", + "token": { + "info": "Selecciona el token donde deseas agregar la clave de firma para el nuevo cliente. Nota: El token debe estar en estado registrado.", + "loggedIn": "Sesión iniciada", + "title": "Token", + "tokenName": "Nombre de token" + }, + "warning": { + "unregistered_member": "Miembro no registrado" + } + } +} \ No newline at end of file From f48b1b2c2ab38502eb8ffad4832581312874926a Mon Sep 17 00:00:00 2001 From: "NOONE-00X\\vfigueroa" Date: Mon, 9 Dec 2024 11:35:34 -0300 Subject: [PATCH 2/3] feat: Update Spanish translations for all modules and add Estonian support to shared-ui --- .../admin-service/ui/src/locales/es.json | 587 +++------ .../admin-service/ui/src/locales/es.json | 773 +++++------- src/shared-ui/src/index.ts | 3 +- src/shared-ui/src/locales/es.json | 1079 ++--------------- 4 files changed, 550 insertions(+), 1892 deletions(-) diff --git a/src/central-server/admin-service/ui/src/locales/es.json b/src/central-server/admin-service/ui/src/locales/es.json index 5c7d97228d..e168234ad7 100644 --- a/src/central-server/admin-service/ui/src/locales/es.json +++ b/src/central-server/admin-service/ui/src/locales/es.json @@ -2,155 +2,41 @@ "403": { "goBack": "Volver", "mainTitle": "Permiso denegado", - "text": "Parece que no tiene el permiso para ver esta página. Si cree que esto es un error, verifique si ha iniciado sesión con la cuenta correcta o comuníquese con su administrador para preguntar sobre sus permisos.", + "text": "Parece que no tienes el permiso para ver esta página. Si crees que esto es un error, verifica si has iniciado sesión en la cuenta correcta o comunícate con tu Administrador para preguntar sobre tus permisos.", "topTitle": "Denegado" }, "action": { - "activate": "Activar", - "addClient": "Agregar cliente", - "addMember": "Agregar miembro", - "addSubsystem": "Agregar subsistema", "approve": "Aprobar", - "close": "Cerca", - "confirm": "Confirmar", - "continue": "Continuar", - "copy": "Copiar", - "copyId": "Copiar identificación", - "deactivate": "Desactivar", "decline": "Rechazar", - "done": "Hecho", - "edit": "Editar", - "emptySearch": "Su búsqueda de {msg} no encontró resultados.", - "export": "Exportar", - "finish": "Finalizar", - "goToFront": "Ir al Inicio", - "next": "Siguiente", - "no": "No", - "noData": "Sin datos", - "ok": "De acuerdo", - "previous": "Anterior", - "refresh": "Actualizar", - "register": "Registro", - "remove": "Eliminar", - "removeAll": "Eliminar todo", - "save": "Ahorrar", - "search": "Buscar", - "searching": "Búsqueda...", - "submit": "Enviar", - "unregister": "No registrado", "select": "Seleccionar", "generateCsr": "Generar CSR" }, - "alert": { - "count": "Cantidad de errores similares:", - "id": "ID" - }, "apiKey": { - "createApiKey": { - "button": "Crear clave API", - "step": { - "keyDetails": { - "apiKey": "Clave de API", - "apiKeyID": "ID de Clave API", - "assignedRoles": "Roles asignados", - "createKeyButton": "Crear Clave", - "name": "Detalles Clave", - "note": "Nota: Guarde la Clave API en un lugar seguro. La clave API es visible solo en el momento de la generación de claves. No se volverá a presentar y no se puede recuperar más tarde." - }, - "roles": { - "description": "Seleccione los roles asociados con la clave API. Los roles definen los permisos otorgados a la clave API.", - "name": "Roles", - "selectRoles": "Seleccionar roles" - } - }, - "success": "Clave API creada con éxito", - "title": "Crear clave API" - }, "role": { - "XROAD_REGISTRATION_OFFICER": "Oficial de Registro", - "XROAD_SECURITY_OFFICER": "Oficial de Seguridad", - "XROAD_SYSTEM_ADMINISTRATOR": "Administrador del Sistema", "XROAD_MANAGEMENT_SERVICE": "Servicios de administración" - }, - "edit": { - "roleRemoveOnly": "(solo eliminar)" - }, - "table": { - "action": { - "edit": { - "button": "Editar", - "dialog": { - "message": "Roles asociados con la Clave API:", - "title": "Editar Clave API (id: {id})" - }, - "success": "Clave API con ID {id} guardado" - }, - "revoke": { - "button": "Revocar la Clave", - "confirmationDialog": { - "message": "¿Estás seguro de que quieres revocar la Clave API con ID {ID}?", - "title": "Confirmar" - }, - "success": "Clave API con ID {id} revocada con éxito" - } - }, - "header": { - "id": "IDENTIFICACIÓN", - "roles": "Roles" - } - } - }, - "backup": { - "createBackup": { - "button": "Generación de copia de seguridad.", - "messages": { - "success": "Copia de seguridad {archivo} creada correctamente" - } - }, - "uploadBackup": { - "button": "Subir copia de seguridad", - "confirmationDialog": { - "confirmation": "El archivo {name} ya existe, ¿estás seguro de que quieres sobrescribirlo?", - "title": "El archivo ya existe" - }, - "success": "Copia de seguridad {archivo} cargada correctamente" - }, - "deleteBackup": { - "dialog": { - "confirmation": "¿Estás seguro de que quieres eliminar la copia de seguridad {archivo}?", - "title": "Confirmar" - }, - "success": "Archivo de copia de seguridad {file} eliminado" - }, - "restoreFromBackup": { - "dialog": { - "confirmation": "¿Estás seguro de que quieres restaurar desde {archivo}?", - "title": "Confirmar" - }, - "success": "Configuración restaurada desde {archivo}" } }, "customValidation": { - "invalidUrl": "URL no es válida, ejemplos de formatos de URL válidos: 'http://www.ejemplo.com', 'https://www.ejemplo.com'", + "invalidUrl": "La URL no es válida, ejemplos de formatos de URL válidos: 'http://www.ejemplo.com', 'https://www.ejemplo.com'", "invalidIpAddress": "El campo debe contener una dirección IP o múltiples direcciones separadas por coma" }, "error_code": { - "certificate_profile_info_class_not_found": "No se encontró la clase del Perfil de Certificado (Certificate Profile Info)", + "certificate_profile_info_class_not_found": "No se encontró información sobre la clase del Perfil de Certificado", "certification_service_not_found": "Servicio de certificación no encontrado.", "configuration_not_found": "Fuente de configuración no encontrada", - "configuration_part_file_not_found": "Archivo configuración no encontrado (configuration part file)", - "configuration_part_validation_failed": "La validación de la configuración falló (configuration part)", - "configuration_part_validator_not_found": "Validador de configuración no encontrado (configuration part validator)", - "error_activating_signing_key": "Error de activación de la clave de firma (singning key)", - "error_deleting_signing_key": "Error en eliminación de la clave de firma (signing key)", - "error_recreating_anchor": "Error al recrear el archivo de Ancla.", - "global_group_exists": "Ya existe un Grupo Global con el mismo código.", - "global_group_not_found": "El grupo global por código dado no existe", - "init_already_initialized": "Fallo en inicialización del Servidor Central, ya se ha inicializado completamente", + "configuration_part_file_not_found": "Archivo de fuente de configuración no encontrado", + "configuration_part_validation_failed": "La validación de la fuente de configuración falló", + "configuration_part_validator_not_found": "Validador de la fuente de configuración no encontrado", + "error_activating_signing_key": "Error de activación de la clave de firma", + "error_deleting_signing_key": "Error al eliminar de la clave de firma", + "error_recreating_anchor": "Error al recrear el archivo o fichero del Ancla (Anchor File)", + "global_group_exists": "Ya existe un Grupo Global con ese mismo código.", + "global_group_not_found": "El código del Grupo Global no existe", + "init_already_initialized": "Fallo de inicialización del Servidor Central, ya se ha inicializado completamente", "init_invalid_params": "Parámetros vacíos, faltantes o redundantes proporcionados para la inicialización", - "init_signer_pin_policy_failed": "Fallo en la política de PIN del token en el firmante (Signer)", - "init_software_token_failed": "Falló la inicialización del software token", - "instance_identifier_not_set": "Parámetro del sistema para el identificador de instancia no configurado", + "init_signer_pin_policy_failed": "Fallo en la política de PIN del token del firmante", + "init_software_token_failed": "Falló la inicialización del token de software", + "instance_identifier_not_set": "Parámetro del sistema, por ejemplo, el identificador no está establecido", "intermediate_ca_not_found": "CA intermedia no encontrada", "invalid_certificate": "Certificado X.509 no válido", "invalid_member_id": "ID de miembro no válido", @@ -160,92 +46,80 @@ "invalid_subsystem_id": "ID de subsistema no válido", "invalid_url": "URL no válida", "invalid_ip_address": "Dirección IP no válida", - "key_generation_failed": "La generación de claves falló", + "key_generation_failed": "La generación de la clave de firma falló", "management_request_cannot_register_owner": "No se puede registrar al propietario como cliente", "management_request_client_already_owner": "El cliente ya es propietario del servidor de seguridad", - "management_request_client_already_registered": "El cliente ya esá registrado en el servidor", + "management_request_client_already_registered": "El cliente ya se encuentra registrado en el servidor de seguridad", "management_request_client_registration_not_found": "El registro del cliente no existe", - "management_request_exists": "Ya existe una solicitud pendiente.", + "management_request_exists": "Ya existe una solicitud de administración pendiente.", "management_request_invalid_auth_certificate": "Certificado de autenticación no válido", "management_request_invalid_state": "La operación solicitada no se puede aplicar en este estado", - "management_request_invalid_state_for_approval": "La solicitud no se puede aprobar", + "management_request_invalid_state_for_approval": "La solicitud de administración no se puede aprobar", "management_request_member_not_found": "El miembro no existe", - "management_request_not_found": "No se ha encontrado una solicitud con la ID especificada", - "management_request_not_supported": "Tipo de solicitud desconocida", + "management_request_not_found": "No se ha encontrado una solicitud de administración con la ID especificada.", + "management_request_not_supported": "Tipo de solicitud de administración desconocida", "management_request_owner_must_be_client": "El propietario no está registrado como cliente en el servidor de seguridad", "management_request_owner_must_be_member": "El propietario debe ser miembro", "management_request_security_server_exists": "El certificado ya está registrado.", - "management_request_server_code_exists": "El miembro ya posee un servidor de seguridad con ese código de servidor", + "management_request_server_code_exists": "El miembro ya posee un servidor de seguridad con código de servidor", "management_request_server_not_found": "Servidor de seguridad no encontrado", "management_request_server_owner_not_found": "El propietario del servidor de seguridad no se encuentra", "management_request_unknown_type": "Tipo de solicitud desconocido", - "management_service_provider_not_set": "Proveedor de servicios de Management no establecido", - "member_class_exists": "La clase de miembro con el mismo código ya existe.", - "member_class_is_in_use": "No se puede eliminar la clase miembro: miembros de X-road encontrados pertenecientes a la clase. Solo se pueden eliminar las clases sin miembros registrados.", - "member_class_not_found": "No se ha encontrado una clase de miembro con el código especificado", - "member_exists": "Miembro con el mismo código ya existe.", - "member_not_found": "No se ha encontrado un miembro con el código/ID especificado", - "no_configuration_signing_keys_configured": "No se han configurado claves de firma de configuración (configuration signing key)", - "ocsp_responder_not_found": "No se ha encontrado el OCSP Responder", + "management_service_provider_not_set": "Proveedor de servicios de administración no establecido", + "member_class_exists": "Ya existe una clase de miembro con ese mismo código", + "member_class_is_in_use": "No se puede eliminar la clase de miembro: Se encontraron miembros de X-Road pertenecientes a la clase. Solo se pueden eliminar clases sin miembros registrados.", + "member_class_not_found": "No se encontró ninguna clase de miembro con el código especificado.", + "member_exists": "Ya existe un miembro con ese mismo código.", + "member_not_found": "No se econtró ningún miembro con el código/ID especificado.", + "no_configuration_signing_keys_configured": "No se han configurado claves de firma para la configuración.", + "ocsp_responder_not_found": "No se ha encontrado el servicio de OCSP Responder", "owners_global_group_cannot_be_deleted": "No se puede realizar la acción de eliminación en el grupo de propietarios de servidores", "owners_global_group_member_cannot_be_deleted": "No se puede realizar la acción de eliminación sobre el miembro del grupo de propietarios de servidores", "signer_proxy_error": "Excepción de proxy de firmante", - "signing_key_action_not_possible": "Acción de firma de clave no es posible", + "signing_key_action_not_possible": "Acción de clave de firma no es posible", "signing_key_not_found": "Clave de firma no encontrada", "ss_auth_certificate_not_found": "Certificado de autenticación no encontrado", "subsystem_already_registered_to_security_server": "Subsistema ya registrado en el servidor de seguridad", - "subsystem_exists": "El subsistema con el mismo código ya existe.", - "subsystem_not_found": "Subsistema con código especificado no encontrado.", + "subsystem_exists": "Ya existe un subsistema con el mismo código.", + "subsystem_not_found": "No se ha encontrado un subsistema con el código especificado.", "subsystem_not_registered_to_security_server": "El subsistema no está registrado en el servidor de seguridad dado.", "subsystem_registered_and_cannot_be_deleted": "No se puede eliminar el subsistema ya registrado.", - "timestamping_authority_not_found": "Autoridad de Sellado de tiempo no encontrada", - "token_action_not_possible": "Acción del Token no es posible", - "token_activation_failed": "Falló la activación del Token", - "token_deactivation_failed": "La desactivación del Token falló", - "token_fetch_failed": "Error al obtener Token", + "timestamping_authority_not_found": "Autoridad de marca de tiempo no encontrada", + "token_action_not_possible": "Acción del token no es posible", + "token_activation_failed": "Falló la activación del token", + "token_deactivation_failed": "La desactivación del token falló", + "token_fetch_failed": "Error al obtener el token", "token_incorrect_pin_format": "Formato de PIN incorrecto", - "token_invalid_characters": "El Token PIN proporcionado contiene caracteres no válidos", - "token_not_found": "Token no encontrado", + "token_invalid_characters": "El código PIN proporcionado contiene caracteres no válidos", "token_pin_final_try": "Intentos restantes: 1", - "token_pin_locked": "Token PIN bloqueado", - "token_weak_pin": "El Token PIN proporcionado es demasiado débil", + "token_pin_locked": "PIN de token bloqueado", + "token_weak_pin": "El código PIN proporcionado era demasiado débil", "unknown_configuration_part": "Parte de configuración desconocida", - "malformed_anchor": "Archivo de Ancla malformado", - "trusted_anchor_verification_failed": "La verificación de confianza del Ancla falló", - "trusted_anchor_not_found": "Ancla de confianza no encontrado", + "malformed_anchor": "Archivo Ancla (anchor file) malformado", + "trusted_anchor_verification_failed": "La verificación del Ancla de confianza falló", + "trusted_anchor_not_found": "Ancla de confianza no encontrada", "internal_error": "Error interno. Consulte los registros del servidor para más detalles", - "invalid_parameters": "Falla de validación", + "invalid_parameters": "Fallo en la validación", "security_server_not_found": "Servidor de seguridad no encontrado", - "invalid_encoded_id": "ID codificado no válido", - "id_not_a_number": "ID no es un número", - "api_key_not_found": "Clave de API no encontrada", + "invalid_encoded_id": "El ID codificado no es válido", + "id_not_a_number": "El ID no es un número", "invalid_role": "Rol no válido", - "invalid_file_content_type": "Tipo de contenido no válido en el archivo cargado", - "invalid_file_extension": "Extensión de archivo no válida", - "double_file_extension": "No se permite la doble extensión en archivos", - "invalid_filename": "Nombre de archivo no válido", - "invalid_backup_file": "Archivo de copia de seguridad no válido", - "backup_file_not_found": "La copia de seguridad no fue encontrada", - "backup_generation_failed": "No se pudo generar la copia de seguridad", - "generate_backup_interrupted": "La generación de la copia de seguridad ha sido interrumpida", - "restore_process_failed": "El proceso de restauración falló", - "backup_restore_interrupted": "La restauración de la copia de seguridad ha sido interrumpida", + "invalid_file_content_type": "Tipo de contenido no válido en el archivo o fichero cargado", + "invalid_file_extension": "Extensión de archivo o fichero no válida", + "double_file_extension": "No se permite la doble extensión en los nombres de archivos o ficheros", "backup_deletion_failed": "No se pudo eliminar la copia de seguridad", - "resource_read_failed": "No se pudo leer el recurso", "conf_verification.anchor_not_for_external_source": "Falló la verificación de la configuración: Anchor_not_for_external_source", - "conf_verification.missing_private_params": "Falló la verificación de la configuración: missing_private_params", - "conf_verification.other": "La verificación de la configuración falló: other", - "conf_verification.outdated": "La verificación de la configuración falló: outdated", + "conf_verification.missing_private_params": "Falló la verificación de la configuración: fallas_private_params", + "conf_verification.other": "La verificación de la configuración falló: otro", + "conf_verification.outdated": "La verificación de la configuración falló: obsoleto", "conf_verification.signature_invalid": "Falló la verificación de la configuración: signature_invalid", - "conf_verification.unreachable": "Falló de verificación de configuración: unreachable", + "conf_verification.unreachable": "Falló la verificación de configuración: inalcanzable", "cannot_add_member_to_owners_group": "No se puede agregar miembros al grupo propietario del servidor", - "validation_failure": "Falla de validación", - "invalid_distinguished_name": "Nombre distinguido (DN) no válido", "generate_key_cert_interrupted": "La generación de clave y certificado ha sido interrumpida", - "key_and_cert_generation_failed": "No se pudo generar la clave y certificado TLS", - "csr_generation_failed": "La generación del CSR falló", + "key_and_cert_generation_failed": "No se pudo generar la clave del certificado TLS", + "csr_generation_failed": "La generación des CSR falló", "cannot_convert_bytes_to_certificate": "No se puede convertir bytes en certificado", - "certificate_writing_failed": "Error al escribir el certificado en el archivo", + "certificate_writing_failed": "La escritura del archivo o fichero del Certificado falló", "cannot_read_certificate": "No se puede leer el certificado TLS", "key_not_found": "El certificado importado no coincide con la clave TLS", "certificate_already_exists": "El certificado importado ya existe", @@ -255,40 +129,37 @@ "fields": { "init": { "address": "Dirección del servidor central", - "confirmPin": "Repetir el PIN", + "confirmPin": "PIN repetido", "identifier": "Identificador de instancia", "pin": "PIN", - "repeatPin": "Repetir el PIN" + "repeatPin": "PIN repetido" }, "initialServerConf": { "centralServerAddress": "Dirección del servidor central", "instanceIdentifier": "Identificador de instancia" }, - "password": "Contraseña", "username": "Nombre de usuario", "url": "URL", "tokenPin": "PIN", - "keyLabel": "Etiqueta para la clave", + "keyLabel": "Nombre amigable para la llave", "subsystemCode": "Código de subsistema", "memberCode": "Código de miembro", "memberName": "Nombre de miembro", - "memberClass": "Clase de miembro", "securityServerAddress": "Dirección del servidor de seguridad", "serverCode": "Código de servidor", - "securityServerCode": "Código de servidor de seguridad", "serviceAddress": "Dirección del servidor central", - "certProfile": "Perfil de certificado", + "certProfile": "Información del perfil de certificado", "certFile": "Certificado", "distinguishedName": "Nombre distinguido (DN)", "acmeServerDirectoryUrl": "URL de directorio de servidor ACME", "acmeServerIpAddress": "Direcciones IP del servidor ACME (es)", - "authenticationCertificateProfileId": "ID de Perfil de certificado de autenticación", - "signingCertificateProfileId": "ID de perfil de certificado de firma" + "authenticationCertificateProfileId": "ID del perfil de certificado de autenticación", + "signingCertificateProfileId": "ID del perfil de certificado de firma" }, "filters": { "apply": "Aplicar", - "chooseFilters": "Elija filtros", - "clearFields": "Quitar filtros", + "chooseFilters": "Elgir filtros", + "clearFields": "Limpiar campos", "groupMembers": { "byClass": "Por clase", "byCode": "Por código", @@ -304,27 +175,15 @@ "byCreationDate": "Por fecha de creación", "byRequestType": "Por tipo de solicitud", "byServerCode": "Por código del servidor", - "byServerOwnerClass": "Por clase del propietario del servidor", - "byServerOwnerCode": "Por código del propietario del servidor", - "byServerOwnerName": "Por el nombre del propietario del servidor", + "byServerOwnerClass": "Por clase de propietario del servidor", + "byServerOwnerCode": "Por código de propietario del servidor", + "byServerOwnerName": "Por el nombre de propietario del servidor", "bySource": "Por origen", "byStatus": "Por estado" } }, - "footer": { - "copyright": { - "company": "Instituto Nordico para Soluciones de Introperabilidad (NIIS)", - "licenceInfo": "Información de la licencia", - "title": "Derechos de autor" - }, - "software": { - "feedback": "Comentario", - "title": "Software", - "versionPrefix": "X-ROAD" - } - }, "global": { - "appTitle": "Servidor central X-ROAD", + "appTitle": "Servidor Central X-road", "pageNotFound": "Ups, página no encontrada", "approve": "Aprobar", "class": "Clase", @@ -333,12 +192,11 @@ "delete": "Borrar", "id": "Identificación", "instance": "Instancia", - "memberClass": "Clase miembro", - "memberCode": "Código miembro", - "memberName": "Nombre de miembro", - "name": "Nombre", + "memberClass": "Clase del miembro", + "memberCode": "Código del miembro", + "memberName": "Nombre del miembro", "navigation": { - "back": "Volver" + "back": "Atrás" }, "register": "Registro", "search": "Buscar", @@ -360,9 +218,9 @@ "updated": "Actualizado", "dialog": { "upload": { - "title": "Configuración", - "uploadConfigurationPart": "Cargar el archivo de configuración desde su computadora", - "success": "Archivo de configuración cargado correctamente." + "title": "Subir la configuración de parte", + "uploadConfigurationPart": "Subir el archivo o fichero de configuración desde su computadora", + "success": "Configuración de parte cargada correctamente." } } }, @@ -372,11 +230,11 @@ "created": "Creado", "download": "Descargar", "recreate": "Recrear", - "recreateSuccess": "{ConfigurationType} Ancla de configuración generado correctamente" + "recreateSuccess": "{ConfigurationType} Ancla de configuración generada correctamente" }, "downloadUrl": { - "title": "Descargar URL", - "urlAddress": "Dirección de URL" + "title": "URL de descarga", + "urlAddress": "Dirección URL" }, "trustedAnchor": { "dialog": { @@ -386,13 +244,13 @@ "generated": "Generado", "hash": "Hash (SHA-224)" }, - "info": "Detalles de Ancla de confianza:", - "success": "Ancla de confianza cargado con éxito", - "title": "Confirmar detalles de Ancla de confianza" + "info": "Detalles de Anclaje de confianza:", + "success": "Ancla de confianza cargada con éxito", + "title": "Confirmar detalles del Ancla de confianza" }, "delete": { "confirmation": "Eliminar {identificador} Ancla con hash (sha-224) {hash}?", - "success": "Eliminado con éxito el Ancla de confianza", + "success": "Eliminada con éxito el Ancla de confianza", "title": "Eliminar el Ancla" } } @@ -404,11 +262,11 @@ "areYouSure": "¿Estás seguro de que quieres eliminar el grupo global {grupo}?", "code": "Código", "class": "Clase", - "deleteGroup": "Eliminar Grupo", + "deleteGroup": "Eliminar grupo", "description": "Descripción", "descriptionSaved": "Descripción guardada con éxito.", "editDescription": "Editar descripción", - "groupDeletedSuccessfully": "Global Group se eliminó con éxito.", + "groupDeletedSuccessfully": "El grupo global se eliminó con éxito.", "groupMembers": "Miembros del grupo ({MemberCount})", "instance": "Instancia", "memberName": "Nombre de miembro", @@ -421,35 +279,35 @@ }, "deleteMember": { "title": "Eliminar miembro", - "confirmation": "¿Estás seguro de que quieres eliminar al miembro del grupo con el identificador \"{Identificador}\" de este grupo global? Ingrese el código de miembro para confirmar.", + "confirmation": "¿Estás seguro de que quieres eliminar al miembro del grupo con el identificador \"{identifier}\" de este grupo global? Ingrese el código de miembro para confirmar.", "placeholder": "Ingrese el código de miembro", - "success": "Miembro con identificador \"{Identificador}\" se eliminó de este grupo global" + "success": "Miembro con identificador \"{identifier}\" se elimina de este grupo global" } } }, "globalResources": { "addGlobalGroup": "Agregar grupo global", - "globalGroupSuccessfullyAdded": "El Global Group se agregó con éxito.", + "globalGroupSuccessfullyAdded": "El grupo global agregó con éxito.", "code": "Código", "description": "Descripción", "globalGroups": "Grupos globales", - "memberCount": "Canridad de miembros", - "updated": "Actualizado" + "memberCount": "Cantidad de miembros", + "updated": "actualizado" }, "init": { "address": { - "info": "Nombre DNS público del servidor central o dirección IP externa. Se utiliza para conexiones entrantes desde la red externa al servidor central." + "info": "Nombre DNS público del Servidor Central o dirección IP externa. Se utiliza para conexiones entrantes desde la red externa al Servidor Central." }, - "csIdentification": "Identificación del servidor central", + "csIdentification": "Identificación del Servidor Central", "initialConfiguration": "Configuración inicial", "instanceIdentifier": { - "info": "Código de instancia de X-ROAD, identifica de manera única esta instancia de X-ROAD." + "info": "Código de instancia de X-Road, identifica de manera única esta instancia de X-Road." }, - "notification": "¡El servidor central se ha inicializado! Ahora continúe con la configuración completa.", + "notification": "¡El Servidor Central se ha inicializado! Ahora continúe con la configuración completa.", "pin": { "info": "PIN para acceder al token de software.", - "pinMatchError": "La confirmación del PIN no coincide", - "repeat": "Repite el PIN" + "pinMatchError": "La confirmación de la contraseña no coincide", + "repeat": "PIN repetido" }, "softwareToken": "Token de software" }, @@ -460,78 +318,49 @@ "logIn": "Acceso", "logOut": "Finalizar la sesión", "signKey": "Clave de firma", - "algorithm": "Algoritmo clave", + "algorithm": "Algoritmo de clave", "token": "Token:", "dialog": { "delete": { "title": "Eliminar la clave", "text": "Eliminar la clave '{label}'?", - "confirmButton": "Borrar", + "confirmButton": "Eliminar", "success": "Clave de firma eliminada con éxito" }, "add": { "title": "Agregar clave", - "labelField": "Etiqueta para la clave", + "labelField": "Nombre amigable para la clave", "confirmButton": "Agregar", - "success": "Clave de firma '{label}' agregada correctamente.Por favor, no active la clave de inmediato. Consulte la Guía del usuario del servidor central antes de activar la clave." + "success": "La clave de firma '{label}' se agregó correctamente. Por favor, no active la clave de inmediato. Consulte la Guía del usuario del servidor central antes de activar la clave." }, "activate": { "title": "Activar la clave", "text": "Activar la clave '{label}'?", "confirmButton": "Activar", - "success": "Clave de firma '{label}' activada correctamente" + "success": "La clave de firma '{label}' se activó correctamente" } } }, "tokens": { - "keysInfoMessage": "Se permite un máximo de dos claves de firma de fuente de configuración en un token de seguridad", + "keysInfoMessage": "Se permite un máximo de dos claves de firma de origen de configuración en un token de seguridad.", "logIn": "Acceso", "pin": "PIN", "loginDialog": { "title": "Acceso", - "success": "Sesión de token iniciada" + "success": "Sesión en token iniciada" }, "logout": { "title": "Finalizar la sesión", "confirmButton": "Finalizar la sesión", - "text": "¿Estás seguro de que quieres cerrar sesión del token?", - "success": "Sesión de token finalizada" + "text": "¿Estás seguro de que quieres cerrar la sesión del token?", + "success": "Sesión del token finalizada" }, "errors": { "Signer": { - "PinIncorrect": "PIN incorrecto" + "PinIncorrect": "PIN no válido" } } }, - "cert": { - "certificate": "Certificado", - "hashInfo": "Hash (SHA-256)", - "rsaExp": "Exponente de clave pública de RSA", - "rsaModulus": "Módulo de clave pública RSA", - "ecParameters": "Parámetros de clave pública de la CE", - "ecPoint": "Punto de clave pública de la CE", - "keyUsage": { - "CRL_SIGN": "Firma de CRL", - "DATA_ENCIPHERMENT": "Cifrado de Datos", - "DECIPHER_ONLY": "Descifrado solamente", - "DIGITAL_SIGNATURE": "Firma digital", - "ENCIPHER_ONLY": "SOLO CIFRADO", - "KEY_AGREEMENT": "Acuerdo clave", - "KEY_CERT_SIGN": "Certificado de firma", - "KEY_ENCIPHERMENT": "Clave de cifrado", - "NON_REPUDIATION": "No repudio" - } - }, - "login": { - "errorMsg401": "Nombre de usuario o contraseña incorrectos", - "generalError": "Error de inicio de sesion. Por favor intente de nuevo.", - "logIn": "Acceso", - "logOut": "Finalizar la sesión" - }, - "logout": { - "idleWarning": "Ha estado inactivo durante 30 minutos y su sesión ha expirado. Por razones de seguridad, se finaliza la sesión.", - "sessionExpired": "Sesión expirada" - }, "managementRequests": { "addCertificate": "Agregar certificado", "addClient": "Agregar cliente", @@ -552,14 +381,14 @@ "showOnlyPending": "Mostrar solo las solicitudes pendientes", "dialog": { "approve": { - "title": "Aprobar la solicitud", - "bodyMessage": "¿Está seguro de que desea aprobar solicitud de ID de administración {ID} de Server {ServerId}?", - "successMessage": "ID de solicitud de administración {id} de {serverId} aprobado", + "title": "Aprobar la solicitud de administración", + "bodyMessage": "¿Está seguro de que desea aprobar la solicitud de administración ID {ID} del Server {ServerId}?", + "successMessage": "ID de solicitud de administración {id} del {serverId} aprobada", "newMemberWarning": "El miembro especificado no existe actualmente. Se creará automáticamente cuando se apruebe esta solicitud." }, "decline": { - "title": "Rechazar solicitud de administración", - "bodyMessage": "¿Está seguro de que desea rechazar la ID de solicitud de administración {ID} de Server {ServerId}?", + "title": "Declinación de solicitud de administración", + "bodyMessage": "¿Está seguro de que desea rechazar la solicitud de administración ID {ID} del servidor {ServerId}?", "successMessage": "ID de solicitud de administración {id} desde {serverId} declinado" } } @@ -573,20 +402,20 @@ "comments": "Comentario", "securityServerInformation": "Información del servidor de seguridad afectado", "ownerName": "Nombre del propietario", - "ownerClass": "Clase de propietario", + "ownerClass": "Clase del propietario", "ownerCode": "Código del propietario", - "serverCode": "Código de servidor", + "serverCode": "Código del servidor", "address": "DIRECCIÓN", - "clientInformation": "Cliente enviado para registro", + "clientInformation": "Cliente enviado para Registración", "ownerChangeInformation": "Nuevo propietario enviado para su registro", - "clientDisableInformation": "Client deshabilitado", + "clientDisableInformation": "Cliente deshabilitado", "clientEnableInformation": "Cliente habilitado", "subsystemCode": "Código de subsistema", "certificateformation": "Certificado de autenticación enviado para el registro", "ca": "CA", "serialNumber": "Número de serie", "subject": "Sujeto", - "expires": "Expirar" + "expires": "Expira" }, "members": { "addMember": "Agregar miembro", @@ -597,22 +426,22 @@ "globalGroups": "Grupos globales", "group": "Grupo", "ownedServers": "Servidores propios", - "usedServers": "Servidores usados", - "server": "Servidor", + "usedServers": "Servidores en uso", + "server": "Server", "enterCode": "Ingrese el código de miembro", "deleteMember": "Eliminar miembro", - "confirmDelete": "¿Está seguro que desea eliminar el miembro {miembro} de la configuración del sistema? Ingrese el código de miembro para confirmar.", + "confirmDelete": "¿Está seguro de que desea eliminar al miembro {miembro} de la configuración del sistema? Ingrese el código de miembro para confirmar.", "editMemberName": "Editar el nombre del miembro", "memberNameSaved": "Nombre del miembro guardado con éxito", - "memberDeleted": "Miembro eliminado correctamente", - "areYouSureUnregister": "¿Está seguro que no desea registrar el miembro {MiemberCode} del Servidor {ServerCode} en la configuración del sistema?", - "unregisterMember": "Registro de miembro", + "memberDeleted": "Miembro eliminado con éxito", + "areYouSureUnregister": "¿Está seguro de que no desea registrar al miembro {MiemberCode} del servidor {ServerCode} de la configuración del sistema?", + "unregisterMember": "Miembro no registrado", "memberSuccessfullyUnregistered": "Miembro {MiemberCode} del Servidor {ServerCode} no ha sido registrado" }, "managementRequests": { "created": "Creado", - "id": "Solicitud ID", - "showOnlyWaiting": "Mostrar solo solicitudes en espera", + "id": "REQ ID", + "showOnlyWaiting": "Mostrar solo solicitudes de espera", "status": "Estado", "type": "Tipo de solicitud" }, @@ -629,29 +458,21 @@ "status": "Estado", "subsystemcode": "Código de subsistema", "subsystemSuccessfullyAdded": "Subsistema {Subsystemcode} se agrega a la configuración del sistema", - "areYouSureDelete": "¿Está seguro que desea eliminar el subsistema {Subsystemcode} del miembro X-ROAD {memberID} de la configuración del sistema?", + "areYouSureDelete": "¿Está seguro de que desea eliminar el subsistema {Subsystemcode} del miembro X-road {memberID} de la configuración del sistema?", "subsystemSuccessfullyDeleted": "Subsistema {Subsystemcode} se ha eliminado de la configuración del sistema", - "areYouSureUnregister": "¿Está seguro que desea eliminar el subsistema {subsystemcode} del Servidor {servercode} de la configuración del sistema?", - "subsystemSuccessfullyUnregistered": "Subsistema {subsystemcode} de servidor {servercode} se ha eliminado" + "areYouSureUnregister": "¿Está seguro de que desea eliminar el subsistema {subsystemcode} del servidor {servercode} de la configuración del sistema?", + "subsystemSuccessfullyUnregistered": "Subsistema {subsystemcode} del servidor {servercode} se ha eliminado" } }, "memberSuccessfullyAdded": "Miembro {MemberName} se agrega a la configuración del sistema." }, "noData": { - "loading": "Cargando ... por favor espera", - "noBackups": "No hay copias de seguridad todavía", - "noCertificate": "Sin certificado", - "noCertificates": "Sin certificados", - "noData": "Sin datos", - "noMatches": "Sin criterios de coincidencia de elementos", "noMemberClasses": "No hay clases de miembros", - "noServices": "Sin servicios", - "noTokens": "Sin Tokens", "noSecurityServers": "Sin servidores de seguridad" }, "securityServers": { "address": "DIRECCIÓN", - "ownerClass": "Clase de propietario", + "ownerClass": "Clase del propietario", "ownerCode": "Código del propietario", "ownerName": "Nombre del propietario", "registered": "Registrado", @@ -669,12 +490,12 @@ "authCertificates": "Certificados de autenticación", "clients": "Clientes", "details": "Detalles", - "managementRequests": "Solicitudes de admninistración" + "managementRequests": "Solicitudes de administración" }, "dialog": { "deleteAuthCertificate": { "title": "Eliminar certificado de autenticación", - "content": "¿Está seguro de que desea eliminar la prueba del certificado de autenticación CA de la configuración del sistema?Ingrese el código del servidor para confirmar.", + "content": "¿Está seguro de que desea eliminar el certificado de autenticación Test CA de la configuración del sistema? Ingrese el código del servidor para confirmar.", "securityServerCode": "Ingrese el código del servidor de seguridad", "success": "Certificado de autenticación del servidor de seguridad eliminado correctamente" } @@ -689,7 +510,7 @@ "deleteAddress": { "title": "Eliminar servidor de seguridad", "enterCode": "Ingrese el código del servidor de seguridad", - "areYouSure": "Está seguro que desea eliminar el certificado de autenticación Test CA de la configuración del sistema? Ingrese el código del servidor para confirmar.", + "areYouSure": "¿Está seguro de que desea eliminar el servidor de seguridad {SecurityServer} de la configuración del sistema? Ingrese el código del servidor para confirmar.", "success": "Servidor de seguridad eliminado." } }, @@ -727,8 +548,8 @@ "type": "Tipo" }, "serviceProvider": { - "changedSuccess": "El proveedor de servicios cambió con éxito", - "registeredSuccess": "El proveedor del servicio de administración '{subsystemId}' se registró como cliente del servidor de seguridad '{securityServerId}" + "changedSuccess": "El proveedor de servicios se cambió con éxito", + "registeredSuccess": "El proveedor del servicio de administración '{subsystemId}' se registró como cliente del servidor de seguridad '{securityServerId}'" }, "memberClasses": "Clases de miembros", "securityServerOwnerGroupCode": "Código de grupo de propietarios de servidores de seguridad", @@ -737,36 +558,36 @@ "systemParameters": "Parámetros del sistema", "wsdlAddress": "Dirección WSDL", "managementServicesAddress": "Dirección de servicios de administración", - "editMemberClassTitle": "Editar clase de miembro", - "addMemberClassTitle": "Agregar clase de miembro", - "deleteMemberClass": "¿Eliminar clase de miembro?", + "editMemberClassTitle": "Editar clase del miembro", + "addMemberClassTitle": "Agregar clase del miembro", + "deleteMemberClass": "¿Eliminar clase del miembro?", "memberClassSaved": "Clase de miembro guardada.", "memberClassDeleted": "Clase de miembro eliminada." }, "tlsCertificates": { "managementService": { - "title": "Servicio de administración de Certificado TLS", - "key": "Clave TLS de Servicio de administración", + "title": "Certificado TLS del servicio de administración", + "key": "Clave TLS del Servicio de administración", "downloadCertificate": "Descarga de certificado", - "downloadSuccess": "Certificado TLS de servicio de administración descargado con éxito", + "downloadSuccess": "Certificado TLS del servicio de administración descargado con éxito", "generateKey": { "button": "Recrear la clave", - "title": "Clave TLS de servicio de administración", - "confirmation": "¿Deseas generar una nueva clave y certificado para el servicio de administración?", + "title": "Clave TLS del servicio de administración", + "confirmation": "¿Desea generar una nueva clave y certificado para el servicio de administración?", "explanation": "El sistema generará una nueva clave TLS para el servicio de administración y un certificado autofirmado, reemplazando la clave y el certificado existentes.", - "success": "NUEVA CLAVE Y CERTIFICADO TLS DEL SERVICIO DE ADMINISTRACION generados correctamente" + "success": "NUEVA CLAVE Y CERTIFICADO TLS del SERVICIO DE ADMINISTRACION generados correctamente" }, "generateCsr": { "button": "Generar CSR", "title": "Generar solicitud de firma de certificado TLS", - "content": "Primero, proporcione un nombre distinguido (DN).Luego, genere una nueva CSR y guárdela en un lugar seguro", + "content": "Primero, proporcione un nombre distinguido (DN). Luego, genere una nueva CSR y guárdela en un lugar seguro", "distinguishedName": "Ingrese el nombre distinguido (DN)", - "example": "CN = miservidorcentral.ejemplo.com, o = mi organización, c = ee" + "example": "CN = miservidorcentral.ejemplo.com, O = mi organización, C = ee" }, "uploadCertificate": { - "button": "Carga de Certificado", - "title": "carga de Certificado TLS del Servicio de administración", - "label": "Cargue el archivo del certificado desde su computadora", + "button": "Carga de certificado", + "title": "Carga del certificado TLS del servicio de administración", + "label": "Cargue el archivo o fichero de certificado desde su computadora", "success": "Certificado TLS del servicio de administración cargado con éxito" } } @@ -800,31 +621,31 @@ "caSettings": "Configuración de CA", "certificationServices": "Servicios de certificación", "certImportedSuccessfully": "Certificado importado con éxito", - "certProfileInput": "Información del perfil del certificado", - "certProfileInputExplanation": "Nombre completo de la clase que implementa la interfaz ee.ria.xroad.common.certificateprofile.CertificateProfileInfoProvide", + "certProfileInput": "Información del perfil de certificado", + "certProfileInputExplanation": "Nombre de clase totalmente calificado (FQDN) que implementa la interfaz ee.ria.xroad.common.certificateprofile.certificateProfileInfoprovider", "acmeServerDirectoryUrlExplanation": "Utilizado por los servidores de seguridad para realizar operaciones relacionadas con el certificado a través de la API del servidor ACME.", - "acmeServerIpAddressExplanation": "Una lista de direcciones IP de origen del servidor ACME que se utilizan para completar el desafío HTTP de ACME con el servidor de seguridad. Varias direcciones están separadas por una coma. Esta información se muestra en la interfaz del usuario del servidor de seguridad.", - "acmeServerAuthProfileIdExplanation": "ID de perfil utilizado para algunos servidores ACME para informarles sobre el tipo de uso del certificado al solicitar un certificado de autenticación.", - "acmeServerSignProfileIdExplanation": "ID de perfil utilizado para algunos servidores ACME para informarles sobre el tipo de uso del certificado al solicitar un certificado de firma.", - "timestampingServices": "Servicios de sellado de tiempo", - "validFrom": "Válido desde", - "validTo": "Válido hasta", + "acmeServerIpAddressExplanation": "Una lista de las direcciones IP de origen del servidor ACME que se utilizan para completar el desafío HTTP de ACME con el servidor de seguridad. Varias direcciones están separadas por una coma. Esta información se muestra en la interfaz de usuario del servidor de seguridad.", + "acmeServerAuthProfileIdExplanation": "ID de perfil utilizado por algunos servidores ACME para informarles el tipo de uso del certificado al solicitar un certificado de autenticación.", + "acmeServerSignProfileIdExplanation": "ID de perfil utilizado por algunos servidores ACME para informarles el tipo de uso del certificado al solicitar un certificado de firma.", + "timestampingServices": "Servicios de marca de tiempo", + "validFrom": "Valido desde", + "validTo": "Valido hasta", "viewCertificate": "Ver certificado", - "uploadCertificate": "Cargue el archivo de certificado desde su computadora", + "uploadCertificate": "Cargue el archivo o fichero de certificado desde su computadora", "timestampingService": { "url": "URL", "dialog": { "add": { - "title": "Agregar servicio de sellado de tiempo", - "success": "Servicio de sellado de tiempo agregado correctamente" + "title": "Agregar servicio de marca de tiempo", + "success": "Servicio de marca de tiempo agregado correctamente" }, "edit": { - "title": "Editar servicio de sellado de tiempo", + "title": "Editar servicio de marca de tiempo", "uploadCertificate": "Subir un nuevo certificado", - "success": "Servicio de sellado de tiempo editado con éxito" + "success": "Servicio de marca de tiempo editado con éxito" } }, - "addedSuccessfully": "Servicio de sellado de tiempo agregado correctamente" + "addedSuccessfully": "Servicio de marca de tiempo agregado correctamente" }, "trustService": { "details": { @@ -834,114 +655,86 @@ "delete": { "action": "Eliminar el servicio de confianza", "confirmationDialog": { - "title": "Confirmar", - "message": "¿Estás seguro de que quieres eliminar el servicio de confianza \"{name}\"?" + "title": "¿Estás seguro?", + "message": "¿Estás seguro de que quieres eliminar el servicio de confianza \"{nombre}\"?" }, "success": "Servicio de confianza eliminado con éxito" }, "settings": { "tlsAuth": "Esta CA solo se puede usar para la autenticación TLS", - "certProfile": "Información del perfil del certificado (nombre completo de la clase que implementa la interfaz ee.ria.xroad.common.CertificateProfileInfoProvider)", + "certProfile": "Información del perfil de certificado (nombre de clase totalmente calificado (FQDN) que implementa la interfaz ee.ria.xroad.common.certificateProfileInfoprovider)", "saveSuccess": "Configuración de CA guardada correctamente", "acmeCapable": "Esta CA se puede usar para Acme", "acmeNotCapable": "Esta CA no se puede usar para Acme" }, "ocspResponders": { - "url": "Url", + "url": "URL", "add": { "dialog": { - "title": "Agregar serivico de OCSP Responder" + "title": "Agregar servicio de OCSP Responder" }, - "success": "servicio de OCSP Responder agregado con éxito" + "success": "Servicio de OCSP Responder agregado con éxito" }, "edit": { "dialog": { - "title": "Editar servicio de OCSP Responder", + "title": "Editar Servicio de OCSP Responder", "uploadCertificate": "Subir un nuevo certificado" }, - "success": "OCSP Responder editado con éxito con éxito" + "success": "Servicio de OCSP Responder editado con éxito" }, "delete": { "confirmationDialog": { "message": "¿Estás seguro de que quieres eliminar el servicio de OCSP Responder con la URL {URL}?", - "title": "Confirmar" + "title": "¿Estás seguro?" }, - "success": "Servicio de OCSP Responder eliminado con éxito" + "success": "OCSP Responder eliminado con éxito" } }, "intermediateCas": { "intermediateCa": "CA intermedia", "add": { "dialog": { - "title": "Agregar CAs intermedias" + "title": "Agregar CAS intermedia" }, - "success": "CA Intermedia agregada con éxito" + "success": "CA intermedia agregada con éxito" }, "delete": { "confirmationDialog": { "message": "¿Estás seguro de que quieres eliminar la CA intermedia {name}?", - "title": "Confirmar" + "title": "¿Estás seguro?" }, "success": "CA intermedia eliminada con éxito" } }, "timestampingService": { - "url": "Url", - "timestampingInterval": "Intervalo de sellado de tiempo", + "url": "URL", + "timestampingInterval": "Intervalo de marca de tiempo", "timestampingIntervalMinutes": "{min} minuto (s)", "cost": "Costo", "costValues": { "FREE": "Gratis", - "PAID": "Paid", + "PAID": "Pago", "UNDEFINED": "No definido" }, "delete": { "dialog": { - "title": "Confirmar", - "message": "¿Estás seguro que quieres eliminar el servicio de sellado de tiempo con la URL {URL}?" + "title": "¿Estás seguro?", + "message": "¿Estás seguro de que quieres eliminar el servicio de marca de tiempo con la URL {URL}?" }, - "success": "Servicio de sellado de tiempo eliminado con éxito" + "success": "Servicio de marca de tiempo eliminado con éxito" } }, "pagenavigation": { "details": "Detalles", "settings": "Configuración de CA", - "ocspResponders": "OCSP Responders", + "ocspResponders": "OCSP Responder", "intermediateCas": "CAs intermedias" } } }, "validationError": { - "AssertFalse": "el valor debe ser 'falso'", - "AssertTrue": "el valor debe ser 'verdadero'", - "DecimalMax": "El valor numérico excede el máximo permitido", - "DecimalMin": "El valor numérico está por debajo del mínimo permitido", - "Digits": "El valor debe contener solo dígitos", - "Email": "El valor no cumple con el formato de correo electrónico", - "Future": "El valor de fecha y hora debe ser en el futuro", - "FutureOrPresent": "El valor de fecha y hora debe ser ahora o en el futuro", - "IdentifierChars": "El identificador de instancia no debe contener dos puntos (:), punto y coma (;), barra (/) o barra invertida (\) ni signos de porcentaje (%)", - "IdentifierCharsField": "Utilice solo caracteres de identificador válidos", - "Max": "El valor numérico excede el máximo permitido", - "Min": "El valor numérico está por debajo del mínimo permitido", - "Negative": "El valor numérico debe ser inferior a cero", - "NegativeOrZero": "El valor numérico debe ser menor o igual a cero", - "NoBackslashes": "El valor no debe contener símbolos de barra inversa (\\)", - "NoColons": "El valor no debe contener símbolos de dos puntos (:)", - "NoForwardslashes": "El valor no debe contener símbolos de barra (/)", - "NoPercents": "El valor no debe contener símbolos de porcentaje (%)", - "NoSemicolons": "El valor no debe contener símbolos de punto y coma (;)", - "Normalized": "El valor debe normalizarse", - "NotBlank": "El valor no debe estar en blanco", - "NotEmpty": "el valor no debe estar vacío", - "NotNull": "Se requiere un valor", - "Null": "El valor no debe establecerse", - "Past": "El valor de fecha y hora debe ser anterior al actual", - "PastOrPresent": "El valor de fecha y hora debe igual o anterior al actual", - "Pattern": "el valor no coincidía con el formato requerido", - "Positive": "El valor numérico debe ser mayor que cero", - "PositiveOrZero": "El valor numérico debe ser mayor o igual a cero", - "Size": "El valor no cumple con los requisitos de longitud", + "IdentifierChars": "El identificador de instancia no debe contener dos puntos (:), punto y coma (;), barras (/\\) o signo de porcentaje (%)", + "IdentifierCharsField": "Utilice solo identificadores de caracteres válidos", "SizeField": "El valor no cumple con los requisitos de longitud" }, "validation": { @@ -950,23 +743,23 @@ } }, "status": { - "signer_error": "La invocación del cliente de firma falló", + "signer_error": "La invocación del cliente del firmador falló.", "global_conf_generation": { "status_not_found": "Se desconoce el estado de las generaciones de configuración global", - "failing": "Fallo en la generación de la configuración global desde {0}", - "global_conf_expired": "Configuración global vencida" + "failing": "Falla en la generación de la configuración global desde {0}", + "global_conf_expired": "Expiró la configuración global" }, "signing_key": { "internal": { "missing": "La firma de la configuración interna falló: falta la clave activa", - "token_not_found": "La firma de la configuración interna falló: no se encontró la clave activa", - "token_not_active": "La firma de la configuración interna falló: no se ingresó el PIN de la clave activa", + "token_not_found": "La firma de la configuración interna falló: la clave activa no se encuentra", + "token_not_active": "La firma de la configuración interna falló: PIN de la clave activa no ingresada", "key_not_available": "La firma de la configuración interna falló: la clave activa no está disponible" }, "external": { "missing": "La firma de la configuración externa falló: falta la clave activa", - "token_not_found": "La firma de la configuración externa falló: no se encontró la clave activa", - "token_not_active": "La firma de la configuración externa falló: no se ingresó el PIN de la clave activa", + "token_not_found": "La firma de la configuración externa falló: la clave activa no se encuentra", + "token_not_active": "La firma de la configuración externa falló: PIN de la clave activa no ingresada", "key_not_available": "La firma de la configuración externa falló: la clave activa no está disponible" } } diff --git a/src/security-server/admin-service/ui/src/locales/es.json b/src/security-server/admin-service/ui/src/locales/es.json index 4d6c988f7c..abb487f516 100644 --- a/src/security-server/admin-service/ui/src/locales/es.json +++ b/src/security-server/admin-service/ui/src/locales/es.json @@ -2,222 +2,96 @@ "403": { "goBack": "Volver", "mainTitle": "Permiso denegado", - "text": "Parece que no tiene el permiso para ver esta página. Si cree que esto es un error, verifique si ha iniciado sesión en la cuenta correcta o comuníquese con su administrador para preguntar sobre sus permisos.", + "text": "Parece que no tienes el permiso para ver esta página. Si crees que esto es un error, verifica si has iniciado sesión en la cuenta correcta o comunícate con tu Administrador para preguntar sobre tus permisos.", "topTitle": "Denegado" }, "404": { "pageNotFound": "404 - Página no encontrada", - "text": "Parece que encontraste el", - "textUnicorn": "unicornio" + "text": "Ups, página no encontrada", + "textUnicorn": "Error 404" }, "accessRights": { - "addServiceClients": "Agregar sujetos", - "addServiceClientsSuccess": "Derechos de acceso agregados con éxito", - "addServiceClientsTitle": "Agregar sujetos", - "addSubjectsSuccess": "Derechos de acceso agregados con éxito", - "id": "IDENTIFICACIÓN", + "addServiceClients": "Agregar permisos", + "addServiceClientsSuccess": "Permisos de acceso agregados con éxito", + "addServiceClientsTitle": "Agregar permisos", + "addSubjectsSuccess": "Permisos de acceso agregados con éxito", + "id": "ID", "memberName": "Nombre del miembro / Descripción del grupo", - "removeAllText": "¿Está seguro de que desea eliminar los derechos de acceso de todos los clientes?", - "removeAllTitle": "Eliminar todos los derechos de acceso?", - "removeSuccess": "Derechos de acceso eliminados con éxito", - "removeText": "¿Está seguro de que desea eliminar los derechos de acceso de este cliente?", - "removeTitle": "Eliminar los derechos de acceso?", - "rightsGiven": "Derechos de acceso dados", - "title": "Derechos de acceso" + "removeAllText": "¿Estás seguro de que deseas eliminar los permisos de acceso de todos los clientes?", + "removeAllTitle": "Eliminar todos los permisos de acceso?", + "removeSuccess": "Permisos de acceso eliminados con éxito", + "removeText": "¿Estás seguro de que deseas eliminar los permisos de acceso de este cliente?", + "removeTitle": "Eliminar los permisos de acceso?", + "rightsGiven": "Permisos de acceso dados", + "title": "Permisos de acceso" }, "action": { - "activate": "Activar", - "add": "Agregar", - "addClient": "Agregar cliente", - "addMember": "Agregar miembro", - "addSubsystem": "Agregar subsistema", "cancel": "Cancelar", - "close": "Cerrar", - "confirm": "Confirmar", - "continue": "Continuar", - "copy": "Copiar", - "copyId": "Copiar identificación", - "deactivate": "Desactivar", - "delete": "Borrar", + "delete": "Eliminar", "disable": "Desactivar", - "done": "Hecho", - "download": "Descargar", - "edit": "Editar", - "emptySearch": "Su búsqueda de {msg} no encontró resultados.", "enable": "Permitir", - "export": "Exportar", - "finish": "Finalizar", - "goToFront": "Ir al Inicio", - "next": "Siguiente", - "noData": "Sin datos", - "ok": "Aceptar", - "order": "Orden", - "previous": "Anterior", - "refresh": "Actualizar", - "register": "Registro", - "remove": "Eliminar", - "removeAll": "Eliminar todo", - "restore": "Restaurar", - "save": "Guardar", - "search": "Buscar", - "searching": "Búsqueda...", - "submit": "Enviar", - "unregister": "No registrado", - "yes": "Sí" + "order": "Orden" }, "alert": { - "count": "Cantidad de errores similares:", - "warningCount": "Cantidad de advertencias similares", - "id": "IDENTIFICACIÓN" + "warningCount": "Cantidad de advertencias similares" }, "apiKey": { - "createApiKey": { - "button": "Crear clave API", - "step": { - "keyDetails": { - "apiKey": "Clave de API", - "apiKeyID": "ID de clave API", - "assignedRoles": "Roles asignados", - "createKeyButton": "Crear clave", - "name": "Detalles clave", - "note": "Nota: Guarde la l API en un lugar seguro. La clave API es visible solo en el momento de la generación de claves. No se volverá a presentar y no se puede recuperar más tarde." - }, - "roles": { - "description": "Seleccione los roles asociados con la clave API. Los roles definen los permisos otorgados a la clave API.", - "name": "Roles", - "selectRoles": "Seleccionar roles" - } - }, - "success": "Clave API creada con éxito", - "title": "Crear clave API" - }, "role": { - "XROAD_REGISTRATION_OFFICER": "Oficial de registro", - "XROAD_SECURITYSERVER_OBSERVER": "Observador del servidor", - "XROAD_SECURITY_OFFICER": "Oficial de seguridad", - "XROAD_SERVICE_ADMINISTRATOR": "Administrador de servicio", - "XROAD_SYSTEM_ADMINISTRATOR": "Administrador de sistema" - }, - "edit": { - "roleRemoveOnly": "(solo eliminar)" - }, - "table": { - "action": { - "edit": { - "button": "Editar", - "dialog": { - "message": "Roles asociados con la clave API:", - "title": "Editar clave API (id: {id})" - }, - "success": "Clave API con id {id} guardada" - }, - "revoke": { - "button": "Revocar la clave", - "confirmationDialog": { - "message": "¿Estás seguro de que quieres revocar la clave API con ID {ID}?", - "title": "Confirmar?" - }, - "success": "Clave API con id {id} revocada con éxito" - } - }, - "header": { - "id": "IDENTIFICACIÓN", - "roles": "Roles" - } + "XROAD_SECURITYSERVER_OBSERVER": "Observador del servidor de seguridad", + "XROAD_SERVICE_ADMINISTRATOR": "Administrador del servicio" } }, "backup": { - "deleteBackup": { - "dialog": { - "confirmation": "¿Estás seguro de que quieres eliminar la copia de seguridad {archivo}?", - "title": "Confirmar" - }, - "success": "Copia de seguridad {file} eliminada" - }, - "restoreFromBackup": { - "dialog": { - "confirmation": "¿Estás seguro de que quieres restaurar desde {archivo}?", - "title": "Confirmar" - }, - "success": "Configuración restaurada desde {archivo}" - }, "createBackup": { - "button": "Configuración de copia de seguridad.", "messages": { - "success": "Copia de seguridad {archivo} creada correctamente", - "localConfWarning": "¡Advertencia! El archivo \"/etc/xroad/services/local.conf\" utilizado para las anulaciones de configuración está en desuso y ya no se incluye en las copias de seguridad. El archivo \"/etc/xroad/services/local.properties\" debe usarse en su lugar." + "localConfWarning": "¡Advertencia! El archivo \"/etc/xroad/services/local.conf\" utilizado para las anulaciones de configuración está en desuso y ya no se incluye en las copias de seguridad. El archivo \"/etc/xroad/services/local.properties\" debe ser utilizado en su lugar." } - }, - "uploadBackup": { - "button": "Subir copia de seguridad", - "confirmationDialog": { - "confirmation": "El archivo {name} ya existe, ¿estás seguro de que quieres sobrescribirlo?", - "title": "El archivo ya existe" - }, - "success": "Copia de seguridad {archivo} cargada correctamente" } }, "cert": { "activateSuccess": "El certificado ha sido activado", "certDeleted": "Certificado eliminado", - "certificate": "Certificado", "deleteCertConfirm": "¿Estás seguro de que quieres eliminar este certificado?", "deleteCertTitle": "Eliminar certificado?", "disableSuccess": "El certificado ha sido deshabilitado", "disabled": "Deshabilitado", "expires": "Expira", - "hashInfo": "Hash (SHA-256)", - "inUse": "en uso", - "keyUsage": { - "CRL_SIGN": "Firma de CRL", - "DATA_ENCIPHERMENT": "Cifrado de Datos", - "DECIPHER_ONLY": "Descifrado solamente", - "DIGITAL_SIGNATURE": "Firma digital", - "ENCIPHER_ONLY": "SOLO CIFRADO", - "KEY_AGREEMENT": "Acuerdo clave", - "KEY_CERT_SIGN": "Certificado de firma", - "KEY_ENCIPHERMENT": "Clave de cifrado", - "NON_REPUDIATION": "No repudio" - }, - "rsaExp": "Exponente de clave pública de RSA", - "rsaModulus": "Módulo de clave pública RSA", - "ecParameters": "Parámetros de clave pública de la CE", - "ecPoint": "Punto de clave pública de la CE", + "inUse": "En uso", "serialNumber": "Número de serie", "signCertificate": "Firmar certificado", "state": "Estado" }, "certificateProfile": { "COMMON_NAME": "Nombre común (CN)", - "COUNTRY_CODE": "Código de país (c)", - "INSTANCE_IDENTIFIER": "Identificador de instancia (c)", + "COUNTRY_CODE": "Código de país (C)", + "INSTANCE_IDENTIFIER": "Identificador de instancia (C)", "INSTANCE_IDENTIFIER_O": "Identificador de instancia (O)", - "MEMBER_CLASS": "Clase miembro (o)", + "MEMBER_CLASS": "Clase de miembros (O)", "MEMBER_CLASS_BC": "Clase miembro (BC)", "MEMBER_CLASS_OU": "Clase miembro (OU)", "MEMBER_CODE": "Código de miembros (CN)", "MEMBER_CODE_SN": "Código de miembros (SN)", - "ORGANIZATION_NAME": "Nombre de la organización (o)", + "ORGANIZATION_NAME": "Nombre de la organización (O)", "ORGANIZATION_NAME_CN": "Nombre de la organización (CN)", "SERIAL_NUMBER": "Número de serie", "SERIAL_NUMBER_SN": "Número de serie (SN)", "SERVER_CODE": "Código de servidor (CN)", "SERVER_DNS_NAME": "Nombre DNS del servidor (CN)", - "SUBJECT_ALTERNATIVE_NAME": "Nombre alternativo de sujeto (SAN)" + "SUBJECT_ALTERNATIVE_NAME": "Nombre alternativo del sujeto (SAN)" }, "client": { "action": { "delete": { - "confirmText": "¿Estas seguro que deseas eliminar este cliente?", + "confirmText": "Estás seguro de que deseas eliminar a este cliente?", "confirmTitle": "Eliminar cliente", "success": "Cliente eliminado" }, "makeOwner": { "button": "Convertir en propietario", - "confirmText1": "¿Desea convertir al miembro siguiente en el nuevo miembro Propietario de este Servidor de Seguridad?", - "confirmText2": "Al presionar el botón \"Convertir en propietario\" a continuación, se enviará una solicitud para cambiar el propietario a la autoridad gobernante de X-ROAD.", - "confirmTitle": "Convertir miembro en propietario", - "success": "Propietario modificado" + "confirmText1": "¿Desea convertir al miembro que se indica a continuación en el nuevo miembro propietario de este servidor de seguridad?", + "confirmText2": "Al presionar el botón \"Convertir en propietario\" a continuación, se enviará una solicitud para cambiar el propietario a la autoridad rectora de X-Road.", + "confirmTitle": "Convertir al miembro en propietario", + "success": "Se ha cambiado el Propietario" }, "removeOrphans": { "cancelButtonText": "No", @@ -226,26 +100,26 @@ "success": "Certificado eliminado" }, "unregister": { - "confirmText": "¿Quieres quitar el registro a este cliente?", - "confirmTitle": "Cliente no registrado", - "success": "Se quitó el registro al cliente" + "confirmText": "¿Estas seguro de que deseas quitar el registro a este cliente?", + "confirmTitle": "Se ha quitado el registro al cliente. El cliente ya no está registrado.", + "success": "Se ha quitado el registro al cliente." }, "disable": { "confirmText": "¿Quieres deshabilitar a este cliente?", "confirmTitle": "Deshabilitar el cliente", - "success": "Cliente deshabilitado en progreso" + "success": "La deshabilitación del cliente está en progreso" }, "enable": { - "confirmText": "Quieres habilitar a este cliente?", - "confirmTitle": "Habilitar el cliente", - "success": "Habilitación del cliente en progreso" + "confirmText": "Estás seguro de que deseas habilitar a este cliente?", + "confirmTitle": "Habilitación de cliente", + "success": "La habilitación del cliente está en progreso" } }, - "id": "IDENTIFICACIÓN", + "id": "ID", "member": "Miembro", - "memberClass": "Clase miembro", - "memberCode": "Código miembro", - "memberName": "Nombre de miembro", + "memberClass": "Clase del miembro", + "memberCode": "Código del miembro", + "memberName": "Nombre del miembro", "name": "Nombre", "owner": "Propietario", "status": "Estado", @@ -256,18 +130,18 @@ "registrationInProgress": "Registro en progreso", "saved": "Guardado", "disabled": "DESHABILITADO", - "disablingInProgress": "Deshabilitar en progreso", + "disablingInProgress": "Deshabilitación en progreso", "enablingInProgress": "Habilitación en progreso" }, "subsystemCode": "Código de subsistema", - "unknownMember": "Miembro no conocido" + "unknownMember": "Miembro desconocido" }, "clients": { "action": { "register": { "confirm": { - "text": "¿Está seguro de que desea enviar una solicitud de registro del cliente?", - "title": "Registre al cliente" + "text": "¿Estás seguro de que deseas enviar una solicitud de registro del cliente?", + "title": "Registro de cliente" }, "success": "Solicitud de registro del cliente enviada correctamente" } @@ -277,23 +151,23 @@ "addKey": "Agregar clave", "certificationService": "Servicio de certificación", "client": "Cliente", - "csrDetails": "Detalles de CSR", + "csrDetails": "Detalles del CSR", "csrFormat": "Formato CSR", - "eabCredRequired": "La autoridad de certificación seleccionada requiere vinculación de cuenta externa para ACME, pero las faltan credenciales en la configuración.", + "eabCredRequired": "La autoridad de certificación seleccionada requiere vinculación de cuenta externa para ACME, pero faltan las credenciales en la configuración.", "failedFetchAcmeMetadata": "No se logró obtener metadatos de ACME para la autoridad de certificación seleccionada, esto puede causar errores en los próximos pasos.", "generateCsr": "Generar CSR", - "helpCertificationService": "Autoridad de certificación (CA) que emitirá el certificado.", - "helpClient": "Miembro de X-ROAD para el cual se emitirá el certificado.", - "helpCsrFormat": "Formato de la solicitud de firma de certificado (CSR) según los requisitos de la CA.", - "helpUsage": "Política de uso del certificado: firma de mensajes o autenticación del Servidor de Seguridad.", - "saveInfo": "Genere un nuevo CSR y guárdelo en un lugar seguro.", + "helpCertificationService": "Autoridad de Certificación (CA) que emitirá el certificado.", + "helpClient": "Miembro de X-Road para el cual se emitirá el certificado.", + "helpCsrFormat": "Formato de la solicitud de firma de certificado según los requisitos de la CA.", + "helpUsage": "Política de uso del certificado: firmar mensajes o autenticar el servidor de seguridad.", + "saveInfo": "Genera un nuevo CSR y guárdalo en un lugar seguro.", "usage": "Uso", - "orderAcmeCertificate": "Solicitar un certificado del Servidor ACME con el CSR generado e importar el certificado devuelto al token." + "orderAcmeCertificate": "Solicita el certificado al servidor ACME con el CSR generado e importa el certificado devuelto al token." }, "customValidation": { "invalidEndpoint": "El Endpoint contiene caracteres ilegales", "invalidUrl": "URL no es válida", - "invalidXrdIdentifier": "El valor del identificador contiene caracteres ilegales", + "invalidXrdIdentifier": "El valor del identificador contiene caracteres no permitidos", "requiredIf": "Se requiere el campo {fieldName}" }, "diagnostics": { @@ -302,14 +176,14 @@ }, "globalConfiguration": { "configurationStatus": { - "ERROR_CODE_CANNOT_DOWNLOAD_CONF": "No se puede descargar la configuración global. Verifique la conexión de red.", + "ERROR_CODE_CANNOT_DOWNLOAD_CONF": "No se puede descargar la configuración global. VerifiCa la conexión de red.", "ERROR_CODE_EXPIRED_CONF": "La configuración global descargada ha expirado.", "ERROR_CODE_INTERNAL": "Se produjo un error interno.", "ERROR_CODE_INVALID_SIGNATURE_VALUE": "Valor de firma no válido.", "ERROR_CODE_MISSING_PRIVATE_PARAMS": "La configuración global descargada no contenía parámetros privados", - "ERROR_CODE_UNINITIALIZED": "El cliente de configuración se está inicializando", - "SUCCESS": "Exito", - "UNKNOWN": "Descnocido" + "ERROR_CODE_UNINITIALIZED": "La configuración del cliente se está inicializando.", + "SUCCESS": "Todo está correcto", + "UNKNOWN": "Desconocido" }, "title": "Configuración global" }, @@ -317,12 +191,12 @@ "earliest": "Versión más reciente compatible", "latest": "Última versión compatible", "notSupported": "La versión actual de Java no es compatible", - "ok": "Correcto", + "ok": "Ok", "title": "Versión java", "vendor": "Nombre del proveedor" }, "mailNotificationConfiguration": { - "title": "Estado de notificación de correo", + "title": "Estado de notificaciones por correo", "failureEnabled": "Notificaciones de falla", "successEnabled": "Notificaciones de éxito", "configuration": "Configuración del servidor de correo", @@ -332,7 +206,7 @@ "false": "Deshabilitado" }, "confStatus": { - "true": "Configurado", + "true": "Configuredo", "false": "Configuración incompleta" } }, @@ -341,29 +215,29 @@ "ocspResponders": { "certificationService": "Servicio de certificación:", "ocspStatus": { - "ERROR_CODE_OCSP_CONNECTION_ERROR": "Incapaz de conectarse al Servicio OCSP Responder", - "ERROR_CODE_OCSP_FAILED": "No se puede obtener la respuesta del Servicio OCSP Responder", - "ERROR_CODE_OCSP_RESPONSE_INVALID": "Incapaz de analizar la respuesta del Servicio OCSP Responder", - "ERROR_CODE_OCSP_RESPONSE_UNVERIFIED": "No se puede verificar la respuesta del Servicio OCSP Responder", + "ERROR_CODE_OCSP_CONNECTION_ERROR": "Incapaz de conectarse al servicio OCSP Responder", + "ERROR_CODE_OCSP_FAILED": "No se puede obtener la respuesta del servicio OCSP Responder", + "ERROR_CODE_OCSP_RESPONSE_INVALID": "Incapaz de analizar la respuesta OCSP", + "ERROR_CODE_OCSP_RESPONSE_UNVERIFIED": "No se puede verificar la respuesta OCSP", "ERROR_CODE_OCSP_UNINITIALIZED": "Solicitud de estado aún no enviada", - "SUCCESS": "Exito", + "SUCCESS": "Todo bien", "UNKNOWN": "Desconocido" }, "title": "Servicio OCSP Responder" }, "previousUpdate": "Actualización anterior", - "serviceUrl": "URL de servicio", + "serviceUrl": "URL del servicio", "status": "Estado", "timestamping": { "timestampingStatus": { "ERROR_CODE_INTERNAL": "Se produjo un error interno", - "ERROR_CODE_MALFORMED_TIMESTAMP_SERVER_URL": "URL del servidor de sellado de tiempo malformado. Revise la URL.", - "ERROR_CODE_TIMESTAMP_REQUEST_TIMED_OUT": "Tiempo de espera de conexión agotado. Verifique la conexión de red con el proveedor de configuración global.", - "ERROR_CODE_TIMESTAMP_UNINITIALIZED": "Conexión OK, aún no se realiza la solicitud de sellado de tiempo", - "SUCCESS": "Exito", - "UNKNOWN": "Unknown" + "ERROR_CODE_MALFORMED_TIMESTAMP_SERVER_URL": "URL del servidor de marca de tiempo malformado. Revise la URL.", + "ERROR_CODE_TIMESTAMP_REQUEST_TIMED_OUT": "Tiempo de agotado. Verifique la conexión de red con el proveedor de configuración global.", + "ERROR_CODE_TIMESTAMP_UNINITIALIZED": "Conexión OK, aún no se realizó ninguna solicitud de marca de tiempo", + "SUCCESS": "Todo bien", + "UNKNOWN": "Desconocido" }, - "title": "Sellado de tiempo" + "title": "Marco de tiempo" }, "encryption": { "status": { @@ -373,15 +247,15 @@ "statusTitle": "Estado de cifrado:", "backup": { "title": "Cifrado de copia de seguridad", - "configuredKeyId": "ID de clave configurada" + "configuredKeyId": "Clave de ID configurada" }, "messageLog": { "archive": { "title": "Cifrado de archivo de registro de mensajes", "groupingTitle": "Regla de agrupación:", "memberIdentifier": "Identificador de miembro", - "keyId": "ID de clave", - "defaultKeyNote": "Este miembro está configurado para usar la clave de cifrado predeterminada de los servidores. Para una seguridad adicional, considere definir una clave específica para ser utilizada." + "keyId": "Clave de ID", + "defaultKeyNote": "Este miembro está configurado para usar la clave de cifrado predeterminada de los servidores. Para una seguridad adicional, considera definir una clave específica para ser utilizada." }, "database": { "title": "Cifrado de la base de datos del registro de mensajes" @@ -390,74 +264,70 @@ } }, "endpoints": { - "addEndpoint": "Agregar Endpoint", - "all": "ALL", - "deleteEndpointText": "¿Estás seguro que deseas eliminar este Endpoint?", + "addEndpoint": "Agregar Endpooint", + "all": "TODO", + "deleteEndpointText": "¿Estás seguro de que deseas eliminar este endpoint?", "deleteSuccess": "Endpoint eliminado con éxito", - "deleteTitle": "Eliminar el Endpoint", - "details": "Detalles del Endpoint", - "editSuccess": "Cambios en el Endpoint guardado con éxito", - "endpointHelp1": "Las rutas son relativas a la ruta base de API, p.'/Pets'. El asterisco (*) se puede usar como un comodín", - "endpointHelp2": "* = coincidir con un segmento de ruta.", - "endpointHelp3": "** = coincidir cero o más segmentos, p.'/mascotas/**'.", - "endpointHelp4": "Los parámetros de la ruta deben reemplazarse con un asterisco, p.'/PETS/{id}/Images' => '/Pets/*/Images'.", + "deleteTitle": "Eliminar el endpoint", + "details": "Detalles del endpoint", + "editSuccess": "Cambios en el endpoint guardados con éxito", + "endpointHelp1": "Las rutas son relativas a la ruta base de API, p.'/Mascotas'. El asterisco (*) se puede usar como un comodín", + "endpointHelp2": "* = coincide con un segmento de ruta.", + "endpointHelp3": "** = coincide con cero o más segmentos, p.'/mascotas/**'.", + "endpointHelp4": "Los parámetros de la ruta deben reemplazarse con un asterisco, p.'/MASCOTAS/{id}/Imagenes' => '/Mascotas/*/Imagenes'.", "httpRequestMethod": "Método de solicitud HTTP", "path": "Ruta", - "saveNewEndpointSuccess": "Nuevo Endpoint creado con éxito" + "saveNewEndpointSuccess": "Nuevo endpoint creado con éxito" }, "error_code": { - "accessright_not_found": "Derecho de acceso no encontrado", + "accessright_not_found": "Permiso de acceso no encontrado", "acme": { - "eab_credentials_missing": "Faltan las credenciales de vinculación de Cuenta Externa, son requeridas", - "eab_secret_length": "Longitud inválida del secreto base64 de la vinculación de la cuenta externa", - "account_key_pair_error": "Falló el par de claves para la cuenta del servidor ACME", - "account_keystore_password_missing": "Falta la contraseña del almacén de claves de la cuenta ACME desde el archivo de configuración acme.yml", - "fetching_metadata_error": "Error al obtener los metadatos del servidor ACME. Es posible que el servidor ACME no se encuentre accesible", - "account_creation_failure": "La creación de una cuenta en el servidor ACME falló. Si se requiere unión de cuenta externa, verifique que las credenciales correctas estén configuradas en acme.yml", - "order_creation_failure": "La creación de un nuevo pedido en el servidor ACME falló", - "order_finalization_failure": "Finalizar el pedido en el servidor ACME falló", - "http_challenge_file_creation": "La creación del archivo de desafío HTTP de la creación de ACME falló", - "http_challenge_file_deletion": "Eliminar el archivo de desafío ACME HTTP falló", - "http_challenge_missing": "Actualmente, X-Road solo admite el desafío HTTP, pero este no está disponible entre las opciones posibles del servidor ACME.", - "challenge_trigger_failure": "Falló la solicitud al servidor ACME para validar el desafío", - "authorization_failure": "La autorización falló. Generalmente relacionado con una falla de validación de desafío que se requiere para probar la propiedad del dominio", - "authorization_wait_failure": "Falló la espera para que se complete la Autorización", - "certificate_failure": "Obtener el certificado del servidor ACME", - "certificate_wait_failure": "Falló la espera para la creación del nuevo Certificado" + "eab_credentials_missing": "Faltan las credenciales de vinculación de cuenta externa, pero son requeridas", + "eab_secret_length": "Longitud de la clave secreta base64 de vinculación de cuenta externa no válida", + "account_key_pair_error": "Error al obtener el par de claves para la cuenta del servidor ACME", + "account_keystore_password_missing": "Falta la contraseña del almacén de claves de la cuenta ACME en el archivo de configuración acme.yml", + "fetching_metadata_error": "Error al obtener los metadatos del servidor ACME. Es posible que el servidor ACME no sea accesible", + "account_creation_failure": "Error al crear la cuenta en el servidor ACME. Si se requiere vinculación de cuenta externa, verifique que las credenciales correctas estén configuradas en acme.yml", + "order_creation_failure": "Error al crear un nuevo pedido en el servidor ACME", + "order_finalization_failure": "Error al finalizar el pedido en el servidor ACME", + "http_challenge_file_creation": "Error al crear el archivo de desafío HTTP de ACME", + "http_challenge_file_deletion": "Error al eliminar el archivo de desafío HTTP de ACME", + "http_challenge_missing": "Actualmente, X-Road solo admite el desafío HTTP, pero este no está disponible entre las opciones posibles del servidor ACME", + "challenge_trigger_failure": "Error al solicitar al servidor ACME validar el desafío", + "authorization_failure": "Error de autorización. Generalmente relacionado con una falla en la validación del desafío necesario para demostrar la propiedad del dominio", + "authorization_wait_failure": "Error al esperar que se complete la autorización", + "certificate_failure": "Error al obtener el certificado del servidor ACME", + "certificate_wait_failure": "Error al esperar la creación del nuevo certificado" }, "action_not_possible": "La acción no es posible", - "additional_member_already_exists": "Ya existe miembro adicional", - "anchor_already_exists": "Ancla ya existe", + "additional_member_already_exists": "Ya existe un miembro adicional", + "anchor_already_exists": "El Ancla ya existe", "anchor_file_not_found": "Archivo Ancla no encontrado", "anchor_not_found": "Ancla no encontrado", "anchor_upload_failed": "Falló la carga del Ancla", - "api_key_not_found": "Clave de API no encontrada", "auth_cert_not_supported": "El certificado de autenticación no es compatible", - "backup_file_not_found": "Archivo de respaldo no encontrado", - "backup_generation_failed": "Falló la generación de copias de seguridad", - "backup_restore_interrupted": "Restauración de copia de seguridad interrumpida", - "base_endpoint_not_found": "Endpoint base no encontrado", - "ca_cert_status_processing_failure": "El procesamiento de estado del certificado de CA falló", + "base_endpoint_not_found": "El endpoint base no se ha encontrado", + "ca_cert_status_processing_failure": "Error al procesar el estado del certificado de la CA", "cannot_delete_owner": "No se puede eliminar al propietario", - "cannot_register_owner": "No se puede registrar al propietario", - "cannot_unregister_owner": "No se puede anular el propietario", - "cert_wrong_usage": "Uso incorrecto de certificado", + "cannot_register_owner": "No se puede quitar el registro al propietario", + "cannot_unregister_owner": "No se puede anular al propietario", + "cert_wrong_usage": "Uso incorrecto del certificado", "certificate_already_exists": "El certificado ya existe", - "certificate_authority_not_found": "Autoridad de certificado no encontrada", + "certificate_authority_not_found": "Autoridad de certificación (AC) no encontrada", "certificate_id_not_found": "ID de certificado no encontrado", "certificate_not_found": "Certificado no encontrado", - "certificate_profile_instantiation_failure": "Instanciación del perfil de certificado fallido", + "certificate_profile_instantiation_failure": "Error al instanciar el perfil de certificado", "client_already_exists": "El cliente ya existe", "client_not_deleted": "No se puede eliminar las claves, certificados y CSRs, porque pertenecen a un cliente existente", - "client_not_found": "cliente no encontrado", - "conf_download_failed": "Falló la descarga de la configuración", + "client_not_found": "Cliente no encontrado", + "conf_download_failed": "Error al descargar la configuración", "conf_verification": { - "anchor_not_for_external_source": "El Ancla apunta a una fuente de configuración interna. Solo se admiten Anclas de fuentes de configuración externa como Anclas de confianza.", - "missing_private_params": "Fallado de importación del Ancla de configuración: archivo de Ancla no válido", + "anchor_not_for_external_source": "El Ancla apunta a una fuente de configuración interna. Solo se admiten Anclas de fuentes de configuración externas como Anclas confiables.", + "missing_private_params": "Error al importar el Ancla de configuración: archivo de Ancla no es válido", "other": "La configuración de la fuente no pasó la verificación", "outdated": "La configuración de la fuente está desactualizada", - "signature_invalid": "La firma de la configuración no se puede verificar", - "unreachable": "No es posible comunicarse con la fuente de configuración, verifique la URL de origen en el archivo de Ancla cargado" + "signature_invalid": "No se puede verificar la firma de la configuración", + "unreachable": "No se puede alcanzar la fuente de configuración, verifica la URL de origen en el archivo de Ancla cargado" }, "core": { "Server": { @@ -471,43 +341,39 @@ } }, "Signer": { - "CertNotFound": "No se encuentra la certificación", + "CertNotFound": "No se encuentra el certificado", "KeyNotFound": "No se encuentra la clave", - "TokenNotAvailable": "Token no está disponible", + "TokenNotAvailable": "El token no está disponible", "TokenNotFound": "No se encuentra el token", "UnknownMember": "X -Road Core - Signer: miembro desconocido" } }, - "csr_not_found": "CSR no encontrado", + "csr_not_found": "No se encontró el CSR", "diagnostic_request_failed": "Falló la solicitud de diagnóstico", - "duplicate_accessright": "Derecho de acceso duplicado", - "endpoint_already_exists": "El Endpoint ya existe", - "endpoint_not_found": "Endpoint no encontrado", - "generate_backup_interrupted": "Generación de copia de seguridad interrumpida", - "global_conf_download_request_failed": "La solicitud de descarga de configuración global falló", + "duplicate_accessright": "Permiso de acceso duplicado", + "endpoint_already_exists": "El enpoint ya existe", + "endpoint_not_found": "El endpoint no se ha encontrado", + "global_conf_download_request_failed": "La solicitud de descarga de la configuración global falló", "global_conf_outdated": "La configuración global está desactualizada", - "gpg_key_generation_failed": "Falló la generación GPG KeyPair", - "gpg_key_generation_interrupted": "Generación de GPG interrumpida", + "gpg_key_generation_failed": "Falló en la generación del GPG KeyPair", + "gpg_key_generation_interrupted": "Generación del GPG interrupida", "identifier_not_found": "Identificador no encontrado", - "illegal_generated_endpoint_remove": "La eliminación del Endpoint generado no está permitido", - "illegal_generated_endpoint_update": "No se permite actualizar el Endpoint generado", - "import_internal_cert_failed": "Importación de certificado interno fallido", - "internal_anchor_upload_invalid_instance_id": "El Ancla tiene una identificación de instancia no válida", - "internal_key_cert_interrupted": "Certificado de clave interna interrumpida", - "invalid_backup_file": "Archivo de copia de seguridad no válido", + "illegal_generated_endpoint_remove": "No está permitido eliminar el endpoint generado", + "illegal_generated_endpoint_update": "No está permitido actualizar el endpoint generado", + "import_internal_cert_failed": "Error al importar el certificado interno", + "internal_anchor_upload_invalid_instance_id": "El Ancla tiene una identificación de instancia inválida", + "internal_key_cert_interrupted": "Clave de certificado interna interrumpida", "invalid_cert": "Certificado no válido", - "invalid_characters_pin": "PIN tiene caracteres no válidos", - "invalid_distinguished_name": "El nombre distinguido (DN) no es válido", - "invalid_dn_parameter": "Parámetro DN no válido", - "invalid_filename": "Nombre de archivo no válido", - "invalid_https_url": "URL no usa HTTPS", - "invalid_init_params": "Parámetros de inicialización no válidos", - "invalid_instance_identifier": "Identificador de instancia no válido", - "invalid_member_class": "Clase de miembro inválido", - "invalid_service_client_id": "ID de cliente no válido", - "invalid_service_url": "URL de servicio no válido", - "invalid_wsdl": "WSDL no válido", - "invalid_wsdl_service_identifier": "Identificador de servicio WSDL no válido", + "invalid_characters_pin": "El PIN tiene caracteres no permitidos", + "invalid_dn_parameter": "Parámetro DN no es válido", + "invalid_https_url": "La URL no utiliza HTTPS", + "invalid_init_params": "Los Parámetros de inicialización no son válidos", + "invalid_instance_identifier": "El identificador de instancia no es válido", + "invalid_member_class": "La clase de miembro no es válida", + "invalid_service_client_id": "El ID de cliente del servicio no es válido", + "invalid_service_url": "La URL del servicio no es válida", + "invalid_wsdl": "El WSDL no es válido", + "invalid_wsdl_service_identifier": "El identificador de servicio WSDL no es válido", "key_and_cert_generation_failed": "Falló la generación de clave y certificado", "key_not_found": "Clave no encontrada", "local_group_code_already_exists": "El código de grupo local ya existe", @@ -516,45 +382,41 @@ "local_group_not_found": "Grupo local no encontrado", "malformed_anchor": "Ancla malformada", "malformed_url": "URL malformada", - "management_request_sending_failed": "Envío de solicitud de administración fallida", + "management_request_sending_failed": "Error en la solicitud de administración enviada", "member_already_owner": "El miembro ya es el propietario", - "member_class_exists": "La clase de miembro ya existe", - "member_class_not_provided": "No se proporciona la clase de miembros", - "member_code_exists": "Existe el código miembro", - "member_code_not_provided": "No se proporciona código miembro", + "member_class_exists": "La clase miembro ya existe", + "member_class_not_provided": "No has proporcionado la clase de miembros", + "member_code_exists": "El código de miembro ya existe", + "member_code_not_provided": "No has proporcionado el código de miembro", "missing_parameter": "Parámetro faltante", "openapi_parsing_error": "Error al analizar la descripción de OpenApi3", "orphans_not_found": "Las claves huérfanas, certificados y/o CSR que pertenecen al cliente dado no fueron encontrados", - "pin_code_exists": "Existe el código PIN", - "pin_code_not_provided": "El código PIN no se proporciona", - "pin_incorrect": "Pin incorrecto. Por favor intente de nuevo.", - "pin_min_char_classes_count": "Recuento mínimo de clases de caracteres para el PIN", + "pin_code_exists": "El código PIN ya existe", + "pin_code_not_provided": "No has proporcionado el código PIN", + "pin_incorrect": "PIN incorrecto. Por favor intente de nuevo.", + "pin_min_char_classes_count": "Cantidad mínima de clases de caracteres para el PIN", "pin_min_length": "Longitud mínima", "process_failed": "Falló el proceso", - "process_not_executable": "El proceso no se puede ejecutar", - "resource_read_failed": "No se pudo leer el recurso", - "restore_process_failed": "El proceso de restauración falló", + "process_not_executable": "El proceso no es ejecutable", "server_already_fully_initialized": "El servidor ya está completamente inicializado", - "server_code_exists": "El código del servidor existe", - "server_code_not_provided": "El código del servidor no se proporciona", - "service_already_exists": "Ya existe el servicio", - "service_client_not_found": "Cliente de servicio no encontrado", + "server_code_exists": "El código del servidor ya existe", + "server_code_not_provided": "No se ha proporcionado el código del servidor", + "service_already_exists": "El servicio ya existe", + "service_client_not_found": "No se ha encontrado el Cliente de servicio", "service_code_already_exists": "El código de servicio ya existe", "service_description_not_found": "Descripción del servicio no encontrada", "service_not_found": "servicio no encontrado", "sign_cert_not_supported": "El certificado de firma no es compatible", - "signer_not_reachable": "El firmante no es actualmente accesible. Consulte el registro del firmante para más detalles.", - "software_token_init_failed": "Falló la inicialización del token de software", - "timestamping_service_already_configured": "El servicio de sellado de tiempo ya está configurado", - "timestamping_service_not_found": "Servicio de sellado de tiempo no encontrado", + "signer_not_reachable": "El firmante no es actualmente accesible. Consulte el registro (log) del firmante para más detalles.", + "software_token_init_failed": "Error al inicializar el token de software", + "timestamping_service_already_configured": "El servicio de marca de tiempo ya está configurado", + "timestamping_service_not_found": "Servicio de marca de tiempo no encontrado", "token": { "malformed_csr": "Los datos de CSR están malformados" }, "token_not_active": "El token no está activo", - "token_not_found": "Token no encontrado", "unsupported_openapi_version": "Versión OpenAPI no soportada. Solo las versiones 3.0.x y 3.1.0 son actualmente compatibles.", "url_already_exists": "URL ya existe", - "validation_failure": "Falla de validación", "warnings_detected": "Advertencias detectadas", "weak_pin": "PIN débil", "wrong_key_usage": "Uso de la clave incorrecta", @@ -566,8 +428,8 @@ }, "fields": { "addClient": { - "memberClass": "Clase miembro", - "memberCode": "Código miembro", + "memberClass": "Clase del miembro", + "memberCode": "Código del miembro", "subsystemCode": "Código de subsistema" }, "C": "Código del país", @@ -591,12 +453,9 @@ "name": "Nombre" }, "O": "Nombre de la organización", - "password": "Contraseña", "path": "Ruta", "pin": "PIN", - "memberClass": "Clase miembro", "memberCode": "Código miembro", - "securityServerCode": "Código de servidor de seguridad", "securityServerAddress": "Dirección del servidor de seguridad", "serialNumber": "Número de serie", "serviceCode": "Código de servicio", @@ -606,9 +465,9 @@ "serviceDescriptionUpdate": { "newRestServiceCode": "Código de servicio" }, - "serviceTimeout": "Se agotó el tiempo de espera", + "serviceTimeout": "Tiempo de espera agotado", "serviceType": "Tipo de servicio", - "serviceUrl": "Url", + "serviceUrl": "URL", "subjectAltName": "Nombre alternativo", "token": { "friendlyName": "Nombre amistoso", @@ -617,43 +476,30 @@ "oldPin": "PIN" }, "tokenPin": "PIN", - "url": "Url", + "url": "URL", "username": "Nombre de usuario", "certificationService": "Servicio de certificación" }, - "footer": { - "copyright": { - "company": "Instituto Nordico para Soluciones de Introperabilidad (NIIS)", - "licenceInfo": "Información de la licencia", - "title": "Derechos de autor" - }, - "software": { - "feedback": "Comentario", - "title": "Software", - "versionPrefix": "X-ROAD" - } - }, "global": { - "name": "Nombre", - "appTitle": "Servidor de seguridad X-ROAD" + "appTitle": "Servidor de seguridad X-road" }, "general": { "instance": "Instancia", - "memberClass": "Clase miembro", - "memberCode": "Código miembro", + "memberClass": "Clase del miembro", + "memberCode": "Código del miembro", "name": "Nombre", "subsystem": "subsistema", "subsystemCode": "Código de subsistema", "type": "Tipo" }, "globalAlert": { - "backupRestoreInProgress": "La configuración del servidor de seguridad se está restaurando desde una copia de seguridad. El proceso fue iniciado {starttime}", - "globalConfigurationInvalid": "La configuración global está vencida", + "backupRestoreInProgress": "La configuración del servidor de seguridad se está restaurando desde una copia de seguridad. El proceso se inició a las {starttime}", + "globalConfigurationInvalid": "La configuración global ha expirado", "secondaryNode": "Está en un nodo secundario en un clúster de servidor de seguridad. La modificación de la configuración está deshabilitada.", - "softTokenPinNotEntered": "Ingrese el PIN token de software", - "certificateRenewalJobFailure": "El último trabajo de renovación del certificado ha fallado.", + "softTokenPinNotEntered": "Ingrese el PIN del soft token", + "certificateRenewalJobFailure": "Se produjo un error en la última tarea de renovación del certificado.", "certificateRenewalJobFailureAuth": "Certificado de autenticación fallido (s):", - "certificateRenewalJobFailureSign": "Certificado (s) de firma fallido:", + "certificateRenewalJobFailureSign": "Certificado de firma fallido (s):", "navigateToKeysPage": "Consulte la página de claves y certificados para obtener más detalles" }, "initialConfiguration": { @@ -661,7 +507,7 @@ "generated": "Generado", "hash": "Hash (SHA-224)", "info": "Importe el Ancla de configuración proporcionado por el administrador del servidor central.", - "title": "Ancla de la configuración" + "title": "Ancla de configuración" }, "member": { "info": "Defina el miembro que actuará como propietario del servidor de seguridad:", @@ -669,12 +515,12 @@ "title": "Miembro del propietario" }, "noInitializationStatus": "No hay estado de inicialización disponible", - "noPermission": "Este servidor de seguridad no está inicializado actualmente, comuníquese con un administrador para hacer la configuración inicial", + "noPermission": "Este servidor de seguridad no está inicializado actualmente, comunícate con un administrador para hacer la configuración inicial", "pin": { "confirmPin": "Confirmar PIN", - "info1": "El token de software es el lugar donde se almacenan las claves de autenticación del servidor de seguridad. Defina un PIN para iniciar sesión en el token de software.", - "info2": "Se recopila toda la información requerida, presione el botón Enviar para inicializar el servidor de seguridad.", - "info3": "Una vez que se complete la inicialización, debe finalizar la configuración del Servidor de Seguridad; simplemente haga clic en el botón Configurar en la notificación emergente que aparecerá en unos momentos", + "info1": "El token de software es el lugar donde se almacenan las claves de autenticación del servidor de seguridad. Define un PIN para iniciar sesión en el token de software.", + "info2": "Se recopila toda la información requerida, presiona el botón Enviar para inicializar el servidor de seguridad.", + "info3": "Una vez que se realiza la inicialización, debes completar la configuración del servidor de seguridad; simplemente haz clic en el botón Configurar en la notificación que aparecerá en unos momentos.", "pin": "PIN", "pinMatchError": "La confirmación de PIN no coincide", "title": "PIN" @@ -682,73 +528,79 @@ "success": "Servidor inicializado", "title": "Configuración inicial", "warning": { - "init_server_id_exists": "La identificación del servidor existe", - "init_server_owner_exists": "El propietario del servidor existe", - "init_servercode_exists": "El codigo de servidor existe", - "init_software_token_initialized": "El token de software está inicializado", - "init_unregistered_member": "Se ha quitado el registro del miembro" + "init_server_id_exists": "El ID del servidor ya existe", + "init_server_owner_exists": "El propietario del servidor ya existe", + "init_servercode_exists": "El ServidorCode ya existe", + "init_software_token_initialized": "El token de software se está inicializando", + "init_unregistered_member": "El miembro no se encuentra registrado" } }, "internalServers": { - "certHash": "Certificado hash (SHA/1)", + "certHash": "Certificado Hash", "connTypeUpdated": "Tipo de conexión actualizado", "connectionInfo": "El tipo de conexión para servidores en el rol del proveedor de servicios se establece en la pestaña Servicios por la URL del servicio (HTTP/HTTPS).", "connectionType": "Tipo de conexión", "ssCertTitle": "Certificado de servidor de seguridad", "tlsTitle": "Certificado de TLS del sistema de información" }, + "certificate": { + "hash": "Certificado Hash", + "subjectDistinguishedName": "Sujeto Nombre distinguido", + "notBefore": "No antes", + "notAfter": "No después" + }, "keys": { "addKey": "Agregar clave", - "authDetailsTitle": "Detalles clave de autenticación", + "authDetailsTitle": "Detalles de la clave de autenticación", "authKeyCert": "Claves y certificados de autenticación", - "authNotSupported": "Clave de autenticación no compatible", - "auth_key_with_registered_cert_warning": "La clave tiene certificados a los cuales se les debe quitar el desregistro antes de su eliminación. ¿Desea quitar el registro y proceder con la eliminación de los certificados asociados y la clave de la configuración del servidor? ID de la clave:", + "authNotSupported": "La clave de autenticación no es compatible", + "auth_key_with_registered_cert_warning": "La clave tiene certificados que deben ser desregistrados antes de su eliminación. ¿Desea continuar con el desregistro y la eliminación de los certificados asociados y la clave de la configuración del servidor? ID de la clave:", "certMarkedForDeletion": "Certificado marcado para la eliminación", "certRegistrationInfo": "Nombre DNS del servidor de seguridad o dirección IP", "certStatus": { "deletion": "Eliminación en progreso", "globalError": "Error global", - "onlyInHWToken": "Solo en token", + "onlyInHWToken": "Solo en la token", "registered": "Registrado", "registration": "Registro en progreso", "saved": "Guardado" }, "certificateRegistered": "Solicitud de registro de certificado enviado correctamente", - "certificateUnregistered": "Solicitud de eliminación de registro de certificado enviado correctamente", + "certificateUnregistered": "Solicitud de eliminación de registro del certificado enviado correctamente", "csrDeleted": "CSR eliminado", "deleteCsr": "Eliminar CSR", - "deleteCsrText": "¿Estás seguro que deseas eliminar este CSR?", + "deleteCsrText": "¿Estás seguro de que deseas eliminar este CSR?", "deleteCsrTitle": "¿Eliminar CSR?", - "deleteKeyText": "¿Está seguro de que desea eliminar esta clave y todos los certificados asociados de la configuración del servidor?", - "deleteTitle": "¿Eliminar la calve?", - "detailsTitle": "Detalles de clave", + "deleteKeyText": "¿Estás seguro de que deseas eliminar de la configuración del servidor, esta clave y todos los certificados asociados?", + "deleteTitle": "¿Eliminar la clave?", + "detailsTitle": "Detalles clave", "expires": "Expira", "friendlyName": "Nombre amistoso", "generateCsr": "Generar CSR", "globalErrors": "Errores globales", "gotIt": "Entiendo", - "helpTextApi": "Las claves API se utilizan para autenticar las llamadas de API a la API REST de administración del servidor de seguridad.Las claves API están asociadas con roles que definen los permisos otorgados a la clave API.", + "helpTextApi": "Las claves API se utilizan para autenticar las llamadas de API a la API REST de administración del servidor de seguridad. Las claves API están asociadas con roles que definen los permisos otorgados a la clave API.", "helpTextKeys": "La clave de autenticación y el certificado certifican la autenticidad de un servidor de seguridad. Se utilizan para la autenticación en conexiones entre servidores de seguridad. La clave de firma y el certificado certifican la autenticidad de un miembro de X-Road. Se utilizan para firmar y verificar la integridad de los mensajes mediados.", "helpTextSS": "El certificado TLS del servidor de seguridad se utiliza en conexiones entre el servidor de seguridad y un sistema de información. El certificado TLS interno se utiliza como certificado de cliente y servidor dependiendo de los roles del servidor de seguridad y el sistema de información.", "helpTitleApi": "Claves de API", "helpTitleKeys": "Claves de autenticación y firma", "helpTitleSS": "Certificado TLS del servidor de seguridad", - "id": "IDENTIFICACIÓN", - "importCert": "Importar certificado", - "importCertSuccess": "El Certificado se cargó con éxito", - "incorrectPin": "PIN incorrecto. Por favor intente de nuevo.", + "id": "ID", + "importCert": "Importar certificado.", + "importCertSuccess": "Certificado importado con éxito", + "incorrectPin": "PIN incorrecto. Por favor intente de nuevo.", "keyDeleted": "Clave eliminada", "keyId": "ID de clave:", - "keyInfo": "Información de la clave", - "keyLabelInput": "Etiqueta de la clave", + "keyInfo": "Información clave", + "keyLabelInput": "Etiqueta de clave", "keySaved": "Clave guardada", "label": "Etiqueta:", "logIn": "Acceso", "logOut": "Finalizar la sesión", - "logOutText": "¿Finalizar la sesión del token?", + "logOutText": "¿Cerrar sesión del token?", "logOutTitle": "Finalizar la sesión", "loggedIn": "Iniciado sesión en token", - "loggedOut": "Sesión de token finalizada", + "loggedOut": "Sesión del token finalizada", "noIssues": "No hay problemas", "ocsp": "OCSP", "ocspStatus": { @@ -759,10 +611,10 @@ "suspended": "Suspendido", "unknown": "Desconocido" }, - "orderAcmeCertificate": "Solicitud de Certificado", + "orderAcmeCertificate": "Solicitar certificado", "acmeCertOrdered": "Certificado solicitado con éxito", "readOnly": "Solo lectura:", - "keyAlgorithm": "Algoritmo de clave:", + "keyAlgorithm": "Algoritmo clave:", "registrationRequest": "Solicitud de registro", "renewal": "Renovación automática", "request": "Solicitud", @@ -772,7 +624,7 @@ "token": "Token:", "tokenDetails": "Detalles del token", "tokenId": "ID de token:", - "tokenInfo": "Información token", + "tokenInfo": "Información del token", "tokenPin": "PIN", "tokenSaved": "Token guardado", "tokenStatus": { @@ -785,11 +637,11 @@ "type": "Tipo:", "unknown": "Tipo de clave no especificado", "unregisterError": "No se pudo registrar el certificado. ¿Deseas continuar con la eliminación de certificados de todos modos?", - "unregisterText": "¿Quieres quitar el registro de este certificado?", + "unregisterText": "¿Deseas quitar el registro a este certificado?", "unregisterTitle": "Quitar registro de certificado" }, "localGroup": { - "accessDate": "Derechos de acceso dados", + "accessDate": "Permisos de acceso otorgados", "addLocalGroup": "Agregar grupo local", "addMembers": "Agregar miembros", "addSelected": "Agregar seleccionado", @@ -800,13 +652,13 @@ "description": "Descripción", "groupDeleted": "Grupo eliminado", "groupMembers": "Miembros del grupo", - "id": "Identificación", + "id": "ID", "localGroup": "Grupo local", "localGroupAdded": "Grupo local agregado", "name": "Nombre de miembro", - "noResults": "Su búsqueda no encontró resultados.", + "noResults": "La búsqueda no obtuvo resultados.", "removeAllText": "¿Estás seguro de que quieres eliminar a todos los miembros de este grupo?", - "removeAllTitle": "¿Remover a los miembros?", + "removeAllTitle": "¿Remover todos los miembros?", "removeText": "¿Estás seguro de que quieres eliminar a este miembro?", "removeTitle": "¿Eliminar miembro?", "searchOptions": "Opciones de búsqueda" @@ -815,34 +667,16 @@ "addGroup": "Agregar grupo", "code": "Código", "description": "Descripción", - "memberCount": "Cantidad de miemros", + "memberCount": "Cantidad de miembros", "updated": "Actualizado" }, - "login": { - "errorMsg401": "Nombre de usuario o contraseña incorrectos", - "generalError": "Error de inicio de sesion. Por favor intente de nuevo.", - "logIn": "Acceso", - "logOut": "Finalizar la sesión" - }, - "logout": { - "idleWarning": "Ha estado inactivo durante 30 minutos y su sesión ha finalizado. Por razones de seguridad, se desconectará.", - "sessionExpired": "Sesión expirada" - }, "noData": { - "loading": "Cargando ... por favor espera", "noBackUpEncryptionKeys": "No hay claves de cifrado de copia de seguridad configuradas", - "noBackups": "No hay copias de seguridad todavía", - "noCertificate": "Sin certificado", - "noCertificates": "Sin certificados", "noClientData": "Sin datos del cliente", - "noCertificateAuthorities": "No hay autoridades de certificado", - "noData": "Sin datos", + "noCertificateAuthorities": "No hay autoridades de certificación", "noLocalGroups": "No hay grupos locales", - "noMatches": "Sin criterios de coincidencia de elementos", - "noServices": "Sin servicios", "noServiceClients": "No hay clientes de servicio", - "noTimestampingServices": "Sin servicios de sellado de tiempo", - "noTokens": "No hay Tokens" + "noTimestampingServices": "Sin servicios de marca de tiempo" }, "serviceClientType": { "globalGroup": "Grupo global", @@ -851,23 +685,23 @@ }, "serviceClients": { "accessRights": "Derechos de acceso", - "accessRightsGiven": "Derechos de acceso otorgados", + "accessRightsGiven": "Derechos de acceso dados", "addSelected": "Agregar seleccionado", "addService": "Agregar servicio", "addServiceClient": "Agregar sujeto", - "addServiceClientAccessRightSuccess": "Derechos de acceso agregados con éxito", - "addServiceClientTitle": "Agregar un Sujeto", - "id": "IDENTIFICACIÓN", + "addServiceClientAccessRightSuccess": "Derechos de acceso otorgados con éxito", + "addServiceClientTitle": "Agregar un sujeto", + "id": "ID", "memberGroupCodeLabel": "Miembro/código de grupo", "memberGroupStep": "Miembro / grupo", "name": "Nombre del miembro / Descripción del grupo", - "noAccessRights": "Cliente no tiene derechos de acceso", + "noAccessRights": "Sin permisos de acceso a este cliente", "noAvailableServices": "No hay servicios disponibles", "removeAll": "Eliminar todo", - "removeAllText": "¿Está seguro de que desea eliminar todos los derechos de acceso de este cliente de servicio?", - "removeAllTitle": "Eliminar todos los derechos de acceso?", - "removeOneText": "¿Está seguro de que desea eliminar los derechos de acceso de este cliente de servicio?", - "removeOneTitle": "Eliminar los derechos de acceso?", + "removeAllText": "¿Estás seguro de que deseas eliminar todos los permisos de acceso de este cliente de servicio?", + "removeAllTitle": "¿Eliminar todos los permisos de acceso?", + "removeOneText": "¿Estás seguro de que deseas eliminar los permisos de acceso de este cliente de servicio?", + "removeOneTitle": "¿Eliminar los permisos de acceso?", "searchPlaceHolder": "Clientes de servicio", "serviceCode": "Código de servicio", "serviceSelectionStep": "Código de servicio", @@ -875,13 +709,13 @@ "title": "Título" }, "services": { - "OpenApi3Description": "Descripción Openapi3", + "OpenApi3Description": "Descripción OpenAPI 3", "addRest": "Agregar REST", "addWsdl": "Agregar WSDL", "applyToAll": "Aplicar a todos en WSDL", "deleteRestText": "¿Estás seguro de que quieres eliminar este servicio REST?", "deleteTitle": "¿Eliminar la descripción del servicio?", - "deleteWsdlText": "Estás seguro de que quieres eliminar este servicio WSDL?", + "deleteWsdlText": "¿Estás seguro de que quieres eliminar este servicio WSDL?", "deleted": "Descripción del servicio eliminada", "disableNotice": "Desactivar aviso", "disableSuccess": "Descripción del servicio Desactivado", @@ -889,15 +723,15 @@ "editUrl": "Editar URL", "enableSuccess": "Descripción del servicio habilitado", "idGroupCode": "ID / Código de grupo", - "lastRefreshed": "Último renovado:", + "lastRefreshed": "Última actualización:", "memberNameGroupDesc": "Nombre del miembro / Descripción del grupo", "noMatches": "Sin registros coincidentes", "openApi3Added": "Servicio OpenApi3 agregado", - "openapiDetails": "Detalles Openapi3", + "openapiDetails": "Detalles OpenAPI 3", "refreshed": "Actualizado", "restAdded": "Servicio REST agregado", "restApiBasePath": "Ruta base de API REST", - "restDetails": "Detalles del REST", + "restDetails": "Detalles de REST", "service": "Servicio", "serviceCode": "Código de servicio", "serviceCodePlaceholder": "Insertar código de servicio", @@ -905,21 +739,20 @@ "serviceType": "Tipo de URL", "serviceUrl": "URL de servicio", "service_parameters_ssl_test_warnings": { - "internal_server_ssl_error": "Falló la verificación de los certificados internos del servidor. ¿Es correcta la URL del servidor upstream y es accesible desde el Servidor de Seguridad?", - "internal_server_ssl_handshake_error": "El TLS HandShake con el servidor upstream, falta el certificado del servidor en la configuración:" - }, + "internal_server_ssl_error": "La verificación de los certificados del servidor interno falló. ¿Es correcta y accesible la URL del servidor de origen desde el Servidor de Seguridad?", + "internal_server_ssl_handshake_error": "El TLS handshake con el servidor de origen falló. Falta el certificado del servidor en la configuración:" }, "timeout": "Tiempo de espera agotado", "timeoutSec": "Tiempo de espera (s)", - "timeoutTooltip": "La duración máxima de una solicitud al servicio, en segundos", + "timeoutTooltip": "Duración máxima del tiempo de espera de una solicitud, en segundos", "tlsTooltip": "Verifique el certificado TLS cuando se establece una conexión segura", "url": "URL", "urlPlaceholder": "Insertar URL", "urlTooltip": "La URL donde se dirigen las solicitudes dirigidas al servicio", "warning": "Advertencia", "warningCode": { - "adding_endpoints": "Agregar Endpoints:", + "adding_endpoints": "Agregar endponints:", "adding_services": "Agregar servicios:", - "deleting_endpoints": "Eliminar Endpoints:", + "deleting_endpoints": "Eliminar endpoints:", "deleting_services": "Eliminar servicios:", "wsdl_validation_warnings": "Advertencias de validación:", "openapi_validation_warnings": "Advertencias de validación:" @@ -931,31 +764,31 @@ }, "ssTlsCertificate": { "certificateImported": "Certificado importado", - "exportCertificate": "Certificado de exportación.", + "exportCertificate": "Exportar certificado", "generateCsr": "Generar CSR", "generateInternalCsr": { - "cancel": "CANCELAR", - "done": "HECHO", + "cancel": "Cancelar", + "done": "Hecho", "step1": { - "description": "1) Primero, proporcione un nombre distinguido", + "description": "1) Primero, proporciona un nombre distinguido", "label": "Nombre distinguido", - "placeholder": "Cn = miservidordeseguridad.ejemplo.com, O = mi organización, c = ee", - "tooltip": "El nombre distinguido (DN) identifica de manera única una entidad en un certificado X.509. Los siguientes tipos de atributos se encuentran comúnmente en el DN: CN = nombre común, O = nombre de la organización, C = Código de país." + "placeholder": "CN = miservidorseguridad.ejemplo.com, O = Mi organización, C = ee", + "tooltip": "El nombre distinguido (DN) identifica de manera única a una entidad en un certificado X.509. Los siguientes tipos de atributos se encuentran comúnmente en el DN: CN = nombre común, O = nombre de la organización, C = Código de país." }, "step2": { - "description": "2) Genere una nueva CSR y guárdela en un lugar seguro", + "description": "2) Genera una nueva CSR y guárdala en un lugar seguro", "generateCSR": "Generar CSR" }, "title": "Generar solicitud de firma de certificado TLS" }, "generateKey": "Generar clave", "generateTlsAndCertificateDialog": { - "confirmation": "¿Generar una nueva clave y certificado TLS de servidor de seguridad?", - "explanation": "El sistema generará una nueva clave TLS de servidor de seguridad y un certificado autofirmado, reemplazando la clave y el certificado existentes.", - "success": "Nuevo servidor de seguridad TLS TLS y certificado generados correctamente", + "confirmation": "¿Generar una nueva clave y certificado TLS para el servidor de seguridad?", + "explanation": "El sistema generará una nueva clave TLS para el servidor de seguridad y un certificado autofirmado, reemplazando la clave y el certificado existentes.", + "success": "Nueva clave y certificado TLS generados correctamente", "title": "Clave TLS del servidor de seguridad" }, - "importCertificate": "Importación de certificados", + "importCertificate": "Importar certificado", "keyCertTitle": "Clave y certificado TLS", "keyText": "Clave TLS interna" }, @@ -969,13 +802,13 @@ "table": { "header": { "distinguishedName": "Nombre distinguido", - "expires": "Expirar", + "expires": "Expira", "ocspResponse": "Respuesta OCSP", "acmeIpAddresses": "IP del servidor ACME" }, - "notAvailable": "N / A", + "notAvailable": "No disponible", "ocspResponse": { - "NOT_AVAILABLE": "N / A", + "NOT_AVAILABLE": "No disponible", "OCSP_RESPONSE_GOOD": "Bueno", "OCSP_RESPONSE_REVOKED": "Revocado", "OCSP_RESPONSE_SUSPENDED": "Suspendido", @@ -997,7 +830,7 @@ }, "info": "Detalles del Ancla de configuración:", "success": "Ancla de configuración cargado", - "title": "Confirmar los detalles del Ancla de configuración" + "title": "Confirmar los detalles del Ancla de la configuración" } } }, @@ -1007,16 +840,16 @@ "generated": "Generado" } }, - "title": "Ancla de configuración" + "title": "Ancla de la configuración" }, "timestampingServices": { "action": { "add": { "button": "Agregar", "dialog": { - "info": "Servicios de sellado de tiempo de confianza:", - "success": "Servicio de sellado de tiempo agregado", - "title": "Agregar servicio de sellado de tiempo" + "info": "Servicios de marca de tiempo de confianza:", + "success": "Servicio de marca de tiempo agregado", + "title": "Agregar servicio de marca de tiempo" } } }, @@ -1025,18 +858,18 @@ "delete": { "button": "Borrar", "confirmation": { - "text": "¿Estás seguro de que quieres eliminar el servicio de sellado de tiempo?", - "title": "Confirmar" + "text": "¿Estás seguro de que quieres eliminar el servicio de marca de tiempo?", + "title": "¿Estas seguro?" }, - "success": "Servicio de sellado de tiempo eliminado con éxito" + "success": "Servicio de marca de tiempo eliminado con éxito" } }, "header": { "serviceURL": "URL de servicio", - "timestampingService": "Servicio de sellado de tiempo" + "timestampingService": "Servicio de marca de tiempo" } }, - "title": "Servicios de sellado de tiempo" + "title": "Servicios de marca de tiempo" }, "securityServer": { "securityServer": "Servidor de seguridad", @@ -1044,7 +877,7 @@ "editDialog": { "title": "Editar dirección del servidor de seguridad" }, - "addressChangeInProgress": "CAMBIO EN PROCESO", + "addressChangeInProgress": "Cambio en proceso", "updateSubmitted": "Cambio de dirección del servidor de seguridad enviado correctamente" }, "title": "Parámetros del sistema" @@ -1058,18 +891,18 @@ "services": "Servicios" }, "keys": { - "apiKey": "Claves de API", - "signAndAuthKeys": "Claves de firma y autenticación", + "apiKey": "Clave de API", + "signAndAuthKeys": "Clave de firma y autenticación", "ssTlsCertificate": "Clave TLS del servidor de seguridad" }, "main": { "clients": "Clientes", - "diagnostics": "Diagnosticos", - "keys": "Claves y certificados", + "diagnostics": "Diagnostico", + "keys": "Clave y certificados", "settings": "Ajustes" }, "services": { - "endpoints": "Endpoints", + "endpoints": "Endpoint", "parameters": "Parámetros de servicio" }, "settings": { @@ -1081,7 +914,7 @@ "changePin": "Cambiar el PIN", "pinChanged": "Se cambió el PIN del token: inicie sesión en el token con el nuevo PIN", "tokenPinPolicyHeader": "La política de PIN del token está habilitada.", - "tokenPinPolicy": "Se requiere que el PIN del token de software tenga al menos 10 caracteres ASCII provenientes de al menos tres clases de caracteres (letras minúsculas, letras mayúsculas, dígitos, caracteres especiales)." + "tokenPinPolicy": "El PIN del token de software debe tener al menos 10 caracteres ASCII provenientes de al menos tres clases de caracteres (letras minúsculas, letras mayúsculas, dígitos, caracteres especiales)." }, "toolbar": { "securityServerNodeType": { @@ -1091,34 +924,6 @@ } }, "validationError": { - "AssertFalse": "el valor debe ser 'falso'", - "AssertTrue": "el valor debe ser 'verdadero'", - "DecimalMax": "El valor numérico excede el máximo permitido", - "DecimalMin": "El valor numérico está por debajo del mínimo permitido", - "Digits": "El valor debe contener solo dígitos", - "Email": "El valor no cumple con el formato de correo electrónico", - "Future": "El valor de fecha y hora debe ser en el futuro", - "FutureOrPresent": "El valor de fecha y hora debe ser ahora o en el futuro", - "Max": "El valor numérico excede el máximo permitido", - "Min": "El valor numérico está por debajo del mínimo permitido", - "Negative": "El valor numérico debe ser inferior a cero", - "NegativeOrZero": "El valor numérico debe ser menor o igual a cero", - "NoBackslashes": "El valor no debe contener doble barras invertidas (\\)", - "NoColons": "El valor no debe contener dos puntos (:)", - "NoForwardslashes": "El valor no debe contener barra (/)", - "NoPercents": "El valor no debe contener símbolo de porcentaje (%)", - "NoSemicolons": "El valor no debe contener punto y coma (;)", - "Normalized": "El valor debe normalizarse", - "NotBlank": "El valor no debe estar en blanco", - "NotEmpty": "el valor no debe estar vacío", - "NotNull": "Se requiere valor", - "Null": "El valor debe permanecer en nulo", - "Past": "El valor de fecha y hora debe ser anterior a la actual", - "PastOrPresent": "El valor de fecha y hora debe ser ahora o anterior a la actual", - "Pattern": "el valor no coincidía con el formato requerido", - "Positive": "El valor numérico debe ser mayor que cero", - "PositiveOrZero": "El valor numérico debe ser mayor o igual a cero", - "Size": "El valor no cumple con los requisitos de longitud", "IdentifierChars": "caracteres de identificación no válidos" }, "wizard": { @@ -1127,28 +932,28 @@ "addSubsystemTitle": "Agregar subsistema", "client": { "addClient": "Agregar cliente", - "clientExists": "Client ya existe", - "memberClassTooltip": "Código que identifica la clase miembro (por ejemplo, agencia gubernamental, empresa privada, etc.).", - "memberCodeTooltip": "Código miembro que identifica de manera exclusiva a este miembro X-ROAD dentro de su clase miembro (por ejemplo, ID de negocio).", + "clientExists": "El cliente ya existe", + "memberClassTooltip": "Código que identifica la clase de miembro (por ejemplo, agencia gubernamental, empresa privada, etc.).", + "memberCodeTooltip": "Código de miembro que identifica de forma única a este miembro de X-Road dentro de su clase de miembro (por ejemplo, ID de negocio).", "memberNameTooltip": "Nombre de la organización miembro.", "register": "Registre al cliente", "searchLabel": "Cliente", "subsystemCodeTooltip": "Código del subsistema que identifica un sistema de información propiedad del miembro." }, "clientDetails": "Detalles del cliente", - "clientInfo1": "Especifica los detalles del Cliente que deseas agregar.", - "clientInfo2": "Si el cliente ya está existente, puedes seleccionarlo de la lista global.", + "clientInfo1": "Especifique los detalles del cliente que desea agregar.", + "clientInfo2": "Si el cliente ya está existente, puede seleccionarlo de la lista global.", "finish": { "acme": { - "infoLine": "Se recopila toda la información requerida. Al hacer clic en \"Enviar\", el nuevo cliente se agregará a la lista de clientes y la nueva clave y certificado aparecerán en la vista de claves y certificados. El certificado se ordenará desde el servidor ACME de CA y se importará automáticamente. Luego puedes registrar el nuevo cliente." + "infoLine": "Se recopila toda la información requerida. Al hacer clic en \"Enviar\", el nuevo cliente se agregará a la lista de clientes y la nueva clave y certificado aparecerá en la vista de claves y certificados. El certificado se ordenará desde el servidor ACME de CA e se importará automáticamente. Luego puede registrar el nuevo cliente." }, - "infoLine1": "Se recopila toda la información requerida. Al hacer clic en \"Enviar\", el nuevo cliente se agregará a la lista de clientes y la nueva clave y CSR aparecerán en la vista de claves y certificados.", + "infoLine1": "Se ha recopilado toda la información necesaria. Al hacer clic en \"Enviar\", el nuevo cliente se agregará a la lista de Clientes, y la nueva clave y CSR aparecerán en la vista de Claves y Certificados.", "infoLine2": "Para registrar el nuevo cliente, completa los siguientes pasos:", "note": "Nota: Si haces clic en Cancelar, todos los datos se perderán", "title": "Finalizar", "todo1": "1) Enviar la CSR a una autoridad de certificación para firmar", - "todo2": "2) Una vez recibido, importa el certificado resultante a la clave correspondiente", - "todo3": "3) En este punto puedes registrar el nuevo cliente" + "todo2": "2) Una vez recibido, importa el certificado resultante en la clave correspondiente", + "todo3": "3) En este punto puedes registrar al nuevo cliente" }, "member": { "info1": "Especifica los detalles del miembro que deseas agregar.", @@ -1156,17 +961,17 @@ "memberExists": "Miembro ya existe", "register": "Registrar miembro", "searchLabel": "Miembro", - "select": "Selecciona el miembro", + "select": "Seleccionar miembro", "title": "Detalles del miembro" }, - "memberClass": "Clase miembro", - "memberCode": "Código miembro", - "memberName": "Nombre de miembro", + "memberClass": "Clase del miembro", + "memberCode": "Código del miembro", + "memberName": "Nombre del miembro", "selectClient": "Seleccionar cliente", "selectMemberClass": "Seleccionar clase de miembro", "signKey": { - "info": "Puedes definir una etiqueta para la clave de firma recién creada (no obligatoria)", - "keyLabel": "Etiqueta clave", + "info": "Puedes definir una etiqueta para la clave de firma recién creada (no obligatorio)", + "keyLabel": "Etiqueta de la clave", "title": "Clave de firma" }, "subsystem": { @@ -1180,8 +985,8 @@ }, "subsystemCode": "Código de subsistema", "token": { - "info": "Selecciona el token donde deseas agregar la clave de firma para el nuevo cliente. Nota: El token debe estar en estado registrado.", - "loggedIn": "Sesión iniciada", + "info": "Selecciona el token donde deseas agregar la clave de firma para el nuevo cliente. Nota: El token debe estar en estado registrado para esto.", + "loggedIn": "Iniciar sesión", "title": "Token", "tokenName": "Nombre de token" }, diff --git a/src/shared-ui/src/index.ts b/src/shared-ui/src/index.ts index c58155ace1..4e6c836a9a 100644 --- a/src/shared-ui/src/index.ts +++ b/src/shared-ui/src/index.ts @@ -31,6 +31,7 @@ import '@mdi/font/css/materialdesignicons.css'; import './assets/icons.css'; import en from './locales/en.json'; +import ee from './locales/ee.json'; import es from './locales/es.json'; export * from './components'; @@ -38,4 +39,4 @@ export * from './components/icons'; export * from './components/backups-and-restore'; export * from './types'; export * from './plugins/i18n'; -export const messages = { en, es }; +export const messages = { en, ee, es }; diff --git a/src/shared-ui/src/locales/es.json b/src/shared-ui/src/locales/es.json index 4d6c988f7c..50a088fa78 100644 --- a/src/shared-ui/src/locales/es.json +++ b/src/shared-ui/src/locales/es.json @@ -1,74 +1,49 @@ { - "403": { - "goBack": "Volver", - "mainTitle": "Permiso denegado", - "text": "Parece que no tiene el permiso para ver esta página. Si cree que esto es un error, verifique si ha iniciado sesión en la cuenta correcta o comuníquese con su administrador para preguntar sobre sus permisos.", - "topTitle": "Denegado" - }, - "404": { - "pageNotFound": "404 - Página no encontrada", - "text": "Parece que encontraste el", - "textUnicorn": "unicornio" - }, - "accessRights": { - "addServiceClients": "Agregar sujetos", - "addServiceClientsSuccess": "Derechos de acceso agregados con éxito", - "addServiceClientsTitle": "Agregar sujetos", - "addSubjectsSuccess": "Derechos de acceso agregados con éxito", - "id": "IDENTIFICACIÓN", - "memberName": "Nombre del miembro / Descripción del grupo", - "removeAllText": "¿Está seguro de que desea eliminar los derechos de acceso de todos los clientes?", - "removeAllTitle": "Eliminar todos los derechos de acceso?", - "removeSuccess": "Derechos de acceso eliminados con éxito", - "removeText": "¿Está seguro de que desea eliminar los derechos de acceso de este cliente?", - "removeTitle": "Eliminar los derechos de acceso?", - "rightsGiven": "Derechos de acceso dados", - "title": "Derechos de acceso" - }, + "locals_demo": "Esto se localiza en la biblioteca", + "type": "Tipo", + "warning": "Advertencia", "action": { "activate": "Activar", + "cancel": "Cancelar", "add": "Agregar", "addClient": "Agregar cliente", "addMember": "Agregar miembro", "addSubsystem": "Agregar subsistema", - "cancel": "Cancelar", "close": "Cerrar", "confirm": "Confirmar", "continue": "Continuar", "copy": "Copiar", "copyId": "Copiar identificación", - "deactivate": "Desactivar", "delete": "Borrar", - "disable": "Desactivar", + "deactivate": "Desactivar", "done": "Hecho", "download": "Descargar", "edit": "Editar", - "emptySearch": "Su búsqueda de {msg} no encontró resultados.", - "enable": "Permitir", + "emptySearch": "Su búsqueda de {msg} no obtuvo resultados.", "export": "Exportar", "finish": "Finalizar", "goToFront": "Ir al Inicio", "next": "Siguiente", + "no": "No", "noData": "Sin datos", - "ok": "Aceptar", - "order": "Orden", + "ok": "De acuerdo", "previous": "Anterior", - "refresh": "Actualizar", - "register": "Registro", + "refresh": "Refrescar", + "register": "Registrar", "remove": "Eliminar", "removeAll": "Eliminar todo", "restore": "Restaurar", "save": "Guardar", "search": "Buscar", - "searching": "Búsqueda...", + "searching": "Buscando...", "submit": "Enviar", "unregister": "No registrado", + "upload": "Subir", "yes": "Sí" }, "alert": { - "count": "Cantidad de errores similares:", - "warningCount": "Cantidad de advertencias similares", - "id": "IDENTIFICACIÓN" + "count": "Cantidad errores similares:", + "id": "ID" }, "apiKey": { "createApiKey": { @@ -80,10 +55,10 @@ "assignedRoles": "Roles asignados", "createKeyButton": "Crear clave", "name": "Detalles clave", - "note": "Nota: Guarde la l API en un lugar seguro. La clave API es visible solo en el momento de la generación de claves. No se volverá a presentar y no se puede recuperar más tarde." + "note": "Nota: Guarda la clave API en un lugar seguro. La clave API es visible solo en el momento de la generación de la clave. No se volverá a mostrar y no se puede recuperar más tarde." }, "roles": { - "description": "Seleccione los roles asociados con la clave API. Los roles definen los permisos otorgados a la clave API.", + "description": "Selecciona los roles asociados con la clave API. Los roles definen los permisos otorgados a la clave API.", "name": "Roles", "selectRoles": "Seleccionar roles" } @@ -93,10 +68,8 @@ }, "role": { "XROAD_REGISTRATION_OFFICER": "Oficial de registro", - "XROAD_SECURITYSERVER_OBSERVER": "Observador del servidor", "XROAD_SECURITY_OFFICER": "Oficial de seguridad", - "XROAD_SERVICE_ADMINISTRATOR": "Administrador de servicio", - "XROAD_SYSTEM_ADMINISTRATOR": "Administrador de sistema" + "XROAD_SYSTEM_ADMINISTRATOR": "Administrador del Sistema" }, "edit": { "roleRemoveOnly": "(solo eliminar)" @@ -115,708 +88,108 @@ "button": "Revocar la clave", "confirmationDialog": { "message": "¿Estás seguro de que quieres revocar la clave API con ID {ID}?", - "title": "Confirmar?" + "title": "¿Estás seguro?" }, "success": "Clave API con id {id} revocada con éxito" } }, "header": { - "id": "IDENTIFICACIÓN", + "id": "ID", "roles": "Roles" } } }, + "keys": { + "gotIt": "Entiendo" + }, "backup": { "deleteBackup": { "dialog": { "confirmation": "¿Estás seguro de que quieres eliminar la copia de seguridad {archivo}?", - "title": "Confirmar" + "title": "¿Estás seguro?" }, - "success": "Copia de seguridad {file} eliminada" + "success": "Archivo o fichero de copia de seguridad {file} eliminado" }, "restoreFromBackup": { "dialog": { - "confirmation": "¿Estás seguro de que quieres restaurar desde {archivo}?", - "title": "Confirmar" + "confirmation": "¿Estás seguro de que quieres restaurar desde el archivo o fichero {archivo}?", + "title": "¿Estás seguro?" }, "success": "Configuración restaurada desde {archivo}" }, "createBackup": { - "button": "Configuración de copia de seguridad.", + "button": "Refiguración de copia de seguridad.", "messages": { "success": "Copia de seguridad {archivo} creada correctamente", - "localConfWarning": "¡Advertencia! El archivo \"/etc/xroad/services/local.conf\" utilizado para las anulaciones de configuración está en desuso y ya no se incluye en las copias de seguridad. El archivo \"/etc/xroad/services/local.properties\" debe usarse en su lugar." + "localConfWarning": "¡Advertencia! El archivo o fichero \"/etc/xroad/services/local.conf\" utilizado para las anulaciones de configuración está en desuso y ya no se incluye en las copias de seguridad. El archivo \"/etc/xroad/services/local.properties\" debe usarse en su lugar." } }, "uploadBackup": { "button": "Subir copia de seguridad", "confirmationDialog": { - "confirmation": "El archivo {name} ya existe, ¿estás seguro de que quieres sobrescribirlo?", - "title": "El archivo ya existe" + "confirmation": "El archivo o fichero {name} ya existe, ¿estás seguro de que quieres sobrescribirlo?", + "title": "El archivo o fichero ya existe" }, "success": "Copia de seguridad {archivo} cargada correctamente" } }, "cert": { - "activateSuccess": "El certificado ha sido activado", - "certDeleted": "Certificado eliminado", "certificate": "Certificado", - "deleteCertConfirm": "¿Estás seguro de que quieres eliminar este certificado?", - "deleteCertTitle": "Eliminar certificado?", - "disableSuccess": "El certificado ha sido deshabilitado", - "disabled": "Deshabilitado", - "expires": "Expira", "hashInfo": "Hash (SHA-256)", - "inUse": "en uso", "keyUsage": { - "CRL_SIGN": "Firma de CRL", - "DATA_ENCIPHERMENT": "Cifrado de Datos", - "DECIPHER_ONLY": "Descifrado solamente", + "CRL_SIGN": "Firma CRL", + "DATA_ENCIPHERMENT": "Cifrado de datos", + "DECIPHER_ONLY": "Decifrado solamente", "DIGITAL_SIGNATURE": "Firma digital", "ENCIPHER_ONLY": "SOLO CIFRADO", - "KEY_AGREEMENT": "Acuerdo clave", - "KEY_CERT_SIGN": "Certificado de firma", + "KEY_AGREEMENT": "Clave acordada", + "KEY_CERT_SIGN": "Firma certificado", "KEY_ENCIPHERMENT": "Clave de cifrado", "NON_REPUDIATION": "No repudio" }, "rsaExp": "Exponente de clave pública de RSA", "rsaModulus": "Módulo de clave pública RSA", - "ecParameters": "Parámetros de clave pública de la CE", - "ecPoint": "Punto de clave pública de la CE", - "serialNumber": "Número de serie", - "signCertificate": "Firmar certificado", - "state": "Estado" - }, - "certificateProfile": { - "COMMON_NAME": "Nombre común (CN)", - "COUNTRY_CODE": "Código de país (c)", - "INSTANCE_IDENTIFIER": "Identificador de instancia (c)", - "INSTANCE_IDENTIFIER_O": "Identificador de instancia (O)", - "MEMBER_CLASS": "Clase miembro (o)", - "MEMBER_CLASS_BC": "Clase miembro (BC)", - "MEMBER_CLASS_OU": "Clase miembro (OU)", - "MEMBER_CODE": "Código de miembros (CN)", - "MEMBER_CODE_SN": "Código de miembros (SN)", - "ORGANIZATION_NAME": "Nombre de la organización (o)", - "ORGANIZATION_NAME_CN": "Nombre de la organización (CN)", - "SERIAL_NUMBER": "Número de serie", - "SERIAL_NUMBER_SN": "Número de serie (SN)", - "SERVER_CODE": "Código de servidor (CN)", - "SERVER_DNS_NAME": "Nombre DNS del servidor (CN)", - "SUBJECT_ALTERNATIVE_NAME": "Nombre alternativo de sujeto (SAN)" - }, - "client": { - "action": { - "delete": { - "confirmText": "¿Estas seguro que deseas eliminar este cliente?", - "confirmTitle": "Eliminar cliente", - "success": "Cliente eliminado" - }, - "makeOwner": { - "button": "Convertir en propietario", - "confirmText1": "¿Desea convertir al miembro siguiente en el nuevo miembro Propietario de este Servidor de Seguridad?", - "confirmText2": "Al presionar el botón \"Convertir en propietario\" a continuación, se enviará una solicitud para cambiar el propietario a la autoridad gobernante de X-ROAD.", - "confirmTitle": "Convertir miembro en propietario", - "success": "Propietario modificado" - }, - "removeOrphans": { - "cancelButtonText": "No", - "confirmText": "La clave y el certificado de firma asociados con el cliente eliminado no tienen usuarios. Eliminar la clave y el certificado?", - "confirmTitle": "Eliminación de clave y certificado", - "success": "Certificado eliminado" - }, - "unregister": { - "confirmText": "¿Quieres quitar el registro a este cliente?", - "confirmTitle": "Cliente no registrado", - "success": "Se quitó el registro al cliente" - }, - "disable": { - "confirmText": "¿Quieres deshabilitar a este cliente?", - "confirmTitle": "Deshabilitar el cliente", - "success": "Cliente deshabilitado en progreso" - }, - "enable": { - "confirmText": "Quieres habilitar a este cliente?", - "confirmTitle": "Habilitar el cliente", - "success": "Habilitación del cliente en progreso" - } - }, - "id": "IDENTIFICACIÓN", - "member": "Miembro", - "memberClass": "Clase miembro", - "memberCode": "Código miembro", - "memberName": "Nombre de miembro", - "name": "Nombre", - "owner": "Propietario", - "status": "Estado", - "statusText": { - "deletionInProgress": "Eliminación en progreso", - "globalError": "Error global", - "registered": "REGISTRADO", - "registrationInProgress": "Registro en progreso", - "saved": "Guardado", - "disabled": "DESHABILITADO", - "disablingInProgress": "Deshabilitar en progreso", - "enablingInProgress": "Habilitación en progreso" - }, - "subsystemCode": "Código de subsistema", - "unknownMember": "Miembro no conocido" - }, - "clients": { - "action": { - "register": { - "confirm": { - "text": "¿Está seguro de que desea enviar una solicitud de registro del cliente?", - "title": "Registre al cliente" - }, - "success": "Solicitud de registro del cliente enviada correctamente" - } - } - }, - "csr": { - "addKey": "Agregar clave", - "certificationService": "Servicio de certificación", - "client": "Cliente", - "csrDetails": "Detalles de CSR", - "csrFormat": "Formato CSR", - "eabCredRequired": "La autoridad de certificación seleccionada requiere vinculación de cuenta externa para ACME, pero las faltan credenciales en la configuración.", - "failedFetchAcmeMetadata": "No se logró obtener metadatos de ACME para la autoridad de certificación seleccionada, esto puede causar errores en los próximos pasos.", - "generateCsr": "Generar CSR", - "helpCertificationService": "Autoridad de certificación (CA) que emitirá el certificado.", - "helpClient": "Miembro de X-ROAD para el cual se emitirá el certificado.", - "helpCsrFormat": "Formato de la solicitud de firma de certificado (CSR) según los requisitos de la CA.", - "helpUsage": "Política de uso del certificado: firma de mensajes o autenticación del Servidor de Seguridad.", - "saveInfo": "Genere un nuevo CSR y guárdelo en un lugar seguro.", - "usage": "Uso", - "orderAcmeCertificate": "Solicitar un certificado del Servidor ACME con el CSR generado e importar el certificado devuelto al token." - }, - "customValidation": { - "invalidEndpoint": "El Endpoint contiene caracteres ilegales", - "invalidUrl": "URL no es válida", - "invalidXrdIdentifier": "El valor del identificador contiene caracteres ilegales", - "requiredIf": "Se requiere el campo {fieldName}" - }, - "diagnostics": { - "addOnStatus": { - "messageLogDisabled": "Deshabilitado por configuración" - }, - "globalConfiguration": { - "configurationStatus": { - "ERROR_CODE_CANNOT_DOWNLOAD_CONF": "No se puede descargar la configuración global. Verifique la conexión de red.", - "ERROR_CODE_EXPIRED_CONF": "La configuración global descargada ha expirado.", - "ERROR_CODE_INTERNAL": "Se produjo un error interno.", - "ERROR_CODE_INVALID_SIGNATURE_VALUE": "Valor de firma no válido.", - "ERROR_CODE_MISSING_PRIVATE_PARAMS": "La configuración global descargada no contenía parámetros privados", - "ERROR_CODE_UNINITIALIZED": "El cliente de configuración se está inicializando", - "SUCCESS": "Exito", - "UNKNOWN": "Descnocido" - }, - "title": "Configuración global" - }, - "javaVersion": { - "earliest": "Versión más reciente compatible", - "latest": "Última versión compatible", - "notSupported": "La versión actual de Java no es compatible", - "ok": "Correcto", - "title": "Versión java", - "vendor": "Nombre del proveedor" - }, - "mailNotificationConfiguration": { - "title": "Estado de notificación de correo", - "failureEnabled": "Notificaciones de falla", - "successEnabled": "Notificaciones de éxito", - "configuration": "Configuración del servidor de correo", - "recipientsEmails": "Correos electrónicos de los destinatarios", - "enabled": { - "true": "Habilitado", - "false": "Deshabilitado" - }, - "confStatus": { - "true": "Configurado", - "false": "Configuración incompleta" - } - }, - "message": "Mensaje", - "nextUpdate": "Siguiente actualización", - "ocspResponders": { - "certificationService": "Servicio de certificación:", - "ocspStatus": { - "ERROR_CODE_OCSP_CONNECTION_ERROR": "Incapaz de conectarse al Servicio OCSP Responder", - "ERROR_CODE_OCSP_FAILED": "No se puede obtener la respuesta del Servicio OCSP Responder", - "ERROR_CODE_OCSP_RESPONSE_INVALID": "Incapaz de analizar la respuesta del Servicio OCSP Responder", - "ERROR_CODE_OCSP_RESPONSE_UNVERIFIED": "No se puede verificar la respuesta del Servicio OCSP Responder", - "ERROR_CODE_OCSP_UNINITIALIZED": "Solicitud de estado aún no enviada", - "SUCCESS": "Exito", - "UNKNOWN": "Desconocido" - }, - "title": "Servicio OCSP Responder" - }, - "previousUpdate": "Actualización anterior", - "serviceUrl": "URL de servicio", - "status": "Estado", - "timestamping": { - "timestampingStatus": { - "ERROR_CODE_INTERNAL": "Se produjo un error interno", - "ERROR_CODE_MALFORMED_TIMESTAMP_SERVER_URL": "URL del servidor de sellado de tiempo malformado. Revise la URL.", - "ERROR_CODE_TIMESTAMP_REQUEST_TIMED_OUT": "Tiempo de espera de conexión agotado. Verifique la conexión de red con el proveedor de configuración global.", - "ERROR_CODE_TIMESTAMP_UNINITIALIZED": "Conexión OK, aún no se realiza la solicitud de sellado de tiempo", - "SUCCESS": "Exito", - "UNKNOWN": "Unknown" - }, - "title": "Sellado de tiempo" - }, - "encryption": { - "status": { - "false": "Deshabilitado", - "true": "Habilitado" - }, - "statusTitle": "Estado de cifrado:", - "backup": { - "title": "Cifrado de copia de seguridad", - "configuredKeyId": "ID de clave configurada" - }, - "messageLog": { - "archive": { - "title": "Cifrado de archivo de registro de mensajes", - "groupingTitle": "Regla de agrupación:", - "memberIdentifier": "Identificador de miembro", - "keyId": "ID de clave", - "defaultKeyNote": "Este miembro está configurado para usar la clave de cifrado predeterminada de los servidores. Para una seguridad adicional, considere definir una clave específica para ser utilizada." - }, - "database": { - "title": "Cifrado de la base de datos del registro de mensajes" - } - } - } - }, - "endpoints": { - "addEndpoint": "Agregar Endpoint", - "all": "ALL", - "deleteEndpointText": "¿Estás seguro que deseas eliminar este Endpoint?", - "deleteSuccess": "Endpoint eliminado con éxito", - "deleteTitle": "Eliminar el Endpoint", - "details": "Detalles del Endpoint", - "editSuccess": "Cambios en el Endpoint guardado con éxito", - "endpointHelp1": "Las rutas son relativas a la ruta base de API, p.'/Pets'. El asterisco (*) se puede usar como un comodín", - "endpointHelp2": "* = coincidir con un segmento de ruta.", - "endpointHelp3": "** = coincidir cero o más segmentos, p.'/mascotas/**'.", - "endpointHelp4": "Los parámetros de la ruta deben reemplazarse con un asterisco, p.'/PETS/{id}/Images' => '/Pets/*/Images'.", - "httpRequestMethod": "Método de solicitud HTTP", - "path": "Ruta", - "saveNewEndpointSuccess": "Nuevo Endpoint creado con éxito" + "ecParameters": "Parámetros de clave pública de la EC", + "ecPoint": "Punto de clave pública de la EC" }, "error_code": { - "accessright_not_found": "Derecho de acceso no encontrado", - "acme": { - "eab_credentials_missing": "Faltan las credenciales de vinculación de Cuenta Externa, son requeridas", - "eab_secret_length": "Longitud inválida del secreto base64 de la vinculación de la cuenta externa", - "account_key_pair_error": "Falló el par de claves para la cuenta del servidor ACME", - "account_keystore_password_missing": "Falta la contraseña del almacén de claves de la cuenta ACME desde el archivo de configuración acme.yml", - "fetching_metadata_error": "Error al obtener los metadatos del servidor ACME. Es posible que el servidor ACME no se encuentre accesible", - "account_creation_failure": "La creación de una cuenta en el servidor ACME falló. Si se requiere unión de cuenta externa, verifique que las credenciales correctas estén configuradas en acme.yml", - "order_creation_failure": "La creación de un nuevo pedido en el servidor ACME falló", - "order_finalization_failure": "Finalizar el pedido en el servidor ACME falló", - "http_challenge_file_creation": "La creación del archivo de desafío HTTP de la creación de ACME falló", - "http_challenge_file_deletion": "Eliminar el archivo de desafío ACME HTTP falló", - "http_challenge_missing": "Actualmente, X-Road solo admite el desafío HTTP, pero este no está disponible entre las opciones posibles del servidor ACME.", - "challenge_trigger_failure": "Falló la solicitud al servidor ACME para validar el desafío", - "authorization_failure": "La autorización falló. Generalmente relacionado con una falla de validación de desafío que se requiere para probar la propiedad del dominio", - "authorization_wait_failure": "Falló la espera para que se complete la Autorización", - "certificate_failure": "Obtener el certificado del servidor ACME", - "certificate_wait_failure": "Falló la espera para la creación del nuevo Certificado" - }, - "action_not_possible": "La acción no es posible", - "additional_member_already_exists": "Ya existe miembro adicional", - "anchor_already_exists": "Ancla ya existe", - "anchor_file_not_found": "Archivo Ancla no encontrado", - "anchor_not_found": "Ancla no encontrado", - "anchor_upload_failed": "Falló la carga del Ancla", "api_key_not_found": "Clave de API no encontrada", - "auth_cert_not_supported": "El certificado de autenticación no es compatible", - "backup_file_not_found": "Archivo de respaldo no encontrado", - "backup_generation_failed": "Falló la generación de copias de seguridad", - "backup_restore_interrupted": "Restauración de copia de seguridad interrumpida", - "base_endpoint_not_found": "Endpoint base no encontrado", - "ca_cert_status_processing_failure": "El procesamiento de estado del certificado de CA falló", - "cannot_delete_owner": "No se puede eliminar al propietario", - "cannot_register_owner": "No se puede registrar al propietario", - "cannot_unregister_owner": "No se puede anular el propietario", - "cert_wrong_usage": "Uso incorrecto de certificado", - "certificate_already_exists": "El certificado ya existe", - "certificate_authority_not_found": "Autoridad de certificado no encontrada", - "certificate_id_not_found": "ID de certificado no encontrado", - "certificate_not_found": "Certificado no encontrado", - "certificate_profile_instantiation_failure": "Instanciación del perfil de certificado fallido", - "client_already_exists": "El cliente ya existe", - "client_not_deleted": "No se puede eliminar las claves, certificados y CSRs, porque pertenecen a un cliente existente", - "client_not_found": "cliente no encontrado", - "conf_download_failed": "Falló la descarga de la configuración", - "conf_verification": { - "anchor_not_for_external_source": "El Ancla apunta a una fuente de configuración interna. Solo se admiten Anclas de fuentes de configuración externa como Anclas de confianza.", - "missing_private_params": "Fallado de importación del Ancla de configuración: archivo de Ancla no válido", - "other": "La configuración de la fuente no pasó la verificación", - "outdated": "La configuración de la fuente está desactualizada", - "signature_invalid": "La firma de la configuración no se puede verificar", - "unreachable": "No es posible comunicarse con la fuente de configuración, verifique la URL de origen en el archivo de Ancla cargado" - }, - "core": { - "Server": { - "InternalError": "Error interno", - "ServerProxy": { - "ServiceFailed": { - "HttpError": "Error HTTP", - "SslAuthenticationFailed": "La autenticación SSL falló" - }, - "UnknownService": "Servicio desconocido" - } - }, - "Signer": { - "CertNotFound": "No se encuentra la certificación", - "KeyNotFound": "No se encuentra la clave", - "TokenNotAvailable": "Token no está disponible", - "TokenNotFound": "No se encuentra el token", - "UnknownMember": "X -Road Core - Signer: miembro desconocido" - } - }, - "csr_not_found": "CSR no encontrado", - "diagnostic_request_failed": "Falló la solicitud de diagnóstico", - "duplicate_accessright": "Derecho de acceso duplicado", - "endpoint_already_exists": "El Endpoint ya existe", - "endpoint_not_found": "Endpoint no encontrado", - "generate_backup_interrupted": "Generación de copia de seguridad interrumpida", - "global_conf_download_request_failed": "La solicitud de descarga de configuración global falló", - "global_conf_outdated": "La configuración global está desactualizada", - "gpg_key_generation_failed": "Falló la generación GPG KeyPair", - "gpg_key_generation_interrupted": "Generación de GPG interrumpida", - "identifier_not_found": "Identificador no encontrado", - "illegal_generated_endpoint_remove": "La eliminación del Endpoint generado no está permitido", - "illegal_generated_endpoint_update": "No se permite actualizar el Endpoint generado", - "import_internal_cert_failed": "Importación de certificado interno fallido", - "internal_anchor_upload_invalid_instance_id": "El Ancla tiene una identificación de instancia no válida", - "internal_key_cert_interrupted": "Certificado de clave interna interrumpida", + "backup_file_not_found": "La copia de seguridad no se encontró", + "backup_generation_failed": "No se pudo generar la copia de seguridad", + "backup_restore_interrupted": "La restauración de la copia de seguridad ha sido interrumpida", + "generate_backup_interrupted": "La generación de la copia de seguridad ha sido interrumpida", "invalid_backup_file": "Archivo de copia de seguridad no válido", - "invalid_cert": "Certificado no válido", - "invalid_characters_pin": "PIN tiene caracteres no válidos", - "invalid_distinguished_name": "El nombre distinguido (DN) no es válido", - "invalid_dn_parameter": "Parámetro DN no válido", + "invalid_distinguished_name": "El nombre distinguido no es válido", "invalid_filename": "Nombre de archivo no válido", - "invalid_https_url": "URL no usa HTTPS", - "invalid_init_params": "Parámetros de inicialización no válidos", - "invalid_instance_identifier": "Identificador de instancia no válido", - "invalid_member_class": "Clase de miembro inválido", - "invalid_service_client_id": "ID de cliente no válido", - "invalid_service_url": "URL de servicio no válido", - "invalid_wsdl": "WSDL no válido", - "invalid_wsdl_service_identifier": "Identificador de servicio WSDL no válido", - "key_and_cert_generation_failed": "Falló la generación de clave y certificado", - "key_not_found": "Clave no encontrada", - "local_group_code_already_exists": "El código de grupo local ya existe", - "local_group_member_already_exists": "Miembro del grupo local ya existe", - "local_group_member_not_found": "Miembro del grupo local no encontrado", - "local_group_not_found": "Grupo local no encontrado", - "malformed_anchor": "Ancla malformada", - "malformed_url": "URL malformada", - "management_request_sending_failed": "Envío de solicitud de administración fallida", - "member_already_owner": "El miembro ya es el propietario", - "member_class_exists": "La clase de miembro ya existe", - "member_class_not_provided": "No se proporciona la clase de miembros", - "member_code_exists": "Existe el código miembro", - "member_code_not_provided": "No se proporciona código miembro", - "missing_parameter": "Parámetro faltante", - "openapi_parsing_error": "Error al analizar la descripción de OpenApi3", - "orphans_not_found": "Las claves huérfanas, certificados y/o CSR que pertenecen al cliente dado no fueron encontrados", - "pin_code_exists": "Existe el código PIN", - "pin_code_not_provided": "El código PIN no se proporciona", - "pin_incorrect": "Pin incorrecto. Por favor intente de nuevo.", - "pin_min_char_classes_count": "Recuento mínimo de clases de caracteres para el PIN", - "pin_min_length": "Longitud mínima", - "process_failed": "Falló el proceso", - "process_not_executable": "El proceso no se puede ejecutar", "resource_read_failed": "No se pudo leer el recurso", "restore_process_failed": "El proceso de restauración falló", - "server_already_fully_initialized": "El servidor ya está completamente inicializado", - "server_code_exists": "El código del servidor existe", - "server_code_not_provided": "El código del servidor no se proporciona", - "service_already_exists": "Ya existe el servicio", - "service_client_not_found": "Cliente de servicio no encontrado", - "service_code_already_exists": "El código de servicio ya existe", - "service_description_not_found": "Descripción del servicio no encontrada", - "service_not_found": "servicio no encontrado", - "sign_cert_not_supported": "El certificado de firma no es compatible", - "signer_not_reachable": "El firmante no es actualmente accesible. Consulte el registro del firmante para más detalles.", - "software_token_init_failed": "Falló la inicialización del token de software", - "timestamping_service_already_configured": "El servicio de sellado de tiempo ya está configurado", - "timestamping_service_not_found": "Servicio de sellado de tiempo no encontrado", - "token": { - "malformed_csr": "Los datos de CSR están malformados" - }, - "token_not_active": "El token no está activo", "token_not_found": "Token no encontrado", - "unsupported_openapi_version": "Versión OpenAPI no soportada. Solo las versiones 3.0.x y 3.1.0 son actualmente compatibles.", - "url_already_exists": "URL ya existe", - "validation_failure": "Falla de validación", - "warnings_detected": "Advertencias detectadas", - "weak_pin": "PIN débil", - "wrong_key_usage": "Uso de la clave incorrecta", - "wrong_servicedescription_type": "Tipo de descripción del servicio incorrecto", - "wsdl_download_failed": "Falló la descarga de WSDL", - "wsdl_exists": "WSDL existe", - "wsdl_validator_interrupted": "Validador de WSDL interrumpido", - "wsdl_validator_not_executable": "El validador de WSDL no es ejecutable" + "validation_failure": "Falla de validación" }, "fields": { - "addClient": { - "memberClass": "Clase miembro", - "memberCode": "Código miembro", - "subsystemCode": "Código de subsistema" - }, - "C": "Código del país", - "clientAdd": { - "client": { - "memberCode": "Código miembro", - "subsystemCode": "Código de subsistema" - } - }, - "CN": "Nombre de DNS del servidor", - "confirmPin": "Confirmar PIN", - "csr": { - "certService": "Servicio de certificación", - "client": "Cliente", - "csrFormat": "Formato CSR", - "usage": "Uso", - "certificationService": "Servicio de certificación" - }, - "dns": "DNS", - "keys": { - "name": "Nombre" - }, - "O": "Nombre de la organización", "password": "Contraseña", - "path": "Ruta", - "pin": "PIN", - "memberClass": "Clase miembro", - "memberCode": "Código miembro", - "securityServerCode": "Código de servidor de seguridad", - "securityServerAddress": "Dirección del servidor de seguridad", - "serialNumber": "Número de serie", - "serviceCode": "Código de servicio", - "serviceDescriptionAdd": { - "restServiceCode": "Código de servicio" - }, - "serviceDescriptionUpdate": { - "newRestServiceCode": "Código de servicio" - }, - "serviceTimeout": "Se agotó el tiempo de espera", - "serviceType": "Tipo de servicio", - "serviceUrl": "Url", - "subjectAltName": "Nombre alternativo", - "token": { - "friendlyName": "Nombre amistoso", - "newPin": "Nuevo PIN", - "newPinConfirm": "Confirmar el nuevo PIN", - "oldPin": "PIN" - }, - "tokenPin": "PIN", - "url": "Url", - "username": "Nombre de usuario", - "certificationService": "Servicio de certificación" + "username": "LIB-Username", + "shared": "sharedlib", + "code": "Código", + "description": "Descripción", + "memberClass": "Clase del miembro", + "securityServerCode": "Código de servidor de seguridad" }, "footer": { "copyright": { - "company": "Instituto Nordico para Soluciones de Introperabilidad (NIIS)", + "company": "Instituto Nordico de Soluciones de Introperabilidad (NIIS)", "licenceInfo": "Información de la licencia", "title": "Derechos de autor" }, "software": { "feedback": "Comentario", "title": "Software", - "versionPrefix": "X-ROAD" + "versionPrefix": "X-road" } }, "global": { - "name": "Nombre", - "appTitle": "Servidor de seguridad X-ROAD" - }, - "general": { - "instance": "Instancia", - "memberClass": "Clase miembro", - "memberCode": "Código miembro", - "name": "Nombre", - "subsystem": "subsistema", - "subsystemCode": "Código de subsistema", - "type": "Tipo" - }, - "globalAlert": { - "backupRestoreInProgress": "La configuración del servidor de seguridad se está restaurando desde una copia de seguridad. El proceso fue iniciado {starttime}", - "globalConfigurationInvalid": "La configuración global está vencida", - "secondaryNode": "Está en un nodo secundario en un clúster de servidor de seguridad. La modificación de la configuración está deshabilitada.", - "softTokenPinNotEntered": "Ingrese el PIN token de software", - "certificateRenewalJobFailure": "El último trabajo de renovación del certificado ha fallado.", - "certificateRenewalJobFailureAuth": "Certificado de autenticación fallido (s):", - "certificateRenewalJobFailureSign": "Certificado (s) de firma fallido:", - "navigateToKeysPage": "Consulte la página de claves y certificados para obtener más detalles" - }, - "initialConfiguration": { - "anchor": { - "generated": "Generado", - "hash": "Hash (SHA-224)", - "info": "Importe el Ancla de configuración proporcionado por el administrador del servidor central.", - "title": "Ancla de la configuración" - }, - "member": { - "info": "Defina el miembro que actuará como propietario del servidor de seguridad:", - "serverCodeHelp": "Código del servidor de seguridad que identifica de manera única a este servidor de seguridad dentro de todos los servidores de seguridad del mismo propietario.", - "title": "Miembro del propietario" - }, - "noInitializationStatus": "No hay estado de inicialización disponible", - "noPermission": "Este servidor de seguridad no está inicializado actualmente, comuníquese con un administrador para hacer la configuración inicial", - "pin": { - "confirmPin": "Confirmar PIN", - "info1": "El token de software es el lugar donde se almacenan las claves de autenticación del servidor de seguridad. Defina un PIN para iniciar sesión en el token de software.", - "info2": "Se recopila toda la información requerida, presione el botón Enviar para inicializar el servidor de seguridad.", - "info3": "Una vez que se complete la inicialización, debe finalizar la configuración del Servidor de Seguridad; simplemente haga clic en el botón Configurar en la notificación emergente que aparecerá en unos momentos", - "pin": "PIN", - "pinMatchError": "La confirmación de PIN no coincide", - "title": "PIN" - }, - "success": "Servidor inicializado", - "title": "Configuración inicial", - "warning": { - "init_server_id_exists": "La identificación del servidor existe", - "init_server_owner_exists": "El propietario del servidor existe", - "init_servercode_exists": "El codigo de servidor existe", - "init_software_token_initialized": "El token de software está inicializado", - "init_unregistered_member": "Se ha quitado el registro del miembro" - } - }, - "internalServers": { - "certHash": "Certificado hash (SHA/1)", - "connTypeUpdated": "Tipo de conexión actualizado", - "connectionInfo": "El tipo de conexión para servidores en el rol del proveedor de servicios se establece en la pestaña Servicios por la URL del servicio (HTTP/HTTPS).", - "connectionType": "Tipo de conexión", - "ssCertTitle": "Certificado de servidor de seguridad", - "tlsTitle": "Certificado de TLS del sistema de información" - }, - "keys": { - "addKey": "Agregar clave", - "authDetailsTitle": "Detalles clave de autenticación", - "authKeyCert": "Claves y certificados de autenticación", - "authNotSupported": "Clave de autenticación no compatible", - "auth_key_with_registered_cert_warning": "La clave tiene certificados a los cuales se les debe quitar el desregistro antes de su eliminación. ¿Desea quitar el registro y proceder con la eliminación de los certificados asociados y la clave de la configuración del servidor? ID de la clave:", - "certMarkedForDeletion": "Certificado marcado para la eliminación", - "certRegistrationInfo": "Nombre DNS del servidor de seguridad o dirección IP", - "certStatus": { - "deletion": "Eliminación en progreso", - "globalError": "Error global", - "onlyInHWToken": "Solo en token", - "registered": "Registrado", - "registration": "Registro en progreso", - "saved": "Guardado" - }, - "certificateRegistered": "Solicitud de registro de certificado enviado correctamente", - "certificateUnregistered": "Solicitud de eliminación de registro de certificado enviado correctamente", - "csrDeleted": "CSR eliminado", - "deleteCsr": "Eliminar CSR", - "deleteCsrText": "¿Estás seguro que deseas eliminar este CSR?", - "deleteCsrTitle": "¿Eliminar CSR?", - "deleteKeyText": "¿Está seguro de que desea eliminar esta clave y todos los certificados asociados de la configuración del servidor?", - "deleteTitle": "¿Eliminar la calve?", - "detailsTitle": "Detalles de clave", - "expires": "Expira", - "friendlyName": "Nombre amistoso", - "generateCsr": "Generar CSR", - "globalErrors": "Errores globales", - "gotIt": "Entiendo", - "helpTextApi": "Las claves API se utilizan para autenticar las llamadas de API a la API REST de administración del servidor de seguridad.Las claves API están asociadas con roles que definen los permisos otorgados a la clave API.", - "helpTextKeys": "La clave de autenticación y el certificado certifican la autenticidad de un servidor de seguridad. Se utilizan para la autenticación en conexiones entre servidores de seguridad. La clave de firma y el certificado certifican la autenticidad de un miembro de X-Road. Se utilizan para firmar y verificar la integridad de los mensajes mediados.", - "helpTextSS": "El certificado TLS del servidor de seguridad se utiliza en conexiones entre el servidor de seguridad y un sistema de información. El certificado TLS interno se utiliza como certificado de cliente y servidor dependiendo de los roles del servidor de seguridad y el sistema de información.", - "helpTitleApi": "Claves de API", - "helpTitleKeys": "Claves de autenticación y firma", - "helpTitleSS": "Certificado TLS del servidor de seguridad", - "id": "IDENTIFICACIÓN", - "importCert": "Importar certificado", - "importCertSuccess": "El Certificado se cargó con éxito", - "incorrectPin": "PIN incorrecto. Por favor intente de nuevo.", - "keyDeleted": "Clave eliminada", - "keyId": "ID de clave:", - "keyInfo": "Información de la clave", - "keyLabelInput": "Etiqueta de la clave", - "keySaved": "Clave guardada", - "label": "Etiqueta:", - "logIn": "Acceso", - "logOut": "Finalizar la sesión", - "logOutText": "¿Finalizar la sesión del token?", - "logOutTitle": "Finalizar la sesión", - "loggedIn": "Iniciado sesión en token", - "loggedOut": "Sesión de token finalizada", - "noIssues": "No hay problemas", - "ocsp": "OCSP", - "ocspStatus": { - "disabled": "Deshabilitado", - "expired": "Expirado", - "good": "Bueno", - "revoked": "Revocado", - "suspended": "Suspendido", - "unknown": "Desconocido" - }, - "orderAcmeCertificate": "Solicitud de Certificado", - "acmeCertOrdered": "Certificado solicitado con éxito", - "readOnly": "Solo lectura:", - "keyAlgorithm": "Algoritmo de clave:", - "registrationRequest": "Solicitud de registro", - "renewal": "Renovación automática", - "request": "Solicitud", - "signDetailsTitle": "Detalles de la clave de firma", - "signKeyCert": "Firmar claves y certificados", - "status": "Estado", - "token": "Token:", - "tokenDetails": "Detalles del token", - "tokenId": "ID de token:", - "tokenInfo": "Información token", - "tokenPin": "PIN", - "tokenSaved": "Token guardado", - "tokenStatus": { - "active": "", - "available": "", - "inactive": "Inactivo", - "unavailable": "Bloqueado", - "unsaved": "No guardado" - }, - "type": "Tipo:", - "unknown": "Tipo de clave no especificado", - "unregisterError": "No se pudo registrar el certificado. ¿Deseas continuar con la eliminación de certificados de todos modos?", - "unregisterText": "¿Quieres quitar el registro de este certificado?", - "unregisterTitle": "Quitar registro de certificado" - }, - "localGroup": { - "accessDate": "Derechos de acceso dados", - "addLocalGroup": "Agregar grupo local", - "addMembers": "Agregar miembros", - "addSelected": "Agregar seleccionado", - "code": "Código", - "deleteText": "¿Estás seguro de que quieres eliminar este grupo?", - "deleteTitle": "¿Eliminar el grupo?", - "descSaved": "Descripción guardada", - "description": "Descripción", - "groupDeleted": "Grupo eliminado", - "groupMembers": "Miembros del grupo", - "id": "Identificación", - "localGroup": "Grupo local", - "localGroupAdded": "Grupo local agregado", - "name": "Nombre de miembro", - "noResults": "Su búsqueda no encontró resultados.", - "removeAllText": "¿Estás seguro de que quieres eliminar a todos los miembros de este grupo?", - "removeAllTitle": "¿Remover a los miembros?", - "removeText": "¿Estás seguro de que quieres eliminar a este miembro?", - "removeTitle": "¿Eliminar miembro?", - "searchOptions": "Opciones de búsqueda" - }, - "localGroups": { - "addGroup": "Agregar grupo", - "code": "Código", - "description": "Descripción", - "memberCount": "Cantidad de miemros", - "updated": "Actualizado" + "all": "Todo", + "name": "Nombre" }, "login": { "errorMsg401": "Nombre de usuario o contraseña incorrectos", @@ -825,270 +198,18 @@ "logOut": "Finalizar la sesión" }, "logout": { - "idleWarning": "Ha estado inactivo durante 30 minutos y su sesión ha finalizado. Por razones de seguridad, se desconectará.", + "idleWarning": "Has estado inactivo durante 30 minutos y tu sesión ha expirado. Por razones de seguridad, deberás autenticarte nuevamente.", "sessionExpired": "Sesión expirada" }, "noData": { "loading": "Cargando ... por favor espera", - "noBackUpEncryptionKeys": "No hay claves de cifrado de copia de seguridad configuradas", "noBackups": "No hay copias de seguridad todavía", "noCertificate": "Sin certificado", "noCertificates": "Sin certificados", - "noClientData": "Sin datos del cliente", - "noCertificateAuthorities": "No hay autoridades de certificado", "noData": "Sin datos", - "noLocalGroups": "No hay grupos locales", - "noMatches": "Sin criterios de coincidencia de elementos", + "noMatches": "Sin coincidencias con los criterios", "noServices": "Sin servicios", - "noServiceClients": "No hay clientes de servicio", - "noTimestampingServices": "Sin servicios de sellado de tiempo", - "noTokens": "No hay Tokens" - }, - "serviceClientType": { - "globalGroup": "Grupo global", - "localGroup": "Grupo local", - "subsystem": "Subsistema" - }, - "serviceClients": { - "accessRights": "Derechos de acceso", - "accessRightsGiven": "Derechos de acceso otorgados", - "addSelected": "Agregar seleccionado", - "addService": "Agregar servicio", - "addServiceClient": "Agregar sujeto", - "addServiceClientAccessRightSuccess": "Derechos de acceso agregados con éxito", - "addServiceClientTitle": "Agregar un Sujeto", - "id": "IDENTIFICACIÓN", - "memberGroupCodeLabel": "Miembro/código de grupo", - "memberGroupStep": "Miembro / grupo", - "name": "Nombre del miembro / Descripción del grupo", - "noAccessRights": "Cliente no tiene derechos de acceso", - "noAvailableServices": "No hay servicios disponibles", - "removeAll": "Eliminar todo", - "removeAllText": "¿Está seguro de que desea eliminar todos los derechos de acceso de este cliente de servicio?", - "removeAllTitle": "Eliminar todos los derechos de acceso?", - "removeOneText": "¿Está seguro de que desea eliminar los derechos de acceso de este cliente de servicio?", - "removeOneTitle": "Eliminar los derechos de acceso?", - "searchPlaceHolder": "Clientes de servicio", - "serviceCode": "Código de servicio", - "serviceSelectionStep": "Código de servicio", - "servicesStep": "Servicios", - "title": "Título" - }, - "services": { - "OpenApi3Description": "Descripción Openapi3", - "addRest": "Agregar REST", - "addWsdl": "Agregar WSDL", - "applyToAll": "Aplicar a todos en WSDL", - "deleteRestText": "¿Estás seguro de que quieres eliminar este servicio REST?", - "deleteTitle": "¿Eliminar la descripción del servicio?", - "deleteWsdlText": "Estás seguro de que quieres eliminar este servicio WSDL?", - "deleted": "Descripción del servicio eliminada", - "disableNotice": "Desactivar aviso", - "disableSuccess": "Descripción del servicio Desactivado", - "disableTitle": "¿Desactivar?", - "editUrl": "Editar URL", - "enableSuccess": "Descripción del servicio habilitado", - "idGroupCode": "ID / Código de grupo", - "lastRefreshed": "Último renovado:", - "memberNameGroupDesc": "Nombre del miembro / Descripción del grupo", - "noMatches": "Sin registros coincidentes", - "openApi3Added": "Servicio OpenApi3 agregado", - "openapiDetails": "Detalles Openapi3", - "refreshed": "Actualizado", - "restAdded": "Servicio REST agregado", - "restApiBasePath": "Ruta base de API REST", - "restDetails": "Detalles del REST", - "service": "Servicio", - "serviceCode": "Código de servicio", - "serviceCodePlaceholder": "Insertar código de servicio", - "serviceSaved": "Servicio guardado", - "serviceType": "Tipo de URL", - "serviceUrl": "URL de servicio", - "service_parameters_ssl_test_warnings": { - "internal_server_ssl_error": "Falló la verificación de los certificados internos del servidor. ¿Es correcta la URL del servidor upstream y es accesible desde el Servidor de Seguridad?", - "internal_server_ssl_handshake_error": "El TLS HandShake con el servidor upstream, falta el certificado del servidor en la configuración:" - }, - "timeout": "Tiempo de espera agotado", - "timeoutSec": "Tiempo de espera (s)", - "timeoutTooltip": "La duración máxima de una solicitud al servicio, en segundos", - "tlsTooltip": "Verifique el certificado TLS cuando se establece una conexión segura", - "url": "URL", - "urlPlaceholder": "Insertar URL", - "urlTooltip": "La URL donde se dirigen las solicitudes dirigidas al servicio", - "warning": "Advertencia", - "warningCode": { - "adding_endpoints": "Agregar Endpoints:", - "adding_services": "Agregar servicios:", - "deleting_endpoints": "Eliminar Endpoints:", - "deleting_services": "Eliminar servicios:", - "wsdl_validation_warnings": "Advertencias de validación:", - "openapi_validation_warnings": "Advertencias de validación:" - }, - "verifyTls": "Verificar el certificado TLS", - "wsdlAdded": "WSDL agregado", - "wsdlDescription": "Descripción de WSDL", - "wsdlDetails": "Detalles de WSDL" - }, - "ssTlsCertificate": { - "certificateImported": "Certificado importado", - "exportCertificate": "Certificado de exportación.", - "generateCsr": "Generar CSR", - "generateInternalCsr": { - "cancel": "CANCELAR", - "done": "HECHO", - "step1": { - "description": "1) Primero, proporcione un nombre distinguido", - "label": "Nombre distinguido", - "placeholder": "Cn = miservidordeseguridad.ejemplo.com, O = mi organización, c = ee", - "tooltip": "El nombre distinguido (DN) identifica de manera única una entidad en un certificado X.509. Los siguientes tipos de atributos se encuentran comúnmente en el DN: CN = nombre común, O = nombre de la organización, C = Código de país." - }, - "step2": { - "description": "2) Genere una nueva CSR y guárdela en un lugar seguro", - "generateCSR": "Generar CSR" - }, - "title": "Generar solicitud de firma de certificado TLS" - }, - "generateKey": "Generar clave", - "generateTlsAndCertificateDialog": { - "confirmation": "¿Generar una nueva clave y certificado TLS de servidor de seguridad?", - "explanation": "El sistema generará una nueva clave TLS de servidor de seguridad y un certificado autofirmado, reemplazando la clave y el certificado existentes.", - "success": "Nuevo servidor de seguridad TLS TLS y certificado generados correctamente", - "title": "Clave TLS del servidor de seguridad" - }, - "importCertificate": "Importación de certificados", - "keyCertTitle": "Clave y certificado TLS", - "keyText": "Clave TLS interna" - }, - "stores": { - "user": { - "currentSecurityServerNotFound": "No se pudo determinar la información actual del servidor de seguridad. La respuesta de la API no es válida." - } - }, - "systemParameters": { - "approvedCertificateAuthorities": { - "table": { - "header": { - "distinguishedName": "Nombre distinguido", - "expires": "Expirar", - "ocspResponse": "Respuesta OCSP", - "acmeIpAddresses": "IP del servidor ACME" - }, - "notAvailable": "N / A", - "ocspResponse": { - "NOT_AVAILABLE": "N / A", - "OCSP_RESPONSE_GOOD": "Bueno", - "OCSP_RESPONSE_REVOKED": "Revocado", - "OCSP_RESPONSE_SUSPENDED": "Suspendido", - "OCSP_RESPONSE_UNKNOWN": "Desconocido" - } - }, - "title": "Autoridades de certificación aprobadas" - }, - "configurationAnchor": { - "action": { - "download": "Descargar", - "upload": { - "button": "Subir", - "dialog": { - "confirmation": "¿Continuar con la importación?", - "field": { - "generated": "Generado", - "hash": "Hash (SHA-224)" - }, - "info": "Detalles del Ancla de configuración:", - "success": "Ancla de configuración cargado", - "title": "Confirmar los detalles del Ancla de configuración" - } - } - }, - "table": { - "header": { - "distinguishedName": "Hash (SHA-224)", - "generated": "Generado" - } - }, - "title": "Ancla de configuración" - }, - "timestampingServices": { - "action": { - "add": { - "button": "Agregar", - "dialog": { - "info": "Servicios de sellado de tiempo de confianza:", - "success": "Servicio de sellado de tiempo agregado", - "title": "Agregar servicio de sellado de tiempo" - } - } - }, - "table": { - "action": { - "delete": { - "button": "Borrar", - "confirmation": { - "text": "¿Estás seguro de que quieres eliminar el servicio de sellado de tiempo?", - "title": "Confirmar" - }, - "success": "Servicio de sellado de tiempo eliminado con éxito" - } - }, - "header": { - "serviceURL": "URL de servicio", - "timestampingService": "Servicio de sellado de tiempo" - } - }, - "title": "Servicios de sellado de tiempo" - }, - "securityServer": { - "securityServer": "Servidor de seguridad", - "serverAddress": "Dirección del servidor", - "editDialog": { - "title": "Editar dirección del servidor de seguridad" - }, - "addressChangeInProgress": "CAMBIO EN PROCESO", - "updateSubmitted": "Cambio de dirección del servidor de seguridad enviado correctamente" - }, - "title": "Parámetros del sistema" - }, - "tab": { - "client": { - "details": "Detalles", - "internalServers": "Servidores internos", - "localGroups": "Grupos locales", - "serviceClients": "Clientes de servicio", - "services": "Servicios" - }, - "keys": { - "apiKey": "Claves de API", - "signAndAuthKeys": "Claves de firma y autenticación", - "ssTlsCertificate": "Clave TLS del servidor de seguridad" - }, - "main": { - "clients": "Clientes", - "diagnostics": "Diagnosticos", - "keys": "Claves y certificados", - "settings": "Ajustes" - }, - "services": { - "endpoints": "Endpoints", - "parameters": "Parámetros de servicio" - }, - "settings": { - "backupAndRestore": "Copia de seguridad y restauración", - "systemParameters": "Parámetros del sistema" - } - }, - "token": { - "changePin": "Cambiar el PIN", - "pinChanged": "Se cambió el PIN del token: inicie sesión en el token con el nuevo PIN", - "tokenPinPolicyHeader": "La política de PIN del token está habilitada.", - "tokenPinPolicy": "Se requiere que el PIN del token de software tenga al menos 10 caracteres ASCII provenientes de al menos tres clases de caracteres (letras minúsculas, letras mayúsculas, dígitos, caracteres especiales)." - }, - "toolbar": { - "securityServerNodeType": { - "undefined": "", - "PRIMARY": "Nodo primario", - "SECONDARY": "Nodo secundario" - } + "noTokens": "Sin Tokens" }, "validationError": { "AssertFalse": "el valor debe ser 'falso'", @@ -1097,96 +218,34 @@ "DecimalMin": "El valor numérico está por debajo del mínimo permitido", "Digits": "El valor debe contener solo dígitos", "Email": "El valor no cumple con el formato de correo electrónico", - "Future": "El valor de fecha y hora debe ser en el futuro", - "FutureOrPresent": "El valor de fecha y hora debe ser ahora o en el futuro", + "Future": "El valor de fecha y hora debe ser posterior al actual", + "FutureOrPresent": "El valor de fecha y hora debe ser posterior al actual", "Max": "El valor numérico excede el máximo permitido", "Min": "El valor numérico está por debajo del mínimo permitido", "Negative": "El valor numérico debe ser inferior a cero", "NegativeOrZero": "El valor numérico debe ser menor o igual a cero", - "NoBackslashes": "El valor no debe contener doble barras invertidas (\\)", + "NoBackslashes": "El valor no debe contener caracteres como barra invertida (\\)", "NoColons": "El valor no debe contener dos puntos (:)", "NoForwardslashes": "El valor no debe contener barra (/)", - "NoPercents": "El valor no debe contener símbolo de porcentaje (%)", + "NoPercents": "El valor no debe contener porcentaje (%)", "NoSemicolons": "El valor no debe contener punto y coma (;)", "Normalized": "El valor debe normalizarse", "NotBlank": "El valor no debe estar en blanco", "NotEmpty": "el valor no debe estar vacío", - "NotNull": "Se requiere valor", - "Null": "El valor debe permanecer en nulo", - "Past": "El valor de fecha y hora debe ser anterior a la actual", - "PastOrPresent": "El valor de fecha y hora debe ser ahora o anterior a la actual", + "NotNull": "Se requiere un valor", + "Null": "El valor no debe establecerse", + "Past": "El valor de fecha y hora debe ser anterior al actual", + "PastOrPresent": "El valor de fecha y hora debe ser anterior al actual", "Pattern": "el valor no coincidía con el formato requerido", "Positive": "El valor numérico debe ser mayor que cero", "PositiveOrZero": "El valor numérico debe ser mayor o igual a cero", "Size": "El valor no cumple con los requisitos de longitud", - "IdentifierChars": "caracteres de identificación no válidos" + "ValidHostAddress": "Se requiere un nombre de dominio completamente calificado (FQDN) válido (por ejemplo, host.example.org) o una dirección IP pública (por ejemplo, 192.168.123.123).", + "ValidHostAddressField": "Se requiere una dirección IP válida o un nombre de dominio completamente calificado (FQDN)." }, - "wizard": { - "addClientTitle": "Agregar cliente", - "addMemberTitle": "Agregar miembro", - "addSubsystemTitle": "Agregar subsistema", - "client": { - "addClient": "Agregar cliente", - "clientExists": "Client ya existe", - "memberClassTooltip": "Código que identifica la clase miembro (por ejemplo, agencia gubernamental, empresa privada, etc.).", - "memberCodeTooltip": "Código miembro que identifica de manera exclusiva a este miembro X-ROAD dentro de su clase miembro (por ejemplo, ID de negocio).", - "memberNameTooltip": "Nombre de la organización miembro.", - "register": "Registre al cliente", - "searchLabel": "Cliente", - "subsystemCodeTooltip": "Código del subsistema que identifica un sistema de información propiedad del miembro." - }, - "clientDetails": "Detalles del cliente", - "clientInfo1": "Especifica los detalles del Cliente que deseas agregar.", - "clientInfo2": "Si el cliente ya está existente, puedes seleccionarlo de la lista global.", - "finish": { - "acme": { - "infoLine": "Se recopila toda la información requerida. Al hacer clic en \"Enviar\", el nuevo cliente se agregará a la lista de clientes y la nueva clave y certificado aparecerán en la vista de claves y certificados. El certificado se ordenará desde el servidor ACME de CA y se importará automáticamente. Luego puedes registrar el nuevo cliente." - }, - "infoLine1": "Se recopila toda la información requerida. Al hacer clic en \"Enviar\", el nuevo cliente se agregará a la lista de clientes y la nueva clave y CSR aparecerán en la vista de claves y certificados.", - "infoLine2": "Para registrar el nuevo cliente, completa los siguientes pasos:", - "note": "Nota: Si haces clic en Cancelar, todos los datos se perderán", - "title": "Finalizar", - "todo1": "1) Enviar la CSR a una autoridad de certificación para firmar", - "todo2": "2) Una vez recibido, importa el certificado resultante a la clave correspondiente", - "todo3": "3) En este punto puedes registrar el nuevo cliente" - }, - "member": { - "info1": "Especifica los detalles del miembro que deseas agregar.", - "info2": "Si el miembro ya existe, puedes seleccionarlo de la lista global.", - "memberExists": "Miembro ya existe", - "register": "Registrar miembro", - "searchLabel": "Miembro", - "select": "Selecciona el miembro", - "title": "Detalles del miembro" - }, - "memberClass": "Clase miembro", - "memberCode": "Código miembro", - "memberName": "Nombre de miembro", - "selectClient": "Seleccionar cliente", - "selectMemberClass": "Seleccionar clase de miembro", - "signKey": { - "info": "Puedes definir una etiqueta para la clave de firma recién creada (no obligatoria)", - "keyLabel": "Etiqueta clave", - "title": "Clave de firma" - }, - "subsystem": { - "info1": "Especifica el código del subsistema que se agregará.", - "info2": "Si el subsistema ya existe, puedes seleccionarlo de la lista global.", - "registerSubsystem": "Registrar subsistema", - "searchLabel": "Subsistema", - "selectSubsystem": "Seleccionar subsistema", - "subsystemAdded": "Subsistema agregado", - "subsystemExists": "El subsistema ya existe" - }, - "subsystemCode": "Código de subsistema", - "token": { - "info": "Selecciona el token donde deseas agregar la clave de firma para el nuevo cliente. Nota: El token debe estar en estado registrado.", - "loggedIn": "Sesión iniciada", - "title": "Token", - "tokenName": "Nombre de token" - }, - "warning": { - "unregistered_member": "Miembro no registrado" + "validation": { + "messages": { + "address": "El campo {campo} contiene caracteres no válidos" } } } \ No newline at end of file From c33eafcbead3ba4ccc689433c2a794e2f4409327 Mon Sep 17 00:00:00 2001 From: "NOONE-00X\\vfigueroa" Date: Wed, 11 Dec 2024 13:37:22 -0300 Subject: [PATCH 3/3] feat: Add and update Spanish translations for mail notification statuses --- .../admin-service/ui/src/locales/es.json | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/security-server/admin-service/ui/src/locales/es.json b/src/security-server/admin-service/ui/src/locales/es.json index abb487f516..23cf85eec7 100644 --- a/src/security-server/admin-service/ui/src/locales/es.json +++ b/src/security-server/admin-service/ui/src/locales/es.json @@ -196,7 +196,11 @@ "vendor": "Nombre del proveedor" }, "mailNotificationConfiguration": { - "title": "Estado de notificaciones por correo", + "title": "Notificaciones por correo", + "help": { + "title": "Notificación de correo disponibles", + "description": "Las notificaciones por correo se envían automáticamente a los destinatarios configurados para los siguientes eventos, dependiendo de la configuración: renovación del certificado de autenticación a través de ACME exitosa / fallida, renovación del certificado de firma a través de ACME exitosa / fallida, registro del certificado de autenticación exitoso. Habilitar las notificaciones por correo electrónico requiere cambios en la configuración del Servidor de Seguridad. Consulta la Guía de Usuario del Servidor de Seguridad para más detalles." + }, "failureEnabled": "Notificaciones de falla", "successEnabled": "Notificaciones de éxito", "configuration": "Configuración del servidor de correo", @@ -237,7 +241,7 @@ "SUCCESS": "Todo bien", "UNKNOWN": "Desconocido" }, - "title": "Marco de tiempo" + "title": "Marca de tiempo" }, "encryption": { "status": { @@ -739,8 +743,9 @@ "serviceType": "Tipo de URL", "serviceUrl": "URL de servicio", "service_parameters_ssl_test_warnings": { - "internal_server_ssl_error": "La verificación de los certificados del servidor interno falló. ¿Es correcta y accesible la URL del servidor de origen desde el Servidor de Seguridad?", - "internal_server_ssl_handshake_error": "El TLS handshake con el servidor de origen falló. Falta el certificado del servidor en la configuración:" }, + "internal_server_ssl_error": "La verificación de los certificados del servidor interno falló. ¿Es correcta y accesible la URL del servidor de origen desde el Servidor de Seguridad?", + "internal_server_ssl_handshake_error": "El TLS handshake con el servidor de origen falló. Falta el certificado del servidor en la configuración:" + }, "timeout": "Tiempo de espera agotado", "timeoutSec": "Tiempo de espera (s)", "timeoutTooltip": "Duración máxima del tiempo de espera de una solicitud, en segundos", @@ -840,7 +845,7 @@ "generated": "Generado" } }, - "title": "Ancla de la configuración" + "title": "Ancla de configuración" }, "timestampingServices": { "action": {