mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-10-14 21:20:48 +08:00
* fix(cmd): preserve anyhow context in coded errors Use alternate error formatting so coded failures retain the full anyhow context chain without changing their wire format. * fix(macos): skip redundant proxy disable writes When both proxy modes are off, read macOS state first and skip networksetup if the OS is already clean. Update the guard target only after a successful write. * feat(proxy): classify system proxy failures Attach stable, actionable proxy failure codes to anyhow chains while preserving the original diagnostic causes. * feat(cmd): return structured command failures Replace encoded error strings with serializable code and detail fields, and update frontend notice consumers to handle the structured shape. * fix(scripts): use the js-yaml namespace import Import js-yaml through its ESM namespace so the i18n cleanup script can access load and dump. * feat(proxy): localize classified proxy failures Map privilege and direct-fallback codes to localized explanations, and let mapped causes outrank generic operation keys in notices. * fix(ui): bound notice text and render failure details Limit resolved notice text without truncating clipboard content, and normalize structured failures embedded in translation parameters. * feat(proxy): persist unseen proxy failures Store unresolved classified failures by code, notify the frontend when the table changes, and show each failure sequence once when a visible window can receive it. * feat(proxy): report tray and hotkey toggle failures Record classified failures from tray and hotkey proxy toggles so they appear when a visible window is available. * fix(ui): restore the proxy switch after failed toggles Refresh frontend proxy state after a failed toggle so the switch reflects the rolled-back configuration. * feat(proxy): stop the guard after repeated failures Report guard outcomes, stop after the failure threshold, and persist the classified failure for the frontend. * fix(macos): preserve proxy during service handoff Stop a sidecar being handed to the service without clearing proxy state that the new owner must inherit. * feat(macos): classify misplaced sidecar state Distinguish a refused sidecar proxy write from a machine that still needs the privileged service installed. * feat(ui): recover misplaced sidecar notices Offer a restart action for macOS proxy failures caused by a ready service while the core still runs as a sidecar. * feat(ui): install the service from proxy notices Let privilege notices install the macOS service, restart the core, and report the runtime mode that was actually reached. * feat(cmd): attach requested proxy operations Carry the requested proxy direction with structured command failures when the originating command knows it. * feat(sysproxy): drain guards before OS access Wait for the local proxy guard to stop before OS reads, service handoff, or final writes, and refuse transitions when it does not drain. * feat(sysproxy): recover partial proxy writes Use write progress to choose whether to restore the old guard or compensate with a disabled proxy state, while preserving actionable errors. * feat(sysproxy): skip already-applied proxy writes Compare macOS proxy snapshots with global, PAC, and disabled targets so matching state avoids redundant privileged writes. * feat(proxy): report background proxy failures Persist and surface classified proxy failures from lifecycle paths that have no direct caller awaiting the result. * feat(ui): move proxy recovery into a dialog Guide users through installing or switching to the service after a refused proxy write, and suppress duplicate toast reports. * fix(ui): close proxy dialog after service recovery Dismiss the recovery dialog once the core reaches service mode, even when the original proxy request remains pending. * feat(ui): retry proxy request after service recovery Replay the requested proxy direction after the core reaches service mode, while leaving incidental restores unchanged. * fix(proxy): refresh state after successful apply Publish the proxy refresh from the shared apply path after releasing the lifecycle lock, and remove the tray-specific duplicate. * feat(ui): show proxy recovery progress Display installation, restart, and proxy-apply stages while keeping the primary action spinner visible during recovery. * feat(ui): route unavailable TUN through service recovery Let the TUN switch request service recovery and restore its requested state after the core restarts in service mode. * fix(ui): avoid duplicate TUN recovery errors Roll back deferred TUN toggles without reporting an error, and publish configuration refreshes from the transaction commit path. * chore: update changelog & pinlock * fix(core): resolve platform-specific clippy warnings * fix(core): detect Windows wildcard TCP conflicts Windows permits a specific exclusive bind beside an existing non-exclusive wildcard listener. Consult the system TCP listener table so the probe reports that overlap as a conflict.
94 lines
3.7 KiB
YAML
94 lines
3.7 KiB
YAML
_version: 1
|
|
notifications:
|
|
dashboardToggled:
|
|
title: Panel
|
|
body: La visibilidad del panel se ha actualizado.
|
|
clashModeChanged:
|
|
title: Cambio de modo
|
|
body: Cambiado a {mode}.
|
|
systemProxyToggled:
|
|
title: Proxy del sistema
|
|
'on': System proxy has been enabled.
|
|
'off': System proxy has been disabled.
|
|
systemProxyFailed:
|
|
title: Proxy del sistema
|
|
body: No se pudo establecer el proxy del sistema. Abra Clash Verge para ver por qué.
|
|
systemProxyGuardStopped:
|
|
title: Guardián del proxy del sistema
|
|
body: Detenido tras varios fallos seguidos. Abra Clash Verge para ver por qué.
|
|
tunModeToggled:
|
|
title: Modo TUN
|
|
'on': TUN mode has been enabled.
|
|
'off': TUN mode has been disabled.
|
|
lightweightModeEntered:
|
|
title: Modo ligero
|
|
body: Se ha entrado en el modo ligero.
|
|
profilesReactivated:
|
|
title: Perfiles
|
|
body: Perfil reactivado.
|
|
appQuit:
|
|
title: A punto de salir
|
|
body: Clash Verge está a punto de salir.
|
|
appHidden:
|
|
title: Aplicación oculta
|
|
body: Clash Verge se está ejecutando en segundo plano.
|
|
updateReady:
|
|
title: Clash Verge Update
|
|
body: A new version (v{version}) has been downloaded and is ready to install.
|
|
installNow: Install Now
|
|
later: Later
|
|
service:
|
|
adminInstallPrompt: Instalar el servicio de Clash Verge requiere privilegios de administrador.
|
|
adminUninstallPrompt: Desinstalar el servicio de Clash Verge requiere privilegios de administrador.
|
|
launchGuard:
|
|
currentExeError: 'No se pudo determinar la ubicación de la aplicación: {error}'
|
|
homeDirError: 'No se pudo determinar la carpeta de inicio del usuario actual. La aplicación se cerrará: {error}'
|
|
translocated: macOS está ejecutando esta aplicación desde una ruta temporal de App Translocation. Muévela manualmente en Finder a /Applications o ~/Applications y vuelve a abrirla.
|
|
rejected: |-
|
|
Esta aplicación debe iniciarse desde una carpeta Applications.
|
|
|
|
{reason}
|
|
notInBundle: El archivo ejecutable no está dentro de un paquete de aplicación.
|
|
canonicalizeBundleError: 'No se pudo resolver la ruta del paquete de la aplicación: {error}'
|
|
bundleNameError: No se pudo determinar el nombre del paquete de la aplicación. La aplicación se cerrará.
|
|
replacePrompt: Ya existe una aplicación en {destination}. ¿Quieres reemplazarla y reiniciarla desde Applications?
|
|
movePrompt: Para iniciar el servicio en segundo plano de forma segura, la aplicación debe moverse a {destination}. ¿Quieres moverla y reiniciarla ahora?
|
|
createApplicationsDirError: 'No se pudo crear la carpeta Applications: {error}'
|
|
moveFailed: No se pudo mover la aplicación. Muévela manualmente en Finder e inténtalo de nuevo.
|
|
replaceFailed: 'No se pudo reemplazar de forma segura la aplicación existente: {error}'
|
|
relaunchFailed: La aplicación se copió, pero no se pudo reiniciar automáticamente. Ábrela manualmente desde Applications.
|
|
cancel: Cancelar
|
|
move: Mover
|
|
ok: Aceptar
|
|
tray:
|
|
dashboard: Panel
|
|
ruleMode: Modo de reglas
|
|
globalMode: Modo global
|
|
directMode: Modo directo
|
|
outboundModes: Modos de salida
|
|
rule: Regla
|
|
direct: Directo
|
|
global: Global
|
|
profiles: Perfiles
|
|
proxies: Proxies
|
|
systemProxy: Proxy del sistema
|
|
tunMode: Modo TUN
|
|
closeAllConnections: Cerrar todas las conexiones
|
|
lightweightMode: Modo ligero
|
|
copyEnv: Copiar variables de entorno
|
|
confDir: Directorio de configuración
|
|
coreDir: Directorio del núcleo
|
|
logsDir: Directorio de registros
|
|
openDir: Abrir directorio
|
|
appLog: Registro de la aplicación
|
|
coreLog: Registro del núcleo
|
|
restartClash: Reiniciar el núcleo de Clash
|
|
restartApp: Reiniciar aplicación
|
|
vergeVersion: Versión de Verge
|
|
more: Más
|
|
exit: Salir
|
|
tooltip:
|
|
systemProxy: Proxy del sistema
|
|
tun: TUN
|
|
profile: Perfil
|