feat(l10n): add French, Spanish and Korean
Changelog: French, Spanish and Korean translations
This commit is contained in:
@@ -25,6 +25,9 @@ Do not use this for README translation sync or manual edits to generated localiz
|
||||
- `arb/intl_zh_CN.arb`
|
||||
- `arb/intl_ja.arb`
|
||||
- `arb/intl_ru.arb`
|
||||
- `arb/intl_fr.arb`
|
||||
- `arb/intl_es.arb`
|
||||
- `arb/intl_ko.arb`
|
||||
4. Replace inline strings with existing project accessors:
|
||||
- Widgets with `BuildContext`: `context.appLocalizations.key` from `lib/common/context.dart`.
|
||||
- Controllers/providers/non-widget code: `currentAppLocalizations.key` from `lib/common/app_localizations.dart`.
|
||||
|
||||
+43
-28
@@ -41,12 +41,15 @@
|
||||
"other": "Other",
|
||||
"about": "About",
|
||||
"en": "English",
|
||||
"es": "Spanish",
|
||||
"fr": "French",
|
||||
"ja": "Japanese",
|
||||
"ko": "Korean",
|
||||
"ru": "Russian",
|
||||
"zhCN": "Simplified Chinese",
|
||||
"theme": "Theme",
|
||||
"extend": "Extend",
|
||||
"finalConfig": "Final config",
|
||||
"runtimeConfig": "Runtime config",
|
||||
"allowLan": "Allow LAN",
|
||||
"tun": "TUN",
|
||||
"tunDesc": "TUN works only in administrator mode.",
|
||||
@@ -83,7 +86,7 @@
|
||||
"profileUrlNullValidationDesc": "Please enter the profile URL",
|
||||
"profileUrlInvalidValidationDesc": "Please enter a valid profile URL",
|
||||
"autoUpdate": "Auto update",
|
||||
"autoUpdateInterval": "Auto-update interval (minutes)",
|
||||
"autoUpdateInterval": "Auto-update interval",
|
||||
"profileAutoUpdateIntervalNullValidationDesc": "Please enter the auto-update interval",
|
||||
"profileAutoUpdateIntervalInvalidValidationDesc": "Please enter a valid interval",
|
||||
"themeMode": "Theme mode",
|
||||
@@ -313,26 +316,20 @@
|
||||
"disclaimerLiabilityTitle": "Limitation of liability",
|
||||
"disclaimerLiabilityContent": "To the maximum extent permitted by applicable law, neither the developers nor any contributor shall be liable for any direct, indirect, incidental, special, punitive, or consequential damages arising from the use of or inability to use the Software, including but not limited to data loss, device damage, network failures, business interruption, lost profits, or any resulting legal dispute, even if advised of the possibility of such damages.",
|
||||
"disclaimerPrivacyTitle": "Data collection and privacy",
|
||||
"disclaimerPrivacyContent": "The Software does not collect or upload your subscription URLs, node details, configuration content, visited websites, connection records, traffic content, or logs. This data stays on your device and the developers have no access to it.\n\nThe Software only reaches the network when you use a feature that needs it, such as fetching the subscription URL you provided when updating a profile, or contacting GitHub when checking for updates.\n\nThe desktop versions (Windows, macOS, Linux) include no analytics or crash reporting service. The Android version includes the following two Google Firebase services to improve stability:",
|
||||
"disclaimerCrashlyticsTitle": "Firebase Crashlytics (crash analytics)",
|
||||
"disclaimerCrashlyticsContent": "When the app crashes, a crash report is uploaded automatically.\n\nWhat is collected: the crash stack trace and error message, the time of the crash, the app version and build number, the device brand and model, the Android version, screen orientation, free memory and storage, whether the device is rooted, and a random installation ID that is created on install and reset on reinstall.\n\nPurpose: only to locate and fix crashes.\n\nYou can turn it off at any time under \"Tools > General > Crash analytics\".",
|
||||
"disclaimerAnalyticsTitle": "Firebase Analytics (usage statistics)",
|
||||
"disclaimerAnalyticsContent": "Basic app usage statistics are collected automatically with Firebase.\n\nWhat is collected: basic events such as first launch, app opens and session length, and app updates; an app instance ID; the device model, OS version, and system language; and an approximate country- or region-level location inferred from the IP address.\n\nPurpose: only to understand the number of active devices, version distribution, and OS compatibility. The developers do not use this data for advertising, do not sell it, and do not link it to your subscriptions or configurations.",
|
||||
"disclaimerDataProcessingContent": "This data is processed and stored by Google on our behalf, may be transferred to servers outside your country or region (such as in the United States), and is governed by the Google Privacy Policy and the Firebase privacy and security documentation. Crash reports are kept for up to 90 days; statistics are kept under the Firebase default retention policy.",
|
||||
"disclaimerPrivacyContent": "The Software does not collect or upload your subscription URLs, node details, configuration content, visited websites, connection records, traffic content, or logs. This data stays on your device and the developers have no access to it.\n\nThe Software only reaches the network when you use a feature that needs it, such as fetching the subscription URL you provided when updating a profile, or contacting GitHub when checking for updates.\n\nThe Software includes no analytics or crash reporting service on any platform.",
|
||||
"disclaimerLicenseTitle": "Open-source license",
|
||||
"disclaimerLicenseContent": "The Software is open source under the GPL-3.0 license. You may use, modify, and distribute it freely as long as you comply with that license, which requires derivative works to be released under GPL-3.0 as well and the original copyright notices to be kept.\n\nThird-party components in the Software, including the Clash.Meta core, follow their own licenses. The original authors are not responsible for any issue arising from modified or redistributed versions.",
|
||||
"disclaimerChangesTitle": "Changes to this statement",
|
||||
"disclaimerChangesContent": "The developers may revise this statement with any release, and the revision takes effect when that release is published. Continuing to use the Software after updating means you accept the revised statement.",
|
||||
"disclaimerAcceptTitle": "Acceptance",
|
||||
"disclaimerAcceptContent": "By installing, copying, or using the Software, you are deemed to have read and agreed to this entire statement. If you disagree with any of its terms, stop using and uninstall the Software immediately.",
|
||||
"disclaimerAndroidOnly": "Android only",
|
||||
"disclaimerGooglePrivacy": "Google Privacy Policy",
|
||||
"disclaimerFirebasePrivacy": "Firebase privacy and security",
|
||||
"disclaimerReadToEnd": "Read to the end",
|
||||
"disclaimerRestateTitle": "Restate the statement",
|
||||
"disclaimerRestateTip": "To confirm you understand, enter the following statement in full in the field below:",
|
||||
"disclaimerRestateHint": "Enter the statement above",
|
||||
"disclaimerRestateMismatch": "Does not match the statement",
|
||||
"disclaimerAcknowledgeTitle": "Confirm the statement",
|
||||
"disclaimerAcknowledgeTip": "To confirm you understand, read the following statement and check the box below:",
|
||||
"disclaimerAcknowledgeLabel": "I have read and understand this statement",
|
||||
"agree": "Agree",
|
||||
"hotkeyManagement": "Hotkey management",
|
||||
"hotkeyDesc": "Global hotkeys work even while the window is hidden. Tap an action to record its key combination.",
|
||||
@@ -418,17 +415,19 @@
|
||||
"slide": "Slide",
|
||||
"fade": "Fade",
|
||||
"pureBlack": "Pure black",
|
||||
"colorSchemes": "Color schemes",
|
||||
"palette": "Palette",
|
||||
"tonalSpotScheme": "Tonal spot",
|
||||
"fidelityScheme": "Fidelity",
|
||||
"customColor": "Custom color",
|
||||
"colorStyle": "Color style",
|
||||
"grid": "Grid",
|
||||
"spectrum": "Spectrum",
|
||||
"sliders": "Sliders",
|
||||
"hue": "Hue",
|
||||
"saturation": "Saturation",
|
||||
"brightness": "Brightness",
|
||||
"hex": "Hex",
|
||||
"monochromeScheme": "Monochrome",
|
||||
"neutralScheme": "Neutral",
|
||||
"vibrantScheme": "Vibrant",
|
||||
"expressiveScheme": "Expressive",
|
||||
"contentScheme": "Content",
|
||||
"rainbowScheme": "Rainbow",
|
||||
"fruitSaladScheme": "Fruit salad",
|
||||
"vividStyle": "Vivid",
|
||||
"tintedStyle": "Tinted",
|
||||
"softStyle": "Soft",
|
||||
"developerMode": "Developer mode",
|
||||
"developerModeEnableTip": "Developer mode is enabled.",
|
||||
"messageTest": "Message test",
|
||||
@@ -508,10 +507,6 @@
|
||||
"forceRestartCoreTip": "Are you sure you want to force restart the core?",
|
||||
"dnsHijacking": "DNS hijacking",
|
||||
"coreStatus": "Core status",
|
||||
"dataCollectionTip": "Data collection notice",
|
||||
"dataCollectionContent": "This app uses Firebase Crashlytics to collect crash information to improve stability.\nThe collected data includes device information and crash details, and contains no personally sensitive data.\nYou can turn this off in settings.",
|
||||
"crashlytics": "Crash analytics",
|
||||
"crashlyticsTip": "Crash analytics uploads a crash log without sensitive information when the app crashes.",
|
||||
"appendSystemDns": "Append system DNS",
|
||||
"editRule": "Edit rule",
|
||||
"extendMode": "Extend mode",
|
||||
@@ -691,6 +686,7 @@
|
||||
"resourceUpdateInterval": "Auto-update interval",
|
||||
"resourceUpdateIntervalTip": "The auto-update interval must be greater than 0",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"geoResources": "Geo",
|
||||
"geoSkipped": "{name} is already up to date",
|
||||
"geoUpdated": "{name} updated",
|
||||
@@ -813,6 +809,7 @@
|
||||
"filters": "Filters",
|
||||
"label": "Label",
|
||||
"regex": "Regex",
|
||||
"matchCase": "Match case",
|
||||
"iconSets": "Icon sets",
|
||||
"invalidIconSet": "Not a valid icon set",
|
||||
"recommendedIcons": "Suggested",
|
||||
@@ -821,11 +818,12 @@
|
||||
"outbound": "Outbound",
|
||||
"strictRoute": "Strict route",
|
||||
"congestionController": "TCP congestion control",
|
||||
"congestionControllerDesc": "TCP congestion control works only with the mips stack.",
|
||||
"routeExcludeAddress": "Route exclude addresses",
|
||||
"keepAliveIdle": "TCP keep-alive idle",
|
||||
"disableKeepAlive": "Disable TCP keep-alive",
|
||||
"routingMark": "Routing mark",
|
||||
"strictRouteDesc": "Strict route keeps traffic such as DNS from bypassing TUN, and other devices can no longer reach this one.",
|
||||
"strictRouteDesc": "Strict route keeps traffic such as DNS from bypassing TUN, and with IPv6 off it blocks this device's IPv6 connections.",
|
||||
"initFailed": "Startup failed",
|
||||
"initFailedTip": "FlClash ran into an error while starting and can't continue. Copy the details to report the problem. If it keeps happening, clearing the data usually lets the app start again.",
|
||||
"errorDetails": "Error details",
|
||||
@@ -837,7 +835,22 @@
|
||||
"disableIcmpForwarding": "Disable ICMP forwarding",
|
||||
"disableIcmpForwardingDesc": "With ICMP forwarding disabled, TUN answers ping itself, so ping no longer shows the real latency.",
|
||||
"excludeInterface": "Excluded interfaces",
|
||||
"excludeInterfaceDesc": "Excluded interfaces work only on Linux: traffic arriving on them, such as docker0, skips TUN.",
|
||||
"excludeInterfaceDesc": "Traffic arriving on excluded interfaces, such as docker0, skips TUN.",
|
||||
"includeInterface": "Included interfaces",
|
||||
"includeInterfaceDesc": "Only traffic arriving on included interfaces goes through TUN, and excluded interfaces no longer apply.",
|
||||
"includeUid": "Included user IDs",
|
||||
"includeUidDesc": "Only traffic from processes of included user IDs goes through TUN.",
|
||||
"excludeUid": "Excluded user IDs",
|
||||
"excludeUidDesc": "Traffic from processes of excluded user IDs skips TUN.",
|
||||
"excludeSrcPort": "Excluded source ports",
|
||||
"excludeSrcPortDesc": "Traffic from excluded source ports skips TUN.",
|
||||
"excludeDstPort": "Excluded destination ports",
|
||||
"excludeDstPortDesc": "Traffic to excluded destination ports skips TUN.",
|
||||
"udpTimeout": "UDP timeout",
|
||||
"udpTimeoutDesc": "The UDP timeout is in seconds and works only with the gvisor, system and mixed stacks.",
|
||||
"dnsHijackDesc": "Without this entry, TUN hijacks every DNS query to port 53 (any:53).",
|
||||
"tunOverrideDesc": "Entries added here replace the TUN settings of every profile; anything not added keeps the profile's own setting. Entries a custom profile adds itself take precedence.",
|
||||
"profileTunSettingsDesc": "Applies to this profile only and takes precedence over the TUN override entries in the network settings.",
|
||||
"settingsCount": "{count, plural, =1{1 setting} other{{count} settings}}",
|
||||
"sectionsInEffect": "{count} in effect",
|
||||
"itemsCount": "{count, plural, =1{1 item} other{{count} items}}",
|
||||
@@ -912,6 +925,8 @@
|
||||
"outboundExit": "Exit",
|
||||
"duration": "Duration",
|
||||
"traffic": "Traffic",
|
||||
"totalDownload": "Downloaded",
|
||||
"totalUpload": "Uploaded",
|
||||
"initiatorShort": "From",
|
||||
"result": "Result",
|
||||
"elapsed": "Took",
|
||||
|
||||
+943
@@ -0,0 +1,943 @@
|
||||
{
|
||||
"rule": "Regla",
|
||||
"rules": "Reglas",
|
||||
"global": "Global",
|
||||
"direct": "Directo",
|
||||
"dashboard": "Panel",
|
||||
"proxies": "Proxies",
|
||||
"profile": "Perfil",
|
||||
"profiles": "Perfiles",
|
||||
"tools": "Herramientas",
|
||||
"logs": "Registros",
|
||||
"resources": "Recursos",
|
||||
"trafficUsage": "Uso de tráfico",
|
||||
"networkSpeed": "Velocidad de red",
|
||||
"outboundMode": "Modo de salida",
|
||||
"serviceStatus": "Estado del servicio",
|
||||
"serviceRestricted": "Acceso restringido",
|
||||
"serviceAvailable": "Disponible",
|
||||
"serviceUnavailable": "No disponible",
|
||||
"serviceFailed": "Error en la comprobación",
|
||||
"serviceDisallowedIsp": "ISP no permitido",
|
||||
"serviceBlocked": "Bloqueado",
|
||||
"serviceUnsupportedRegion": "Región no compatible",
|
||||
"serviceOriginalsOnly": "Solo originales",
|
||||
"serviceComingSoon": "Próximamente",
|
||||
"servicePending": "Sin comprobar",
|
||||
"serviceManage": "Gestionar servicios",
|
||||
"serviceCheck": "Comprobar",
|
||||
"serviceCheckAll": "Comprobar todo",
|
||||
"serviceCheckedAt": "Comprobado a las {time}",
|
||||
"upload": "Subida",
|
||||
"download": "Descarga",
|
||||
"usedTraffic": "Tráfico usado",
|
||||
"totalTraffic": "Tráfico total",
|
||||
"expireTime": "Fecha de vencimiento",
|
||||
"nullProfileDesc": "Añade un perfil para empezar",
|
||||
"settings": "Ajustes",
|
||||
"language": "Idioma",
|
||||
"defaultText": "Predeterminado",
|
||||
"more": "Más",
|
||||
"other": "Otros",
|
||||
"about": "Acerca de",
|
||||
"en": "Inglés",
|
||||
"es": "Español",
|
||||
"fr": "Francés",
|
||||
"ja": "Japonés",
|
||||
"ko": "Coreano",
|
||||
"ru": "Ruso",
|
||||
"zhCN": "Chino simplificado",
|
||||
"theme": "Tema",
|
||||
"extend": "Extensión",
|
||||
"runtimeConfig": "Configuración de ejecución",
|
||||
"allowLan": "Permitir LAN",
|
||||
"tun": "TUN",
|
||||
"tunDesc": "TUN solo funciona en modo administrador.",
|
||||
"minimizeOnExit": "Minimizar al salir",
|
||||
"autoLaunch": "Inicio automático",
|
||||
"silentLaunch": "Inicio silencioso",
|
||||
"silentLaunchDesc": "El inicio silencioso arranca sin mostrar la ventana.",
|
||||
"autoRun": "Ejecución automática",
|
||||
"autoRunDesc": "La ejecución automática inicia el proxy al abrir la app.",
|
||||
"logcat": "Logcat",
|
||||
"logcatDesc": "Si desactivas Logcat, se oculta la entrada de registros.",
|
||||
"autoCheckUpdate": "Buscar actualizaciones automáticamente",
|
||||
"checkCertificate": "Verificar certificados TLS",
|
||||
"checkCertificateDesc": "Con la verificación TLS desactivada, las suscripciones y las copias de seguridad quedan expuestas a ataques de intermediario.",
|
||||
"accessControl": "Control de acceso",
|
||||
"accessControlDesc": "El control de acceso elige qué apps usan el proxy.",
|
||||
"edit": "Editar",
|
||||
"confirm": "Confirmar",
|
||||
"update": "Actualizar",
|
||||
"add": "Añadir",
|
||||
"save": "Guardar",
|
||||
"delete": "Eliminar",
|
||||
"seconds": "segundos",
|
||||
"qrcode": "Código QR",
|
||||
"qrcodeDesc": "Escanea un código QR para obtener un perfil",
|
||||
"url": "URL",
|
||||
"link": "Enlace",
|
||||
"linkDesc": "Obtén un perfil desde un enlace de suscripción o un enlace para compartir proxies",
|
||||
"file": "Archivo",
|
||||
"fileDesc": "Sube un archivo de perfil directamente",
|
||||
"name": "Nombre",
|
||||
"profileNameNullValidationDesc": "Introduce el nombre del perfil",
|
||||
"rename": "Renombrar",
|
||||
"profileUrlNullValidationDesc": "Introduce la URL del perfil",
|
||||
"profileUrlInvalidValidationDesc": "Introduce una URL de perfil válida",
|
||||
"autoUpdate": "Actualización automática",
|
||||
"autoUpdateInterval": "Intervalo de actualización automática",
|
||||
"profileAutoUpdateIntervalNullValidationDesc": "Introduce el intervalo de actualización automática",
|
||||
"profileAutoUpdateIntervalInvalidValidationDesc": "Introduce un intervalo válido",
|
||||
"themeMode": "Modo del tema",
|
||||
"themeColor": "Color del tema",
|
||||
"preview": "Vista previa",
|
||||
"auto": "Automático",
|
||||
"light": "Claro",
|
||||
"dark": "Oscuro",
|
||||
"importFromLink": "Importar desde enlace",
|
||||
"submit": "Enviar",
|
||||
"createProfileFromUrlTip": "¿Quieres crear un perfil a partir de {url}?",
|
||||
"create": "Crear",
|
||||
"pleaseUploadValidQrcode": "Sube un código QR válido",
|
||||
"blacklistMode": "Modo lista negra",
|
||||
"whitelistMode": "Modo lista blanca",
|
||||
"selectAll": "Seleccionar todo",
|
||||
"cancelSelectAll": "Deseleccionar todo",
|
||||
"appAccessControl": "Control de acceso de apps",
|
||||
"accessControlAllowDesc": "Solo las apps seleccionadas usan la VPN",
|
||||
"accessControlNotAllowDesc": "Las apps seleccionadas quedan excluidas de la VPN",
|
||||
"accessControlDisabledDesc": "El control de acceso de apps está desactivado",
|
||||
"selected": "Seleccionado",
|
||||
"port": "Puerto",
|
||||
"logLevel": "Nivel de registro",
|
||||
"show": "Mostrar",
|
||||
"exit": "Salir",
|
||||
"systemProxy": "Proxy del sistema",
|
||||
"safeMode": "Modo seguro",
|
||||
"safeModeAppTitle": "{appName} (Modo seguro)",
|
||||
"project": "Proyecto",
|
||||
"core": "Núcleo",
|
||||
"tabAnimation": "Animación de pestañas",
|
||||
"desc": "Un cliente proxy multiplataforma basado en ClashMeta, sencillo de usar, de código abierto y sin anuncios.",
|
||||
"startVpn": "Iniciando VPN…",
|
||||
"stopVpn": "Deteniendo VPN…",
|
||||
"localNetworkDeniedTip": "Permiso de red local denegado: con la pila gvisor, la LAN no es accesible.",
|
||||
"compatible": "Modo de compatibilidad",
|
||||
"notSelectedTip": "No se puede seleccionar el grupo de proxies actual",
|
||||
"changeProxyFailedTip": "No se pudo cambiar de proxy; se ha restaurado la selección anterior",
|
||||
"databaseWriteFailedTip": "No se pudo guardar el cambio; se ha revertido",
|
||||
"tip": "Consejo",
|
||||
"account": "Cuenta",
|
||||
"backup": "Copia de seguridad",
|
||||
"backupSuccess": "Copia de seguridad completada",
|
||||
"noInfo": "Sin información",
|
||||
"pleaseBindWebDAV": "Vincula WebDAV",
|
||||
"bind": "Vincular",
|
||||
"connectivity": "Conectividad: ",
|
||||
"webDAVConfiguration": "Configuración de WebDAV",
|
||||
"address": "Dirección",
|
||||
"addressHelp": "Dirección del servidor WebDAV",
|
||||
"addressTip": "Introduce una dirección WebDAV válida",
|
||||
"password": "Contraseña",
|
||||
"authentication": "Autenticación",
|
||||
"authenticationDesc": "La autenticación pide usuario y contraseña en el puerto del proxy local.",
|
||||
"authenticationSystemProxyDesc": "El proxy del sistema no se aplica mientras la autenticación esté activada.",
|
||||
"checkUpdate": "Buscar actualizaciones",
|
||||
"discoverNewVersion": "Nueva versión disponible",
|
||||
"checkUpdateError": "La app ya está actualizada",
|
||||
"goDownload": "Descargar",
|
||||
"unknown": "Desconocido",
|
||||
"country": "Región",
|
||||
"search": "Buscar",
|
||||
"allowBypass": "Permitir que las apps eludan la VPN",
|
||||
"externalController": "Controlador externo",
|
||||
"externalControllerDesc": "El controlador externo permite controlar el núcleo en el puerto 9090.",
|
||||
"externalControllerSecret": "Clave del controlador externo",
|
||||
"ipv6Desc": "El tráfico IPv6 solo se recibe mientras IPv6 esté activado.",
|
||||
"app": "App",
|
||||
"general": "General",
|
||||
"startupAndBackground": "Inicio y segundo plano",
|
||||
"requestsAndUpdates": "Solicitudes y actualizaciones",
|
||||
"logsAndDiagnostics": "Registros y diagnóstico",
|
||||
"userAgent": "User-Agent",
|
||||
"unifiedDelay": "Latencia unificada",
|
||||
"tcpConcurrent": "TCP concurrente",
|
||||
"geodataLoader": "Modo geo de poca memoria",
|
||||
"requests": "Solicitudes",
|
||||
"recentRequests": "Solicitudes recientes",
|
||||
"findProcessMode": "Buscar proceso",
|
||||
"init": "Inicio",
|
||||
"infiniteTime": "No caduca",
|
||||
"connections": "Conexiones",
|
||||
"liveConnections": "Conexiones activas",
|
||||
"inbound": "Entrada",
|
||||
"intranetIP": "IP de intranet",
|
||||
"view": "Ver",
|
||||
"cut": "Cortar",
|
||||
"copy": "Copiar",
|
||||
"clipboardWriteFailed": "No se pudo copiar al portapapeles. Puede que la selección sea demasiado grande",
|
||||
"paste": "Pegar",
|
||||
"testUrl": "URL de prueba",
|
||||
"sync": "Sincronizar",
|
||||
"exclude": "Ocultar de aplicaciones recientes",
|
||||
"compact": "Compacto",
|
||||
"tab": "Pestaña",
|
||||
"list": "Lista",
|
||||
"delay": "Latencia",
|
||||
"style": "Estilo",
|
||||
"size": "Tamaño",
|
||||
"sort": "Ordenar",
|
||||
"columns": "Columnas",
|
||||
"proxyGroup": "Grupo de proxies",
|
||||
"go": "Ir",
|
||||
"externalLink": "Enlace externo",
|
||||
"otherContributors": "Otros colaboradores",
|
||||
"appIconDesign": "Diseño del icono de la app",
|
||||
"autoCloseConnections": "Cerrar conexiones automáticamente",
|
||||
"autoCloseConnectionsDesc": "Cerrar conexiones automáticamente corta las conexiones abiertas al cambiar de proxy.",
|
||||
"onlyStatisticsProxy": "Contar solo el tráfico del proxy",
|
||||
"showNotificationStopAction": "Botón de detener en la notificación",
|
||||
"pureBlackMode": "Modo negro puro",
|
||||
"sidebarBlur": "Desenfoque de la barra lateral",
|
||||
"sidebarBlurDesc": "Muestra el escritorio desenfocado detrás de la ventana a través de la barra lateral",
|
||||
"liquidGlass": "Liquid Glass",
|
||||
"keepAliveIntervalDesc": "Intervalo de keep-alive TCP",
|
||||
"entries": " entradas",
|
||||
"local": "Local",
|
||||
"remote": "Remoto",
|
||||
"mode": "Modo",
|
||||
"time": "Hora",
|
||||
"source": "Origen",
|
||||
"action": "Acción",
|
||||
"intelligentSelected": "Selección inteligente",
|
||||
"clipboardImport": "Importar desde el portapapeles",
|
||||
"clipboardExport": "Exportar al portapapeles",
|
||||
"layout": "Diseño",
|
||||
"tight": "Ajustado",
|
||||
"standard": "Estándar",
|
||||
"ultra": "Ultra",
|
||||
"loose": "Amplio",
|
||||
"profilesSort": "Ordenar perfiles",
|
||||
"start": "Iniciar",
|
||||
"runTime": "Tiempo de ejecución",
|
||||
"stop": "Detener",
|
||||
"key": "Clave",
|
||||
"value": "Valor",
|
||||
"vpnEnableDesc": "La VPN enruta automáticamente todo el tráfico del sistema a través de VpnService.",
|
||||
"options": "Opciones",
|
||||
"enabled": "Activado",
|
||||
"disabled": "Desactivado",
|
||||
"loopback": "Exención de loopback de UWP",
|
||||
"providers": "Recursos externos",
|
||||
"proxyProviders": "Proveedores de proxies",
|
||||
"ruleProviders": "Proveedores de reglas",
|
||||
"providerUrlTip": "Solo se admiten proveedores remotos",
|
||||
"ruleSetEmptyTip": "El conjunto de reglas no tiene entradas utilizables",
|
||||
"ruleSetMixedTip": "El conjunto de reglas mezcla dominios y rangos de IP, por lo que no se puede determinar su tipo",
|
||||
"ruleSetInvalidTip": "No se puede leer este archivo mrs",
|
||||
"subscriptionInfo": "Información de la suscripción",
|
||||
"ntpStatusDesc": "NTP obtiene la hora de un servidor NTP en lugar del reloj del sistema.",
|
||||
"server": "Servidor",
|
||||
"ntpInterval": "Intervalo de sincronización (minutos)",
|
||||
"dialerProxy": "Proxy de marcación",
|
||||
"dialerProxyDesc": "El proxy de marcación es la salida que se usa para llegar al servidor NTP.",
|
||||
"writeToSystem": "Escribir en el sistema",
|
||||
"writeToSystemDesc": "Escribir en el sistema también ajusta el reloj del sistema; Android lo ignora.",
|
||||
"sniffer": "Sniffer",
|
||||
"snifferStatusDesc": "El sniffer lee el dominio del tráfico TLS, HTTP y QUIC para que las reglas puedan aplicarse.",
|
||||
"overrideDestination": "Sobrescribir destino",
|
||||
"overrideDestinationDesc": "Sobrescribir destino se conecta al dominio detectado en lugar de a la dirección original.",
|
||||
"forceDnsMapping": "Forzar mapeo DNS",
|
||||
"forceDnsMappingDesc": "Forzar mapeo DNS también analiza las conexiones cuyo dominio provino de un mapeo DNS.",
|
||||
"parsePureIp": "Analizar IP pura",
|
||||
"parsePureIpDesc": "Analizar IP pura analiza las conexiones que solo llevan una dirección IP.",
|
||||
"forceDomain": "Forzar dominios",
|
||||
"forceDomainDesc": "Los dominios forzados también se analizan; las demás conexiones que ya tienen dominio se dejan como están.",
|
||||
"skipDomain": "Omitir dominios",
|
||||
"skipDomainDesc": "Un dominio detectado que esté en la lista de dominios omitidos no se usa.",
|
||||
"skipSrcAddress": "Omitir direcciones de origen",
|
||||
"skipDstAddress": "Omitir direcciones de destino",
|
||||
"sniffProtocols": "Protocolos",
|
||||
"ports": "Puertos",
|
||||
"overrideEntries": "Entradas de sobrescritura",
|
||||
"addOverrideEntry": "Añadir entrada de sobrescritura",
|
||||
"dnsOverrideDesc": "Las entradas añadidas aquí sustituyen el DNS de todos los perfiles de URL y de archivo; lo que no añadas conserva el ajuste del propio perfil. Los perfiles personalizados definen su DNS en su contenido.",
|
||||
"settingEntries": "ajustes",
|
||||
"addSettingEntry": "Añadir ajuste",
|
||||
"profileSettingsDesc": "Se aplica solo a este perfil; lo que no añadas usa su valor predeterminado.",
|
||||
"healthCheck": "Comprobación de estado",
|
||||
"discardChanges": "¿Descartar los cambios?",
|
||||
"quickEdit": "Edición rápida",
|
||||
"status": "Estado",
|
||||
"statusDesc": "Con DNS desactivado, se usa el DNS del sistema.",
|
||||
"respectRules": "Respetar reglas",
|
||||
"respectRulesDesc": "Respetar reglas enruta las conexiones DNS según las reglas y requiere un Proxy Server Nameserver.",
|
||||
"dnsMode": "Modo DNS",
|
||||
"fakeipRange": "Rango Fake-IP",
|
||||
"fakeipFilter": "Filtro Fake-IP",
|
||||
"useHosts": "Usar hosts",
|
||||
"useSystemHosts": "Usar hosts del sistema",
|
||||
"fallbackFilter": "Filtro de respaldo",
|
||||
"domain": "Dominio",
|
||||
"listenRoutingMark": "Marca de enrutamiento de escucha",
|
||||
"listenRoutingMarkDesc": "La marca de enrutamiento de escucha solo funciona en Linux.",
|
||||
"ipv6Timeout": "Tiempo de espera IPv6 (ms)",
|
||||
"cacheAlgorithm": "Algoritmo de caché",
|
||||
"cacheMaxSize": "Tamaño de caché",
|
||||
"fakeipRange6": "Rango Fake-IP (IPv6)",
|
||||
"fakeipFilterMode": "Modo de filtro Fake-IP",
|
||||
"fakeipFilterModeDesc": "En el modo de filtro Fake-IP, la lista negra excluye las coincidencias, la lista blanca aplica Fake-IP solo a las coincidencias y rule coincide según las reglas.",
|
||||
"fakeipTtl": "TTL de Fake-IP",
|
||||
"reset": "Restablecer",
|
||||
"actionView": "Mostrar/Ocultar",
|
||||
"actionStart": "Iniciar/Detener",
|
||||
"actionMode": "Cambiar modo",
|
||||
"actionProxy": "Proxy del sistema",
|
||||
"actionTun": "TUN",
|
||||
"actionRuleMode": "Modo regla",
|
||||
"actionGlobalMode": "Modo global",
|
||||
"actionDirectMode": "Modo directo",
|
||||
"actionDelayTest": "Probar la latencia de todos",
|
||||
"actionUpdateProfiles": "Actualizar perfiles",
|
||||
"disclaimer": "Aviso legal",
|
||||
"disclaimerDesc": "Antes de usar FlClash (“el Software”), lee con atención esta declaración y asegúrate de entenderla por completo. Pulsar “Aceptar” significa que has leído, comprendido y aceptado todos los términos siguientes. Si no estás de acuerdo, pulsa “Salir” y deja de usar el Software.",
|
||||
"disclaimerSoftwareTitle": "Naturaleza del software",
|
||||
"disclaimerSoftwareContent": "El Software es un cliente proxy de red de código abierto basado en el núcleo Clash.Meta (mihomo). Solo ofrece herramientas locales como la gestión de configuración, el enrutamiento basado en reglas y el reenvío de tráfico.",
|
||||
"disclaimerNoServiceStatement": "El Software en sí no proporciona ningún servidor proxy, nodo, suscripción ni servicio de acceso a la red, y no mantiene ninguna relación de asociación, representación ni garantía con ningún proveedor de dichos servicios.",
|
||||
"disclaimerUsageTitle": "Restricciones de uso",
|
||||
"disclaimerUsageContent": "El Software está destinado únicamente a usos no comerciales, como el aprendizaje, el intercambio y la investigación técnica. Queda estrictamente prohibido usarlo con cualquier fin comercial, incluidos, entre otros, la distribución de pago, la venta en paquete, su uso como parte de un servicio comercial o hacer negocio en nombre del Software. Cualquier actividad comercial no guarda relación con el Software ni con sus desarrolladores.\n\nQueda estrictamente prohibido usar el Software para cualquier fin que infrinja las leyes y normativas de tu país o región, incluidos, entre otros, eludir restricciones de acceso a la red impuestas legalmente, difundir contenido ilegal, lanzar ataques a la red o vulnerar los derechos legítimos de otras personas.",
|
||||
"disclaimerResponsibilityTitle": "Tu responsabilidad",
|
||||
"disclaimerResponsibilityContent": "Eres responsable de asegurarte de que el uso del Software sea legal donde vives, y asumes tú solo la responsabilidad legal de todo lo que hagas con él y de sus consecuencias.\n\nLas suscripciones, los nodos y las configuraciones que importas son decisión tuya. Que su origen sea legal, su contenido seguro y su servicio fiable es un asunto entre tú y sus proveedores.",
|
||||
"disclaimerThirdPartyTitle": "Contenido de terceros",
|
||||
"disclaimerThirdPartyContent": "Los enlaces de suscripción, los archivos de configuración, los conjuntos de reglas, los scripts, los recursos externos y los enlaces externos los proporcionan terceros. Los desarrolladores no pueden revisar ni garantizar, ni lo hacen, su legalidad, exactitud, seguridad o disponibilidad.\n\nCualquier fuga de datos, pérdida económica, bloqueo de cuenta u otra pérdida causada por contenido de terceros debe resolverse entre tú y el tercero; los desarrolladores no asumen ninguna responsabilidad por ello.",
|
||||
"disclaimerWarrantyTitle": "Sin garantía",
|
||||
"disclaimerWarrantyContent": "El Software se proporciona “tal cual” y “según disponibilidad”, sin garantía de ningún tipo, expresa o implícita, incluidas, entre otras, las garantías de comerciabilidad, idoneidad para un fin concreto, no infracción, disponibilidad ininterrumpida, ausencia de errores o ausencia de vulnerabilidades de seguridad.\n\nLos desarrolladores no garantizan que el Software satisfaga tus necesidades ni que funcione sin interrupciones ni errores.",
|
||||
"disclaimerLiabilityTitle": "Limitación de responsabilidad",
|
||||
"disclaimerLiabilityContent": "En la máxima medida permitida por la ley aplicable, ni los desarrolladores ni ningún colaborador serán responsables de ningún daño directo, indirecto, incidental, especial, punitivo o emergente derivado del uso o de la imposibilidad de usar el Software, incluidos, entre otros, la pérdida de datos, los daños al dispositivo, los fallos de red, la interrupción de la actividad, el lucro cesante o cualquier disputa legal resultante, incluso si se les hubiera advertido de la posibilidad de tales daños.",
|
||||
"disclaimerPrivacyTitle": "Recopilación de datos y privacidad",
|
||||
"disclaimerPrivacyContent": "El Software no recopila ni sube tus URL de suscripción, los detalles de los nodos, el contenido de las configuraciones, los sitios web visitados, los registros de conexión, el contenido del tráfico ni los registros. Estos datos permanecen en tu dispositivo y los desarrolladores no tienen acceso a ellos.\n\nEl Software solo accede a la red cuando usas una función que lo necesita, como obtener la URL de suscripción que indicaste al actualizar un perfil o conectarse a GitHub al buscar actualizaciones.\n\nEl Software no incluye ningún servicio de analítica ni de informes de fallos en ninguna plataforma.",
|
||||
"disclaimerLicenseTitle": "Licencia de código abierto",
|
||||
"disclaimerLicenseContent": "El Software es de código abierto bajo la licencia GPL-3.0. Puedes usarlo, modificarlo y distribuirlo libremente siempre que cumplas dicha licencia, que exige que las obras derivadas se publiquen también bajo GPL-3.0 y que se conserven los avisos de derechos de autor originales.\n\nLos componentes de terceros del Software, incluido el núcleo Clash.Meta, siguen sus propias licencias. Los autores originales no se hacen responsables de ningún problema derivado de versiones modificadas o redistribuidas.",
|
||||
"disclaimerChangesTitle": "Cambios en esta declaración",
|
||||
"disclaimerChangesContent": "Los desarrolladores pueden revisar esta declaración con cualquier versión, y la revisión entra en vigor cuando se publique dicha versión. Seguir usando el Software después de actualizar implica que aceptas la declaración revisada.",
|
||||
"disclaimerAcceptTitle": "Aceptación",
|
||||
"disclaimerAcceptContent": "Al instalar, copiar o usar el Software, se considera que has leído y aceptado esta declaración en su totalidad. Si no estás de acuerdo con alguno de sus términos, deja de usar el Software y desinstálalo de inmediato.",
|
||||
"disclaimerRestateTitle": "Repite la declaración",
|
||||
"disclaimerRestateTip": "Para confirmar que lo entiendes, escribe la siguiente declaración completa en el campo de abajo:",
|
||||
"disclaimerRestateHint": "Escribe la declaración anterior",
|
||||
"disclaimerRestateMismatch": "No coincide con la declaración",
|
||||
"disclaimerAcknowledgeTitle": "Confirma la declaración",
|
||||
"disclaimerAcknowledgeTip": "Para confirmar que lo entiendes, lee la siguiente declaración y marca la casilla de abajo:",
|
||||
"disclaimerAcknowledgeLabel": "He leído y entiendo esta declaración",
|
||||
"agree": "Aceptar",
|
||||
"hotkeyManagement": "Gestión de atajos",
|
||||
"hotkeyDesc": "Los atajos globales funcionan incluso con la ventana oculta. Toca una acción para grabar su combinación de teclas.",
|
||||
"hotkeyNotSet": "Sin asignar",
|
||||
"pressKeyboard": "Pulsa una combinación de teclas",
|
||||
"hotkeyNeedsModifier": "Incluye al menos una de estas teclas: {modifiers}",
|
||||
"hotkeyConflictWith": "Ya lo usa “{action}”. Al guardar, pasará a este.",
|
||||
"hotkeyUnavailable": "No registrado; puede que otra app lo esté usando",
|
||||
"remove": "Quitar",
|
||||
"noNetwork": "Sin red",
|
||||
"ipv6InboundDesc": "Con IPv6 activado, la VPN permite el tráfico IPv6 entrante.",
|
||||
"exportLogs": "Exportar registros",
|
||||
"exportSuccess": "Exportación completada",
|
||||
"iconStyle": "Estilo de icono",
|
||||
"iconStyleFilled": "Relleno",
|
||||
"iconStylePlain": "Simple",
|
||||
"iconStyleHidden": "Oculto",
|
||||
"filter": "Filtro",
|
||||
"hideTimeoutProxies": "Ocultar proxies sin respuesta",
|
||||
"hideTimeoutProxiesDesc": "Omite los proxies cuya última prueba de latencia superó el tiempo de espera",
|
||||
"stackMode": "Modo de pila",
|
||||
"network": "Red",
|
||||
"bypassDomain": "Dominios excluidos",
|
||||
"bypassDomainDesc": "Los dominios excluidos solo se aplican mientras el proxy del sistema esté activado.",
|
||||
"resetTip": "¿Seguro que quieres restablecer?",
|
||||
"icon": "Icono",
|
||||
"noData": "Sin datos",
|
||||
"fontFamily": "Familia de fuente",
|
||||
"installedFonts": "Fuentes instaladas",
|
||||
"toggle": "Alternar",
|
||||
"system": "Sistema",
|
||||
"routeAddress": "Direcciones de ruta",
|
||||
"interfaceNameMode": "Interfaz de salida",
|
||||
"interfaceNameModeClear": "Ninguna",
|
||||
"interfaceNameModeFollow": "Seguir configuración",
|
||||
"interfaceNameModeCustom": "Personalizada",
|
||||
"interfaceName": "Nombre de interfaz",
|
||||
"interfaceNameDesc": "El nombre de interfaz es la interfaz de red que usan las conexiones salientes.",
|
||||
"copyEnvVar": "Copiar variables de entorno",
|
||||
"memoryInfo": "Información de memoria",
|
||||
"total": "Total",
|
||||
"releaseMemory": "Liberar memoria",
|
||||
"memoryCoreHeapInuse": "Heap en uso",
|
||||
"memoryCoreHeapIdle": "Heap inactivo",
|
||||
"memoryCoreStack": "Pilas de goroutines",
|
||||
"memoryCoreRuntime": "Sobrecarga del runtime",
|
||||
"memoryCoreNotRunning": "El núcleo no se está ejecutando",
|
||||
"memoryAppResident": "Memoria residente",
|
||||
"memoryAppShared": "App y compartida",
|
||||
"memoryEstimateDesc": "Estimado a partir de la memoria residente del proceso; puede diferir de lo que indica el sistema.",
|
||||
"memoryEstimateSharedDesc": "El núcleo se ejecuta dentro del proceso de la app. Su parte se estima a partir de las estadísticas del runtime, y el resto cuenta como memoria de la app y compartida.",
|
||||
"memoryReleased": "Memoria liberada",
|
||||
"memoryReleasedSize": "Liberado: {size}",
|
||||
"releaseMemoryFailed": "No se pudo liberar la memoria",
|
||||
"cancel": "Cancelar",
|
||||
"fileIsUpdate": "El archivo se ha modificado. ¿Guardar los cambios?",
|
||||
"profileHasUpdate": "El perfil se ha modificado. ¿Desactivar la actualización automática?",
|
||||
"hasCacheChange": "¿Guardar los cambios en la caché?",
|
||||
"copySuccess": "Copiado correctamente",
|
||||
"copyLink": "Copiar enlace",
|
||||
"exportFile": "Exportar archivo",
|
||||
"cacheCorrupt": "La caché está dañada. ¿Borrarla?",
|
||||
"detectionTip": "Depende de una API de terceros; solo con fines informativos",
|
||||
"listen": "Escucha",
|
||||
"undo": "Deshacer",
|
||||
"redo": "Rehacer",
|
||||
"lineWrap": "Ajuste de línea",
|
||||
"none": "Ninguno",
|
||||
"advancedConfig": "Configuración avanzada",
|
||||
"advancedConfigDesc": "La configuración avanzada incluye la red, el DNS, las reglas añadidas y los scripts.",
|
||||
"addRule": "Añadir regla",
|
||||
"content": "Contenido",
|
||||
"ruleTarget": "Destino de la regla",
|
||||
"matchTarget": "MATCH-TARGET",
|
||||
"followProfile": "Seguir perfil",
|
||||
"sourceIp": "IP de origen",
|
||||
"noResolve": "No resolver IP",
|
||||
"saveChanges": "¿Guardar los cambios?",
|
||||
"cannotSave": "No se puede guardar",
|
||||
"navigationBarStyle": "Barra inferior",
|
||||
"floating": "Flotante",
|
||||
"docked": "Fija",
|
||||
"slide": "Deslizar",
|
||||
"fade": "Fundido",
|
||||
"pureBlack": "Negro puro",
|
||||
"customColor": "Color personalizado",
|
||||
"colorStyle": "Estilo de color",
|
||||
"grid": "Cuadrícula",
|
||||
"spectrum": "Espectro",
|
||||
"sliders": "Reguladores",
|
||||
"hue": "Tono",
|
||||
"saturation": "Saturación",
|
||||
"brightness": "Brillo",
|
||||
"hex": "Hex",
|
||||
"monochromeScheme": "Monocromo",
|
||||
"vividStyle": "Vivo",
|
||||
"tintedStyle": "Tintado",
|
||||
"softStyle": "Suave",
|
||||
"developerMode": "Modo desarrollador",
|
||||
"developerModeEnableTip": "El modo desarrollador está activado.",
|
||||
"messageTest": "Prueba de mensaje",
|
||||
"messageTestTip": "Esto es un mensaje.",
|
||||
"crashTest": "Prueba de fallo",
|
||||
"crashDetected": "Fallo detectado",
|
||||
"crashDetectedTip": "La app no pudo terminar de iniciarse dos veces seguidas. Para romper el ciclo, se ha deseleccionado el perfil {name} y se ha omitido la configuración automática. Puedes volver a seleccionarlo en cualquier momento.",
|
||||
"launchInterrupted": "El inicio no se completó",
|
||||
"launchInterruptedTip": "La última vez, la app se cerró inesperadamente mientras se iniciaba. En este inicio se ha omitido la configuración automática; puedes iniciarla manualmente para reintentarlo.",
|
||||
"clearData": "Borrar datos",
|
||||
"textScale": "Escala del texto",
|
||||
"textScalePreview": "Así se verá el texto en la app",
|
||||
"followSystem": "Seguir el sistema",
|
||||
"internet": "Internet",
|
||||
"systemApp": "Apps del sistema",
|
||||
"noNetworkApp": "Apps sin red",
|
||||
"restoreStrategy": "Estrategia de restauración",
|
||||
"restoreStrategyOverride": "Sobrescribir",
|
||||
"restoreStrategyCompatible": "Compatible",
|
||||
"logsTest": "Prueba de registros",
|
||||
"emptyTip": "{label} no puede estar vacío",
|
||||
"urlTip": "{label} debe ser una URL",
|
||||
"invalidLinkTip": "No es un enlace de suscripción ni un enlace para compartir proxies",
|
||||
"numberTip": "{label} debe ser un número",
|
||||
"numberRangeTip": "{label} debe estar entre {min} y {max}",
|
||||
"interval": "Intervalo",
|
||||
"existsTip": "{label} ya existe",
|
||||
"maxLengthTip": "{label} debe tener como máximo {max} caracteres",
|
||||
"singleAdd": "Añadir uno",
|
||||
"batchAdd": "Añadir en lote",
|
||||
"batchListInputTip": "Un elemento por línea, o separados por comas",
|
||||
"batchMapInputTip": "Una entrada por línea: clave, un espacio y el valor",
|
||||
"singleImport": "Importar uno",
|
||||
"batchImport": "Importar en lote",
|
||||
"batchUrlInputTip": "Una URL por línea",
|
||||
"batchLinkInputTip": "Un enlace por línea",
|
||||
"batchPreviewTip": "{count} por añadir, {skipped} omitidos por ya existir",
|
||||
"lineIssueTip": "Línea {line}: {message}",
|
||||
"singleValueTip": "{label} debe ser un solo elemento",
|
||||
"deleteTip": "¿Seguro que quieres eliminar este elemento ({label})?",
|
||||
"deleteMultipTip": "¿Seguro que quieres eliminar los elementos seleccionados ({label})?",
|
||||
"nullTip": "Aún no hay ningún elemento ({label})",
|
||||
"script": "Script",
|
||||
"color": "Color",
|
||||
"unnamed": "Sin nombre",
|
||||
"pleaseEnterScriptName": "Introduce un nombre para el script",
|
||||
"mixedPort": "Puerto mixto",
|
||||
"socksPort": "Puerto SOCKS",
|
||||
"redirPort": "Puerto Redir",
|
||||
"tproxyPort": "Puerto TProxy",
|
||||
"portTip": "{label} debe estar entre 1024 y 49151",
|
||||
"portConflictTip": "Introduce un puerto diferente",
|
||||
"import": "Importar",
|
||||
"importFile": "Importar desde archivo",
|
||||
"importUrl": "Importar desde URL",
|
||||
"startFromScratch": "Empezar desde cero",
|
||||
"autoSetSystemDns": "Configurar DNS del sistema automáticamente",
|
||||
"details": "Detalles de {label}",
|
||||
"creationTime": "Fecha de creación",
|
||||
"process": "Proceso",
|
||||
"host": "Host",
|
||||
"destination": "Destino",
|
||||
"destinationGeoIP": "GeoIP de destino",
|
||||
"destinationIPASN": "ASN de la IP de destino",
|
||||
"specialProxy": "Proxy especial",
|
||||
"specialRules": "Reglas especiales",
|
||||
"remoteDestination": "Destino remoto",
|
||||
"networkType": "Tipo de red",
|
||||
"proxyChains": "Cadena de proxies",
|
||||
"log": "Registro",
|
||||
"connection": "Conexión",
|
||||
"request": "Solicitud",
|
||||
"connected": "Conectado",
|
||||
"disconnected": "Desconectado",
|
||||
"connecting": "Conectando…",
|
||||
"restartCoreTip": "¿Seguro que quieres reiniciar el núcleo?",
|
||||
"forceRestartCoreTip": "¿Seguro que quieres forzar el reinicio del núcleo?",
|
||||
"dnsHijacking": "Secuestro de DNS",
|
||||
"coreStatus": "Estado del núcleo",
|
||||
"appendSystemDns": "Añadir DNS del sistema",
|
||||
"editRule": "Editar regla",
|
||||
"extendMode": "Modo de extensión",
|
||||
"standardModeDesc": "Modo estándar: añade reglas sobre el perfil",
|
||||
"scriptModeDesc": "Modo script: reescribe todo el perfil con un script de extensión",
|
||||
"addedRules": "Reglas añadidas",
|
||||
"controlGlobalAddedRules": "Controlar las reglas añadidas globales",
|
||||
"quickActions": "Acciones rápidas",
|
||||
"rulePresetBlockQuic": "Bloquear QUIC",
|
||||
"rulePresetBlockStun": "Bloquear STUN",
|
||||
"rulePresetBlockDot": "Bloquear DNS sobre TLS",
|
||||
"rulePresetBlockLoopback": "Bloquear bucle del proxy",
|
||||
"rulePresetSystemServicesDirect": "Apple y Microsoft directos",
|
||||
"rulePresetBittorrentDirect": "BitTorrent directo",
|
||||
"rulePresetLanDirect": "LAN directa",
|
||||
"extendScript": "Script de extensión",
|
||||
"goToConfigureScript": "Ir a la configuración del script",
|
||||
"goToConfigureAddedRules": "Ir a la configuración de las reglas añadidas",
|
||||
"editGlobalRules": "Editar reglas globales",
|
||||
"confirmForceCrashCore": "¿Seguro que quieres forzar el fallo del núcleo?",
|
||||
"confirmClearAllData": "¿Seguro que quieres borrar todos los datos?",
|
||||
"loading": "Cargando…",
|
||||
"yearsAgo": "{count, plural, =1{hace 1 año} other{hace {count} años}}",
|
||||
"monthsAgo": "{count, plural, =1{hace 1 mes} other{hace {count} meses}}",
|
||||
"daysAgo": "{count, plural, =1{hace 1 día} other{hace {count} días}}",
|
||||
"hoursAgo": "{count, plural, =1{hace 1 hora} other{hace {count} horas}}",
|
||||
"minutesAgo": "{count, plural, =1{hace 1 minuto} other{hace {count} minutos}}",
|
||||
"justNow": "Ahora mismo",
|
||||
"yearsAgoShort": "{count, plural, other{hace {count} a}}",
|
||||
"monthsAgoShort": "{count, plural, other{hace {count} m}}",
|
||||
"daysAgoShort": "{count, plural, other{hace {count} d}}",
|
||||
"hoursAgoShort": "{count, plural, other{hace {count} h}}",
|
||||
"minutesAgoShort": "{count, plural, other{hace {count} min}}",
|
||||
"noLongerRemind": "No volver a recordármelo",
|
||||
"accessControlSettings": "Ajustes de control de acceso",
|
||||
"turnOn": "Activar",
|
||||
"turnOff": "Desactivar",
|
||||
"vpnConfigChangeDetected": "Se detectó un cambio en la configuración relacionada con la VPN",
|
||||
"restart": "Reiniciar",
|
||||
"speedStatistics": "Estadísticas de velocidad",
|
||||
"resetPageChangesTip": "Esta página tiene cambios. ¿Seguro que quieres restablecer?",
|
||||
"customProfile": "Personalizado",
|
||||
"customProfileDesc": "Crea grupos de proxies y reglas a partir de los proxies de la app y de otros perfiles",
|
||||
"customProfileResources": "Recursos de perfil personalizado",
|
||||
"customProfileResourcesDesc": "Los recursos de perfil personalizado incluyen proxies, proveedores de reglas, filtros y conjuntos de iconos.",
|
||||
"unknownNetworkError": "Error de red desconocido",
|
||||
"backupFromNewerVersion": "Esta copia de seguridad procede de una versión más reciente de la app. Actualiza la app antes de restaurarla",
|
||||
"networkTimeoutError": "Se agotó el tiempo de espera de la solicitud. Comprueba tu red o el proxy e inténtalo de nuevo",
|
||||
"networkHostLookupError": "No se pudo resolver la dirección del servidor. Comprueba que la URL sea correcta y que el DNS funcione",
|
||||
"networkConnectionError": "No se pudo conectar con el servidor. Comprueba tu conexión de red o los ajustes del proxy",
|
||||
"networkTlsError": "Falló la conexión segura. Puede que el certificado del servidor no sea válido o que la conexión esté siendo interceptada",
|
||||
"networkCancelledError": "Se canceló la solicitud",
|
||||
"networkAccessDeniedError": "El servidor denegó el acceso (HTTP {code}). Puede que el enlace haya caducado o que las credenciales sean incorrectas",
|
||||
"networkNotFoundError": "No se encontró nada en esta dirección (HTTP {code}). Comprueba que la URL sea correcta",
|
||||
"networkRateLimitedError": "Demasiadas solicitudes (HTTP 429). Espera un momento e inténtalo de nuevo",
|
||||
"networkServerError": "El servidor tuvo un problema (HTTP {code}). Inténtalo de nuevo más tarde",
|
||||
"networkBadResponseError": "El servidor rechazó la solicitud (HTTP {code})",
|
||||
"networkRequestFailed": "Falló la solicitud de red: {detail}",
|
||||
"invalidBackupFile": "Archivo de copia de seguridad no válido",
|
||||
"pruneCache": "Depurar caché",
|
||||
"backupAndRestore": "Copia de seguridad y restauración",
|
||||
"restore": "Restaurar",
|
||||
"restoreSuccess": "Restauración completada",
|
||||
"restoreOnlyConfig": "Restaurar solo los perfiles",
|
||||
"restoreAllData": "Restaurar todos los datos",
|
||||
"addProfile": "Añadir perfil",
|
||||
"delayTest": "Prueba de latencia",
|
||||
"proxyGroupEmpty": "El grupo de proxies está vacío",
|
||||
"confirmExitWindow": "¿Seguro que quieres salir de la ventana actual?",
|
||||
"optional": "Opcional",
|
||||
"maxFailedTimes": "Máximo de fallos",
|
||||
"testInterval": "Intervalo de prueba",
|
||||
"excludeFilter": "Filtro de exclusión",
|
||||
"expectedStatus": "Estado esperado",
|
||||
"strategy": "Estrategia",
|
||||
"tolerance": "Tolerancia",
|
||||
"inputProxyGroupName": "Introduce el nombre del grupo de proxies",
|
||||
"helperCorruptTip": "El servicio auxiliar (Helper) no está disponible; no se puede activar el modo TUN. Reinstala FlClash para restaurarlo.",
|
||||
"tunAuthorizationFailed": "No se pudo autorizar TUN, por lo que se desactivó.",
|
||||
"sudoPasswordTitle": "Introduce tu contraseña para sudo",
|
||||
"coreBlockedByPolicyTip": "Windows se negó a ejecutar FlClashCore.exe (error {code}). Una directiva de control de aplicaciones, como Smart App Control o AppLocker, bloquea los programas sin firmar; permite FlClash en esa directiva o desactívala e inténtalo de nuevo.",
|
||||
"coreBlockedBySmartAppControlTip": "Smart App Control de Windows bloqueó FlClashCore.exe porque no está firmado. Abre Seguridad de Windows → Control de aplicaciones y navegador → Configuración de Smart App Control, elige Desactivado y vuelve a iniciar FlClash. Smart App Control no se puede volver a activar sin reinstalar Windows.",
|
||||
"hideFromList": "Ocultar de la lista",
|
||||
"testWhenUsed": "Probar al usarse",
|
||||
"disableUDP": "Desactivar UDP",
|
||||
"confirmDeleteProxyGroup": "¿Seguro que quieres eliminar este grupo de proxies?",
|
||||
"ruleEmpty": "La regla está vacía",
|
||||
"inputRuleContent": "Introduce el contenido de la regla",
|
||||
"ruleSet": "Conjunto de reglas",
|
||||
"selectRuleSet": "Selecciona un conjunto de reglas",
|
||||
"splitStrategy": "Estrategia de división",
|
||||
"selectSplitStrategy": "Selecciona una estrategia de división",
|
||||
"noResolveHostname": "No resolver nombre de host",
|
||||
"matchSourceIp": "Coincidir con IP de origen",
|
||||
"basicInfo": "Información básica",
|
||||
"additionalParameters": "Parámetros adicionales",
|
||||
"proxyType": "Tipo de proxy",
|
||||
"basicStrategy": "Estrategias básicas",
|
||||
"editProxy": "Editar proxy",
|
||||
"addNodes": "Añadir nodos",
|
||||
"addProxyGroup": "Añadir grupo de proxies",
|
||||
"editProxyGroup": "Editar grupo de proxies",
|
||||
"iconUrl": "URL del icono",
|
||||
"iconRecords": "Registros de iconos",
|
||||
"custom": "Personalizado",
|
||||
"ruleActionDomainDesc": "Coincide con el dominio completo",
|
||||
"ruleActionDomainSuffixDesc": "Coincide con un sufijo de dominio",
|
||||
"ruleActionDomainKeywordDesc": "Coincide con una palabra clave del dominio",
|
||||
"ruleActionDomainRegexDesc": "Coincide con una expresión regular de dominio",
|
||||
"ruleActionDomainWildcardDesc": "Coincidencia con comodines; solo se admiten * y ?",
|
||||
"ruleActionGeositeDesc": "Coincide con los dominios de Geosite",
|
||||
"ruleActionIpCidrDesc": "Coincide con un rango de direcciones IP",
|
||||
"ruleActionIpCidr6Desc": "Coincide con un rango de direcciones IP; IP-CIDR6 es solo un alias",
|
||||
"ruleActionIpSuffixDesc": "Coincide con un rango de sufijo de IP",
|
||||
"ruleActionIpAsnDesc": "Coincide con el ASN de la IP",
|
||||
"ruleActionGeoipDesc": "Coincide con el código de país de la IP",
|
||||
"ruleActionSrcGeoipDesc": "Coincide con el código de país de la IP de origen",
|
||||
"ruleActionSrcIpAsnDesc": "Coincide con el ASN de la IP de origen",
|
||||
"ruleActionSrcIpCidrDesc": "Coincide con un rango de direcciones IP de origen",
|
||||
"ruleActionSrcIpSuffixDesc": "Coincide con un rango de sufijo de IP de origen",
|
||||
"ruleActionDstPortDesc": "Coincide con el rango de puertos de destino",
|
||||
"ruleActionSrcPortDesc": "Coincide con el rango de puertos de origen",
|
||||
"ruleActionInPortDesc": "Coincide con el puerto de entrada",
|
||||
"ruleActionInTypeDesc": "Coincide con el tipo de entrada",
|
||||
"ruleActionInUserDesc": "Coincide con el nombre de usuario de entrada; separa varios usuarios con /",
|
||||
"ruleActionInNameDesc": "Coincide con el nombre de la entrada",
|
||||
"ruleActionRematchNameDesc": "Coincide con el nombre de rematch; separa varios nombres con /",
|
||||
"ruleActionProcessPathDesc": "Coincide con la ruta completa del proceso",
|
||||
"ruleActionProcessPathRegexDesc": "Coincide con una expresión regular de la ruta del proceso",
|
||||
"ruleActionProcessPathWildcardDesc": "Coincide con comodines en la ruta del proceso; solo se admiten * y ?",
|
||||
"ruleActionProcessNameDesc": "Coincide con el nombre del proceso; en Android coincide con el nombre del paquete",
|
||||
"ruleActionProcessNameRegexDesc": "Coincide con una expresión regular del nombre del proceso; en Android coincide con el nombre del paquete",
|
||||
"ruleActionProcessNameWildcardDesc": "Coincide con comodines en el nombre del proceso; solo se admiten * y ?",
|
||||
"ruleActionUidDesc": "Coincide con el ID de usuario de Linux",
|
||||
"ruleActionNetworkDesc": "Coincide con TCP o UDP",
|
||||
"ruleActionDscpDesc": "Coincide con la marca DSCP (solo entrada UDP de tproxy)",
|
||||
"ruleActionRuleSetDesc": "Hace referencia a un conjunto de reglas; requiere rule-providers",
|
||||
"ruleActionAndDesc": "Regla lógica AND",
|
||||
"ruleActionOrDesc": "Regla lógica OR",
|
||||
"ruleActionNotDesc": "Regla lógica NOT",
|
||||
"ruleActionSubRuleDesc": "Coincide con una subregla; cuidado con los paréntesis",
|
||||
"ruleActionMatchDesc": "Coincide con todas las solicitudes, sin necesidad de condiciones",
|
||||
"contentNotEmpty": "El contenido no puede estar vacío",
|
||||
"splitStrategyNotEmpty": "La estrategia de división no puede estar vacía",
|
||||
"timeout": "Tiempo agotado",
|
||||
"delayFailed": "Fallido",
|
||||
"invalidSubRule": "{subRule} no es una SUB_RULE válida",
|
||||
"invalidPolicy": "{target} no es una política válida",
|
||||
"invalidProxyProvider": "{providerName} no es un proveedor de proxies válido",
|
||||
"invalidRuleSet": "{ruleSet} no es un conjunto de reglas válido",
|
||||
"invalidNetworkContent": "Solo se admite tcp o udp",
|
||||
"invalidRangeContent": "Introduce números o rangos como 80 u 8000-9000, separados por /",
|
||||
"invalidDscpContent": "Una marca DSCP no puede superar 63",
|
||||
"invalidCidrContent": "Introduce un rango de IP en formato CIDR, como 192.168.0.0/16",
|
||||
"invalidPortRangeContent": "Introduce un puerto o un rango como 443 u 8000-9000",
|
||||
"invalidHostContent": "Introduce un dominio o una dirección IP",
|
||||
"invalidListenContent": "Introduce una dirección y un puerto, como 0.0.0.0:1053",
|
||||
"invalidProxy": "{proxyName} no es un proxy válido",
|
||||
"locationPermissionRequired": "Se requiere permiso de ubicación",
|
||||
"locationPermissionGuide": "1. Abre Ajustes del sistema > Privacidad y seguridad\n2. Elige Servicios de localización\n3. Busca {appName} en la lista y márcalo\n\nCuando termines, vuelve a la app para continuar. Gracias por tu colaboración.",
|
||||
"prerequisites": "Requisitos previos",
|
||||
"ignoreBatteryOptimization": "Ignorar optimización de batería",
|
||||
"batteryOptimizationDesc": "Ignorar la optimización de batería mantiene la app en ejecución en segundo plano.",
|
||||
"locationPermission": "Permiso de ubicación",
|
||||
"locationPermissionDesc": "El sistema requiere el permiso de ubicación para leer el nombre de la red Wi-Fi. En Android elige “Permitir todo el tiempo”; de lo contrario, no se podrá leer el nombre de la red Wi-Fi mientras la app esté en segundo plano.",
|
||||
"excludeSsids": "Excluir SSID",
|
||||
"excludeSsidsDesc": "Al conectarte a una red Wi-Fi con un SSID excluido, el estado de ejecución de la app cambia automáticamente.",
|
||||
"ssidsEmpty": "No hay SSID",
|
||||
"onDemand": "Bajo demanda",
|
||||
"onDemandDesc": "Bajo demanda pausa el proxy en las redes Wi-Fi excluidas.",
|
||||
"locationPermissionDeniedMessage": "Se denegó el permiso de ubicación, por lo que no se puede leer el nombre de la red Wi-Fi actual. Activa el permiso de ubicación manualmente en los ajustes del sistema.",
|
||||
"addSsid": "Añadir SSID",
|
||||
"editSsid": "Editar SSID",
|
||||
"authorized": "Autorizado",
|
||||
"tapToAuthorize": "Toca para autorizar",
|
||||
"suspended": "Suspendido…",
|
||||
"resourceUpdateInterval": "Intervalo de actualización automática",
|
||||
"resourceUpdateIntervalTip": "El intervalo de actualización automática debe ser mayor que 0",
|
||||
"hours": "horas",
|
||||
"minutes": "minutos",
|
||||
"geoResources": "Geo",
|
||||
"geoSkipped": "{name} ya está actualizado",
|
||||
"geoUpdated": "{name} actualizado",
|
||||
"secondsCount": "{count, plural, =1{1 segundo} other{{count} segundos}}",
|
||||
"proxiesCount": "{count, plural, =1{1 proxy} other{{label} proxies}}",
|
||||
"rulesCount": "{count, plural, =1{1 regla} other{{label} reglas}}",
|
||||
"proxyGroupsCount": "{count, plural, =1{1 grupo de proxies} other{{label} grupos de proxies}}",
|
||||
"changelogBreaking": "Cambios incompatibles",
|
||||
"changelogFeatures": "Novedades",
|
||||
"changelogFixes": "Correcciones",
|
||||
"changelogPerformance": "Rendimiento",
|
||||
"changelogReverts": "Reversiones",
|
||||
"close": "Cerrar",
|
||||
"back": "Atrás",
|
||||
"minimize": "Minimizar",
|
||||
"maximize": "Maximizar",
|
||||
"unmaximize": "Restaurar tamaño",
|
||||
"pinWindow": "Fijar ventana",
|
||||
"unpinWindow": "Desfijar ventana",
|
||||
"exitFullScreen": "Salir de pantalla completa",
|
||||
"torch": "Linterna",
|
||||
"pickFromAlbum": "Elegir del álbum",
|
||||
"blockConnection": "Bloquear conexión",
|
||||
"closeConnections": "Cerrar conexiones",
|
||||
"scrollToSelected": "Ir a la selección",
|
||||
"showMore": "Expandir",
|
||||
"showLess": "Contraer",
|
||||
"previousMatch": "Coincidencia anterior",
|
||||
"nextMatch": "Coincidencia siguiente",
|
||||
"clearSearch": "Borrar búsqueda",
|
||||
"noSearchResults": "No hay resultados",
|
||||
"showPassword": "Mostrar contraseña",
|
||||
"hidePassword": "Ocultar contraseña",
|
||||
"authorize": "Autorizar",
|
||||
"installedAppsPermissionRequired": "Se requiere permiso de lista de apps",
|
||||
"installedAppsPermissionDesc": "Este sistema oculta la lista de apps instaladas hasta que se concede el permiso. Autorízalo para configurar el proxy por app.",
|
||||
"installedAppsPermissionDeniedMessage": "Se denegó el permiso de lista de apps, por lo que no se pueden mostrar las apps instaladas. Concédelo manualmente en los ajustes del sistema.",
|
||||
"outboundIp": "IP de salida",
|
||||
"ipAddress": "Dirección IP",
|
||||
"ipQualityLevel": "Nivel",
|
||||
"ipQualityGood": "Buena",
|
||||
"ipQualityNormal": "Normal",
|
||||
"ipQualityRisky": "Arriesgada",
|
||||
"ipType": "Tipo",
|
||||
"ipTypeResidential": "Residencial",
|
||||
"ipTypeMobile": "Red móvil",
|
||||
"ipTypeBusiness": "Empresarial",
|
||||
"ipTypeHosting": "Centro de datos",
|
||||
"ipFlags": "Indicadores",
|
||||
"ipFlagProxy": "Proxy",
|
||||
"ipFlagVpn": "VPN",
|
||||
"ipFlagTor": "Tor",
|
||||
"ipFlagAbuser": "Historial de abusos",
|
||||
"ipOrganization": "Organización",
|
||||
"ipAsn": "ASN",
|
||||
"ipQualitySource": "Respondido por",
|
||||
"ipQualitySources": "Fuentes",
|
||||
"ipQualityFailed": "No se pudo determinar el tipo de IP",
|
||||
"ipQualityRetry": "Comprobar de nuevo",
|
||||
"ipSourceNoType": "Sin tipo",
|
||||
"ipSourceRateLimited": "Límite de solicitudes",
|
||||
"ipSourceIpMismatch": "IP de salida distinta",
|
||||
"hideIp": "Ocultar IP",
|
||||
"editorUnavailable": "Editor no disponible",
|
||||
"replace": "Reemplazar",
|
||||
"replaceAll": "Reemplazar todo",
|
||||
"cameraPermissionRequired": "Se requiere permiso de cámara",
|
||||
"cameraPermissionDesc": "Permite el acceso a la cámara en los ajustes del sistema para escanear códigos QR, o elige una imagen de código QR del álbum.",
|
||||
"cameraUnavailable": "Cámara no disponible",
|
||||
"retry": "Reintentar",
|
||||
"invalidProfileQrcode": "Este código QR no contiene un enlace de perfil",
|
||||
"dnsQueries": "Consultas DNS",
|
||||
"recordType": "Tipo de registro",
|
||||
"answers": "Respuestas",
|
||||
"responseCode": "Código de respuesta",
|
||||
"error": "Error",
|
||||
"initiator": "Origen de la solicitud",
|
||||
"cache": "Caché",
|
||||
"yes": "Sí",
|
||||
"no": "No",
|
||||
"nonTextProviderFile": "Este recurso externo no es un archivo de texto",
|
||||
"addCustomProxy": "Añadir proxy",
|
||||
"definitionNotMap": "La configuración debe ser un mapa YAML con un nombre y un tipo",
|
||||
"ruleTextInvalid": "La regla debe empezar con un tipo admitido, por ejemplo DOMAIN,example.com,DIRECT",
|
||||
"ruleListInvalid": "Las reglas deben ser una lista YAML con una regla por elemento, por ejemplo - DOMAIN,example.com,DIRECT",
|
||||
"shareLinksInvalid": "No se pudo leer ningún proxy de los enlaces",
|
||||
"shareLinkUnreadable": "No se pudo leer ningún proxy de {link}",
|
||||
"proxiesProfileLabel": "{name} y otros ({count} proxies)",
|
||||
"singleShareLinkOnly": "Introduce aquí un solo enlace; para varios, usa la edición rápida de la lista",
|
||||
"username": "Usuario",
|
||||
"emptyFallback": "Respaldo si está vacío",
|
||||
"defaultSelected": "Selección predeterminada",
|
||||
"hashByInUser": "Hash por usuario de entrada",
|
||||
"appProxiesEmpty": "No hay proxies locales",
|
||||
"nodes": "Nodos",
|
||||
"localProxies": "Proxies locales",
|
||||
"customIssueEmptyName": "El nombre está vacío",
|
||||
"customIssueReservedName": "{name} es un nombre de política integrada y no se puede usar aquí",
|
||||
"customIssueDuplicateName": "El nombre {name} ya lo usa otro proxy o grupo de proxies",
|
||||
"customIssueCoreRejected": "El núcleo no puede interpretar este proxy: {message}",
|
||||
"customIssueMissingProxies": "Estos proxies o políticas no existen: {names}",
|
||||
"customIssueMissingProviders": "Estos proveedores de proxies no existen: {names}",
|
||||
"customIssueNoProxySource": "No hay proxies ni proveedores de proxies seleccionados, por lo que el núcleo rechaza este grupo",
|
||||
"customIssueGroupLoop": "Los grupos de proxies se referencian entre sí en bucle: {path}",
|
||||
"customIssueInvalidEmptyFallback": "El respaldo si está vacío debe ser un proxy, pero {name} no existe o es un grupo de proxies",
|
||||
"customIssueInvalidFilter": "{name} no es una expresión regular válida: {message}",
|
||||
"customIssueMissingDialer": "El proxy de marcación {name} no existe",
|
||||
"customIssueDialerLoop": "{proxy} marca a través de {target}, que lleva de vuelta a {proxy}, por lo que la marcación entra en bucle",
|
||||
"dialerProxyLoopStopped": "La marcación a través de {name} lleva de vuelta al proxy que lo usa, por lo que se detuvo la conexión",
|
||||
"customIssuesSummary": "{count} elementos tienen problemas, y aplicar este perfil puede fallar",
|
||||
"providerInUse": "{label} sigue en uso en {profiles}, que dejarán de funcionar correctamente si se elimina. ¿Seguro que quieres eliminarlo?",
|
||||
"proxyGroupInUse": "{label} sigue mencionado por reglas, grupos de proxies, proxies de marcación, DNS o NTP de este perfil, que dejarán de funcionar si se elimina. ¿Seguro que quieres eliminarlo?",
|
||||
"proxiesRemovedTip": "Se eliminarán estos proxies: {removed}. Una línea cuyo nombre cambió cuenta como un proxy nuevo, y los perfiles personalizados que mencionen los eliminados los marcarán como ausentes. ¿Aplicar de todos modos?",
|
||||
"proxiesReplacedTip": "Se eliminarán estos proxies: {removed}. Se añadirán estos: {added}. Una línea cuyo nombre cambió cuenta como un proxy nuevo, y los perfiles personalizados que mencionen los eliminados los marcarán como ausentes. ¿Aplicar de todos modos?",
|
||||
"fontSize": "Tamaño",
|
||||
"large": "Grande",
|
||||
"extraLarge": "Muy grande",
|
||||
"switchProfile": "Cambiar de perfil",
|
||||
"lastUpdated": "Última actualización",
|
||||
"filters": "Filtros",
|
||||
"label": "Etiqueta",
|
||||
"regex": "Expresión regular",
|
||||
"matchCase": "Coincidir mayúsculas y minúsculas",
|
||||
"iconSets": "Conjuntos de iconos",
|
||||
"invalidIconSet": "No es un conjunto de iconos válido",
|
||||
"recommendedIcons": "Sugeridos",
|
||||
"localImage": "Imagen local",
|
||||
"iconSetsEmptyTip": "Aún no hay conjuntos de iconos. Añádelos en Recursos de perfil personalizado → Conjuntos de iconos",
|
||||
"outbound": "Salida",
|
||||
"strictRoute": "Ruta estricta",
|
||||
"congestionController": "Control de congestión TCP",
|
||||
"congestionControllerDesc": "El control de congestión TCP solo funciona con la pila mips.",
|
||||
"routeExcludeAddress": "Direcciones excluidas de la ruta",
|
||||
"keepAliveIdle": "Inactividad de keep-alive TCP",
|
||||
"disableKeepAlive": "Desactivar keep-alive TCP",
|
||||
"routingMark": "Marca de enrutamiento",
|
||||
"strictRouteDesc": "La ruta estricta evita que el tráfico, como el DNS, eluda TUN y, con IPv6 desactivado, bloquea las conexiones IPv6 de este dispositivo.",
|
||||
"initFailed": "Error al iniciar",
|
||||
"initFailedTip": "FlClash encontró un error al iniciarse y no puede continuar. Copia los detalles para informar del problema. Si sigue ocurriendo, borrar los datos suele permitir que la app vuelva a iniciarse.",
|
||||
"errorDetails": "Detalles del error",
|
||||
"stackTrace": "Seguimiento de pila",
|
||||
"clearDataAndExitTip": "Esto elimina todos los perfiles, ajustes y datos locales, y luego cierra la app. Ábrela de nuevo para empezar de cero.",
|
||||
"clearDataFailed": "No se pudieron borrar los datos: {detail}",
|
||||
"bypassPrivateRoute": "Omitir direcciones privadas",
|
||||
"bypassPrivateRouteDesc": "Con Omitir direcciones privadas activado, las direcciones de LAN, loopback y multidifusión no pasan por TUN.",
|
||||
"disableIcmpForwarding": "Desactivar reenvío ICMP",
|
||||
"disableIcmpForwardingDesc": "Con el reenvío ICMP desactivado, TUN responde él mismo al ping, por lo que ping ya no muestra la latencia real.",
|
||||
"excludeInterface": "Interfaces excluidas",
|
||||
"excludeInterfaceDesc": "El tráfico que llega por las interfaces excluidas, como docker0, no pasa por TUN.",
|
||||
"includeInterface": "Interfaces incluidas",
|
||||
"includeInterfaceDesc": "Solo el tráfico que llega por las interfaces incluidas pasa por TUN, y las interfaces excluidas dejan de aplicarse.",
|
||||
"includeUid": "ID de usuario incluidos",
|
||||
"includeUidDesc": "Solo el tráfico de los procesos de los ID de usuario incluidos pasa por TUN.",
|
||||
"excludeUid": "ID de usuario excluidos",
|
||||
"excludeUidDesc": "El tráfico de los procesos de los ID de usuario excluidos no pasa por TUN.",
|
||||
"excludeSrcPort": "Puertos de origen excluidos",
|
||||
"excludeSrcPortDesc": "El tráfico desde los puertos de origen excluidos no pasa por TUN.",
|
||||
"excludeDstPort": "Puertos de destino excluidos",
|
||||
"excludeDstPortDesc": "El tráfico hacia los puertos de destino excluidos no pasa por TUN.",
|
||||
"udpTimeout": "Tiempo de espera UDP",
|
||||
"udpTimeoutDesc": "El tiempo de espera UDP se indica en segundos y solo funciona con las pilas gvisor, system y mixed.",
|
||||
"dnsHijackDesc": "Sin esta entrada, TUN secuestra todas las consultas DNS al puerto 53 (any:53).",
|
||||
"tunOverrideDesc": "Las entradas añadidas aquí sustituyen los ajustes de TUN de todos los perfiles; lo que no añadas conserva el ajuste del propio perfil. Las entradas que añade un perfil personalizado tienen prioridad.",
|
||||
"profileTunSettingsDesc": "Se aplica solo a este perfil y tiene prioridad sobre las entradas de sobrescritura de TUN de los ajustes de red.",
|
||||
"settingsCount": "{count, plural, =1{1 ajuste} other{{count} ajustes}}",
|
||||
"sectionsInEffect": "{count} en vigor",
|
||||
"itemsCount": "{count, plural, =1{1 elemento} other{{count} elementos}}",
|
||||
"additionalPrefix": "Prefijo del nombre",
|
||||
"additionalSuffix": "Sufijo del nombre",
|
||||
"skipCertVerify": "Omitir verificación de certificado",
|
||||
"ipVersion": "Versión de IP",
|
||||
"addFilters": "Añadir filtros",
|
||||
"failedItem": "{label}: {message}",
|
||||
"failedCount": "{count} elementos fallaron",
|
||||
"importConfigInvalid": "Este archivo no es una configuración importable",
|
||||
"importConfigReplaceTip": "Al importar se reemplazan los grupos de proxies, las reglas y los ajustes que tiene ahora este perfil",
|
||||
"networkName": "Nombre de la red",
|
||||
"networkSecret": "Clave de la red",
|
||||
"peers": "Pares",
|
||||
"virtualIpv4": "IPv4 virtual",
|
||||
"hostname": "Nombre de host",
|
||||
"exitNodes": "Nodos de salida",
|
||||
"cipher": "Cifrado",
|
||||
"protocol": "Protocolo",
|
||||
"protocolParam": "Parámetro del protocolo",
|
||||
"obfs": "Ofuscación",
|
||||
"obfsParam": "Parámetro de ofuscación",
|
||||
"obfsPassword": "Contraseña de ofuscación",
|
||||
"obfsMode": "Modo de ofuscación",
|
||||
"obfsHost": "Host de ofuscación",
|
||||
"plugin": "Complemento",
|
||||
"pluginMode": "Modo del complemento",
|
||||
"pluginHost": "Host del complemento",
|
||||
"privateKey": "Clave privada",
|
||||
"publicKey": "Clave pública",
|
||||
"privateKeyPassphrase": "Frase de contraseña de la clave privada",
|
||||
"preSharedKey": "Clave precompartida",
|
||||
"secretKey": "Clave",
|
||||
"transport": "Transporte",
|
||||
"uploadBandwidth": "Ancho de banda de subida",
|
||||
"downloadBandwidth": "Ancho de banda de descarga",
|
||||
"protocolVersion": "Versión del protocolo",
|
||||
"portHopping": "Salto de puertos",
|
||||
"hopInterval": "Intervalo de salto",
|
||||
"congestionControl": "Control de congestión",
|
||||
"udpRelayMode": "Modo de retransmisión UDP",
|
||||
"allowedIps": "IP permitidas",
|
||||
"remoteDnsResolve": "Resolución DNS remota",
|
||||
"clientFingerprint": "Huella del cliente",
|
||||
"required": "Obligatorio",
|
||||
"ageSecretKey": "Clave secreta de age",
|
||||
"ageEncryptedProfile": "Perfil cifrado",
|
||||
"ageSecretKeyRequiredTip": "Este perfil está cifrado con age y necesita una clave secreta de age para descifrarse",
|
||||
"currentOutboundDesc": "Contiene el botón de inicio y no se puede quitar",
|
||||
"running": "En ejecución",
|
||||
"notRunning": "Detenido",
|
||||
"trafficPeak": "Pico: {value}",
|
||||
"trafficTotal": "Total: {value}",
|
||||
"ipQualityShort": "Calidad",
|
||||
"ipTypeUnknown": "Tipo desconocido",
|
||||
"tapIconToRetry": "Toca el icono para reintentar",
|
||||
"networkTakeover": "Control del tráfico",
|
||||
"portValue": "Puerto {port}",
|
||||
"serviceAbnormalCount": "{count, plural, =1{1 problema} other{{count} problemas}}",
|
||||
"serviceAllAvailable": "Todo disponible",
|
||||
"serviceShownOnDashboard": "Se muestra en el panel",
|
||||
"groupTimeoutCount": "{count} sin respuesta",
|
||||
"groupCountUnit": "grupos",
|
||||
"groupCount": "{count, plural, =1{1 grupo} other{{count} grupos}}",
|
||||
"proxyGroupsAfterStart": "Los grupos aparecen aquí cuando se inicia el núcleo",
|
||||
"usedShort": "usado",
|
||||
"profileUpdatedAt": "Actualizado {time}",
|
||||
"profileExpiresIn": "Vence el {date}, {days, plural, =1{queda 1 día} other{quedan {days} días}}",
|
||||
"profileDaysLeft": "{days, plural, =1{Queda 1 día} other{Quedan {days} días}}",
|
||||
"target": "Destino",
|
||||
"outboundExit": "Salida",
|
||||
"duration": "Duración",
|
||||
"traffic": "Tráfico",
|
||||
"totalDownload": "Descargado",
|
||||
"totalUpload": "Subido",
|
||||
"initiatorShort": "De",
|
||||
"result": "Resultado",
|
||||
"elapsed": "Tardó",
|
||||
"connectionStats": "Estadísticas de conexión",
|
||||
"connectionStatsDesc": "Conexiones activas, solicitudes recientes y consultas DNS",
|
||||
"memoryInfoDesc": "Memoria que usan la app y el núcleo",
|
||||
"editDashboard": "Editar panel",
|
||||
"done": "Hecho",
|
||||
"dashboardAddableSection": "Disponibles para añadir",
|
||||
"customImportDroppedSubRules": "{count, plural, =1{Se descartó 1 regla SUB-RULE, porque los perfiles personalizados no admiten subreglas} other{Se descartaron {label} reglas SUB-RULE, porque los perfiles personalizados no admiten subreglas}}",
|
||||
"autoInclude": "Incluir automáticamente",
|
||||
"allReferencedProxies": "Todos los proxies referenciados",
|
||||
"allReferencedProxyProviders": "Todos los proveedores de proxies referenciados"
|
||||
}
|
||||
+943
@@ -0,0 +1,943 @@
|
||||
{
|
||||
"rule": "Règle",
|
||||
"rules": "Règles",
|
||||
"global": "Global",
|
||||
"direct": "Direct",
|
||||
"dashboard": "Tableau de bord",
|
||||
"proxies": "Proxys",
|
||||
"profile": "Profil",
|
||||
"profiles": "Profils",
|
||||
"tools": "Outils",
|
||||
"logs": "Journaux",
|
||||
"resources": "Ressources",
|
||||
"trafficUsage": "Trafic utilisé",
|
||||
"networkSpeed": "Débit réseau",
|
||||
"outboundMode": "Mode sortant",
|
||||
"serviceStatus": "État des services",
|
||||
"serviceRestricted": "Accès restreint",
|
||||
"serviceAvailable": "Disponible",
|
||||
"serviceUnavailable": "Indisponible",
|
||||
"serviceFailed": "Échec de la vérification",
|
||||
"serviceDisallowedIsp": "FAI non autorisé",
|
||||
"serviceBlocked": "Bloqué",
|
||||
"serviceUnsupportedRegion": "Région non prise en charge",
|
||||
"serviceOriginalsOnly": "Contenus originaux uniquement",
|
||||
"serviceComingSoon": "Bientôt disponible",
|
||||
"servicePending": "Non vérifié",
|
||||
"serviceManage": "Gérer les services",
|
||||
"serviceCheck": "Vérifier",
|
||||
"serviceCheckAll": "Tout vérifier",
|
||||
"serviceCheckedAt": "Vérifié à {time}",
|
||||
"upload": "Envoi",
|
||||
"download": "Réception",
|
||||
"usedTraffic": "Trafic utilisé",
|
||||
"totalTraffic": "Trafic total",
|
||||
"expireTime": "Date d’expiration",
|
||||
"nullProfileDesc": "Ajoutez un profil pour commencer",
|
||||
"settings": "Paramètres",
|
||||
"language": "Langue",
|
||||
"defaultText": "Par défaut",
|
||||
"more": "Plus",
|
||||
"other": "Autre",
|
||||
"about": "À propos",
|
||||
"en": "Anglais",
|
||||
"es": "Espagnol",
|
||||
"fr": "Français",
|
||||
"ja": "Japonais",
|
||||
"ko": "Coréen",
|
||||
"ru": "Russe",
|
||||
"zhCN": "Chinois simplifié",
|
||||
"theme": "Thème",
|
||||
"extend": "Extension",
|
||||
"runtimeConfig": "Configuration d’exécution",
|
||||
"allowLan": "Autoriser le LAN",
|
||||
"tun": "TUN",
|
||||
"tunDesc": "TUN ne fonctionne qu’en mode administrateur.",
|
||||
"minimizeOnExit": "Réduire à la fermeture",
|
||||
"autoLaunch": "Lancement automatique",
|
||||
"silentLaunch": "Lancement silencieux",
|
||||
"silentLaunchDesc": "Le lancement silencieux démarre l’app sans afficher la fenêtre.",
|
||||
"autoRun": "Démarrage automatique",
|
||||
"autoRunDesc": "Le démarrage automatique active le proxy à l’ouverture de l’app.",
|
||||
"logcat": "Logcat",
|
||||
"logcatDesc": "Désactiver Logcat masque l’entrée Journaux.",
|
||||
"autoCheckUpdate": "Rechercher les mises à jour automatiquement",
|
||||
"checkCertificate": "Vérifier les certificats TLS",
|
||||
"checkCertificateDesc": "Sans vérification TLS, les abonnements et les sauvegardes sont exposés aux attaques de l’homme du milieu.",
|
||||
"accessControl": "Contrôle d’accès",
|
||||
"accessControlDesc": "Le contrôle d’accès choisit les apps qui utilisent le proxy.",
|
||||
"edit": "Modifier",
|
||||
"confirm": "Confirmer",
|
||||
"update": "Mettre à jour",
|
||||
"add": "Ajouter",
|
||||
"save": "Enregistrer",
|
||||
"delete": "Supprimer",
|
||||
"seconds": "secondes",
|
||||
"qrcode": "Code QR",
|
||||
"qrcodeDesc": "Scannez un code QR pour obtenir un profil",
|
||||
"url": "URL",
|
||||
"link": "Lien",
|
||||
"linkDesc": "Obtenir un profil depuis un lien d’abonnement ou un lien de partage de proxy",
|
||||
"file": "Fichier",
|
||||
"fileDesc": "Importer directement un fichier de profil",
|
||||
"name": "Nom",
|
||||
"profileNameNullValidationDesc": "Veuillez saisir le nom du profil",
|
||||
"rename": "Renommer",
|
||||
"profileUrlNullValidationDesc": "Veuillez saisir l’URL du profil",
|
||||
"profileUrlInvalidValidationDesc": "Veuillez saisir une URL de profil valide",
|
||||
"autoUpdate": "Mise à jour automatique",
|
||||
"autoUpdateInterval": "Intervalle de mise à jour automatique",
|
||||
"profileAutoUpdateIntervalNullValidationDesc": "Veuillez saisir l’intervalle de mise à jour automatique",
|
||||
"profileAutoUpdateIntervalInvalidValidationDesc": "Veuillez saisir un intervalle valide",
|
||||
"themeMode": "Mode du thème",
|
||||
"themeColor": "Couleur du thème",
|
||||
"preview": "Aperçu",
|
||||
"auto": "Auto",
|
||||
"light": "Clair",
|
||||
"dark": "Sombre",
|
||||
"importFromLink": "Importer depuis un lien",
|
||||
"submit": "Valider",
|
||||
"createProfileFromUrlTip": "Créer un profil à partir de {url} ?",
|
||||
"create": "Créer",
|
||||
"pleaseUploadValidQrcode": "Veuillez importer un code QR valide",
|
||||
"blacklistMode": "Mode liste noire",
|
||||
"whitelistMode": "Mode liste blanche",
|
||||
"selectAll": "Tout sélectionner",
|
||||
"cancelSelectAll": "Tout désélectionner",
|
||||
"appAccessControl": "Contrôle d’accès des apps",
|
||||
"accessControlAllowDesc": "Seules les apps sélectionnées passent par le VPN",
|
||||
"accessControlNotAllowDesc": "Les apps sélectionnées sont exclues du VPN",
|
||||
"accessControlDisabledDesc": "Le contrôle d’accès des apps est désactivé",
|
||||
"selected": "Sélectionné",
|
||||
"port": "Port",
|
||||
"logLevel": "Niveau de journalisation",
|
||||
"show": "Afficher",
|
||||
"exit": "Quitter",
|
||||
"systemProxy": "Proxy système",
|
||||
"safeMode": "Mode sans échec",
|
||||
"safeModeAppTitle": "{appName} (mode sans échec)",
|
||||
"project": "Projet",
|
||||
"core": "Cœur",
|
||||
"tabAnimation": "Animation des onglets",
|
||||
"desc": "Un client proxy multiplateforme basé sur ClashMeta, simple d’utilisation, open source et sans publicité.",
|
||||
"startVpn": "Démarrage du VPN…",
|
||||
"stopVpn": "Arrêt du VPN…",
|
||||
"localNetworkDeniedTip": "Autorisation du réseau local refusée : la pile gvisor est utilisée, le LAN est inaccessible.",
|
||||
"compatible": "Mode de compatibilité",
|
||||
"notSelectedTip": "Le groupe de proxys actuel n’est pas sélectionnable",
|
||||
"changeProxyFailedTip": "Échec du changement de proxy ; la sélection précédente a été rétablie",
|
||||
"databaseWriteFailedTip": "Échec de l’enregistrement de la modification ; elle a été annulée",
|
||||
"tip": "Astuce",
|
||||
"account": "Compte",
|
||||
"backup": "Sauvegarde",
|
||||
"backupSuccess": "Sauvegarde réussie",
|
||||
"noInfo": "Aucune information",
|
||||
"pleaseBindWebDAV": "Veuillez lier un WebDAV",
|
||||
"bind": "Lier",
|
||||
"connectivity": "Connectivité : ",
|
||||
"webDAVConfiguration": "Configuration WebDAV",
|
||||
"address": "Adresse",
|
||||
"addressHelp": "Adresse du serveur WebDAV",
|
||||
"addressTip": "Veuillez saisir une adresse WebDAV valide",
|
||||
"password": "Mot de passe",
|
||||
"authentication": "Authentification",
|
||||
"authenticationDesc": "L’authentification demande un nom d’utilisateur et un mot de passe sur le port du proxy local.",
|
||||
"authenticationSystemProxyDesc": "Le proxy système n’est pas appliqué tant que l’authentification est activée.",
|
||||
"checkUpdate": "Rechercher des mises à jour",
|
||||
"discoverNewVersion": "Nouvelle version disponible",
|
||||
"checkUpdateError": "L’app est déjà à jour",
|
||||
"goDownload": "Télécharger",
|
||||
"unknown": "Inconnu",
|
||||
"country": "Région",
|
||||
"search": "Rechercher",
|
||||
"allowBypass": "Autoriser les apps à contourner le VPN",
|
||||
"externalController": "Contrôleur externe",
|
||||
"externalControllerDesc": "Le contrôleur externe permet de piloter le cœur via le port 9090.",
|
||||
"externalControllerSecret": "Secret du contrôleur externe",
|
||||
"ipv6Desc": "Le trafic IPv6 n’est reçu que si IPv6 est activé.",
|
||||
"app": "App",
|
||||
"general": "Général",
|
||||
"startupAndBackground": "Démarrage et arrière-plan",
|
||||
"requestsAndUpdates": "Requêtes et mises à jour",
|
||||
"logsAndDiagnostics": "Journaux et diagnostic",
|
||||
"userAgent": "User-Agent",
|
||||
"unifiedDelay": "Délai unifié",
|
||||
"tcpConcurrent": "TCP simultané",
|
||||
"geodataLoader": "Mode Geo à faible mémoire",
|
||||
"requests": "Requêtes",
|
||||
"recentRequests": "Requêtes récentes",
|
||||
"findProcessMode": "Recherche de processus",
|
||||
"init": "Initialisation",
|
||||
"infiniteTime": "N’expire jamais",
|
||||
"connections": "Connexions",
|
||||
"liveConnections": "Connexions en direct",
|
||||
"inbound": "Entrant",
|
||||
"intranetIP": "IP du réseau local",
|
||||
"view": "Afficher",
|
||||
"cut": "Couper",
|
||||
"copy": "Copier",
|
||||
"clipboardWriteFailed": "Impossible de copier dans le presse-papiers. La sélection est peut-être trop volumineuse",
|
||||
"paste": "Coller",
|
||||
"testUrl": "URL de test",
|
||||
"sync": "Synchroniser",
|
||||
"exclude": "Masquer des tâches récentes",
|
||||
"compact": "Compact",
|
||||
"tab": "Onglet",
|
||||
"list": "Liste",
|
||||
"delay": "Délai",
|
||||
"style": "Style",
|
||||
"size": "Taille",
|
||||
"sort": "Trier",
|
||||
"columns": "Colonnes",
|
||||
"proxyGroup": "Groupe de proxys",
|
||||
"go": "Aller",
|
||||
"externalLink": "Lien externe",
|
||||
"otherContributors": "Autres contributeurs",
|
||||
"appIconDesign": "Conception de l’icône de l’app",
|
||||
"autoCloseConnections": "Fermer les connexions automatiquement",
|
||||
"autoCloseConnectionsDesc": "La fermeture automatique coupe les connexions ouvertes lorsque vous changez de proxy.",
|
||||
"onlyStatisticsProxy": "Ne compter que le trafic proxy",
|
||||
"showNotificationStopAction": "Bouton Arrêter dans la notification",
|
||||
"pureBlackMode": "Mode noir pur",
|
||||
"sidebarBlur": "Flou de la barre latérale",
|
||||
"sidebarBlurDesc": "Afficher le bureau flouté derrière la fenêtre à travers la barre latérale",
|
||||
"liquidGlass": "Liquid Glass",
|
||||
"keepAliveIntervalDesc": "Intervalle keep-alive TCP",
|
||||
"entries": " entrées",
|
||||
"local": "Local",
|
||||
"remote": "Distant",
|
||||
"mode": "Mode",
|
||||
"time": "Heure",
|
||||
"source": "Source",
|
||||
"action": "Action",
|
||||
"intelligentSelected": "Sélection intelligente",
|
||||
"clipboardImport": "Importer depuis le presse-papiers",
|
||||
"clipboardExport": "Exporter vers le presse-papiers",
|
||||
"layout": "Disposition",
|
||||
"tight": "Serrée",
|
||||
"standard": "Standard",
|
||||
"ultra": "Ultra",
|
||||
"loose": "Aérée",
|
||||
"profilesSort": "Trier les profils",
|
||||
"start": "Démarrer",
|
||||
"runTime": "Durée d’exécution",
|
||||
"stop": "Arrêter",
|
||||
"key": "Clé",
|
||||
"value": "Valeur",
|
||||
"vpnEnableDesc": "Le VPN fait passer automatiquement tout le trafic du système par VpnService.",
|
||||
"options": "Options",
|
||||
"enabled": "Activé",
|
||||
"disabled": "Désactivé",
|
||||
"loopback": "Exemption de bouclage UWP",
|
||||
"providers": "Ressources externes",
|
||||
"proxyProviders": "Fournisseurs de proxys",
|
||||
"ruleProviders": "Fournisseurs de règles",
|
||||
"providerUrlTip": "Seuls les fournisseurs distants sont pris en charge",
|
||||
"ruleSetEmptyTip": "Le jeu de règles ne contient aucune entrée exploitable",
|
||||
"ruleSetMixedTip": "Le jeu de règles mélange des domaines et des plages d’IP : son type est indéterminable",
|
||||
"ruleSetInvalidTip": "Ce fichier mrs est illisible",
|
||||
"subscriptionInfo": "Infos d’abonnement",
|
||||
"ntpStatusDesc": "NTP récupère l’heure auprès d’un serveur NTP au lieu de l’horloge système.",
|
||||
"server": "Serveur",
|
||||
"ntpInterval": "Intervalle de synchronisation (minutes)",
|
||||
"dialerProxy": "Proxy de connexion",
|
||||
"dialerProxyDesc": "Le proxy de connexion est la sortie utilisée pour joindre le serveur NTP.",
|
||||
"writeToSystem": "Écrire dans le système",
|
||||
"writeToSystemDesc": "Écrire dans le système règle aussi l’horloge système ; Android l’ignore.",
|
||||
"sniffer": "Sniffer",
|
||||
"snifferStatusDesc": "Le sniffer lit le domaine dans le trafic TLS, HTTP et QUIC afin que les règles puissent le reconnaître.",
|
||||
"overrideDestination": "Remplacer la destination",
|
||||
"overrideDestinationDesc": "Remplacer la destination se connecte au domaine détecté plutôt qu’à l’adresse d’origine.",
|
||||
"forceDnsMapping": "Forcer le mappage DNS",
|
||||
"forceDnsMappingDesc": "Forcer le mappage DNS analyse aussi les connexions dont le domaine provient d’un mappage DNS.",
|
||||
"parsePureIp": "Analyser les IP seules",
|
||||
"parsePureIpDesc": "Analyser les IP seules inspecte les connexions qui ne portent qu’une adresse IP.",
|
||||
"forceDomain": "Domaines forcés",
|
||||
"forceDomainDesc": "Les domaines forcés sont aussi analysés ; les autres connexions qui ont déjà un domaine sont laissées telles quelles.",
|
||||
"skipDomain": "Domaines ignorés",
|
||||
"skipDomainDesc": "Un domaine détecté figurant dans la liste des domaines ignorés n’est pas utilisé.",
|
||||
"skipSrcAddress": "Adresses sources ignorées",
|
||||
"skipDstAddress": "Adresses de destination ignorées",
|
||||
"sniffProtocols": "Protocoles",
|
||||
"ports": "Ports",
|
||||
"overrideEntries": "Entrées de remplacement",
|
||||
"addOverrideEntry": "Ajouter une entrée de remplacement",
|
||||
"dnsOverrideDesc": "Les entrées ajoutées ici remplacent le DNS de tous les profils URL et fichier ; tout ce qui n’est pas ajouté garde le réglage du profil. Les profils personnalisés définissent leur DNS dans leur contenu.",
|
||||
"settingEntries": "réglages",
|
||||
"addSettingEntry": "Ajouter un réglage",
|
||||
"profileSettingsDesc": "S’applique uniquement à ce profil ; tout ce qui n’est pas ajouté utilise la valeur par défaut.",
|
||||
"healthCheck": "Contrôle d’état",
|
||||
"discardChanges": "Abandonner les modifications ?",
|
||||
"quickEdit": "Modification rapide",
|
||||
"status": "État",
|
||||
"statusDesc": "Si DNS est désactivé, le DNS du système est utilisé.",
|
||||
"respectRules": "Respecter les règles",
|
||||
"respectRulesDesc": "Respecter les règles fait passer les connexions DNS selon les règles et nécessite un Proxy Server Nameserver.",
|
||||
"dnsMode": "Mode DNS",
|
||||
"fakeipRange": "Plage Fake-IP",
|
||||
"fakeipFilter": "Filtre Fake-IP",
|
||||
"useHosts": "Utiliser hosts",
|
||||
"useSystemHosts": "Utiliser les hosts du système",
|
||||
"fallbackFilter": "Filtre de repli",
|
||||
"domain": "Domaine",
|
||||
"listenRoutingMark": "Marque de routage d’écoute",
|
||||
"listenRoutingMarkDesc": "La marque de routage d’écoute ne fonctionne que sous Linux.",
|
||||
"ipv6Timeout": "Délai d’expiration IPv6 (ms)",
|
||||
"cacheAlgorithm": "Algorithme de cache",
|
||||
"cacheMaxSize": "Taille du cache",
|
||||
"fakeipRange6": "Plage Fake-IP (IPv6)",
|
||||
"fakeipFilterMode": "Mode du filtre Fake-IP",
|
||||
"fakeipFilterModeDesc": "En mode filtre Fake-IP, la liste noire exclut les correspondances, la liste blanche ne falsifie que les correspondances, et « rule » les traite comme des règles.",
|
||||
"fakeipTtl": "TTL Fake-IP",
|
||||
"reset": "Réinitialiser",
|
||||
"actionView": "Afficher/Masquer",
|
||||
"actionStart": "Démarrer/Arrêter",
|
||||
"actionMode": "Changer de mode",
|
||||
"actionProxy": "Proxy système",
|
||||
"actionTun": "TUN",
|
||||
"actionRuleMode": "Mode règles",
|
||||
"actionGlobalMode": "Mode global",
|
||||
"actionDirectMode": "Mode direct",
|
||||
"actionDelayTest": "Tester tous les délais",
|
||||
"actionUpdateProfiles": "Mettre à jour les profils",
|
||||
"disclaimer": "Avertissement",
|
||||
"disclaimerDesc": "Avant d’utiliser FlClash (« le Logiciel »), veuillez lire attentivement cette déclaration et vous assurer de l’avoir comprise dans son intégralité. Appuyer sur « Accepter » signifie que vous avez lu, compris et accepté chacune des conditions ci-dessous. Si vous n’êtes pas d’accord, appuyez sur « Quitter » et cessez d’utiliser le Logiciel.",
|
||||
"disclaimerSoftwareTitle": "Nature du logiciel",
|
||||
"disclaimerSoftwareContent": "Le Logiciel est un client proxy réseau open source construit sur le cœur Clash.Meta (mihomo). Il se limite à fournir des outils locaux tels que la gestion de la configuration, le routage par règles et le transfert du trafic.",
|
||||
"disclaimerNoServiceStatement": "Le Logiciel ne fournit lui-même aucun serveur proxy, nœud, abonnement ni service d’accès au réseau, et n’a aucun partenariat, mandat ni lien de garantie avec un quelconque fournisseur de tels services.",
|
||||
"disclaimerUsageTitle": "Restrictions d’utilisation",
|
||||
"disclaimerUsageContent": "Le Logiciel est destiné uniquement à des usages non commerciaux tels que l’apprentissage, les échanges et la recherche technique. Toute utilisation à des fins commerciales est strictement interdite, y compris, sans s’y limiter, la distribution payante, la vente groupée, l’intégration à un service commercial ou l’exercice d’une activité au nom du Logiciel. Toute activité commerciale est étrangère au Logiciel et à ses développeurs.\n\nIl est strictement interdit d’utiliser le Logiciel à des fins contraires aux lois et règlements de votre pays ou de votre région, y compris, sans s’y limiter, le contournement de restrictions d’accès au réseau légalement imposées, la diffusion de contenus illicites, le lancement d’attaques réseau ou l’atteinte aux droits légitimes d’autrui.",
|
||||
"disclaimerResponsibilityTitle": "Votre responsabilité",
|
||||
"disclaimerResponsibilityContent": "Il vous incombe de vous assurer que l’utilisation du Logiciel est licite là où vous vivez, et vous assumez seul la responsabilité juridique de tout ce que vous faites avec lui et de ses conséquences.\n\nLes abonnements, nœuds et configurations que vous importez relèvent de votre choix. La licéité de leur source, la sécurité de leur contenu et la fiabilité de leur service sont une affaire entre vous et leurs fournisseurs.",
|
||||
"disclaimerThirdPartyTitle": "Contenus tiers",
|
||||
"disclaimerThirdPartyContent": "Les liens d’abonnement, fichiers de configuration, jeux de règles, scripts, ressources externes et liens externes sont tous fournis par des tiers. Les développeurs ne peuvent ni ne vont vérifier ou garantir leur légalité, leur exactitude, leur sécurité ou leur disponibilité.\n\nTout vol de données, perte financière, bannissement de compte ou autre dommage causé par un contenu tiers se règle entre vous et le tiers concerné ; les développeurs n’en assument aucune responsabilité.",
|
||||
"disclaimerWarrantyTitle": "Absence de garantie",
|
||||
"disclaimerWarrantyContent": "Le Logiciel est fourni « tel quel » et « selon disponibilité », sans garantie d’aucune sorte, expresse ou implicite, y compris, sans s’y limiter, les garanties de qualité marchande, d’adéquation à un usage particulier, d’absence de contrefaçon, de disponibilité ininterrompue, d’absence d’erreurs ou d’absence de failles de sécurité.\n\nLes développeurs ne garantissent pas que le Logiciel répondra à vos besoins ni qu’il fonctionnera sans interruption ni erreur.",
|
||||
"disclaimerLiabilityTitle": "Limitation de responsabilité",
|
||||
"disclaimerLiabilityContent": "Dans toute la mesure permise par la loi applicable, ni les développeurs ni aucun contributeur ne sauraient être tenus responsables de dommages directs, indirects, accessoires, spéciaux, punitifs ou consécutifs résultant de l’utilisation ou de l’impossibilité d’utiliser le Logiciel, y compris, sans s’y limiter, la perte de données, les dommages matériels, les pannes réseau, l’interruption d’activité, le manque à gagner ou tout litige qui en découlerait, même s’ils ont été avertis de la possibilité de tels dommages.",
|
||||
"disclaimerPrivacyTitle": "Collecte de données et confidentialité",
|
||||
"disclaimerPrivacyContent": "Le Logiciel ne collecte ni ne transmet vos URL d’abonnement, détails de nœuds, contenus de configuration, sites visités, historiques de connexion, contenus de trafic ou journaux. Ces données restent sur votre appareil et les développeurs n’y ont pas accès.\n\nLe Logiciel n’accède au réseau que lorsque vous utilisez une fonction qui en a besoin, par exemple pour récupérer l’URL d’abonnement que vous avez fournie lors de la mise à jour d’un profil, ou pour contacter GitHub lors de la recherche de mises à jour.\n\nLe Logiciel n’inclut aucun service d’analyse ni de rapport de plantage, sur aucune plateforme.",
|
||||
"disclaimerLicenseTitle": "Licence open source",
|
||||
"disclaimerLicenseContent": "Le Logiciel est open source sous licence GPL-3.0. Vous pouvez l’utiliser, le modifier et le distribuer librement tant que vous respectez cette licence, qui exige que les œuvres dérivées soient elles aussi publiées sous GPL-3.0 et que les mentions de droit d’auteur d’origine soient conservées.\n\nLes composants tiers du Logiciel, dont le cœur Clash.Meta, suivent leurs propres licences. Les auteurs d’origine ne sont pas responsables des problèmes liés aux versions modifiées ou redistribuées.",
|
||||
"disclaimerChangesTitle": "Modifications de cette déclaration",
|
||||
"disclaimerChangesContent": "Les développeurs peuvent réviser cette déclaration à chaque version, et la révision prend effet à la publication de cette version. Continuer à utiliser le Logiciel après une mise à jour signifie que vous acceptez la déclaration révisée.",
|
||||
"disclaimerAcceptTitle": "Acceptation",
|
||||
"disclaimerAcceptContent": "En installant, copiant ou utilisant le Logiciel, vous êtes réputé avoir lu et accepté l’intégralité de cette déclaration. Si vous n’êtes pas d’accord avec l’une de ses conditions, cessez immédiatement d’utiliser le Logiciel et désinstallez-le.",
|
||||
"disclaimerRestateTitle": "Recopier la déclaration",
|
||||
"disclaimerRestateTip": "Pour confirmer que vous avez compris, saisissez la déclaration suivante en entier dans le champ ci-dessous :",
|
||||
"disclaimerRestateHint": "Saisissez la déclaration ci-dessus",
|
||||
"disclaimerRestateMismatch": "Ne correspond pas à la déclaration",
|
||||
"disclaimerAcknowledgeTitle": "Confirmer la déclaration",
|
||||
"disclaimerAcknowledgeTip": "Pour confirmer que vous avez compris, lisez la déclaration suivante et cochez la case ci-dessous :",
|
||||
"disclaimerAcknowledgeLabel": "J'ai lu et compris cette déclaration",
|
||||
"agree": "Accepter",
|
||||
"hotkeyManagement": "Gestion des raccourcis",
|
||||
"hotkeyDesc": "Les raccourcis globaux fonctionnent même lorsque la fenêtre est masquée. Appuyez sur une action pour enregistrer sa combinaison de touches.",
|
||||
"hotkeyNotSet": "Non défini",
|
||||
"pressKeyboard": "Appuyez sur une combinaison de touches",
|
||||
"hotkeyNeedsModifier": "Incluez au moins l’une de ces touches : {modifiers}",
|
||||
"hotkeyConflictWith": "Déjà utilisé par « {action} ». L’enregistrer le déplace ici.",
|
||||
"hotkeyUnavailable": "Non enregistré, il est peut-être pris par une autre app",
|
||||
"remove": "Retirer",
|
||||
"noNetwork": "Aucun réseau",
|
||||
"ipv6InboundDesc": "Avec IPv6 activé, le VPN autorise le trafic IPv6 entrant.",
|
||||
"exportLogs": "Exporter les journaux",
|
||||
"exportSuccess": "Exportation réussie",
|
||||
"iconStyle": "Style des icônes",
|
||||
"iconStyleFilled": "Pleines",
|
||||
"iconStylePlain": "Simples",
|
||||
"iconStyleHidden": "Masquées",
|
||||
"filter": "Filtrer",
|
||||
"hideTimeoutProxies": "Masquer les proxys expirés",
|
||||
"hideTimeoutProxiesDesc": "Ignorer les proxys dont le dernier test de délai a expiré",
|
||||
"stackMode": "Mode de pile",
|
||||
"network": "Réseau",
|
||||
"bypassDomain": "Domaines contournés",
|
||||
"bypassDomainDesc": "Les domaines contournés ne s’appliquent que si le proxy système est activé.",
|
||||
"resetTip": "Voulez-vous vraiment réinitialiser ?",
|
||||
"icon": "Icône",
|
||||
"noData": "Aucune donnée",
|
||||
"fontFamily": "Police",
|
||||
"installedFonts": "Polices installées",
|
||||
"toggle": "Basculer",
|
||||
"system": "Système",
|
||||
"routeAddress": "Adresses de route",
|
||||
"interfaceNameMode": "Interface sortante",
|
||||
"interfaceNameModeClear": "Aucune",
|
||||
"interfaceNameModeFollow": "Suivre la configuration",
|
||||
"interfaceNameModeCustom": "Personnalisée",
|
||||
"interfaceName": "Nom de l’interface",
|
||||
"interfaceNameDesc": "Le nom de l’interface est l’interface réseau utilisée par les connexions sortantes.",
|
||||
"copyEnvVar": "Copier les variables d’environnement",
|
||||
"memoryInfo": "Infos mémoire",
|
||||
"total": "Total",
|
||||
"releaseMemory": "Libérer la mémoire",
|
||||
"memoryCoreHeapInuse": "Tas utilisé",
|
||||
"memoryCoreHeapIdle": "Tas inactif",
|
||||
"memoryCoreStack": "Piles de goroutines",
|
||||
"memoryCoreRuntime": "Surcharge du runtime",
|
||||
"memoryCoreNotRunning": "Le cœur n’est pas en cours d’exécution",
|
||||
"memoryAppResident": "Mémoire résidente",
|
||||
"memoryAppShared": "App et partagée",
|
||||
"memoryEstimateDesc": "Estimation d’après la mémoire résidente du processus ; elle peut différer de ce qu’indique le système.",
|
||||
"memoryEstimateSharedDesc": "Le cœur s’exécute dans le processus de l’app. Sa part est estimée à partir des statistiques du runtime, et le reste compte comme mémoire de l’app et partagée.",
|
||||
"memoryReleased": "Mémoire libérée",
|
||||
"memoryReleasedSize": "{size} libérés",
|
||||
"releaseMemoryFailed": "Échec de la libération de la mémoire",
|
||||
"cancel": "Annuler",
|
||||
"fileIsUpdate": "Le fichier a été modifié. Enregistrer les modifications ?",
|
||||
"profileHasUpdate": "Le profil a été modifié. Désactiver la mise à jour automatique ?",
|
||||
"hasCacheChange": "Mettre les modifications en cache ?",
|
||||
"copySuccess": "Copié avec succès",
|
||||
"copyLink": "Copier le lien",
|
||||
"exportFile": "Exporter le fichier",
|
||||
"cacheCorrupt": "Le cache est corrompu. Le vider ?",
|
||||
"detectionTip": "Repose sur une API tierce ; à titre indicatif uniquement",
|
||||
"listen": "Écoute",
|
||||
"undo": "Annuler",
|
||||
"redo": "Rétablir",
|
||||
"lineWrap": "Retour à la ligne",
|
||||
"none": "Aucun",
|
||||
"advancedConfig": "Configuration avancée",
|
||||
"advancedConfigDesc": "La configuration avancée regroupe le réseau, le DNS, les règles ajoutées et les scripts.",
|
||||
"addRule": "Ajouter une règle",
|
||||
"content": "Contenu",
|
||||
"ruleTarget": "Cible de la règle",
|
||||
"matchTarget": "MATCH-TARGET",
|
||||
"followProfile": "Suivre le profil",
|
||||
"sourceIp": "IP source",
|
||||
"noResolve": "Ne pas résoudre l’IP",
|
||||
"saveChanges": "Enregistrer les modifications ?",
|
||||
"cannotSave": "Enregistrement impossible",
|
||||
"navigationBarStyle": "Barre inférieure",
|
||||
"floating": "Flottante",
|
||||
"docked": "Ancrée",
|
||||
"slide": "Glissement",
|
||||
"fade": "Fondu",
|
||||
"pureBlack": "Noir pur",
|
||||
"customColor": "Couleur personnalisée",
|
||||
"colorStyle": "Style de couleur",
|
||||
"grid": "Grille",
|
||||
"spectrum": "Spectre",
|
||||
"sliders": "Curseurs",
|
||||
"hue": "Teinte",
|
||||
"saturation": "Saturation",
|
||||
"brightness": "Luminosité",
|
||||
"hex": "Hex",
|
||||
"monochromeScheme": "Monochrome",
|
||||
"vividStyle": "Vif",
|
||||
"tintedStyle": "Teinté",
|
||||
"softStyle": "Doux",
|
||||
"developerMode": "Mode développeur",
|
||||
"developerModeEnableTip": "Le mode développeur est activé.",
|
||||
"messageTest": "Test de message",
|
||||
"messageTestTip": "Ceci est un message.",
|
||||
"crashTest": "Test de plantage",
|
||||
"crashDetected": "Plantage détecté",
|
||||
"crashDetectedTip": "L’app n’a pas réussi à finir de démarrer deux fois de suite. Pour sortir de cette boucle, le profil {name} a été désélectionné et la configuration automatique a été ignorée. Vous pouvez le sélectionner de nouveau à tout moment.",
|
||||
"launchInterrupted": "Démarrage inachevé",
|
||||
"launchInterruptedTip": "L’app s’est arrêtée de façon inattendue lors de son dernier démarrage. La configuration automatique a été ignorée pour ce lancement ; vous pouvez la démarrer manuellement pour réessayer.",
|
||||
"clearData": "Effacer les données",
|
||||
"textScale": "Taille du texte",
|
||||
"textScalePreview": "Le texte de l’app ressemblera à ceci",
|
||||
"followSystem": "Suivre le système",
|
||||
"internet": "Internet",
|
||||
"systemApp": "Apps système",
|
||||
"noNetworkApp": "Apps sans réseau",
|
||||
"restoreStrategy": "Stratégie de restauration",
|
||||
"restoreStrategyOverride": "Écraser",
|
||||
"restoreStrategyCompatible": "Compatible",
|
||||
"logsTest": "Test des journaux",
|
||||
"emptyTip": "{label} ne peut pas être vide",
|
||||
"urlTip": "{label} doit être une URL",
|
||||
"invalidLinkTip": "Ce n’est ni un lien d’abonnement ni un lien de partage de proxy",
|
||||
"numberTip": "{label} doit être un nombre",
|
||||
"numberRangeTip": "{label} doit être compris entre {min} et {max}",
|
||||
"interval": "Intervalle",
|
||||
"existsTip": "{label} existe déjà",
|
||||
"maxLengthTip": "{label} ne doit pas dépasser {max} caractères",
|
||||
"singleAdd": "Ajout unique",
|
||||
"batchAdd": "Ajout groupé",
|
||||
"batchListInputTip": "Un élément par ligne, ou séparés par des virgules",
|
||||
"batchMapInputTip": "Une entrée par ligne : la clé, un espace, puis la valeur",
|
||||
"singleImport": "Importation unique",
|
||||
"batchImport": "Importation groupée",
|
||||
"batchUrlInputTip": "Une URL par ligne",
|
||||
"batchLinkInputTip": "Un lien par ligne",
|
||||
"batchPreviewTip": "{count} à ajouter, {skipped} ignorés car déjà présents",
|
||||
"lineIssueTip": "Ligne {line} : {message}",
|
||||
"singleValueTip": "{label} doit être un seul élément",
|
||||
"deleteTip": "Voulez-vous vraiment supprimer cet élément ({label}) ?",
|
||||
"deleteMultipTip": "Voulez-vous vraiment supprimer les éléments sélectionnés ({label}) ?",
|
||||
"nullTip": "Aucun élément ({label}) pour le moment",
|
||||
"script": "Script",
|
||||
"color": "Couleur",
|
||||
"unnamed": "Sans nom",
|
||||
"pleaseEnterScriptName": "Veuillez saisir un nom de script",
|
||||
"mixedPort": "Port mixte",
|
||||
"socksPort": "Port SOCKS",
|
||||
"redirPort": "Port Redir",
|
||||
"tproxyPort": "Port TProxy",
|
||||
"portTip": "{label} doit être compris entre 1024 et 49151",
|
||||
"portConflictTip": "Veuillez saisir un autre port",
|
||||
"import": "Importer",
|
||||
"importFile": "Importer depuis un fichier",
|
||||
"importUrl": "Importer depuis une URL",
|
||||
"startFromScratch": "Partir de zéro",
|
||||
"autoSetSystemDns": "Définir automatiquement le DNS du système",
|
||||
"details": "Détails de {label}",
|
||||
"creationTime": "Date de création",
|
||||
"process": "Processus",
|
||||
"host": "Hôte",
|
||||
"destination": "Destination",
|
||||
"destinationGeoIP": "GeoIP de destination",
|
||||
"destinationIPASN": "ASN de l’IP de destination",
|
||||
"specialProxy": "Proxy spécial",
|
||||
"specialRules": "Règles spéciales",
|
||||
"remoteDestination": "Destination distante",
|
||||
"networkType": "Type de réseau",
|
||||
"proxyChains": "Chaîne de proxys",
|
||||
"log": "Journal",
|
||||
"connection": "Connexion",
|
||||
"request": "Requête",
|
||||
"connected": "Connecté",
|
||||
"disconnected": "Déconnecté",
|
||||
"connecting": "Connexion…",
|
||||
"restartCoreTip": "Voulez-vous vraiment redémarrer le cœur ?",
|
||||
"forceRestartCoreTip": "Voulez-vous vraiment forcer le redémarrage du cœur ?",
|
||||
"dnsHijacking": "Détournement DNS",
|
||||
"coreStatus": "État du cœur",
|
||||
"appendSystemDns": "Ajouter le DNS du système",
|
||||
"editRule": "Modifier la règle",
|
||||
"extendMode": "Mode d’extension",
|
||||
"standardModeDesc": "Mode standard : ajoute des règles par-dessus le profil",
|
||||
"scriptModeDesc": "Mode script : réécrit tout le profil avec un script d’extension",
|
||||
"addedRules": "Règles ajoutées",
|
||||
"controlGlobalAddedRules": "Gérer les règles ajoutées globales",
|
||||
"quickActions": "Actions rapides",
|
||||
"rulePresetBlockQuic": "Bloquer QUIC",
|
||||
"rulePresetBlockStun": "Bloquer STUN",
|
||||
"rulePresetBlockDot": "Bloquer DNS over TLS",
|
||||
"rulePresetBlockLoopback": "Bloquer le bouclage du proxy",
|
||||
"rulePresetSystemServicesDirect": "Apple et Microsoft en direct",
|
||||
"rulePresetBittorrentDirect": "BitTorrent en direct",
|
||||
"rulePresetLanDirect": "LAN en direct",
|
||||
"extendScript": "Script d’extension",
|
||||
"goToConfigureScript": "Aller à la configuration du script",
|
||||
"goToConfigureAddedRules": "Aller à la configuration des règles ajoutées",
|
||||
"editGlobalRules": "Modifier les règles globales",
|
||||
"confirmForceCrashCore": "Voulez-vous vraiment forcer le plantage du cœur ?",
|
||||
"confirmClearAllData": "Voulez-vous vraiment effacer toutes les données ?",
|
||||
"loading": "Chargement…",
|
||||
"yearsAgo": "{count, plural, =1{il y a 1 an} other{il y a {count} ans}}",
|
||||
"monthsAgo": "{count, plural, =1{il y a 1 mois} other{il y a {count} mois}}",
|
||||
"daysAgo": "{count, plural, =1{il y a 1 jour} other{il y a {count} jours}}",
|
||||
"hoursAgo": "{count, plural, =1{il y a 1 heure} other{il y a {count} heures}}",
|
||||
"minutesAgo": "{count, plural, =1{il y a 1 minute} other{il y a {count} minutes}}",
|
||||
"justNow": "À l’instant",
|
||||
"yearsAgoShort": "{count, plural, other{il y a {count} a}}",
|
||||
"monthsAgoShort": "{count, plural, other{il y a {count} m}}",
|
||||
"daysAgoShort": "{count, plural, other{il y a {count} j}}",
|
||||
"hoursAgoShort": "{count, plural, other{il y a {count} h}}",
|
||||
"minutesAgoShort": "{count, plural, other{il y a {count} min}}",
|
||||
"noLongerRemind": "Ne plus me le rappeler",
|
||||
"accessControlSettings": "Réglages du contrôle d’accès",
|
||||
"turnOn": "Activer",
|
||||
"turnOff": "Désactiver",
|
||||
"vpnConfigChangeDetected": "Modification de la configuration liée au VPN détectée",
|
||||
"restart": "Redémarrer",
|
||||
"speedStatistics": "Statistiques de débit",
|
||||
"resetPageChangesTip": "Cette page contient des modifications. Voulez-vous vraiment réinitialiser ?",
|
||||
"customProfile": "Personnalisé",
|
||||
"customProfileDesc": "Assembler des groupes de proxys et des règles à partir des proxys de l’app et d’autres profils",
|
||||
"customProfileResources": "Ressources des profils personnalisés",
|
||||
"customProfileResourcesDesc": "Les ressources des profils personnalisés regroupent des proxys, des fournisseurs de règles, des filtres et des jeux d’icônes.",
|
||||
"unknownNetworkError": "Erreur réseau inconnue",
|
||||
"backupFromNewerVersion": "Cette sauvegarde provient d’une version plus récente de l’app. Mettez l’app à jour avant de la restaurer",
|
||||
"networkTimeoutError": "La requête a expiré. Vérifiez votre réseau ou votre proxy, puis réessayez",
|
||||
"networkHostLookupError": "Impossible de résoudre l’adresse du serveur. Vérifiez que l’URL est correcte et que le DNS fonctionne",
|
||||
"networkConnectionError": "Impossible de se connecter au serveur. Vérifiez votre connexion réseau ou vos réglages de proxy",
|
||||
"networkTlsError": "Échec de la connexion sécurisée. Le certificat du serveur est peut-être invalide, ou la connexion est interceptée",
|
||||
"networkCancelledError": "La requête a été annulée",
|
||||
"networkAccessDeniedError": "Le serveur a refusé l’accès (HTTP {code}). Le lien a peut-être expiré, ou les identifiants sont incorrects",
|
||||
"networkNotFoundError": "Rien n’a été trouvé à cette adresse (HTTP {code}). Vérifiez que l’URL est correcte",
|
||||
"networkRateLimitedError": "Trop de requêtes (HTTP 429). Patientez un instant puis réessayez",
|
||||
"networkServerError": "Le serveur a rencontré un problème (HTTP {code}). Réessayez plus tard",
|
||||
"networkBadResponseError": "Le serveur a rejeté la requête (HTTP {code})",
|
||||
"networkRequestFailed": "Échec de la requête réseau : {detail}",
|
||||
"invalidBackupFile": "Fichier de sauvegarde non valide",
|
||||
"pruneCache": "Nettoyer le cache",
|
||||
"backupAndRestore": "Sauvegarde et restauration",
|
||||
"restore": "Restaurer",
|
||||
"restoreSuccess": "Restauration réussie",
|
||||
"restoreOnlyConfig": "Restaurer uniquement les profils",
|
||||
"restoreAllData": "Restaurer toutes les données",
|
||||
"addProfile": "Ajouter un profil",
|
||||
"delayTest": "Test de délai",
|
||||
"proxyGroupEmpty": "Le groupe de proxys est vide",
|
||||
"confirmExitWindow": "Voulez-vous vraiment quitter la fenêtre actuelle ?",
|
||||
"optional": "Facultatif",
|
||||
"maxFailedTimes": "Échecs maximum",
|
||||
"testInterval": "Intervalle de test",
|
||||
"excludeFilter": "Filtre d’exclusion",
|
||||
"expectedStatus": "Statut attendu",
|
||||
"strategy": "Stratégie",
|
||||
"tolerance": "Tolérance",
|
||||
"inputProxyGroupName": "Saisissez le nom du groupe de proxys",
|
||||
"helperCorruptTip": "Service Helper indisponible ; le mode TUN ne peut pas être activé. Réinstallez FlClash pour le rétablir.",
|
||||
"tunAuthorizationFailed": "TUN n’a pas pu être autorisé et a donc été désactivé.",
|
||||
"sudoPasswordTitle": "Saisissez votre mot de passe pour sudo",
|
||||
"coreBlockedByPolicyTip": "Windows a refusé d’exécuter FlClashCore.exe (erreur {code}). Une stratégie de contrôle des applications, telle que Smart App Control ou AppLocker, bloque les programmes non signés ; autorisez FlClash dans cette stratégie ou désactivez-la, puis réessayez.",
|
||||
"coreBlockedBySmartAppControlTip": "Windows Smart App Control a bloqué FlClashCore.exe car il n’est pas signé. Ouvrez Sécurité Windows → Contrôle des applications et du navigateur → Paramètres de Smart App Control, choisissez Désactivé, puis relancez FlClash. Smart App Control ne peut pas être réactivé sans réinstaller Windows.",
|
||||
"hideFromList": "Masquer de la liste",
|
||||
"testWhenUsed": "Tester à l’utilisation",
|
||||
"disableUDP": "Désactiver UDP",
|
||||
"confirmDeleteProxyGroup": "Voulez-vous vraiment supprimer ce groupe de proxys ?",
|
||||
"ruleEmpty": "La règle est vide",
|
||||
"inputRuleContent": "Saisissez le contenu de la règle",
|
||||
"ruleSet": "Jeu de règles",
|
||||
"selectRuleSet": "Veuillez sélectionner un jeu de règles",
|
||||
"splitStrategy": "Stratégie de répartition",
|
||||
"selectSplitStrategy": "Veuillez sélectionner une stratégie de répartition",
|
||||
"noResolveHostname": "Ne pas résoudre le nom d’hôte",
|
||||
"matchSourceIp": "Faire correspondre l’IP source",
|
||||
"basicInfo": "Infos de base",
|
||||
"additionalParameters": "Paramètres supplémentaires",
|
||||
"proxyType": "Type de proxy",
|
||||
"basicStrategy": "Stratégies de base",
|
||||
"editProxy": "Modifier le proxy",
|
||||
"addNodes": "Ajouter des nœuds",
|
||||
"addProxyGroup": "Ajouter un groupe de proxys",
|
||||
"editProxyGroup": "Modifier le groupe de proxys",
|
||||
"iconUrl": "URL de l’icône",
|
||||
"iconRecords": "Historique des icônes",
|
||||
"custom": "Personnalisé",
|
||||
"ruleActionDomainDesc": "Correspond au domaine complet",
|
||||
"ruleActionDomainSuffixDesc": "Correspond à un suffixe de domaine",
|
||||
"ruleActionDomainKeywordDesc": "Correspond à un mot-clé de domaine",
|
||||
"ruleActionDomainRegexDesc": "Correspond à une regex de domaine",
|
||||
"ruleActionDomainWildcardDesc": "Correspondance par caractères génériques ; seuls * et ? sont pris en charge",
|
||||
"ruleActionGeositeDesc": "Correspond aux domaines de Geosite",
|
||||
"ruleActionIpCidrDesc": "Correspond à une plage d’adresses IP",
|
||||
"ruleActionIpCidr6Desc": "Correspond à une plage d’adresses IP ; IP-CIDR6 n’est qu’un alias",
|
||||
"ruleActionIpSuffixDesc": "Correspond à une plage de suffixes d’IP",
|
||||
"ruleActionIpAsnDesc": "Correspond à l’ASN de l’IP",
|
||||
"ruleActionGeoipDesc": "Correspond au code pays de l’IP",
|
||||
"ruleActionSrcGeoipDesc": "Correspond au code pays de l’IP source",
|
||||
"ruleActionSrcIpAsnDesc": "Correspond à l’ASN de l’IP source",
|
||||
"ruleActionSrcIpCidrDesc": "Correspond à une plage d’adresses IP source",
|
||||
"ruleActionSrcIpSuffixDesc": "Correspond à une plage de suffixes d’IP source",
|
||||
"ruleActionDstPortDesc": "Correspond à la plage de ports de destination",
|
||||
"ruleActionSrcPortDesc": "Correspond à la plage de ports source",
|
||||
"ruleActionInPortDesc": "Correspond au port entrant",
|
||||
"ruleActionInTypeDesc": "Correspond au type entrant",
|
||||
"ruleActionInUserDesc": "Correspond au nom d’utilisateur entrant ; séparez plusieurs noms par /",
|
||||
"ruleActionInNameDesc": "Correspond au nom entrant",
|
||||
"ruleActionRematchNameDesc": "Correspond au nom de rematch ; séparez plusieurs noms par /",
|
||||
"ruleActionProcessPathDesc": "Correspond au chemin complet du processus",
|
||||
"ruleActionProcessPathRegexDesc": "Correspond par regex au chemin du processus",
|
||||
"ruleActionProcessPathWildcardDesc": "Correspond par caractères génériques au chemin du processus ; seuls * et ? sont pris en charge",
|
||||
"ruleActionProcessNameDesc": "Correspond au nom du processus ; correspond au nom du paquet sur Android",
|
||||
"ruleActionProcessNameRegexDesc": "Correspond par regex au nom du processus ; correspond au nom du paquet sur Android",
|
||||
"ruleActionProcessNameWildcardDesc": "Correspond par caractères génériques au nom du processus ; seuls * et ? sont pris en charge",
|
||||
"ruleActionUidDesc": "Correspond à l’ID d’utilisateur Linux",
|
||||
"ruleActionNetworkDesc": "Correspond à TCP ou UDP",
|
||||
"ruleActionDscpDesc": "Correspond à la marque DSCP (entrant UDP tproxy uniquement)",
|
||||
"ruleActionRuleSetDesc": "Référence un jeu de règles ; nécessite rule-providers",
|
||||
"ruleActionAndDesc": "Règle logique ET",
|
||||
"ruleActionOrDesc": "Règle logique OU",
|
||||
"ruleActionNotDesc": "Règle logique NON",
|
||||
"ruleActionSubRuleDesc": "Correspond vers une sous-règle ; attention aux parenthèses",
|
||||
"ruleActionMatchDesc": "Correspond à toutes les requêtes, sans condition",
|
||||
"contentNotEmpty": "Le contenu ne peut pas être vide",
|
||||
"splitStrategyNotEmpty": "La stratégie de répartition ne peut pas être vide",
|
||||
"timeout": "Expiré",
|
||||
"delayFailed": "Échec",
|
||||
"invalidSubRule": "{subRule} n’est pas un SUB_RULE valide",
|
||||
"invalidPolicy": "{target} n’est pas une stratégie valide",
|
||||
"invalidProxyProvider": "{providerName} n’est pas un fournisseur de proxys valide",
|
||||
"invalidRuleSet": "{ruleSet} n’est pas un jeu de règles valide",
|
||||
"invalidNetworkContent": "Seuls tcp ou udp sont pris en charge",
|
||||
"invalidRangeContent": "Saisissez des nombres ou des plages tels que 80 ou 8000-9000, séparés par /",
|
||||
"invalidDscpContent": "Une marque DSCP ne peut pas dépasser 63",
|
||||
"invalidCidrContent": "Saisissez une plage d’IP au format CIDR, par exemple 192.168.0.0/16",
|
||||
"invalidPortRangeContent": "Saisissez un port ou une plage, par exemple 443 ou 8000-9000",
|
||||
"invalidHostContent": "Saisissez un domaine ou une adresse IP",
|
||||
"invalidListenContent": "Saisissez une adresse et un port, par exemple 0.0.0.0:1053",
|
||||
"invalidProxy": "{proxyName} n’est pas un proxy valide",
|
||||
"locationPermissionRequired": "Autorisation de localisation requise",
|
||||
"locationPermissionGuide": "1. Ouvrez Réglages système > Confidentialité et sécurité\n2. Choisissez Service de localisation\n3. Trouvez {appName} dans la liste et cochez-le\n\nUne fois terminé, revenez dans l’app pour continuer. Merci de votre coopération.",
|
||||
"prerequisites": "Prérequis",
|
||||
"ignoreBatteryOptimization": "Ignorer l’optimisation de la batterie",
|
||||
"batteryOptimizationDesc": "Ignorer l’optimisation de la batterie maintient l’app active en arrière-plan.",
|
||||
"locationPermission": "Autorisation de localisation",
|
||||
"locationPermissionDesc": "Le système exige l’autorisation de localisation pour lire le nom du Wi-Fi. Sur Android, choisissez « Toujours autoriser », sinon le nom du Wi-Fi ne peut pas être lu lorsque l’app est en arrière-plan.",
|
||||
"excludeSsids": "SSID exclus",
|
||||
"excludeSsidsDesc": "Lorsque vous êtes connecté à un Wi-Fi dont le SSID est exclu, l’état d’exécution de l’app change automatiquement.",
|
||||
"ssidsEmpty": "Les SSID sont vides",
|
||||
"onDemand": "À la demande",
|
||||
"onDemandDesc": "À la demande met le proxy en pause sur les Wi-Fi exclus.",
|
||||
"locationPermissionDeniedMessage": "L’autorisation de localisation a été refusée ; le nom du Wi-Fi actuel ne peut donc pas être lu. Veuillez l’activer manuellement dans les réglages du système.",
|
||||
"addSsid": "Ajouter un SSID",
|
||||
"editSsid": "Modifier le SSID",
|
||||
"authorized": "Autorisé",
|
||||
"tapToAuthorize": "Appuyez pour autoriser",
|
||||
"suspended": "Suspendu…",
|
||||
"resourceUpdateInterval": "Intervalle de mise à jour automatique",
|
||||
"resourceUpdateIntervalTip": "L’intervalle de mise à jour automatique doit être supérieur à 0",
|
||||
"hours": "heures",
|
||||
"minutes": "minutes",
|
||||
"geoResources": "Geo",
|
||||
"geoSkipped": "{name} est déjà à jour",
|
||||
"geoUpdated": "{name} mis à jour",
|
||||
"secondsCount": "{count, plural, =1{1 seconde} other{{count} secondes}}",
|
||||
"proxiesCount": "{count, plural, =1{1 proxy} other{{label} proxys}}",
|
||||
"rulesCount": "{count, plural, =1{1 règle} other{{label} règles}}",
|
||||
"proxyGroupsCount": "{count, plural, =1{1 groupe de proxys} other{{label} groupes de proxys}}",
|
||||
"changelogBreaking": "Changements majeurs",
|
||||
"changelogFeatures": "Nouveautés",
|
||||
"changelogFixes": "Corrections de bugs",
|
||||
"changelogPerformance": "Performances",
|
||||
"changelogReverts": "Annulations",
|
||||
"close": "Fermer",
|
||||
"back": "Retour",
|
||||
"minimize": "Réduire",
|
||||
"maximize": "Agrandir",
|
||||
"unmaximize": "Restaurer",
|
||||
"pinWindow": "Épingler la fenêtre",
|
||||
"unpinWindow": "Désépingler la fenêtre",
|
||||
"exitFullScreen": "Quitter le plein écran",
|
||||
"torch": "Lampe torche",
|
||||
"pickFromAlbum": "Choisir dans l’album",
|
||||
"blockConnection": "Bloquer la connexion",
|
||||
"closeConnections": "Fermer les connexions",
|
||||
"scrollToSelected": "Défiler jusqu’à la sélection",
|
||||
"showMore": "Développer",
|
||||
"showLess": "Réduire",
|
||||
"previousMatch": "Résultat précédent",
|
||||
"nextMatch": "Résultat suivant",
|
||||
"clearSearch": "Effacer la recherche",
|
||||
"noSearchResults": "Aucun résultat",
|
||||
"showPassword": "Afficher le mot de passe",
|
||||
"hidePassword": "Masquer le mot de passe",
|
||||
"authorize": "Autoriser",
|
||||
"installedAppsPermissionRequired": "Autorisation de la liste des apps requise",
|
||||
"installedAppsPermissionDesc": "Ce système masque la liste des apps installées tant que l’autorisation n’est pas accordée. Accordez-la pour configurer le proxy par app.",
|
||||
"installedAppsPermissionDeniedMessage": "L’autorisation de la liste des apps a été refusée ; les apps installées ne peuvent donc pas être listées. Veuillez l’accorder manuellement dans les réglages du système.",
|
||||
"outboundIp": "IP sortante",
|
||||
"ipAddress": "Adresse IP",
|
||||
"ipQualityLevel": "Niveau",
|
||||
"ipQualityGood": "Bonne",
|
||||
"ipQualityNormal": "Normale",
|
||||
"ipQualityRisky": "À risque",
|
||||
"ipType": "Type",
|
||||
"ipTypeResidential": "Résidentielle",
|
||||
"ipTypeMobile": "Réseau mobile",
|
||||
"ipTypeBusiness": "Entreprise",
|
||||
"ipTypeHosting": "Centre de données",
|
||||
"ipFlags": "Indicateurs",
|
||||
"ipFlagProxy": "Proxy",
|
||||
"ipFlagVpn": "VPN",
|
||||
"ipFlagTor": "Tor",
|
||||
"ipFlagAbuser": "Antécédents d’abus",
|
||||
"ipOrganization": "Organisation",
|
||||
"ipAsn": "ASN",
|
||||
"ipQualitySource": "Réponse de",
|
||||
"ipQualitySources": "Sources",
|
||||
"ipQualityFailed": "Impossible de déterminer le type de l’IP",
|
||||
"ipQualityRetry": "Vérifier à nouveau",
|
||||
"ipSourceNoType": "Aucun type",
|
||||
"ipSourceRateLimited": "Limite de débit atteinte",
|
||||
"ipSourceIpMismatch": "IP sortante différente",
|
||||
"hideIp": "Masquer l’IP",
|
||||
"editorUnavailable": "Éditeur indisponible",
|
||||
"replace": "Remplacer",
|
||||
"replaceAll": "Tout remplacer",
|
||||
"cameraPermissionRequired": "Autorisation de l’appareil photo requise",
|
||||
"cameraPermissionDesc": "Autorisez l’accès à l’appareil photo dans les réglages du système pour scanner des codes QR, ou choisissez une image de code QR dans l’album.",
|
||||
"cameraUnavailable": "Appareil photo indisponible",
|
||||
"retry": "Réessayer",
|
||||
"invalidProfileQrcode": "Ce code QR ne contient pas de lien de profil",
|
||||
"dnsQueries": "Requêtes DNS",
|
||||
"recordType": "Type d’enregistrement",
|
||||
"answers": "Réponses",
|
||||
"responseCode": "Code de réponse",
|
||||
"error": "Erreur",
|
||||
"initiator": "Initiateur",
|
||||
"cache": "Cache",
|
||||
"yes": "Oui",
|
||||
"no": "Non",
|
||||
"nonTextProviderFile": "Cette ressource externe n’est pas un fichier texte",
|
||||
"addCustomProxy": "Ajouter un proxy",
|
||||
"definitionNotMap": "La configuration doit être un mappage YAML avec un nom et un type",
|
||||
"ruleTextInvalid": "La règle doit commencer par un type pris en charge, par exemple DOMAIN,example.com,DIRECT",
|
||||
"ruleListInvalid": "Les règles doivent former une liste YAML avec une règle par élément, par exemple - DOMAIN,example.com,DIRECT",
|
||||
"shareLinksInvalid": "Aucun proxy n’a pu être lu dans les liens",
|
||||
"shareLinkUnreadable": "Aucun proxy n’a pu être lu dans {link}",
|
||||
"proxiesProfileLabel": "{name} et autres ({count} proxys)",
|
||||
"singleShareLinkOnly": "Saisissez un seul lien ici ; pour en modifier plusieurs, utilisez la modification rapide de la liste",
|
||||
"username": "Nom d’utilisateur",
|
||||
"emptyFallback": "Repli si vide",
|
||||
"defaultSelected": "Sélection par défaut",
|
||||
"hashByInUser": "Hachage par utilisateur entrant",
|
||||
"appProxiesEmpty": "Aucun proxy local",
|
||||
"nodes": "Nœuds",
|
||||
"localProxies": "Proxys locaux",
|
||||
"customIssueEmptyName": "Le nom est vide",
|
||||
"customIssueReservedName": "{name} est un nom de stratégie intégré et ne peut pas être utilisé ici",
|
||||
"customIssueDuplicateName": "Le nom {name} est déjà utilisé par un autre proxy ou groupe de proxys",
|
||||
"customIssueCoreRejected": "Le cœur ne peut pas analyser ce proxy : {message}",
|
||||
"customIssueMissingProxies": "Ces proxys ou stratégies n’existent pas : {names}",
|
||||
"customIssueMissingProviders": "Ces fournisseurs de proxys n’existent pas : {names}",
|
||||
"customIssueNoProxySource": "Aucun proxy ni fournisseur de proxys n’est sélectionné ; le cœur rejette donc ce groupe",
|
||||
"customIssueGroupLoop": "Les groupes de proxys se référencent mutuellement en boucle : {path}",
|
||||
"customIssueInvalidEmptyFallback": "Le repli si vide doit être un proxy, mais {name} n’existe pas ou est un groupe de proxys",
|
||||
"customIssueInvalidFilter": "{name} n’est pas une regex valide : {message}",
|
||||
"customIssueMissingDialer": "Le proxy de connexion {name} n’existe pas",
|
||||
"customIssueDialerLoop": "{proxy} se connecte via {target}, qui renvoie à {proxy} ; la connexion boucle",
|
||||
"dialerProxyLoopStopped": "La connexion via {name} renvoie au proxy qui l’utilise ; la connexion a donc été arrêtée",
|
||||
"customIssuesSummary": "{count} éléments posent problème, et l’application de ce profil peut échouer",
|
||||
"providerInUse": "{label} est encore utilisé par {profiles}, qui ne fonctionneront plus correctement s’il est supprimé. Voulez-vous vraiment le supprimer ?",
|
||||
"proxyGroupInUse": "{label} est encore nommé par des règles, des groupes de proxys, des proxys de connexion, le DNS ou le NTP de ce profil, qui cesseront de fonctionner s’il est supprimé. Voulez-vous vraiment le supprimer ?",
|
||||
"proxiesRemovedTip": "Ces proxys seront supprimés : {removed}. Une ligne dont le nom a changé compte comme un nouveau proxy, et les profils personnalisés qui nomment les proxys supprimés les signaleront comme manquants. Appliquer quand même ?",
|
||||
"proxiesReplacedTip": "Ces proxys seront supprimés : {removed}. Ceux-ci seront ajoutés : {added}. Une ligne dont le nom a changé compte comme un nouveau proxy, et les profils personnalisés qui nomment les proxys supprimés les signaleront comme manquants. Appliquer quand même ?",
|
||||
"fontSize": "Taille",
|
||||
"large": "Grande",
|
||||
"extraLarge": "Très grande",
|
||||
"switchProfile": "Changer de profil",
|
||||
"lastUpdated": "Dernière mise à jour",
|
||||
"filters": "Filtres",
|
||||
"label": "Libellé",
|
||||
"regex": "Regex",
|
||||
"matchCase": "Respecter la casse",
|
||||
"iconSets": "Jeux d’icônes",
|
||||
"invalidIconSet": "Jeu d’icônes non valide",
|
||||
"recommendedIcons": "Suggestions",
|
||||
"localImage": "Image locale",
|
||||
"iconSetsEmptyTip": "Aucun jeu d’icônes pour le moment. Ajoutez-en dans Ressources des profils personnalisés → Jeux d’icônes",
|
||||
"outbound": "Sortant",
|
||||
"strictRoute": "Route stricte",
|
||||
"congestionController": "Contrôle de congestion TCP",
|
||||
"congestionControllerDesc": "Le contrôle de congestion TCP ne fonctionne qu’avec la pile mips.",
|
||||
"routeExcludeAddress": "Adresses de route exclues",
|
||||
"keepAliveIdle": "Inactivité keep-alive TCP",
|
||||
"disableKeepAlive": "Désactiver le keep-alive TCP",
|
||||
"routingMark": "Marque de routage",
|
||||
"strictRouteDesc": "La route stricte empêche le trafic tel que le DNS de contourner TUN et, avec IPv6 désactivé, bloque les connexions IPv6 de cet appareil.",
|
||||
"initFailed": "Échec du démarrage",
|
||||
"initFailedTip": "FlClash a rencontré une erreur au démarrage et ne peut pas continuer. Copiez les détails pour signaler le problème. Si cela se reproduit, effacer les données permet généralement de relancer l’app.",
|
||||
"errorDetails": "Détails de l’erreur",
|
||||
"stackTrace": "Trace de pile",
|
||||
"clearDataAndExitTip": "Cela supprime tous les profils, réglages et données locales, puis ferme l’app. Rouvrez-la pour repartir de zéro.",
|
||||
"clearDataFailed": "Impossible d’effacer les données : {detail}",
|
||||
"bypassPrivateRoute": "Contourner les adresses privées",
|
||||
"bypassPrivateRouteDesc": "Avec « Contourner les adresses privées » activé, les adresses LAN, de bouclage et multicast ne passent pas par TUN.",
|
||||
"disableIcmpForwarding": "Désactiver le transfert ICMP",
|
||||
"disableIcmpForwardingDesc": "Avec le transfert ICMP désactivé, TUN répond lui-même au ping, qui n’indique donc plus la latence réelle.",
|
||||
"excludeInterface": "Interfaces exclues",
|
||||
"excludeInterfaceDesc": "Le trafic qui arrive sur les interfaces exclues, par exemple docker0, ne passe pas par TUN.",
|
||||
"includeInterface": "Interfaces incluses",
|
||||
"includeInterfaceDesc": "Seul le trafic arrivant sur les interfaces incluses passe par TUN, et les interfaces exclues ne s’appliquent plus.",
|
||||
"includeUid": "ID utilisateur inclus",
|
||||
"includeUidDesc": "Seul le trafic des processus des ID utilisateur inclus passe par TUN.",
|
||||
"excludeUid": "ID utilisateur exclus",
|
||||
"excludeUidDesc": "Le trafic des processus des ID utilisateur exclus ne passe pas par TUN.",
|
||||
"excludeSrcPort": "Ports source exclus",
|
||||
"excludeSrcPortDesc": "Le trafic issu des ports source exclus ne passe pas par TUN.",
|
||||
"excludeDstPort": "Ports de destination exclus",
|
||||
"excludeDstPortDesc": "Le trafic vers les ports de destination exclus ne passe pas par TUN.",
|
||||
"udpTimeout": "Délai UDP",
|
||||
"udpTimeoutDesc": "Le délai UDP est en secondes et ne fonctionne qu’avec les piles gvisor, system et mixed.",
|
||||
"dnsHijackDesc": "Sans cette entrée, TUN détourne toutes les requêtes DNS vers le port 53 (any:53).",
|
||||
"tunOverrideDesc": "Les entrées ajoutées ici remplacent les réglages TUN de tous les profils ; tout ce qui n’est pas ajouté garde le réglage du profil. Les entrées qu’un profil personnalisé ajoute lui-même priment.",
|
||||
"profileTunSettingsDesc": "S’applique uniquement à ce profil et prime sur les entrées de remplacement TUN des réglages réseau.",
|
||||
"settingsCount": "{count, plural, =1{1 réglage} other{{count} réglages}}",
|
||||
"sectionsInEffect": "{count} actifs",
|
||||
"itemsCount": "{count, plural, =1{1 élément} other{{count} éléments}}",
|
||||
"additionalPrefix": "Préfixe du nom",
|
||||
"additionalSuffix": "Suffixe du nom",
|
||||
"skipCertVerify": "Ignorer la vérification du certificat",
|
||||
"ipVersion": "Version d’IP",
|
||||
"addFilters": "Ajouter des filtres",
|
||||
"failedItem": "{label} : {message}",
|
||||
"failedCount": "{count} éléments en échec",
|
||||
"importConfigInvalid": "Ce fichier n’est pas une configuration importable",
|
||||
"importConfigReplaceTip": "L’importation remplace les groupes de proxys, les règles et les réglages actuels de ce profil",
|
||||
"networkName": "Nom du réseau",
|
||||
"networkSecret": "Secret du réseau",
|
||||
"peers": "Pairs",
|
||||
"virtualIpv4": "IPv4 virtuelle",
|
||||
"hostname": "Nom d’hôte",
|
||||
"exitNodes": "Nœuds de sortie",
|
||||
"cipher": "Chiffrement",
|
||||
"protocol": "Protocole",
|
||||
"protocolParam": "Paramètre du protocole",
|
||||
"obfs": "Obfuscation",
|
||||
"obfsParam": "Paramètre d’obfuscation",
|
||||
"obfsPassword": "Mot de passe d’obfuscation",
|
||||
"obfsMode": "Mode d’obfuscation",
|
||||
"obfsHost": "Hôte d’obfuscation",
|
||||
"plugin": "Plugin",
|
||||
"pluginMode": "Mode du plugin",
|
||||
"pluginHost": "Hôte du plugin",
|
||||
"privateKey": "Clé privée",
|
||||
"publicKey": "Clé publique",
|
||||
"privateKeyPassphrase": "Phrase secrète de la clé privée",
|
||||
"preSharedKey": "Clé prépartagée",
|
||||
"secretKey": "Clé",
|
||||
"transport": "Transport",
|
||||
"uploadBandwidth": "Bande passante d’envoi",
|
||||
"downloadBandwidth": "Bande passante de réception",
|
||||
"protocolVersion": "Version du protocole",
|
||||
"portHopping": "Saut de port",
|
||||
"hopInterval": "Intervalle de saut",
|
||||
"congestionControl": "Contrôle de congestion",
|
||||
"udpRelayMode": "Mode de relais UDP",
|
||||
"allowedIps": "IP autorisées",
|
||||
"remoteDnsResolve": "Résolution DNS distante",
|
||||
"clientFingerprint": "Empreinte client",
|
||||
"required": "Obligatoire",
|
||||
"ageSecretKey": "Clé secrète age",
|
||||
"ageEncryptedProfile": "Profil chiffré",
|
||||
"ageSecretKeyRequiredTip": "Ce profil est chiffré avec age et nécessite une clé secrète age pour être déchiffré",
|
||||
"currentOutboundDesc": "Contient le bouton de démarrage et ne peut pas être retiré",
|
||||
"running": "En cours d’exécution",
|
||||
"notRunning": "À l’arrêt",
|
||||
"trafficPeak": "Pic {value}",
|
||||
"trafficTotal": "Total {value}",
|
||||
"ipQualityShort": "Qualité",
|
||||
"ipTypeUnknown": "Type inconnu",
|
||||
"tapIconToRetry": "Appuyez sur l’icône pour réessayer",
|
||||
"networkTakeover": "Prise en charge du trafic",
|
||||
"portValue": "Port {port}",
|
||||
"serviceAbnormalCount": "{count, plural, =1{1 problème} other{{count} problèmes}}",
|
||||
"serviceAllAvailable": "Tout est disponible",
|
||||
"serviceShownOnDashboard": "Affiché sur le tableau de bord",
|
||||
"groupTimeoutCount": "{count} expirés",
|
||||
"groupCountUnit": "groupes",
|
||||
"groupCount": "{count, plural, =1{1 groupe} other{{count} groupes}}",
|
||||
"proxyGroupsAfterStart": "Les groupes s’affichent ici une fois le cœur démarré",
|
||||
"usedShort": "utilisé",
|
||||
"profileUpdatedAt": "Mis à jour {time}",
|
||||
"profileExpiresIn": "Expire le {date}, {days, plural, =1{1 jour restant} other{{days} jours restants}}",
|
||||
"profileDaysLeft": "{days, plural, =1{1 jour restant} other{{days} jours restants}}",
|
||||
"target": "Cible",
|
||||
"outboundExit": "Sortie",
|
||||
"duration": "Durée",
|
||||
"traffic": "Trafic",
|
||||
"totalDownload": "Reçu",
|
||||
"totalUpload": "Envoyé",
|
||||
"initiatorShort": "De",
|
||||
"result": "Résultat",
|
||||
"elapsed": "Durée",
|
||||
"connectionStats": "Statistiques de connexion",
|
||||
"connectionStatsDesc": "Connexions en direct, requêtes récentes et requêtes DNS",
|
||||
"memoryInfoDesc": "Mémoire utilisée par l’app et le cœur",
|
||||
"editDashboard": "Modifier le tableau de bord",
|
||||
"done": "Terminé",
|
||||
"dashboardAddableSection": "Disponibles à l’ajout",
|
||||
"customImportDroppedSubRules": "{count, plural, =1{1 règle SUB-RULE a été abandonnée, car les profils personnalisés ne prennent pas en charge les sous-règles} other{{label} règles SUB-RULE ont été abandonnées, car les profils personnalisés ne prennent pas en charge les sous-règles}}",
|
||||
"autoInclude": "Inclure automatiquement",
|
||||
"allReferencedProxies": "Tous les proxys référencés",
|
||||
"allReferencedProxyProviders": "Tous les fournisseurs de proxys référencés"
|
||||
}
|
||||
+43
-28
@@ -41,12 +41,15 @@
|
||||
"other": "その他",
|
||||
"about": "アプリについて",
|
||||
"en": "英語",
|
||||
"es": "スペイン語",
|
||||
"fr": "フランス語",
|
||||
"ja": "日本語",
|
||||
"ko": "韓国語",
|
||||
"ru": "ロシア語",
|
||||
"zhCN": "簡体字中国語",
|
||||
"theme": "テーマ",
|
||||
"extend": "拡張",
|
||||
"finalConfig": "最終設定",
|
||||
"runtimeConfig": "ランタイム設定",
|
||||
"allowLan": "LANプロキシ",
|
||||
"tun": "TUN",
|
||||
"tunDesc": "TUN は管理者モードでのみ有効です。",
|
||||
@@ -83,7 +86,7 @@
|
||||
"profileUrlNullValidationDesc": "プロファイルのURLを入力してください",
|
||||
"profileUrlInvalidValidationDesc": "有効なプロファイルURLを入力してください",
|
||||
"autoUpdate": "自動更新",
|
||||
"autoUpdateInterval": "自動更新間隔(分)",
|
||||
"autoUpdateInterval": "自動更新間隔",
|
||||
"profileAutoUpdateIntervalNullValidationDesc": "自動更新間隔を入力してください",
|
||||
"profileAutoUpdateIntervalInvalidValidationDesc": "有効な間隔を入力してください",
|
||||
"themeMode": "テーマモード",
|
||||
@@ -313,26 +316,20 @@
|
||||
"disclaimerLiabilityTitle": "責任の制限",
|
||||
"disclaimerLiabilityContent": "適用法で認められる最大限の範囲において、開発者およびすべての貢献者は、本ソフトウェアの使用または使用不能に起因する直接的、間接的、偶発的、特別、懲罰的または結果的な損害(データの消失、機器の損傷、ネットワーク障害、業務の中断、逸失利益、およびそれに起因する法的紛争を含むがこれらに限らない)について、その可能性を知らされていた場合であっても、一切責任を負いません。",
|
||||
"disclaimerPrivacyTitle": "データ収集とプライバシー",
|
||||
"disclaimerPrivacyContent": "本ソフトウェアは、サブスクリプション URL、ノード情報、設定内容、閲覧したウェブサイト、接続記録、通信内容、ログを収集またはアップロードしません。これらのデータは端末内にのみ保存され、開発者がアクセスすることはできません。\n\n本ソフトウェアが外部ネットワークにアクセスするのは、プロファイル更新時に指定されたサブスクリプション URL へアクセスする場合や、アップデート確認時に GitHub へアクセスする場合など、該当する機能を使用したときのみです。\n\nデスクトップ版(Windows、macOS、Linux)には、統計やクラッシュレポートのサービスは一切組み込まれていません。Android 版には、安定性向上のため以下の 2 つの Google Firebase サービスが組み込まれています。",
|
||||
"disclaimerCrashlyticsTitle": "Firebase Crashlytics(クラッシュ分析)",
|
||||
"disclaimerCrashlyticsContent": "アプリがクラッシュした際に、クラッシュレポートを自動的に送信します。\n\n収集内容:クラッシュのスタックトレースとエラー情報、発生日時、アプリのバージョンとビルド番号、端末のメーカーとモデル、Android のバージョン、画面の向き、空きメモリと空きストレージ、root 化の有無、およびインストール時に生成され再インストールでリセットされるランダムなインストール ID。\n\n目的:クラッシュの特定と修正のためにのみ使用します。\n\n「ツール > 一般 > クラッシュ分析」からいつでもオフにできます。",
|
||||
"disclaimerAnalyticsTitle": "Firebase Analytics(利用統計)",
|
||||
"disclaimerAnalyticsContent": "Firebase により基本的なアプリ利用統計が自動的に収集されます。\n\n収集内容:初回起動、アプリの起動とセッション時間、アプリの更新などの基本イベント、アプリインスタンス ID、端末のモデル、OS のバージョン、システム言語、および IP アドレスから推定される国または地域レベルのおおよその位置情報。\n\n目的:アクティブな端末数、バージョン分布、OS の互換性を把握するためにのみ使用します。開発者はこれらのデータを広告に使用したり、販売したり、サブスクリプションや設定と関連付けたりすることはありません。",
|
||||
"disclaimerDataProcessingContent": "これらのデータは Google が代わりに処理・保存し、お住まいの国または地域外(米国など)のサーバーに転送される場合があり、Google のプライバシーポリシーおよび Firebase のプライバシーとセキュリティに関する説明に従って取り扱われます。クラッシュレポートは最大 90 日間保存され、統計データは Firebase の既定の保存ポリシーに従って保存されます。",
|
||||
"disclaimerPrivacyContent": "本ソフトウェアは、サブスクリプション URL、ノード情報、設定内容、閲覧したウェブサイト、接続記録、通信内容、ログを収集またはアップロードしません。これらのデータは端末内にのみ保存され、開発者がアクセスすることはできません。\n\n本ソフトウェアが外部ネットワークにアクセスするのは、プロファイル更新時に指定されたサブスクリプション URL へアクセスする場合や、アップデート確認時に GitHub へアクセスする場合など、該当する機能を使用したときのみです。\n\n本ソフトウェアには、どのプラットフォームでも統計やクラッシュレポートのサービスは一切組み込まれていません。",
|
||||
"disclaimerLicenseTitle": "オープンソースライセンス",
|
||||
"disclaimerLicenseContent": "本ソフトウェアは GPL-3.0 ライセンスのもとでオープンソースとして公開されています。同ライセンスを遵守する限り、自由に使用、改変、再配布できますが、派生物も GPL-3.0 で公開し、原著作者の著作権表示を保持する必要があります。\n\n本ソフトウェアに含まれるサードパーティのコンポーネント(Clash.Meta コアを含む)は、それぞれのライセンスに従います。改変版や再配布版に起因する問題について、原著作者は責任を負いません。",
|
||||
"disclaimerChangesTitle": "本声明の変更",
|
||||
"disclaimerChangesContent": "開発者はバージョンの更新に伴い本声明を変更することがあり、変更内容は新しいバージョンの公開とともに効力を生じます。更新後も本ソフトウェアを引き続き使用した場合、変更後の声明に同意したものとみなされます。",
|
||||
"disclaimerAcceptTitle": "声明への同意",
|
||||
"disclaimerAcceptContent": "本ソフトウェアをインストール、複製または使用した時点で、本声明のすべての内容を読み、同意したものとみなされます。いずれかの条項に同意いただけない場合は、直ちに使用を中止し、本ソフトウェアをアンインストールしてください。",
|
||||
"disclaimerAndroidOnly": "Android のみ",
|
||||
"disclaimerGooglePrivacy": "Google プライバシーポリシー",
|
||||
"disclaimerFirebasePrivacy": "Firebase のプライバシーとセキュリティ",
|
||||
"disclaimerReadToEnd": "最後までお読みください",
|
||||
"disclaimerRestateTitle": "声明の復唱",
|
||||
"disclaimerRestateTip": "内容を理解したことを確認するため、以下の声明を下の入力欄に正確に入力してください:",
|
||||
"disclaimerRestateHint": "上記の声明を入力",
|
||||
"disclaimerRestateMismatch": "声明の内容と一致しません",
|
||||
"disclaimerAcknowledgeTitle": "声明の確認",
|
||||
"disclaimerAcknowledgeTip": "内容を理解したことを確認するため、以下の声明を読み、下のチェックボックスをオンにしてください:",
|
||||
"disclaimerAcknowledgeLabel": "この声明を読み、理解しました",
|
||||
"agree": "同意する",
|
||||
"hotkeyManagement": "ホットキー管理",
|
||||
"hotkeyDesc": "グローバルホットキーはウィンドウが非表示でも有効です。アクションをタップしてキーの組み合わせを記録します。",
|
||||
@@ -418,17 +415,19 @@
|
||||
"slide": "スライド",
|
||||
"fade": "フェード",
|
||||
"pureBlack": "ピュアブラック",
|
||||
"colorSchemes": "カラースキーム",
|
||||
"palette": "パレット",
|
||||
"tonalSpotScheme": "トーナルスポット",
|
||||
"fidelityScheme": "フィデリティ",
|
||||
"customColor": "カスタムカラー",
|
||||
"colorStyle": "配色スタイル",
|
||||
"grid": "グリッド",
|
||||
"spectrum": "スペクトル",
|
||||
"sliders": "スライダ",
|
||||
"hue": "色相",
|
||||
"saturation": "彩度",
|
||||
"brightness": "明度",
|
||||
"hex": "16進数",
|
||||
"monochromeScheme": "モノクローム",
|
||||
"neutralScheme": "ニュートラル",
|
||||
"vibrantScheme": "ビブラント",
|
||||
"expressiveScheme": "エクスプレッシブ",
|
||||
"contentScheme": "コンテンツ",
|
||||
"rainbowScheme": "レインボー",
|
||||
"fruitSaladScheme": "フルーツサラダ",
|
||||
"vividStyle": "ビビッド",
|
||||
"tintedStyle": "ティント",
|
||||
"softStyle": "ソフト",
|
||||
"developerMode": "開発者モード",
|
||||
"developerModeEnableTip": "開発者モードが有効になりました。",
|
||||
"messageTest": "メッセージテスト",
|
||||
@@ -508,10 +507,6 @@
|
||||
"forceRestartCoreTip": "コアを強制再起動してもよろしいですか?",
|
||||
"dnsHijacking": "DNSハイジャック",
|
||||
"coreStatus": "コアの状態",
|
||||
"dataCollectionTip": "データ収集について",
|
||||
"dataCollectionContent": "本アプリは、安定性向上のために Firebase Crashlytics を使用してクラッシュ情報を収集します。\n収集されるデータにはデバイス情報とクラッシュの詳細が含まれますが、個人の機密データは含まれません。\nこの機能は設定で無効にできます。",
|
||||
"crashlytics": "クラッシュ分析",
|
||||
"crashlyticsTip": "クラッシュ分析を有効にすると、クラッシュ時に機密情報を含まないログをアップロードします。",
|
||||
"appendSystemDns": "システムDNSを追加",
|
||||
"editRule": "ルールを編集",
|
||||
"extendMode": "拡張モード",
|
||||
@@ -691,6 +686,7 @@
|
||||
"resourceUpdateInterval": "自動更新間隔",
|
||||
"resourceUpdateIntervalTip": "自動更新間隔は0より大きくしてください",
|
||||
"hours": "時間",
|
||||
"minutes": "分",
|
||||
"geoResources": "Geo",
|
||||
"geoSkipped": "{name} はすでに最新です",
|
||||
"geoUpdated": "{name} を更新しました",
|
||||
@@ -813,6 +809,7 @@
|
||||
"filters": "フィルター",
|
||||
"label": "ラベル",
|
||||
"regex": "正規表現",
|
||||
"matchCase": "大文字と小文字を区別",
|
||||
"iconSets": "アイコンセット",
|
||||
"invalidIconSet": "有効なアイコンセットではありません",
|
||||
"recommendedIcons": "おすすめ",
|
||||
@@ -821,11 +818,12 @@
|
||||
"outbound": "アウトバウンド",
|
||||
"strictRoute": "厳格なルーティング",
|
||||
"congestionController": "TCP 輻輳制御",
|
||||
"congestionControllerDesc": "TCP 輻輳制御は mips スタックでのみ有効です。",
|
||||
"routeExcludeAddress": "ルート除外アドレス",
|
||||
"keepAliveIdle": "TCP キープアライブ待機時間",
|
||||
"disableKeepAlive": "TCP キープアライブを無効化",
|
||||
"routingMark": "ルーティングマーク",
|
||||
"strictRouteDesc": "厳格なルーティングは DNS などの通信が TUN を迂回するのを防ぎます。有効にすると他のデバイスからこの端末にアクセスできなくなります。",
|
||||
"strictRouteDesc": "厳格なルーティングは DNS などの通信が TUN を迂回するのを防ぎます。IPv6 がオフの場合、この端末の IPv6 通信は遮断されます。",
|
||||
"initFailed": "起動に失敗しました",
|
||||
"initFailedTip": "FlClash の起動中にエラーが発生したため、続行できません。詳細をコピーして問題を報告できます。繰り返し発生する場合は、データを消去すると起動できるようになることがあります。",
|
||||
"errorDetails": "エラーの詳細",
|
||||
@@ -837,7 +835,22 @@
|
||||
"disableIcmpForwarding": "ICMP 転送を無効化",
|
||||
"disableIcmpForwardingDesc": "ICMP 転送を無効にすると TUN が ping に直接応答するため、ping に実際の遅延が表示されなくなります。",
|
||||
"excludeInterface": "除外インターフェース",
|
||||
"excludeInterfaceDesc": "除外インターフェースは Linux でのみ有効です。docker0 などから入る通信は TUN を通りません。",
|
||||
"excludeInterfaceDesc": "docker0 などの除外インターフェースから入る通信は TUN を通りません。",
|
||||
"includeInterface": "対象インターフェース",
|
||||
"includeInterfaceDesc": "対象インターフェースから入る通信だけが TUN を通り、除外インターフェースは無効になります。",
|
||||
"includeUid": "対象ユーザー ID",
|
||||
"includeUidDesc": "対象ユーザー ID のプロセスの通信だけが TUN を通ります。",
|
||||
"excludeUid": "除外ユーザー ID",
|
||||
"excludeUidDesc": "除外ユーザー ID のプロセスの通信は TUN を通りません。",
|
||||
"excludeSrcPort": "除外送信元ポート",
|
||||
"excludeSrcPortDesc": "除外送信元ポートからの通信は TUN を通りません。",
|
||||
"excludeDstPort": "除外宛先ポート",
|
||||
"excludeDstPortDesc": "除外宛先ポートへの通信は TUN を通りません。",
|
||||
"udpTimeout": "UDP タイムアウト",
|
||||
"udpTimeoutDesc": "UDP タイムアウトは秒単位で、gvisor・system・mixed スタックでのみ有効です。",
|
||||
"dnsHijackDesc": "追加しない場合、ポート 53 宛てのすべての DNS 問い合わせをハイジャックします(any:53)。",
|
||||
"tunOverrideDesc": "ここで追加した項目は、すべてのプロファイルの TUN 設定を上書きします。追加していない項目はプロファイル自身の設定のままです。カスタムプロファイル自身が追加した項目が優先されます。",
|
||||
"profileTunSettingsDesc": "このプロファイルにのみ適用され、ネットワーク設定の TUN 上書き項目より優先されます。",
|
||||
"settingsCount": "設定 {count} 件",
|
||||
"sectionsInEffect": "{count} 件が有効",
|
||||
"itemsCount": "{count} 件",
|
||||
@@ -912,6 +925,8 @@
|
||||
"outboundExit": "出口",
|
||||
"duration": "経過時間",
|
||||
"traffic": "通信量",
|
||||
"totalDownload": "ダウンロード量",
|
||||
"totalUpload": "アップロード量",
|
||||
"initiatorShort": "発信元",
|
||||
"result": "結果",
|
||||
"elapsed": "所要時間",
|
||||
|
||||
+943
@@ -0,0 +1,943 @@
|
||||
{
|
||||
"rule": "규칙",
|
||||
"rules": "규칙",
|
||||
"global": "전역",
|
||||
"direct": "직접",
|
||||
"dashboard": "대시보드",
|
||||
"proxies": "프록시",
|
||||
"profile": "프로필",
|
||||
"profiles": "프로필",
|
||||
"tools": "도구",
|
||||
"logs": "로그",
|
||||
"resources": "리소스",
|
||||
"trafficUsage": "트래픽 사용량",
|
||||
"networkSpeed": "네트워크 속도",
|
||||
"outboundMode": "아웃바운드 모드",
|
||||
"serviceStatus": "서비스 상태",
|
||||
"serviceRestricted": "접근 제한됨",
|
||||
"serviceAvailable": "사용 가능",
|
||||
"serviceUnavailable": "사용 불가",
|
||||
"serviceFailed": "확인 실패",
|
||||
"serviceDisallowedIsp": "허용되지 않는 ISP",
|
||||
"serviceBlocked": "차단됨",
|
||||
"serviceUnsupportedRegion": "지원하지 않는 지역",
|
||||
"serviceOriginalsOnly": "오리지널 콘텐츠만",
|
||||
"serviceComingSoon": "출시 예정",
|
||||
"servicePending": "확인 전",
|
||||
"serviceManage": "서비스 관리",
|
||||
"serviceCheck": "확인",
|
||||
"serviceCheckAll": "모두 확인",
|
||||
"serviceCheckedAt": "확인 시각: {time}",
|
||||
"upload": "업로드",
|
||||
"download": "다운로드",
|
||||
"usedTraffic": "사용한 트래픽",
|
||||
"totalTraffic": "전체 트래픽",
|
||||
"expireTime": "만료 시간",
|
||||
"nullProfileDesc": "프로필을 추가하여 시작하세요",
|
||||
"settings": "설정",
|
||||
"language": "언어",
|
||||
"defaultText": "기본값",
|
||||
"more": "더 보기",
|
||||
"other": "기타",
|
||||
"about": "정보",
|
||||
"en": "영어",
|
||||
"es": "스페인어",
|
||||
"fr": "프랑스어",
|
||||
"ja": "일본어",
|
||||
"ko": "한국어",
|
||||
"ru": "러시아어",
|
||||
"zhCN": "중국어 간체",
|
||||
"theme": "테마",
|
||||
"extend": "확장",
|
||||
"runtimeConfig": "런타임 구성",
|
||||
"allowLan": "LAN 허용",
|
||||
"tun": "TUN",
|
||||
"tunDesc": "TUN은 관리자 모드에서만 작동합니다.",
|
||||
"minimizeOnExit": "종료 시 최소화",
|
||||
"autoLaunch": "자동 실행",
|
||||
"silentLaunch": "백그라운드 실행",
|
||||
"silentLaunchDesc": "백그라운드 실행은 창을 표시하지 않고 시작합니다.",
|
||||
"autoRun": "자동 시작",
|
||||
"autoRunDesc": "자동 시작은 앱을 열 때 프록시를 시작합니다.",
|
||||
"logcat": "Logcat",
|
||||
"logcatDesc": "Logcat을 끄면 로그 항목이 숨겨집니다.",
|
||||
"autoCheckUpdate": "업데이트 자동 확인",
|
||||
"checkCertificate": "TLS 인증서 검증",
|
||||
"checkCertificateDesc": "TLS 검증을 끄면 구독과 백업이 중간자 공격에 노출됩니다.",
|
||||
"accessControl": "접근 제어",
|
||||
"accessControlDesc": "접근 제어는 프록시를 사용할 앱을 선택합니다.",
|
||||
"edit": "편집",
|
||||
"confirm": "확인",
|
||||
"update": "업데이트",
|
||||
"add": "추가",
|
||||
"save": "저장",
|
||||
"delete": "삭제",
|
||||
"seconds": "초",
|
||||
"qrcode": "QR 코드",
|
||||
"qrcodeDesc": "QR 코드를 스캔하여 프로필 가져오기",
|
||||
"url": "URL",
|
||||
"link": "링크",
|
||||
"linkDesc": "구독 링크 또는 프록시 공유 링크로 프로필 가져오기",
|
||||
"file": "파일",
|
||||
"fileDesc": "프로필 파일을 직접 업로드",
|
||||
"name": "이름",
|
||||
"profileNameNullValidationDesc": "프로필 이름을 입력하세요",
|
||||
"rename": "이름 변경",
|
||||
"profileUrlNullValidationDesc": "프로필 URL을 입력하세요",
|
||||
"profileUrlInvalidValidationDesc": "올바른 프로필 URL을 입력하세요",
|
||||
"autoUpdate": "자동 업데이트",
|
||||
"autoUpdateInterval": "자동 업데이트 간격",
|
||||
"profileAutoUpdateIntervalNullValidationDesc": "자동 업데이트 간격을 입력하세요",
|
||||
"profileAutoUpdateIntervalInvalidValidationDesc": "올바른 간격을 입력하세요",
|
||||
"themeMode": "테마 모드",
|
||||
"themeColor": "테마 색상",
|
||||
"preview": "미리보기",
|
||||
"auto": "자동",
|
||||
"light": "라이트",
|
||||
"dark": "다크",
|
||||
"importFromLink": "링크에서 가져오기",
|
||||
"submit": "제출",
|
||||
"createProfileFromUrlTip": "{url}에서 프로필을 만드시겠습니까?",
|
||||
"create": "만들기",
|
||||
"pleaseUploadValidQrcode": "올바른 QR 코드를 업로드하세요",
|
||||
"blacklistMode": "블랙리스트 모드",
|
||||
"whitelistMode": "화이트리스트 모드",
|
||||
"selectAll": "모두 선택",
|
||||
"cancelSelectAll": "모두 선택 해제",
|
||||
"appAccessControl": "앱 접근 제어",
|
||||
"accessControlAllowDesc": "선택한 앱만 VPN을 거칩니다",
|
||||
"accessControlNotAllowDesc": "선택한 앱은 VPN에서 제외됩니다",
|
||||
"accessControlDisabledDesc": "앱 접근 제어가 꺼져 있습니다",
|
||||
"selected": "선택됨",
|
||||
"port": "포트",
|
||||
"logLevel": "로그 수준",
|
||||
"show": "표시",
|
||||
"exit": "종료",
|
||||
"systemProxy": "시스템 프록시",
|
||||
"safeMode": "안전 모드",
|
||||
"safeModeAppTitle": "{appName} (안전 모드)",
|
||||
"project": "프로젝트",
|
||||
"core": "코어",
|
||||
"tabAnimation": "탭 애니메이션",
|
||||
"desc": "ClashMeta 기반의 멀티 플랫폼 프록시 클라이언트로, 간편하게 사용할 수 있으며 오픈 소스이고 광고가 없습니다.",
|
||||
"startVpn": "VPN 시작 중…",
|
||||
"stopVpn": "VPN 중지 중…",
|
||||
"localNetworkDeniedTip": "로컬 네트워크 권한이 거부되었습니다. gvisor 스택을 사용하므로 LAN에 연결할 수 없습니다.",
|
||||
"compatible": "호환 모드",
|
||||
"notSelectedTip": "현재 프록시 그룹은 선택할 수 없습니다",
|
||||
"changeProxyFailedTip": "프록시를 전환하지 못해 이전 선택을 복원했습니다",
|
||||
"databaseWriteFailedTip": "변경 사항을 저장하지 못해 되돌렸습니다",
|
||||
"tip": "안내",
|
||||
"account": "계정",
|
||||
"backup": "백업",
|
||||
"backupSuccess": "백업 완료",
|
||||
"noInfo": "정보 없음",
|
||||
"pleaseBindWebDAV": "WebDAV를 연결하세요",
|
||||
"bind": "연결",
|
||||
"connectivity": "연결 상태: ",
|
||||
"webDAVConfiguration": "WebDAV 구성",
|
||||
"address": "주소",
|
||||
"addressHelp": "WebDAV 서버 주소",
|
||||
"addressTip": "올바른 WebDAV 주소를 입력하세요",
|
||||
"password": "비밀번호",
|
||||
"authentication": "인증",
|
||||
"authenticationDesc": "인증을 켜면 로컬 프록시 포트에서 사용자 이름과 비밀번호를 요구합니다.",
|
||||
"authenticationSystemProxyDesc": "인증이 켜져 있는 동안에는 시스템 프록시가 적용되지 않습니다.",
|
||||
"checkUpdate": "업데이트 확인",
|
||||
"discoverNewVersion": "새 버전 발견",
|
||||
"checkUpdateError": "이미 최신 버전입니다",
|
||||
"goDownload": "다운로드",
|
||||
"unknown": "알 수 없음",
|
||||
"country": "지역",
|
||||
"search": "검색",
|
||||
"allowBypass": "앱의 VPN 우회 허용",
|
||||
"externalController": "외부 컨트롤러",
|
||||
"externalControllerDesc": "외부 컨트롤러를 사용하면 9090 포트로 코어를 제어할 수 있습니다.",
|
||||
"externalControllerSecret": "외부 컨트롤러 시크릿",
|
||||
"ipv6Desc": "IPv6 트래픽은 IPv6가 켜져 있을 때만 수신됩니다.",
|
||||
"app": "앱",
|
||||
"general": "일반",
|
||||
"startupAndBackground": "시작 및 백그라운드",
|
||||
"requestsAndUpdates": "요청 및 업데이트",
|
||||
"logsAndDiagnostics": "로그 및 진단",
|
||||
"userAgent": "User-Agent",
|
||||
"unifiedDelay": "통합 지연",
|
||||
"tcpConcurrent": "TCP 동시 연결",
|
||||
"geodataLoader": "Geo 저메모리 모드",
|
||||
"requests": "요청",
|
||||
"recentRequests": "최근 요청",
|
||||
"findProcessMode": "프로세스 찾기",
|
||||
"init": "초기화",
|
||||
"infiniteTime": "만료되지 않음",
|
||||
"connections": "연결",
|
||||
"liveConnections": "실시간 연결",
|
||||
"inbound": "인바운드",
|
||||
"intranetIP": "내부망 IP",
|
||||
"view": "보기",
|
||||
"cut": "잘라내기",
|
||||
"copy": "복사",
|
||||
"clipboardWriteFailed": "클립보드에 복사하지 못했습니다. 선택 영역이 너무 클 수 있습니다",
|
||||
"paste": "붙여넣기",
|
||||
"testUrl": "테스트 URL",
|
||||
"sync": "동기화",
|
||||
"exclude": "최근 작업에서 숨기기",
|
||||
"compact": "간결하게",
|
||||
"tab": "탭",
|
||||
"list": "목록",
|
||||
"delay": "지연",
|
||||
"style": "스타일",
|
||||
"size": "크기",
|
||||
"sort": "정렬",
|
||||
"columns": "열",
|
||||
"proxyGroup": "프록시 그룹",
|
||||
"go": "이동",
|
||||
"externalLink": "외부 링크",
|
||||
"otherContributors": "기타 기여자",
|
||||
"appIconDesign": "앱 아이콘 디자인",
|
||||
"autoCloseConnections": "연결 자동 종료",
|
||||
"autoCloseConnectionsDesc": "연결 자동 종료는 프록시를 전환할 때 열려 있는 연결을 끊습니다.",
|
||||
"onlyStatisticsProxy": "프록시 트래픽만 집계",
|
||||
"showNotificationStopAction": "알림에 중지 버튼 표시",
|
||||
"pureBlackMode": "퓨어 블랙 모드",
|
||||
"sidebarBlur": "사이드바 블러",
|
||||
"sidebarBlurDesc": "사이드바를 통해 창 뒤의 흐릿한 바탕화면을 표시합니다",
|
||||
"liquidGlass": "Liquid Glass",
|
||||
"keepAliveIntervalDesc": "TCP 킵얼라이브 간격",
|
||||
"entries": "개 항목",
|
||||
"local": "로컬",
|
||||
"remote": "원격",
|
||||
"mode": "모드",
|
||||
"time": "시간",
|
||||
"source": "소스",
|
||||
"action": "동작",
|
||||
"intelligentSelected": "스마트 선택",
|
||||
"clipboardImport": "클립보드에서 가져오기",
|
||||
"clipboardExport": "클립보드로 내보내기",
|
||||
"layout": "레이아웃",
|
||||
"tight": "좁게",
|
||||
"standard": "표준",
|
||||
"ultra": "최고",
|
||||
"loose": "넓게",
|
||||
"profilesSort": "프로필 정렬",
|
||||
"start": "시작",
|
||||
"runTime": "실행 시간",
|
||||
"stop": "중지",
|
||||
"key": "키",
|
||||
"value": "값",
|
||||
"vpnEnableDesc": "VPN은 VpnService를 통해 모든 시스템 트래픽을 자동으로 라우팅합니다.",
|
||||
"options": "옵션",
|
||||
"enabled": "사용",
|
||||
"disabled": "사용 안 함",
|
||||
"loopback": "UWP 루프백 예외",
|
||||
"providers": "외부 리소스",
|
||||
"proxyProviders": "프록시 공급자",
|
||||
"ruleProviders": "규칙 공급자",
|
||||
"providerUrlTip": "원격 공급자만 지원합니다",
|
||||
"ruleSetEmptyTip": "규칙 세트에 사용할 수 있는 항목이 없습니다",
|
||||
"ruleSetMixedTip": "규칙 세트에 도메인과 IP 범위가 섞여 있어 유형을 판별할 수 없습니다",
|
||||
"ruleSetInvalidTip": "이 mrs 파일을 읽을 수 없습니다",
|
||||
"subscriptionInfo": "구독 정보",
|
||||
"ntpStatusDesc": "NTP는 시스템 시계 대신 NTP 서버에서 시간을 가져옵니다.",
|
||||
"server": "서버",
|
||||
"ntpInterval": "동기화 간격(분)",
|
||||
"dialerProxy": "다이얼러 프록시",
|
||||
"dialerProxyDesc": "다이얼러 프록시는 NTP 서버에 연결할 때 사용하는 아웃바운드입니다.",
|
||||
"writeToSystem": "시스템에 기록",
|
||||
"writeToSystemDesc": "시스템에 기록하면 시스템 시계도 설정합니다. Android에서는 무시됩니다.",
|
||||
"sniffer": "스니퍼",
|
||||
"snifferStatusDesc": "스니퍼는 TLS, HTTP, QUIC 트래픽에서 도메인을 읽어 규칙이 일치할 수 있게 합니다.",
|
||||
"overrideDestination": "대상 덮어쓰기",
|
||||
"overrideDestinationDesc": "대상 덮어쓰기는 원래 주소 대신 스니핑한 도메인으로 연결합니다.",
|
||||
"forceDnsMapping": "DNS 매핑 강제",
|
||||
"forceDnsMappingDesc": "DNS 매핑 강제는 DNS 매핑에서 도메인을 얻은 연결도 스니핑합니다.",
|
||||
"parsePureIp": "순수 IP 분석",
|
||||
"parsePureIpDesc": "순수 IP 분석은 IP 주소만 있는 연결을 스니핑합니다.",
|
||||
"forceDomain": "강제 도메인",
|
||||
"forceDomainDesc": "강제 도메인은 항상 스니핑합니다. 이미 도메인이 있는 다른 연결은 그대로 둡니다.",
|
||||
"skipDomain": "건너뛸 도메인",
|
||||
"skipDomainDesc": "건너뛸 도메인 목록에 있는 스니핑된 도메인은 사용하지 않습니다.",
|
||||
"skipSrcAddress": "건너뛸 출발지 주소",
|
||||
"skipDstAddress": "건너뛸 목적지 주소",
|
||||
"sniffProtocols": "프로토콜",
|
||||
"ports": "포트",
|
||||
"overrideEntries": "덮어쓰기 항목",
|
||||
"addOverrideEntry": "덮어쓰기 항목 추가",
|
||||
"dnsOverrideDesc": "여기에 추가한 항목은 모든 URL 및 파일 프로필의 DNS를 대체합니다. 추가하지 않은 항목은 프로필 자체 설정을 유지합니다. 사용자 지정 프로필은 내용에서 DNS를 설정합니다.",
|
||||
"settingEntries": "설정",
|
||||
"addSettingEntry": "설정 추가",
|
||||
"profileSettingsDesc": "이 프로필에만 적용되며, 추가하지 않은 항목은 기본값을 사용합니다.",
|
||||
"healthCheck": "상태 확인",
|
||||
"discardChanges": "변경 사항을 취소하시겠습니까?",
|
||||
"quickEdit": "빠른 편집",
|
||||
"status": "상태",
|
||||
"statusDesc": "DNS를 끄면 시스템 DNS를 사용합니다.",
|
||||
"respectRules": "규칙 준수",
|
||||
"respectRulesDesc": "규칙 준수는 DNS 연결을 규칙에 따라 라우팅하며 Proxy Server Nameserver가 필요합니다.",
|
||||
"dnsMode": "DNS 모드",
|
||||
"fakeipRange": "Fake-IP 범위",
|
||||
"fakeipFilter": "Fake-IP 필터",
|
||||
"useHosts": "hosts 사용",
|
||||
"useSystemHosts": "시스템 hosts 사용",
|
||||
"fallbackFilter": "폴백 필터",
|
||||
"domain": "도메인",
|
||||
"listenRoutingMark": "수신 라우팅 마크",
|
||||
"listenRoutingMarkDesc": "수신 라우팅 마크는 Linux에서만 작동합니다.",
|
||||
"ipv6Timeout": "IPv6 타임아웃(ms)",
|
||||
"cacheAlgorithm": "캐시 알고리즘",
|
||||
"cacheMaxSize": "캐시 크기",
|
||||
"fakeipRange6": "Fake-IP 범위(IPv6)",
|
||||
"fakeipFilterMode": "Fake-IP 필터 모드",
|
||||
"fakeipFilterModeDesc": "Fake-IP 필터 모드에서 블랙리스트는 일치 항목을 제외하고, 화이트리스트는 일치 항목에만 가짜 IP를 사용하며, 규칙은 규칙에 따라 일치시킵니다.",
|
||||
"fakeipTtl": "Fake-IP TTL",
|
||||
"reset": "초기화",
|
||||
"actionView": "표시/숨기기",
|
||||
"actionStart": "시작/중지",
|
||||
"actionMode": "모드 전환",
|
||||
"actionProxy": "시스템 프록시",
|
||||
"actionTun": "TUN",
|
||||
"actionRuleMode": "규칙 모드",
|
||||
"actionGlobalMode": "전역 모드",
|
||||
"actionDirectMode": "직접 모드",
|
||||
"actionDelayTest": "모든 지연 테스트",
|
||||
"actionUpdateProfiles": "프로필 업데이트",
|
||||
"disclaimer": "면책 조항",
|
||||
"disclaimerDesc": "FlClash(이하 “본 소프트웨어”)를 사용하기 전에 이 문서를 주의 깊게 읽고 모든 내용을 이해했는지 확인하세요. “동의”를 누르면 아래 모든 조항을 읽고 이해했으며 수락한 것으로 간주합니다. 동의하지 않으면 “종료”를 누르고 본 소프트웨어의 사용을 중단하세요.",
|
||||
"disclaimerSoftwareTitle": "소프트웨어의 성격",
|
||||
"disclaimerSoftwareContent": "본 소프트웨어는 Clash.Meta(mihomo) 코어를 기반으로 한 오픈 소스 네트워크 프록시 클라이언트입니다. 구성 관리, 규칙 기반 라우팅, 트래픽 전달과 같은 로컬 도구만 제공합니다.",
|
||||
"disclaimerNoServiceStatement": "본 소프트웨어 자체는 프록시 서버, 노드, 구독, 네트워크 접속 서비스를 일절 제공하지 않으며, 이러한 서비스의 어떤 제공자와도 제휴, 대리 또는 보증 관계가 없습니다.",
|
||||
"disclaimerUsageTitle": "사용 제한",
|
||||
"disclaimerUsageContent": "본 소프트웨어는 학습, 교류, 기술 연구와 같은 비상업적 용도로만 제공됩니다. 유료 배포, 끼워 팔기, 상업 서비스의 일부로 사용, 본 소프트웨어의 이름을 내세운 영업 등 어떠한 상업적 목적의 사용도 엄격히 금지되며, 이에 국한되지 않습니다. 모든 상업 활동은 본 소프트웨어 및 개발자와 무관합니다.\n\n거주 국가 또는 지역의 법령을 위반하는 용도로 본 소프트웨어를 사용하는 것은 엄격히 금지됩니다. 여기에는 합법적으로 부과된 네트워크 접속 제한 우회, 불법 콘텐츠 유포, 네트워크 공격, 타인의 합법적 권리 침해가 포함되며 이에 국한되지 않습니다.",
|
||||
"disclaimerResponsibilityTitle": "사용자의 책임",
|
||||
"disclaimerResponsibilityContent": "본 소프트웨어의 사용이 거주지에서 적법한지 확인할 책임은 사용자에게 있으며, 본 소프트웨어로 한 모든 행위와 그 결과에 대한 법적 책임은 사용자 본인이 부담합니다.\n\n가져오는 구독, 노드, 구성은 사용자 본인의 선택입니다. 출처의 적법성, 콘텐츠의 안전성, 서비스의 신뢰성은 사용자와 해당 제공자 사이의 문제입니다.",
|
||||
"disclaimerThirdPartyTitle": "제3자 콘텐츠",
|
||||
"disclaimerThirdPartyContent": "구독 링크, 구성 파일, 규칙 세트, 스크립트, 외부 리소스, 외부 링크는 모두 제3자가 제공합니다. 개발자는 이들의 적법성, 정확성, 안전성, 가용성을 심사하거나 보증할 수 없으며 보증하지 않습니다.\n\n제3자 콘텐츠로 인한 데이터 유출, 금전적 손실, 계정 정지 및 기타 손해는 사용자와 해당 제3자 사이에서 해결해야 하며, 개발자는 이에 대해 책임을 지지 않습니다.",
|
||||
"disclaimerWarrantyTitle": "보증 부인",
|
||||
"disclaimerWarrantyContent": "본 소프트웨어는 “있는 그대로”, “이용 가능한 상태로” 제공되며, 상품성, 특정 목적에의 적합성, 비침해성, 중단 없는 이용 가능성, 오류 없음, 보안 취약점 없음에 대한 보증을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 어떠한 종류의 보증도 하지 않습니다.\n\n개발자는 본 소프트웨어가 사용자의 요구를 충족하거나 중단 및 오류 없이 실행될 것임을 보증하지 않습니다.",
|
||||
"disclaimerLiabilityTitle": "책임의 제한",
|
||||
"disclaimerLiabilityContent": "관련 법률이 허용하는 최대 범위에서, 개발자와 기여자는 본 소프트웨어의 사용 또는 사용 불능으로 발생하는 직접, 간접, 부수적, 특별, 징벌적 또는 결과적 손해에 대해 책임을 지지 않습니다. 여기에는 데이터 손실, 기기 손상, 네트워크 장애, 사업 중단, 이익 손실 및 그로 인한 법적 분쟁이 포함되며 이에 국한되지 않고, 그러한 손해의 가능성을 사전에 통지받은 경우에도 마찬가지입니다.",
|
||||
"disclaimerPrivacyTitle": "데이터 수집 및 개인정보 보호",
|
||||
"disclaimerPrivacyContent": "본 소프트웨어는 구독 URL, 노드 정보, 구성 내용, 방문한 웹사이트, 연결 기록, 트래픽 내용, 로그를 수집하거나 업로드하지 않습니다. 이 데이터는 사용자의 기기에만 저장되며 개발자는 접근할 수 없습니다.\n\n본 소프트웨어는 프로필을 업데이트할 때 사용자가 입력한 구독 URL을 가져오거나 업데이트를 확인할 때 GitHub에 접속하는 등 기능이 필요할 때만 네트워크에 접속합니다.\n\n본 소프트웨어에는 어떤 플랫폼에서도 분석 또는 비정상 종료 보고 서비스가 포함되어 있지 않습니다.",
|
||||
"disclaimerLicenseTitle": "오픈 소스 라이선스",
|
||||
"disclaimerLicenseContent": "본 소프트웨어는 GPL-3.0 라이선스로 공개된 오픈 소스입니다. 파생 저작물도 GPL-3.0으로 배포하고 원저작권 고지를 유지해야 하는 라이선스 조건을 준수하는 한 자유롭게 사용, 수정, 배포할 수 있습니다.\n\nClash.Meta 코어를 포함한 본 소프트웨어의 제3자 구성 요소는 각자의 라이선스를 따릅니다. 원저작자는 수정 또는 재배포된 버전에서 발생하는 어떠한 문제에도 책임을 지지 않습니다.",
|
||||
"disclaimerChangesTitle": "본 문서의 변경",
|
||||
"disclaimerChangesContent": "개발자는 릴리스와 함께 본 문서를 개정할 수 있으며, 개정 내용은 해당 릴리스가 공개되는 시점에 효력이 발생합니다. 업데이트 후에도 본 소프트웨어를 계속 사용하면 개정된 문서를 수락한 것으로 간주합니다.",
|
||||
"disclaimerAcceptTitle": "동의",
|
||||
"disclaimerAcceptContent": "본 소프트웨어를 설치, 복사 또는 사용하면 이 문서 전체를 읽고 동의한 것으로 간주합니다. 어느 조항이라도 동의하지 않는 경우 즉시 본 소프트웨어의 사용을 중단하고 삭제하세요.",
|
||||
"disclaimerRestateTitle": "문구 다시 입력",
|
||||
"disclaimerRestateTip": "내용을 이해했는지 확인하기 위해 아래 입력란에 다음 문구를 그대로 입력하세요.",
|
||||
"disclaimerRestateHint": "위 문구를 입력하세요",
|
||||
"disclaimerRestateMismatch": "문구와 일치하지 않습니다",
|
||||
"disclaimerAcknowledgeTitle": "문구 확인",
|
||||
"disclaimerAcknowledgeTip": "내용을 이해했는지 확인하기 위해 다음 문구를 읽고 아래 항목에 체크하세요.",
|
||||
"disclaimerAcknowledgeLabel": "이 문구를 읽고 이해했습니다",
|
||||
"agree": "동의",
|
||||
"hotkeyManagement": "단축키 관리",
|
||||
"hotkeyDesc": "전역 단축키는 창이 숨겨져 있어도 작동합니다. 동작을 눌러 키 조합을 기록하세요.",
|
||||
"hotkeyNotSet": "설정 안 됨",
|
||||
"pressKeyboard": "키 조합을 누르세요",
|
||||
"hotkeyNeedsModifier": "{modifiers} 중 하나 이상을 포함하세요",
|
||||
"hotkeyConflictWith": "이미 “{action}”에서 사용 중입니다. 저장하면 이쪽으로 옮겨집니다.",
|
||||
"hotkeyUnavailable": "등록되지 않음: 다른 앱이 사용 중일 수 있습니다",
|
||||
"remove": "제거",
|
||||
"noNetwork": "네트워크 없음",
|
||||
"ipv6InboundDesc": "IPv6를 켜면 VPN이 IPv6 인바운드를 허용합니다.",
|
||||
"exportLogs": "로그 내보내기",
|
||||
"exportSuccess": "내보내기 완료",
|
||||
"iconStyle": "아이콘 스타일",
|
||||
"iconStyleFilled": "채움",
|
||||
"iconStylePlain": "기본",
|
||||
"iconStyleHidden": "숨김",
|
||||
"filter": "필터",
|
||||
"hideTimeoutProxies": "시간 초과된 프록시 숨기기",
|
||||
"hideTimeoutProxiesDesc": "마지막 지연 테스트에서 시간 초과된 프록시를 제외합니다",
|
||||
"stackMode": "스택 모드",
|
||||
"network": "네트워크",
|
||||
"bypassDomain": "우회 도메인",
|
||||
"bypassDomainDesc": "우회 도메인은 시스템 프록시가 켜져 있을 때만 적용됩니다.",
|
||||
"resetTip": "초기화하시겠습니까?",
|
||||
"icon": "아이콘",
|
||||
"noData": "데이터 없음",
|
||||
"fontFamily": "글꼴",
|
||||
"installedFonts": "설치된 글꼴",
|
||||
"toggle": "전환",
|
||||
"system": "시스템",
|
||||
"routeAddress": "라우팅 주소",
|
||||
"interfaceNameMode": "아웃바운드 인터페이스",
|
||||
"interfaceNameModeClear": "지정 안 함",
|
||||
"interfaceNameModeFollow": "구성 따르기",
|
||||
"interfaceNameModeCustom": "사용자 지정",
|
||||
"interfaceName": "인터페이스 이름",
|
||||
"interfaceNameDesc": "인터페이스 이름은 아웃바운드 연결이 사용하는 네트워크 인터페이스입니다.",
|
||||
"copyEnvVar": "환경 변수 복사",
|
||||
"memoryInfo": "메모리 정보",
|
||||
"total": "합계",
|
||||
"releaseMemory": "메모리 해제",
|
||||
"memoryCoreHeapInuse": "사용 중인 힙",
|
||||
"memoryCoreHeapIdle": "유휴 힙",
|
||||
"memoryCoreStack": "고루틴 스택",
|
||||
"memoryCoreRuntime": "런타임 오버헤드",
|
||||
"memoryCoreNotRunning": "코어가 실행 중이 아닙니다",
|
||||
"memoryAppResident": "상주 메모리",
|
||||
"memoryAppShared": "앱 및 공유",
|
||||
"memoryEstimateDesc": "프로세스 상주 메모리로 추정한 값이며 시스템에 표시되는 값과 다를 수 있습니다.",
|
||||
"memoryEstimateSharedDesc": "코어는 앱 프로세스 안에서 실행됩니다. 코어의 점유량은 런타임 통계로 추정하며, 나머지는 앱 및 공유 메모리로 집계합니다.",
|
||||
"memoryReleased": "메모리를 해제했습니다",
|
||||
"memoryReleasedSize": "{size} 해제됨",
|
||||
"releaseMemoryFailed": "메모리를 해제하지 못했습니다",
|
||||
"cancel": "취소",
|
||||
"fileIsUpdate": "파일이 수정되었습니다. 변경 사항을 저장하시겠습니까?",
|
||||
"profileHasUpdate": "프로필이 수정되었습니다. 자동 업데이트를 끄시겠습니까?",
|
||||
"hasCacheChange": "변경 사항을 캐시하시겠습니까?",
|
||||
"copySuccess": "복사했습니다",
|
||||
"copyLink": "링크 복사",
|
||||
"exportFile": "파일 내보내기",
|
||||
"cacheCorrupt": "캐시가 손상되었습니다. 지우시겠습니까?",
|
||||
"detectionTip": "서드파티 API에 의존하므로 참고용으로만 사용하세요",
|
||||
"listen": "수신",
|
||||
"undo": "실행 취소",
|
||||
"redo": "다시 실행",
|
||||
"lineWrap": "자동 줄 바꿈",
|
||||
"none": "없음",
|
||||
"advancedConfig": "고급 구성",
|
||||
"advancedConfigDesc": "고급 구성에는 네트워크, DNS, 추가한 규칙, 스크립트가 포함됩니다.",
|
||||
"addRule": "규칙 추가",
|
||||
"content": "내용",
|
||||
"ruleTarget": "규칙 대상",
|
||||
"matchTarget": "MATCH-TARGET",
|
||||
"followProfile": "프로필 따르기",
|
||||
"sourceIp": "출발지 IP",
|
||||
"noResolve": "IP 확인 안 함",
|
||||
"saveChanges": "변경 사항을 저장하시겠습니까?",
|
||||
"cannotSave": "저장할 수 없음",
|
||||
"navigationBarStyle": "하단 바",
|
||||
"floating": "플로팅",
|
||||
"docked": "고정",
|
||||
"slide": "슬라이드",
|
||||
"fade": "페이드",
|
||||
"pureBlack": "퓨어 블랙",
|
||||
"customColor": "사용자 지정 색상",
|
||||
"colorStyle": "색상 스타일",
|
||||
"grid": "격자",
|
||||
"spectrum": "스펙트럼",
|
||||
"sliders": "슬라이더",
|
||||
"hue": "색조",
|
||||
"saturation": "채도",
|
||||
"brightness": "밝기",
|
||||
"hex": "16진수",
|
||||
"monochromeScheme": "모노크롬",
|
||||
"vividStyle": "선명",
|
||||
"tintedStyle": "틴트",
|
||||
"softStyle": "부드러움",
|
||||
"developerMode": "개발자 모드",
|
||||
"developerModeEnableTip": "개발자 모드가 켜졌습니다.",
|
||||
"messageTest": "메시지 테스트",
|
||||
"messageTestTip": "이것은 메시지입니다.",
|
||||
"crashTest": "비정상 종료 테스트",
|
||||
"crashDetected": "비정상 종료 감지됨",
|
||||
"crashDetectedTip": "앱이 두 번 연속 시작을 완료하지 못했습니다. 반복을 끊기 위해 프로필 {name}의 선택을 해제하고 자동 설정을 건너뛰었습니다. 언제든지 다시 선택할 수 있습니다.",
|
||||
"launchInterrupted": "시작이 완료되지 않음",
|
||||
"launchInterruptedTip": "지난번 시작하는 중에 앱이 예기치 않게 종료되었습니다. 이번 실행에서는 자동 설정을 건너뛰었으니 직접 시작하여 다시 시도하세요.",
|
||||
"clearData": "데이터 지우기",
|
||||
"textScale": "글자 크기 조절",
|
||||
"textScalePreview": "앱의 글자가 이렇게 표시됩니다",
|
||||
"followSystem": "시스템 설정 따르기",
|
||||
"internet": "인터넷",
|
||||
"systemApp": "시스템 앱",
|
||||
"noNetworkApp": "네트워크 미사용 앱",
|
||||
"restoreStrategy": "복원 방식",
|
||||
"restoreStrategyOverride": "덮어쓰기",
|
||||
"restoreStrategyCompatible": "호환",
|
||||
"logsTest": "로그 테스트",
|
||||
"emptyTip": "{label}을(를) 입력하세요",
|
||||
"urlTip": "{label}은(는) URL이어야 합니다",
|
||||
"invalidLinkTip": "구독 링크 또는 프록시 공유 링크가 아닙니다",
|
||||
"numberTip": "{label}은(는) 숫자여야 합니다",
|
||||
"numberRangeTip": "{label}은(는) {min}에서 {max} 사이여야 합니다",
|
||||
"interval": "간격",
|
||||
"existsTip": "{label}이(가) 이미 있습니다",
|
||||
"maxLengthTip": "{label}은(는) 최대 {max}자까지 입력할 수 있습니다",
|
||||
"singleAdd": "개별 추가",
|
||||
"batchAdd": "일괄 추가",
|
||||
"batchListInputTip": "한 줄에 하나씩 또는 쉼표로 구분하여 입력하세요",
|
||||
"batchMapInputTip": "한 줄에 하나씩, 키, 공백, 값 순서로 입력하세요",
|
||||
"singleImport": "개별 가져오기",
|
||||
"batchImport": "일괄 가져오기",
|
||||
"batchUrlInputTip": "한 줄에 URL 하나씩",
|
||||
"batchLinkInputTip": "한 줄에 링크 하나씩",
|
||||
"batchPreviewTip": "추가 {count}개, 이미 있어서 건너뜀 {skipped}개",
|
||||
"lineIssueTip": "{line}행: {message}",
|
||||
"singleValueTip": "{label}은(는) 하나만 입력해야 합니다",
|
||||
"deleteTip": "이 {label}을(를) 삭제하시겠습니까?",
|
||||
"deleteMultipTip": "선택한 {label}을(를) 삭제하시겠습니까?",
|
||||
"nullTip": "{label}이(가) 아직 없습니다",
|
||||
"script": "스크립트",
|
||||
"color": "색상",
|
||||
"unnamed": "이름 없음",
|
||||
"pleaseEnterScriptName": "스크립트 이름을 입력하세요",
|
||||
"mixedPort": "혼합 포트",
|
||||
"socksPort": "SOCKS 포트",
|
||||
"redirPort": "Redir 포트",
|
||||
"tproxyPort": "TProxy 포트",
|
||||
"portTip": "{label}은(는) 1024에서 49151 사이여야 합니다",
|
||||
"portConflictTip": "다른 포트를 입력하세요",
|
||||
"import": "가져오기",
|
||||
"importFile": "파일에서 가져오기",
|
||||
"importUrl": "URL에서 가져오기",
|
||||
"startFromScratch": "처음부터 시작",
|
||||
"autoSetSystemDns": "시스템 DNS 자동 설정",
|
||||
"details": "{label} 상세 정보",
|
||||
"creationTime": "생성 시간",
|
||||
"process": "프로세스",
|
||||
"host": "호스트",
|
||||
"destination": "목적지",
|
||||
"destinationGeoIP": "목적지 GeoIP",
|
||||
"destinationIPASN": "목적지 IP ASN",
|
||||
"specialProxy": "특수 프록시",
|
||||
"specialRules": "특수 규칙",
|
||||
"remoteDestination": "원격 목적지",
|
||||
"networkType": "네트워크 유형",
|
||||
"proxyChains": "프록시 체인",
|
||||
"log": "로그",
|
||||
"connection": "연결",
|
||||
"request": "요청",
|
||||
"connected": "연결됨",
|
||||
"disconnected": "연결 끊김",
|
||||
"connecting": "연결 중…",
|
||||
"restartCoreTip": "코어를 다시 시작하시겠습니까?",
|
||||
"forceRestartCoreTip": "코어를 강제로 다시 시작하시겠습니까?",
|
||||
"dnsHijacking": "DNS 하이재킹",
|
||||
"coreStatus": "코어 상태",
|
||||
"appendSystemDns": "시스템 DNS 추가",
|
||||
"editRule": "규칙 편집",
|
||||
"extendMode": "확장 모드",
|
||||
"standardModeDesc": "표준 모드: 프로필 위에 규칙을 추가합니다",
|
||||
"scriptModeDesc": "스크립트 모드: 확장 스크립트로 프로필 전체를 다시 작성합니다",
|
||||
"addedRules": "추가한 규칙",
|
||||
"controlGlobalAddedRules": "전역 추가 규칙 관리",
|
||||
"quickActions": "빠른 작업",
|
||||
"rulePresetBlockQuic": "QUIC 차단",
|
||||
"rulePresetBlockStun": "STUN 차단",
|
||||
"rulePresetBlockDot": "DNS over TLS 차단",
|
||||
"rulePresetBlockLoopback": "프록시 루프백 차단",
|
||||
"rulePresetSystemServicesDirect": "Apple 및 Microsoft 직접 연결",
|
||||
"rulePresetBittorrentDirect": "BitTorrent 직접 연결",
|
||||
"rulePresetLanDirect": "LAN 직접 연결",
|
||||
"extendScript": "확장 스크립트",
|
||||
"goToConfigureScript": "스크립트 구성으로 이동",
|
||||
"goToConfigureAddedRules": "추가한 규칙 구성으로 이동",
|
||||
"editGlobalRules": "전역 규칙 편집",
|
||||
"confirmForceCrashCore": "코어를 강제로 비정상 종료시키시겠습니까?",
|
||||
"confirmClearAllData": "모든 데이터를 지우시겠습니까?",
|
||||
"loading": "로드 중…",
|
||||
"yearsAgo": "{count, plural, other{{count}년 전}}",
|
||||
"monthsAgo": "{count, plural, other{{count}개월 전}}",
|
||||
"daysAgo": "{count, plural, other{{count}일 전}}",
|
||||
"hoursAgo": "{count, plural, other{{count}시간 전}}",
|
||||
"minutesAgo": "{count, plural, other{{count}분 전}}",
|
||||
"justNow": "방금",
|
||||
"yearsAgoShort": "{count, plural, other{{count}년 전}}",
|
||||
"monthsAgoShort": "{count, plural, other{{count}개월 전}}",
|
||||
"daysAgoShort": "{count, plural, other{{count}일 전}}",
|
||||
"hoursAgoShort": "{count, plural, other{{count}시간 전}}",
|
||||
"minutesAgoShort": "{count, plural, other{{count}분 전}}",
|
||||
"noLongerRemind": "다시 알리지 않음",
|
||||
"accessControlSettings": "접근 제어 설정",
|
||||
"turnOn": "켜기",
|
||||
"turnOff": "끄기",
|
||||
"vpnConfigChangeDetected": "VPN 관련 구성 변경이 감지되었습니다",
|
||||
"restart": "다시 시작",
|
||||
"speedStatistics": "속도 통계",
|
||||
"resetPageChangesTip": "이 페이지에 변경 사항이 있습니다. 초기화하시겠습니까?",
|
||||
"customProfile": "사용자 지정",
|
||||
"customProfileDesc": "앱 프록시와 다른 프로필로 프록시 그룹과 규칙을 조합합니다",
|
||||
"customProfileResources": "사용자 지정 프로필 리소스",
|
||||
"customProfileResourcesDesc": "사용자 지정 프로필 리소스에는 프록시, 규칙 공급자, 필터, 아이콘 세트가 포함됩니다.",
|
||||
"unknownNetworkError": "알 수 없는 네트워크 오류",
|
||||
"backupFromNewerVersion": "이 백업은 더 최신 버전의 앱에서 만들어졌습니다. 복원하기 전에 앱을 업데이트하세요",
|
||||
"networkTimeoutError": "요청 시간이 초과되었습니다. 네트워크나 프록시를 확인한 후 다시 시도하세요",
|
||||
"networkHostLookupError": "서버 주소를 확인할 수 없습니다. URL이 올바른지, DNS가 정상인지 확인하세요",
|
||||
"networkConnectionError": "서버에 연결할 수 없습니다. 네트워크 연결이나 프록시 설정을 확인하세요",
|
||||
"networkTlsError": "보안 연결에 실패했습니다. 서버 인증서가 올바르지 않거나 연결이 가로채이고 있을 수 있습니다",
|
||||
"networkCancelledError": "요청이 취소되었습니다",
|
||||
"networkAccessDeniedError": "서버가 접근을 거부했습니다(HTTP {code}). 링크가 만료되었거나 자격 증명이 잘못되었을 수 있습니다",
|
||||
"networkNotFoundError": "이 주소에서 아무것도 찾지 못했습니다(HTTP {code}). URL이 올바른지 확인하세요",
|
||||
"networkRateLimitedError": "요청이 너무 많습니다(HTTP 429). 잠시 후 다시 시도하세요",
|
||||
"networkServerError": "서버에 문제가 발생했습니다(HTTP {code}). 나중에 다시 시도하세요",
|
||||
"networkBadResponseError": "서버가 요청을 거부했습니다(HTTP {code})",
|
||||
"networkRequestFailed": "네트워크 요청 실패: {detail}",
|
||||
"invalidBackupFile": "올바르지 않은 백업 파일",
|
||||
"pruneCache": "캐시 정리",
|
||||
"backupAndRestore": "백업 및 복원",
|
||||
"restore": "복원",
|
||||
"restoreSuccess": "복원 완료",
|
||||
"restoreOnlyConfig": "프로필만 복원",
|
||||
"restoreAllData": "모든 데이터 복원",
|
||||
"addProfile": "프로필 추가",
|
||||
"delayTest": "지연 테스트",
|
||||
"proxyGroupEmpty": "프록시 그룹이 비어 있습니다",
|
||||
"confirmExitWindow": "현재 창을 닫으시겠습니까?",
|
||||
"optional": "선택 사항",
|
||||
"maxFailedTimes": "최대 실패 횟수",
|
||||
"testInterval": "테스트 간격",
|
||||
"excludeFilter": "제외 필터",
|
||||
"expectedStatus": "예상 상태",
|
||||
"strategy": "전략",
|
||||
"tolerance": "허용 오차",
|
||||
"inputProxyGroupName": "프록시 그룹 이름을 입력하세요",
|
||||
"helperCorruptTip": "헬퍼 서비스를 사용할 수 없어 TUN 모드를 켤 수 없습니다. FlClash를 다시 설치하여 복구하세요.",
|
||||
"tunAuthorizationFailed": "TUN 권한을 얻지 못해 끄기로 되돌렸습니다.",
|
||||
"sudoPasswordTitle": "sudo 비밀번호를 입력하세요",
|
||||
"coreBlockedByPolicyTip": "Windows에서 FlClashCore.exe 실행을 거부했습니다(오류 {code}). Smart App Control이나 AppLocker와 같은 앱 제어 정책이 서명되지 않은 프로그램을 차단합니다. 해당 정책에서 FlClash를 허용하거나 정책을 끈 후 다시 시도하세요.",
|
||||
"coreBlockedBySmartAppControlTip": "서명되지 않아 Windows Smart App Control이 FlClashCore.exe를 차단했습니다. Windows 보안 → 앱 및 브라우저 컨트롤 → Smart App Control 설정에서 끔을 선택한 후 FlClash를 다시 시작하세요. Smart App Control은 Windows를 다시 설치하지 않으면 다시 켤 수 없습니다.",
|
||||
"hideFromList": "목록에서 숨기기",
|
||||
"testWhenUsed": "사용할 때 테스트",
|
||||
"disableUDP": "UDP 사용 안 함",
|
||||
"confirmDeleteProxyGroup": "이 프록시 그룹을 삭제하시겠습니까?",
|
||||
"ruleEmpty": "규칙이 비어 있습니다",
|
||||
"inputRuleContent": "규칙 내용을 입력하세요",
|
||||
"ruleSet": "규칙 세트",
|
||||
"selectRuleSet": "규칙 세트를 선택하세요",
|
||||
"splitStrategy": "분할 전략",
|
||||
"selectSplitStrategy": "분할 전략을 선택하세요",
|
||||
"noResolveHostname": "호스트 이름 확인 안 함",
|
||||
"matchSourceIp": "출발지 IP 일치",
|
||||
"basicInfo": "기본 정보",
|
||||
"additionalParameters": "추가 매개변수",
|
||||
"proxyType": "프록시 유형",
|
||||
"basicStrategy": "기본 전략",
|
||||
"editProxy": "프록시 편집",
|
||||
"addNodes": "노드 추가",
|
||||
"addProxyGroup": "프록시 그룹 추가",
|
||||
"editProxyGroup": "프록시 그룹 편집",
|
||||
"iconUrl": "아이콘 URL",
|
||||
"iconRecords": "아이콘 기록",
|
||||
"custom": "사용자 지정",
|
||||
"ruleActionDomainDesc": "전체 도메인 일치",
|
||||
"ruleActionDomainSuffixDesc": "도메인 접미사 일치",
|
||||
"ruleActionDomainKeywordDesc": "도메인 키워드 일치",
|
||||
"ruleActionDomainRegexDesc": "도메인 정규식 일치",
|
||||
"ruleActionDomainWildcardDesc": "와일드카드 일치, *와 ?만 지원",
|
||||
"ruleActionGeositeDesc": "Geosite의 도메인 일치",
|
||||
"ruleActionIpCidrDesc": "IP 주소 범위 일치",
|
||||
"ruleActionIpCidr6Desc": "IP 주소 범위 일치, IP-CIDR6는 별칭일 뿐입니다",
|
||||
"ruleActionIpSuffixDesc": "IP 접미사 범위 일치",
|
||||
"ruleActionIpAsnDesc": "IP의 ASN 일치",
|
||||
"ruleActionGeoipDesc": "IP의 국가 코드 일치",
|
||||
"ruleActionSrcGeoipDesc": "출발지 IP의 국가 코드 일치",
|
||||
"ruleActionSrcIpAsnDesc": "출발지 IP의 ASN 일치",
|
||||
"ruleActionSrcIpCidrDesc": "출발지 IP 주소 범위 일치",
|
||||
"ruleActionSrcIpSuffixDesc": "출발지 IP 접미사 범위 일치",
|
||||
"ruleActionDstPortDesc": "목적지 포트 범위 일치",
|
||||
"ruleActionSrcPortDesc": "출발지 포트 범위 일치",
|
||||
"ruleActionInPortDesc": "인바운드 포트 일치",
|
||||
"ruleActionInTypeDesc": "인바운드 유형 일치",
|
||||
"ruleActionInUserDesc": "인바운드 사용자 이름 일치, 여러 사용자 이름은 /로 구분",
|
||||
"ruleActionInNameDesc": "인바운드 이름 일치",
|
||||
"ruleActionRematchNameDesc": "리매치 이름 일치, 여러 이름은 /로 구분",
|
||||
"ruleActionProcessPathDesc": "전체 프로세스 경로로 일치",
|
||||
"ruleActionProcessPathRegexDesc": "프로세스 경로 정규식으로 일치",
|
||||
"ruleActionProcessPathWildcardDesc": "프로세스 경로 와일드카드로 일치, *와 ?만 지원",
|
||||
"ruleActionProcessNameDesc": "프로세스 이름으로 일치, Android에서는 패키지 이름과 일치",
|
||||
"ruleActionProcessNameRegexDesc": "프로세스 이름 정규식으로 일치, Android에서는 패키지 이름과 일치",
|
||||
"ruleActionProcessNameWildcardDesc": "프로세스 이름 와일드카드로 일치, *와 ?만 지원",
|
||||
"ruleActionUidDesc": "Linux 사용자 ID 일치",
|
||||
"ruleActionNetworkDesc": "TCP 또는 UDP 일치",
|
||||
"ruleActionDscpDesc": "DSCP 마크 일치(tproxy UDP 인바운드 전용)",
|
||||
"ruleActionRuleSetDesc": "규칙 세트 참조, rule-providers 필요",
|
||||
"ruleActionAndDesc": "논리 규칙 AND",
|
||||
"ruleActionOrDesc": "논리 규칙 OR",
|
||||
"ruleActionNotDesc": "논리 규칙 NOT",
|
||||
"ruleActionSubRuleDesc": "하위 규칙으로 일치, 괄호에 유의",
|
||||
"ruleActionMatchDesc": "모든 요청과 일치, 조건 불필요",
|
||||
"contentNotEmpty": "내용을 입력하세요",
|
||||
"splitStrategyNotEmpty": "분할 전략을 입력하세요",
|
||||
"timeout": "시간 초과",
|
||||
"delayFailed": "실패",
|
||||
"invalidSubRule": "올바르지 않은 SUB_RULE: {subRule}",
|
||||
"invalidPolicy": "올바르지 않은 정책: {target}",
|
||||
"invalidProxyProvider": "올바르지 않은 프록시 공급자: {providerName}",
|
||||
"invalidRuleSet": "올바르지 않은 규칙 세트: {ruleSet}",
|
||||
"invalidNetworkContent": "tcp 또는 udp만 지원합니다",
|
||||
"invalidRangeContent": "80 또는 8000-9000과 같은 숫자나 범위를 /로 구분하여 입력하세요",
|
||||
"invalidDscpContent": "DSCP 마크는 63을 넘을 수 없습니다",
|
||||
"invalidCidrContent": "192.168.0.0/16과 같은 CIDR 형식의 IP 범위를 입력하세요",
|
||||
"invalidPortRangeContent": "443 또는 8000-9000과 같은 포트나 범위를 입력하세요",
|
||||
"invalidHostContent": "도메인 또는 IP 주소를 입력하세요",
|
||||
"invalidListenContent": "0.0.0.0:1053과 같은 주소와 포트를 입력하세요",
|
||||
"invalidProxy": "올바르지 않은 프록시: {proxyName}",
|
||||
"locationPermissionRequired": "위치 권한 필요",
|
||||
"locationPermissionGuide": "1. 시스템 설정 > 개인정보 보호 및 보안을 엽니다\n2. 위치 서비스를 선택합니다\n3. 목록에서 {appName}을(를) 찾아 체크합니다\n\n완료되면 앱으로 돌아와 계속하세요. 협조해 주셔서 감사합니다.",
|
||||
"prerequisites": "사전 요건",
|
||||
"ignoreBatteryOptimization": "배터리 최적화 무시",
|
||||
"batteryOptimizationDesc": "배터리 최적화를 무시하면 앱이 백그라운드에서 계속 실행됩니다.",
|
||||
"locationPermission": "위치 권한",
|
||||
"locationPermissionDesc": "시스템에서 Wi-Fi 이름을 읽으려면 위치 권한이 필요합니다. Android에서는 “항상 허용”을 선택해야 하며, 그렇지 않으면 앱이 백그라운드에 있을 때 Wi-Fi 이름을 읽을 수 없습니다.",
|
||||
"excludeSsids": "제외할 SSID",
|
||||
"excludeSsidsDesc": "제외 SSID의 Wi-Fi에 연결되면 앱의 실행 상태가 자동으로 전환됩니다.",
|
||||
"ssidsEmpty": "SSID가 비어 있습니다",
|
||||
"onDemand": "필요 시 실행",
|
||||
"onDemandDesc": "필요 시 실행은 제외된 Wi-Fi에서 프록시를 일시 중지합니다.",
|
||||
"locationPermissionDeniedMessage": "위치 권한이 거부되어 현재 Wi-Fi 이름을 읽을 수 없습니다. 시스템 설정에서 위치 권한을 직접 켜 주세요.",
|
||||
"addSsid": "SSID 추가",
|
||||
"editSsid": "SSID 편집",
|
||||
"authorized": "허용됨",
|
||||
"tapToAuthorize": "눌러서 허용",
|
||||
"suspended": "일시 중지됨…",
|
||||
"resourceUpdateInterval": "자동 업데이트 간격",
|
||||
"resourceUpdateIntervalTip": "자동 업데이트 간격은 0보다 커야 합니다",
|
||||
"hours": "시간",
|
||||
"minutes": "분",
|
||||
"geoResources": "Geo",
|
||||
"geoSkipped": "{name}: 이미 최신 상태입니다",
|
||||
"geoUpdated": "{name}: 업데이트됨",
|
||||
"secondsCount": "{count, plural, other{{count}초}}",
|
||||
"proxiesCount": "{count, plural, other{프록시 {label}개}}",
|
||||
"rulesCount": "{count, plural, other{규칙 {label}개}}",
|
||||
"proxyGroupsCount": "{count, plural, other{프록시 그룹 {label}개}}",
|
||||
"changelogBreaking": "호환성 변경",
|
||||
"changelogFeatures": "새로운 기능",
|
||||
"changelogFixes": "버그 수정",
|
||||
"changelogPerformance": "성능",
|
||||
"changelogReverts": "되돌림",
|
||||
"close": "닫기",
|
||||
"back": "뒤로",
|
||||
"minimize": "최소화",
|
||||
"maximize": "최대화",
|
||||
"unmaximize": "이전 크기로 복원",
|
||||
"pinWindow": "창 고정",
|
||||
"unpinWindow": "창 고정 해제",
|
||||
"exitFullScreen": "전체 화면 종료",
|
||||
"torch": "손전등",
|
||||
"pickFromAlbum": "앨범에서 선택",
|
||||
"blockConnection": "연결 차단",
|
||||
"closeConnections": "연결 종료",
|
||||
"scrollToSelected": "선택 항목으로 스크롤",
|
||||
"showMore": "펼치기",
|
||||
"showLess": "접기",
|
||||
"previousMatch": "이전 결과",
|
||||
"nextMatch": "다음 결과",
|
||||
"clearSearch": "검색 지우기",
|
||||
"noSearchResults": "일치하는 결과 없음",
|
||||
"showPassword": "비밀번호 표시",
|
||||
"hidePassword": "비밀번호 숨기기",
|
||||
"authorize": "허용",
|
||||
"installedAppsPermissionRequired": "앱 목록 권한 필요",
|
||||
"installedAppsPermissionDesc": "이 시스템은 권한을 허용하기 전까지 설치된 앱 목록을 숨깁니다. 앱별 프록시를 구성하려면 권한을 허용하세요.",
|
||||
"installedAppsPermissionDeniedMessage": "앱 목록 권한이 거부되어 설치된 앱을 표시할 수 없습니다. 시스템 설정에서 직접 허용해 주세요.",
|
||||
"outboundIp": "아웃바운드 IP",
|
||||
"ipAddress": "IP 주소",
|
||||
"ipQualityLevel": "등급",
|
||||
"ipQualityGood": "양호",
|
||||
"ipQualityNormal": "보통",
|
||||
"ipQualityRisky": "위험",
|
||||
"ipType": "유형",
|
||||
"ipTypeResidential": "가정용",
|
||||
"ipTypeMobile": "모바일 네트워크",
|
||||
"ipTypeBusiness": "기업용",
|
||||
"ipTypeHosting": "데이터 센터",
|
||||
"ipFlags": "플래그",
|
||||
"ipFlagProxy": "프록시",
|
||||
"ipFlagVpn": "VPN",
|
||||
"ipFlagTor": "Tor",
|
||||
"ipFlagAbuser": "악용 이력",
|
||||
"ipOrganization": "조직",
|
||||
"ipAsn": "ASN",
|
||||
"ipQualitySource": "응답 출처",
|
||||
"ipQualitySources": "출처",
|
||||
"ipQualityFailed": "IP 유형을 확인할 수 없습니다",
|
||||
"ipQualityRetry": "다시 확인",
|
||||
"ipSourceNoType": "유형 없음",
|
||||
"ipSourceRateLimited": "요청 제한됨",
|
||||
"ipSourceIpMismatch": "아웃바운드 IP가 다름",
|
||||
"hideIp": "IP 숨기기",
|
||||
"editorUnavailable": "편집기를 사용할 수 없음",
|
||||
"replace": "바꾸기",
|
||||
"replaceAll": "모두 바꾸기",
|
||||
"cameraPermissionRequired": "카메라 권한 필요",
|
||||
"cameraPermissionDesc": "QR 코드를 스캔하려면 시스템 설정에서 카메라 접근을 허용하거나, 앨범에서 QR 코드 이미지를 선택하세요.",
|
||||
"cameraUnavailable": "카메라를 사용할 수 없음",
|
||||
"retry": "다시 시도",
|
||||
"invalidProfileQrcode": "이 QR 코드에는 프로필 링크가 없습니다",
|
||||
"dnsQueries": "DNS 쿼리",
|
||||
"recordType": "레코드 유형",
|
||||
"answers": "응답",
|
||||
"responseCode": "응답 코드",
|
||||
"error": "오류",
|
||||
"initiator": "요청자",
|
||||
"cache": "캐시",
|
||||
"yes": "예",
|
||||
"no": "아니요",
|
||||
"nonTextProviderFile": "이 외부 리소스는 텍스트 파일이 아닙니다",
|
||||
"addCustomProxy": "프록시 추가",
|
||||
"definitionNotMap": "구성은 이름과 유형이 있는 YAML 매핑이어야 합니다",
|
||||
"ruleTextInvalid": "규칙은 DOMAIN,example.com,DIRECT처럼 지원하는 유형으로 시작해야 합니다",
|
||||
"ruleListInvalid": "규칙은 항목마다 규칙 하나인 YAML 목록이어야 합니다. 예: - DOMAIN,example.com,DIRECT",
|
||||
"shareLinksInvalid": "링크에서 읽을 수 있는 프록시가 없습니다",
|
||||
"shareLinkUnreadable": "읽을 수 있는 프록시가 없습니다: {link}",
|
||||
"proxiesProfileLabel": "{name} 외 (프록시 {count}개)",
|
||||
"singleShareLinkOnly": "여기에는 링크를 하나만 입력하세요. 여러 개는 목록의 빠른 편집에서 편집하세요",
|
||||
"username": "사용자 이름",
|
||||
"emptyFallback": "빈 폴백",
|
||||
"defaultSelected": "기본 선택",
|
||||
"hashByInUser": "인바운드 사용자별 해시",
|
||||
"appProxiesEmpty": "로컬 프록시 없음",
|
||||
"nodes": "노드",
|
||||
"localProxies": "로컬 프록시",
|
||||
"customIssueEmptyName": "이름이 비어 있습니다",
|
||||
"customIssueReservedName": "내장 정책 이름이라 여기에서 사용할 수 없습니다: {name}",
|
||||
"customIssueDuplicateName": "다른 프록시 또는 프록시 그룹이 이미 사용 중인 이름입니다: {name}",
|
||||
"customIssueCoreRejected": "코어가 이 프록시를 해석할 수 없습니다: {message}",
|
||||
"customIssueMissingProxies": "존재하지 않는 프록시 또는 정책: {names}",
|
||||
"customIssueMissingProviders": "존재하지 않는 프록시 공급자: {names}",
|
||||
"customIssueNoProxySource": "선택한 프록시나 프록시 공급자가 없어 코어가 이 그룹을 거부합니다",
|
||||
"customIssueGroupLoop": "프록시 그룹이 서로를 순환 참조합니다: {path}",
|
||||
"customIssueInvalidEmptyFallback": "빈 폴백은 프록시여야 하지만 존재하지 않거나 프록시 그룹입니다: {name}",
|
||||
"customIssueInvalidFilter": "올바른 정규식이 아닙니다({name}): {message}",
|
||||
"customIssueMissingDialer": "존재하지 않는 다이얼러 프록시: {name}",
|
||||
"customIssueDialerLoop": "{proxy}이(가) {target}을(를) 거쳐 다시 {proxy}(으)로 돌아오므로 다이얼이 순환합니다",
|
||||
"dialerProxyLoopStopped": "{name}을(를) 거치는 다이얼이 이를 사용하는 프록시로 되돌아와 연결을 중단했습니다",
|
||||
"customIssuesSummary": "문제가 있는 항목 {count}개, 이 프로필을 적용하면 실패할 수 있습니다",
|
||||
"providerInUse": "{label}은(는) 아직 {profiles}에서 사용 중이며, 삭제하면 해당 프로필이 제대로 작동하지 않습니다. 삭제하시겠습니까?",
|
||||
"proxyGroupInUse": "{label}은(는) 이 프로필의 규칙, 프록시 그룹, 다이얼러 프록시, DNS 또는 NTP에서 아직 참조 중이며, 삭제하면 작동하지 않게 됩니다. 삭제하시겠습니까?",
|
||||
"proxiesRemovedTip": "다음 프록시가 삭제됩니다: {removed}. 이름이 바뀐 줄은 새 프록시로 간주되며, 삭제된 프록시를 지정한 사용자 지정 프로필에는 누락으로 표시됩니다. 그래도 적용하시겠습니까?",
|
||||
"proxiesReplacedTip": "다음 프록시가 삭제됩니다: {removed}. 다음 프록시가 추가됩니다: {added}. 이름이 바뀐 줄은 새 프록시로 간주되며, 삭제된 프록시를 지정한 사용자 지정 프로필에는 누락으로 표시됩니다. 그래도 적용하시겠습니까?",
|
||||
"fontSize": "크기",
|
||||
"large": "크게",
|
||||
"extraLarge": "매우 크게",
|
||||
"switchProfile": "프로필 전환",
|
||||
"lastUpdated": "마지막 업데이트",
|
||||
"filters": "필터",
|
||||
"label": "레이블",
|
||||
"regex": "정규식",
|
||||
"matchCase": "대/소문자 구분",
|
||||
"iconSets": "아이콘 세트",
|
||||
"invalidIconSet": "올바른 아이콘 세트가 아닙니다",
|
||||
"recommendedIcons": "추천",
|
||||
"localImage": "로컬 이미지",
|
||||
"iconSetsEmptyTip": "아이콘 세트가 아직 없습니다. 사용자 지정 프로필 리소스 → 아이콘 세트에서 추가하세요",
|
||||
"outbound": "아웃바운드",
|
||||
"strictRoute": "엄격한 라우팅",
|
||||
"congestionController": "TCP 혼잡 제어",
|
||||
"congestionControllerDesc": "TCP 혼잡 제어는 mips 스택에서만 작동합니다.",
|
||||
"routeExcludeAddress": "라우팅 제외 주소",
|
||||
"keepAliveIdle": "TCP 킵얼라이브 유휴 시간",
|
||||
"disableKeepAlive": "TCP 킵얼라이브 사용 안 함",
|
||||
"routingMark": "라우팅 마크",
|
||||
"strictRouteDesc": "엄격한 라우팅은 DNS 등의 트래픽이 TUN을 우회하지 못하게 하며, IPv6가 꺼져 있으면 이 기기의 IPv6 연결을 차단합니다.",
|
||||
"initFailed": "시작 실패",
|
||||
"initFailedTip": "FlClash를 시작하는 중 오류가 발생하여 계속할 수 없습니다. 세부 정보를 복사하여 문제를 보고하세요. 문제가 계속되면 데이터를 지우면 대개 앱이 다시 시작됩니다.",
|
||||
"errorDetails": "오류 세부 정보",
|
||||
"stackTrace": "스택 트레이스",
|
||||
"clearDataAndExitTip": "모든 프로필, 설정, 로컬 데이터를 삭제한 후 앱을 종료합니다. 앱을 다시 열면 처음부터 시작합니다.",
|
||||
"clearDataFailed": "데이터를 지우지 못했습니다: {detail}",
|
||||
"bypassPrivateRoute": "사설 주소 우회",
|
||||
"bypassPrivateRouteDesc": "사설 주소 우회를 켜면 LAN, 루프백, 멀티캐스트 주소는 TUN을 거치지 않습니다.",
|
||||
"disableIcmpForwarding": "ICMP 전달 사용 안 함",
|
||||
"disableIcmpForwardingDesc": "ICMP 전달을 끄면 TUN이 ping에 직접 응답하므로 ping에 실제 지연 시간이 표시되지 않습니다.",
|
||||
"excludeInterface": "제외할 인터페이스",
|
||||
"excludeInterfaceDesc": "docker0와 같이 제외할 인터페이스로 들어오는 트래픽은 TUN을 거치지 않습니다.",
|
||||
"includeInterface": "포함할 인터페이스",
|
||||
"includeInterfaceDesc": "포함할 인터페이스로 들어오는 트래픽만 TUN을 거치며, 제외할 인터페이스는 더 이상 적용되지 않습니다.",
|
||||
"includeUid": "포함할 사용자 ID",
|
||||
"includeUidDesc": "포함할 사용자 ID의 프로세스 트래픽만 TUN을 거칩니다.",
|
||||
"excludeUid": "제외할 사용자 ID",
|
||||
"excludeUidDesc": "제외할 사용자 ID의 프로세스 트래픽은 TUN을 거치지 않습니다.",
|
||||
"excludeSrcPort": "제외할 소스 포트",
|
||||
"excludeSrcPortDesc": "제외할 소스 포트에서 나가는 트래픽은 TUN을 거치지 않습니다.",
|
||||
"excludeDstPort": "제외할 대상 포트",
|
||||
"excludeDstPortDesc": "제외할 대상 포트로 가는 트래픽은 TUN을 거치지 않습니다.",
|
||||
"udpTimeout": "UDP 시간 제한",
|
||||
"udpTimeoutDesc": "UDP 시간 제한은 초 단위이며 gvisor, system, mixed 스택에서만 작동합니다.",
|
||||
"dnsHijackDesc": "추가하지 않으면 53번 포트로 가는 모든 DNS 쿼리를 하이재킹합니다(any:53).",
|
||||
"tunOverrideDesc": "여기에 추가한 항목은 모든 프로필의 TUN 설정을 대체합니다. 추가하지 않은 항목은 프로필 자체 설정을 유지합니다. 사용자 지정 프로필이 직접 추가한 항목이 우선합니다.",
|
||||
"profileTunSettingsDesc": "이 프로필에만 적용되며 네트워크 설정의 TUN 덮어쓰기 항목보다 우선합니다.",
|
||||
"settingsCount": "{count, plural, other{설정 {count}개}}",
|
||||
"sectionsInEffect": "{count}개 적용 중",
|
||||
"itemsCount": "{count, plural, other{항목 {count}개}}",
|
||||
"additionalPrefix": "이름 접두사",
|
||||
"additionalSuffix": "이름 접미사",
|
||||
"skipCertVerify": "인증서 검증 건너뛰기",
|
||||
"ipVersion": "IP 버전",
|
||||
"addFilters": "필터 추가",
|
||||
"failedItem": "{label}: {message}",
|
||||
"failedCount": "{count}개 항목 실패",
|
||||
"importConfigInvalid": "가져올 수 있는 구성 파일이 아닙니다",
|
||||
"importConfigReplaceTip": "가져오면 이 프로필의 현재 프록시 그룹, 규칙, 설정이 대체됩니다",
|
||||
"networkName": "네트워크 이름",
|
||||
"networkSecret": "네트워크 시크릿",
|
||||
"peers": "피어",
|
||||
"virtualIpv4": "가상 IPv4",
|
||||
"hostname": "호스트 이름",
|
||||
"exitNodes": "출구 노드",
|
||||
"cipher": "암호화 방식",
|
||||
"protocol": "프로토콜",
|
||||
"protocolParam": "프로토콜 매개변수",
|
||||
"obfs": "난독화",
|
||||
"obfsParam": "난독화 매개변수",
|
||||
"obfsPassword": "난독화 비밀번호",
|
||||
"obfsMode": "난독화 모드",
|
||||
"obfsHost": "난독화 호스트",
|
||||
"plugin": "플러그인",
|
||||
"pluginMode": "플러그인 모드",
|
||||
"pluginHost": "플러그인 호스트",
|
||||
"privateKey": "개인 키",
|
||||
"publicKey": "공개 키",
|
||||
"privateKeyPassphrase": "개인 키 암호",
|
||||
"preSharedKey": "사전 공유 키",
|
||||
"secretKey": "키",
|
||||
"transport": "전송",
|
||||
"uploadBandwidth": "업로드 대역폭",
|
||||
"downloadBandwidth": "다운로드 대역폭",
|
||||
"protocolVersion": "프로토콜 버전",
|
||||
"portHopping": "포트 호핑",
|
||||
"hopInterval": "호핑 간격",
|
||||
"congestionControl": "혼잡 제어",
|
||||
"udpRelayMode": "UDP 릴레이 모드",
|
||||
"allowedIps": "허용 IP",
|
||||
"remoteDnsResolve": "원격 DNS 확인",
|
||||
"clientFingerprint": "클라이언트 핑거프린트",
|
||||
"required": "필수",
|
||||
"ageSecretKey": "age 비밀 키",
|
||||
"ageEncryptedProfile": "암호화된 프로필",
|
||||
"ageSecretKeyRequiredTip": "이 프로필은 age로 암호화되어 있어 복호화하려면 age 비밀 키가 필요합니다",
|
||||
"currentOutboundDesc": "시작 버튼이 있어 제거할 수 없습니다",
|
||||
"running": "실행 중",
|
||||
"notRunning": "실행 중 아님",
|
||||
"trafficPeak": "최고 {value}",
|
||||
"trafficTotal": "합계 {value}",
|
||||
"ipQualityShort": "품질",
|
||||
"ipTypeUnknown": "알 수 없는 유형",
|
||||
"tapIconToRetry": "아이콘을 눌러 다시 시도",
|
||||
"networkTakeover": "트래픽 가로채기",
|
||||
"portValue": "포트 {port}",
|
||||
"serviceAbnormalCount": "{count, plural, other{문제 {count}건}}",
|
||||
"serviceAllAvailable": "모두 사용 가능",
|
||||
"serviceShownOnDashboard": "대시보드에 표시됨",
|
||||
"groupTimeoutCount": "{count}개 시간 초과",
|
||||
"groupCountUnit": "개",
|
||||
"groupCount": "{count, plural, other{그룹 {count}개}}",
|
||||
"proxyGroupsAfterStart": "코어가 시작되면 그룹이 여기에 표시됩니다",
|
||||
"usedShort": "사용",
|
||||
"profileUpdatedAt": "{time} 업데이트",
|
||||
"profileExpiresIn": "{date} 만료, {days, plural, other{{days}일}} 남음",
|
||||
"profileDaysLeft": "{days, plural, other{{days}일 남음}}",
|
||||
"target": "대상",
|
||||
"outboundExit": "출구",
|
||||
"duration": "소요 시간",
|
||||
"traffic": "트래픽",
|
||||
"totalDownload": "다운로드량",
|
||||
"totalUpload": "업로드량",
|
||||
"initiatorShort": "출처",
|
||||
"result": "결과",
|
||||
"elapsed": "소요",
|
||||
"connectionStats": "연결 통계",
|
||||
"connectionStatsDesc": "실시간 연결, 최근 요청, DNS 쿼리",
|
||||
"memoryInfoDesc": "앱과 코어가 사용하는 메모리",
|
||||
"editDashboard": "대시보드 편집",
|
||||
"done": "완료",
|
||||
"dashboardAddableSection": "추가 가능",
|
||||
"customImportDroppedSubRules": "{count, plural, other{사용자 지정 프로필은 하위 규칙을 지원하지 않아 SUB-RULE 규칙 {label}개를 제외했습니다}}",
|
||||
"autoInclude": "자동 포함",
|
||||
"allReferencedProxies": "참조된 모든 프록시",
|
||||
"allReferencedProxyProviders": "참조된 모든 프록시 공급자"
|
||||
}
|
||||
+43
-28
@@ -41,12 +41,15 @@
|
||||
"other": "Другое",
|
||||
"about": "О программе",
|
||||
"en": "Английский",
|
||||
"es": "Испанский",
|
||||
"fr": "Французский",
|
||||
"ja": "Японский",
|
||||
"ko": "Корейский",
|
||||
"ru": "Русский",
|
||||
"zhCN": "Упрощённый китайский",
|
||||
"theme": "Тема",
|
||||
"extend": "Расширение",
|
||||
"finalConfig": "Итоговая конфигурация",
|
||||
"runtimeConfig": "Конфигурация выполнения",
|
||||
"allowLan": "Разрешить LAN",
|
||||
"tun": "TUN",
|
||||
"tunDesc": "TUN работает только в режиме администратора.",
|
||||
@@ -83,7 +86,7 @@
|
||||
"profileUrlNullValidationDesc": "Введите URL профиля",
|
||||
"profileUrlInvalidValidationDesc": "Введите корректный URL профиля",
|
||||
"autoUpdate": "Автообновление",
|
||||
"autoUpdateInterval": "Интервал автообновления (минуты)",
|
||||
"autoUpdateInterval": "Интервал автообновления",
|
||||
"profileAutoUpdateIntervalNullValidationDesc": "Введите интервал автообновления",
|
||||
"profileAutoUpdateIntervalInvalidValidationDesc": "Введите корректный интервал",
|
||||
"themeMode": "Режим темы",
|
||||
@@ -313,26 +316,20 @@
|
||||
"disclaimerLiabilityTitle": "Ограничение ответственности",
|
||||
"disclaimerLiabilityContent": "В максимальной степени, допустимой применимым законодательством, ни разработчики, ни участники проекта не несут ответственности за любой прямой, косвенный, случайный, особый, штрафной или последующий ущерб, возникший в результате использования или невозможности использования Программы, включая, помимо прочего, потерю данных, повреждение устройства, сбои сети, прерывание деятельности, упущенную выгоду или связанные с этим правовые споры, даже если они были предупреждены о возможности такого ущерба.",
|
||||
"disclaimerPrivacyTitle": "Сбор данных и конфиденциальность",
|
||||
"disclaimerPrivacyContent": "Программа не собирает и не отправляет адреса ваших подписок, сведения об узлах, содержимое конфигураций, посещённые сайты, записи о подключениях, содержимое трафика и журналы. Эти данные хранятся только на вашем устройстве, и у разработчиков нет к ним доступа.\n\nПрограмма обращается к сети только при использовании соответствующих функций, например загружает указанный вами адрес подписки при обновлении профиля или обращается к GitHub при проверке обновлений.\n\nНастольные версии (Windows, macOS, Linux) не содержат никаких сервисов статистики или отчётов о сбоях. Версия для Android использует два сервиса Google Firebase для повышения стабильности:",
|
||||
"disclaimerCrashlyticsTitle": "Firebase Crashlytics (аналитика сбоев)",
|
||||
"disclaimerCrashlyticsContent": "При сбое приложения отчёт о сбое отправляется автоматически.\n\nЧто собирается: трассировка стека и сообщение об ошибке, время сбоя, версия и номер сборки приложения, производитель и модель устройства, версия Android, ориентация экрана, свободная память и место в хранилище, наличие root-доступа, а также случайный идентификатор установки, который создаётся при установке и сбрасывается при переустановке.\n\nЦель: только поиск и исправление сбоев.\n\nВы можете отключить это в любой момент: «Инструменты > Общие > Аналитика сбоев».",
|
||||
"disclaimerAnalyticsTitle": "Firebase Analytics (статистика использования)",
|
||||
"disclaimerAnalyticsContent": "Вместе с Firebase автоматически собирается базовая статистика использования приложения.\n\nЧто собирается: базовые события, такие как первый запуск, открытие приложения и длительность сеанса, обновление приложения; идентификатор экземпляра приложения; модель устройства, версия ОС и язык системы; приблизительное местоположение на уровне страны или региона, определённое по IP-адресу.\n\nЦель: только оценка числа активных устройств, распределения версий и совместимости с ОС. Разработчики не используют эти данные для рекламы, не продают их и не связывают с вашими подписками или конфигурациями.",
|
||||
"disclaimerDataProcessingContent": "Эти данные обрабатываются и хранятся компанией Google от нашего имени, могут передаваться на серверы за пределами вашей страны или региона (например, в США) и регулируются Политикой конфиденциальности Google и документацией Firebase о конфиденциальности и безопасности. Отчёты о сбоях хранятся до 90 дней; статистика хранится в соответствии с политикой хранения Firebase по умолчанию.",
|
||||
"disclaimerPrivacyContent": "Программа не собирает и не отправляет адреса ваших подписок, сведения об узлах, содержимое конфигураций, посещённые сайты, записи о подключениях, содержимое трафика и журналы. Эти данные хранятся только на вашем устройстве, и у разработчиков нет к ним доступа.\n\nПрограмма обращается к сети только при использовании соответствующих функций, например загружает указанный вами адрес подписки при обновлении профиля или обращается к GitHub при проверке обновлений.\n\nПрограмма не содержит никаких сервисов статистики или отчётов о сбоях ни на одной платформе.",
|
||||
"disclaimerLicenseTitle": "Лицензия с открытым исходным кодом",
|
||||
"disclaimerLicenseContent": "Программа распространяется с открытым исходным кодом по лицензии GPL-3.0. Вы можете свободно использовать, изменять и распространять её при соблюдении этой лицензии: производные работы также должны распространяться по GPL-3.0 с сохранением уведомлений об авторских правах.\n\nСторонние компоненты Программы, включая ядро Clash.Meta, распространяются по своим собственным лицензиям. Авторы оригинала не несут ответственности за проблемы, возникшие в изменённых или распространяемых третьими лицами версиях.",
|
||||
"disclaimerChangesTitle": "Изменения заявления",
|
||||
"disclaimerChangesContent": "Разработчики могут изменять это заявление в любом выпуске; изменения вступают в силу с момента публикации выпуска. Продолжая пользоваться Программой после обновления, вы принимаете изменённое заявление.",
|
||||
"disclaimerAcceptTitle": "Принятие условий",
|
||||
"disclaimerAcceptContent": "Устанавливая, копируя или используя Программу, вы подтверждаете, что прочитали и приняли это заявление полностью. Если вы не согласны с каким-либо его условием, немедленно прекратите использование и удалите Программу.",
|
||||
"disclaimerAndroidOnly": "Только Android",
|
||||
"disclaimerGooglePrivacy": "Политика конфиденциальности Google",
|
||||
"disclaimerFirebasePrivacy": "Конфиденциальность и безопасность Firebase",
|
||||
"disclaimerReadToEnd": "Дочитайте до конца",
|
||||
"disclaimerRestateTitle": "Повторите заявление",
|
||||
"disclaimerRestateTip": "Чтобы подтвердить, что вы ознакомились с ним, полностью введите следующее заявление в поле ниже:",
|
||||
"disclaimerRestateHint": "Введите заявление выше",
|
||||
"disclaimerRestateMismatch": "Не совпадает с текстом заявления",
|
||||
"disclaimerAcknowledgeTitle": "Подтвердите заявление",
|
||||
"disclaimerAcknowledgeTip": "Чтобы подтвердить, что вы ознакомились с ним, прочитайте следующее заявление и отметьте пункт ниже:",
|
||||
"disclaimerAcknowledgeLabel": "Я прочитал(а) и понимаю это заявление",
|
||||
"agree": "Согласен",
|
||||
"hotkeyManagement": "Горячие клавиши",
|
||||
"hotkeyDesc": "Глобальные горячие клавиши работают, даже когда окно скрыто. Нажмите на действие, чтобы записать сочетание клавиш.",
|
||||
@@ -418,17 +415,19 @@
|
||||
"slide": "Сдвиг",
|
||||
"fade": "Растворение",
|
||||
"pureBlack": "Чисто чёрный",
|
||||
"colorSchemes": "Цветовые схемы",
|
||||
"palette": "Палитра",
|
||||
"tonalSpotScheme": "Тональный акцент",
|
||||
"fidelityScheme": "Точная передача",
|
||||
"customColor": "Свой цвет",
|
||||
"colorStyle": "Стиль палитры",
|
||||
"grid": "Сетка",
|
||||
"spectrum": "Спектр",
|
||||
"sliders": "Ползунки",
|
||||
"hue": "Оттенок",
|
||||
"saturation": "Насыщенность",
|
||||
"brightness": "Яркость",
|
||||
"hex": "Hex",
|
||||
"monochromeScheme": "Монохром",
|
||||
"neutralScheme": "Нейтральная",
|
||||
"vibrantScheme": "Яркая",
|
||||
"expressiveScheme": "Экспрессивная",
|
||||
"contentScheme": "Контентная",
|
||||
"rainbowScheme": "Радуга",
|
||||
"fruitSaladScheme": "Фруктовый микс",
|
||||
"vividStyle": "Яркий",
|
||||
"tintedStyle": "Тонированный",
|
||||
"softStyle": "Мягкий",
|
||||
"developerMode": "Режим разработчика",
|
||||
"developerModeEnableTip": "Режим разработчика включён.",
|
||||
"messageTest": "Тест сообщения",
|
||||
@@ -508,10 +507,6 @@
|
||||
"forceRestartCoreTip": "Вы уверены, что хотите принудительно перезапустить ядро?",
|
||||
"dnsHijacking": "Перехват DNS",
|
||||
"coreStatus": "Статус ядра",
|
||||
"dataCollectionTip": "Уведомление о сборе данных",
|
||||
"dataCollectionContent": "Это приложение использует Firebase Crashlytics для сбора информации о сбоях, чтобы повысить стабильность.\nСобираемые данные включают сведения об устройстве и подробности сбоя и не содержат личных конфиденциальных данных.\nЭту функцию можно отключить в настройках.",
|
||||
"crashlytics": "Аналитика сбоев",
|
||||
"crashlyticsTip": "Аналитика сбоев при сбое загружает лог без конфиденциальной информации.",
|
||||
"appendSystemDns": "Добавлять системный DNS",
|
||||
"editRule": "Редактировать правило",
|
||||
"extendMode": "Режим расширения",
|
||||
@@ -691,6 +686,7 @@
|
||||
"resourceUpdateInterval": "Интервал автообновления",
|
||||
"resourceUpdateIntervalTip": "Интервал автообновления должен быть больше 0",
|
||||
"hours": "часов",
|
||||
"minutes": "минут",
|
||||
"geoResources": "Geo",
|
||||
"geoSkipped": "{name}: уже последняя версия",
|
||||
"geoUpdated": "{name}: обновлено",
|
||||
@@ -813,6 +809,7 @@
|
||||
"filters": "Фильтры",
|
||||
"label": "Метка",
|
||||
"regex": "Регулярное выражение",
|
||||
"matchCase": "Учитывать регистр",
|
||||
"iconSets": "Наборы значков",
|
||||
"invalidIconSet": "Это не набор значков",
|
||||
"recommendedIcons": "Рекомендуемые",
|
||||
@@ -821,11 +818,12 @@
|
||||
"outbound": "Исходящие",
|
||||
"strictRoute": "Строгая маршрутизация",
|
||||
"congestionController": "Управление перегрузкой TCP",
|
||||
"congestionControllerDesc": "Управление перегрузкой TCP действует только со стеком mips.",
|
||||
"routeExcludeAddress": "Исключённые адреса маршрутов",
|
||||
"keepAliveIdle": "Простой TCP keep-alive",
|
||||
"disableKeepAlive": "Отключить TCP keep-alive",
|
||||
"routingMark": "Метка маршрутизации",
|
||||
"strictRouteDesc": "Строгая маршрутизация не даёт трафику вроде DNS обходить TUN, но другие устройства перестают видеть это устройство.",
|
||||
"strictRouteDesc": "Строгая маршрутизация не даёт трафику вроде DNS обходить TUN, а при выключенном IPv6 блокирует IPv6-соединения этого устройства.",
|
||||
"initFailed": "Не удалось запустить",
|
||||
"initFailedTip": "При запуске FlClash произошла ошибка, и работа не может быть продолжена. Скопируйте подробности, чтобы сообщить о проблеме. Если ошибка повторяется, очистка данных обычно позволяет снова запустить приложение.",
|
||||
"errorDetails": "Подробности ошибки",
|
||||
@@ -837,7 +835,22 @@
|
||||
"disableIcmpForwarding": "Отключить пересылку ICMP",
|
||||
"disableIcmpForwardingDesc": "При отключённой пересылке ICMP TUN сам отвечает на ping, поэтому ping больше не показывает реальную задержку.",
|
||||
"excludeInterface": "Исключённые интерфейсы",
|
||||
"excludeInterfaceDesc": "Исключённые интерфейсы действуют только в Linux: трафик с них, например с docker0, идёт в обход TUN.",
|
||||
"excludeInterfaceDesc": "Трафик с исключённых интерфейсов, например с docker0, идёт в обход TUN.",
|
||||
"includeInterface": "Включённые интерфейсы",
|
||||
"includeInterfaceDesc": "Через TUN идёт только трафик с включённых интерфейсов, а исключённые интерфейсы больше не действуют.",
|
||||
"includeUid": "Включённые ID пользователей",
|
||||
"includeUidDesc": "Через TUN идёт только трафик процессов включённых ID пользователей.",
|
||||
"excludeUid": "Исключённые ID пользователей",
|
||||
"excludeUidDesc": "Трафик процессов исключённых ID пользователей идёт в обход TUN.",
|
||||
"excludeSrcPort": "Исключённые исходные порты",
|
||||
"excludeSrcPortDesc": "Трафик с исключённых исходных портов идёт в обход TUN.",
|
||||
"excludeDstPort": "Исключённые порты назначения",
|
||||
"excludeDstPortDesc": "Трафик на исключённые порты назначения идёт в обход TUN.",
|
||||
"udpTimeout": "Тайм-аут UDP",
|
||||
"udpTimeoutDesc": "Тайм-аут UDP задаётся в секундах и действует только со стеками gvisor, system и mixed.",
|
||||
"dnsHijackDesc": "Без этого параметра TUN перехватывает все DNS-запросы на порт 53 (any:53).",
|
||||
"tunOverrideDesc": "Добавленные здесь параметры заменяют настройки TUN всех профилей; остальные остаются такими, как в профиле. Параметры, добавленные в самом пользовательском профиле, имеют приоритет.",
|
||||
"profileTunSettingsDesc": "Действует только для этого профиля и имеет приоритет над переопределяемыми параметрами TUN в настройках сети.",
|
||||
"settingsCount": "{count, plural, one{{count} настройка} few{{count} настройки} many{{count} настроек} other{{count} настройки}}",
|
||||
"sectionsInEffect": "Действуют: {count}",
|
||||
"itemsCount": "{count, plural, one{{count} элемент} few{{count} элемента} many{{count} элементов} other{{count} элемента}}",
|
||||
@@ -912,6 +925,8 @@
|
||||
"outboundExit": "Выход",
|
||||
"duration": "Длительность",
|
||||
"traffic": "Трафик",
|
||||
"totalDownload": "Загружено",
|
||||
"totalUpload": "Отдано",
|
||||
"initiatorShort": "Источник",
|
||||
"result": "Результат",
|
||||
"elapsed": "Время",
|
||||
|
||||
+43
-28
@@ -41,12 +41,15 @@
|
||||
"other": "其他",
|
||||
"about": "关于",
|
||||
"en": "英语",
|
||||
"es": "西班牙语",
|
||||
"fr": "法语",
|
||||
"ja": "日语",
|
||||
"ko": "韩语",
|
||||
"ru": "俄语",
|
||||
"zhCN": "中文简体",
|
||||
"theme": "主题",
|
||||
"extend": "扩展",
|
||||
"finalConfig": "最终配置",
|
||||
"runtimeConfig": "运行时配置",
|
||||
"allowLan": "局域网代理",
|
||||
"tun": "虚拟网卡",
|
||||
"tunDesc": "虚拟网卡仅在管理员模式生效。",
|
||||
@@ -83,7 +86,7 @@
|
||||
"profileUrlNullValidationDesc": "请输入配置URL",
|
||||
"profileUrlInvalidValidationDesc": "请输入有效配置URL",
|
||||
"autoUpdate": "自动更新",
|
||||
"autoUpdateInterval": "自动更新间隔(分钟)",
|
||||
"autoUpdateInterval": "自动更新间隔",
|
||||
"profileAutoUpdateIntervalNullValidationDesc": "请输入自动更新间隔时间",
|
||||
"profileAutoUpdateIntervalInvalidValidationDesc": "请输入有效间隔时间格式",
|
||||
"themeMode": "主题模式",
|
||||
@@ -313,26 +316,20 @@
|
||||
"disclaimerLiabilityTitle": "责任限制",
|
||||
"disclaimerLiabilityContent": "在适用法律允许的最大范围内,开发者及所有贡献者均不对因使用或无法使用本软件而产生的任何直接、间接、偶然、特殊、惩罚性或后果性损害承担责任,包括但不限于数据丢失、设备损坏、网络异常、业务中断、利润损失或因此引起的任何法律纠纷,即使已被告知发生此类损害的可能性。",
|
||||
"disclaimerPrivacyTitle": "数据收集与隐私",
|
||||
"disclaimerPrivacyContent": "本软件不会收集或上传你的订阅地址、节点信息、配置内容、访问的网站、连接记录、流量内容和日志,这些数据仅保存在你的设备本地,开发者无法获取。\n\n本软件只会在你使用相应功能时访问外部网络,例如更新订阅时访问你提供的订阅地址、检查更新时访问 GitHub。\n\n桌面版(Windows、macOS、Linux)未集成任何数据统计或崩溃上报服务。Android 版集成了 Google Firebase 的以下两项服务,用于改进应用稳定性:",
|
||||
"disclaimerCrashlyticsTitle": "Firebase Crashlytics(崩溃分析)",
|
||||
"disclaimerCrashlyticsContent": "应用发生崩溃时,自动上传崩溃报告。\n\n收集内容:崩溃堆栈与错误信息、崩溃发生时间、应用版本与构建号、设备品牌与型号、Android 系统版本、屏幕方向、剩余内存与存储空间、设备是否已 root,以及一个随安装生成、重装后即重置的随机安装标识。\n\n用途:仅用于定位和修复崩溃问题。\n\n你可以在“工具 > 常规 > 崩溃分析”中随时关闭。",
|
||||
"disclaimerAnalyticsTitle": "Firebase Analytics(使用统计)",
|
||||
"disclaimerAnalyticsContent": "随 Firebase 自动收集基础的应用使用统计。\n\n收集内容:首次启动、应用打开与会话时长、应用更新等基础事件,应用实例标识,设备型号、系统版本、系统语言,以及由 IP 地址推断的国家或地区级大致位置。\n\n用途:仅用于了解活跃设备数、版本分布与系统兼容情况。开发者不会将这些数据用于广告,不会出售,也不会与你的订阅或配置相关联。",
|
||||
"disclaimerDataProcessingContent": "上述数据由 Google 代为处理和存储,可能被传输至你所在国家或地区以外(如美国)的服务器,并受 Google 隐私政策与 Firebase 隐私和安全说明约束。崩溃报告最多保留 90 天,统计数据按 Firebase 的默认策略保留。",
|
||||
"disclaimerPrivacyContent": "本软件不会收集或上传你的订阅地址、节点信息、配置内容、访问的网站、连接记录、流量内容和日志,这些数据仅保存在你的设备本地,开发者无法获取。\n\n本软件只会在你使用相应功能时访问外部网络,例如更新订阅时访问你提供的订阅地址、检查更新时访问 GitHub。\n\n本软件在所有平台上均未集成任何数据统计或崩溃上报服务。",
|
||||
"disclaimerLicenseTitle": "开源协议",
|
||||
"disclaimerLicenseContent": "本软件以 GPL-3.0 协议开源。你可以在遵守该协议的前提下自由使用、修改和分发本软件,但须同样以 GPL-3.0 协议开源并保留原作者的版权声明。\n\n本软件包含的第三方组件(包括 Clash.Meta 内核)分别遵循其各自的开源协议。基于本软件修改或分发的版本所产生的任何问题,与原作者无关。",
|
||||
"disclaimerChangesTitle": "声明变更",
|
||||
"disclaimerChangesContent": "开发者有权随版本更新修改本声明,修改后的内容随新版本发布即生效。你在更新后继续使用本软件,即视为接受修改后的声明。",
|
||||
"disclaimerAcceptTitle": "接受声明",
|
||||
"disclaimerAcceptContent": "一旦你安装、复制或使用本软件,即视为你已阅读并同意本声明的全部内容。如你不同意本声明的任何条款,请立即停止使用并卸载本软件。",
|
||||
"disclaimerAndroidOnly": "仅 Android",
|
||||
"disclaimerGooglePrivacy": "Google 隐私政策",
|
||||
"disclaimerFirebasePrivacy": "Firebase 隐私和安全说明",
|
||||
"disclaimerReadToEnd": "请阅读至底部",
|
||||
"disclaimerRestateTitle": "复述声明",
|
||||
"disclaimerRestateTip": "为确认你已知悉,请在下方输入框中完整复述以下声明:",
|
||||
"disclaimerRestateHint": "在此输入上述声明",
|
||||
"disclaimerRestateMismatch": "与声明内容不一致",
|
||||
"disclaimerAcknowledgeTitle": "确认声明",
|
||||
"disclaimerAcknowledgeTip": "为确认你已知悉,请阅读以下声明并勾选下方选项:",
|
||||
"disclaimerAcknowledgeLabel": "我已阅读并理解此声明",
|
||||
"agree": "同意",
|
||||
"hotkeyManagement": "快捷键管理",
|
||||
"hotkeyDesc": "全局快捷键在窗口隐藏时依然生效,点击操作即可录制组合键。",
|
||||
@@ -418,17 +415,19 @@
|
||||
"slide": "滑动",
|
||||
"fade": "淡入",
|
||||
"pureBlack": "纯黑",
|
||||
"colorSchemes": "配色方案",
|
||||
"palette": "调色板",
|
||||
"tonalSpotScheme": "调性点缀",
|
||||
"fidelityScheme": "高保真",
|
||||
"customColor": "自定义颜色",
|
||||
"colorStyle": "配色风格",
|
||||
"grid": "网格",
|
||||
"spectrum": "光谱",
|
||||
"sliders": "滑块",
|
||||
"hue": "色相",
|
||||
"saturation": "饱和度",
|
||||
"brightness": "亮度",
|
||||
"hex": "十六进制",
|
||||
"monochromeScheme": "单色",
|
||||
"neutralScheme": "中性",
|
||||
"vibrantScheme": "活力",
|
||||
"expressiveScheme": "表现力",
|
||||
"contentScheme": "内容主题",
|
||||
"rainbowScheme": "彩虹",
|
||||
"fruitSaladScheme": "果缤纷",
|
||||
"vividStyle": "鲜明",
|
||||
"tintedStyle": "氛围",
|
||||
"softStyle": "柔和",
|
||||
"developerMode": "开发者模式",
|
||||
"developerModeEnableTip": "开发者模式已启用。",
|
||||
"messageTest": "消息测试",
|
||||
@@ -508,10 +507,6 @@
|
||||
"forceRestartCoreTip": "您确定要强制重启核心吗?",
|
||||
"dnsHijacking": "DNS劫持",
|
||||
"coreStatus": "核心状态",
|
||||
"dataCollectionTip": "数据收集说明",
|
||||
"dataCollectionContent": "本应用使用 Firebase Crashlytics 收集崩溃信息以改进应用稳定性。\n收集的数据包括设备信息和崩溃详情,不包含个人敏感数据。\n您可以在设置中关闭此功能。",
|
||||
"crashlytics": "崩溃分析",
|
||||
"crashlyticsTip": "崩溃分析开启后,应用崩溃时会上传不含敏感信息的日志。",
|
||||
"appendSystemDns": "追加系统DNS",
|
||||
"editRule": "编辑规则",
|
||||
"extendMode": "扩展模式",
|
||||
@@ -691,6 +686,7 @@
|
||||
"resourceUpdateInterval": "自动更新间隔",
|
||||
"resourceUpdateIntervalTip": "自动更新间隔必须大于0",
|
||||
"hours": "小时",
|
||||
"minutes": "分钟",
|
||||
"geoResources": "Geo",
|
||||
"geoSkipped": "{name} 已是最新版本",
|
||||
"geoUpdated": "{name} 已更新",
|
||||
@@ -813,6 +809,7 @@
|
||||
"filters": "筛选",
|
||||
"label": "标签",
|
||||
"regex": "正则",
|
||||
"matchCase": "区分大小写",
|
||||
"iconSets": "图标集",
|
||||
"invalidIconSet": "不是有效的图标集",
|
||||
"recommendedIcons": "推荐",
|
||||
@@ -821,11 +818,12 @@
|
||||
"outbound": "出站",
|
||||
"strictRoute": "严格路由",
|
||||
"congestionController": "TCP 拥塞控制",
|
||||
"congestionControllerDesc": "TCP 拥塞控制仅在 mips 栈生效。",
|
||||
"routeExcludeAddress": "排除路由地址",
|
||||
"keepAliveIdle": "TCP 保持活动空闲时间",
|
||||
"disableKeepAlive": "禁用 TCP 保持活动",
|
||||
"routingMark": "路由标记",
|
||||
"strictRouteDesc": "严格路由防止 DNS 等流量绕过虚拟网卡,开启后其他设备将无法访问本机。",
|
||||
"strictRouteDesc": "严格路由防止 DNS 等流量绕过虚拟网卡,关闭 IPv6 时会阻断本机的 IPv6 连接。",
|
||||
"initFailed": "启动失败",
|
||||
"initFailedTip": "FlClash 启动时出错,无法继续运行。可以复制错误详情用于反馈;如果问题反复出现,清除数据后通常可以重新启动。",
|
||||
"errorDetails": "错误详情",
|
||||
@@ -837,7 +835,22 @@
|
||||
"disableIcmpForwarding": "禁用ICMP转发",
|
||||
"disableIcmpForwardingDesc": "禁用 ICMP 转发后由虚拟网卡直接应答 ping,ping 将不再显示真实延迟。",
|
||||
"excludeInterface": "排除网卡",
|
||||
"excludeInterfaceDesc": "排除网卡仅在 Linux 生效,从这些网卡(如 docker0)进入的流量不经过虚拟网卡。",
|
||||
"excludeInterfaceDesc": "从这些网卡(如 docker0)进入的流量不经过虚拟网卡。",
|
||||
"includeInterface": "包含网卡",
|
||||
"includeInterfaceDesc": "只有从包含网卡进入的流量经过虚拟网卡,设置后排除网卡不再生效。",
|
||||
"includeUid": "包含用户 ID",
|
||||
"includeUidDesc": "只有这些用户 ID 的进程产生的流量经过虚拟网卡。",
|
||||
"excludeUid": "排除用户 ID",
|
||||
"excludeUidDesc": "这些用户 ID 的进程产生的流量不经过虚拟网卡。",
|
||||
"excludeSrcPort": "排除源端口",
|
||||
"excludeSrcPortDesc": "源端口为这些端口的流量不经过虚拟网卡。",
|
||||
"excludeDstPort": "排除目标端口",
|
||||
"excludeDstPortDesc": "发往这些目标端口的流量不经过虚拟网卡。",
|
||||
"udpTimeout": "UDP 超时",
|
||||
"udpTimeoutDesc": "UDP 超时以秒为单位,仅在 gvisor、system 和 mixed 栈生效。",
|
||||
"dnsHijackDesc": "未添加时劫持所有发往 53 端口的 DNS 请求(any:53)。",
|
||||
"tunOverrideDesc": "添加的项会覆写所有配置的虚拟网卡设置,未添加的项沿用配置自身的设置。自定义配置自己添加的项优先。",
|
||||
"profileTunSettingsDesc": "仅作用于当前配置,并优先于网络设置中的虚拟网卡覆写项。",
|
||||
"settingsCount": "{count} 项设置",
|
||||
"sectionsInEffect": "{count} 项生效",
|
||||
"itemsCount": "{count} 项",
|
||||
@@ -912,6 +925,8 @@
|
||||
"outboundExit": "出口",
|
||||
"duration": "时长",
|
||||
"traffic": "流量",
|
||||
"totalDownload": "下载总量",
|
||||
"totalUpload": "上传总量",
|
||||
"initiatorShort": "发起",
|
||||
"result": "结果",
|
||||
"elapsed": "耗时",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:fl_clash/enum/enum.dart';
|
||||
import 'package:fl_clash/ui/color.dart';
|
||||
import 'package:material_ui/material_ui.dart';
|
||||
|
||||
import 'app_localizations.dart';
|
||||
@@ -95,19 +96,14 @@ extension RestoreStrategyL10n on RestoreStrategy {
|
||||
}
|
||||
}
|
||||
|
||||
extension DynamicSchemeVariantL10n on DynamicSchemeVariant {
|
||||
extension ColorStyleL10n on ColorStyle {
|
||||
String get label {
|
||||
final appLocalizations = currentAppLocalizations;
|
||||
return switch (this) {
|
||||
DynamicSchemeVariant.tonalSpot => appLocalizations.tonalSpotScheme,
|
||||
DynamicSchemeVariant.fidelity => appLocalizations.fidelityScheme,
|
||||
DynamicSchemeVariant.monochrome => appLocalizations.monochromeScheme,
|
||||
DynamicSchemeVariant.neutral => appLocalizations.neutralScheme,
|
||||
DynamicSchemeVariant.vibrant => appLocalizations.vibrantScheme,
|
||||
DynamicSchemeVariant.expressive => appLocalizations.expressiveScheme,
|
||||
DynamicSchemeVariant.content => appLocalizations.contentScheme,
|
||||
DynamicSchemeVariant.rainbow => appLocalizations.rainbowScheme,
|
||||
DynamicSchemeVariant.fruitSalad => appLocalizations.fruitSaladScheme,
|
||||
ColorStyle.vivid => appLocalizations.vividStyle,
|
||||
ColorStyle.tinted => appLocalizations.tintedStyle,
|
||||
ColorStyle.soft => appLocalizations.softStyle,
|
||||
ColorStyle.monochrome => appLocalizations.monochromeScheme,
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -117,7 +113,10 @@ extension LocaleL10n on Locale {
|
||||
final appLocalizations = currentAppLocalizations;
|
||||
return switch (toString()) {
|
||||
'en' => appLocalizations.en,
|
||||
'es' => appLocalizations.es,
|
||||
'fr' => appLocalizations.fr,
|
||||
'ja' => appLocalizations.ja,
|
||||
'ko' => appLocalizations.ko,
|
||||
'ru' => appLocalizations.ru,
|
||||
'zh_CN' => appLocalizations.zhCN,
|
||||
final code => code,
|
||||
|
||||
@@ -17,14 +17,20 @@ import 'package:intl/message_lookup_by_library.dart';
|
||||
import 'package:intl/src/intl_helpers.dart';
|
||||
|
||||
import 'messages_en.dart' as messages_en;
|
||||
import 'messages_es.dart' as messages_es;
|
||||
import 'messages_fr.dart' as messages_fr;
|
||||
import 'messages_ja.dart' as messages_ja;
|
||||
import 'messages_ko.dart' as messages_ko;
|
||||
import 'messages_ru.dart' as messages_ru;
|
||||
import 'messages_zh_CN.dart' as messages_zh_cn;
|
||||
|
||||
typedef Future<dynamic> LibraryLoader();
|
||||
Map<String, LibraryLoader> _deferredLibraries = {
|
||||
'en': () => new SynchronousFuture(null),
|
||||
'es': () => new SynchronousFuture(null),
|
||||
'fr': () => new SynchronousFuture(null),
|
||||
'ja': () => new SynchronousFuture(null),
|
||||
'ko': () => new SynchronousFuture(null),
|
||||
'ru': () => new SynchronousFuture(null),
|
||||
'zh_CN': () => new SynchronousFuture(null),
|
||||
};
|
||||
@@ -33,8 +39,14 @@ MessageLookupByLibrary? _findExact(String localeName) {
|
||||
switch (localeName) {
|
||||
case 'en':
|
||||
return messages_en.messages;
|
||||
case 'es':
|
||||
return messages_es.messages;
|
||||
case 'fr':
|
||||
return messages_fr.messages;
|
||||
case 'ja':
|
||||
return messages_ja.messages;
|
||||
case 'ko':
|
||||
return messages_ko.messages;
|
||||
case 'ru':
|
||||
return messages_ru.messages;
|
||||
case 'zh_CN':
|
||||
|
||||
+236
-209
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+227
-202
@@ -32,178 +32,175 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
|
||||
static String m4(url) => "${url} からプロファイルを作成しますか?";
|
||||
|
||||
static String m5(groups) =>
|
||||
"プロキシグループ ${groups} の include-all を破棄しました。これらのグループで使うプロキシまたはプロキシプロバイダーを追加してください";
|
||||
|
||||
static String m6(count, label) =>
|
||||
static String m5(count, label) =>
|
||||
"${Intl.plural(count, other: 'カスタム設定はサブルールに対応していないため、SUB-RULE ルール ${label} 件を破棄しました')}";
|
||||
|
||||
static String m7(message) => "コアがこのプロキシを解析できません:${message}";
|
||||
static String m6(message) => "コアがこのプロキシを解析できません:${message}";
|
||||
|
||||
static String m8(proxy, target) =>
|
||||
static String m7(proxy, target) =>
|
||||
"${proxy} は ${target} 経由で接続しますが、${target} から再び ${proxy} に戻るため、ループになります";
|
||||
|
||||
static String m9(name) => "名前 ${name} は他のプロキシまたはプロキシグループで使用されています";
|
||||
static String m8(name) => "名前 ${name} は他のプロキシまたはプロキシグループで使用されています";
|
||||
|
||||
static String m10(path) => "プロキシグループが循環参照しています:${path}";
|
||||
static String m9(path) => "プロキシグループが循環参照しています:${path}";
|
||||
|
||||
static String m11(name) =>
|
||||
static String m10(name) =>
|
||||
"空グループのフォールバックはプロキシである必要がありますが、${name} は存在しないかプロキシグループです";
|
||||
|
||||
static String m12(name, message) => "${name}は有効な正規表現ではありません:${message}";
|
||||
static String m11(name, message) => "${name}は有効な正規表現ではありません:${message}";
|
||||
|
||||
static String m13(name) => "ダイヤラープロキシ ${name} が存在しません";
|
||||
static String m12(name) => "ダイヤラープロキシ ${name} が存在しません";
|
||||
|
||||
static String m14(names) => "次のプロキシプロバイダーは存在しません:${names}";
|
||||
static String m13(names) => "次のプロキシプロバイダーは存在しません:${names}";
|
||||
|
||||
static String m15(names) => "次のプロキシまたはポリシーは存在しません:${names}";
|
||||
static String m14(names) => "次のプロキシまたはポリシーは存在しません:${names}";
|
||||
|
||||
static String m16(name) => "${name} は組み込みポリシー名のため使用できません";
|
||||
static String m15(name) => "${name} は組み込みポリシー名のため使用できません";
|
||||
|
||||
static String m17(count) => "${count} 件に問題があり、プロファイルの適用に失敗する可能性があります";
|
||||
static String m16(count) => "${count} 件に問題があり、プロファイルの適用に失敗する可能性があります";
|
||||
|
||||
static String m17(count) => "${count} 日前";
|
||||
|
||||
static String m18(count) => "${count} 日前";
|
||||
|
||||
static String m19(count) => "${count} 日前";
|
||||
static String m19(label) => "選択した${label}を削除してもよろしいですか?";
|
||||
|
||||
static String m20(label) => "選択した${label}を削除してもよろしいですか?";
|
||||
static String m20(label) => "この${label}を削除してもよろしいですか?";
|
||||
|
||||
static String m21(label) => "この${label}を削除してもよろしいですか?";
|
||||
static String m21(label) => "${label}の詳細";
|
||||
|
||||
static String m22(label) => "${label}の詳細";
|
||||
static String m22(name) => "${name} 経由の接続が使用元のプロキシに戻るため、接続を中止しました";
|
||||
|
||||
static String m23(name) => "${name} 経由の接続が使用元のプロキシに戻るため、接続を中止しました";
|
||||
static String m23(label) => "${label}は空にできません";
|
||||
|
||||
static String m24(label) => "${label}は空にできません";
|
||||
static String m24(label) => "${label}はすでに存在します";
|
||||
|
||||
static String m25(label) => "${label}はすでに存在します";
|
||||
static String m25(count) => "${count} 件が失敗しました";
|
||||
|
||||
static String m26(count) => "${count} 件が失敗しました";
|
||||
static String m26(label, message) => "${label}:${message}";
|
||||
|
||||
static String m27(label, message) => "${label}:${message}";
|
||||
static String m27(name) => "${name} はすでに最新です";
|
||||
|
||||
static String m28(name) => "${name} はすでに最新です";
|
||||
static String m28(name) => "${name} を更新しました";
|
||||
|
||||
static String m29(name) => "${name} を更新しました";
|
||||
static String m29(count) => "${count} 個";
|
||||
|
||||
static String m30(count) => "${count} 個";
|
||||
static String m30(count) => "${count} 件タイムアウト";
|
||||
|
||||
static String m31(count) => "${count} 件タイムアウト";
|
||||
static String m31(action) => "「${action}」で使用中です。保存するとこちらに移動します。";
|
||||
|
||||
static String m32(action) => "「${action}」で使用中です。保存するとこちらに移動します。";
|
||||
static String m32(modifiers) => "${modifiers} のいずれかを含めてください";
|
||||
|
||||
static String m33(modifiers) => "${modifiers} のいずれかを含めてください";
|
||||
static String m33(count) => "${count} 時間前";
|
||||
|
||||
static String m34(count) => "${count} 時間前";
|
||||
|
||||
static String m35(count) => "${count} 時間前";
|
||||
static String m35(target) => "${target} は無効なポリシーです";
|
||||
|
||||
static String m36(target) => "${target} は無効なポリシーです";
|
||||
static String m36(proxyName) => "${proxyName} は無効なプロキシです";
|
||||
|
||||
static String m37(proxyName) => "${proxyName} は無効なプロキシです";
|
||||
static String m37(providerName) => "${providerName} は無効なプロキシプロバイダーです";
|
||||
|
||||
static String m38(providerName) => "${providerName} は無効なプロキシプロバイダーです";
|
||||
static String m38(ruleSet) => "${ruleSet} は無効なルールセットです";
|
||||
|
||||
static String m39(ruleSet) => "${ruleSet} は無効なルールセットです";
|
||||
static String m39(subRule) => "${subRule} は無効な SUB_RULE です";
|
||||
|
||||
static String m40(subRule) => "${subRule} は無効な SUB_RULE です";
|
||||
static String m40(count) => "${count} 件";
|
||||
|
||||
static String m41(count) => "${count} 件";
|
||||
static String m41(line, message) => "${line}行目:${message}";
|
||||
|
||||
static String m42(line, message) => "${line}行目:${message}";
|
||||
|
||||
static String m43(appName) =>
|
||||
static String m42(appName) =>
|
||||
"1. システム設定 > プライバシーとセキュリティ を開く\n2. 位置情報サービス を選択\n3. リストで ${appName} を見つけてチェックを入れる\n\n設定が完了したらアプリに戻ると、通常どおり使用できます。ご協力ありがとうございます。";
|
||||
|
||||
static String m44(label, max) => "${label}は最大${max}文字です";
|
||||
static String m43(label, max) => "${label}は最大${max}文字です";
|
||||
|
||||
static String m45(size) => "${size} を解放しました";
|
||||
static String m44(size) => "${size} を解放しました";
|
||||
|
||||
static String m45(count) => "${count} 分前";
|
||||
|
||||
static String m46(count) => "${count} 分前";
|
||||
|
||||
static String m47(count) => "${count} 分前";
|
||||
static String m47(count) => "${count} か月前";
|
||||
|
||||
static String m48(count) => "${count} か月前";
|
||||
|
||||
static String m49(count) => "${count} か月前";
|
||||
|
||||
static String m50(code) =>
|
||||
static String m49(code) =>
|
||||
"サーバーがアクセスを拒否しました(HTTP ${code})。リンクの期限切れか、認証情報が誤っている可能性があります";
|
||||
|
||||
static String m51(code) => "サーバーがリクエストを拒否しました(HTTP ${code})";
|
||||
static String m50(code) => "サーバーがリクエストを拒否しました(HTTP ${code})";
|
||||
|
||||
static String m52(code) =>
|
||||
static String m51(code) =>
|
||||
"このアドレスには何も見つかりませんでした(HTTP ${code})。URL が正しいか確認してください";
|
||||
|
||||
static String m53(detail) => "ネットワークリクエストに失敗しました:${detail}";
|
||||
static String m52(detail) => "ネットワークリクエストに失敗しました:${detail}";
|
||||
|
||||
static String m54(code) => "サーバーで問題が発生しました(HTTP ${code})。しばらくしてから再試行してください";
|
||||
static String m53(code) => "サーバーで問題が発生しました(HTTP ${code})。しばらくしてから再試行してください";
|
||||
|
||||
static String m55(label) => "${label}はまだありません";
|
||||
static String m54(label) => "${label}はまだありません";
|
||||
|
||||
static String m56(label, min, max) => "${label}は${min}から${max}の範囲で指定してください";
|
||||
static String m55(label, min, max) => "${label}は${min}から${max}の範囲で指定してください";
|
||||
|
||||
static String m57(label) => "${label}は数値である必要があります";
|
||||
static String m56(label) => "${label}は数値である必要があります";
|
||||
|
||||
static String m58(label) => "${label} は 1024〜49151 の範囲で指定してください";
|
||||
static String m57(label) => "${label} は 1024〜49151 の範囲で指定してください";
|
||||
|
||||
static String m59(port) => "ポート ${port}";
|
||||
static String m58(port) => "ポート ${port}";
|
||||
|
||||
static String m60(days) => "残り ${days} 日";
|
||||
static String m59(days) => "残り ${days} 日";
|
||||
|
||||
static String m61(date, days) => "${date} に期限切れ、残り ${days} 日";
|
||||
static String m60(date, days) => "${date} に期限切れ、残り ${days} 日";
|
||||
|
||||
static String m62(time) => "${time}に更新";
|
||||
static String m61(time) => "${time}に更新";
|
||||
|
||||
static String m63(label, profiles) =>
|
||||
static String m62(label, profiles) =>
|
||||
"${label} は ${profiles} でまだ使用されており、削除するとそれらが正常に動作しなくなります。削除してもよろしいですか?";
|
||||
|
||||
static String m64(count, label) =>
|
||||
static String m63(count, label) =>
|
||||
"${Intl.plural(count, other: 'プロキシ ${label} 件')}";
|
||||
|
||||
static String m65(name, count) => "${name} など${count}件のプロキシ";
|
||||
static String m64(name, count) => "${name} など${count}件のプロキシ";
|
||||
|
||||
static String m66(removed) =>
|
||||
static String m65(removed) =>
|
||||
"次のプロキシが削除されます:${removed}。名前を変えた行は新しいプロキシとして扱われ、削除されたプロキシを参照するカスタムプロファイルでは見つからないと表示されます。適用しますか?";
|
||||
|
||||
static String m67(removed, added) =>
|
||||
static String m66(removed, added) =>
|
||||
"次のプロキシが削除されます:${removed}。次のプロキシが追加されます:${added}。名前を変えた行は新しいプロキシとして扱われ、削除されたプロキシを参照するカスタムプロファイルでは見つからないと表示されます。適用しますか?";
|
||||
|
||||
static String m68(label) =>
|
||||
static String m67(label) =>
|
||||
"${label} はこのプロファイルのルール、プロキシグループ、ダイヤラープロキシ、DNS または NTP からまだ参照されており、削除するとそれらの参照は無効になります。削除してもよろしいですか?";
|
||||
|
||||
static String m69(count, label) =>
|
||||
static String m68(count, label) =>
|
||||
"${Intl.plural(count, other: 'プロキシグループ ${label} 件')}";
|
||||
|
||||
static String m70(count, label) =>
|
||||
static String m69(count, label) =>
|
||||
"${Intl.plural(count, other: 'ルール ${label} 件')}";
|
||||
|
||||
static String m71(appName) => "${appName}(セーフモード)";
|
||||
static String m70(appName) => "${appName}(セーフモード)";
|
||||
|
||||
static String m72(count) => "${count} 秒";
|
||||
static String m71(count) => "${count} 秒";
|
||||
|
||||
static String m73(count) => "${count} 件が有効";
|
||||
static String m72(count) => "${count} 件が有効";
|
||||
|
||||
static String m74(count) => "${count} 件に問題";
|
||||
static String m73(count) => "${count} 件に問題";
|
||||
|
||||
static String m75(time) => "${time} に検査";
|
||||
static String m74(time) => "${time} に検査";
|
||||
|
||||
static String m76(count) => "設定 ${count} 件";
|
||||
static String m75(count) => "設定 ${count} 件";
|
||||
|
||||
static String m77(link) => "${link} からプロキシを読み取れませんでした";
|
||||
static String m76(link) => "${link} からプロキシを読み取れませんでした";
|
||||
|
||||
static String m78(label) => "${label}は1項目のみ指定できます";
|
||||
static String m77(label) => "${label}は1項目のみ指定できます";
|
||||
|
||||
static String m79(value) => "ピーク ${value}";
|
||||
static String m78(value) => "ピーク ${value}";
|
||||
|
||||
static String m80(value) => "累計 ${value}";
|
||||
static String m79(value) => "累計 ${value}";
|
||||
|
||||
static String m81(label) => "${label}はURLである必要があります";
|
||||
static String m80(label) => "${label}はURLである必要があります";
|
||||
|
||||
static String m81(count) => "${count} 年前";
|
||||
|
||||
static String m82(count) => "${count} 年前";
|
||||
|
||||
static String m83(count) => "${count} 年前";
|
||||
|
||||
final messages = _notInlinedMessages(_notInlinedMessages);
|
||||
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
|
||||
"about": MessageLookupByLibrary.simpleMessage("アプリについて"),
|
||||
@@ -262,6 +259,12 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"このプロファイルは age で暗号化されており、復号には age 秘密鍵が必要です",
|
||||
),
|
||||
"agree": MessageLookupByLibrary.simpleMessage("同意する"),
|
||||
"allReferencedProxies": MessageLookupByLibrary.simpleMessage(
|
||||
"参照されているすべてのプロキシ",
|
||||
),
|
||||
"allReferencedProxyProviders": MessageLookupByLibrary.simpleMessage(
|
||||
"参照されているすべてのプロキシプロバイダー",
|
||||
),
|
||||
"allowBypass": MessageLookupByLibrary.simpleMessage("アプリによるVPNバイパスを許可"),
|
||||
"allowLan": MessageLookupByLibrary.simpleMessage("LANプロキシ"),
|
||||
"allowedIps": MessageLookupByLibrary.simpleMessage("許可する IP"),
|
||||
@@ -286,6 +289,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"autoCloseConnectionsDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"プロキシを切り替えると、既存の接続を自動的に閉じます。",
|
||||
),
|
||||
"autoInclude": MessageLookupByLibrary.simpleMessage("自動で含める"),
|
||||
"autoLaunch": MessageLookupByLibrary.simpleMessage("自動起動"),
|
||||
"autoRun": MessageLookupByLibrary.simpleMessage("自動実行"),
|
||||
"autoRunDesc": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -293,7 +297,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
),
|
||||
"autoSetSystemDns": MessageLookupByLibrary.simpleMessage("システムDNSを自動設定"),
|
||||
"autoUpdate": MessageLookupByLibrary.simpleMessage("自動更新"),
|
||||
"autoUpdateInterval": MessageLookupByLibrary.simpleMessage("自動更新間隔(分)"),
|
||||
"autoUpdateInterval": MessageLookupByLibrary.simpleMessage("自動更新間隔"),
|
||||
"back": MessageLookupByLibrary.simpleMessage("戻る"),
|
||||
"backup": MessageLookupByLibrary.simpleMessage("バックアップ"),
|
||||
"backupAndRestore": MessageLookupByLibrary.simpleMessage("バックアップと復元"),
|
||||
@@ -324,6 +328,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"bind": MessageLookupByLibrary.simpleMessage("連携"),
|
||||
"blacklistMode": MessageLookupByLibrary.simpleMessage("ブラックリストモード"),
|
||||
"blockConnection": MessageLookupByLibrary.simpleMessage("接続をブロック"),
|
||||
"brightness": MessageLookupByLibrary.simpleMessage("明度"),
|
||||
"bypassDomain": MessageLookupByLibrary.simpleMessage("除外ドメイン"),
|
||||
"bypassDomainDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"除外ドメインはシステムプロキシが有効な場合のみ適用されます。",
|
||||
@@ -382,7 +387,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"close": MessageLookupByLibrary.simpleMessage("閉じる"),
|
||||
"closeConnections": MessageLookupByLibrary.simpleMessage("接続を閉じる"),
|
||||
"color": MessageLookupByLibrary.simpleMessage("カラー"),
|
||||
"colorSchemes": MessageLookupByLibrary.simpleMessage("カラースキーム"),
|
||||
"colorStyle": MessageLookupByLibrary.simpleMessage("配色スタイル"),
|
||||
"columns": MessageLookupByLibrary.simpleMessage("列数"),
|
||||
"compact": MessageLookupByLibrary.simpleMessage("コンパクト"),
|
||||
"compatible": MessageLookupByLibrary.simpleMessage("互換モード"),
|
||||
@@ -401,6 +406,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
),
|
||||
"congestionControl": MessageLookupByLibrary.simpleMessage("輻輳制御"),
|
||||
"congestionController": MessageLookupByLibrary.simpleMessage("TCP 輻輳制御"),
|
||||
"congestionControllerDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"TCP 輻輳制御は mips スタックでのみ有効です。",
|
||||
),
|
||||
"connected": MessageLookupByLibrary.simpleMessage("接続済み"),
|
||||
"connecting": MessageLookupByLibrary.simpleMessage("接続中…"),
|
||||
"connection": MessageLookupByLibrary.simpleMessage("接続"),
|
||||
@@ -412,7 +420,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"connectivity": MessageLookupByLibrary.simpleMessage("接続状態:"),
|
||||
"content": MessageLookupByLibrary.simpleMessage("内容"),
|
||||
"contentNotEmpty": MessageLookupByLibrary.simpleMessage("内容は空にできません"),
|
||||
"contentScheme": MessageLookupByLibrary.simpleMessage("コンテンツ"),
|
||||
"controlGlobalAddedRules": MessageLookupByLibrary.simpleMessage(
|
||||
"グローバル追加ルールを管理",
|
||||
),
|
||||
@@ -430,10 +437,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"crashDetected": MessageLookupByLibrary.simpleMessage("クラッシュを検出しました"),
|
||||
"crashDetectedTip": m3,
|
||||
"crashTest": MessageLookupByLibrary.simpleMessage("クラッシュテスト"),
|
||||
"crashlytics": MessageLookupByLibrary.simpleMessage("クラッシュ分析"),
|
||||
"crashlyticsTip": MessageLookupByLibrary.simpleMessage(
|
||||
"クラッシュ分析を有効にすると、クラッシュ時に機密情報を含まないログをアップロードします。",
|
||||
),
|
||||
"create": MessageLookupByLibrary.simpleMessage("作成"),
|
||||
"createProfileFromUrlTip": m4,
|
||||
"creationTime": MessageLookupByLibrary.simpleMessage("作成日時"),
|
||||
@@ -441,23 +444,23 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"起動ボタンがあるため削除できません",
|
||||
),
|
||||
"custom": MessageLookupByLibrary.simpleMessage("カスタム"),
|
||||
"customImportDroppedIncludeAll": m5,
|
||||
"customImportDroppedSubRules": m6,
|
||||
"customIssueCoreRejected": m7,
|
||||
"customIssueDialerLoop": m8,
|
||||
"customIssueDuplicateName": m9,
|
||||
"customColor": MessageLookupByLibrary.simpleMessage("カスタムカラー"),
|
||||
"customImportDroppedSubRules": m5,
|
||||
"customIssueCoreRejected": m6,
|
||||
"customIssueDialerLoop": m7,
|
||||
"customIssueDuplicateName": m8,
|
||||
"customIssueEmptyName": MessageLookupByLibrary.simpleMessage("名前が空です"),
|
||||
"customIssueGroupLoop": m10,
|
||||
"customIssueInvalidEmptyFallback": m11,
|
||||
"customIssueInvalidFilter": m12,
|
||||
"customIssueMissingDialer": m13,
|
||||
"customIssueMissingProviders": m14,
|
||||
"customIssueMissingProxies": m15,
|
||||
"customIssueGroupLoop": m9,
|
||||
"customIssueInvalidEmptyFallback": m10,
|
||||
"customIssueInvalidFilter": m11,
|
||||
"customIssueMissingDialer": m12,
|
||||
"customIssueMissingProviders": m13,
|
||||
"customIssueMissingProxies": m14,
|
||||
"customIssueNoProxySource": MessageLookupByLibrary.simpleMessage(
|
||||
"プロキシもプロキシプロバイダーも選択されていないため、コアはこのグループを拒否します",
|
||||
),
|
||||
"customIssueReservedName": m16,
|
||||
"customIssuesSummary": m17,
|
||||
"customIssueReservedName": m15,
|
||||
"customIssuesSummary": m16,
|
||||
"customProfile": MessageLookupByLibrary.simpleMessage("カスタム"),
|
||||
"customProfileDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"アプリのプロキシと他のプロファイルからプロキシグループとルールを組み立てます",
|
||||
@@ -472,15 +475,11 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"dark": MessageLookupByLibrary.simpleMessage("ダーク"),
|
||||
"dashboard": MessageLookupByLibrary.simpleMessage("ダッシュボード"),
|
||||
"dashboardAddableSection": MessageLookupByLibrary.simpleMessage("追加できるカード"),
|
||||
"dataCollectionContent": MessageLookupByLibrary.simpleMessage(
|
||||
"本アプリは、安定性向上のために Firebase Crashlytics を使用してクラッシュ情報を収集します。\n収集されるデータにはデバイス情報とクラッシュの詳細が含まれますが、個人の機密データは含まれません。\nこの機能は設定で無効にできます。",
|
||||
),
|
||||
"dataCollectionTip": MessageLookupByLibrary.simpleMessage("データ収集について"),
|
||||
"databaseWriteFailedTip": MessageLookupByLibrary.simpleMessage(
|
||||
"変更の保存に失敗したため、元に戻しました",
|
||||
),
|
||||
"daysAgo": m18,
|
||||
"daysAgoShort": m19,
|
||||
"daysAgo": m17,
|
||||
"daysAgoShort": m18,
|
||||
"defaultSelected": MessageLookupByLibrary.simpleMessage("デフォルトの選択"),
|
||||
"defaultText": MessageLookupByLibrary.simpleMessage("デフォルト"),
|
||||
"definitionNotMap": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -490,15 +489,15 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"delayFailed": MessageLookupByLibrary.simpleMessage("失敗"),
|
||||
"delayTest": MessageLookupByLibrary.simpleMessage("遅延テスト"),
|
||||
"delete": MessageLookupByLibrary.simpleMessage("削除"),
|
||||
"deleteMultipTip": m20,
|
||||
"deleteTip": m21,
|
||||
"deleteMultipTip": m19,
|
||||
"deleteTip": m20,
|
||||
"desc": MessageLookupByLibrary.simpleMessage(
|
||||
"ClashMetaベースのマルチプラットフォーム対応プロキシクライアント。シンプルで使いやすく、オープンソースで広告もありません。",
|
||||
),
|
||||
"destination": MessageLookupByLibrary.simpleMessage("宛先"),
|
||||
"destinationGeoIP": MessageLookupByLibrary.simpleMessage("宛先GeoIP"),
|
||||
"destinationIPASN": MessageLookupByLibrary.simpleMessage("宛先IP ASN"),
|
||||
"details": m22,
|
||||
"details": m21,
|
||||
"detectionTip": MessageLookupByLibrary.simpleMessage(
|
||||
"サードパーティAPIに依存しているため、参考値です",
|
||||
),
|
||||
@@ -510,7 +509,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"dialerProxyDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"ダイヤラープロキシは NTP サーバーへの接続に使用するアウトバウンドです。",
|
||||
),
|
||||
"dialerProxyLoopStopped": m23,
|
||||
"dialerProxyLoopStopped": m22,
|
||||
"direct": MessageLookupByLibrary.simpleMessage("ダイレクト"),
|
||||
"disableIcmpForwarding": MessageLookupByLibrary.simpleMessage(
|
||||
"ICMP 転送を無効化",
|
||||
@@ -527,35 +526,20 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"本ソフトウェアをインストール、複製または使用した時点で、本声明のすべての内容を読み、同意したものとみなされます。いずれかの条項に同意いただけない場合は、直ちに使用を中止し、本ソフトウェアをアンインストールしてください。",
|
||||
),
|
||||
"disclaimerAcceptTitle": MessageLookupByLibrary.simpleMessage("声明への同意"),
|
||||
"disclaimerAnalyticsContent": MessageLookupByLibrary.simpleMessage(
|
||||
"Firebase により基本的なアプリ利用統計が自動的に収集されます。\n\n収集内容:初回起動、アプリの起動とセッション時間、アプリの更新などの基本イベント、アプリインスタンス ID、端末のモデル、OS のバージョン、システム言語、および IP アドレスから推定される国または地域レベルのおおよその位置情報。\n\n目的:アクティブな端末数、バージョン分布、OS の互換性を把握するためにのみ使用します。開発者はこれらのデータを広告に使用したり、販売したり、サブスクリプションや設定と関連付けたりすることはありません。",
|
||||
"disclaimerAcknowledgeLabel": MessageLookupByLibrary.simpleMessage(
|
||||
"この声明を読み、理解しました",
|
||||
),
|
||||
"disclaimerAnalyticsTitle": MessageLookupByLibrary.simpleMessage(
|
||||
"Firebase Analytics(利用統計)",
|
||||
"disclaimerAcknowledgeTip": MessageLookupByLibrary.simpleMessage(
|
||||
"内容を理解したことを確認するため、以下の声明を読み、下のチェックボックスをオンにしてください:",
|
||||
),
|
||||
"disclaimerAndroidOnly": MessageLookupByLibrary.simpleMessage("Android のみ"),
|
||||
"disclaimerAcknowledgeTitle": MessageLookupByLibrary.simpleMessage("声明の確認"),
|
||||
"disclaimerChangesContent": MessageLookupByLibrary.simpleMessage(
|
||||
"開発者はバージョンの更新に伴い本声明を変更することがあり、変更内容は新しいバージョンの公開とともに効力を生じます。更新後も本ソフトウェアを引き続き使用した場合、変更後の声明に同意したものとみなされます。",
|
||||
),
|
||||
"disclaimerChangesTitle": MessageLookupByLibrary.simpleMessage("本声明の変更"),
|
||||
"disclaimerCrashlyticsContent": MessageLookupByLibrary.simpleMessage(
|
||||
"アプリがクラッシュした際に、クラッシュレポートを自動的に送信します。\n\n収集内容:クラッシュのスタックトレースとエラー情報、発生日時、アプリのバージョンとビルド番号、端末のメーカーとモデル、Android のバージョン、画面の向き、空きメモリと空きストレージ、root 化の有無、およびインストール時に生成され再インストールでリセットされるランダムなインストール ID。\n\n目的:クラッシュの特定と修正のためにのみ使用します。\n\n「ツール > 一般 > クラッシュ分析」からいつでもオフにできます。",
|
||||
),
|
||||
"disclaimerCrashlyticsTitle": MessageLookupByLibrary.simpleMessage(
|
||||
"Firebase Crashlytics(クラッシュ分析)",
|
||||
),
|
||||
"disclaimerDataProcessingContent": MessageLookupByLibrary.simpleMessage(
|
||||
"これらのデータは Google が代わりに処理・保存し、お住まいの国または地域外(米国など)のサーバーに転送される場合があり、Google のプライバシーポリシーおよび Firebase のプライバシーとセキュリティに関する説明に従って取り扱われます。クラッシュレポートは最大 90 日間保存され、統計データは Firebase の既定の保存ポリシーに従って保存されます。",
|
||||
),
|
||||
"disclaimerDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"FlClash(以下「本ソフトウェア」)をご利用になる前に、本声明の内容をよくお読みになり、十分にご理解ください。「同意する」をタップすると、以下のすべての条項を読み、理解し、承諾したものとみなされます。同意いただけない場合は「終了」をタップし、本ソフトウェアの使用を中止してください。",
|
||||
),
|
||||
"disclaimerFirebasePrivacy": MessageLookupByLibrary.simpleMessage(
|
||||
"Firebase のプライバシーとセキュリティ",
|
||||
),
|
||||
"disclaimerGooglePrivacy": MessageLookupByLibrary.simpleMessage(
|
||||
"Google プライバシーポリシー",
|
||||
),
|
||||
"disclaimerLiabilityContent": MessageLookupByLibrary.simpleMessage(
|
||||
"適用法で認められる最大限の範囲において、開発者およびすべての貢献者は、本ソフトウェアの使用または使用不能に起因する直接的、間接的、偶発的、特別、懲罰的または結果的な損害(データの消失、機器の損傷、ネットワーク障害、業務の中断、逸失利益、およびそれに起因する法的紛争を含むがこれらに限らない)について、その可能性を知らされていた場合であっても、一切責任を負いません。",
|
||||
),
|
||||
@@ -570,12 +554,11 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"本ソフトウェア自体は、プロキシサーバー、ノード、サブスクリプション、ネットワーク接続サービスを一切提供しておらず、それらのサービス提供者と提携、代理、保証の関係はありません。",
|
||||
),
|
||||
"disclaimerPrivacyContent": MessageLookupByLibrary.simpleMessage(
|
||||
"本ソフトウェアは、サブスクリプション URL、ノード情報、設定内容、閲覧したウェブサイト、接続記録、通信内容、ログを収集またはアップロードしません。これらのデータは端末内にのみ保存され、開発者がアクセスすることはできません。\n\n本ソフトウェアが外部ネットワークにアクセスするのは、プロファイル更新時に指定されたサブスクリプション URL へアクセスする場合や、アップデート確認時に GitHub へアクセスする場合など、該当する機能を使用したときのみです。\n\nデスクトップ版(Windows、macOS、Linux)には、統計やクラッシュレポートのサービスは一切組み込まれていません。Android 版には、安定性向上のため以下の 2 つの Google Firebase サービスが組み込まれています。",
|
||||
"本ソフトウェアは、サブスクリプション URL、ノード情報、設定内容、閲覧したウェブサイト、接続記録、通信内容、ログを収集またはアップロードしません。これらのデータは端末内にのみ保存され、開発者がアクセスすることはできません。\n\n本ソフトウェアが外部ネットワークにアクセスするのは、プロファイル更新時に指定されたサブスクリプション URL へアクセスする場合や、アップデート確認時に GitHub へアクセスする場合など、該当する機能を使用したときのみです。\n\n本ソフトウェアには、どのプラットフォームでも統計やクラッシュレポートのサービスは一切組み込まれていません。",
|
||||
),
|
||||
"disclaimerPrivacyTitle": MessageLookupByLibrary.simpleMessage(
|
||||
"データ収集とプライバシー",
|
||||
),
|
||||
"disclaimerReadToEnd": MessageLookupByLibrary.simpleMessage("最後までお読みください"),
|
||||
"disclaimerResponsibilityContent": MessageLookupByLibrary.simpleMessage(
|
||||
"お住まいの国または地域で本ソフトウェアの使用が合法であることはご自身で確認する必要があり、本ソフトウェアを使用したすべての行為とその結果について、ご自身が単独で法的責任を負います。\n\nインポートするサブスクリプション、ノード、設定はご自身の判断で選択したものです。その出所の適法性、内容の安全性、サービスの安定性については、利用者と各提供者の間で解決してください。",
|
||||
),
|
||||
@@ -614,6 +597,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"discoverNewVersion": MessageLookupByLibrary.simpleMessage(
|
||||
"新しいバージョンが見つかりました",
|
||||
),
|
||||
"dnsHijackDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"追加しない場合、ポート 53 宛てのすべての DNS 問い合わせをハイジャックします(any:53)。",
|
||||
),
|
||||
"dnsHijacking": MessageLookupByLibrary.simpleMessage("DNSハイジャック"),
|
||||
"dnsMode": MessageLookupByLibrary.simpleMessage("DNSモード"),
|
||||
"dnsOverrideDesc": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -636,23 +622,36 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"editorUnavailable": MessageLookupByLibrary.simpleMessage("エディターを利用できません"),
|
||||
"elapsed": MessageLookupByLibrary.simpleMessage("所要時間"),
|
||||
"emptyFallback": MessageLookupByLibrary.simpleMessage("空グループのフォールバック"),
|
||||
"emptyTip": m24,
|
||||
"emptyTip": m23,
|
||||
"en": MessageLookupByLibrary.simpleMessage("英語"),
|
||||
"enabled": MessageLookupByLibrary.simpleMessage("有効"),
|
||||
"entries": MessageLookupByLibrary.simpleMessage(" 件"),
|
||||
"error": MessageLookupByLibrary.simpleMessage("エラー"),
|
||||
"errorDetails": MessageLookupByLibrary.simpleMessage("エラーの詳細"),
|
||||
"es": MessageLookupByLibrary.simpleMessage("スペイン語"),
|
||||
"exclude": MessageLookupByLibrary.simpleMessage("最近のタスクから隠す"),
|
||||
"excludeDstPort": MessageLookupByLibrary.simpleMessage("除外宛先ポート"),
|
||||
"excludeDstPortDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"除外宛先ポートへの通信は TUN を通りません。",
|
||||
),
|
||||
"excludeFilter": MessageLookupByLibrary.simpleMessage("除外フィルター"),
|
||||
"excludeInterface": MessageLookupByLibrary.simpleMessage("除外インターフェース"),
|
||||
"excludeInterfaceDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"除外インターフェースは Linux でのみ有効です。docker0 などから入る通信は TUN を通りません。",
|
||||
"docker0 などの除外インターフェースから入る通信は TUN を通りません。",
|
||||
),
|
||||
"excludeSrcPort": MessageLookupByLibrary.simpleMessage("除外送信元ポート"),
|
||||
"excludeSrcPortDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"除外送信元ポートからの通信は TUN を通りません。",
|
||||
),
|
||||
"excludeSsids": MessageLookupByLibrary.simpleMessage("除外SSID"),
|
||||
"excludeSsidsDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"除外した SSID の Wi-Fi に接続すると、アプリの実行状態が自動的に切り替わります。",
|
||||
),
|
||||
"existsTip": m25,
|
||||
"excludeUid": MessageLookupByLibrary.simpleMessage("除外ユーザー ID"),
|
||||
"excludeUidDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"除外ユーザー ID のプロセスの通信は TUN を通りません。",
|
||||
),
|
||||
"existsTip": m24,
|
||||
"exit": MessageLookupByLibrary.simpleMessage("終了"),
|
||||
"exitFullScreen": MessageLookupByLibrary.simpleMessage("全画面表示を終了"),
|
||||
"exitNodes": MessageLookupByLibrary.simpleMessage("出口ノード"),
|
||||
@@ -661,7 +660,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"exportFile": MessageLookupByLibrary.simpleMessage("ファイルをエクスポート"),
|
||||
"exportLogs": MessageLookupByLibrary.simpleMessage("ログをエクスポート"),
|
||||
"exportSuccess": MessageLookupByLibrary.simpleMessage("エクスポートが完了しました"),
|
||||
"expressiveScheme": MessageLookupByLibrary.simpleMessage("エクスプレッシブ"),
|
||||
"extend": MessageLookupByLibrary.simpleMessage("拡張"),
|
||||
"extendMode": MessageLookupByLibrary.simpleMessage("拡張モード"),
|
||||
"extendScript": MessageLookupByLibrary.simpleMessage("拡張スクリプト"),
|
||||
@@ -675,8 +673,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"externalLink": MessageLookupByLibrary.simpleMessage("外部リンク"),
|
||||
"extraLarge": MessageLookupByLibrary.simpleMessage("特大"),
|
||||
"fade": MessageLookupByLibrary.simpleMessage("フェード"),
|
||||
"failedCount": m26,
|
||||
"failedItem": m27,
|
||||
"failedCount": m25,
|
||||
"failedItem": m26,
|
||||
"fakeipFilter": MessageLookupByLibrary.simpleMessage("Fake-IPフィルター"),
|
||||
"fakeipFilterMode": MessageLookupByLibrary.simpleMessage("Fake-IPフィルターモード"),
|
||||
"fakeipFilterModeDesc": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -686,7 +684,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"fakeipRange6": MessageLookupByLibrary.simpleMessage("Fake-IP範囲(IPv6)"),
|
||||
"fakeipTtl": MessageLookupByLibrary.simpleMessage("Fake-IP TTL"),
|
||||
"fallbackFilter": MessageLookupByLibrary.simpleMessage("フォールバックフィルター"),
|
||||
"fidelityScheme": MessageLookupByLibrary.simpleMessage("フィデリティ"),
|
||||
"file": MessageLookupByLibrary.simpleMessage("ファイル"),
|
||||
"fileDesc": MessageLookupByLibrary.simpleMessage("プロファイルファイルを直接アップロードします"),
|
||||
"fileIsUpdate": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -694,7 +691,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
),
|
||||
"filter": MessageLookupByLibrary.simpleMessage("フィルター"),
|
||||
"filters": MessageLookupByLibrary.simpleMessage("フィルター"),
|
||||
"finalConfig": MessageLookupByLibrary.simpleMessage("最終設定"),
|
||||
"findProcessMode": MessageLookupByLibrary.simpleMessage("プロセス検出"),
|
||||
"floating": MessageLookupByLibrary.simpleMessage("フローティング"),
|
||||
"followProfile": MessageLookupByLibrary.simpleMessage("プロファイルに従う"),
|
||||
@@ -712,11 +708,11 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"forceRestartCoreTip": MessageLookupByLibrary.simpleMessage(
|
||||
"コアを強制再起動してもよろしいですか?",
|
||||
),
|
||||
"fruitSaladScheme": MessageLookupByLibrary.simpleMessage("フルーツサラダ"),
|
||||
"fr": MessageLookupByLibrary.simpleMessage("フランス語"),
|
||||
"general": MessageLookupByLibrary.simpleMessage("一般"),
|
||||
"geoResources": MessageLookupByLibrary.simpleMessage("Geo"),
|
||||
"geoSkipped": m28,
|
||||
"geoUpdated": m29,
|
||||
"geoSkipped": m27,
|
||||
"geoUpdated": m28,
|
||||
"geodataLoader": MessageLookupByLibrary.simpleMessage("Geo低メモリモード"),
|
||||
"global": MessageLookupByLibrary.simpleMessage("グローバル"),
|
||||
"go": MessageLookupByLibrary.simpleMessage("開く"),
|
||||
@@ -725,15 +721,17 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"追加ルール設定へ移動",
|
||||
),
|
||||
"goToConfigureScript": MessageLookupByLibrary.simpleMessage("スクリプト設定へ移動"),
|
||||
"groupCount": m30,
|
||||
"grid": MessageLookupByLibrary.simpleMessage("グリッド"),
|
||||
"groupCount": m29,
|
||||
"groupCountUnit": MessageLookupByLibrary.simpleMessage("個"),
|
||||
"groupTimeoutCount": m31,
|
||||
"groupTimeoutCount": m30,
|
||||
"hasCacheChange": MessageLookupByLibrary.simpleMessage("変更をキャッシュしますか?"),
|
||||
"hashByInUser": MessageLookupByLibrary.simpleMessage("インバウンドユーザーでハッシュ"),
|
||||
"healthCheck": MessageLookupByLibrary.simpleMessage("ヘルスチェック"),
|
||||
"helperCorruptTip": MessageLookupByLibrary.simpleMessage(
|
||||
"Helper サービスが利用できないため、TUN モードを有効にできません。FlClash を再インストールしてください。",
|
||||
),
|
||||
"hex": MessageLookupByLibrary.simpleMessage("16進数"),
|
||||
"hideFromList": MessageLookupByLibrary.simpleMessage("リストから隠す"),
|
||||
"hideIp": MessageLookupByLibrary.simpleMessage("IP を隠す"),
|
||||
"hidePassword": MessageLookupByLibrary.simpleMessage("パスワードを隠す"),
|
||||
@@ -746,19 +744,20 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"hopInterval": MessageLookupByLibrary.simpleMessage("ホップ間隔"),
|
||||
"host": MessageLookupByLibrary.simpleMessage("ホスト"),
|
||||
"hostname": MessageLookupByLibrary.simpleMessage("ホスト名"),
|
||||
"hotkeyConflictWith": m32,
|
||||
"hotkeyConflictWith": m31,
|
||||
"hotkeyDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"グローバルホットキーはウィンドウが非表示でも有効です。アクションをタップしてキーの組み合わせを記録します。",
|
||||
),
|
||||
"hotkeyManagement": MessageLookupByLibrary.simpleMessage("ホットキー管理"),
|
||||
"hotkeyNeedsModifier": m33,
|
||||
"hotkeyNeedsModifier": m32,
|
||||
"hotkeyNotSet": MessageLookupByLibrary.simpleMessage("未設定"),
|
||||
"hotkeyUnavailable": MessageLookupByLibrary.simpleMessage(
|
||||
"登録できませんでした。他のアプリが使用している可能性があります",
|
||||
),
|
||||
"hours": MessageLookupByLibrary.simpleMessage("時間"),
|
||||
"hoursAgo": m34,
|
||||
"hoursAgoShort": m35,
|
||||
"hoursAgo": m33,
|
||||
"hoursAgoShort": m34,
|
||||
"hue": MessageLookupByLibrary.simpleMessage("色相"),
|
||||
"icon": MessageLookupByLibrary.simpleMessage("アイコン"),
|
||||
"iconRecords": MessageLookupByLibrary.simpleMessage("アイコン履歴"),
|
||||
"iconSets": MessageLookupByLibrary.simpleMessage("アイコンセット"),
|
||||
@@ -784,6 +783,14 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"importFromLink": MessageLookupByLibrary.simpleMessage("リンクからインポート"),
|
||||
"importUrl": MessageLookupByLibrary.simpleMessage("URLからインポート"),
|
||||
"inbound": MessageLookupByLibrary.simpleMessage("インバウンド"),
|
||||
"includeInterface": MessageLookupByLibrary.simpleMessage("対象インターフェース"),
|
||||
"includeInterfaceDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"対象インターフェースから入る通信だけが TUN を通り、除外インターフェースは無効になります。",
|
||||
),
|
||||
"includeUid": MessageLookupByLibrary.simpleMessage("対象ユーザー ID"),
|
||||
"includeUidDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"対象ユーザー ID のプロセスの通信だけが TUN を通ります。",
|
||||
),
|
||||
"infiniteTime": MessageLookupByLibrary.simpleMessage("無期限"),
|
||||
"init": MessageLookupByLibrary.simpleMessage("初期化"),
|
||||
"initFailed": MessageLookupByLibrary.simpleMessage("起動に失敗しました"),
|
||||
@@ -841,20 +848,20 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"invalidNetworkContent": MessageLookupByLibrary.simpleMessage(
|
||||
"tcp または udp のみ対応しています",
|
||||
),
|
||||
"invalidPolicy": m36,
|
||||
"invalidPolicy": m35,
|
||||
"invalidPortRangeContent": MessageLookupByLibrary.simpleMessage(
|
||||
"443 や 8000-9000 のようなポートまたは範囲を入力してください",
|
||||
),
|
||||
"invalidProfileQrcode": MessageLookupByLibrary.simpleMessage(
|
||||
"このQRコードにはプロファイルのリンクが含まれていません",
|
||||
),
|
||||
"invalidProxy": m37,
|
||||
"invalidProxyProvider": m38,
|
||||
"invalidProxy": m36,
|
||||
"invalidProxyProvider": m37,
|
||||
"invalidRangeContent": MessageLookupByLibrary.simpleMessage(
|
||||
"80 や 8000-9000 のような数値または範囲を / 区切りで入力してください",
|
||||
),
|
||||
"invalidRuleSet": m39,
|
||||
"invalidSubRule": m40,
|
||||
"invalidRuleSet": m38,
|
||||
"invalidSubRule": m39,
|
||||
"ipAddress": MessageLookupByLibrary.simpleMessage("IP アドレス"),
|
||||
"ipAsn": MessageLookupByLibrary.simpleMessage("ASN"),
|
||||
"ipFlagAbuser": MessageLookupByLibrary.simpleMessage("不正利用の履歴"),
|
||||
@@ -893,7 +900,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"IPv6 を有効にすると、VPN で IPv6 インバウンドを許可します。",
|
||||
),
|
||||
"ipv6Timeout": MessageLookupByLibrary.simpleMessage("IPv6タイムアウト(ms)"),
|
||||
"itemsCount": m41,
|
||||
"itemsCount": m40,
|
||||
"ja": MessageLookupByLibrary.simpleMessage("日本語"),
|
||||
"justNow": MessageLookupByLibrary.simpleMessage("たった今"),
|
||||
"keepAliveIdle": MessageLookupByLibrary.simpleMessage("TCP キープアライブ待機時間"),
|
||||
@@ -901,6 +908,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"TCPキープアライブ間隔",
|
||||
),
|
||||
"key": MessageLookupByLibrary.simpleMessage("キー"),
|
||||
"ko": MessageLookupByLibrary.simpleMessage("韓国語"),
|
||||
"label": MessageLookupByLibrary.simpleMessage("ラベル"),
|
||||
"language": MessageLookupByLibrary.simpleMessage("言語"),
|
||||
"large": MessageLookupByLibrary.simpleMessage("大"),
|
||||
@@ -911,7 +919,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
),
|
||||
"layout": MessageLookupByLibrary.simpleMessage("レイアウト"),
|
||||
"light": MessageLookupByLibrary.simpleMessage("ライト"),
|
||||
"lineIssueTip": m42,
|
||||
"lineIssueTip": m41,
|
||||
"lineWrap": MessageLookupByLibrary.simpleMessage("折り返し"),
|
||||
"link": MessageLookupByLibrary.simpleMessage("リンク"),
|
||||
"linkDesc": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -939,7 +947,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"locationPermissionDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"システムの要件により、Wi-Fi 名の取得には位置情報の権限が必要です。Android では「常に許可」を選択してください。そうしないと、アプリがバックグラウンドにあるときに Wi-Fi 名を取得できません。",
|
||||
),
|
||||
"locationPermissionGuide": m43,
|
||||
"locationPermissionGuide": m42,
|
||||
"locationPermissionRequired": MessageLookupByLibrary.simpleMessage(
|
||||
"位置情報の権限が必要です",
|
||||
),
|
||||
@@ -954,10 +962,11 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"logsTest": MessageLookupByLibrary.simpleMessage("ログテスト"),
|
||||
"loopback": MessageLookupByLibrary.simpleMessage("UWP ループバック解除"),
|
||||
"loose": MessageLookupByLibrary.simpleMessage("ゆったり"),
|
||||
"matchCase": MessageLookupByLibrary.simpleMessage("大文字と小文字を区別"),
|
||||
"matchSourceIp": MessageLookupByLibrary.simpleMessage("送信元IPにマッチ"),
|
||||
"matchTarget": MessageLookupByLibrary.simpleMessage("MATCH-TARGET"),
|
||||
"maxFailedTimes": MessageLookupByLibrary.simpleMessage("最大失敗回数"),
|
||||
"maxLengthTip": m44,
|
||||
"maxLengthTip": m43,
|
||||
"maximize": MessageLookupByLibrary.simpleMessage("最大化"),
|
||||
"memoryAppResident": MessageLookupByLibrary.simpleMessage("常駐メモリ"),
|
||||
"memoryAppShared": MessageLookupByLibrary.simpleMessage("アプリと共有"),
|
||||
@@ -977,24 +986,25 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"memoryInfo": MessageLookupByLibrary.simpleMessage("メモリ情報"),
|
||||
"memoryInfoDesc": MessageLookupByLibrary.simpleMessage("アプリとコアが使用するメモリ"),
|
||||
"memoryReleased": MessageLookupByLibrary.simpleMessage("メモリを解放しました"),
|
||||
"memoryReleasedSize": m45,
|
||||
"memoryReleasedSize": m44,
|
||||
"messageTest": MessageLookupByLibrary.simpleMessage("メッセージテスト"),
|
||||
"messageTestTip": MessageLookupByLibrary.simpleMessage("これはメッセージです。"),
|
||||
"minimize": MessageLookupByLibrary.simpleMessage("最小化"),
|
||||
"minimizeOnExit": MessageLookupByLibrary.simpleMessage("終了時に最小化"),
|
||||
"minutesAgo": m46,
|
||||
"minutesAgoShort": m47,
|
||||
"minutes": MessageLookupByLibrary.simpleMessage("分"),
|
||||
"minutesAgo": m45,
|
||||
"minutesAgoShort": m46,
|
||||
"mixedPort": MessageLookupByLibrary.simpleMessage("Mixedポート"),
|
||||
"mode": MessageLookupByLibrary.simpleMessage("モード"),
|
||||
"monochromeScheme": MessageLookupByLibrary.simpleMessage("モノクローム"),
|
||||
"monthsAgo": m48,
|
||||
"monthsAgoShort": m49,
|
||||
"monthsAgo": m47,
|
||||
"monthsAgoShort": m48,
|
||||
"more": MessageLookupByLibrary.simpleMessage("その他"),
|
||||
"name": MessageLookupByLibrary.simpleMessage("名前"),
|
||||
"navigationBarStyle": MessageLookupByLibrary.simpleMessage("ボトムバー"),
|
||||
"network": MessageLookupByLibrary.simpleMessage("ネットワーク"),
|
||||
"networkAccessDeniedError": m50,
|
||||
"networkBadResponseError": m51,
|
||||
"networkAccessDeniedError": m49,
|
||||
"networkBadResponseError": m50,
|
||||
"networkCancelledError": MessageLookupByLibrary.simpleMessage(
|
||||
"リクエストはキャンセルされました",
|
||||
),
|
||||
@@ -1005,13 +1015,13 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"サーバーのアドレスを解決できませんでした。URL が正しいこと、DNS が使えることを確認してください",
|
||||
),
|
||||
"networkName": MessageLookupByLibrary.simpleMessage("ネットワーク名"),
|
||||
"networkNotFoundError": m52,
|
||||
"networkNotFoundError": m51,
|
||||
"networkRateLimitedError": MessageLookupByLibrary.simpleMessage(
|
||||
"リクエストが多すぎます(HTTP 429)。しばらく待ってから再試行してください",
|
||||
),
|
||||
"networkRequestFailed": m53,
|
||||
"networkRequestFailed": m52,
|
||||
"networkSecret": MessageLookupByLibrary.simpleMessage("ネットワークシークレット"),
|
||||
"networkServerError": m54,
|
||||
"networkServerError": m53,
|
||||
"networkSpeed": MessageLookupByLibrary.simpleMessage("ネットワーク速度"),
|
||||
"networkTakeover": MessageLookupByLibrary.simpleMessage("トラフィックの引き継ぎ"),
|
||||
"networkTimeoutError": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -1021,7 +1031,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"安全な接続に失敗しました。サーバー証明書が無効か、接続が傍受されている可能性があります",
|
||||
),
|
||||
"networkType": MessageLookupByLibrary.simpleMessage("ネットワーク種別"),
|
||||
"neutralScheme": MessageLookupByLibrary.simpleMessage("ニュートラル"),
|
||||
"nextMatch": MessageLookupByLibrary.simpleMessage("次の一致"),
|
||||
"no": MessageLookupByLibrary.simpleMessage("いいえ"),
|
||||
"noData": MessageLookupByLibrary.simpleMessage("データがありません"),
|
||||
@@ -1048,9 +1057,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"nullProfileDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"プロファイルを追加して始めましょう",
|
||||
),
|
||||
"nullTip": m55,
|
||||
"numberRangeTip": m56,
|
||||
"numberTip": m57,
|
||||
"nullTip": m54,
|
||||
"numberRangeTip": m55,
|
||||
"numberTip": m56,
|
||||
"obfs": MessageLookupByLibrary.simpleMessage("難読化"),
|
||||
"obfsHost": MessageLookupByLibrary.simpleMessage("難読化ホスト"),
|
||||
"obfsMode": MessageLookupByLibrary.simpleMessage("難読化モード"),
|
||||
@@ -1076,7 +1085,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"宛先を上書きすると、元のアドレスではなく検出したドメインに接続します。",
|
||||
),
|
||||
"overrideEntries": MessageLookupByLibrary.simpleMessage("上書き項目"),
|
||||
"palette": MessageLookupByLibrary.simpleMessage("パレット"),
|
||||
"parsePureIp": MessageLookupByLibrary.simpleMessage("純粋なIPを解析"),
|
||||
"parsePureIpDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"純粋な IP を解析すると、IP アドレスしかない接続をスニッフィングします。",
|
||||
@@ -1099,8 +1107,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"port": MessageLookupByLibrary.simpleMessage("ポート"),
|
||||
"portConflictTip": MessageLookupByLibrary.simpleMessage("別のポートを入力してください"),
|
||||
"portHopping": MessageLookupByLibrary.simpleMessage("ポートホッピング"),
|
||||
"portTip": m58,
|
||||
"portValue": m59,
|
||||
"portTip": m57,
|
||||
"portValue": m58,
|
||||
"ports": MessageLookupByLibrary.simpleMessage("ポート"),
|
||||
"preSharedKey": MessageLookupByLibrary.simpleMessage("事前共有鍵"),
|
||||
"prerequisites": MessageLookupByLibrary.simpleMessage("前提条件"),
|
||||
@@ -1115,8 +1123,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
MessageLookupByLibrary.simpleMessage("有効な間隔を入力してください"),
|
||||
"profileAutoUpdateIntervalNullValidationDesc":
|
||||
MessageLookupByLibrary.simpleMessage("自動更新間隔を入力してください"),
|
||||
"profileDaysLeft": m60,
|
||||
"profileExpiresIn": m61,
|
||||
"profileDaysLeft": m59,
|
||||
"profileExpiresIn": m60,
|
||||
"profileHasUpdate": MessageLookupByLibrary.simpleMessage(
|
||||
"プロファイルが変更されています。自動更新を無効にしますか?",
|
||||
),
|
||||
@@ -1126,7 +1134,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"profileSettingsDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"このプロファイルにのみ適用されます。追加していない項目はデフォルト値を使用します。",
|
||||
),
|
||||
"profileUpdatedAt": m62,
|
||||
"profileTunSettingsDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"このプロファイルにのみ適用され、ネットワーク設定の TUN 上書き項目より優先されます。",
|
||||
),
|
||||
"profileUpdatedAt": m61,
|
||||
"profileUrlInvalidValidationDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"有効なプロファイルURLを入力してください",
|
||||
),
|
||||
@@ -1139,22 +1150,22 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"protocol": MessageLookupByLibrary.simpleMessage("プロトコル"),
|
||||
"protocolParam": MessageLookupByLibrary.simpleMessage("プロトコルパラメータ"),
|
||||
"protocolVersion": MessageLookupByLibrary.simpleMessage("プロトコルバージョン"),
|
||||
"providerInUse": m63,
|
||||
"providerInUse": m62,
|
||||
"providerUrlTip": MessageLookupByLibrary.simpleMessage("リモートリソースのみ対応しています"),
|
||||
"providers": MessageLookupByLibrary.simpleMessage("外部リソース"),
|
||||
"proxies": MessageLookupByLibrary.simpleMessage("プロキシ"),
|
||||
"proxiesCount": m64,
|
||||
"proxiesProfileLabel": m65,
|
||||
"proxiesRemovedTip": m66,
|
||||
"proxiesReplacedTip": m67,
|
||||
"proxiesCount": m63,
|
||||
"proxiesProfileLabel": m64,
|
||||
"proxiesRemovedTip": m65,
|
||||
"proxiesReplacedTip": m66,
|
||||
"proxyChains": MessageLookupByLibrary.simpleMessage("プロキシチェーン"),
|
||||
"proxyGroup": MessageLookupByLibrary.simpleMessage("プロキシグループ"),
|
||||
"proxyGroupEmpty": MessageLookupByLibrary.simpleMessage("プロキシグループが空です"),
|
||||
"proxyGroupInUse": m68,
|
||||
"proxyGroupInUse": m67,
|
||||
"proxyGroupsAfterStart": MessageLookupByLibrary.simpleMessage(
|
||||
"起動するとここにグループが表示されます",
|
||||
),
|
||||
"proxyGroupsCount": m69,
|
||||
"proxyGroupsCount": m68,
|
||||
"proxyProviders": MessageLookupByLibrary.simpleMessage("プロキシプロバイダー"),
|
||||
"proxyType": MessageLookupByLibrary.simpleMessage("プロキシタイプ"),
|
||||
"pruneCache": MessageLookupByLibrary.simpleMessage("キャッシュを整理"),
|
||||
@@ -1167,7 +1178,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
),
|
||||
"quickActions": MessageLookupByLibrary.simpleMessage("クイック操作"),
|
||||
"quickEdit": MessageLookupByLibrary.simpleMessage("クイック編集"),
|
||||
"rainbowScheme": MessageLookupByLibrary.simpleMessage("レインボー"),
|
||||
"recentRequests": MessageLookupByLibrary.simpleMessage("最近のリクエスト"),
|
||||
"recommendedIcons": MessageLookupByLibrary.simpleMessage("おすすめ"),
|
||||
"recordType": MessageLookupByLibrary.simpleMessage("レコードタイプ"),
|
||||
@@ -1354,11 +1364,13 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"ルールは対応する種類で始めてください。例:DOMAIN,example.com,DIRECT",
|
||||
),
|
||||
"rules": MessageLookupByLibrary.simpleMessage("ルール"),
|
||||
"rulesCount": m70,
|
||||
"rulesCount": m69,
|
||||
"runTime": MessageLookupByLibrary.simpleMessage("稼働時間"),
|
||||
"running": MessageLookupByLibrary.simpleMessage("実行中"),
|
||||
"runtimeConfig": MessageLookupByLibrary.simpleMessage("ランタイム設定"),
|
||||
"safeMode": MessageLookupByLibrary.simpleMessage("セーフモード"),
|
||||
"safeModeAppTitle": m71,
|
||||
"safeModeAppTitle": m70,
|
||||
"saturation": MessageLookupByLibrary.simpleMessage("彩度"),
|
||||
"save": MessageLookupByLibrary.simpleMessage("保存"),
|
||||
"saveChanges": MessageLookupByLibrary.simpleMessage("変更を保存しますか?"),
|
||||
"script": MessageLookupByLibrary.simpleMessage("スクリプト"),
|
||||
@@ -1368,9 +1380,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"scrollToSelected": MessageLookupByLibrary.simpleMessage("選択項目へスクロール"),
|
||||
"search": MessageLookupByLibrary.simpleMessage("検索"),
|
||||
"seconds": MessageLookupByLibrary.simpleMessage("秒"),
|
||||
"secondsCount": m72,
|
||||
"secondsCount": m71,
|
||||
"secretKey": MessageLookupByLibrary.simpleMessage("キー"),
|
||||
"sectionsInEffect": m73,
|
||||
"sectionsInEffect": m72,
|
||||
"selectAll": MessageLookupByLibrary.simpleMessage("すべて選択"),
|
||||
"selectRuleSet": MessageLookupByLibrary.simpleMessage("ルールセットを選択してください"),
|
||||
"selectSplitStrategy": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -1378,13 +1390,13 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
),
|
||||
"selected": MessageLookupByLibrary.simpleMessage("選択済み"),
|
||||
"server": MessageLookupByLibrary.simpleMessage("サーバー"),
|
||||
"serviceAbnormalCount": m74,
|
||||
"serviceAbnormalCount": m73,
|
||||
"serviceAllAvailable": MessageLookupByLibrary.simpleMessage("すべて利用可能"),
|
||||
"serviceAvailable": MessageLookupByLibrary.simpleMessage("利用可能"),
|
||||
"serviceBlocked": MessageLookupByLibrary.simpleMessage("ブロック済み"),
|
||||
"serviceCheck": MessageLookupByLibrary.simpleMessage("検査"),
|
||||
"serviceCheckAll": MessageLookupByLibrary.simpleMessage("すべて検査"),
|
||||
"serviceCheckedAt": m75,
|
||||
"serviceCheckedAt": m74,
|
||||
"serviceComingSoon": MessageLookupByLibrary.simpleMessage("近日提供予定"),
|
||||
"serviceDisallowedIsp": MessageLookupByLibrary.simpleMessage(
|
||||
"許可されていない ISP",
|
||||
@@ -1402,8 +1414,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"serviceUnsupportedRegion": MessageLookupByLibrary.simpleMessage("対象外の地域"),
|
||||
"settingEntries": MessageLookupByLibrary.simpleMessage("設定項目"),
|
||||
"settings": MessageLookupByLibrary.simpleMessage("設定"),
|
||||
"settingsCount": m76,
|
||||
"shareLinkUnreadable": m77,
|
||||
"settingsCount": m75,
|
||||
"shareLinkUnreadable": m76,
|
||||
"shareLinksInvalid": MessageLookupByLibrary.simpleMessage(
|
||||
"リンクからプロキシを読み取れませんでした",
|
||||
),
|
||||
@@ -1427,7 +1439,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"singleShareLinkOnly": MessageLookupByLibrary.simpleMessage(
|
||||
"ここにはリンクを 1 つだけ入力してください。複数の場合は一覧のクイック編集を使ってください",
|
||||
),
|
||||
"singleValueTip": m78,
|
||||
"singleValueTip": m77,
|
||||
"size": MessageLookupByLibrary.simpleMessage("サイズ"),
|
||||
"skipCertVerify": MessageLookupByLibrary.simpleMessage("証明書の検証をスキップ"),
|
||||
"skipDomain": MessageLookupByLibrary.simpleMessage("スキップするドメイン"),
|
||||
@@ -1437,17 +1449,20 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"skipDstAddress": MessageLookupByLibrary.simpleMessage("スキップする宛先アドレス"),
|
||||
"skipSrcAddress": MessageLookupByLibrary.simpleMessage("スキップする送信元アドレス"),
|
||||
"slide": MessageLookupByLibrary.simpleMessage("スライド"),
|
||||
"sliders": MessageLookupByLibrary.simpleMessage("スライダ"),
|
||||
"sniffProtocols": MessageLookupByLibrary.simpleMessage("プロトコル"),
|
||||
"sniffer": MessageLookupByLibrary.simpleMessage("スニッファー"),
|
||||
"snifferStatusDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"スニッファーは TLS・HTTP・QUIC の通信からドメインを読み取り、ルールで照合できるようにします。",
|
||||
),
|
||||
"socksPort": MessageLookupByLibrary.simpleMessage("SOCKSポート"),
|
||||
"softStyle": MessageLookupByLibrary.simpleMessage("ソフト"),
|
||||
"sort": MessageLookupByLibrary.simpleMessage("並べ替え"),
|
||||
"source": MessageLookupByLibrary.simpleMessage("ソース"),
|
||||
"sourceIp": MessageLookupByLibrary.simpleMessage("送信元IP"),
|
||||
"specialProxy": MessageLookupByLibrary.simpleMessage("特殊プロキシ"),
|
||||
"specialRules": MessageLookupByLibrary.simpleMessage("特殊ルール"),
|
||||
"spectrum": MessageLookupByLibrary.simpleMessage("スペクトル"),
|
||||
"speedStatistics": MessageLookupByLibrary.simpleMessage("速度統計"),
|
||||
"splitStrategy": MessageLookupByLibrary.simpleMessage("振り分け戦略"),
|
||||
"splitStrategyNotEmpty": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -1473,7 +1488,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"strategy": MessageLookupByLibrary.simpleMessage("戦略"),
|
||||
"strictRoute": MessageLookupByLibrary.simpleMessage("厳格なルーティング"),
|
||||
"strictRouteDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"厳格なルーティングは DNS などの通信が TUN を迂回するのを防ぎます。有効にすると他のデバイスからこの端末にアクセスできなくなります。",
|
||||
"厳格なルーティングは DNS などの通信が TUN を迂回するのを防ぎます。IPv6 がオフの場合、この端末の IPv6 通信は遮断されます。",
|
||||
),
|
||||
"style": MessageLookupByLibrary.simpleMessage("スタイル"),
|
||||
"submit": MessageLookupByLibrary.simpleMessage("送信"),
|
||||
@@ -1504,18 +1519,20 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"tight": MessageLookupByLibrary.simpleMessage("コンパクト"),
|
||||
"time": MessageLookupByLibrary.simpleMessage("時刻"),
|
||||
"timeout": MessageLookupByLibrary.simpleMessage("タイムアウト"),
|
||||
"tintedStyle": MessageLookupByLibrary.simpleMessage("ティント"),
|
||||
"tip": MessageLookupByLibrary.simpleMessage("ヒント"),
|
||||
"toggle": MessageLookupByLibrary.simpleMessage("切り替え"),
|
||||
"tolerance": MessageLookupByLibrary.simpleMessage("許容値"),
|
||||
"tonalSpotScheme": MessageLookupByLibrary.simpleMessage("トーナルスポット"),
|
||||
"tools": MessageLookupByLibrary.simpleMessage("ツール"),
|
||||
"torch": MessageLookupByLibrary.simpleMessage("ライト"),
|
||||
"total": MessageLookupByLibrary.simpleMessage("合計"),
|
||||
"totalDownload": MessageLookupByLibrary.simpleMessage("ダウンロード量"),
|
||||
"totalTraffic": MessageLookupByLibrary.simpleMessage("合計トラフィック"),
|
||||
"totalUpload": MessageLookupByLibrary.simpleMessage("アップロード量"),
|
||||
"tproxyPort": MessageLookupByLibrary.simpleMessage("TProxyポート"),
|
||||
"traffic": MessageLookupByLibrary.simpleMessage("通信量"),
|
||||
"trafficPeak": m79,
|
||||
"trafficTotal": m80,
|
||||
"trafficPeak": m78,
|
||||
"trafficTotal": m79,
|
||||
"trafficUsage": MessageLookupByLibrary.simpleMessage("トラフィック統計"),
|
||||
"transport": MessageLookupByLibrary.simpleMessage("トランスポート"),
|
||||
"tun": MessageLookupByLibrary.simpleMessage("TUN"),
|
||||
@@ -1523,9 +1540,17 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"TUN の権限を取得できなかったため、オフにしました。",
|
||||
),
|
||||
"tunDesc": MessageLookupByLibrary.simpleMessage("TUN は管理者モードでのみ有効です。"),
|
||||
"tunOverrideDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"ここで追加した項目は、すべてのプロファイルの TUN 設定を上書きします。追加していない項目はプロファイル自身の設定のままです。カスタムプロファイル自身が追加した項目が優先されます。",
|
||||
),
|
||||
"turnOff": MessageLookupByLibrary.simpleMessage("オフにする"),
|
||||
"turnOn": MessageLookupByLibrary.simpleMessage("オンにする"),
|
||||
"udpRelayMode": MessageLookupByLibrary.simpleMessage("UDP リレーモード"),
|
||||
"udpTimeout": MessageLookupByLibrary.simpleMessage("UDP タイムアウト"),
|
||||
"udpTimeoutDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"UDP タイムアウトは秒単位で、gvisor・system・mixed スタックでのみ有効です。",
|
||||
),
|
||||
"ultra": MessageLookupByLibrary.simpleMessage("最高"),
|
||||
"undo": MessageLookupByLibrary.simpleMessage("元に戻す"),
|
||||
"unifiedDelay": MessageLookupByLibrary.simpleMessage("統一遅延"),
|
||||
"unknown": MessageLookupByLibrary.simpleMessage("不明"),
|
||||
@@ -1537,7 +1562,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"upload": MessageLookupByLibrary.simpleMessage("アップロード"),
|
||||
"uploadBandwidth": MessageLookupByLibrary.simpleMessage("アップロード帯域幅"),
|
||||
"url": MessageLookupByLibrary.simpleMessage("URL"),
|
||||
"urlTip": m81,
|
||||
"urlTip": m80,
|
||||
"useHosts": MessageLookupByLibrary.simpleMessage("Hostsを使用"),
|
||||
"useSystemHosts": MessageLookupByLibrary.simpleMessage("システムのHostsを使用"),
|
||||
"usedShort": MessageLookupByLibrary.simpleMessage("使用済み"),
|
||||
@@ -1545,9 +1570,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"userAgent": MessageLookupByLibrary.simpleMessage("User-Agent"),
|
||||
"username": MessageLookupByLibrary.simpleMessage("ユーザー名"),
|
||||
"value": MessageLookupByLibrary.simpleMessage("値"),
|
||||
"vibrantScheme": MessageLookupByLibrary.simpleMessage("ビブラント"),
|
||||
"view": MessageLookupByLibrary.simpleMessage("表示"),
|
||||
"virtualIpv4": MessageLookupByLibrary.simpleMessage("仮想 IPv4"),
|
||||
"vividStyle": MessageLookupByLibrary.simpleMessage("ビビッド"),
|
||||
"vpnConfigChangeDetected": MessageLookupByLibrary.simpleMessage(
|
||||
"VPN関連の設定変更を検出しました",
|
||||
),
|
||||
@@ -1560,8 +1585,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"writeToSystemDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"システムに書き込むを有効にするとシステムクロックも設定します。Android では無視されます。",
|
||||
),
|
||||
"yearsAgo": m82,
|
||||
"yearsAgoShort": m83,
|
||||
"yearsAgo": m81,
|
||||
"yearsAgoShort": m82,
|
||||
"yes": MessageLookupByLibrary.simpleMessage("はい"),
|
||||
"zhCN": MessageLookupByLibrary.simpleMessage("簡体字中国語"),
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+244
-211
File diff suppressed because it is too large
Load Diff
+225
-201
@@ -32,174 +32,172 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
|
||||
static String m4(url) => "是否要通过 ${url} 创建配置?";
|
||||
|
||||
static String m5(groups) => "已丢弃策略组 ${groups} 的 include-all,请为这些策略组添加代理或代理集";
|
||||
|
||||
static String m6(count, label) =>
|
||||
static String m5(count, label) =>
|
||||
"${Intl.plural(count, other: '自定义配置不支持子规则,已丢弃 ${label} 条 SUB-RULE 规则')}";
|
||||
|
||||
static String m7(message) => "内核无法解析该代理:${message}";
|
||||
static String m6(message) => "内核无法解析该代理:${message}";
|
||||
|
||||
static String m8(proxy, target) =>
|
||||
static String m7(proxy, target) =>
|
||||
"${proxy} 经 ${target} 拨号,而 ${target} 又会回到 ${proxy},形成环路";
|
||||
|
||||
static String m9(name) => "名称 ${name} 已被其他代理或策略组使用";
|
||||
static String m8(name) => "名称 ${name} 已被其他代理或策略组使用";
|
||||
|
||||
static String m10(path) => "策略组之间存在循环引用:${path}";
|
||||
static String m9(path) => "策略组之间存在循环引用:${path}";
|
||||
|
||||
static String m11(name) => "空组兜底只能是代理,${name} 不存在或是策略组";
|
||||
static String m10(name) => "空组兜底只能是代理,${name} 不存在或是策略组";
|
||||
|
||||
static String m12(name, message) => "${name}不是有效的正则:${message}";
|
||||
static String m11(name, message) => "${name}不是有效的正则:${message}";
|
||||
|
||||
static String m13(name) => "拨号代理 ${name} 不存在";
|
||||
static String m12(name) => "拨号代理 ${name} 不存在";
|
||||
|
||||
static String m14(names) => "以下代理集不存在:${names}";
|
||||
static String m13(names) => "以下代理集不存在:${names}";
|
||||
|
||||
static String m15(names) => "以下代理或策略不存在:${names}";
|
||||
static String m14(names) => "以下代理或策略不存在:${names}";
|
||||
|
||||
static String m16(name) => "${name} 是内置策略名,不能在此使用";
|
||||
static String m15(name) => "${name} 是内置策略名,不能在此使用";
|
||||
|
||||
static String m17(count) => "${count} 项存在问题,应用配置可能失败";
|
||||
static String m16(count) => "${count} 项存在问题,应用配置可能失败";
|
||||
|
||||
static String m17(count) => "${count} 天前";
|
||||
|
||||
static String m18(count) => "${count} 天前";
|
||||
|
||||
static String m19(count) => "${count} 天前";
|
||||
static String m19(label) => "确定删除选中的${label}吗?";
|
||||
|
||||
static String m20(label) => "确定删除选中的${label}吗?";
|
||||
static String m20(label) => "确定删除当前${label}吗?";
|
||||
|
||||
static String m21(label) => "确定删除当前${label}吗?";
|
||||
static String m21(label) => "${label}详情";
|
||||
|
||||
static String m22(label) => "${label}详情";
|
||||
static String m22(name) => "经 ${name} 拨号会绕回使用它的代理,连接已中止";
|
||||
|
||||
static String m23(name) => "经 ${name} 拨号会绕回使用它的代理,连接已中止";
|
||||
static String m23(label) => "${label}不能为空";
|
||||
|
||||
static String m24(label) => "${label}不能为空";
|
||||
static String m24(label) => "${label}当前已存在";
|
||||
|
||||
static String m25(label) => "${label}当前已存在";
|
||||
static String m25(count) => "${count} 项失败";
|
||||
|
||||
static String m26(count) => "${count} 项失败";
|
||||
static String m26(label, message) => "${label}:${message}";
|
||||
|
||||
static String m27(label, message) => "${label}:${message}";
|
||||
static String m27(name) => "${name} 已是最新版本";
|
||||
|
||||
static String m28(name) => "${name} 已是最新版本";
|
||||
static String m28(name) => "${name} 已更新";
|
||||
|
||||
static String m29(name) => "${name} 已更新";
|
||||
static String m29(count) => "${count} 个";
|
||||
|
||||
static String m30(count) => "${count} 个";
|
||||
static String m30(count) => "${count} 超时";
|
||||
|
||||
static String m31(count) => "${count} 超时";
|
||||
static String m31(action) => "已被“${action}”使用,保存后将移到这里";
|
||||
|
||||
static String m32(action) => "已被“${action}”使用,保存后将移到这里";
|
||||
static String m32(modifiers) => "至少包含 ${modifiers} 中的一个";
|
||||
|
||||
static String m33(modifiers) => "至少包含 ${modifiers} 中的一个";
|
||||
static String m33(count) => "${count} 小时前";
|
||||
|
||||
static String m34(count) => "${count} 小时前";
|
||||
|
||||
static String m35(count) => "${count} 小时前";
|
||||
static String m35(target) => "${target} 是一个无效的策略";
|
||||
|
||||
static String m36(target) => "${target} 是一个无效的策略";
|
||||
static String m36(proxyName) => "${proxyName} 是一个无效的代理";
|
||||
|
||||
static String m37(proxyName) => "${proxyName} 是一个无效的代理";
|
||||
static String m37(providerName) => "${providerName} 是一个无效的代理集";
|
||||
|
||||
static String m38(providerName) => "${providerName} 是一个无效的代理集";
|
||||
static String m38(ruleSet) => "${ruleSet} 不是有效的规则集";
|
||||
|
||||
static String m39(ruleSet) => "${ruleSet} 不是有效的规则集";
|
||||
static String m39(subRule) => "${subRule} 是一个无效的SUB_RULE";
|
||||
|
||||
static String m40(subRule) => "${subRule} 是一个无效的SUB_RULE";
|
||||
static String m40(count) => "${count} 项";
|
||||
|
||||
static String m41(count) => "${count} 项";
|
||||
static String m41(line, message) => "第 ${line} 行:${message}";
|
||||
|
||||
static String m42(line, message) => "第 ${line} 行:${message}";
|
||||
|
||||
static String m43(appName) =>
|
||||
static String m42(appName) =>
|
||||
"1. 打开 系统设置 > 隐私与安全性\n2. 选择 定位服务\n3. 在右侧列表中找到并勾选 ${appName}\n\n完成设置后,返回应用即可正常使用。感谢您的配合。";
|
||||
|
||||
static String m44(label, max) => "${label}最多${max}个字符";
|
||||
static String m43(label, max) => "${label}最多${max}个字符";
|
||||
|
||||
static String m45(size) => "已释放 ${size}";
|
||||
static String m44(size) => "已释放 ${size}";
|
||||
|
||||
static String m45(count) => "${count} 分钟前";
|
||||
|
||||
static String m46(count) => "${count} 分钟前";
|
||||
|
||||
static String m47(count) => "${count} 分钟前";
|
||||
static String m47(count) => "${count} 个月前";
|
||||
|
||||
static String m48(count) => "${count} 个月前";
|
||||
|
||||
static String m49(count) => "${count} 个月前";
|
||||
static String m49(code) => "服务器拒绝访问(HTTP ${code}),链接可能已过期或凭据有误";
|
||||
|
||||
static String m50(code) => "服务器拒绝访问(HTTP ${code}),链接可能已过期或凭据有误";
|
||||
static String m50(code) => "服务器拒绝了请求(HTTP ${code})";
|
||||
|
||||
static String m51(code) => "服务器拒绝了请求(HTTP ${code})";
|
||||
static String m51(code) => "该地址下没有内容(HTTP ${code}),请确认链接是否正确";
|
||||
|
||||
static String m52(code) => "该地址下没有内容(HTTP ${code}),请确认链接是否正确";
|
||||
static String m52(detail) => "网络请求失败:${detail}";
|
||||
|
||||
static String m53(detail) => "网络请求失败:${detail}";
|
||||
static String m53(code) => "服务器出现问题(HTTP ${code}),请稍后再试";
|
||||
|
||||
static String m54(code) => "服务器出现问题(HTTP ${code}),请稍后再试";
|
||||
static String m54(label) => "暂无${label}";
|
||||
|
||||
static String m55(label) => "暂无${label}";
|
||||
static String m55(label, min, max) => "${label}必须在 ${min} 到 ${max} 之间";
|
||||
|
||||
static String m56(label, min, max) => "${label}必须在 ${min} 到 ${max} 之间";
|
||||
static String m56(label) => "${label}必须为数字";
|
||||
|
||||
static String m57(label) => "${label}必须为数字";
|
||||
static String m57(label) => "${label} 必须在 1024 到 49151 之间";
|
||||
|
||||
static String m58(label) => "${label} 必须在 1024 到 49151 之间";
|
||||
static String m58(port) => "端口 ${port}";
|
||||
|
||||
static String m59(port) => "端口 ${port}";
|
||||
static String m59(days) => "剩余 ${days} 天";
|
||||
|
||||
static String m60(days) => "剩余 ${days} 天";
|
||||
static String m60(date, days) => "${date} 到期,剩余 ${days} 天";
|
||||
|
||||
static String m61(date, days) => "${date} 到期,剩余 ${days} 天";
|
||||
static String m61(time) => "更新于 ${time}";
|
||||
|
||||
static String m62(time) => "更新于 ${time}";
|
||||
|
||||
static String m63(label, profiles) =>
|
||||
static String m62(label, profiles) =>
|
||||
"${label} 仍被 ${profiles} 使用,删除后这些配置会异常。确定删除吗?";
|
||||
|
||||
static String m64(count, label) =>
|
||||
static String m63(count, label) =>
|
||||
"${Intl.plural(count, other: '${label} 个代理')}";
|
||||
|
||||
static String m65(name, count) => "${name} 等 ${count} 个代理";
|
||||
static String m64(name, count) => "${name} 等 ${count} 个代理";
|
||||
|
||||
static String m66(removed) =>
|
||||
static String m65(removed) =>
|
||||
"以下代理将被删除:${removed}。改了名字的行按新代理处理,自定义配置中对被删除代理的引用会标为缺失。确定应用吗?";
|
||||
|
||||
static String m67(removed, added) =>
|
||||
static String m66(removed, added) =>
|
||||
"以下代理将被删除:${removed}。以下代理将新增:${added}。改了名字的行按新代理处理,自定义配置中对被删除代理的引用会标为缺失。确定应用吗?";
|
||||
|
||||
static String m68(label) =>
|
||||
static String m67(label) =>
|
||||
"${label} 仍被当前配置的规则、策略组、拨号代理、DNS 或 NTP 引用,删除后这些引用会失效。确定删除吗?";
|
||||
|
||||
static String m69(count, label) =>
|
||||
static String m68(count, label) =>
|
||||
"${Intl.plural(count, other: '${label} 个策略组')}";
|
||||
|
||||
static String m70(count, label) =>
|
||||
static String m69(count, label) =>
|
||||
"${Intl.plural(count, other: '${label} 条规则')}";
|
||||
|
||||
static String m71(appName) => "${appName}(安全模式)";
|
||||
static String m70(appName) => "${appName}(安全模式)";
|
||||
|
||||
static String m72(count) => "${count} 秒";
|
||||
static String m71(count) => "${count} 秒";
|
||||
|
||||
static String m73(count) => "${count} 项生效";
|
||||
static String m72(count) => "${count} 项生效";
|
||||
|
||||
static String m74(count) => "${count} 项异常";
|
||||
static String m73(count) => "${count} 项异常";
|
||||
|
||||
static String m75(time) => "检测于 ${time}";
|
||||
static String m74(time) => "检测于 ${time}";
|
||||
|
||||
static String m76(count) => "${count} 项设置";
|
||||
static String m75(count) => "${count} 项设置";
|
||||
|
||||
static String m77(link) => "无法从 ${link} 中读取代理";
|
||||
static String m76(link) => "无法从 ${link} 中读取代理";
|
||||
|
||||
static String m78(label) => "${label}只能是一项";
|
||||
static String m77(label) => "${label}只能是一项";
|
||||
|
||||
static String m79(value) => "峰值 ${value}";
|
||||
static String m78(value) => "峰值 ${value}";
|
||||
|
||||
static String m80(value) => "累计 ${value}";
|
||||
static String m79(value) => "累计 ${value}";
|
||||
|
||||
static String m81(label) => "${label}必须为URL";
|
||||
static String m80(label) => "${label}必须为URL";
|
||||
|
||||
static String m81(count) => "${count} 年前";
|
||||
|
||||
static String m82(count) => "${count} 年前";
|
||||
|
||||
static String m83(count) => "${count} 年前";
|
||||
|
||||
final messages = _notInlinedMessages(_notInlinedMessages);
|
||||
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
|
||||
"about": MessageLookupByLibrary.simpleMessage("关于"),
|
||||
@@ -256,6 +254,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"该配置已用 age 加密,需要 age 私钥才能解密",
|
||||
),
|
||||
"agree": MessageLookupByLibrary.simpleMessage("同意"),
|
||||
"allReferencedProxies": MessageLookupByLibrary.simpleMessage("全部被引用的代理"),
|
||||
"allReferencedProxyProviders": MessageLookupByLibrary.simpleMessage(
|
||||
"全部被引用的代理集",
|
||||
),
|
||||
"allowBypass": MessageLookupByLibrary.simpleMessage("允许应用绕过VPN"),
|
||||
"allowLan": MessageLookupByLibrary.simpleMessage("局域网代理"),
|
||||
"allowedIps": MessageLookupByLibrary.simpleMessage("允许的 IP"),
|
||||
@@ -280,12 +282,13 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"autoCloseConnectionsDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"自动关闭连接会在切换代理后断开已有连接。",
|
||||
),
|
||||
"autoInclude": MessageLookupByLibrary.simpleMessage("自动包含"),
|
||||
"autoLaunch": MessageLookupByLibrary.simpleMessage("自启动"),
|
||||
"autoRun": MessageLookupByLibrary.simpleMessage("自动运行"),
|
||||
"autoRunDesc": MessageLookupByLibrary.simpleMessage("自动运行会在打开应用时启动代理。"),
|
||||
"autoSetSystemDns": MessageLookupByLibrary.simpleMessage("自动设置系统DNS"),
|
||||
"autoUpdate": MessageLookupByLibrary.simpleMessage("自动更新"),
|
||||
"autoUpdateInterval": MessageLookupByLibrary.simpleMessage("自动更新间隔(分钟)"),
|
||||
"autoUpdateInterval": MessageLookupByLibrary.simpleMessage("自动更新间隔"),
|
||||
"back": MessageLookupByLibrary.simpleMessage("返回"),
|
||||
"backup": MessageLookupByLibrary.simpleMessage("备份"),
|
||||
"backupAndRestore": MessageLookupByLibrary.simpleMessage("备份与恢复"),
|
||||
@@ -308,6 +311,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"bind": MessageLookupByLibrary.simpleMessage("绑定"),
|
||||
"blacklistMode": MessageLookupByLibrary.simpleMessage("黑名单模式"),
|
||||
"blockConnection": MessageLookupByLibrary.simpleMessage("阻止连接"),
|
||||
"brightness": MessageLookupByLibrary.simpleMessage("亮度"),
|
||||
"bypassDomain": MessageLookupByLibrary.simpleMessage("排除域名"),
|
||||
"bypassDomainDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"排除域名仅在系统代理启用时生效。",
|
||||
@@ -358,7 +362,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"close": MessageLookupByLibrary.simpleMessage("关闭"),
|
||||
"closeConnections": MessageLookupByLibrary.simpleMessage("关闭连接"),
|
||||
"color": MessageLookupByLibrary.simpleMessage("颜色"),
|
||||
"colorSchemes": MessageLookupByLibrary.simpleMessage("配色方案"),
|
||||
"colorStyle": MessageLookupByLibrary.simpleMessage("配色风格"),
|
||||
"columns": MessageLookupByLibrary.simpleMessage("列数"),
|
||||
"compact": MessageLookupByLibrary.simpleMessage("紧凑"),
|
||||
"compatible": MessageLookupByLibrary.simpleMessage("兼容模式"),
|
||||
@@ -371,6 +375,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"confirmForceCrashCore": MessageLookupByLibrary.simpleMessage("确定要强制崩溃核心?"),
|
||||
"congestionControl": MessageLookupByLibrary.simpleMessage("拥塞控制"),
|
||||
"congestionController": MessageLookupByLibrary.simpleMessage("TCP 拥塞控制"),
|
||||
"congestionControllerDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"TCP 拥塞控制仅在 mips 栈生效。",
|
||||
),
|
||||
"connected": MessageLookupByLibrary.simpleMessage("已连接"),
|
||||
"connecting": MessageLookupByLibrary.simpleMessage("连接中…"),
|
||||
"connection": MessageLookupByLibrary.simpleMessage("连接"),
|
||||
@@ -382,7 +389,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"connectivity": MessageLookupByLibrary.simpleMessage("连通性:"),
|
||||
"content": MessageLookupByLibrary.simpleMessage("内容"),
|
||||
"contentNotEmpty": MessageLookupByLibrary.simpleMessage("内容不能为空"),
|
||||
"contentScheme": MessageLookupByLibrary.simpleMessage("内容主题"),
|
||||
"controlGlobalAddedRules": MessageLookupByLibrary.simpleMessage("控制全局附加规则"),
|
||||
"copy": MessageLookupByLibrary.simpleMessage("复制"),
|
||||
"copyEnvVar": MessageLookupByLibrary.simpleMessage("复制环境变量"),
|
||||
@@ -398,32 +404,28 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"crashDetected": MessageLookupByLibrary.simpleMessage("检测到崩溃"),
|
||||
"crashDetectedTip": m3,
|
||||
"crashTest": MessageLookupByLibrary.simpleMessage("崩溃测试"),
|
||||
"crashlytics": MessageLookupByLibrary.simpleMessage("崩溃分析"),
|
||||
"crashlyticsTip": MessageLookupByLibrary.simpleMessage(
|
||||
"崩溃分析开启后,应用崩溃时会上传不含敏感信息的日志。",
|
||||
),
|
||||
"create": MessageLookupByLibrary.simpleMessage("创建"),
|
||||
"createProfileFromUrlTip": m4,
|
||||
"creationTime": MessageLookupByLibrary.simpleMessage("创建时间"),
|
||||
"currentOutboundDesc": MessageLookupByLibrary.simpleMessage("含启动键,不可移除"),
|
||||
"custom": MessageLookupByLibrary.simpleMessage("自定义"),
|
||||
"customImportDroppedIncludeAll": m5,
|
||||
"customImportDroppedSubRules": m6,
|
||||
"customIssueCoreRejected": m7,
|
||||
"customIssueDialerLoop": m8,
|
||||
"customIssueDuplicateName": m9,
|
||||
"customColor": MessageLookupByLibrary.simpleMessage("自定义颜色"),
|
||||
"customImportDroppedSubRules": m5,
|
||||
"customIssueCoreRejected": m6,
|
||||
"customIssueDialerLoop": m7,
|
||||
"customIssueDuplicateName": m8,
|
||||
"customIssueEmptyName": MessageLookupByLibrary.simpleMessage("名称为空"),
|
||||
"customIssueGroupLoop": m10,
|
||||
"customIssueInvalidEmptyFallback": m11,
|
||||
"customIssueInvalidFilter": m12,
|
||||
"customIssueMissingDialer": m13,
|
||||
"customIssueMissingProviders": m14,
|
||||
"customIssueMissingProxies": m15,
|
||||
"customIssueGroupLoop": m9,
|
||||
"customIssueInvalidEmptyFallback": m10,
|
||||
"customIssueInvalidFilter": m11,
|
||||
"customIssueMissingDialer": m12,
|
||||
"customIssueMissingProviders": m13,
|
||||
"customIssueMissingProxies": m14,
|
||||
"customIssueNoProxySource": MessageLookupByLibrary.simpleMessage(
|
||||
"未选择任何代理或代理集,内核会拒绝该策略组",
|
||||
),
|
||||
"customIssueReservedName": m16,
|
||||
"customIssuesSummary": m17,
|
||||
"customIssueReservedName": m15,
|
||||
"customIssuesSummary": m16,
|
||||
"customProfile": MessageLookupByLibrary.simpleMessage("自定义"),
|
||||
"customProfileDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"基于应用代理和其他配置组建策略组与规则",
|
||||
@@ -436,15 +438,11 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"dark": MessageLookupByLibrary.simpleMessage("深色"),
|
||||
"dashboard": MessageLookupByLibrary.simpleMessage("仪表盘"),
|
||||
"dashboardAddableSection": MessageLookupByLibrary.simpleMessage("可添加"),
|
||||
"dataCollectionContent": MessageLookupByLibrary.simpleMessage(
|
||||
"本应用使用 Firebase Crashlytics 收集崩溃信息以改进应用稳定性。\n收集的数据包括设备信息和崩溃详情,不包含个人敏感数据。\n您可以在设置中关闭此功能。",
|
||||
),
|
||||
"dataCollectionTip": MessageLookupByLibrary.simpleMessage("数据收集说明"),
|
||||
"databaseWriteFailedTip": MessageLookupByLibrary.simpleMessage(
|
||||
"保存更改失败,已回滚",
|
||||
),
|
||||
"daysAgo": m18,
|
||||
"daysAgoShort": m19,
|
||||
"daysAgo": m17,
|
||||
"daysAgoShort": m18,
|
||||
"defaultSelected": MessageLookupByLibrary.simpleMessage("默认选中"),
|
||||
"defaultText": MessageLookupByLibrary.simpleMessage("默认"),
|
||||
"definitionNotMap": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -454,15 +452,15 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"delayFailed": MessageLookupByLibrary.simpleMessage("失败"),
|
||||
"delayTest": MessageLookupByLibrary.simpleMessage("延迟测试"),
|
||||
"delete": MessageLookupByLibrary.simpleMessage("删除"),
|
||||
"deleteMultipTip": m20,
|
||||
"deleteTip": m21,
|
||||
"deleteMultipTip": m19,
|
||||
"deleteTip": m20,
|
||||
"desc": MessageLookupByLibrary.simpleMessage(
|
||||
"基于ClashMeta的多平台代理客户端,简单易用,开源无广告。",
|
||||
),
|
||||
"destination": MessageLookupByLibrary.simpleMessage("目标地址"),
|
||||
"destinationGeoIP": MessageLookupByLibrary.simpleMessage("目标地理定位"),
|
||||
"destinationIPASN": MessageLookupByLibrary.simpleMessage("目标IP ASN"),
|
||||
"details": m22,
|
||||
"details": m21,
|
||||
"detectionTip": MessageLookupByLibrary.simpleMessage("依赖第三方api,仅供参考"),
|
||||
"developerMode": MessageLookupByLibrary.simpleMessage("开发者模式"),
|
||||
"developerModeEnableTip": MessageLookupByLibrary.simpleMessage("开发者模式已启用。"),
|
||||
@@ -470,7 +468,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"dialerProxyDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"拨号代理为连接 NTP 服务器使用的出站。",
|
||||
),
|
||||
"dialerProxyLoopStopped": m23,
|
||||
"dialerProxyLoopStopped": m22,
|
||||
"direct": MessageLookupByLibrary.simpleMessage("直连"),
|
||||
"disableIcmpForwarding": MessageLookupByLibrary.simpleMessage("禁用ICMP转发"),
|
||||
"disableIcmpForwardingDesc": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -485,35 +483,20 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"一旦你安装、复制或使用本软件,即视为你已阅读并同意本声明的全部内容。如你不同意本声明的任何条款,请立即停止使用并卸载本软件。",
|
||||
),
|
||||
"disclaimerAcceptTitle": MessageLookupByLibrary.simpleMessage("接受声明"),
|
||||
"disclaimerAnalyticsContent": MessageLookupByLibrary.simpleMessage(
|
||||
"随 Firebase 自动收集基础的应用使用统计。\n\n收集内容:首次启动、应用打开与会话时长、应用更新等基础事件,应用实例标识,设备型号、系统版本、系统语言,以及由 IP 地址推断的国家或地区级大致位置。\n\n用途:仅用于了解活跃设备数、版本分布与系统兼容情况。开发者不会将这些数据用于广告,不会出售,也不会与你的订阅或配置相关联。",
|
||||
"disclaimerAcknowledgeLabel": MessageLookupByLibrary.simpleMessage(
|
||||
"我已阅读并理解此声明",
|
||||
),
|
||||
"disclaimerAnalyticsTitle": MessageLookupByLibrary.simpleMessage(
|
||||
"Firebase Analytics(使用统计)",
|
||||
"disclaimerAcknowledgeTip": MessageLookupByLibrary.simpleMessage(
|
||||
"为确认你已知悉,请阅读以下声明并勾选下方选项:",
|
||||
),
|
||||
"disclaimerAndroidOnly": MessageLookupByLibrary.simpleMessage("仅 Android"),
|
||||
"disclaimerAcknowledgeTitle": MessageLookupByLibrary.simpleMessage("确认声明"),
|
||||
"disclaimerChangesContent": MessageLookupByLibrary.simpleMessage(
|
||||
"开发者有权随版本更新修改本声明,修改后的内容随新版本发布即生效。你在更新后继续使用本软件,即视为接受修改后的声明。",
|
||||
),
|
||||
"disclaimerChangesTitle": MessageLookupByLibrary.simpleMessage("声明变更"),
|
||||
"disclaimerCrashlyticsContent": MessageLookupByLibrary.simpleMessage(
|
||||
"应用发生崩溃时,自动上传崩溃报告。\n\n收集内容:崩溃堆栈与错误信息、崩溃发生时间、应用版本与构建号、设备品牌与型号、Android 系统版本、屏幕方向、剩余内存与存储空间、设备是否已 root,以及一个随安装生成、重装后即重置的随机安装标识。\n\n用途:仅用于定位和修复崩溃问题。\n\n你可以在“工具 > 常规 > 崩溃分析”中随时关闭。",
|
||||
),
|
||||
"disclaimerCrashlyticsTitle": MessageLookupByLibrary.simpleMessage(
|
||||
"Firebase Crashlytics(崩溃分析)",
|
||||
),
|
||||
"disclaimerDataProcessingContent": MessageLookupByLibrary.simpleMessage(
|
||||
"上述数据由 Google 代为处理和存储,可能被传输至你所在国家或地区以外(如美国)的服务器,并受 Google 隐私政策与 Firebase 隐私和安全说明约束。崩溃报告最多保留 90 天,统计数据按 Firebase 的默认策略保留。",
|
||||
),
|
||||
"disclaimerDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"在使用 FlClash(以下简称“本软件”)前,请仔细阅读并充分理解本声明的全部内容。点击“同意”即表示你已阅读、理解并接受以下全部条款;如不同意,请点击“退出”并停止使用本软件。",
|
||||
),
|
||||
"disclaimerFirebasePrivacy": MessageLookupByLibrary.simpleMessage(
|
||||
"Firebase 隐私和安全说明",
|
||||
),
|
||||
"disclaimerGooglePrivacy": MessageLookupByLibrary.simpleMessage(
|
||||
"Google 隐私政策",
|
||||
),
|
||||
"disclaimerLiabilityContent": MessageLookupByLibrary.simpleMessage(
|
||||
"在适用法律允许的最大范围内,开发者及所有贡献者均不对因使用或无法使用本软件而产生的任何直接、间接、偶然、特殊、惩罚性或后果性损害承担责任,包括但不限于数据丢失、设备损坏、网络异常、业务中断、利润损失或因此引起的任何法律纠纷,即使已被告知发生此类损害的可能性。",
|
||||
),
|
||||
@@ -526,10 +509,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"本软件自身不提供任何代理服务器、节点、订阅、机场或网络接入服务,也不与任何此类服务的提供者存在合作、代理或担保关系。",
|
||||
),
|
||||
"disclaimerPrivacyContent": MessageLookupByLibrary.simpleMessage(
|
||||
"本软件不会收集或上传你的订阅地址、节点信息、配置内容、访问的网站、连接记录、流量内容和日志,这些数据仅保存在你的设备本地,开发者无法获取。\n\n本软件只会在你使用相应功能时访问外部网络,例如更新订阅时访问你提供的订阅地址、检查更新时访问 GitHub。\n\n桌面版(Windows、macOS、Linux)未集成任何数据统计或崩溃上报服务。Android 版集成了 Google Firebase 的以下两项服务,用于改进应用稳定性:",
|
||||
"本软件不会收集或上传你的订阅地址、节点信息、配置内容、访问的网站、连接记录、流量内容和日志,这些数据仅保存在你的设备本地,开发者无法获取。\n\n本软件只会在你使用相应功能时访问外部网络,例如更新订阅时访问你提供的订阅地址、检查更新时访问 GitHub。\n\n本软件在所有平台上均未集成任何数据统计或崩溃上报服务。",
|
||||
),
|
||||
"disclaimerPrivacyTitle": MessageLookupByLibrary.simpleMessage("数据收集与隐私"),
|
||||
"disclaimerReadToEnd": MessageLookupByLibrary.simpleMessage("请阅读至底部"),
|
||||
"disclaimerResponsibilityContent": MessageLookupByLibrary.simpleMessage(
|
||||
"你应自行确认使用本软件在你所在国家或地区是合法的,并对使用本软件的全部行为及其后果独立承担法律责任。\n\n你导入的订阅、节点与配置由你自行选择和判断,其来源是否合法、内容是否安全、服务是否稳定,均由你与相关提供者自行负责。",
|
||||
),
|
||||
@@ -562,6 +544,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"disclaimerWarrantyTitle": MessageLookupByLibrary.simpleMessage("无担保声明"),
|
||||
"disconnected": MessageLookupByLibrary.simpleMessage("已断开"),
|
||||
"discoverNewVersion": MessageLookupByLibrary.simpleMessage("发现新版本"),
|
||||
"dnsHijackDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"未添加时劫持所有发往 53 端口的 DNS 请求(any:53)。",
|
||||
),
|
||||
"dnsHijacking": MessageLookupByLibrary.simpleMessage("DNS劫持"),
|
||||
"dnsMode": MessageLookupByLibrary.simpleMessage("DNS模式"),
|
||||
"dnsOverrideDesc": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -584,23 +569,36 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"editorUnavailable": MessageLookupByLibrary.simpleMessage("编辑器不可用"),
|
||||
"elapsed": MessageLookupByLibrary.simpleMessage("耗时"),
|
||||
"emptyFallback": MessageLookupByLibrary.simpleMessage("空组兜底"),
|
||||
"emptyTip": m24,
|
||||
"emptyTip": m23,
|
||||
"en": MessageLookupByLibrary.simpleMessage("英语"),
|
||||
"enabled": MessageLookupByLibrary.simpleMessage("已开启"),
|
||||
"entries": MessageLookupByLibrary.simpleMessage("个条目"),
|
||||
"error": MessageLookupByLibrary.simpleMessage("错误"),
|
||||
"errorDetails": MessageLookupByLibrary.simpleMessage("错误详情"),
|
||||
"es": MessageLookupByLibrary.simpleMessage("西班牙语"),
|
||||
"exclude": MessageLookupByLibrary.simpleMessage("从最近任务中隐藏"),
|
||||
"excludeDstPort": MessageLookupByLibrary.simpleMessage("排除目标端口"),
|
||||
"excludeDstPortDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"发往这些目标端口的流量不经过虚拟网卡。",
|
||||
),
|
||||
"excludeFilter": MessageLookupByLibrary.simpleMessage("排除筛选"),
|
||||
"excludeInterface": MessageLookupByLibrary.simpleMessage("排除网卡"),
|
||||
"excludeInterfaceDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"排除网卡仅在 Linux 生效,从这些网卡(如 docker0)进入的流量不经过虚拟网卡。",
|
||||
"从这些网卡(如 docker0)进入的流量不经过虚拟网卡。",
|
||||
),
|
||||
"excludeSrcPort": MessageLookupByLibrary.simpleMessage("排除源端口"),
|
||||
"excludeSrcPortDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"源端口为这些端口的流量不经过虚拟网卡。",
|
||||
),
|
||||
"excludeSsids": MessageLookupByLibrary.simpleMessage("排除SSIDs"),
|
||||
"excludeSsidsDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"连接到被排除 SSID 的 Wi-Fi 时,将会自动切换应用运行状态。",
|
||||
),
|
||||
"existsTip": m25,
|
||||
"excludeUid": MessageLookupByLibrary.simpleMessage("排除用户 ID"),
|
||||
"excludeUidDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"这些用户 ID 的进程产生的流量不经过虚拟网卡。",
|
||||
),
|
||||
"existsTip": m24,
|
||||
"exit": MessageLookupByLibrary.simpleMessage("退出"),
|
||||
"exitFullScreen": MessageLookupByLibrary.simpleMessage("退出全屏"),
|
||||
"exitNodes": MessageLookupByLibrary.simpleMessage("出口节点"),
|
||||
@@ -609,7 +607,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"exportFile": MessageLookupByLibrary.simpleMessage("导出文件"),
|
||||
"exportLogs": MessageLookupByLibrary.simpleMessage("导出日志"),
|
||||
"exportSuccess": MessageLookupByLibrary.simpleMessage("导出成功"),
|
||||
"expressiveScheme": MessageLookupByLibrary.simpleMessage("表现力"),
|
||||
"extend": MessageLookupByLibrary.simpleMessage("扩展"),
|
||||
"extendMode": MessageLookupByLibrary.simpleMessage("扩展模式"),
|
||||
"extendScript": MessageLookupByLibrary.simpleMessage("扩展脚本"),
|
||||
@@ -621,8 +618,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"externalLink": MessageLookupByLibrary.simpleMessage("外部链接"),
|
||||
"extraLarge": MessageLookupByLibrary.simpleMessage("超大"),
|
||||
"fade": MessageLookupByLibrary.simpleMessage("淡入"),
|
||||
"failedCount": m26,
|
||||
"failedItem": m27,
|
||||
"failedCount": m25,
|
||||
"failedItem": m26,
|
||||
"fakeipFilter": MessageLookupByLibrary.simpleMessage("Fake-IP过滤"),
|
||||
"fakeipFilterMode": MessageLookupByLibrary.simpleMessage("Fake-IP过滤模式"),
|
||||
"fakeipFilterModeDesc": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -632,13 +629,11 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"fakeipRange6": MessageLookupByLibrary.simpleMessage("Fake-IP范围(IPv6)"),
|
||||
"fakeipTtl": MessageLookupByLibrary.simpleMessage("Fake-IP TTL"),
|
||||
"fallbackFilter": MessageLookupByLibrary.simpleMessage("Fallback过滤"),
|
||||
"fidelityScheme": MessageLookupByLibrary.simpleMessage("高保真"),
|
||||
"file": MessageLookupByLibrary.simpleMessage("文件"),
|
||||
"fileDesc": MessageLookupByLibrary.simpleMessage("直接上传配置文件"),
|
||||
"fileIsUpdate": MessageLookupByLibrary.simpleMessage("文件有修改,是否保存修改"),
|
||||
"filter": MessageLookupByLibrary.simpleMessage("筛选"),
|
||||
"filters": MessageLookupByLibrary.simpleMessage("筛选"),
|
||||
"finalConfig": MessageLookupByLibrary.simpleMessage("最终配置"),
|
||||
"findProcessMode": MessageLookupByLibrary.simpleMessage("查找进程"),
|
||||
"floating": MessageLookupByLibrary.simpleMessage("悬浮"),
|
||||
"followProfile": MessageLookupByLibrary.simpleMessage("跟随配置"),
|
||||
@@ -654,26 +649,28 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"强制嗅探域名中的域名同样会被嗅探,其余已有域名的连接不嗅探。",
|
||||
),
|
||||
"forceRestartCoreTip": MessageLookupByLibrary.simpleMessage("您确定要强制重启核心吗?"),
|
||||
"fruitSaladScheme": MessageLookupByLibrary.simpleMessage("果缤纷"),
|
||||
"fr": MessageLookupByLibrary.simpleMessage("法语"),
|
||||
"general": MessageLookupByLibrary.simpleMessage("常规"),
|
||||
"geoResources": MessageLookupByLibrary.simpleMessage("Geo"),
|
||||
"geoSkipped": m28,
|
||||
"geoUpdated": m29,
|
||||
"geoSkipped": m27,
|
||||
"geoUpdated": m28,
|
||||
"geodataLoader": MessageLookupByLibrary.simpleMessage("Geo低内存模式"),
|
||||
"global": MessageLookupByLibrary.simpleMessage("全局"),
|
||||
"go": MessageLookupByLibrary.simpleMessage("前往"),
|
||||
"goDownload": MessageLookupByLibrary.simpleMessage("前往下载"),
|
||||
"goToConfigureAddedRules": MessageLookupByLibrary.simpleMessage("前往配置附加规则"),
|
||||
"goToConfigureScript": MessageLookupByLibrary.simpleMessage("前往配置脚本"),
|
||||
"groupCount": m30,
|
||||
"grid": MessageLookupByLibrary.simpleMessage("网格"),
|
||||
"groupCount": m29,
|
||||
"groupCountUnit": MessageLookupByLibrary.simpleMessage("个"),
|
||||
"groupTimeoutCount": m31,
|
||||
"groupTimeoutCount": m30,
|
||||
"hasCacheChange": MessageLookupByLibrary.simpleMessage("是否缓存修改"),
|
||||
"hashByInUser": MessageLookupByLibrary.simpleMessage("按入站用户哈希"),
|
||||
"healthCheck": MessageLookupByLibrary.simpleMessage("健康检查"),
|
||||
"helperCorruptTip": MessageLookupByLibrary.simpleMessage(
|
||||
"Helper 服务不可用,无法启用 TUN 模式,请重新安装 FlClash。",
|
||||
),
|
||||
"hex": MessageLookupByLibrary.simpleMessage("十六进制"),
|
||||
"hideFromList": MessageLookupByLibrary.simpleMessage("从列表中隐藏"),
|
||||
"hideIp": MessageLookupByLibrary.simpleMessage("隐藏 IP"),
|
||||
"hidePassword": MessageLookupByLibrary.simpleMessage("隐藏密码"),
|
||||
@@ -684,19 +681,20 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"hopInterval": MessageLookupByLibrary.simpleMessage("跳跃间隔"),
|
||||
"host": MessageLookupByLibrary.simpleMessage("主机"),
|
||||
"hostname": MessageLookupByLibrary.simpleMessage("主机名"),
|
||||
"hotkeyConflictWith": m32,
|
||||
"hotkeyConflictWith": m31,
|
||||
"hotkeyDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"全局快捷键在窗口隐藏时依然生效,点击操作即可录制组合键。",
|
||||
),
|
||||
"hotkeyManagement": MessageLookupByLibrary.simpleMessage("快捷键管理"),
|
||||
"hotkeyNeedsModifier": m33,
|
||||
"hotkeyNeedsModifier": m32,
|
||||
"hotkeyNotSet": MessageLookupByLibrary.simpleMessage("未设置"),
|
||||
"hotkeyUnavailable": MessageLookupByLibrary.simpleMessage(
|
||||
"未能注册,可能已被其他应用占用",
|
||||
),
|
||||
"hours": MessageLookupByLibrary.simpleMessage("小时"),
|
||||
"hoursAgo": m34,
|
||||
"hoursAgoShort": m35,
|
||||
"hoursAgo": m33,
|
||||
"hoursAgoShort": m34,
|
||||
"hue": MessageLookupByLibrary.simpleMessage("色相"),
|
||||
"icon": MessageLookupByLibrary.simpleMessage("图标"),
|
||||
"iconRecords": MessageLookupByLibrary.simpleMessage("图标记录"),
|
||||
"iconSets": MessageLookupByLibrary.simpleMessage("图标集"),
|
||||
@@ -718,6 +716,14 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"importFromLink": MessageLookupByLibrary.simpleMessage("从链接导入"),
|
||||
"importUrl": MessageLookupByLibrary.simpleMessage("通过URL导入"),
|
||||
"inbound": MessageLookupByLibrary.simpleMessage("入站"),
|
||||
"includeInterface": MessageLookupByLibrary.simpleMessage("包含网卡"),
|
||||
"includeInterfaceDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"只有从包含网卡进入的流量经过虚拟网卡,设置后排除网卡不再生效。",
|
||||
),
|
||||
"includeUid": MessageLookupByLibrary.simpleMessage("包含用户 ID"),
|
||||
"includeUidDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"只有这些用户 ID 的进程产生的流量经过虚拟网卡。",
|
||||
),
|
||||
"infiniteTime": MessageLookupByLibrary.simpleMessage("长期有效"),
|
||||
"init": MessageLookupByLibrary.simpleMessage("初始化"),
|
||||
"initFailed": MessageLookupByLibrary.simpleMessage("启动失败"),
|
||||
@@ -767,20 +773,20 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"invalidNetworkContent": MessageLookupByLibrary.simpleMessage(
|
||||
"仅支持 tcp 或 udp",
|
||||
),
|
||||
"invalidPolicy": m36,
|
||||
"invalidPolicy": m35,
|
||||
"invalidPortRangeContent": MessageLookupByLibrary.simpleMessage(
|
||||
"请输入端口或范围,如 443 或 8000-9000",
|
||||
),
|
||||
"invalidProfileQrcode": MessageLookupByLibrary.simpleMessage(
|
||||
"该二维码不包含配置文件链接",
|
||||
),
|
||||
"invalidProxy": m37,
|
||||
"invalidProxyProvider": m38,
|
||||
"invalidProxy": m36,
|
||||
"invalidProxyProvider": m37,
|
||||
"invalidRangeContent": MessageLookupByLibrary.simpleMessage(
|
||||
"请输入数字或范围,如 80 或 8000-9000,多个用 / 分隔",
|
||||
),
|
||||
"invalidRuleSet": m39,
|
||||
"invalidSubRule": m40,
|
||||
"invalidRuleSet": m38,
|
||||
"invalidSubRule": m39,
|
||||
"ipAddress": MessageLookupByLibrary.simpleMessage("IP 地址"),
|
||||
"ipAsn": MessageLookupByLibrary.simpleMessage("ASN"),
|
||||
"ipFlagAbuser": MessageLookupByLibrary.simpleMessage("滥用记录"),
|
||||
@@ -813,12 +819,13 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"开启 IPv6 后,VPN 允许 IPv6 入站。",
|
||||
),
|
||||
"ipv6Timeout": MessageLookupByLibrary.simpleMessage("IPv6超时(毫秒)"),
|
||||
"itemsCount": m41,
|
||||
"itemsCount": m40,
|
||||
"ja": MessageLookupByLibrary.simpleMessage("日语"),
|
||||
"justNow": MessageLookupByLibrary.simpleMessage("刚刚"),
|
||||
"keepAliveIdle": MessageLookupByLibrary.simpleMessage("TCP 保持活动空闲时间"),
|
||||
"keepAliveIntervalDesc": MessageLookupByLibrary.simpleMessage("TCP保持活动间隔"),
|
||||
"key": MessageLookupByLibrary.simpleMessage("键"),
|
||||
"ko": MessageLookupByLibrary.simpleMessage("韩语"),
|
||||
"label": MessageLookupByLibrary.simpleMessage("标签"),
|
||||
"language": MessageLookupByLibrary.simpleMessage("语言"),
|
||||
"large": MessageLookupByLibrary.simpleMessage("大"),
|
||||
@@ -829,7 +836,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
),
|
||||
"layout": MessageLookupByLibrary.simpleMessage("布局"),
|
||||
"light": MessageLookupByLibrary.simpleMessage("浅色"),
|
||||
"lineIssueTip": m42,
|
||||
"lineIssueTip": m41,
|
||||
"lineWrap": MessageLookupByLibrary.simpleMessage("自动换行"),
|
||||
"link": MessageLookupByLibrary.simpleMessage("链接"),
|
||||
"linkDesc": MessageLookupByLibrary.simpleMessage("通过订阅链接或代理分享链接获取配置文件"),
|
||||
@@ -855,7 +862,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"locationPermissionDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"根据系统要求,获取Wi-Fi名称需要您授予位置权限。Android 上请选择“始终允许”,否则应用在后台时无法获取 Wi-Fi 名称。",
|
||||
),
|
||||
"locationPermissionGuide": m43,
|
||||
"locationPermissionGuide": m42,
|
||||
"locationPermissionRequired": MessageLookupByLibrary.simpleMessage(
|
||||
"需要位置权限",
|
||||
),
|
||||
@@ -868,10 +875,11 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"logsTest": MessageLookupByLibrary.simpleMessage("日志测试"),
|
||||
"loopback": MessageLookupByLibrary.simpleMessage("UWP 回环解锁"),
|
||||
"loose": MessageLookupByLibrary.simpleMessage("宽松"),
|
||||
"matchCase": MessageLookupByLibrary.simpleMessage("区分大小写"),
|
||||
"matchSourceIp": MessageLookupByLibrary.simpleMessage("匹配来源IP"),
|
||||
"matchTarget": MessageLookupByLibrary.simpleMessage("MATCH-TARGET"),
|
||||
"maxFailedTimes": MessageLookupByLibrary.simpleMessage("最大失败次数"),
|
||||
"maxLengthTip": m44,
|
||||
"maxLengthTip": m43,
|
||||
"maximize": MessageLookupByLibrary.simpleMessage("最大化"),
|
||||
"memoryAppResident": MessageLookupByLibrary.simpleMessage("常驻内存"),
|
||||
"memoryAppShared": MessageLookupByLibrary.simpleMessage("应用及共享"),
|
||||
@@ -889,24 +897,25 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"memoryInfo": MessageLookupByLibrary.simpleMessage("内存信息"),
|
||||
"memoryInfoDesc": MessageLookupByLibrary.simpleMessage("应用与内核占用的内存"),
|
||||
"memoryReleased": MessageLookupByLibrary.simpleMessage("内存已释放"),
|
||||
"memoryReleasedSize": m45,
|
||||
"memoryReleasedSize": m44,
|
||||
"messageTest": MessageLookupByLibrary.simpleMessage("消息测试"),
|
||||
"messageTestTip": MessageLookupByLibrary.simpleMessage("这是一条消息。"),
|
||||
"minimize": MessageLookupByLibrary.simpleMessage("最小化"),
|
||||
"minimizeOnExit": MessageLookupByLibrary.simpleMessage("退出时最小化"),
|
||||
"minutesAgo": m46,
|
||||
"minutesAgoShort": m47,
|
||||
"minutes": MessageLookupByLibrary.simpleMessage("分钟"),
|
||||
"minutesAgo": m45,
|
||||
"minutesAgoShort": m46,
|
||||
"mixedPort": MessageLookupByLibrary.simpleMessage("混合端口"),
|
||||
"mode": MessageLookupByLibrary.simpleMessage("模式"),
|
||||
"monochromeScheme": MessageLookupByLibrary.simpleMessage("单色"),
|
||||
"monthsAgo": m48,
|
||||
"monthsAgoShort": m49,
|
||||
"monthsAgo": m47,
|
||||
"monthsAgoShort": m48,
|
||||
"more": MessageLookupByLibrary.simpleMessage("更多"),
|
||||
"name": MessageLookupByLibrary.simpleMessage("名称"),
|
||||
"navigationBarStyle": MessageLookupByLibrary.simpleMessage("底栏"),
|
||||
"network": MessageLookupByLibrary.simpleMessage("网络"),
|
||||
"networkAccessDeniedError": m50,
|
||||
"networkBadResponseError": m51,
|
||||
"networkAccessDeniedError": m49,
|
||||
"networkBadResponseError": m50,
|
||||
"networkCancelledError": MessageLookupByLibrary.simpleMessage("请求已取消"),
|
||||
"networkConnectionError": MessageLookupByLibrary.simpleMessage(
|
||||
"无法连接到服务器,请检查网络连接或代理设置",
|
||||
@@ -915,13 +924,13 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"无法解析服务器地址,请确认链接正确且 DNS 可用",
|
||||
),
|
||||
"networkName": MessageLookupByLibrary.simpleMessage("网络名称"),
|
||||
"networkNotFoundError": m52,
|
||||
"networkNotFoundError": m51,
|
||||
"networkRateLimitedError": MessageLookupByLibrary.simpleMessage(
|
||||
"请求过于频繁(HTTP 429),请稍后再试",
|
||||
),
|
||||
"networkRequestFailed": m53,
|
||||
"networkRequestFailed": m52,
|
||||
"networkSecret": MessageLookupByLibrary.simpleMessage("网络密码"),
|
||||
"networkServerError": m54,
|
||||
"networkServerError": m53,
|
||||
"networkSpeed": MessageLookupByLibrary.simpleMessage("网络速度"),
|
||||
"networkTakeover": MessageLookupByLibrary.simpleMessage("网络接管"),
|
||||
"networkTimeoutError": MessageLookupByLibrary.simpleMessage(
|
||||
@@ -931,7 +940,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"安全连接失败,服务器证书可能无效,或连接被拦截",
|
||||
),
|
||||
"networkType": MessageLookupByLibrary.simpleMessage("网络类型"),
|
||||
"neutralScheme": MessageLookupByLibrary.simpleMessage("中性"),
|
||||
"nextMatch": MessageLookupByLibrary.simpleMessage("下一个匹配"),
|
||||
"no": MessageLookupByLibrary.simpleMessage("否"),
|
||||
"noData": MessageLookupByLibrary.simpleMessage("暂无数据"),
|
||||
@@ -952,9 +960,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"开启 NTP 后从 NTP 服务器获取时间,而非系统时钟。",
|
||||
),
|
||||
"nullProfileDesc": MessageLookupByLibrary.simpleMessage("添加一个配置文件后即可开始使用"),
|
||||
"nullTip": m55,
|
||||
"numberRangeTip": m56,
|
||||
"numberTip": m57,
|
||||
"nullTip": m54,
|
||||
"numberRangeTip": m55,
|
||||
"numberTip": m56,
|
||||
"obfs": MessageLookupByLibrary.simpleMessage("混淆"),
|
||||
"obfsHost": MessageLookupByLibrary.simpleMessage("混淆主机"),
|
||||
"obfsMode": MessageLookupByLibrary.simpleMessage("混淆模式"),
|
||||
@@ -978,7 +986,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"覆盖目标地址使用嗅探到的域名替换原目标地址发起连接。",
|
||||
),
|
||||
"overrideEntries": MessageLookupByLibrary.simpleMessage("覆写项"),
|
||||
"palette": MessageLookupByLibrary.simpleMessage("调色板"),
|
||||
"parsePureIp": MessageLookupByLibrary.simpleMessage("解析纯IP"),
|
||||
"parsePureIpDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"解析纯 IP 会嗅探只有 IP 地址的连接。",
|
||||
@@ -999,8 +1006,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"port": MessageLookupByLibrary.simpleMessage("端口"),
|
||||
"portConflictTip": MessageLookupByLibrary.simpleMessage("请输入不同的端口"),
|
||||
"portHopping": MessageLookupByLibrary.simpleMessage("端口跳跃"),
|
||||
"portTip": m58,
|
||||
"portValue": m59,
|
||||
"portTip": m57,
|
||||
"portValue": m58,
|
||||
"ports": MessageLookupByLibrary.simpleMessage("端口"),
|
||||
"preSharedKey": MessageLookupByLibrary.simpleMessage("预共享密钥"),
|
||||
"prerequisites": MessageLookupByLibrary.simpleMessage("前置条件"),
|
||||
@@ -1015,8 +1022,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
MessageLookupByLibrary.simpleMessage("请输入有效间隔时间格式"),
|
||||
"profileAutoUpdateIntervalNullValidationDesc":
|
||||
MessageLookupByLibrary.simpleMessage("请输入自动更新间隔时间"),
|
||||
"profileDaysLeft": m60,
|
||||
"profileExpiresIn": m61,
|
||||
"profileDaysLeft": m59,
|
||||
"profileExpiresIn": m60,
|
||||
"profileHasUpdate": MessageLookupByLibrary.simpleMessage(
|
||||
"配置文件已经修改,是否关闭自动更新?",
|
||||
),
|
||||
@@ -1026,7 +1033,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"profileSettingsDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"仅作用于当前配置,未添加的项使用默认值。",
|
||||
),
|
||||
"profileUpdatedAt": m62,
|
||||
"profileTunSettingsDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"仅作用于当前配置,并优先于网络设置中的虚拟网卡覆写项。",
|
||||
),
|
||||
"profileUpdatedAt": m61,
|
||||
"profileUrlInvalidValidationDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"请输入有效配置URL",
|
||||
),
|
||||
@@ -1039,22 +1049,22 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"protocol": MessageLookupByLibrary.simpleMessage("协议"),
|
||||
"protocolParam": MessageLookupByLibrary.simpleMessage("协议参数"),
|
||||
"protocolVersion": MessageLookupByLibrary.simpleMessage("协议版本"),
|
||||
"providerInUse": m63,
|
||||
"providerInUse": m62,
|
||||
"providerUrlTip": MessageLookupByLibrary.simpleMessage("仅支持远程资源"),
|
||||
"providers": MessageLookupByLibrary.simpleMessage("外部资源"),
|
||||
"proxies": MessageLookupByLibrary.simpleMessage("代理"),
|
||||
"proxiesCount": m64,
|
||||
"proxiesProfileLabel": m65,
|
||||
"proxiesRemovedTip": m66,
|
||||
"proxiesReplacedTip": m67,
|
||||
"proxiesCount": m63,
|
||||
"proxiesProfileLabel": m64,
|
||||
"proxiesRemovedTip": m65,
|
||||
"proxiesReplacedTip": m66,
|
||||
"proxyChains": MessageLookupByLibrary.simpleMessage("代理链"),
|
||||
"proxyGroup": MessageLookupByLibrary.simpleMessage("策略组"),
|
||||
"proxyGroupEmpty": MessageLookupByLibrary.simpleMessage("策略组为空"),
|
||||
"proxyGroupInUse": m68,
|
||||
"proxyGroupInUse": m67,
|
||||
"proxyGroupsAfterStart": MessageLookupByLibrary.simpleMessage(
|
||||
"启动后在这里显示策略组",
|
||||
),
|
||||
"proxyGroupsCount": m69,
|
||||
"proxyGroupsCount": m68,
|
||||
"proxyProviders": MessageLookupByLibrary.simpleMessage("代理集"),
|
||||
"proxyType": MessageLookupByLibrary.simpleMessage("代理类型"),
|
||||
"pruneCache": MessageLookupByLibrary.simpleMessage("修剪缓存"),
|
||||
@@ -1065,7 +1075,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"qrcodeDesc": MessageLookupByLibrary.simpleMessage("扫描二维码获取配置文件"),
|
||||
"quickActions": MessageLookupByLibrary.simpleMessage("快捷操作"),
|
||||
"quickEdit": MessageLookupByLibrary.simpleMessage("快速编辑"),
|
||||
"rainbowScheme": MessageLookupByLibrary.simpleMessage("彩虹"),
|
||||
"recentRequests": MessageLookupByLibrary.simpleMessage("最近请求"),
|
||||
"recommendedIcons": MessageLookupByLibrary.simpleMessage("推荐"),
|
||||
"recordType": MessageLookupByLibrary.simpleMessage("记录类型"),
|
||||
@@ -1228,11 +1237,13 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"规则必须以受支持的类型开头,例如 DOMAIN,example.com,DIRECT",
|
||||
),
|
||||
"rules": MessageLookupByLibrary.simpleMessage("规则"),
|
||||
"rulesCount": m70,
|
||||
"rulesCount": m69,
|
||||
"runTime": MessageLookupByLibrary.simpleMessage("运行时长"),
|
||||
"running": MessageLookupByLibrary.simpleMessage("运行中"),
|
||||
"runtimeConfig": MessageLookupByLibrary.simpleMessage("运行时配置"),
|
||||
"safeMode": MessageLookupByLibrary.simpleMessage("安全模式"),
|
||||
"safeModeAppTitle": m71,
|
||||
"safeModeAppTitle": m70,
|
||||
"saturation": MessageLookupByLibrary.simpleMessage("饱和度"),
|
||||
"save": MessageLookupByLibrary.simpleMessage("保存"),
|
||||
"saveChanges": MessageLookupByLibrary.simpleMessage("是否保存更改?"),
|
||||
"script": MessageLookupByLibrary.simpleMessage("脚本"),
|
||||
@@ -1240,21 +1251,21 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"scrollToSelected": MessageLookupByLibrary.simpleMessage("滚动到已选"),
|
||||
"search": MessageLookupByLibrary.simpleMessage("搜索"),
|
||||
"seconds": MessageLookupByLibrary.simpleMessage("秒"),
|
||||
"secondsCount": m72,
|
||||
"secondsCount": m71,
|
||||
"secretKey": MessageLookupByLibrary.simpleMessage("密钥"),
|
||||
"sectionsInEffect": m73,
|
||||
"sectionsInEffect": m72,
|
||||
"selectAll": MessageLookupByLibrary.simpleMessage("全选"),
|
||||
"selectRuleSet": MessageLookupByLibrary.simpleMessage("请选择规则集"),
|
||||
"selectSplitStrategy": MessageLookupByLibrary.simpleMessage("请选择分流策略"),
|
||||
"selected": MessageLookupByLibrary.simpleMessage("已选择"),
|
||||
"server": MessageLookupByLibrary.simpleMessage("服务器"),
|
||||
"serviceAbnormalCount": m74,
|
||||
"serviceAbnormalCount": m73,
|
||||
"serviceAllAvailable": MessageLookupByLibrary.simpleMessage("全部可用"),
|
||||
"serviceAvailable": MessageLookupByLibrary.simpleMessage("可用"),
|
||||
"serviceBlocked": MessageLookupByLibrary.simpleMessage("已被封禁"),
|
||||
"serviceCheck": MessageLookupByLibrary.simpleMessage("检测"),
|
||||
"serviceCheckAll": MessageLookupByLibrary.simpleMessage("全部检测"),
|
||||
"serviceCheckedAt": m75,
|
||||
"serviceCheckedAt": m74,
|
||||
"serviceComingSoon": MessageLookupByLibrary.simpleMessage("即将上线"),
|
||||
"serviceDisallowedIsp": MessageLookupByLibrary.simpleMessage("不允许的 ISP"),
|
||||
"serviceFailed": MessageLookupByLibrary.simpleMessage("检测失败"),
|
||||
@@ -1268,8 +1279,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"serviceUnsupportedRegion": MessageLookupByLibrary.simpleMessage("地区不支持"),
|
||||
"settingEntries": MessageLookupByLibrary.simpleMessage("设置项"),
|
||||
"settings": MessageLookupByLibrary.simpleMessage("设置"),
|
||||
"settingsCount": m76,
|
||||
"shareLinkUnreadable": m77,
|
||||
"settingsCount": m75,
|
||||
"shareLinkUnreadable": m76,
|
||||
"shareLinksInvalid": MessageLookupByLibrary.simpleMessage("无法从链接中读取代理"),
|
||||
"show": MessageLookupByLibrary.simpleMessage("显示"),
|
||||
"showLess": MessageLookupByLibrary.simpleMessage("收起"),
|
||||
@@ -1287,7 +1298,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"singleShareLinkOnly": MessageLookupByLibrary.simpleMessage(
|
||||
"这里只能填写一条链接,多条请在列表的快速编辑中填写",
|
||||
),
|
||||
"singleValueTip": m78,
|
||||
"singleValueTip": m77,
|
||||
"size": MessageLookupByLibrary.simpleMessage("尺寸"),
|
||||
"skipCertVerify": MessageLookupByLibrary.simpleMessage("跳过证书验证"),
|
||||
"skipDomain": MessageLookupByLibrary.simpleMessage("跳过域名"),
|
||||
@@ -1295,17 +1306,20 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"skipDstAddress": MessageLookupByLibrary.simpleMessage("跳过目标地址"),
|
||||
"skipSrcAddress": MessageLookupByLibrary.simpleMessage("跳过来源地址"),
|
||||
"slide": MessageLookupByLibrary.simpleMessage("滑动"),
|
||||
"sliders": MessageLookupByLibrary.simpleMessage("滑块"),
|
||||
"sniffProtocols": MessageLookupByLibrary.simpleMessage("协议"),
|
||||
"sniffer": MessageLookupByLibrary.simpleMessage("域名嗅探"),
|
||||
"snifferStatusDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"域名嗅探从 TLS、HTTP、QUIC 流量中识别域名,供规则匹配。",
|
||||
),
|
||||
"socksPort": MessageLookupByLibrary.simpleMessage("Socks端口"),
|
||||
"softStyle": MessageLookupByLibrary.simpleMessage("柔和"),
|
||||
"sort": MessageLookupByLibrary.simpleMessage("排序"),
|
||||
"source": MessageLookupByLibrary.simpleMessage("来源"),
|
||||
"sourceIp": MessageLookupByLibrary.simpleMessage("源IP"),
|
||||
"specialProxy": MessageLookupByLibrary.simpleMessage("特殊代理"),
|
||||
"specialRules": MessageLookupByLibrary.simpleMessage("特殊规则"),
|
||||
"spectrum": MessageLookupByLibrary.simpleMessage("光谱"),
|
||||
"speedStatistics": MessageLookupByLibrary.simpleMessage("网速统计"),
|
||||
"splitStrategy": MessageLookupByLibrary.simpleMessage("分流策略"),
|
||||
"splitStrategyNotEmpty": MessageLookupByLibrary.simpleMessage("分流策略不能为空"),
|
||||
@@ -1327,7 +1341,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"strategy": MessageLookupByLibrary.simpleMessage("策略"),
|
||||
"strictRoute": MessageLookupByLibrary.simpleMessage("严格路由"),
|
||||
"strictRouteDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"严格路由防止 DNS 等流量绕过虚拟网卡,开启后其他设备将无法访问本机。",
|
||||
"严格路由防止 DNS 等流量绕过虚拟网卡,关闭 IPv6 时会阻断本机的 IPv6 连接。",
|
||||
),
|
||||
"style": MessageLookupByLibrary.simpleMessage("风格"),
|
||||
"submit": MessageLookupByLibrary.simpleMessage("提交"),
|
||||
@@ -1356,18 +1370,20 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"tight": MessageLookupByLibrary.simpleMessage("紧凑"),
|
||||
"time": MessageLookupByLibrary.simpleMessage("时间"),
|
||||
"timeout": MessageLookupByLibrary.simpleMessage("超时"),
|
||||
"tintedStyle": MessageLookupByLibrary.simpleMessage("氛围"),
|
||||
"tip": MessageLookupByLibrary.simpleMessage("提示"),
|
||||
"toggle": MessageLookupByLibrary.simpleMessage("切换"),
|
||||
"tolerance": MessageLookupByLibrary.simpleMessage("容差"),
|
||||
"tonalSpotScheme": MessageLookupByLibrary.simpleMessage("调性点缀"),
|
||||
"tools": MessageLookupByLibrary.simpleMessage("工具"),
|
||||
"torch": MessageLookupByLibrary.simpleMessage("手电筒"),
|
||||
"total": MessageLookupByLibrary.simpleMessage("总计"),
|
||||
"totalDownload": MessageLookupByLibrary.simpleMessage("下载总量"),
|
||||
"totalTraffic": MessageLookupByLibrary.simpleMessage("总流量"),
|
||||
"totalUpload": MessageLookupByLibrary.simpleMessage("上传总量"),
|
||||
"tproxyPort": MessageLookupByLibrary.simpleMessage("Tproxy端口"),
|
||||
"traffic": MessageLookupByLibrary.simpleMessage("流量"),
|
||||
"trafficPeak": m79,
|
||||
"trafficTotal": m80,
|
||||
"trafficPeak": m78,
|
||||
"trafficTotal": m79,
|
||||
"trafficUsage": MessageLookupByLibrary.simpleMessage("流量统计"),
|
||||
"transport": MessageLookupByLibrary.simpleMessage("传输协议"),
|
||||
"tun": MessageLookupByLibrary.simpleMessage("虚拟网卡"),
|
||||
@@ -1375,9 +1391,17 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"虚拟网卡授权失败,已关闭。",
|
||||
),
|
||||
"tunDesc": MessageLookupByLibrary.simpleMessage("虚拟网卡仅在管理员模式生效。"),
|
||||
"tunOverrideDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"添加的项会覆写所有配置的虚拟网卡设置,未添加的项沿用配置自身的设置。自定义配置自己添加的项优先。",
|
||||
),
|
||||
"turnOff": MessageLookupByLibrary.simpleMessage("关闭"),
|
||||
"turnOn": MessageLookupByLibrary.simpleMessage("开启"),
|
||||
"udpRelayMode": MessageLookupByLibrary.simpleMessage("UDP 中继模式"),
|
||||
"udpTimeout": MessageLookupByLibrary.simpleMessage("UDP 超时"),
|
||||
"udpTimeoutDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"UDP 超时以秒为单位,仅在 gvisor、system 和 mixed 栈生效。",
|
||||
),
|
||||
"ultra": MessageLookupByLibrary.simpleMessage("极致"),
|
||||
"undo": MessageLookupByLibrary.simpleMessage("撤销"),
|
||||
"unifiedDelay": MessageLookupByLibrary.simpleMessage("统一延迟"),
|
||||
"unknown": MessageLookupByLibrary.simpleMessage("未知"),
|
||||
@@ -1389,7 +1413,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"upload": MessageLookupByLibrary.simpleMessage("上传"),
|
||||
"uploadBandwidth": MessageLookupByLibrary.simpleMessage("上行带宽"),
|
||||
"url": MessageLookupByLibrary.simpleMessage("URL"),
|
||||
"urlTip": m81,
|
||||
"urlTip": m80,
|
||||
"useHosts": MessageLookupByLibrary.simpleMessage("使用Hosts"),
|
||||
"useSystemHosts": MessageLookupByLibrary.simpleMessage("使用系统Hosts"),
|
||||
"usedShort": MessageLookupByLibrary.simpleMessage("已用"),
|
||||
@@ -1397,9 +1421,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"userAgent": MessageLookupByLibrary.simpleMessage("用户代理"),
|
||||
"username": MessageLookupByLibrary.simpleMessage("用户名"),
|
||||
"value": MessageLookupByLibrary.simpleMessage("值"),
|
||||
"vibrantScheme": MessageLookupByLibrary.simpleMessage("活力"),
|
||||
"view": MessageLookupByLibrary.simpleMessage("查看"),
|
||||
"virtualIpv4": MessageLookupByLibrary.simpleMessage("虚拟 IPv4"),
|
||||
"vividStyle": MessageLookupByLibrary.simpleMessage("鲜明"),
|
||||
"vpnConfigChangeDetected": MessageLookupByLibrary.simpleMessage(
|
||||
"检测到VPN相关配置改动",
|
||||
),
|
||||
@@ -1412,8 +1436,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||
"writeToSystemDesc": MessageLookupByLibrary.simpleMessage(
|
||||
"写入系统会同时设置系统时钟,Android 上不生效。",
|
||||
),
|
||||
"yearsAgo": m82,
|
||||
"yearsAgoShort": m83,
|
||||
"yearsAgo": m81,
|
||||
"yearsAgoShort": m82,
|
||||
"yes": MessageLookupByLibrary.simpleMessage("是"),
|
||||
"zhCN": MessageLookupByLibrary.simpleMessage("中文简体"),
|
||||
};
|
||||
|
||||
+287
-194
@@ -365,11 +365,26 @@ class AppLocalizations {
|
||||
return Intl.message('English', name: 'en', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Spanish`
|
||||
String get es {
|
||||
return Intl.message('Spanish', name: 'es', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `French`
|
||||
String get fr {
|
||||
return Intl.message('French', name: 'fr', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Japanese`
|
||||
String get ja {
|
||||
return Intl.message('Japanese', name: 'ja', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Korean`
|
||||
String get ko {
|
||||
return Intl.message('Korean', name: 'ko', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Russian`
|
||||
String get ru {
|
||||
return Intl.message('Russian', name: 'ru', desc: '', args: []);
|
||||
@@ -390,11 +405,11 @@ class AppLocalizations {
|
||||
return Intl.message('Extend', name: 'extend', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Final config`
|
||||
String get finalConfig {
|
||||
/// `Runtime config`
|
||||
String get runtimeConfig {
|
||||
return Intl.message(
|
||||
'Final config',
|
||||
name: 'finalConfig',
|
||||
'Runtime config',
|
||||
name: 'runtimeConfig',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
@@ -665,10 +680,10 @@ class AppLocalizations {
|
||||
return Intl.message('Auto update', name: 'autoUpdate', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Auto-update interval (minutes)`
|
||||
/// `Auto-update interval`
|
||||
String get autoUpdateInterval {
|
||||
return Intl.message(
|
||||
'Auto-update interval (minutes)',
|
||||
'Auto-update interval',
|
||||
name: 'autoUpdateInterval',
|
||||
desc: '',
|
||||
args: [],
|
||||
@@ -2505,66 +2520,16 @@ class AppLocalizations {
|
||||
);
|
||||
}
|
||||
|
||||
/// `The Software does not collect or upload your subscription URLs, node details, configuration content, visited websites, connection records, traffic content, or logs. This data stays on your device and the developers have no access to it.\n\nThe Software only reaches the network when you use a feature that needs it, such as fetching the subscription URL you provided when updating a profile, or contacting GitHub when checking for updates.\n\nThe desktop versions (Windows, macOS, Linux) include no analytics or crash reporting service. The Android version includes the following two Google Firebase services to improve stability:`
|
||||
/// `The Software does not collect or upload your subscription URLs, node details, configuration content, visited websites, connection records, traffic content, or logs. This data stays on your device and the developers have no access to it.\n\nThe Software only reaches the network when you use a feature that needs it, such as fetching the subscription URL you provided when updating a profile, or contacting GitHub when checking for updates.\n\nThe Software includes no analytics or crash reporting service on any platform.`
|
||||
String get disclaimerPrivacyContent {
|
||||
return Intl.message(
|
||||
'The Software does not collect or upload your subscription URLs, node details, configuration content, visited websites, connection records, traffic content, or logs. This data stays on your device and the developers have no access to it.\n\nThe Software only reaches the network when you use a feature that needs it, such as fetching the subscription URL you provided when updating a profile, or contacting GitHub when checking for updates.\n\nThe desktop versions (Windows, macOS, Linux) include no analytics or crash reporting service. The Android version includes the following two Google Firebase services to improve stability:',
|
||||
'The Software does not collect or upload your subscription URLs, node details, configuration content, visited websites, connection records, traffic content, or logs. This data stays on your device and the developers have no access to it.\n\nThe Software only reaches the network when you use a feature that needs it, such as fetching the subscription URL you provided when updating a profile, or contacting GitHub when checking for updates.\n\nThe Software includes no analytics or crash reporting service on any platform.',
|
||||
name: 'disclaimerPrivacyContent',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Firebase Crashlytics (crash analytics)`
|
||||
String get disclaimerCrashlyticsTitle {
|
||||
return Intl.message(
|
||||
'Firebase Crashlytics (crash analytics)',
|
||||
name: 'disclaimerCrashlyticsTitle',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `When the app crashes, a crash report is uploaded automatically.\n\nWhat is collected: the crash stack trace and error message, the time of the crash, the app version and build number, the device brand and model, the Android version, screen orientation, free memory and storage, whether the device is rooted, and a random installation ID that is created on install and reset on reinstall.\n\nPurpose: only to locate and fix crashes.\n\nYou can turn it off at any time under "Tools > General > Crash analytics".`
|
||||
String get disclaimerCrashlyticsContent {
|
||||
return Intl.message(
|
||||
'When the app crashes, a crash report is uploaded automatically.\n\nWhat is collected: the crash stack trace and error message, the time of the crash, the app version and build number, the device brand and model, the Android version, screen orientation, free memory and storage, whether the device is rooted, and a random installation ID that is created on install and reset on reinstall.\n\nPurpose: only to locate and fix crashes.\n\nYou can turn it off at any time under "Tools > General > Crash analytics".',
|
||||
name: 'disclaimerCrashlyticsContent',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Firebase Analytics (usage statistics)`
|
||||
String get disclaimerAnalyticsTitle {
|
||||
return Intl.message(
|
||||
'Firebase Analytics (usage statistics)',
|
||||
name: 'disclaimerAnalyticsTitle',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Basic app usage statistics are collected automatically with Firebase.\n\nWhat is collected: basic events such as first launch, app opens and session length, and app updates; an app instance ID; the device model, OS version, and system language; and an approximate country- or region-level location inferred from the IP address.\n\nPurpose: only to understand the number of active devices, version distribution, and OS compatibility. The developers do not use this data for advertising, do not sell it, and do not link it to your subscriptions or configurations.`
|
||||
String get disclaimerAnalyticsContent {
|
||||
return Intl.message(
|
||||
'Basic app usage statistics are collected automatically with Firebase.\n\nWhat is collected: basic events such as first launch, app opens and session length, and app updates; an app instance ID; the device model, OS version, and system language; and an approximate country- or region-level location inferred from the IP address.\n\nPurpose: only to understand the number of active devices, version distribution, and OS compatibility. The developers do not use this data for advertising, do not sell it, and do not link it to your subscriptions or configurations.',
|
||||
name: 'disclaimerAnalyticsContent',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `This data is processed and stored by Google on our behalf, may be transferred to servers outside your country or region (such as in the United States), and is governed by the Google Privacy Policy and the Firebase privacy and security documentation. Crash reports are kept for up to 90 days; statistics are kept under the Firebase default retention policy.`
|
||||
String get disclaimerDataProcessingContent {
|
||||
return Intl.message(
|
||||
'This data is processed and stored by Google on our behalf, may be transferred to servers outside your country or region (such as in the United States), and is governed by the Google Privacy Policy and the Firebase privacy and security documentation. Crash reports are kept for up to 90 days; statistics are kept under the Firebase default retention policy.',
|
||||
name: 'disclaimerDataProcessingContent',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Open-source license`
|
||||
String get disclaimerLicenseTitle {
|
||||
return Intl.message(
|
||||
@@ -2625,46 +2590,6 @@ class AppLocalizations {
|
||||
);
|
||||
}
|
||||
|
||||
/// `Android only`
|
||||
String get disclaimerAndroidOnly {
|
||||
return Intl.message(
|
||||
'Android only',
|
||||
name: 'disclaimerAndroidOnly',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Google Privacy Policy`
|
||||
String get disclaimerGooglePrivacy {
|
||||
return Intl.message(
|
||||
'Google Privacy Policy',
|
||||
name: 'disclaimerGooglePrivacy',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Firebase privacy and security`
|
||||
String get disclaimerFirebasePrivacy {
|
||||
return Intl.message(
|
||||
'Firebase privacy and security',
|
||||
name: 'disclaimerFirebasePrivacy',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Read to the end`
|
||||
String get disclaimerReadToEnd {
|
||||
return Intl.message(
|
||||
'Read to the end',
|
||||
name: 'disclaimerReadToEnd',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Restate the statement`
|
||||
String get disclaimerRestateTitle {
|
||||
return Intl.message(
|
||||
@@ -2705,6 +2630,36 @@ class AppLocalizations {
|
||||
);
|
||||
}
|
||||
|
||||
/// `Confirm the statement`
|
||||
String get disclaimerAcknowledgeTitle {
|
||||
return Intl.message(
|
||||
'Confirm the statement',
|
||||
name: 'disclaimerAcknowledgeTitle',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `To confirm you understand, read the following statement and check the box below:`
|
||||
String get disclaimerAcknowledgeTip {
|
||||
return Intl.message(
|
||||
'To confirm you understand, read the following statement and check the box below:',
|
||||
name: 'disclaimerAcknowledgeTip',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `I have read and understand this statement`
|
||||
String get disclaimerAcknowledgeLabel {
|
||||
return Intl.message(
|
||||
'I have read and understand this statement',
|
||||
name: 'disclaimerAcknowledgeLabel',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Agree`
|
||||
String get agree {
|
||||
return Intl.message('Agree', name: 'agree', desc: '', args: []);
|
||||
@@ -3370,34 +3325,54 @@ class AppLocalizations {
|
||||
return Intl.message('Pure black', name: 'pureBlack', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Color schemes`
|
||||
String get colorSchemes {
|
||||
/// `Custom color`
|
||||
String get customColor {
|
||||
return Intl.message(
|
||||
'Color schemes',
|
||||
name: 'colorSchemes',
|
||||
'Custom color',
|
||||
name: 'customColor',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Palette`
|
||||
String get palette {
|
||||
return Intl.message('Palette', name: 'palette', desc: '', args: []);
|
||||
/// `Color style`
|
||||
String get colorStyle {
|
||||
return Intl.message('Color style', name: 'colorStyle', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Tonal spot`
|
||||
String get tonalSpotScheme {
|
||||
return Intl.message(
|
||||
'Tonal spot',
|
||||
name: 'tonalSpotScheme',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
/// `Grid`
|
||||
String get grid {
|
||||
return Intl.message('Grid', name: 'grid', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Fidelity`
|
||||
String get fidelityScheme {
|
||||
return Intl.message('Fidelity', name: 'fidelityScheme', desc: '', args: []);
|
||||
/// `Spectrum`
|
||||
String get spectrum {
|
||||
return Intl.message('Spectrum', name: 'spectrum', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Sliders`
|
||||
String get sliders {
|
||||
return Intl.message('Sliders', name: 'sliders', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Hue`
|
||||
String get hue {
|
||||
return Intl.message('Hue', name: 'hue', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Saturation`
|
||||
String get saturation {
|
||||
return Intl.message('Saturation', name: 'saturation', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Brightness`
|
||||
String get brightness {
|
||||
return Intl.message('Brightness', name: 'brightness', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Hex`
|
||||
String get hex {
|
||||
return Intl.message('Hex', name: 'hex', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Monochrome`
|
||||
@@ -3410,44 +3385,19 @@ class AppLocalizations {
|
||||
);
|
||||
}
|
||||
|
||||
/// `Neutral`
|
||||
String get neutralScheme {
|
||||
return Intl.message('Neutral', name: 'neutralScheme', desc: '', args: []);
|
||||
/// `Vivid`
|
||||
String get vividStyle {
|
||||
return Intl.message('Vivid', name: 'vividStyle', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Vibrant`
|
||||
String get vibrantScheme {
|
||||
return Intl.message('Vibrant', name: 'vibrantScheme', desc: '', args: []);
|
||||
/// `Tinted`
|
||||
String get tintedStyle {
|
||||
return Intl.message('Tinted', name: 'tintedStyle', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Expressive`
|
||||
String get expressiveScheme {
|
||||
return Intl.message(
|
||||
'Expressive',
|
||||
name: 'expressiveScheme',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Content`
|
||||
String get contentScheme {
|
||||
return Intl.message('Content', name: 'contentScheme', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Rainbow`
|
||||
String get rainbowScheme {
|
||||
return Intl.message('Rainbow', name: 'rainbowScheme', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Fruit salad`
|
||||
String get fruitSaladScheme {
|
||||
return Intl.message(
|
||||
'Fruit salad',
|
||||
name: 'fruitSaladScheme',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
/// `Soft`
|
||||
String get softStyle {
|
||||
return Intl.message('Soft', name: 'softStyle', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Developer mode`
|
||||
@@ -4105,46 +4055,6 @@ class AppLocalizations {
|
||||
return Intl.message('Core status', name: 'coreStatus', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Data collection notice`
|
||||
String get dataCollectionTip {
|
||||
return Intl.message(
|
||||
'Data collection notice',
|
||||
name: 'dataCollectionTip',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `This app uses Firebase Crashlytics to collect crash information to improve stability.\nThe collected data includes device information and crash details, and contains no personally sensitive data.\nYou can turn this off in settings.`
|
||||
String get dataCollectionContent {
|
||||
return Intl.message(
|
||||
'This app uses Firebase Crashlytics to collect crash information to improve stability.\nThe collected data includes device information and crash details, and contains no personally sensitive data.\nYou can turn this off in settings.',
|
||||
name: 'dataCollectionContent',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Crash analytics`
|
||||
String get crashlytics {
|
||||
return Intl.message(
|
||||
'Crash analytics',
|
||||
name: 'crashlytics',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Crash analytics uploads a crash log without sensitive information when the app crashes.`
|
||||
String get crashlyticsTip {
|
||||
return Intl.message(
|
||||
'Crash analytics uploads a crash log without sensitive information when the app crashes.',
|
||||
name: 'crashlyticsTip',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Append system DNS`
|
||||
String get appendSystemDns {
|
||||
return Intl.message(
|
||||
@@ -5785,6 +5695,11 @@ class AppLocalizations {
|
||||
return Intl.message('hours', name: 'hours', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `minutes`
|
||||
String get minutes {
|
||||
return Intl.message('minutes', name: 'minutes', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Geo`
|
||||
String get geoResources {
|
||||
return Intl.message('Geo', name: 'geoResources', desc: '', args: []);
|
||||
@@ -6783,6 +6698,11 @@ class AppLocalizations {
|
||||
return Intl.message('Regex', name: 'regex', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Match case`
|
||||
String get matchCase {
|
||||
return Intl.message('Match case', name: 'matchCase', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Icon sets`
|
||||
String get iconSets {
|
||||
return Intl.message('Icon sets', name: 'iconSets', desc: '', args: []);
|
||||
@@ -6848,6 +6768,16 @@ class AppLocalizations {
|
||||
);
|
||||
}
|
||||
|
||||
/// `TCP congestion control works only with the mips stack.`
|
||||
String get congestionControllerDesc {
|
||||
return Intl.message(
|
||||
'TCP congestion control works only with the mips stack.',
|
||||
name: 'congestionControllerDesc',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Route exclude addresses`
|
||||
String get routeExcludeAddress {
|
||||
return Intl.message(
|
||||
@@ -6888,10 +6818,10 @@ class AppLocalizations {
|
||||
);
|
||||
}
|
||||
|
||||
/// `Strict route keeps traffic such as DNS from bypassing TUN, and other devices can no longer reach this one.`
|
||||
/// `Strict route keeps traffic such as DNS from bypassing TUN, and with IPv6 off it blocks this device's IPv6 connections.`
|
||||
String get strictRouteDesc {
|
||||
return Intl.message(
|
||||
'Strict route keeps traffic such as DNS from bypassing TUN, and other devices can no longer reach this one.',
|
||||
'Strict route keeps traffic such as DNS from bypassing TUN, and with IPv6 off it blocks this device\'s IPv6 connections.',
|
||||
name: 'strictRouteDesc',
|
||||
desc: '',
|
||||
args: [],
|
||||
@@ -7003,16 +6933,161 @@ class AppLocalizations {
|
||||
);
|
||||
}
|
||||
|
||||
/// `Excluded interfaces work only on Linux: traffic arriving on them, such as docker0, skips TUN.`
|
||||
/// `Traffic arriving on excluded interfaces, such as docker0, skips TUN.`
|
||||
String get excludeInterfaceDesc {
|
||||
return Intl.message(
|
||||
'Excluded interfaces work only on Linux: traffic arriving on them, such as docker0, skips TUN.',
|
||||
'Traffic arriving on excluded interfaces, such as docker0, skips TUN.',
|
||||
name: 'excludeInterfaceDesc',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Included interfaces`
|
||||
String get includeInterface {
|
||||
return Intl.message(
|
||||
'Included interfaces',
|
||||
name: 'includeInterface',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Only traffic arriving on included interfaces goes through TUN, and excluded interfaces no longer apply.`
|
||||
String get includeInterfaceDesc {
|
||||
return Intl.message(
|
||||
'Only traffic arriving on included interfaces goes through TUN, and excluded interfaces no longer apply.',
|
||||
name: 'includeInterfaceDesc',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Included user IDs`
|
||||
String get includeUid {
|
||||
return Intl.message(
|
||||
'Included user IDs',
|
||||
name: 'includeUid',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Only traffic from processes of included user IDs goes through TUN.`
|
||||
String get includeUidDesc {
|
||||
return Intl.message(
|
||||
'Only traffic from processes of included user IDs goes through TUN.',
|
||||
name: 'includeUidDesc',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Excluded user IDs`
|
||||
String get excludeUid {
|
||||
return Intl.message(
|
||||
'Excluded user IDs',
|
||||
name: 'excludeUid',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Traffic from processes of excluded user IDs skips TUN.`
|
||||
String get excludeUidDesc {
|
||||
return Intl.message(
|
||||
'Traffic from processes of excluded user IDs skips TUN.',
|
||||
name: 'excludeUidDesc',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Excluded source ports`
|
||||
String get excludeSrcPort {
|
||||
return Intl.message(
|
||||
'Excluded source ports',
|
||||
name: 'excludeSrcPort',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Traffic from excluded source ports skips TUN.`
|
||||
String get excludeSrcPortDesc {
|
||||
return Intl.message(
|
||||
'Traffic from excluded source ports skips TUN.',
|
||||
name: 'excludeSrcPortDesc',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Excluded destination ports`
|
||||
String get excludeDstPort {
|
||||
return Intl.message(
|
||||
'Excluded destination ports',
|
||||
name: 'excludeDstPort',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Traffic to excluded destination ports skips TUN.`
|
||||
String get excludeDstPortDesc {
|
||||
return Intl.message(
|
||||
'Traffic to excluded destination ports skips TUN.',
|
||||
name: 'excludeDstPortDesc',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `UDP timeout`
|
||||
String get udpTimeout {
|
||||
return Intl.message('UDP timeout', name: 'udpTimeout', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `The UDP timeout is in seconds and works only with the gvisor, system and mixed stacks.`
|
||||
String get udpTimeoutDesc {
|
||||
return Intl.message(
|
||||
'The UDP timeout is in seconds and works only with the gvisor, system and mixed stacks.',
|
||||
name: 'udpTimeoutDesc',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Without this entry, TUN hijacks every DNS query to port 53 (any:53).`
|
||||
String get dnsHijackDesc {
|
||||
return Intl.message(
|
||||
'Without this entry, TUN hijacks every DNS query to port 53 (any:53).',
|
||||
name: 'dnsHijackDesc',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Entries added here replace the TUN settings of every profile; anything not added keeps the profile's own setting. Entries a custom profile adds itself take precedence.`
|
||||
String get tunOverrideDesc {
|
||||
return Intl.message(
|
||||
'Entries added here replace the TUN settings of every profile; anything not added keeps the profile\'s own setting. Entries a custom profile adds itself take precedence.',
|
||||
name: 'tunOverrideDesc',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Applies to this profile only and takes precedence over the TUN override entries in the network settings.`
|
||||
String get profileTunSettingsDesc {
|
||||
return Intl.message(
|
||||
'Applies to this profile only and takes precedence over the TUN override entries in the network settings.',
|
||||
name: 'profileTunSettingsDesc',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `{count, plural, =1{1 setting} other{{count} settings}}`
|
||||
String settingsCount(num count) {
|
||||
return Intl.plural(
|
||||
@@ -7633,6 +7708,21 @@ class AppLocalizations {
|
||||
return Intl.message('Traffic', name: 'traffic', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `Downloaded`
|
||||
String get totalDownload {
|
||||
return Intl.message(
|
||||
'Downloaded',
|
||||
name: 'totalDownload',
|
||||
desc: '',
|
||||
args: [],
|
||||
);
|
||||
}
|
||||
|
||||
/// `Uploaded`
|
||||
String get totalUpload {
|
||||
return Intl.message('Uploaded', name: 'totalUpload', desc: '', args: []);
|
||||
}
|
||||
|
||||
/// `From`
|
||||
String get initiatorShort {
|
||||
return Intl.message('From', name: 'initiatorShort', desc: '', args: []);
|
||||
@@ -7754,7 +7844,10 @@ class AppLocalizationDelegate extends LocalizationsDelegate<AppLocalizations> {
|
||||
List<Locale> get supportedLocales {
|
||||
return const <Locale>[
|
||||
Locale.fromSubtags(languageCode: 'en'),
|
||||
Locale.fromSubtags(languageCode: 'es'),
|
||||
Locale.fromSubtags(languageCode: 'fr'),
|
||||
Locale.fromSubtags(languageCode: 'ja'),
|
||||
Locale.fromSubtags(languageCode: 'ko'),
|
||||
Locale.fromSubtags(languageCode: 'ru'),
|
||||
Locale.fromSubtags(languageCode: 'zh', countryCode: 'CN'),
|
||||
];
|
||||
|
||||
@@ -18,7 +18,7 @@ void main() {
|
||||
|
||||
test('delegate recognizes only supported locales', () {
|
||||
expect(AppLocalizations.delegate.isSupported(const Locale('en')), isTrue);
|
||||
expect(AppLocalizations.delegate.isSupported(const Locale('fr')), isFalse);
|
||||
expect(AppLocalizations.delegate.isSupported(const Locale('de')), isFalse);
|
||||
expect(
|
||||
AppLocalizations.delegate.shouldReload(AppLocalizations.delegate),
|
||||
isFalse,
|
||||
|
||||
@@ -2,7 +2,10 @@ import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:fl_clash/l10n/intl/messages_en.dart' as messages_en;
|
||||
import 'package:fl_clash/l10n/intl/messages_es.dart' as messages_es;
|
||||
import 'package:fl_clash/l10n/intl/messages_fr.dart' as messages_fr;
|
||||
import 'package:fl_clash/l10n/intl/messages_ja.dart' as messages_ja;
|
||||
import 'package:fl_clash/l10n/intl/messages_ko.dart' as messages_ko;
|
||||
import 'package:fl_clash/l10n/intl/messages_ru.dart' as messages_ru;
|
||||
import 'package:fl_clash/l10n/intl/messages_zh_CN.dart' as messages_zh_cn;
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
@@ -11,7 +14,10 @@ import 'package:intl/message_lookup_by_library.dart';
|
||||
void main() {
|
||||
final lookups = <String, MessageLookupByLibrary>{
|
||||
'en': messages_en.messages,
|
||||
'es': messages_es.messages,
|
||||
'fr': messages_fr.messages,
|
||||
'ja': messages_ja.messages,
|
||||
'ko': messages_ko.messages,
|
||||
'ru': messages_ru.messages,
|
||||
'zh_CN': messages_zh_cn.messages,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user