From 19e22c036a2a4e7cf6a305d1e4b874e1826b1335 Mon Sep 17 00:00:00 2001 From: junlin03 <153605036+junlin03@users.noreply.github.com> Date: Sat, 3 Feb 2024 14:55:37 +0800 Subject: [PATCH] inlang: update translations --- assets/translations/strings_en.i18n.json | 2 +- assets/translations/strings_es.i18n.json | 208 ++++++------ assets/translations/strings_zh-CN.i18n.json | 36 +-- assets/translations/strings_zh-TW.i18n.json | 340 ++++++++++++++++++++ project.inlang/settings.json | 3 +- 5 files changed, 465 insertions(+), 124 deletions(-) create mode 100644 assets/translations/strings_zh-TW.i18n.json diff --git a/assets/translations/strings_en.i18n.json b/assets/translations/strings_en.i18n.json index ae723f96..e4902778 100644 --- a/assets/translations/strings_en.i18n.json +++ b/assets/translations/strings_en.i18n.json @@ -243,7 +243,7 @@ "tlsPaddingSize": "TLS Padding", "enableMux": "Enable Mux", "muxProtocol": "Mux Protocol", - "muxMaxStreams": "Max Concurrent Streams" + "muxMaxStreams": "Max Concurrent Streams" }, "geoAssets": { "pageTitle": "Routing Assets", diff --git a/assets/translations/strings_es.i18n.json b/assets/translations/strings_es.i18n.json index 0fb923cb..3d00b339 100644 --- a/assets/translations/strings_es.i18n.json +++ b/assets/translations/strings_es.i18n.json @@ -1,7 +1,7 @@ { "general": { - "reset": "Renicio", "appTitle": "Hiddify Next", + "reset": "Renicio", "toggle": { "enabled": "Activado", "disabled": "Desactivado" @@ -13,19 +13,23 @@ "sortBy": "Ordenar por", "addToClipboard": "Añadir al portapapeles" }, + "intro": { + "termsAndPolicyCaution(rich)": "al continuar, aceptas ${tap(@:about.termsAndConditions)}", + "start": "Comenzar" + }, "home": { + "pageTitle": "Hogar", "emptyProfilesMsg": "Comience agregando un perfil de suscripción", + "noActiveProfileMsg": "Elige un perfil", "connection": { - "disconnecting": "Desconectando", - "experimentalNotice": "Funciones experimentales en uso", "tapToConnect": "Toque para conectarse", "connecting": "Conectando", + "disconnecting": "Desconectando", "connected": "Conectado", + "experimentalNotice": "Funciones experimentales en uso", "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", @@ -35,45 +39,18 @@ }, "profile": { "overviewPageTitle": "Perfiles", + "detailsPageTitle": "Perfil", "activeProfileNameSemanticLabel": "Nombre del perfil activo: \"${name}\".", "activeProfileBtnSemanticLabel": "Ver todos los perfiles.", + "nonActiveProfileBtnSemanticLabel": "Seleccione \"${name}\" como perfil activo.", "subscription": { - "expired": "Caducado", "traffic": "Tráfico", "updatedTimeAgo": "Actualizado ${timeago}", "remainingDuration": "${duration} días restantes", "remainingTrafficSemanticLabel": "${consumed} de ${total} tráfico consumido.", + "expired": "Caducado", "noTraffic": "Fuera de cuota" }, - "update": { - "updateSubscriptions": "Actualizar suscripciones", - "successMsg": "Perfil actualizado con éxito", - "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", - "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", - "buttonTxt": "Borrar", - "confirmationMsg": "¿Eliminar perfil permanentemente?" - }, - "save": { - "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" @@ -93,10 +70,37 @@ "addingProfileMsg": "Agregar perfil", "failureMsg": "No se pudo agregar el perfil" }, + "update": { + "buttonTxt": "Actualizar", + "tooltip": "Actualización del perfil", + "updateSubscriptions": "Actualizar suscripciones", + "failureMsg": "No se pudo actualizar el perfil", + "successMsg": "Perfil actualizado con éxito", + "namedFailureMsg": "No se pudo actualizar \"${name}\"", + "namedSuccessMsg": "\"${name}\" actualizado exitosamente" + }, + "share": { + "buttonText": "Compartir", + "exportToClipboardSuccess": "Exportado al portapapeles", + "exportSubLinkToClipboard": "Exportar enlace de suscripción al portapapeles", + "subLinkQrCode": "Código QR del enlace de suscripción", + "exportConfigToClipboard": "Exportar configuración al portapapeles", + "exportConfigToClipboardSuccess": "Configuración copiada al portapapeles" + }, "edit": { "buttonTxt": "Editar", "selectActiveTxt": "Seleccionar perfil activo" }, + "delete": { + "buttonTxt": "Borrar", + "confirmationMsg": "¿Eliminar perfil permanentemente?", + "successMsg": "Perfil eliminado exitosamente" + }, + "save": { + "buttonText": "Ahorrar", + "successMsg": "Perfil guardado exitosamente", + "failureMsg": "No se pudo guardar el perfil" + }, "detailsForm": { "nameLabel": "Nombre", "nameHint": "Nombre de perfil", @@ -121,31 +125,25 @@ } }, "logs": { - "resumeTooltip": "reanudar", "pageTitle": "Registros", "filterHint": "Filtrar", "allLevelsFilter": "Todo", "shareCoreLogs": "Compartir registros principales", "shareAppLogs": "Compartir registros de aplicaciones", "pauseTooltip": "Pausa", + "resumeTooltip": "reanudar", "clearTooltip": "Claro" }, "settings": { + "pageTitle": "Ajustes", "requiresRestartMsg": "Para que esto surta efecto, reinicie la aplicación.", + "experimental": "Experimental", "experimentalMsg": "Las funciones con el indicador Experimental aún están en desarrollo y pueden causar problemas.", "general": { - "regionMsg": "Ayuda a configurar opciones predeterminadas para omitir direcciones nacionales", - "themeModes": { - "system": "Seguir el tema del sistema", - "dark": "Modo Oscuro", - "light": "Modo Claro", - "black": "Modo Negro" - }, - "silentStart": "Inicio Silencioso", - "ignoreBatteryOptimizationsMsg": "Elimine las restricciones para un rendimiento VPN óptimo", "sectionTitle": "General", "locale": "Idioma", "region": "Región", + "regionMsg": "Ayuda a configurar opciones predeterminadas para omitir direcciones nacionales", "regions": { "ir": "Irán (ir)", "cn": "China (CN)", @@ -154,22 +152,31 @@ "other": "Otro" }, "themeMode": "Modo temático", + "themeModes": { + "system": "Seguir el tema del sistema", + "dark": "Modo Oscuro", + "light": "Modo Claro", + "black": "Modo Negro" + }, "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", + "silentStart": "Inicio Silencioso", "openWorkingDir": "Abrir directorio de trabajo", "ignoreBatteryOptimizations": "Deshabilitar la optimización de la batería", + "ignoreBatteryOptimizationsMsg": "Elimine las restricciones para un rendimiento VPN óptimo", "dynamicNotification": "Mostrar velocidad en la notificación" }, "advanced": { - "debugModeMsg": "Reinicie la aplicación para aplicar este cambio.", "sectionTitle": "Avanzado", "debugMode": "Modo de depuración", + "debugModeMsg": "Reinicie la aplicación para aplicar este cambio.", "memoryLimit": "Limite de memoria", "memoryLimitMsg": "Habilítelo si experimenta errores de falta de memoria o fallas frecuentes de la aplicación", "resetTunnel": "Restablecer perfil VPN" }, "network": { + "perAppProxyPageTitle": "Proxy por aplicación", "perAppProxyModes": { "off": "Todo", "offMsg": "Proxy en todas las aplicaciones", @@ -178,32 +185,18 @@ "exclude": "Bypass", "excludeMsg": "No hacer proxy de aplicaciones seleccionadas" }, - "hideSystemApps": "Ocultar aplicaciones del sistema", - "perAppProxyPageTitle": "Proxy por aplicación", "showSystemApps": "Mostrar aplicaciones del sistema", + "hideSystemApps": "Ocultar aplicaciones del sistema", "clearSelection": "Selección clara" }, "config": { "resetBtn": "Restablecer opciones", + "serviceMode": "Modo de servicio", "serviceModes": { "proxy": "Proxy", "systemProxy": "Sistema Proxy", "tun": "VPN" }, - "logLevel": "Registro del Nivel", - "resolveDestination": "Resolver Destino", - "ipv6Modes": { - "disable": "Desactivar", - "enable": "Activar", - "prefer": "Preferido", - "only": "Exclusivo" - }, - "remoteDnsAddress": "DNS Remoto", - "directDnsAddress": "DNS Directo", - "connectionTestUrl": "URL de prueba de conexión", - "urlTestInterval": "URL Prueba de Intervalo", - "strictRoute": "Ruta estricta", - "serviceMode": "Modo de servicio", "section": { "route": "Opciones de ruta", "dns": "Opciones de DNS", @@ -214,14 +207,26 @@ "misc": "Opciones varias" }, "pageTitle": "Opciones de configuración", + "logLevel": "Registro del Nivel", + "resolveDestination": "Resolver Destino", "ipv6Mode": "Ruta IPv6", + "ipv6Modes": { + "disable": "Desactivar", + "enable": "Activar", + "prefer": "Preferido", + "only": "Exclusivo" + }, + "remoteDnsAddress": "DNS Remoto", "remoteDnsDomainStrategy": "Estrategia de dominio DNS remoto", + "directDnsAddress": "DNS Directo", "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", + "connectionTestUrl": "URL de prueba de conexión", + "urlTestInterval": "URL Prueba de Intervalo", "enableClashApi": "Habilitar API de choque", "clashApiPort": "Puerto API de choque", "enableTun": "Habilitar sintonización", @@ -229,6 +234,7 @@ "enableDnsRouting": "Habilitar enrutamiento DNS", "enableFakeDns": "Habilitar DNS falso", "bypassLan": "Omitir LAN", + "strictRoute": "Ruta estricta", "enableTlsFragment": "Habilitar fragmento TLS", "tlsFragmentSize": "Tamaño del fragmento TLS", "tlsFragmentSleep": "Sueño de fragmento TLS", @@ -240,20 +246,27 @@ "muxMaxStreams": "Max Concurrent Streams" }, "geoAssets": { - "successMsg": "Activo actualizado correctamente", - "missingGeoAssetsMsg": "Faltan los archivos de los recursos de enrutamiento seleccionados. Descárgalos o elige los existentes.", "pageTitle": "Activos de enrutamiento", + "geoip": "Geoip", + "geosite": "Geosite", "version": "Versión ${version}", "fileMissing": "Archivo faltante", "update": "Actualizar", "download": "Descargar", "failureMsg": "No se pudo actualizar el activo", + "successMsg": "Activo actualizado correctamente", "addRecommended": "Agregar activos recomendados", - "geoip": "Geoip", - "geosite": "Geosite" - }, - "pageTitle": "Ajustes", - "experimental": "Experimental" + "missingGeoAssetsMsg": "Faltan los archivos de los recursos de enrutamiento seleccionados. Descárgalos o elige los existentes." + } + }, + "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" }, "appUpdate": { "notAvailableMsg": "Ya estas usando la última versión.", @@ -266,22 +279,27 @@ "ignoreBtnTxt": "Ignorar" }, "tray": { - "status": { - "disconnect": "Desconectado", - "disconnecting": "Desconectando", - "connect": "Conectar", - "connecting": "Conectando" - }, "dashboard": "Panel", "quit": "Abandonar", - "open": "Abierto" + "open": "Abierto", + "status": { + "connect": "Conectar", + "connecting": "Conectando", + "disconnect": "Desconectado", + "disconnecting": "Desconectando" + } }, "failure": { + "unexpected": "Error inesperado", + "clash": { + "unexpected": "Error inesperado", + "core": "Error de choque ${reason}" + }, "singbox": { - "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", + "missingPrivilegeMsg": "El modo VPN requiere privilegios de administrador. Reinicie la aplicación como administrador o cambie el modo de servicio.", "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", @@ -289,6 +307,12 @@ "create": "Error de creación del servicio", "start": "Error de inicio del servicio" }, + "connectivity": { + "unexpected": "Falla inesperada", + "missingVpnPermission": "Permiso VPN faltante", + "missingNotificationPermission": "Permiso de notificación faltante", + "core": "Error central" + }, "profiles": { "unexpected": "Error Inesperado", "notFound": "Perfil no encontrado", @@ -296,23 +320,12 @@ "invalidUrl": "URL Invalido" }, "connection": { - "badResponse": "Mala respuesta", "unexpected": "Error de conexión inesperado", "timeout": "El tiempo de conexión expiro", + "badResponse": "Mala respuesta", "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", @@ -320,21 +333,8 @@ } }, "play": { + "title": "Hiddify Next (vista previa)", "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.", - "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" + "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." } } \ No newline at end of file diff --git a/assets/translations/strings_zh-CN.i18n.json b/assets/translations/strings_zh-CN.i18n.json index fc7a4f77..0e4a1988 100644 --- a/assets/translations/strings_zh-CN.i18n.json +++ b/assets/translations/strings_zh-CN.i18n.json @@ -33,8 +33,8 @@ "stats": { "traffic": "实时流量", "trafficTotal": "总流量", - "uplink": "上行链路", - "downlink": "下行链路" + "uplink": "上行", + "downlink": "下行" } }, "profile": { @@ -47,7 +47,7 @@ "traffic": "流量", "updatedTimeAgo": "更新 ${timeago}", "remainingDuration": "剩余 ${duration} 天", - "remainingTrafficSemanticLabel": "已消耗 ${consumed} 流量,共 ${total} 流量。", + "remainingTrafficSemanticLabel": "已使用 ${consumed} 流量,共 ${total} 流量。", "expired": "已过期", "noTraffic": "超出配额" }, @@ -129,7 +129,7 @@ "filterHint": "筛选", "allLevelsFilter": "全部", "shareCoreLogs": "分享核心日志", - "shareAppLogs": "分享日志", + "shareAppLogs": "分享應用日志", "pauseTooltip": "暂停", "resumeTooltip": "恢复", "clearTooltip": "清除" @@ -149,14 +149,14 @@ "cn": "中国 (cn)", "ru": "俄罗斯 (ru)", "af": "阿富汗 (af)", - "other": "其它" + "other": "其他" }, "themeMode": "主题模式", "themeModes": { "system": "遵循系统主题", - "dark": "黑暗模式", - "light": "浅色模式", - "black": "深色模式" + "dark": "暗色", + "light": "浅色", + "black": "黑色" }, "enableAnalytics": "启用分析", "enableAnalyticsMsg": "授予收集分析并发送崩溃报告以改进应用程序的权限", @@ -191,7 +191,7 @@ }, "config": { "resetBtn": "重置选项", - "serviceMode": "服务方式", + "serviceMode": "服务模式", "serviceModes": { "proxy": "仅代理", "systemProxy": "系统代理", @@ -201,10 +201,10 @@ "route": "路由选项", "dns": "DNS 选项", "inbound": "入站选项", - "mux": "Multiplexer", + "mux": "复用器", "outbound": "出站选项", "tlsTricks": "TLS Tricks", - "misc": "其它选项" + "misc": "其他选项" }, "pageTitle": "配置选项", "logLevel": "日志级别", @@ -213,7 +213,7 @@ "ipv6Modes": { "disable": "禁用", "enable": "启用", - "prefer": "优先", + "prefer": "首选", "only": "仅" }, "remoteDnsAddress": "远程 DNS", @@ -241,9 +241,9 @@ "enableTlsMixedSniCase": "启用 TLS 混合 SNI 情形", "enableTlsPadding": "启用 TLS 填充", "tlsPaddingSize": "TLS 填充", - "enableMux": "Enable Mux", - "muxProtocol": "Mux Protocol", - "muxMaxStreams": "Max Concurrent Streams" + "enableMux": "启用复用器", + "muxProtocol": "复用器控制", + "muxMaxStreams": "最大并发数" }, "geoAssets": { "pageTitle": "路由资源文件", @@ -279,7 +279,7 @@ "ignoreBtnTxt": "忽略" }, "tray": { - "dashboard": "控制面板", + "dashboard": "仪表板", "quit": "退出", "open": "打开", "status": { @@ -327,7 +327,7 @@ "badCertificate": "证书无效" }, "geoAssets": { - "unexpected": "意外的错误", + "unexpected": "意外错误", "notUpdate": "无可用更新", "activeNotFound": "未找到激活的 GEO 资源文件" } @@ -335,6 +335,6 @@ "play": { "title": "Hiddify Next(预览)", "short_description": "自动,SSH, VLESS, Vmess, Trojan, Reality, Sing-Box, Clash, Xray, Shadowsocks", - "full_description": "HiddifyNext 的主要目标是提供安全、用户友好且高效的隧道客户端。它使您能够利用 VPN 服务权限将所有流量或选定的应用程序流量路由到您选择的远程服务器。\n\n注:我们不提供任何服务器;用户需要使用自己托管的服务器或可信的服务器来确保您在线活动的私密性。\n \n我们支持以下类型的服务器:\n- 普通 V2ray/Xray 订阅链接\n- Clash 订阅链接\n- Sing-Box 订阅链接\n\n我们的特色是什么?\n\n- 用户友好\n- 优化和高速\n- 自动选择最低延迟\n- 显示用户使用信息\n- 通过一键链接轻松导入\n- 免费且无广告\n- 轻松切换线路\n- 等等\n\n支持:\n- Sing-Box 支持的所有协议\n- VLESS + XTLS Reality、Vision 协议\n- VMESS\n- Trojan\n- Shoadowsocks\n- Reality\n- V2ray\n- Hystria2\n- TUIC\n- SSH\n- ShadowTLS\n\n\n源代码位于 https://github.com/hiddify/Hiddify-Next\n应用程序核心基于开源的 Sing-Box。\n\n权限说明:\n\n- VPN 服务:由于此应用程序的目标是提供安全、用户友好和高效的隧道客户端,我们需要此权限以能够通过隧道将流量路由到远程服务器。\n获取应用程序列表:此权限用于允许用户包括或排除特定应用程序以进行隧道传输。\n- 接收开机广播:可以从应用程序设置中启用或禁用此权限,以便在设备启动时激活此应用程序。\n- 发送通知:此权限是必需的,因为我们使用前台服务来确保 VPN 服务的持续运行。\n- 本应用程序没有广告。分析和崩溃数据仅在首次使用应用程序时经用户明确同意的情况下发生。" + "full_description": "HiddifyNext 的主要目标是提供安全、用户友好且高效的隧道客户端。它使您能够利用 VPN 服务权限将所有流量或选定的应用程序流量路由到您选择的远程服务器。\n\n注:我们不提供任何服务器;用户需要使用自己托管的服务器或可信的服务器来确保您在线活动的私密性。\n \n我们支持以下类型的服务器:\n- 普通 V2ray/Xray 订阅链接\n- Clash 订阅链接\n- Sing-Box 订阅链接\n\n我们的特色是什么?\n\n- 用户友好\n- 优化和高速\n- 自动选择最低延迟\n- 显示用户使用信息\n- 通过一键链接轻松导入\n- 免费且无广告\n- 轻松切换线路\n- 等等\n\n支持:\n- Sing-Box 支持的所有协议\n- VLESS + XTLS Reality、Vision 协议\n- VMESS\n- Trojan\n- Shoadowsocks\n- Reality\n- V2ray\n- Hystria2\n- TUIC\n- SSH\n- ShadowTLS\n\n\n源代码位于 https://github.com/hiddify/Hiddify-Next\n应用程序核心基于开源的 Sing-Box。\n\n权限说明:\n\n- VPN 服务:由于此应用程序的目标是提供安全、用户友好和高效的隧道客户端,我们需要此权限以能够通过隧道将流量路由到远程服务器。\n- 获取应用程序列表:此权限用于允许用户包括或排除特定应用程序以进行隧道传输。\n- 接收开机广播:可以从应用程序设置中启用或禁用此权限,以便在设备启动时激活此应用程序。\n- 发送通知:此权限是必需的,因为我们使用前台服务来确保 VPN 服务的持续运行。\n- 本应用程序没有广告。分析和崩溃数据仅在首次使用应用程序时经用户明确同意的情况下发生。" } } \ No newline at end of file diff --git a/assets/translations/strings_zh-TW.i18n.json b/assets/translations/strings_zh-TW.i18n.json new file mode 100644 index 00000000..12dc52a0 --- /dev/null +++ b/assets/translations/strings_zh-TW.i18n.json @@ -0,0 +1,340 @@ +{ + "general": { + "appTitle": "Hiddify Next", + "reset": "重置", + "toggle": { + "enabled": "啟用", + "disabled": "停用" + }, + "state": { + "disable": "停用" + }, + "sort": "排序", + "sortBy": "排序方式", + "addToClipboard": "新增到剪貼簿" + }, + "intro": { + "termsAndPolicyCaution(rich)": "繼續即表示您同意 ${tap( @:about .termsAndConditions)}", + "start": "開始" + }, + "home": { + "pageTitle": "主頁", + "emptyProfilesMsg": "首先新增訂閱設定檔", + "noActiveProfileMsg": "選擇設定檔", + "connection": { + "tapToConnect": "點擊以連接", + "connecting": "連接中", + "disconnecting": "斷連中", + "connected": "已連接", + "experimentalNotice": "使用中的實驗性功能", + "experimentalNoticeMsg": "您啟用了一些實驗性功能,這些功能可能會影響連線品質並導致意外錯誤。您始終可以從「配置選項」頁面變更或重設這些選項。", + "disableExperimentalNotice": "不再提示" + }, + "stats": { + "traffic": "即時流量", + "trafficTotal": "總流量", + "uplink": "上行", + "downlink": "下行" + } + }, + "profile": { + "overviewPageTitle": "設定檔", + "detailsPageTitle": "設定檔", + "activeProfileNameSemanticLabel": "活動設定檔名稱:“${name}”。", + "activeProfileBtnSemanticLabel": "查看所有設定檔。", + "nonActiveProfileBtnSemanticLabel": "選擇“${name}”作為活動設定檔。", + "subscription": { + "traffic": "流量", + "updatedTimeAgo": "更新${時間前}", + "remainingDuration": "剩餘 ${duration} 天", + "remainingTrafficSemanticLabel": "已使用 ${consumed} 流量,總共 ${total} 流量。", + "expired": "已到期", + "noTraffic": "超過配額" + }, + "sortBy": { + "lastUpdate": "最近更新", + "name": "按字母順序" + }, + "add": { + "buttonText": "新的設定檔", + "shortBtnTxt": "新的設定檔", + "fromClipboard": "從剪貼簿添加", + "scanQr": "掃描 QR code", + "qrScanner": { + "permissionDeniedError": "沒有權限", + "unexpectedError": "出了點問題", + "torchSemanticLabel": "手電筒", + "facingSemanticLabel": "相機朝向" + }, + "manually": "手動輸入", + "addingProfileMsg": "新增設定檔", + "failureMsg": "新增設定檔失敗" + }, + "update": { + "buttonTxt": "更新", + "tooltip": "更新設定檔", + "updateSubscriptions": "更新訂閱", + "failureMsg": "更新設定檔失敗", + "successMsg": "設定檔更新成功", + "namedFailureMsg": "無法更新“${name}”", + "namedSuccessMsg": "“${name}” 更新成功" + }, + "share": { + "buttonText": "分享", + "exportToClipboardSuccess": "匯出到剪貼簿", + "exportSubLinkToClipboard": "將訂閱連結匯出到剪貼簿", + "subLinkQrCode": "訂閱連結 QR code", + "exportConfigToClipboard": "將配置匯出到剪貼簿", + "exportConfigToClipboardSuccess": "配置已複製到剪貼簿" + }, + "edit": { + "buttonTxt": "編輯", + "selectActiveTxt": "選擇並激活設定檔" + }, + "delete": { + "buttonTxt": "刪除", + "confirmationMsg": "永久刪除設定檔嗎?", + "successMsg": "設定檔刪除成功" + }, + "save": { + "buttonText": "儲存", + "successMsg": "設定檔儲存成功", + "failureMsg": "設定檔儲存失敗" + }, + "detailsForm": { + "nameLabel": "名稱", + "nameHint": "設定檔名稱", + "urlLabel": "網址", + "urlHint": "完整配置網址", + "emptyNameMsg": "名稱為必填項", + "invalidUrlMsg": "無效的網址", + "lastUpdate": "最後更新", + "updateInterval": "自動更新", + "updateIntervalDialogTitle": "自動更新間隔(以小時為單位)" + } + }, + "proxies": { + "pageTitle": "代理", + "emptyProxiesMsg": "沒有可用的代理", + "delayTestTooltip": "測試延遲", + "sortTooltip": "對代理進行排序", + "sortOptions": { + "unsorted": "預設", + "name": "按字母排序", + "delay": "按延遲排序" + } + }, + "logs": { + "pageTitle": "日誌", + "filterHint": "篩選", + "allLevelsFilter": "全部", + "shareCoreLogs": "分享核心日誌", + "shareAppLogs": "共享應用程式日誌", + "pauseTooltip": "暫停", + "resumeTooltip": "恢復", + "clearTooltip": "清除" + }, + "settings": { + "pageTitle": "設定", + "requiresRestartMsg": "若要使其生效,請重新啟動應用程式", + "experimental": "實驗性的", + "experimentalMsg": "帶有實驗標誌的功能仍在開發中,可能會導致問題。", + "general": { + "sectionTitle": "一般的", + "locale": "語言", + "region": "地區", + "regionMsg": "幫助設定預設選項以繞過國內地址", + "regions": { + "ir": "伊朗 (ir)", + "cn": "中國 (cn)", + "ru": "俄羅斯 (ru)", + "af": "阿富汗 (af)", + "other": "其他" + }, + "themeMode": "主題模式", + "themeModes": { + "system": "遵循系統主題", + "dark": "深色", + "light": "淺色", + "black": "黑色" + }, + "enableAnalytics": "啟用分析", + "enableAnalyticsMsg": "授予收集分析並發送崩潰報告以改進應用程式的權限", + "autoStart": "隨系統啟動", + "silentStart": "啟動最小化", + "openWorkingDir": "開啟工作目錄", + "ignoreBatteryOptimizations": "停用電池優化", + "ignoreBatteryOptimizationsMsg": "消除限制以獲得最佳 VPN 效能", + "dynamicNotification": "在通知中顯示速度" + }, + "advanced": { + "sectionTitle": "高級設定", + "debugMode": "偵錯模式", + "debugModeMsg": "重新啟動應用程式以應用此更改", + "memoryLimit": "記憶體限制", + "memoryLimitMsg": "如果您遇到記憶體不足錯誤或頻繁應用程式崩潰,請啟用", + "resetTunnel": "重置 VPN 設定檔" + }, + "network": { + "perAppProxyPageTitle": "應用程式 VPN 模式", + "perAppProxyModes": { + "off": "全部", + "offMsg": "代理所有應用程式", + "include": "代理", + "includeMsg": "僅代理選定的應用程式", + "exclude": "略過", + "excludeMsg": "不代理選定的應用程式" + }, + "showSystemApps": "顯示系統應用程式", + "hideSystemApps": "隱藏系統應用程式", + "clearSelection": "清空選項" + }, + "config": { + "resetBtn": "重置選項", + "serviceMode": "服務模式", + "serviceModes": { + "proxy": "僅代理", + "systemProxy": "系統代理", + "tun": "VPN" + }, + "section": { + "route": "路由選項", + "dns": "DNS 選項", + "inbound": "入站選項", + "mux": "復用器", + "outbound": "出站選項", + "tlsTricks": "TLS Tricks", + "misc": "其他選項" + }, + "pageTitle": "配置選項", + "logLevel": "日誌等級", + "resolveDestination": "解析目標地址", + "ipv6Mode": "IPv6 路由", + "ipv6Modes": { + "disable": "停用", + "enable": "啟用", + "prefer": "首選", + "only": "僅" + }, + "remoteDnsAddress": "遠端 DNS", + "remoteDnsDomainStrategy": "遠端 DNS 網域策略", + "directDnsAddress": "直連 DNS", + "directDnsDomainStrategy": "直連 DNS 網域策略", + "mixedPort": "混合連接埠", + "localDnsPort": "本地 DNS 連接埠", + "allowConnectionFromLan": "允許區域網路連接", + "tunImplementation": "TUN 實現", + "mtu": "MTU", + "connectionTestUrl": "連接測試網址", + "urlTestInterval": "URL 測試間隔", + "enableClashApi": "啟用 Clash API", + "clashApiPort": "Clash API 連接埠", + "enableTun": "啟用 TUN", + "setSystemProxy": "設定系統代理", + "enableDnsRouting": "啟用 DNS 路由", + "enableFakeDns": "啟用 Fake DNS", + "bypassLan": "繞過區域網路", + "strictRoute": "嚴格路由", + "enableTlsFragment": "啟用 TLS 分段", + "tlsFragmentSize": "TLS 分段大小", + "tlsFragmentSleep": "TLS 分段睡眠", + "enableTlsMixedSniCase": "啟用 TLS 混合 SNI 情況", + "enableTlsPadding": "啟用 TLS 填充", + "tlsPaddingSize": "TLS 填充", + "enableMux": "啟用復用器", + "muxProtocol": "復用器控制", + "muxMaxStreams": "最大並發數" + }, + "geoAssets": { + "pageTitle": "路由資源文件", + "geoip": "Geoip", + "geosite": "Geosite", + "version": "版本${version}", + "fileMissing": "文件遺失", + "update": "更新", + "download": "下載", + "failureMsg": "更新資源文件失敗", + "successMsg": "已成功更新資源文件", + "addRecommended": "新增推薦的資源文件", + "missingGeoAssetsMsg": "所選路由資源的檔案遺失。下載它們或選擇現有的。" + } + }, + "about": { + "pageTitle": "關於", + "version": "版本", + "sourceCode": "原始代碼", + "telegramChannel": "Telegram 頻道", + "checkForUpdate": "檢查更新", + "privacyPolicy": "隱私政策", + "termsAndConditions": "條款與條件" + }, + "appUpdate": { + "notAvailableMsg": "已經是最新版本", + "dialogTitle": "有可用更新", + "updateMsg": "@:general .appTitle 的更新版本現已推出。您想現在更新嗎?", + "currentVersionLbl": "目前版本", + "newVersionLbl": "新版本", + "updateNowBtnTxt": "現在更新", + "laterBtnTxt": "之後再說", + "ignoreBtnTxt": "忽略" + }, + "tray": { + "dashboard": "儀表板", + "quit": "退出", + "open": "打開", + "status": { + "connect": "連接", + "connecting": "連接中", + "disconnect": "斷開連接", + "disconnecting": "斷連中" + } + }, + "failure": { + "unexpected": "意外錯誤", + "clash": { + "unexpected": "意外錯誤", + "core": "Clash 錯誤 ${reason}" + }, + "singbox": { + "unexpected": "意外服務錯誤", + "serviceNotRunning": "服務未運行", + "missingPrivilege": "缺乏權限", + "missingPrivilegeMsg": "VPN 模式需要管理員權限。以管理員身分重新啟動應用程式或變更服務模式。", + "missingGeoAssets": "缺少 GEO 資源文件", + "missingGeoAssetsMsg": "GEO 資源文件缺失。請考慮更改活動資源文件或在設定中下載選定的資源文件。", + "invalidConfigOptions": "配置選項無效", + "invalidConfig": "無效配置", + "create": "服務建立錯誤", + "start": "服務啟動錯誤" + }, + "connectivity": { + "unexpected": "意外失敗", + "missingVpnPermission": "缺少 VPN 權限", + "missingNotificationPermission": "缺少通知權限", + "core": "核心錯誤" + }, + "profiles": { + "unexpected": "意外錯誤", + "notFound": "未找到設定檔", + "invalidConfig": "無效配置", + "invalidUrl": "無效網址" + }, + "connection": { + "unexpected": "意外連線錯誤", + "timeout": "連線過時", + "badResponse": "錯誤反應", + "connectionError": "連線錯誤", + "badCertificate": "無效證書" + }, + "geoAssets": { + "unexpected": "意外錯誤", + "notUpdate": "無可用更新", + "activeNotFound": "未找到活動 GEO 資源文件" + } + }, + "play": { + "title": "Hiddify Next(預覽)", + "short_description": "自動、SSH、VLESS、Vmess、Trojan、Reality、Sing-Box、Clash、Xray、Shadowsocks", + "full_description": "HiddifyNext 的主要目標是提供安全、使用者友好且高效率的隧道用戶端。它使您能夠利用 VPN 服務權限將所有流量或選定的應用程式流量路由到您選擇的遠端伺服器。\n\n註:我們不提供任何伺服器;使用者需要使用自己的自託管伺服器或受信任的伺服器來確保其線上活動的隱私。\n\n我們透過以下方式支援伺服器:\n - 普通 V2ray/Xray 訂閱連結\n - Clash 訂閱連結\n - Sing-Box 訂閱連結\n\n 我們的獨特功能是什麼?\n - 使用者友善\n - 最佳化且快速\n - 自動選擇最低延遲\n - 顯示使用者使用資訊\n - 使用一鍵連結輕鬆導入\n - 免費且無廣告\n - 輕鬆切換線路\n - 等等\n 支援:\n - Sing-Box 支援的所有協定 \n - VLESS + XTLS Reality、Vision 協定 \n - VMESS\n - Trojan\n - ShoadowSocks\n - Reality\n - V2ray\n - Hystria2\n - TUIC \n - SSH\n - ShadowTLS\n\n\n 原始碼位於 https://github.com/hiddify/Hiddify-Next\n 應用程式核心基於開源的 Sing-Box。\n\n權限說明:\n\n - VPN 服務:由於此應用程式的目標是提供安全性、使用者友好且高效的隧道用戶端,因此我們需要此權限才能透過隧道將流量路由到遠端伺服器。\n - 獲取應用程式列表:此權限用於允許使用者包含或排除隧道的特定應用程式。\n - 接收啟動廣播:可以從應用程式設定中啟用或停用此權限,以在裝置啟動時啟動此應用程式。\n - 發送通知:此權限至關重要,因為我們使用前台服務來確保 VPN 服務的持續運作。\n - 該應用程式沒有廣告。分析和崩潰數據僅在用戶首次使用應用程式時明確同意的情況下才會出現。" + } +} \ No newline at end of file diff --git a/project.inlang/settings.json b/project.inlang/settings.json index c54c6b2d..e567b404 100644 --- a/project.inlang/settings.json +++ b/project.inlang/settings.json @@ -7,7 +7,8 @@ "fa", "ru", "tr", - "zh-CN" + "zh-CN", + "zh-TW" ], "modules": [ "https://cdn.jsdelivr.net/npm/@inlang/plugin-i18next@4/dist/index.js",