diff --git a/.github/sync_translate.sh b/.github/sync_translate.sh index 1bb71b92..14e517ff 100644 --- a/.github/sync_translate.sh +++ b/.github/sync_translate.sh @@ -15,6 +15,7 @@ python3 auto_translator.py en zh-CN # python3 auto_translator.py en pt python3 auto_translator.py en ru python3 auto_translator.py en tr +python3 auto_translator.py en es diff --git a/assets/translations/strings_es.i18n.json b/assets/translations/strings_es.i18n.json index c5128dbf..40f20643 100644 --- a/assets/translations/strings_es.i18n.json +++ b/assets/translations/strings_es.i18n.json @@ -1,12 +1,36 @@ { "general": { - "reset": "Renicio" + "reset": "Renicio", + "appTitle": "Hiddify Next", + "toggle": { + "enabled": "Activado", + "disabled": "Desactivado" + }, + "state": { + "disable": "Desactivar" + }, + "sort": "Clasificar", + "sortBy": "Ordenar por", + "addToClipboard": "Añadir al portapapeles" }, "home": { "emptyProfilesMsg": "Comience agregando un perfil de suscripción", "connection": { "disconnecting": "Desconectando", - "experimentalNotice": "Funciones experimentales en uso" + "experimentalNotice": "Funciones experimentales en uso", + "tapToConnect": "Toque para conectarse", + "connecting": "Conectando", + "connected": "Conectado", + "experimentalNoticeMsg": "Ha habilitado algunas funciones experimentales que podrían afectar la calidad de la conexión y provocar errores inesperados. Siempre puede cambiar o restablecer estas opciones desde la página de opciones de configuración.", + "disableExperimentalNotice": "No volver a mostrar" + }, + "pageTitle": "Hogar", + "noActiveProfileMsg": "Elige un perfil", + "stats": { + "traffic": "Tráfico en vivo", + "trafficTotal": "Tráfico total", + "uplink": "Enlace ascendente", + "downlink": "Enlace descendente" } }, "profile": { @@ -14,22 +38,75 @@ "activeProfileNameSemanticLabel": "Nombre del perfil activo: \"${name}\".", "activeProfileBtnSemanticLabel": "Ver todos los perfiles.", "subscription": { - "expired": "Caducado" + "expired": "Caducado", + "traffic": "Tráfico", + "updatedTimeAgo": "Actualizado ${timeago}", + "remainingDuration": "${duration} días restantes", + "remainingTrafficSemanticLabel": "${consumed} de ${total} tráfico consumido.", + "noTraffic": "Fuera de cuota" }, "update": { "updateSubscriptions": "Actualizar suscripciones", "successMsg": "Perfil actualizado con éxito", - "namedSuccessMsg": "\"${name}\" actualizado exitosamente" + "namedSuccessMsg": "\"${name}\" actualizado exitosamente", + "buttonTxt": "Actualizar", + "tooltip": "Actualización del perfil", + "failureMsg": "No se pudo actualizar el perfil", + "namedFailureMsg": "No se pudo actualizar \"${name}\"" }, "share": { "exportToClipboardSuccess": "Exportado al portapapeles", - "exportConfigToClipboardSuccess": "Configuración copiada al portapapeles" + "exportConfigToClipboardSuccess": "Configuración copiada al portapapeles", + "buttonText": "Compartir", + "exportSubLinkToClipboard": "Exportar enlace de suscripción al portapapeles", + "subLinkQrCode": "Código QR del enlace de suscripción", + "exportConfigToClipboard": "Exportar configuración al portapapeles" }, "delete": { - "successMsg": "Perfil eliminado exitosamente" + "successMsg": "Perfil eliminado exitosamente", + "buttonTxt": "Borrar", + "confirmationMsg": "¿Eliminar perfil permanentemente?" }, "save": { - "successMsg": "Perfil guardado exitosamente" + "successMsg": "Perfil guardado exitosamente", + "buttonText": "Ahorrar", + "failureMsg": "No se pudo guardar el perfil" + }, + "detailsPageTitle": "Perfil", + "nonActiveProfileBtnSemanticLabel": "Seleccione \"${name}\" como perfil activo.", + "sortBy": { + "lastUpdate": "Recientemente actualizado", + "name": "Alfabéticamente" + }, + "add": { + "buttonText": "Nuevo perfil", + "shortBtnTxt": "Nuevo perfil", + "fromClipboard": "Agregar desde el portapapeles", + "scanQr": "Escanear código QR", + "qrScanner": { + "permissionDeniedError": "Permiso denegado", + "unexpectedError": "Algo salió mal", + "torchSemanticLabel": "Linterna", + "facingSemanticLabel": "Frente a la cámara" + }, + "manually": "Entrada manual", + "addingProfileMsg": "Agregar perfil", + "failureMsg": "No se pudo agregar el perfil" + }, + "edit": { + "buttonTxt": "Editar", + "selectActiveTxt": "Seleccionar perfil activo" + }, + "detailsForm": { + "nameLabel": "Nombre", + "nameHint": "Nombre de perfil", + "urlLabel": "URL", + "urlHint": "URL de configuración completa", + "emptyNameMsg": "Se requiere el nombre", + "invalidUrlMsg": "URL invalida", + "lastUpdate": "Última actualización", + "updateInterval": "Actualización automática", + "updateIntervalDialogTitle": "Intervalo de actualización automática (en horas)" } }, "proxies": { @@ -44,7 +121,14 @@ } }, "logs": { - "resumeTooltip": "reanudar" + "resumeTooltip": "reanudar", + "pageTitle": "Registros", + "filterHint": "Filtrar", + "allLevelsFilter": "Todo", + "shareCoreLogs": "Compartir registros principales", + "shareAppLogs": "Compartir registros de aplicaciones", + "pauseTooltip": "Pausa", + "clearTooltip": "Claro" }, "settings": { "requiresRestartMsg": "Para que esto surta efecto, reinicie la aplicación.", @@ -58,10 +142,30 @@ "black": "Modo Negro" }, "silentStart": "Inicio Silencioso", - "ignoreBatteryOptimizationsMsg": "Elimine las restricciones para un rendimiento VPN óptimo" + "ignoreBatteryOptimizationsMsg": "Elimine las restricciones para un rendimiento VPN óptimo", + "sectionTitle": "General", + "locale": "Idioma", + "region": "Región", + "regions": { + "ir": "Irán (ir)", + "cn": "China (CN)", + "ru": "Rusia (ru)", + "af": "Afganistán (af)", + "other": "Otro" + }, + "themeMode": "Modo temático", + "enableAnalytics": "Habilitar análisis", + "enableAnalyticsMsg": "Dar permiso para recopilar análisis y enviar informes de fallos para mejorar la aplicación.", + "autoStart": "Inicie en el arranque", + "openWorkingDir": "Abrir directorio de trabajo", + "ignoreBatteryOptimizations": "Deshabilitar la optimización de la batería", + "dynamicNotification": "Mostrar velocidad en la notificación" }, "advanced": { - "debugModeMsg": "Reinicie la aplicación para aplicar este cambio." + "debugModeMsg": "Reinicie la aplicación para aplicar este cambio.", + "sectionTitle": "Avanzado", + "debugMode": "Modo de depuración", + "memoryLimit": "Limite de memoria" }, "network": { "perAppProxyModes": { @@ -72,7 +176,10 @@ "exclude": "Bypass", "excludeMsg": "No hacer proxy de aplicaciones seleccionadas" }, - "hideSystemApps": "Ocultar aplicaciones del sistema" + "hideSystemApps": "Ocultar aplicaciones del sistema", + "perAppProxyPageTitle": "Proxy por aplicación", + "showSystemApps": "Mostrar aplicaciones del sistema", + "clearSelection": "Selección clara" }, "config": { "resetBtn": "Restablecer opciones", @@ -93,25 +200,86 @@ "directDnsAddress": "DNS Directo", "connectionTestUrl": "URL de prueba de conexión", "urlTestInterval": "URL Prueba de Intervalo", - "strictRoute": "Ruta estricta" + "strictRoute": "Ruta estricta", + "serviceMode": "Modo de servicio", + "section": { + "route": "Opciones de ruta", + "dns": "Opciones de DNS", + "inbound": "Opciones entrantes", + "outbound": "Opciones de salida", + "tlsTricks": "Trucos TLS", + "misc": "Opciones varias" + }, + "pageTitle": "Opciones de configuración", + "ipv6Mode": "Ruta IPv6", + "remoteDnsDomainStrategy": "Estrategia de dominio DNS remoto", + "directDnsDomainStrategy": "Estrategia de dominio DNS directo", + "mixedPort": "Puerto Mixto", + "localDnsPort": "Puerto DNS local", + "allowConnectionFromLan": "Permitir conexión desde LAN", + "tunImplementation": "Implementación de TUN", + "mtu": "MTU", + "enableClashApi": "Habilitar API de choque", + "clashApiPort": "Puerto API de choque", + "enableTun": "Habilitar sintonización", + "setSystemProxy": "Establecer proxy del sistema", + "enableDnsRouting": "Habilitar enrutamiento DNS", + "enableFakeDns": "Habilitar DNS falso", + "bypassLan": "Omitir LAN", + "enableTlsFragment": "Habilitar fragmento TLS", + "tlsFragmentSize": "Tamaño del fragmento TLS", + "tlsFragmentSleep": "Sueño de fragmento TLS", + "enableTlsMixedSniCase": "Habilitar caso SNI mixto TLS", + "enableTlsPadding": "Habilitar el relleno TLS", + "tlsPaddingSize": "Relleno TLS" }, "geoAssets": { "successMsg": "Activo actualizado correctamente", - "missingGeoAssetsMsg": "Faltan los archivos de los recursos de enrutamiento seleccionados. Descárgalos o elige los existentes." - } + "missingGeoAssetsMsg": "Faltan los archivos de los recursos de enrutamiento seleccionados. Descárgalos o elige los existentes.", + "pageTitle": "Activos de enrutamiento", + "version": "Versión ${version}", + "fileMissing": "Archivo faltante", + "update": "Actualizar", + "download": "Descargar", + "failureMsg": "No se pudo actualizar el activo", + "addRecommended": "Agregar activos recomendados" + }, + "pageTitle": "Ajustes", + "experimental": "Experimental" }, "appUpdate": { - "notAvailableMsg": "Ya estas usando la última versión." + "notAvailableMsg": "Ya estas usando la última versión.", + "dialogTitle": "Actualización disponible", + "updateMsg": "Hay disponible una nueva versión de @:general.appTitle. ¿Te gustaría actualizar ahora?", + "currentVersionLbl": "Versión actual", + "newVersionLbl": "Nueva versión", + "updateNowBtnTxt": "Actualizar ahora", + "laterBtnTxt": "Más tarde", + "ignoreBtnTxt": "Ignorar" }, "tray": { "status": { "disconnect": "Desconectado", - "disconnecting": "Desconectando" - } + "disconnecting": "Desconectando", + "connect": "Conectar", + "connecting": "Conectando" + }, + "dashboard": "Panel", + "quit": "Abandonar", + "open": "Abierto" }, "failure": { "singbox": { - "missingPrivilegeMsg": "El modo VPN requiere privilegios de administrador. Reinicie la aplicación como administrador o cambie el modo de servicio." + "missingPrivilegeMsg": "El modo VPN requiere privilegios de administrador. Reinicie la aplicación como administrador o cambie el modo de servicio.", + "unexpected": "Error de servicio inesperado", + "serviceNotRunning": "El servicio no está funcionando", + "missingPrivilege": "Privilegio perdido", + "missingGeoAssets": "Recursos geográficos faltantes", + "missingGeoAssetsMsg": "Faltan recursos geográficos. considere cambiar el activo activo o descargar uno seleccionado en la configuración.", + "invalidConfigOptions": "Opciones de configuración no válidas", + "invalidConfig": "Configuración no válida", + "create": "Error de creación del servicio", + "start": "Error de inicio del servicio" }, "profiles": { "unexpected": "Error Inesperado", @@ -120,11 +288,45 @@ "invalidUrl": "URL Invalido" }, "connection": { - "badResponse": "Mala respuesta" + "badResponse": "Mala respuesta", + "unexpected": "Error de conexión inesperado", + "timeout": "El tiempo de conexión expiro", + "connectionError": "Error de conexión", + "badCertificate": "Certificado malo" + }, + "unexpected": "Error inesperado", + "clash": { + "unexpected": "Error inesperado", + "core": "Error de choque ${reason}" + }, + "connectivity": { + "unexpected": "Falla inesperada", + "missingVpnPermission": "Permiso VPN faltante", + "missingNotificationPermission": "Permiso de notificación faltante", + "core": "Error central" + }, + "geoAssets": { + "unexpected": "Error inesperado", + "notUpdate": "Actualización no disponible", + "activeNotFound": "Activo geográfico activo no encontrado" } }, "play": { "short_description": "Auto, SSH, VLESS, Vmess, Trojan, Reality, Sing-Box, Clash, Xray, Shadowsocks", - "full_description": "El objetivo clave de HiddifyNext es proporcionar un cliente de túnel seguro, fácil de usar y eficiente. Le permite enrutar todo el tráfico o el tráfico de aplicaciones seleccionadas a un servidor remoto de su elección, utilizando el permiso del servicio VPN.Nota: No proporcionamos ningún servidor; Los usuarios deben garantizar que sus actividades en línea permanezcan privadas mediante el uso de su propio servidor autohospedado o servidores confiables. Soportamos servidores con:- Enlace de suscripción normal a V2ray/Xray- Enlace de suscripción a Choque- Enlace de suscripción a Sing-Box¿Cuáles son nuestras características únicas? - Fácil de usar - Optimizado y Rápido - Seleccionar automáticamente LowestPing - Mostrar información de uso del usuario. - Importe fácilmente un subvínculo con un solo clic mediante enlaces profundos - Gratis y sin anuncios - Cambie fácilmente los subvínculos de usuario - más y másApoyo:- Todos los protocolos soportados por Sing-Box- VLESS + xtls realidad, visión- VMESS- troyano- Calcetines Shoadow- Realidad-V2ray-Histria2-TUIC-SSH- SombraTLSEl código fuente existe en https://github.com/hiddify/Hiddify-NextEl núcleo de la aplicación se basa en sing-box de código abierto.Descripción del permiso:- Servicio VPN: como el objetivo de esta aplicación es proporcionar un cliente de túnel seguro, fácil de usar y eficiente, necesitamos este permiso para poder enrutar el tráfico a través del túnel al servidor remoto.- CONSULTAR TODOS LOS PAQUETES: este permiso se utiliza para permitir a los usuarios incluir o excluir aplicaciones específicas para la tunelización.- RECIBIR ARRANQUE COMPLETADO: este permiso se puede habilitar o deshabilitar desde la configuración de la aplicación para activar esta aplicación al iniciar el dispositivo.- PUBLICAR NOTIFICACIONES: este permiso es esencial ya que empleamos un servicio en primer plano para garantizar el funcionamiento continuo del servicio VPN.- Esta aplicación está libre de publicidad. Los datos analíticos y de fallos solo se producen con el consentimiento explícito del usuario en el primer uso de la aplicación." + "full_description": "El objetivo clave de HiddifyNext es proporcionar un cliente de túnel seguro, fácil de usar y eficiente. Le permite enrutar todo el tráfico o el tráfico de aplicaciones seleccionadas a un servidor remoto de su elección, utilizando el permiso del servicio VPN.Nota: No proporcionamos ningún servidor; Los usuarios deben garantizar que sus actividades en línea permanezcan privadas mediante el uso de su propio servidor autohospedado o servidores confiables. Soportamos servidores con:- Enlace de suscripción normal a V2ray/Xray- Enlace de suscripción a Choque- Enlace de suscripción a Sing-Box¿Cuáles son nuestras características únicas? - Fácil de usar - Optimizado y Rápido - Seleccionar automáticamente LowestPing - Mostrar información de uso del usuario. - Importe fácilmente un subvínculo con un solo clic mediante enlaces profundos - Gratis y sin anuncios - Cambie fácilmente los subvínculos de usuario - más y másApoyo:- Todos los protocolos soportados por Sing-Box- VLESS + xtls realidad, visión- VMESS- troyano- Calcetines Shoadow- Realidad-V2ray-Histria2-TUIC-SSH- SombraTLSEl código fuente existe en https://github.com/hiddify/Hiddify-NextEl núcleo de la aplicación se basa en sing-box de código abierto.Descripción del permiso:- Servicio VPN: como el objetivo de esta aplicación es proporcionar un cliente de túnel seguro, fácil de usar y eficiente, necesitamos este permiso para poder enrutar el tráfico a través del túnel al servidor remoto.- CONSULTAR TODOS LOS PAQUETES: este permiso se utiliza para permitir a los usuarios incluir o excluir aplicaciones específicas para la tunelización.- RECIBIR ARRANQUE COMPLETADO: este permiso se puede habilitar o deshabilitar desde la configuración de la aplicación para activar esta aplicación al iniciar el dispositivo.- PUBLICAR NOTIFICACIONES: este permiso es esencial ya que empleamos un servicio en primer plano para garantizar el funcionamiento continuo del servicio VPN.- Esta aplicación está libre de publicidad. Los datos analíticos y de fallos solo se producen con el consentimiento explícito del usuario en el primer uso de la aplicación.", + "title": "Hiddify Next (vista previa)" + }, + "intro": { + "termsAndPolicyCaution(rich)": "al continuar, aceptas ${tap(@:about.termsAndConditions)}", + "start": "Comenzar" + }, + "about": { + "pageTitle": "Acerca de", + "version": "Versión", + "sourceCode": "Código fuente", + "telegramChannel": "Canal de telegramas", + "checkForUpdate": "Buscar actualizaciones", + "privacyPolicy": "Política de privacidad", + "termsAndConditions": "Términos y condiciones" } } \ No newline at end of file