diff --git a/src/components/home/clash-info-card.tsx b/src/components/home/clash-info-card.tsx index 8510fd9f..c68f33fa 100644 --- a/src/components/home/clash-info-card.tsx +++ b/src/components/home/clash-info-card.tsx @@ -32,7 +32,7 @@ export const ClashInfoCard = () => { - {t("home.clashInfo.fields.coreVersion")} + {t("home.cards.clashInfo.fields.coreVersion")} {clashVersion || "-"} @@ -41,7 +41,7 @@ export const ClashInfoCard = () => { - {t("home.clashInfo.fields.systemProxyAddress")} + {t("home.cards.clashInfo.fields.systemProxyAddress")} {systemProxyAddress} @@ -50,7 +50,7 @@ export const ClashInfoCard = () => { - {t("home.clashInfo.fields.mixedPort")} + {t("home.cards.clashInfo.fields.mixedPort")} {clashConfig.mixedPort || "-"} @@ -59,7 +59,7 @@ export const ClashInfoCard = () => { - {t("home.clashInfo.fields.uptime")} + {t("home.cards.clashInfo.fields.uptime")} {formattedUptime} @@ -68,7 +68,7 @@ export const ClashInfoCard = () => { - {t("home.clashInfo.fields.rulesCount")} + {t("home.cards.clashInfo.fields.rulesCount")} {rules.length} @@ -87,7 +87,7 @@ export const ClashInfoCard = () => { return ( } iconColor="warning" action={null} diff --git a/src/components/home/clash-mode-card.tsx b/src/components/home/clash-mode-card.tsx index d8cd3982..b74a21a5 100644 --- a/src/components/home/clash-mode-card.tsx +++ b/src/components/home/clash-mode-card.tsx @@ -21,16 +21,16 @@ const isClashMode = (mode: string): mode is ClashMode => const MODE_META: Record = { rule: { - label: "home.clashMode.labels.rule", - description: "home.clashMode.descriptions.rule", + label: "home.cards.clashMode.labels.rule", + description: "home.cards.clashMode.descriptions.rule", }, global: { - label: "home.clashMode.labels.global", - description: "home.clashMode.descriptions.global", + label: "home.cards.clashMode.labels.global", + description: "home.cards.clashMode.descriptions.global", }, direct: { - label: "home.clashMode.labels.direct", - description: "home.clashMode.descriptions.direct", + label: "home.cards.clashMode.labels.direct", + description: "home.cards.clashMode.descriptions.direct", }, }; @@ -53,7 +53,7 @@ export const ClashModeCard = () => { if (currentModeKey) { return t(MODE_META[currentModeKey].description); } - return t("home.clashMode.errors.communication"); + return t("home.cards.clashMode.errors.communication"); }, [currentModeKey, t]); // 模式图标映射 diff --git a/src/components/home/current-proxy-card.tsx b/src/components/home/current-proxy-card.tsx index 312ad115..47b8d4c9 100644 --- a/src/components/home/current-proxy-card.tsx +++ b/src/components/home/current-proxy-card.tsx @@ -823,7 +823,7 @@ export const CurrentProxyCard = () => { return ( { iconColor={currentProxy ? "primary" : undefined} action={ - + { {isGlobalMode && ( @@ -914,7 +914,7 @@ export const CurrentProxyCard = () => { {isDirectMode && ( @@ -955,13 +955,13 @@ export const CurrentProxyCard = () => { sx={{ mb: 1.5 }} > - {t("home.currentProxy.labels.group")} + {t("home.cards.currentProxy.labels.group")} { ) : ( - {t("home.currentProxy.labels.noActiveNode")} + {t("home.cards.currentProxy.labels.noActiveNode")} )} diff --git a/src/components/home/enhanced-canvas-traffic-graph.tsx b/src/components/home/enhanced-canvas-traffic-graph.tsx index d817f5b5..5bcf23ba 100644 --- a/src/components/home/enhanced-canvas-traffic-graph.tsx +++ b/src/components/home/enhanced-canvas-traffic-graph.tsx @@ -851,7 +851,7 @@ export const EnhancedCanvasTrafficGraph = memo( // 获取时间范围文本 const getTimeRangeText = useCallback(() => { - return t("home.traffic.patterns.minutes", { time: timeRange }); + return t("home.cards.traffic.patterns.minutes", { time: timeRange }); }, [timeRange, t]); return ( @@ -934,7 +934,7 @@ export const EnhancedCanvasTrafficGraph = memo( textAlign: "right", }} > - {t("home.traffic.legends.upload")} + {t("home.cards.traffic.legends.upload")} - {t("home.traffic.legends.download")} + {t("home.cards.traffic.legends.download")} diff --git a/src/components/home/enhanced-traffic-stats.tsx b/src/components/home/enhanced-traffic-stats.tsx index c266ce31..b2dc13f8 100644 --- a/src/components/home/enhanced-traffic-stats.tsx +++ b/src/components/home/enhanced-traffic-stats.tsx @@ -219,42 +219,42 @@ export const EnhancedTrafficStats = () => { () => [ { icon: , - title: t("home.traffic.metrics.uploadSpeed"), + title: t("home.cards.traffic.metrics.uploadSpeed"), value: parsedData.up, unit: `${parsedData.upUnit}/s`, color: "secondary" as const, }, { icon: , - title: t("home.traffic.metrics.downloadSpeed"), + title: t("home.cards.traffic.metrics.downloadSpeed"), value: parsedData.down, unit: `${parsedData.downUnit}/s`, color: "primary" as const, }, { icon: , - title: t("home.traffic.metrics.activeConnections"), + title: t("home.cards.traffic.metrics.activeConnections"), value: parsedData.connectionsCount, unit: "", color: "success" as const, }, { icon: , - title: t("home.traffic.metrics.uploaded"), + title: t("home.cards.traffic.metrics.uploaded"), value: parsedData.uploadTotal, unit: parsedData.uploadTotalUnit, color: "secondary" as const, }, { icon: , - title: t("home.traffic.metrics.downloaded"), + title: t("home.cards.traffic.metrics.downloaded"), value: parsedData.downloadTotal, unit: parsedData.downloadTotalUnit, color: "primary" as const, }, { icon: , - title: t("home.traffic.metrics.memoryUsage"), + title: t("home.cards.traffic.metrics.memoryUsage"), value: parsedData.inuse, unit: parsedData.inuseUnit, color: "error" as const, diff --git a/src/components/home/home-profile-card.tsx b/src/components/home/home-profile-card.tsx index 56ca4907..6a60a656 100644 --- a/src/components/home/home-profile-card.tsx +++ b/src/components/home/home-profile-card.tsx @@ -112,7 +112,7 @@ const ProfileDetails = ({ sx={{ display: "flex", alignItems: "center" }} > - {t("home.profile.labels.from")}:{" "} + {t("profiles.card.labels.from")}:{" "} {current.home ? ( - {t("home.profile.labels.updateTime")}:{" "} + {t("profiles.card.labels.updateTime")}:{" "} {dayjs(current.updated * 1000).format("YYYY-MM-DD HH:mm")} @@ -201,7 +201,7 @@ const ProfileDetails = ({ - {t("home.profile.labels.usedTotal")}:{" "} + {t("profiles.card.labels.usedTotal")}:{" "} {parseTraffic(usedTraffic)} /{" "} {parseTraffic(current.extra.total)} @@ -213,7 +213,7 @@ const ProfileDetails = ({ - {t("home.profile.labels.expireTime")}:{" "} + {t("profiles.card.labels.expireTime")}:{" "} {parseExpire(current.extra.expire)} @@ -268,10 +268,10 @@ const EmptyProfile = ({ onClick }: { onClick: () => void }) => { sx={{ fontSize: 60, color: "primary.main", mb: 2 }} /> - {t("home.profile.actions.import")} {t("home.profile.title")} + {t("profiles.page.actions.import")} {t("profiles.page.title")} - {t("home.profile.labels.clickToImport")} + {t("profiles.card.labels.clickToImport")} ); @@ -312,7 +312,7 @@ export const HomeProfileCard = ({ // 卡片标题 const cardTitle = useMemo(() => { - if (!current) return t("home.profile.title"); + if (!current) return t("profiles.page.title"); if (!current.home) return current.name; diff --git a/src/components/home/ip-info-card.tsx b/src/components/home/ip-info-card.tsx index 2db6b96e..138134f1 100644 --- a/src/components/home/ip-info-card.tsx +++ b/src/components/home/ip-info-card.tsx @@ -70,7 +70,7 @@ export const IpInfoCard = () => { setCountdown(IP_REFRESH_SECONDS); } catch (err) { setError( - err instanceof Error ? err.message : t("home.ipInfo.errors.load"), + err instanceof Error ? err.message : t("home.cards.ipInfo.errors.load"), ); } finally { setLoading(false); @@ -116,7 +116,7 @@ export const IpInfoCard = () => { if (loading) { return ( } iconColor="info" action={ @@ -139,7 +139,7 @@ export const IpInfoCard = () => { if (error) { return ( } iconColor="info" action={ @@ -172,7 +172,7 @@ export const IpInfoCard = () => { // 渲染正常数据 return ( } iconColor="info" action={ @@ -224,7 +224,7 @@ export const IpInfoCard = () => { maxWidth: "100%", }} > - {ipInfo?.country || t("home.ipInfo.labels.unknown")} + {ipInfo?.country || t("home.cards.ipInfo.labels.unknown")} @@ -234,7 +234,7 @@ export const IpInfoCard = () => { color="text.secondary" sx={{ flexShrink: 0 }} > - {t("home.ipInfo.labels.ip")}: + {t("home.cards.ipInfo.labels.ip")}: { {/* 右侧:组织、ISP和位置信息 */} - + @@ -305,7 +308,7 @@ export const IpInfoCard = () => { }} > - {t("home.ipInfo.labels.autoRefresh")}: {countdown}s + {t("home.cards.ipInfo.labels.autoRefresh")}: {countdown}s { if (activeTab === "system") { return { text: systemProxyActualState - ? t("home.proxyTunCard.status.systemProxyEnabled") - : t("home.proxyTunCard.status.systemProxyDisabled"), - tooltip: t("home.proxyTunCard.tooltips.systemProxy"), + ? t("home.cards.proxyTun.status.systemProxyEnabled") + : t("home.cards.proxyTun.status.systemProxyDisabled"), + tooltip: t("home.cards.proxyTun.tooltips.systemProxy"), }; } else { return { text: !isTunModeAvailable - ? t("home.proxyTunCard.status.tunModeServiceRequired") + ? t("home.cards.proxyTun.status.tunModeServiceRequired") : enable_tun_mode - ? t("home.proxyTunCard.status.tunModeEnabled") - : t("home.proxyTunCard.status.tunModeDisabled"), - tooltip: t("home.proxyTunCard.tooltips.tunMode"), + ? t("home.cards.proxyTun.status.tunModeEnabled") + : t("home.cards.proxyTun.status.tunModeDisabled"), + tooltip: t("home.cards.proxyTun.tooltips.tunMode"), }; } }, [ diff --git a/src/components/home/system-info-card.tsx b/src/components/home/system-info-card.tsx index 9a991b07..142b08c1 100644 --- a/src/components/home/system-info-card.tsx +++ b/src/components/home/system-info-card.tsx @@ -219,11 +219,11 @@ export const SystemInfoCard = () => { <> ); @@ -231,21 +231,21 @@ export const SystemInfoCard = () => { return ( ); } else if (isSidecarMode) { return ( ); } else { return ( ); } @@ -256,13 +256,13 @@ export const SystemInfoCard = () => { if (isAdminMode) { // 判断是否同时处于服务模式 if (!isSidecarMode) { - return t("home.systemInfo.badges.adminServiceMode"); + return t("home.cards.systemInfo.badges.adminServiceMode"); } - return t("home.systemInfo.badges.adminMode"); + return t("home.cards.systemInfo.badges.adminMode"); } else if (isSidecarMode) { - return t("home.systemInfo.badges.sidecarMode"); + return t("home.cards.systemInfo.badges.sidecarMode"); } else { - return t("home.systemInfo.badges.serviceMode"); + return t("home.cards.systemInfo.badges.serviceMode"); } }; @@ -271,14 +271,14 @@ export const SystemInfoCard = () => { return ( } iconColor="error" action={ @@ -287,7 +287,7 @@ export const SystemInfoCard = () => { - {t("home.systemInfo.fields.osInfo")} + {t("home.cards.systemInfo.fields.osInfo")} {systemState.osInfo} @@ -300,11 +300,13 @@ export const SystemInfoCard = () => { alignItems="center" > - {t("home.systemInfo.fields.autoLaunch")} + {t("home.cards.systemInfo.fields.autoLaunch")} {isAdminMode && ( - + )} @@ -329,7 +331,7 @@ export const SystemInfoCard = () => { alignItems="center" > - {t("home.systemInfo.fields.runningMode")} + {t("home.cards.systemInfo.fields.runningMode")} { - {t("home.systemInfo.fields.lastCheckUpdate")} + {t("home.cards.systemInfo.fields.lastCheckUpdate")} { - {t("home.systemInfo.fields.vergeVersion")} + {t("home.cards.systemInfo.fields.vergeVersion")} v{appVersion} diff --git a/src/components/home/test-card.tsx b/src/components/home/test-card.tsx index cc001df7..ff43b32f 100644 --- a/src/components/home/test-card.tsx +++ b/src/components/home/test-card.tsx @@ -173,7 +173,7 @@ export const TestCard = () => { return ( } action={ diff --git a/src/components/layout/layout-traffic.tsx b/src/components/layout/layout-traffic.tsx index 9b33d696..790eeab4 100644 --- a/src/components/layout/layout-traffic.tsx +++ b/src/components/layout/layout-traffic.tsx @@ -87,7 +87,7 @@ export const LayoutTraffic = () => { { { {displayMemory && ( = { - select: "proxies.strategies.select", - "url-test": "proxies.strategies.url-test", - fallback: "proxies.strategies.fallback", - "load-balance": "proxies.strategies.load-balance", - relay: "proxies.strategies.relay", + select: "proxies.enums.strategies.select", + "url-test": "proxies.enums.strategies.url-test", + fallback: "proxies.enums.strategies.fallback", + "load-balance": "proxies.enums.strategies.load-balance", + relay: "proxies.enums.strategies.relay", }; const PROXY_POLICY_LABEL_KEYS: Record = builtinProxyPolicies.reduce( (acc, policy) => { - acc[policy] = `proxies.policies.${policy}`; + acc[policy] = `proxies.enums.policies.${policy}`; return acc; }, {} as Record, diff --git a/src/components/profile/rules-editor-viewer.tsx b/src/components/profile/rules-editor-viewer.tsx index 031ca1b2..9731aa40 100644 --- a/src/components/profile/rules-editor-viewer.tsx +++ b/src/components/profile/rules-editor-viewer.tsx @@ -241,7 +241,7 @@ const rules: { ]; const RULE_TYPE_LABEL_KEYS: Record = Object.fromEntries( - rules.map((rule) => [rule.name, `ruleEditor.ruleTypes.${rule.name}`]), + rules.map((rule) => [rule.name, `rules.editor.ruleTypes.${rule.name}`]), ); const builtinProxyPolicies = ["DIRECT", "REJECT", "REJECT-DROP", "PASS"]; @@ -475,10 +475,10 @@ export const RulesEditorViewer = (props: Props) => { const validateRule = () => { if ((ruleType.required ?? true) && !ruleContent) { - throw new Error(t("ruleEditor.form.validation.conditionRequired")); + throw new Error(t("rules.editor.form.validation.conditionRequired")); } if (ruleType.validator && !ruleType.validator(ruleContent)) { - throw new Error(t("ruleEditor.form.validation.invalidRule")); + throw new Error(t("rules.editor.form.validation.invalidRule")); } const condition = (ruleType.required ?? true) ? ruleContent : ""; @@ -503,7 +503,7 @@ export const RulesEditorViewer = (props: Props) => { { - {t("ruleEditor.title")} + {t("rules.editor.title")} @@ -663,7 +663,7 @@ export const RulesEditorViewer = (props: Props) => { } }} > - {t("ruleEditor.form.actions.appendRule")} + {t("rules.editor.form.actions.appendRule")} diff --git a/src/components/proxy/provider-button.tsx b/src/components/proxy/provider-button.tsx index 4c33be0c..91ee1e47 100644 --- a/src/components/proxy/provider-button.tsx +++ b/src/components/proxy/provider-button.tsx @@ -66,11 +66,11 @@ export const ProviderButton = () => { await refreshProxy(); await refreshProxyProviders(); - showNotice.success("providers.notices.updateSuccess", { + showNotice.success("proxies.page.provider.notices.updateSuccess", { name, }); } catch (err) { - showNotice.error("providers.notices.updateFailed", { + showNotice.error("proxies.page.provider.notices.updateFailed", { name, message: String(err), }); @@ -86,7 +86,7 @@ export const ProviderButton = () => { // 获取所有provider的名称 const allProviders = Object.keys(proxyProviders || {}); if (allProviders.length === 0) { - showNotice.info("providers.notices.none"); + showNotice.info("proxies.page.provider.notices.none"); return; } @@ -116,9 +116,9 @@ export const ProviderButton = () => { await refreshProxy(); await refreshProxyProviders(); - showNotice.success("providers.notices.allUpdated"); + showNotice.success("proxies.page.provider.notices.allUpdated"); } catch (err) { - showNotice.error("providers.notices.genericError", { + showNotice.error("proxies.page.provider.notices.genericError", { message: String(err), }); } finally { diff --git a/src/components/rule/provider-button.tsx b/src/components/rule/provider-button.tsx index 3a5f027e..dca6b6e2 100644 --- a/src/components/rule/provider-button.tsx +++ b/src/components/rule/provider-button.tsx @@ -58,11 +58,11 @@ export const ProviderButton = () => { await refreshRules(); await refreshRuleProviders(); - showNotice.success("providers.notices.updateSuccess", { + showNotice.success("rules.page.provider.notices.updateSuccess", { name, }); } catch (err) { - showNotice.error("providers.notices.updateFailed", { + showNotice.error("rules.page.provider.notices.updateFailed", { name, message: String(err), }); @@ -78,7 +78,7 @@ export const ProviderButton = () => { // 获取所有provider的名称 const allProviders = Object.keys(ruleProviders || {}); if (allProviders.length === 0) { - showNotice.info("providers.notices.none"); + showNotice.info("rules.page.provider.notices.none"); return; } @@ -108,9 +108,9 @@ export const ProviderButton = () => { await refreshRules(); await refreshRuleProviders(); - showNotice.success("providers.notices.allUpdated"); + showNotice.success("rules.page.provider.notices.allUpdated"); } catch (err) { - showNotice.error("providers.notices.genericError", { + showNotice.error("rules.page.provider.notices.genericError", { message: String(err), }); } finally { diff --git a/src/components/setting/mods/clash-core-viewer.tsx b/src/components/setting/mods/clash-core-viewer.tsx index 786a756b..c59aa546 100644 --- a/src/components/setting/mods/clash-core-viewer.tsx +++ b/src/components/setting/mods/clash-core-viewer.tsx @@ -27,12 +27,12 @@ const VALID_CORE = [ { name: "Mihomo", core: "verge-mihomo", - chipKey: "system.labels.releaseVersion", + chipKey: "settings.clash.variants.release", }, { name: "Mihomo Alpha", core: "verge-mihomo-alpha", - chipKey: "system.labels.alphaVersion", + chipKey: "settings.clash.variants.alpha", }, ]; diff --git a/src/components/setting/mods/network-interface-viewer.tsx b/src/components/setting/mods/network-interface-viewer.tsx index b12e6d93..cd939ce3 100644 --- a/src/components/setting/mods/network-interface-viewer.tsx +++ b/src/components/setting/mods/network-interface-viewer.tsx @@ -66,13 +66,13 @@ export function NetworkInterfaceViewer({ ref }: { ref?: Ref }) { address.V4 && ( ), )} @@ -84,13 +84,13 @@ export function NetworkInterfaceViewer({ ref }: { ref?: Ref }) { address.V6 && ( ), )} diff --git a/src/components/setting/setting-system.tsx b/src/components/setting/setting-system.tsx index 9cc799e6..92051856 100644 --- a/src/components/setting/setting-system.tsx +++ b/src/components/setting/setting-system.tsx @@ -56,7 +56,7 @@ const SettingSystem = ({ onError }: Props) => { /> @@ -97,7 +97,7 @@ const SettingSystem = ({ onError }: Props) => { {isSystemProxyMode && ( sysproxyRef.current?.open()} @@ -181,7 +181,7 @@ const ProxyControlSwitches = ({ {isTunMode && ( tunRef.current?.open()} diff --git a/src/hooks/use-system-state.ts b/src/hooks/use-system-state.ts index e2670578..aea7a8e3 100644 --- a/src/hooks/use-system-state.ts +++ b/src/hooks/use-system-state.ts @@ -65,11 +65,13 @@ export function useSystemState() { disablingTunMode = true; patchVerge({ enable_tun_mode: false }) .then(() => { - showNotice.info("system.notifications.tunMode.autoDisabled"); + showNotice.info("settings.system.notifications.tunMode.autoDisabled"); }) .catch((err) => { console.error("[useVerge] 自动关闭TUN模式失败:", err); - showNotice.error("system.notifications.tunMode.autoDisableFailed"); + showNotice.error( + "settings.system.notifications.tunMode.autoDisableFailed", + ); }) .finally(() => { const tid = setTimeout(() => { diff --git a/src/hooks/useServiceInstaller.ts b/src/hooks/useServiceInstaller.ts index 9b6a50d7..fe4a2ef0 100644 --- a/src/hooks/useServiceInstaller.ts +++ b/src/hooks/useServiceInstaller.ts @@ -28,13 +28,13 @@ export const useServiceInstaller = () => { const installServiceAndRestartCore = useCallback(async () => { await executeWithErrorHandling( () => installService(), - "service.status.installing", - "service.notifications.installSuccess", + "settings.clash.service.status.installing", + "settings.clash.service.notifications.installSuccess", ); await executeWithErrorHandling( () => restartCore(), - "core.status.restarting", + "settings.clash.status.restarting", "settings.clash.notifications.restartSuccess", ); diff --git a/src/hooks/useServiceUninstaller.ts b/src/hooks/useServiceUninstaller.ts index a85be404..84cdb4db 100644 --- a/src/hooks/useServiceUninstaller.ts +++ b/src/hooks/useServiceUninstaller.ts @@ -27,17 +27,20 @@ export const useServiceUninstaller = () => { const uninstallServiceAndRestartCore = useCallback(async () => { try { - await executeWithErrorHandling(() => stopCore(), "core.status.stopping"); + await executeWithErrorHandling( + () => stopCore(), + "settings.clash.status.stopping", + ); await executeWithErrorHandling( () => uninstallService(), - "service.status.uninstalling", - "service.notifications.uninstallSuccess", + "settings.clash.service.status.uninstalling", + "settings.clash.service.notifications.uninstallSuccess", ); } catch (ignore) { } finally { await executeWithErrorHandling( () => restartCore(), - "core.status.restarting", + "settings.clash.status.restarting", "settings.clash.notifications.restartSuccess", ); await mutateSystemState(); diff --git a/src/locales/ar.json b/src/locales/ar.json index 5016ab90..d53b564b 100644 --- a/src/locales/ar.json +++ b/src/locales/ar.json @@ -92,167 +92,7 @@ "dark": "Dark", "system": "System" }, - "ruleEditor": { - "title": "تعديل القواعد", - "form": { - "labels": { - "type": "نوع القاعدة", - "content": "محتوى القاعدة", - "proxyPolicy": "سياسة الوكيل" - }, - "toggles": { - "noResolve": "لا يوجد حل" - }, - "actions": { - "prependRule": "إضافة قاعدة في البداية", - "appendRule": "إضافة قاعدة في النهاية" - }, - "validation": { - "conditionRequired": "شرط القاعدة مطلوب", - "invalidRule": "قاعدة غير صالحة" - } - }, - "ruleTypes": { - "DOMAIN": "مطابقة اسم المجال الكامل", - "DOMAIN-SUFFIX": "مطابقة لاحقة المجال", - "DOMAIN-KEYWORD": "مطابقة كلمة مفتاحية في المجال", - "DOMAIN-REGEX": "مطابقة المجال باستخدام التعبيرات العادية", - "GEOSITE": "مطابقة المجالات ضمن Geosite", - "GEOIP": "مطابقة رمز البلد لعنوان IP", - "SRC-GEOIP": "مطابقة رمز البلد لعنوان IP المصدر", - "IP-ASN": "مطابقة ASN لعنوان IP", - "SRC-IP-ASN": "مطابقة ASN لعنوان IP المصدر", - "IP-CIDR": "مطابقة نطاق عنوان IP", - "IP-CIDR6": "مطابقة نطاق عناوين IPv6", - "SRC-IP-CIDR": "مطابقة نطاق عنوان IP المصدر", - "IP-SUFFIX": "مطابقة لاحقة عنوان IP", - "SRC-IP-SUFFIX": "مطابقة لاحقة عنوان IP المصدر", - "SRC-PORT": "مطابقة نطاق المنفذ المصدر", - "DST-PORT": "مطابقة نطاق المنفذ الوجهة", - "IN-PORT": "مطابقة المنفذ الوارد", - "DSCP": "علامة DSCP (لـ tproxy على UDP فقط)", - "PROCESS-NAME": "مطابقة اسم العملية (اسم حزمة Android)", - "PROCESS-PATH": "مطابقة المسار الكامل للعملية", - "PROCESS-NAME-REGEX": "مطابقة اسم العملية باستخدام التعبيرات العادية (اسم حزمة Android)", - "PROCESS-PATH-REGEX": "مطابقة المسار الكامل للعملية باستخدام التعبيرات العادية", - "NETWORK": "مطابقة بروتوكول النقل (TCP/UDP)", - "UID": "مطابقة معرف المستخدم في Linux", - "IN-TYPE": "مطابقة نوع الإدخال", - "IN-USER": "مطابقة اسم المستخدم للإدخال", - "IN-NAME": "مطابقة اسم الإدخال", - "SUB-RULE": "قاعدة فرعية", - "RULE-SET": "مطابقة مجموعة القواعد", - "AND": "منطقي AND", - "OR": "منطقي OR", - "NOT": "منطقي NOT", - "MATCH": "مطابقة جميع الطلبات" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "System proxy is enabled, your applications will access the network through the proxy", - "systemProxyDisabled": "System proxy is disabled, it is recommended for most users to turn on this option", - "tunModeServiceRequired": "TUN mode requires service mode, please install the service first", - "tunModeEnabled": "TUN mode is enabled, applications will access the network through the virtual network card", - "tunModeDisabled": "TUN mode is disabled, suitable for special applications" - }, - "tooltips": { - "systemProxy": "عند التمكين، سيتم تعديل إعدادات الوكيل في نظام التشغيل. إذا فشل التمكين، فقم بتعديل إعدادات الوكيل في النظام يدويًا.", - "tunMode": "TUN mode can take over all application traffic, suitable for special applications that do not follow the system proxy settings" - } - }, - "clashInfo": { - "title": "Clash Info", - "fields": { - "coreVersion": "Core Version", - "systemProxyAddress": "System Proxy Address", - "mixedPort": "Mixed Port", - "uptime": "Uptime", - "rulesCount": "Rules Count" - } - }, - "systemInfo": { - "title": "System Info", - "fields": { - "osInfo": "OS Info", - "autoLaunch": "إطلاق تلقائي", - "runningMode": "Running Mode", - "lastCheckUpdate": "Last Check Update", - "vergeVersion": "إصدار Verge" - }, - "actions": { - "settings": "الإعدادات" - }, - "tooltips": { - "autoLaunchAdmin": "Administrator mode may not support auto launch" - }, - "badges": { - "adminMode": "Administrator Mode", - "serviceMode": "وضع الخدمة", - "sidecarMode": "User Mode", - "adminServiceMode": "Admin + Service Mode" - } - }, - "ipInfo": { - "title": "IP Information", - "errors": { - "load": "Failed to get IP info" - }, - "labels": { - "ip": "IP", - "asn": "ASN", - "isp": "ISP", - "org": "ORG", - "location": "Location", - "timezone": "Timezone", - "autoRefresh": "Auto refresh", - "unknown": "Unknown" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "سرعة الرفع", - "downloadSpeed": "سرعة التنزيل", - "activeConnections": "Active Connections", - "uploaded": "تم الرفع", - "downloaded": "تم التنزيل", - "memoryUsage": "استهلاك الذاكرة" - }, - "legends": { - "upload": "Upload", - "download": "Download" - }, - "patterns": { - "minutes": "{{time}} Minutes" - } - }, - "currentProxy": { - "title": "Current Node", - "actions": { - "refreshDelay": "فحص التأخير" - }, - "labels": { - "globalMode": "الوضع العالمي", - "directMode": "الوضع المباشر", - "group": "Group", - "proxy": "Proxy", - "noActiveNode": "No active proxy node" - } - }, - "profile": { - "title": "الملفات الشخصية", - "actions": { - "import": "استيراد" - }, - "labels": { - "from": "من", - "updateTime": "وقت التحديث", - "usedTotal": "المستخدم / الإجمالي", - "expireTime": "وقت الانتهاء", - "clickToImport": "Click to import subscription" - } - }, "page": { "title": "Home", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "Website Tests" - }, - "clashMode": { - "errors": { - "communication": "Core communication error" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "System proxy is enabled, your applications will access the network through the proxy", + "systemProxyDisabled": "System proxy is disabled, it is recommended for most users to turn on this option", + "tunModeServiceRequired": "TUN mode requires service mode, please install the service first", + "tunModeEnabled": "TUN mode is enabled, applications will access the network through the virtual network card", + "tunModeDisabled": "TUN mode is disabled, suitable for special applications" + }, + "tooltips": { + "systemProxy": "عند التمكين، سيتم تعديل إعدادات الوكيل في نظام التشغيل. إذا فشل التمكين، فقم بتعديل إعدادات الوكيل في النظام يدويًا.", + "tunMode": "TUN mode can take over all application traffic, suitable for special applications that do not follow the system proxy settings" + } }, - "labels": { - "rule": "وضع القواعد", - "global": "الوضع العالمي", - "direct": "الوضع المباشر" + "clashInfo": { + "title": "Clash Info", + "fields": { + "coreVersion": "Core Version", + "systemProxyAddress": "System Proxy Address", + "mixedPort": "Mixed Port", + "uptime": "Uptime", + "rulesCount": "Rules Count" + } }, - "descriptions": { - "rule": "Automatically choose proxies according to the rule set.", - "global": "Forward all network requests through the selected proxy.", - "direct": "Bypass the proxy and connect to the internet directly." + "systemInfo": { + "title": "System Info", + "fields": { + "osInfo": "OS Info", + "autoLaunch": "إطلاق تلقائي", + "runningMode": "Running Mode", + "lastCheckUpdate": "Last Check Update", + "vergeVersion": "إصدار Verge" + }, + "actions": { + "settings": "الإعدادات" + }, + "tooltips": { + "autoLaunchAdmin": "Administrator mode may not support auto launch" + }, + "badges": { + "adminMode": "Administrator Mode", + "serviceMode": "وضع الخدمة", + "sidecarMode": "User Mode", + "adminServiceMode": "Admin + Service Mode" + } + }, + "ipInfo": { + "title": "IP Information", + "labels": { + "ip": "IP", + "asn": "ASN", + "isp": "ISP", + "org": "ORG", + "location": "Location", + "timezone": "Timezone", + "autoRefresh": "Auto refresh", + "unknown": "Unknown" + }, + "errors": { + "load": "فشل الحصول على معلومات الـ IP" + } + }, + "currentProxy": { + "title": "Current Node", + "actions": { + "refreshDelay": "فحص التأخير" + }, + "labels": { + "globalMode": "الوضع العالمي", + "directMode": "الوضع المباشر", + "group": "Group", + "proxy": "Proxy", + "noActiveNode": "No active proxy node" + } + }, + "tests": { + "title": "Website Tests" + }, + "traffic": { + "metrics": { + "uploadSpeed": "سرعة الرفع", + "downloadSpeed": "سرعة التنزيل", + "activeConnections": "Active Connections", + "uploaded": "تم الرفع", + "downloaded": "تم التنزيل", + "memoryUsage": "استهلاك الذاكرة" + }, + "legends": { + "upload": "Upload", + "download": "Download" + }, + "patterns": { + "minutes": "{{time}} Minutes" + } + }, + "clashMode": { + "errors": { + "communication": "Core communication error" + }, + "labels": { + "rule": "وضع القواعد", + "global": "الوضع العالمي", + "direct": "الوضع المباشر" + }, + "descriptions": { + "rule": "Automatically choose proxies according to the rule set.", + "global": "Forward all network requests through the selected proxy.", + "direct": "Bypass the proxy and connect to the internet directly." + } } } }, @@ -306,20 +239,22 @@ "tunMode": "وضع TUN", "systemProxy": "وكيل النظام" }, - "labels": { - "autoLaunch": "إطلاق تلقائي", - "silentStart": "بدء صامت" - }, "tooltips": { "autoLaunchAdmin": "Administrator mode may not support auto launch", "silentStart": "بدء البرنامج في الخلفية دون عرض الواجهة" + }, + "fields": { + "autoLaunch": "تشغيل تلقائي", + "silentStart": "تشغيل صامت" + }, + "notifications": { + "tunMode": { + "autoDisabled": "TUN Mode automatically disabled due to service unavailable", + "autoDisableFailed": "Failed to disable TUN Mode automatically" + } } }, "proxyControl": { - "labels": { - "systemProxy": "وكيل النظام", - "tunMode": "وضع TUN" - }, "tooltips": { "systemProxy": "عند التمكين، سيتم تعديل إعدادات الوكيل في نظام التشغيل. إذا فشل التمكين، فقم بتعديل إعدادات الوكيل في النظام يدويًا.", "tunMode": "وضع TUN (بطاقة شبكة افتراضية): يلتقط كل حركة المرور في النظام. عند تمكينه، لا حاجة لتفعيل وكيل النظام.", @@ -328,6 +263,10 @@ "actions": { "installService": "تثبيت الخدمة ", "uninstallService": "Uninstall Service" + }, + "fields": { + "systemProxy": "وكيل النظام", + "tunMode": "وضع TUN" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "تم إعادة تشغيل نواة Clash", - "versionUpdated": "تم تحديث إصدار النواة" + "versionUpdated": "تم تحديث إصدار النواة", + "changeSuccess": "تم تغيير النواة بنجاح", + "changeFailed": "فشل تغيير النواة" + }, + "status": { + "stopping": "Stopping Core...", + "restarting": "Restarting Core..." + }, + "service": { + "status": { + "installing": "جاري تثبيت الخدمة...", + "uninstalling": "Uninstalling Service..." + }, + "notifications": { + "installSuccess": "تم تثبيت الخدمة بنجاح", + "uninstallSuccess": "تم إلغاء تثبيت الخدمة بنجاح" + } + }, + "variants": { + "release": "الإصدار المستقر", + "alpha": "الإصدار التجريبي" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "واجهة الشبكة", - "labels": { + "fields": { "ipAddress": "عنوان IP", "macAddress": "عنوان MAC" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} updated successfully", - "updateFailed": "Failed to update {{name}}: {{message}}", - "genericError": "Update failed: {{message}}", - "none": "No providers available to update", - "allUpdated": "All providers updated successfully" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "Update with Clash proxy successfully", + "withClashProxyFailed": "Update failed even with Clash proxy" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "تحديث الكل", "update": "تحديث" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "الوضع المباشر" } }, - "strategies": { - "select": "اختيار الوكيل يدويًا", - "url-test": "اختيار الوكيل بناءً على تأخير اختبار الرابط", - "fallback": "التبديل إلى وكيل آخر عند حدوث خطأ", - "load-balance": "توزيع التحميل بين الوكلاء", - "relay": "التمرير عبر سلسلة الوكلاء المحددة" - }, - "policies": { - "DIRECT": "البيانات تخرج مباشرة", - "REJECT": "رفض الطلبات", - "REJECT-DROP": "تجاهل الطلبات", - "PASS": "تخطي هذه القاعدة عند المطابقة" + "enums": { + "strategies": { + "select": "اختيار الوكيل يدويًا", + "url-test": "اختيار الوكيل بناءً على تأخير اختبار الرابط", + "fallback": "التبديل إلى وكيل آخر عند حدوث خطأ", + "load-balance": "توزيع التحميل بين الوكلاء", + "relay": "التمرير عبر سلسلة الوكلاء المحددة" + }, + "policies": { + "DIRECT": "البيانات تخرج مباشرة", + "REJECT": "رفض الطلبات", + "REJECT-DROP": "تجاهل الطلبات", + "PASS": "تخطي هذه القاعدة عند المطابقة" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "تحديث الكل", "update": "تحديث" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } } + }, + "editor": { + "title": "تعديل القواعد", + "form": { + "labels": { + "type": "نوع القاعدة", + "content": "محتوى القاعدة", + "proxyPolicy": "سياسة الوكيل" + }, + "toggles": { + "noResolve": "لا يوجد حل" + }, + "actions": { + "prependRule": "إضافة قاعدة في البداية", + "appendRule": "إضافة قاعدة في النهاية" + }, + "validation": { + "conditionRequired": "شرط القاعدة مطلوب", + "invalidRule": "قاعدة غير صالحة" + } + }, + "ruleTypes": { + "DOMAIN": "مطابقة اسم المجال الكامل", + "DOMAIN-SUFFIX": "مطابقة لاحقة المجال", + "DOMAIN-KEYWORD": "مطابقة كلمة مفتاحية في المجال", + "DOMAIN-REGEX": "مطابقة المجال باستخدام التعبيرات العادية", + "GEOSITE": "مطابقة المجالات ضمن Geosite", + "GEOIP": "مطابقة رمز البلد لعنوان IP", + "SRC-GEOIP": "مطابقة رمز البلد لعنوان IP المصدر", + "IP-ASN": "مطابقة ASN لعنوان IP", + "SRC-IP-ASN": "مطابقة ASN لعنوان IP المصدر", + "IP-CIDR": "مطابقة نطاق عنوان IP", + "IP-CIDR6": "مطابقة نطاق عناوين IPv6", + "SRC-IP-CIDR": "مطابقة نطاق عنوان IP المصدر", + "IP-SUFFIX": "مطابقة لاحقة عنوان IP", + "SRC-IP-SUFFIX": "مطابقة لاحقة عنوان IP المصدر", + "SRC-PORT": "مطابقة نطاق المنفذ المصدر", + "DST-PORT": "مطابقة نطاق المنفذ الوجهة", + "IN-PORT": "مطابقة المنفذ الوارد", + "DSCP": "علامة DSCP (لـ tproxy على UDP فقط)", + "PROCESS-NAME": "مطابقة اسم العملية (اسم حزمة Android)", + "PROCESS-PATH": "مطابقة المسار الكامل للعملية", + "PROCESS-NAME-REGEX": "مطابقة اسم العملية باستخدام التعبيرات العادية (اسم حزمة Android)", + "PROCESS-PATH-REGEX": "مطابقة المسار الكامل للعملية باستخدام التعبيرات العادية", + "NETWORK": "مطابقة بروتوكول النقل (TCP/UDP)", + "UID": "مطابقة معرف المستخدم في Linux", + "IN-TYPE": "مطابقة نوع الإدخال", + "IN-USER": "مطابقة اسم المستخدم للإدخال", + "IN-NAME": "مطابقة اسم الإدخال", + "SUB-RULE": "قاعدة فرعية", + "RULE-SET": "مطابقة مجموعة القواعد", + "AND": "منطقي AND", + "OR": "منطقي OR", + "NOT": "منطقي NOT", + "MATCH": "مطابقة جميع الطلبات" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "وحدة التحكم للسكريبت" + }, + "card": { + "labels": { + "from": "من", + "updateTime": "وقت التحديث", + "usedTotal": "المستخدم / الإجمالي", + "expireTime": "وقت الانتهاء", + "clickToImport": "Click to import subscription" + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "سرعة الرفع", - "downloadSpeed": "سرعة التنزيل", - "memoryUsage": "استهلاك الذاكرة" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "TUN Mode automatically disabled due to service unavailable", - "autoDisableFailed": "Failed to disable TUN Mode automatically" - } - }, - "labels": { - "releaseVersion": "إصدار مستقر", - "alphaVersion": "إصدار ألفا" - } - }, - "core": { - "status": { - "stopping": "Stopping Core...", - "restarting": "Restarting Core..." - }, - "notifications": { - "changeSuccess": "تم تغيير النواة بنجاح", - "changeFailed": "فشل تغيير النواة" - } - }, - "service": { - "status": { - "installing": "جاري تثبيت الخدمة...", - "uninstalling": "Uninstalling Service..." - }, - "notifications": { - "installSuccess": "تم تثبيت الخدمة بنجاح", - "uninstallSuccess": "تم إلغاء تثبيت الخدمة بنجاح" - } - }, "validation": { "config": { "failed": "فشل التحقق من تكوين الاشتراك، يرجى فحص ملف التكوين، تم التراجع عن التغييرات، تفاصيل الخطأ:", @@ -1272,11 +1268,5 @@ "keyError": "Merge file key error, changes reverted", "generalError": "Merge file error, changes reverted" } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "Update with Clash proxy successfully", - "withClashProxyFailed": "Update failed even with Clash proxy" - } } } diff --git a/src/locales/de.json b/src/locales/de.json index 60a18253..4573c52d 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -92,167 +92,7 @@ "dark": "Dark", "system": "System" }, - "ruleEditor": { - "title": "Regeln bearbeiten", - "form": { - "labels": { - "type": "Regeltyp", - "content": "Regelinhalt", - "proxyPolicy": "Proxy-Strategie" - }, - "toggles": { - "noResolve": "DNS-Auflösung überspringen" - }, - "actions": { - "prependRule": "Vorherige Regel hinzufügen", - "appendRule": "Nachfolgende Regel hinzufügen" - }, - "validation": { - "conditionRequired": "Regelbedingung fehlt", - "invalidRule": "Ungültige Regel" - } - }, - "ruleTypes": { - "DOMAIN": "Vollständigen Domainnamen übereinstimmen", - "DOMAIN-SUFFIX": "Domain-Suffix übereinstimmen", - "DOMAIN-KEYWORD": "Domain-Schlüsselwort übereinstimmen", - "DOMAIN-REGEX": "Domain-Regulärer Ausdruck übereinstimmen", - "GEOSITE": "Domainnamen in Geosite übereinstimmen", - "GEOIP": "IP-Ländercode übereinstimmen", - "SRC-GEOIP": "Quell-IP-Ländercode übereinstimmen", - "IP-ASN": "IP-ASN übereinstimmen", - "SRC-IP-ASN": "Quell-IP-ASN übereinstimmen", - "IP-CIDR": "IP-Adressbereich übereinstimmen", - "IP-CIDR6": "IP-Adressbereich übereinstimmen", - "SRC-IP-CIDR": "Quell-IP-Adressbereich übereinstimmen", - "IP-SUFFIX": "IP-Suffix-Bereich übereinstimmen", - "SRC-IP-SUFFIX": "Quell-IP-Suffix-Bereich übereinstimmen", - "SRC-PORT": "Quellportbereich der Anfrage übereinstimmen", - "DST-PORT": "Zielportbereich der Anfrage übereinstimmen", - "IN-PORT": "Eingangsport übereinstimmen", - "DSCP": "DSCP-Markierung (nur für TPROXY UDP-Eingang)", - "PROCESS-NAME": "Prozessnamen übereinstimmen (Android-Paketname)", - "PROCESS-PATH": "Vollständigen Prozesspfad übereinstimmen", - "PROCESS-NAME-REGEX": "Regulärer Ausdruck für vollständigen Prozessnamen übereinstimmen (Android-Paketname)", - "PROCESS-PATH-REGEX": "Regulärer Ausdruck für vollständigen Prozesspfad übereinstimmen", - "NETWORK": "Übertragungsprotokoll übereinstimmen (TCP/UDP)", - "UID": "Linux-USER-ID übereinstimmen", - "IN-TYPE": "Eingangstyp übereinstimmen", - "IN-USER": "Eingangsbenutzername übereinstimmen", - "IN-NAME": "Eingangsname übereinstimmen", - "SUB-RULE": "Unterregel", - "RULE-SET": "Regelsatz übereinstimmen", - "AND": "Logisches UND", - "OR": "Logisches ODER", - "NOT": "Logisches NICHT", - "MATCH": "Alle Anfragen übereinstimmen" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "Der Systemproxy ist aktiviert. Ihre Anwendungen werden über den Proxy auf das Netzwerk zugreifen.", - "systemProxyDisabled": "Der Systemproxy ist deaktiviert. Es wird empfohlen, diesen Eintrag für die meisten Benutzer zu aktivieren.", - "tunModeServiceRequired": "Der TUN-Modus erfordert den Service-Modus. Bitte installieren Sie zuerst den Service.", - "tunModeEnabled": "Der TUN-Modus ist aktiviert. Die Anwendungen werden über die virtuelle Netzwerkschnittstelle auf das Netzwerk zugreifen.", - "tunModeDisabled": "Der TUN-Modus ist deaktiviert. Dies ist für spezielle Anwendungen geeignet." - }, - "tooltips": { - "systemProxy": "Ändern Sie die Proxy-Einstellungen des Betriebssystems. Wenn die Aktivierung fehlschlägt, können Sie die Proxy-Einstellungen des Betriebssystems manuell ändern.", - "tunMode": "Der TUN-Modus kann den gesamten Anwendungsverkehr übernehmen und eignet sich für spezielle Anwendungen, die die Systemproxy-Einstellungen nicht befolgen." - } - }, - "clashInfo": { - "title": "Clash-Informationen", - "fields": { - "coreVersion": "Kernversion", - "systemProxyAddress": "Systemproxy-Adresse", - "mixedPort": "Mixed Port", - "uptime": "Laufzeit", - "rulesCount": "Anzahl der Regeln" - } - }, - "systemInfo": { - "title": "Systeminformationen", - "fields": { - "osInfo": "Betriebssysteminformationen", - "autoLaunch": "Beim Start automatisch starten", - "runningMode": "Betriebsmodus", - "lastCheckUpdate": "Letzte Aktualitätsprüfung", - "vergeVersion": "Verge-Version" - }, - "actions": { - "settings": "Einstellungen" - }, - "tooltips": { - "autoLaunchAdmin": "Der Administrator-Modus unterstützt möglicherweise keine automatische Startfunktion." - }, - "badges": { - "adminMode": "Administrator-Modus", - "serviceMode": "Service-Modus", - "sidecarMode": "Benutzermodus", - "adminServiceMode": "Admin + Service Mode" - } - }, - "ipInfo": { - "title": "IP-Informationen", - "errors": { - "load": "Abrufen der IP-Informationen fehlgeschlagen" - }, - "labels": { - "ip": "IP", - "asn": "Autonomes Systemnummer", - "isp": "Internetdienstanbieter", - "org": "Organisation", - "location": "Standort", - "timezone": "Zeitzone", - "autoRefresh": "Automatische Aktualisierung", - "unknown": "Unbekannt" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "Upload-Geschwindigkeit", - "downloadSpeed": "Download-Geschwindigkeit", - "activeConnections": "Aktive Verbindungen", - "uploaded": "Hochgeladen", - "downloaded": "Heruntergeladen", - "memoryUsage": "Kern-Speichernutzung" - }, - "legends": { - "upload": "Hochladen", - "download": "Herunterladen" - }, - "patterns": { - "minutes": "{{time}} Minutes" - } - }, - "currentProxy": { - "title": "Aktueller Knoten", - "actions": { - "refreshDelay": "Latenztest" - }, - "labels": { - "globalMode": "Global Mode", - "directMode": "Direct Mode", - "group": "Proxy-Gruppe", - "proxy": "Knoten", - "noActiveNode": "Kein aktiver Proxy-Knoten" - } - }, - "profile": { - "title": "Abonnement", - "actions": { - "import": "Importieren" - }, - "labels": { - "from": "Von", - "updateTime": "Aktualisierungszeit", - "usedTotal": "Verwendet / Gesamt", - "expireTime": "Ablaufzeit", - "clickToImport": "Klicken Sie hier, um ein Abonnement zu importieren." - } - }, "page": { "title": "Startseite", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "Website-Tests" - }, - "clashMode": { - "errors": { - "communication": "Core communication error" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "Der Systemproxy ist aktiviert. Ihre Anwendungen werden über den Proxy auf das Netzwerk zugreifen.", + "systemProxyDisabled": "Der Systemproxy ist deaktiviert. Es wird empfohlen, diesen Eintrag für die meisten Benutzer zu aktivieren.", + "tunModeServiceRequired": "Der TUN-Modus erfordert den Service-Modus. Bitte installieren Sie zuerst den Service.", + "tunModeEnabled": "Der TUN-Modus ist aktiviert. Die Anwendungen werden über die virtuelle Netzwerkschnittstelle auf das Netzwerk zugreifen.", + "tunModeDisabled": "Der TUN-Modus ist deaktiviert. Dies ist für spezielle Anwendungen geeignet." + }, + "tooltips": { + "systemProxy": "Ändern Sie die Proxy-Einstellungen des Betriebssystems. Wenn die Aktivierung fehlschlägt, können Sie die Proxy-Einstellungen des Betriebssystems manuell ändern.", + "tunMode": "Der TUN-Modus kann den gesamten Anwendungsverkehr übernehmen und eignet sich für spezielle Anwendungen, die die Systemproxy-Einstellungen nicht befolgen." + } }, - "labels": { - "rule": "Regel-Modus", - "global": "Globaler Modus", - "direct": "Direktverbindungs-Modus" + "clashInfo": { + "title": "Clash-Informationen", + "fields": { + "coreVersion": "Kernversion", + "systemProxyAddress": "Systemproxy-Adresse", + "mixedPort": "Mixed Port", + "uptime": "Laufzeit", + "rulesCount": "Anzahl der Regeln" + } }, - "descriptions": { - "rule": "Automatically choose proxies according to the rule set.", - "global": "Forward all network requests through the selected proxy.", - "direct": "Bypass the proxy and connect to the internet directly." + "systemInfo": { + "title": "Systeminformationen", + "fields": { + "osInfo": "Betriebssysteminformationen", + "autoLaunch": "Beim Start automatisch starten", + "runningMode": "Betriebsmodus", + "lastCheckUpdate": "Letzte Aktualitätsprüfung", + "vergeVersion": "Verge-Version" + }, + "actions": { + "settings": "Einstellungen" + }, + "tooltips": { + "autoLaunchAdmin": "Der Administrator-Modus unterstützt möglicherweise keine automatische Startfunktion." + }, + "badges": { + "adminMode": "Administrator-Modus", + "serviceMode": "Service-Modus", + "sidecarMode": "Benutzermodus", + "adminServiceMode": "Admin + Service Mode" + } + }, + "ipInfo": { + "title": "IP-Informationen", + "labels": { + "ip": "IP", + "asn": "Autonomes Systemnummer", + "isp": "Internetdienstanbieter", + "org": "Organisation", + "location": "Standort", + "timezone": "Zeitzone", + "autoRefresh": "Automatische Aktualisierung", + "unknown": "Unbekannt" + }, + "errors": { + "load": "IP-Informationen konnten nicht abgerufen werden" + } + }, + "currentProxy": { + "title": "Aktueller Knoten", + "actions": { + "refreshDelay": "Latenztest" + }, + "labels": { + "globalMode": "Global Mode", + "directMode": "Direct Mode", + "group": "Proxy-Gruppe", + "proxy": "Knoten", + "noActiveNode": "Kein aktiver Proxy-Knoten" + } + }, + "tests": { + "title": "Website-Tests" + }, + "traffic": { + "metrics": { + "uploadSpeed": "Upload-Geschwindigkeit", + "downloadSpeed": "Download-Geschwindigkeit", + "activeConnections": "Aktive Verbindungen", + "uploaded": "Hochgeladen", + "downloaded": "Heruntergeladen", + "memoryUsage": "Kern-Speichernutzung" + }, + "legends": { + "upload": "Hochladen", + "download": "Herunterladen" + }, + "patterns": { + "minutes": "{{time}} Minutes" + } + }, + "clashMode": { + "errors": { + "communication": "Core communication error" + }, + "labels": { + "rule": "Regel-Modus", + "global": "Globaler Modus", + "direct": "Direktverbindungs-Modus" + }, + "descriptions": { + "rule": "Automatically choose proxies according to the rule set.", + "global": "Forward all network requests through the selected proxy.", + "direct": "Bypass the proxy and connect to the internet directly." + } } } }, @@ -306,20 +239,22 @@ "tunMode": "Virtual Network Interface-Modus", "systemProxy": "Systemproxy" }, - "labels": { - "autoLaunch": "Beim Start automatisch starten", - "silentStart": "Stillstart" - }, "tooltips": { "autoLaunchAdmin": "Der Administrator-Modus unterstützt möglicherweise keine automatische Startfunktion.", "silentStart": "Die Anwendung wird im Hintergrund gestartet, ohne dass das Programmfenster angezeigt wird." + }, + "fields": { + "autoLaunch": "Automatischer Start", + "silentStart": "Leiser Start" + }, + "notifications": { + "tunMode": { + "autoDisabled": "TUN Mode automatically disabled due to service unavailable", + "autoDisableFailed": "Failed to disable TUN Mode automatically" + } } }, "proxyControl": { - "labels": { - "systemProxy": "Systemproxy", - "tunMode": "Virtual Network Interface-Modus" - }, "tooltips": { "systemProxy": "Ändern Sie die Proxy-Einstellungen des Betriebssystems. Wenn die Aktivierung fehlschlägt, können Sie die Proxy-Einstellungen des Betriebssystems manuell ändern.", "tunMode": "Der TUN-Modus (Virtual Network Interface) übernimmt den gesamten Systemverkehr. Wenn dieser Modus aktiviert ist, muss der Systemproxy nicht geöffnet werden.", @@ -328,6 +263,10 @@ "actions": { "installService": "Service installieren", "uninstallService": "Dienst deinstallieren" + }, + "fields": { + "systemProxy": "Systemproxy", + "tunMode": "Virtual Network Interface-Modus" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "Clash-Kern wurde neu gestartet", - "versionUpdated": "Kernversion wurde aktualisiert" + "versionUpdated": "Kernversion wurde aktualisiert", + "changeSuccess": "Kern erfolgreich gewechselt", + "changeFailed": "Kernwechsel fehlgeschlagen" + }, + "status": { + "stopping": "Kern wird gestoppt...", + "restarting": "Kern wird neu gestartet..." + }, + "service": { + "status": { + "installing": "Service wird installiert...", + "uninstalling": "Service wird deinstalliert..." + }, + "notifications": { + "installSuccess": "Service erfolgreich installiert", + "uninstallSuccess": "Service erfolgreich deinstalliert" + } + }, + "variants": { + "release": "Stabile Version", + "alpha": "Alpha-Version" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "Netzwerkschnittstelle", - "labels": { + "fields": { "ipAddress": "IP-Adresse", "macAddress": "MAC-Adresse" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} updated successfully", - "updateFailed": "Failed to update {{name}}: {{message}}", - "genericError": "Update failed: {{message}}", - "none": "No providers available to update", - "allUpdated": "All providers updated successfully" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "Aktualisierung mit Clash-Proxy erfolgreich", + "withClashProxyFailed": "Aktualisierung auch mit Clash-Proxy fehlgeschlagen" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "Alle aktualisieren", "update": "Aktualisieren" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "Direktverbindungs-Modus" } }, - "strategies": { - "select": "Proxy manuell auswählen", - "url-test": "Proxy basierend auf URL-Latenztest auswählen", - "fallback": "Bei Nichtverfügbarkeit zu einem anderen Proxy wechseln", - "load-balance": "Proxy basierend auf Lastverteilung zuweisen", - "relay": "Basierend auf definiertem Proxy-Kette weiterleiten" - }, - "policies": { - "DIRECT": "Direktverbindung", - "REJECT": "Anfrage ablehnen", - "REJECT-DROP": "Anfrage verwerfen", - "PASS": "Diese Regel überspringen" + "enums": { + "strategies": { + "select": "Proxy manuell auswählen", + "url-test": "Proxy basierend auf URL-Latenztest auswählen", + "fallback": "Bei Nichtverfügbarkeit zu einem anderen Proxy wechseln", + "load-balance": "Proxy basierend auf Lastverteilung zuweisen", + "relay": "Basierend auf definiertem Proxy-Kette weiterleiten" + }, + "policies": { + "DIRECT": "Direktverbindung", + "REJECT": "Anfrage ablehnen", + "REJECT-DROP": "Anfrage verwerfen", + "PASS": "Diese Regel überspringen" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "Alle aktualisieren", "update": "Aktualisieren" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } } + }, + "editor": { + "title": "Regeln bearbeiten", + "form": { + "labels": { + "type": "Regeltyp", + "content": "Regelinhalt", + "proxyPolicy": "Proxy-Strategie" + }, + "toggles": { + "noResolve": "DNS-Auflösung überspringen" + }, + "actions": { + "prependRule": "Vorherige Regel hinzufügen", + "appendRule": "Nachfolgende Regel hinzufügen" + }, + "validation": { + "conditionRequired": "Regelbedingung fehlt", + "invalidRule": "Ungültige Regel" + } + }, + "ruleTypes": { + "DOMAIN": "Vollständigen Domainnamen übereinstimmen", + "DOMAIN-SUFFIX": "Domain-Suffix übereinstimmen", + "DOMAIN-KEYWORD": "Domain-Schlüsselwort übereinstimmen", + "DOMAIN-REGEX": "Domain-Regulärer Ausdruck übereinstimmen", + "GEOSITE": "Domainnamen in Geosite übereinstimmen", + "GEOIP": "IP-Ländercode übereinstimmen", + "SRC-GEOIP": "Quell-IP-Ländercode übereinstimmen", + "IP-ASN": "IP-ASN übereinstimmen", + "SRC-IP-ASN": "Quell-IP-ASN übereinstimmen", + "IP-CIDR": "IP-Adressbereich übereinstimmen", + "IP-CIDR6": "IP-Adressbereich übereinstimmen", + "SRC-IP-CIDR": "Quell-IP-Adressbereich übereinstimmen", + "IP-SUFFIX": "IP-Suffix-Bereich übereinstimmen", + "SRC-IP-SUFFIX": "Quell-IP-Suffix-Bereich übereinstimmen", + "SRC-PORT": "Quellportbereich der Anfrage übereinstimmen", + "DST-PORT": "Zielportbereich der Anfrage übereinstimmen", + "IN-PORT": "Eingangsport übereinstimmen", + "DSCP": "DSCP-Markierung (nur für TPROXY UDP-Eingang)", + "PROCESS-NAME": "Prozessnamen übereinstimmen (Android-Paketname)", + "PROCESS-PATH": "Vollständigen Prozesspfad übereinstimmen", + "PROCESS-NAME-REGEX": "Regulärer Ausdruck für vollständigen Prozessnamen übereinstimmen (Android-Paketname)", + "PROCESS-PATH-REGEX": "Regulärer Ausdruck für vollständigen Prozesspfad übereinstimmen", + "NETWORK": "Übertragungsprotokoll übereinstimmen (TCP/UDP)", + "UID": "Linux-USER-ID übereinstimmen", + "IN-TYPE": "Eingangstyp übereinstimmen", + "IN-USER": "Eingangsbenutzername übereinstimmen", + "IN-NAME": "Eingangsname übereinstimmen", + "SUB-RULE": "Unterregel", + "RULE-SET": "Regelsatz übereinstimmen", + "AND": "Logisches UND", + "OR": "Logisches ODER", + "NOT": "Logisches NICHT", + "MATCH": "Alle Anfragen übereinstimmen" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "Skript-Konsole-Ausgabe" + }, + "card": { + "labels": { + "from": "Von", + "updateTime": "Aktualisierungszeit", + "usedTotal": "Verwendet / Gesamt", + "expireTime": "Ablaufzeit", + "clickToImport": "Klicken Sie hier, um ein Abonnement zu importieren." + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "Upload-Geschwindigkeit", - "downloadSpeed": "Download-Geschwindigkeit", - "memoryUsage": "Kern-Speichernutzung" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "TUN Mode automatically disabled due to service unavailable", - "autoDisableFailed": "Failed to disable TUN Mode automatically" - } - }, - "labels": { - "releaseVersion": "Stabile Version", - "alphaVersion": "Vorschauversion" - } - }, - "core": { - "status": { - "stopping": "Kern wird gestoppt...", - "restarting": "Kern wird neu gestartet..." - }, - "notifications": { - "changeSuccess": "Kern erfolgreich gewechselt", - "changeFailed": "Kernwechsel fehlgeschlagen" - } - }, - "service": { - "status": { - "installing": "Service wird installiert...", - "uninstalling": "Service wird deinstalliert..." - }, - "notifications": { - "installSuccess": "Service erfolgreich installiert", - "uninstallSuccess": "Service erfolgreich deinstalliert" - } - }, "validation": { "config": { "failed": "Abonnement-Konfigurationsüberprüfung fehlgeschlagen. Bitte überprüfen Sie die Abonnement-Konfigurationsdatei. Die Änderungen wurden rückgängig gemacht. Fehlerdetails: ", @@ -1272,11 +1268,5 @@ "keyError": "Schlüsselfehler in der Überdeckungsdatei. Die Änderungen wurden rückgängig gemacht.", "generalError": "Fehler in der Überdeckungsdatei. Die Änderungen wurden rückgängig gemacht." } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "Aktualisierung mit Clash-Proxy erfolgreich", - "withClashProxyFailed": "Aktualisierung auch mit Clash-Proxy fehlgeschlagen" - } } } diff --git a/src/locales/en.json b/src/locales/en.json index 8185c2cb..740a7c22 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -92,167 +92,7 @@ "dark": "Dark", "system": "System" }, - "ruleEditor": { - "title": "Edit Rules", - "form": { - "labels": { - "type": "Rule Type", - "content": "Rule Content", - "proxyPolicy": "Proxy Policy" - }, - "toggles": { - "noResolve": "No Resolve" - }, - "actions": { - "prependRule": "Prepend Rule", - "appendRule": "Append Rule" - }, - "validation": { - "conditionRequired": "Rule Condition Required", - "invalidRule": "Invalid Rule" - } - }, - "ruleTypes": { - "DOMAIN": "Match full domain (DOMAIN)", - "DOMAIN-SUFFIX": "Match domain suffix (DOMAIN-SUFFIX)", - "DOMAIN-KEYWORD": "Match domain keyword (DOMAIN-KEYWORD)", - "DOMAIN-REGEX": "Match domain using regex (DOMAIN-REGEX)", - "GEOSITE": "Match domains in Geosite (GEOSITE)", - "GEOIP": "Match IP country code (GEOIP)", - "SRC-GEOIP": "Match source IP country code (SRC-GEOIP)", - "IP-ASN": "Match IP ASN (IP-ASN)", - "SRC-IP-ASN": "Match source IP ASN (SRC-IP-ASN)", - "IP-CIDR": "Match IP address range (IP-CIDR)", - "IP-CIDR6": "Match IPv6 address range (IP-CIDR6)", - "SRC-IP-CIDR": "Match source IP address range (SRC-IP-CIDR)", - "IP-SUFFIX": "Match IP suffix range (IP-SUFFIX)", - "SRC-IP-SUFFIX": "Match source IP suffix range (SRC-IP-SUFFIX)", - "SRC-PORT": "Match source port range (SRC-PORT)", - "DST-PORT": "Match destination port range (DST-PORT)", - "IN-PORT": "Match inbound port (IN-PORT)", - "DSCP": "DSCP tag (TPROXY UDP inbound only) (DSCP)", - "PROCESS-NAME": "Match process name (PROCESS-NAME)", - "PROCESS-PATH": "Match full process path (PROCESS-PATH)", - "PROCESS-NAME-REGEX": "Match process name using regex (PROCESS-NAME-REGEX)", - "PROCESS-PATH-REGEX": "Match full process path using regex (PROCESS-PATH-REGEX)", - "NETWORK": "Match network protocol (TCP/UDP) (NETWORK)", - "UID": "Match Linux user ID (UID)", - "IN-TYPE": "Match inbound type (IN-TYPE)", - "IN-USER": "Match inbound username (IN-USER)", - "IN-NAME": "Match inbound name (IN-NAME)", - "SUB-RULE": "Sub-rule (SUB-RULE)", - "RULE-SET": "Match rule set (RULE-SET)", - "AND": "Logical AND (AND)", - "OR": "Logical OR (OR)", - "NOT": "Logical NOT (NOT)", - "MATCH": "Match all requests (MATCH)" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "System Proxy Enabled", - "systemProxyDisabled": "System Proxy Disabled", - "tunModeServiceRequired": "TUN Mode Service Required", - "tunModeEnabled": "TUN Mode Enabled", - "tunModeDisabled": "TUN Mode Disabled" - }, - "tooltips": { - "systemProxy": "System Proxy Info", - "tunMode": "TUN Mode Intercept Info" - } - }, - "clashInfo": { - "title": "Clash Info", - "fields": { - "coreVersion": "Core Version", - "systemProxyAddress": "System Proxy Address", - "mixedPort": "Mixed Port", - "uptime": "Uptime", - "rulesCount": "Rules Count" - } - }, - "systemInfo": { - "title": "System Info", - "fields": { - "osInfo": "OS Info", - "autoLaunch": "Auto Launch", - "runningMode": "Running Mode", - "lastCheckUpdate": "Last Check Update", - "vergeVersion": "Verge Version" - }, - "actions": { - "settings": "Settings" - }, - "tooltips": { - "autoLaunchAdmin": "Administrator mode may not support auto launch" - }, - "badges": { - "adminMode": "Administrator Mode", - "serviceMode": "Service Mode", - "sidecarMode": "User Mode", - "adminServiceMode": "Admin + Service Mode" - } - }, - "ipInfo": { - "title": "IP Information", - "errors": { - "load": "Failed to get IP info" - }, - "labels": { - "ip": "IP", - "asn": "ASN", - "isp": "ISP", - "org": "ORG", - "location": "Location", - "timezone": "Timezone", - "autoRefresh": "Auto refresh", - "unknown": "Unknown" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "Upload Speed", - "downloadSpeed": "Download Speed", - "activeConnections": "Active Connections", - "uploaded": "Uploaded", - "downloaded": "Downloaded", - "memoryUsage": "Core Usage" - }, - "legends": { - "upload": "Upload", - "download": "Download" - }, - "patterns": { - "minutes": "{{time}} Minutes" - } - }, - "currentProxy": { - "title": "Current Node", - "actions": { - "refreshDelay": "Delay check" - }, - "labels": { - "globalMode": "Global Mode", - "directMode": "Direct Mode", - "group": "Group", - "proxy": "Proxy", - "noActiveNode": "No active proxy node" - } - }, - "profile": { - "title": "Profiles", - "actions": { - "import": "Import" - }, - "labels": { - "from": "From", - "updateTime": "Update Time", - "usedTotal": "Used / Total", - "expireTime": "Expire Time", - "clickToImport": "Click to import subscription" - } - }, "page": { "title": "Home", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "Website Tests" - }, - "clashMode": { - "errors": { - "communication": "Core communication error" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "System Proxy Enabled", + "systemProxyDisabled": "System Proxy Disabled", + "tunModeServiceRequired": "TUN Mode Service Required", + "tunModeEnabled": "TUN Mode Enabled", + "tunModeDisabled": "TUN Mode Disabled" + }, + "tooltips": { + "systemProxy": "System Proxy Info", + "tunMode": "TUN Mode Intercept Info" + } }, - "labels": { - "rule": "Rule Mode", - "global": "Global Mode", - "direct": "Direct Mode" + "clashInfo": { + "title": "Clash Info", + "fields": { + "coreVersion": "Core Version", + "systemProxyAddress": "System Proxy Address", + "mixedPort": "Mixed Port", + "uptime": "Uptime", + "rulesCount": "Rules Count" + } }, - "descriptions": { - "rule": "Automatically choose proxies according to the rule set.", - "global": "Forward all network requests through the selected proxy.", - "direct": "Bypass the proxy and connect to the internet directly." + "systemInfo": { + "title": "System Info", + "fields": { + "osInfo": "OS Info", + "autoLaunch": "Auto Launch", + "runningMode": "Running Mode", + "lastCheckUpdate": "Last Check Update", + "vergeVersion": "Verge Version" + }, + "actions": { + "settings": "Settings" + }, + "tooltips": { + "autoLaunchAdmin": "Administrator mode may not support auto launch" + }, + "badges": { + "adminMode": "Administrator Mode", + "serviceMode": "Service Mode", + "sidecarMode": "User Mode", + "adminServiceMode": "Admin + Service Mode" + } + }, + "ipInfo": { + "title": "IP Information", + "labels": { + "ip": "IP", + "asn": "ASN", + "isp": "ISP", + "org": "ORG", + "location": "Location", + "timezone": "Timezone", + "autoRefresh": "Auto refresh", + "unknown": "Unknown" + }, + "errors": { + "load": "Failed to get IP info" + } + }, + "currentProxy": { + "title": "Current Node", + "actions": { + "refreshDelay": "Delay check" + }, + "labels": { + "globalMode": "Global Mode", + "directMode": "Direct Mode", + "group": "Group", + "proxy": "Proxy", + "noActiveNode": "No active proxy node" + } + }, + "tests": { + "title": "Website Tests" + }, + "traffic": { + "metrics": { + "uploadSpeed": "Upload Speed", + "downloadSpeed": "Download Speed", + "activeConnections": "Active Connections", + "uploaded": "Uploaded", + "downloaded": "Downloaded", + "memoryUsage": "Core Usage" + }, + "legends": { + "upload": "Upload", + "download": "Download" + }, + "patterns": { + "minutes": "{{time}} Minutes" + } + }, + "clashMode": { + "errors": { + "communication": "Core communication error" + }, + "labels": { + "rule": "Rule Mode", + "global": "Global Mode", + "direct": "Direct Mode" + }, + "descriptions": { + "rule": "Automatically choose proxies according to the rule set.", + "global": "Forward all network requests through the selected proxy.", + "direct": "Bypass the proxy and connect to the internet directly." + } } } }, @@ -306,20 +239,22 @@ "tunMode": "Tun Mode", "systemProxy": "System Proxy" }, - "labels": { - "autoLaunch": "Auto Launch", - "silentStart": "Silent Start" - }, "tooltips": { "autoLaunchAdmin": "Administrator mode may not support auto launch", "silentStart": "Start the program in background mode without displaying the panel" + }, + "fields": { + "autoLaunch": "Auto Launch", + "silentStart": "Silent Start" + }, + "notifications": { + "tunMode": { + "autoDisabled": "TUN Mode automatically disabled due to service unavailable", + "autoDisableFailed": "Failed to disable TUN Mode automatically" + } } }, "proxyControl": { - "labels": { - "systemProxy": "System Proxy", - "tunMode": "Tun Mode" - }, "tooltips": { "systemProxy": "Enable to modify the operating system's proxy settings. If enabling fails, modify the operating system's proxy settings manually", "tunMode": "Tun (Virtual NIC) mode: Captures all system traffic, when enabled, there is no need to enable system proxy.", @@ -328,6 +263,10 @@ "actions": { "installService": "Install Service", "uninstallService": "Uninstall Service" + }, + "fields": { + "systemProxy": "System Proxy", + "tunMode": "Tun Mode" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "Clash Core Restarted", - "versionUpdated": "Core Version Updated" + "versionUpdated": "Core Version Updated", + "changeSuccess": "Core changed successfully", + "changeFailed": "Failed to change core" + }, + "status": { + "stopping": "Stopping Core...", + "restarting": "Restarting Core..." + }, + "service": { + "status": { + "installing": "Installing Service...", + "uninstalling": "Uninstalling Service..." + }, + "notifications": { + "installSuccess": "Service Installed Successfully", + "uninstallSuccess": "Service Uninstalled Successfully" + } + }, + "variants": { + "release": "Release Version", + "alpha": "Alpha Version" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "Network Interface", - "labels": { + "fields": { "ipAddress": "IP Address", "macAddress": "MAC Address" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} updated successfully", - "updateFailed": "Failed to update {{name}}: {{message}}", - "genericError": "Update failed: {{message}}", - "none": "No providers available to update", - "allUpdated": "All providers updated successfully" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "Update with Clash proxy successfully", + "withClashProxyFailed": "Update failed even with Clash proxy" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "Update All", "update": "Update" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "Direct Mode" } }, - "strategies": { - "select": "Select proxy manually", - "url-test": "Select proxy based on URL test delay", - "fallback": "Switch to another proxy on error", - "load-balance": "Distribute proxy based on load balancing", - "relay": "Pass through the defined proxy chain" - }, - "policies": { - "DIRECT": "Data goes directly outbound (DIRECT)", - "REJECT": "Intercepts requests (REJECT)", - "REJECT-DROP": "Discards requests (REJECT-DROP)", - "PASS": "Skips this rule when matched (PASS)" + "enums": { + "strategies": { + "select": "Select proxy manually", + "url-test": "Select proxy based on URL test delay", + "fallback": "Switch to another proxy on error", + "load-balance": "Distribute proxy based on load balancing", + "relay": "Pass through the defined proxy chain" + }, + "policies": { + "DIRECT": "Data goes directly outbound (DIRECT)", + "REJECT": "Intercepts requests (REJECT)", + "REJECT-DROP": "Discards requests (REJECT-DROP)", + "PASS": "Skips this rule when matched (PASS)" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "Update All", "update": "Update" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } } + }, + "editor": { + "title": "Edit Rules", + "form": { + "labels": { + "type": "Rule Type", + "content": "Rule Content", + "proxyPolicy": "Proxy Policy" + }, + "toggles": { + "noResolve": "No Resolve" + }, + "actions": { + "prependRule": "Prepend Rule", + "appendRule": "Append Rule" + }, + "validation": { + "conditionRequired": "Rule Condition Required", + "invalidRule": "Invalid Rule" + } + }, + "ruleTypes": { + "DOMAIN": "Match full domain (DOMAIN)", + "DOMAIN-SUFFIX": "Match domain suffix (DOMAIN-SUFFIX)", + "DOMAIN-KEYWORD": "Match domain keyword (DOMAIN-KEYWORD)", + "DOMAIN-REGEX": "Match domain using regex (DOMAIN-REGEX)", + "GEOSITE": "Match domains in Geosite (GEOSITE)", + "GEOIP": "Match IP country code (GEOIP)", + "SRC-GEOIP": "Match source IP country code (SRC-GEOIP)", + "IP-ASN": "Match IP ASN (IP-ASN)", + "SRC-IP-ASN": "Match source IP ASN (SRC-IP-ASN)", + "IP-CIDR": "Match IP address range (IP-CIDR)", + "IP-CIDR6": "Match IPv6 address range (IP-CIDR6)", + "SRC-IP-CIDR": "Match source IP address range (SRC-IP-CIDR)", + "IP-SUFFIX": "Match IP suffix range (IP-SUFFIX)", + "SRC-IP-SUFFIX": "Match source IP suffix range (SRC-IP-SUFFIX)", + "SRC-PORT": "Match source port range (SRC-PORT)", + "DST-PORT": "Match destination port range (DST-PORT)", + "IN-PORT": "Match inbound port (IN-PORT)", + "DSCP": "DSCP tag (TPROXY UDP inbound only) (DSCP)", + "PROCESS-NAME": "Match process name (PROCESS-NAME)", + "PROCESS-PATH": "Match full process path (PROCESS-PATH)", + "PROCESS-NAME-REGEX": "Match process name using regex (PROCESS-NAME-REGEX)", + "PROCESS-PATH-REGEX": "Match full process path using regex (PROCESS-PATH-REGEX)", + "NETWORK": "Match network protocol (TCP/UDP) (NETWORK)", + "UID": "Match Linux user ID (UID)", + "IN-TYPE": "Match inbound type (IN-TYPE)", + "IN-USER": "Match inbound username (IN-USER)", + "IN-NAME": "Match inbound name (IN-NAME)", + "SUB-RULE": "Sub-rule (SUB-RULE)", + "RULE-SET": "Match rule set (RULE-SET)", + "AND": "Logical AND (AND)", + "OR": "Logical OR (OR)", + "NOT": "Logical NOT (NOT)", + "MATCH": "Match all requests (MATCH)" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "Script Console" + }, + "card": { + "labels": { + "from": "From", + "updateTime": "Update Time", + "usedTotal": "Used / Total", + "expireTime": "Expire Time", + "clickToImport": "Click to import subscription" + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "Upload Speed", - "downloadSpeed": "Download Speed", - "memoryUsage": "Memory Usage" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "TUN Mode automatically disabled due to service unavailable", - "autoDisableFailed": "Failed to disable TUN Mode automatically" - } - }, - "labels": { - "releaseVersion": "Release Version", - "alphaVersion": "Alpha Version" - } - }, - "core": { - "status": { - "stopping": "Stopping Core...", - "restarting": "Restarting Core..." - }, - "notifications": { - "changeSuccess": "Core changed successfully", - "changeFailed": "Failed to change core" - } - }, - "service": { - "status": { - "installing": "Installing Service...", - "uninstalling": "Uninstalling Service..." - }, - "notifications": { - "installSuccess": "Service Installed Successfully", - "uninstallSuccess": "Service Uninstalled Successfully" - } - }, "validation": { "config": { "failed": "Subscription configuration validation failed. Please check the subscription configuration file; modifications have been rolled back.", @@ -1272,11 +1268,5 @@ "keyError": "Merge file key error, changes reverted", "generalError": "Merge file error, changes reverted" } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "Update with Clash proxy successfully", - "withClashProxyFailed": "Update failed even with Clash proxy" - } } } diff --git a/src/locales/es.json b/src/locales/es.json index dafa771c..5e37de7e 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -92,167 +92,7 @@ "dark": "Dark", "system": "System" }, - "ruleEditor": { - "title": "Editar reglas", - "form": { - "labels": { - "type": "Tipo de regla", - "content": "Contenido de la regla", - "proxyPolicy": "Política de proxy" - }, - "toggles": { - "noResolve": "Omitir resolución DNS" - }, - "actions": { - "prependRule": "Agregar regla previa", - "appendRule": "Agregar regla posterior" - }, - "validation": { - "conditionRequired": "Falta la condición de la regla", - "invalidRule": "Regla no válida" - } - }, - "ruleTypes": { - "DOMAIN": "Coincidir con el nombre de dominio completo", - "DOMAIN-SUFFIX": "Coincidir con el sufijo del nombre de dominio", - "DOMAIN-KEYWORD": "Coincidir con la palabra clave del nombre de dominio", - "DOMAIN-REGEX": "Coincidir con la expresión regular del nombre de dominio", - "GEOSITE": "Coincidir con los nombres de dominio en Geosite", - "GEOIP": "Coincidir con el código de país del IP", - "SRC-GEOIP": "Coincidir con el código de país del IP de origen", - "IP-ASN": "Coincidir con el ASN del IP", - "SRC-IP-ASN": "Coincidir con el ASN del IP de origen", - "IP-CIDR": "Coincidir con el rango de direcciones IP", - "IP-CIDR6": "Coincidir con el rango de direcciones IP", - "SRC-IP-CIDR": "Coincidir con el rango de direcciones IP de origen", - "IP-SUFFIX": "Coincidir con el rango de sufijos de IP", - "SRC-IP-SUFFIX": "Coincidir con el rango de sufijos de IP de origen", - "SRC-PORT": "Coincidir con el rango de puertos de origen de la solicitud", - "DST-PORT": "Coincidir con el rango de puertos de destino de la solicitud", - "IN-PORT": "Coincidir con el puerto de entrada", - "DSCP": "Etiqueta DSCP (solo para entradas UDP TPROXY)", - "PROCESS-NAME": "Coincidir con el nombre del proceso (nombre del paquete de Android)", - "PROCESS-PATH": "Coincidir con la ruta completa del proceso", - "PROCESS-NAME-REGEX": "Coincidir con el nombre completo del proceso mediante expresiones regulares (nombre del paquete de Android)", - "PROCESS-PATH-REGEX": "Coincidir con la ruta completa del proceso mediante expresiones regulares", - "NETWORK": "Coincidir con el protocolo de transporte (TCP/UDP)", - "UID": "Coincidir con el ID de usuario de Linux", - "IN-TYPE": "Coincidir con el tipo de entrada", - "IN-USER": "Coincidir con el nombre de usuario de entrada", - "IN-NAME": "Coincidir con el nombre de entrada", - "SUB-RULE": "Subregla", - "RULE-SET": "Coincidir con el conjunto de reglas", - "AND": "Y lógico", - "OR": "O lógico", - "NOT": "No lógico", - "MATCH": "Coincidir con todas las solicitudes" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "El proxy del sistema está habilitado. Sus aplicaciones accederán a Internet a través del proxy.", - "systemProxyDisabled": "El proxy del sistema está deshabilitado. Se recomienda a la mayoría de los usuarios habilitar esta opción.", - "tunModeServiceRequired": "El modo TUN requiere el modo de servicio. Instale el servicio primero.", - "tunModeEnabled": "El modo TUN está habilitado. Las aplicaciones accederán a Internet a través de la interfaz virtual.", - "tunModeDisabled": "El modo TUN está deshabilitado. Este modo es adecuado para aplicaciones especiales." - }, - "tooltips": { - "systemProxy": "Modifica la configuración del proxy del sistema operativo. Si no se puede habilitar, puede modificar manualmente la configuración del proxy del sistema operativo.", - "tunMode": "El modo TUN puede gestionar todo el tráfico de las aplicaciones. Es adecuado para aplicaciones que no siguen la configuración del proxy del sistema." - } - }, - "clashInfo": { - "title": "Información de Clash", - "fields": { - "coreVersion": "Versión del núcleo", - "systemProxyAddress": "Dirección del proxy del sistema", - "mixedPort": "Mixed Port", - "uptime": "Tiempo de actividad", - "rulesCount": "Número de reglas" - } - }, - "systemInfo": { - "title": "Información del sistema", - "fields": { - "osInfo": "Información del sistema operativo", - "autoLaunch": "Inicio automático al arrancar el sistema", - "runningMode": "Modo de ejecución", - "lastCheckUpdate": "Última comprobación de actualizaciones", - "vergeVersion": "Versión de Verge" - }, - "actions": { - "settings": "Ajustes" - }, - "tooltips": { - "autoLaunchAdmin": "El modo de administrador puede no admitir el inicio automático." - }, - "badges": { - "adminMode": "Modo de administrador", - "serviceMode": "Modo de servicio", - "sidecarMode": "Modo de usuario", - "adminServiceMode": "Admin + Service Mode" - } - }, - "ipInfo": { - "title": "Información de IP", - "errors": { - "load": "Error al obtener información de IP" - }, - "labels": { - "ip": "IP", - "asn": "Número de sistema autónomo", - "isp": "Proveedor de servicios de Internet", - "org": "Organización", - "location": "Ubicación", - "timezone": "Zona horaria", - "autoRefresh": "Actualización automática", - "unknown": "Desconocido" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "Velocidad de subida", - "downloadSpeed": "Velocidad de descarga", - "activeConnections": "Conexiones activas", - "uploaded": "Subido", - "downloaded": "Descargado", - "memoryUsage": "Uso de memoria del núcleo" - }, - "legends": { - "upload": "Subir", - "download": "Descargar" - }, - "patterns": { - "minutes": "{{time}} Minutes" - } - }, - "currentProxy": { - "title": "Nodo actual", - "actions": { - "refreshDelay": "Prueba de latencia" - }, - "labels": { - "globalMode": "Global Mode", - "directMode": "Direct Mode", - "group": "Grupo de proxy", - "proxy": "Nodo", - "noActiveNode": "No hay nodos de proxy activos" - } - }, - "profile": { - "title": "Suscripciones", - "actions": { - "import": "Importar" - }, - "labels": { - "from": "De", - "updateTime": "Hora de actualización", - "usedTotal": "Utilizado / Total", - "expireTime": "Tiempo de expiración", - "clickToImport": "Haga clic para importar una suscripción" - } - }, "page": { "title": "Hogar", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "Pruebas de sitios web" - }, - "clashMode": { - "errors": { - "communication": "Core communication error" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "El proxy del sistema está habilitado. Sus aplicaciones accederán a Internet a través del proxy.", + "systemProxyDisabled": "El proxy del sistema está deshabilitado. Se recomienda a la mayoría de los usuarios habilitar esta opción.", + "tunModeServiceRequired": "El modo TUN requiere el modo de servicio. Instale el servicio primero.", + "tunModeEnabled": "El modo TUN está habilitado. Las aplicaciones accederán a Internet a través de la interfaz virtual.", + "tunModeDisabled": "El modo TUN está deshabilitado. Este modo es adecuado para aplicaciones especiales." + }, + "tooltips": { + "systemProxy": "Modifica la configuración del proxy del sistema operativo. Si no se puede habilitar, puede modificar manualmente la configuración del proxy del sistema operativo.", + "tunMode": "El modo TUN puede gestionar todo el tráfico de las aplicaciones. Es adecuado para aplicaciones que no siguen la configuración del proxy del sistema." + } }, - "labels": { - "rule": "Modo de reglas", - "global": "Modo global", - "direct": "Modo de conexión directa" + "clashInfo": { + "title": "Información de Clash", + "fields": { + "coreVersion": "Versión del núcleo", + "systemProxyAddress": "Dirección del proxy del sistema", + "mixedPort": "Mixed Port", + "uptime": "Tiempo de actividad", + "rulesCount": "Número de reglas" + } }, - "descriptions": { - "rule": "Automatically choose proxies according to the rule set.", - "global": "Forward all network requests through the selected proxy.", - "direct": "Bypass the proxy and connect to the internet directly." + "systemInfo": { + "title": "Información del sistema", + "fields": { + "osInfo": "Información del sistema operativo", + "autoLaunch": "Inicio automático al arrancar el sistema", + "runningMode": "Modo de ejecución", + "lastCheckUpdate": "Última comprobación de actualizaciones", + "vergeVersion": "Versión de Verge" + }, + "actions": { + "settings": "Ajustes" + }, + "tooltips": { + "autoLaunchAdmin": "El modo de administrador puede no admitir el inicio automático." + }, + "badges": { + "adminMode": "Modo de administrador", + "serviceMode": "Modo de servicio", + "sidecarMode": "Modo de usuario", + "adminServiceMode": "Admin + Service Mode" + } + }, + "ipInfo": { + "title": "Información de IP", + "labels": { + "ip": "IP", + "asn": "Número de sistema autónomo", + "isp": "Proveedor de servicios de Internet", + "org": "Organización", + "location": "Ubicación", + "timezone": "Zona horaria", + "autoRefresh": "Actualización automática", + "unknown": "Desconocido" + }, + "errors": { + "load": "Error al obtener la información de IP" + } + }, + "currentProxy": { + "title": "Nodo actual", + "actions": { + "refreshDelay": "Prueba de latencia" + }, + "labels": { + "globalMode": "Global Mode", + "directMode": "Direct Mode", + "group": "Grupo de proxy", + "proxy": "Nodo", + "noActiveNode": "No hay nodos de proxy activos" + } + }, + "tests": { + "title": "Pruebas de sitios web" + }, + "traffic": { + "metrics": { + "uploadSpeed": "Velocidad de subida", + "downloadSpeed": "Velocidad de descarga", + "activeConnections": "Conexiones activas", + "uploaded": "Subido", + "downloaded": "Descargado", + "memoryUsage": "Uso de memoria del núcleo" + }, + "legends": { + "upload": "Subir", + "download": "Descargar" + }, + "patterns": { + "minutes": "{{time}} Minutes" + } + }, + "clashMode": { + "errors": { + "communication": "Core communication error" + }, + "labels": { + "rule": "Modo de reglas", + "global": "Modo global", + "direct": "Modo de conexión directa" + }, + "descriptions": { + "rule": "Automatically choose proxies according to the rule set.", + "global": "Forward all network requests through the selected proxy.", + "direct": "Bypass the proxy and connect to the internet directly." + } } } }, @@ -306,20 +239,22 @@ "tunMode": "Modo de interfaz virtual (TUN)", "systemProxy": "Proxy del sistema" }, - "labels": { - "autoLaunch": "Inicio automático al arrancar el sistema", - "silentStart": "Inicio silencioso" - }, "tooltips": { "autoLaunchAdmin": "El modo de administrador puede no admitir el inicio automático.", "silentStart": "El programa se ejecutará en segundo plano al iniciarse y no mostrará el panel." + }, + "fields": { + "autoLaunch": "Inicio automático", + "silentStart": "Inicio silencioso" + }, + "notifications": { + "tunMode": { + "autoDisabled": "TUN Mode automatically disabled due to service unavailable", + "autoDisableFailed": "Failed to disable TUN Mode automatically" + } } }, "proxyControl": { - "labels": { - "systemProxy": "Proxy del sistema", - "tunMode": "Modo de interfaz virtual (TUN)" - }, "tooltips": { "systemProxy": "Modifica la configuración del proxy del sistema operativo. Si no se puede habilitar, puede modificar manualmente la configuración del proxy del sistema operativo.", "tunMode": "El modo TUN (interfaz virtual) gestiona todo el tráfico del sistema. No es necesario habilitar el proxy del sistema cuando está activado.", @@ -328,6 +263,10 @@ "actions": { "installService": "Instalar servicio", "uninstallService": "Desinstalar servicio" + }, + "fields": { + "systemProxy": "Proxy del sistema", + "tunMode": "Modo de interfaz virtual (TUN)" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "Núcleo de Clash reiniciado", - "versionUpdated": "Versión del núcleo actualizada" + "versionUpdated": "Versión del núcleo actualizada", + "changeSuccess": "Núcleo cambiado con éxito", + "changeFailed": "No se pudo cambiar el núcleo" + }, + "status": { + "stopping": "Deteniendo núcleo...", + "restarting": "Reiniciando núcleo..." + }, + "service": { + "status": { + "installing": "Instalando servicio...", + "uninstalling": "Desinstalando servicio..." + }, + "notifications": { + "installSuccess": "Servicio instalado con éxito", + "uninstallSuccess": "Servicio desinstalado con éxito" + } + }, + "variants": { + "release": "Versión estable", + "alpha": "Versión alfa" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "Interfaz de red", - "labels": { + "fields": { "ipAddress": "Dirección IP", "macAddress": "Dirección MAC" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} updated successfully", - "updateFailed": "Failed to update {{name}}: {{message}}", - "genericError": "Update failed: {{message}}", - "none": "No providers available to update", - "allUpdated": "All providers updated successfully" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "Actualización con el proxy de Clash exitosa", + "withClashProxyFailed": "Error al actualizar incluso con el proxy de Clash" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "Actualizar todo", "update": "Actualizar" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "Modo de conexión directa" } }, - "strategies": { - "select": "Seleccionar proxy manualmente", - "url-test": "Seleccionar proxy según la prueba de latencia de la URL", - "fallback": "Cambiar a otro proxy cuando no esté disponible", - "load-balance": "Asignar proxy según el equilibrio de carga", - "relay": "Transferir según la cadena de proxy definida" - }, - "policies": { - "DIRECT": "Conexión directa", - "REJECT": "Rechazar solicitud", - "REJECT-DROP": "Descartar solicitud", - "PASS": "Saltar esta regla" + "enums": { + "strategies": { + "select": "Seleccionar proxy manualmente", + "url-test": "Seleccionar proxy según la prueba de latencia de la URL", + "fallback": "Cambiar a otro proxy cuando no esté disponible", + "load-balance": "Asignar proxy según el equilibrio de carga", + "relay": "Transferir según la cadena de proxy definida" + }, + "policies": { + "DIRECT": "Conexión directa", + "REJECT": "Rechazar solicitud", + "REJECT-DROP": "Descartar solicitud", + "PASS": "Saltar esta regla" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "Actualizar todo", "update": "Actualizar" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } } + }, + "editor": { + "title": "Editar reglas", + "form": { + "labels": { + "type": "Tipo de regla", + "content": "Contenido de la regla", + "proxyPolicy": "Política de proxy" + }, + "toggles": { + "noResolve": "Omitir resolución DNS" + }, + "actions": { + "prependRule": "Agregar regla previa", + "appendRule": "Agregar regla posterior" + }, + "validation": { + "conditionRequired": "Falta la condición de la regla", + "invalidRule": "Regla no válida" + } + }, + "ruleTypes": { + "DOMAIN": "Coincidir con el nombre de dominio completo", + "DOMAIN-SUFFIX": "Coincidir con el sufijo del nombre de dominio", + "DOMAIN-KEYWORD": "Coincidir con la palabra clave del nombre de dominio", + "DOMAIN-REGEX": "Coincidir con la expresión regular del nombre de dominio", + "GEOSITE": "Coincidir con los nombres de dominio en Geosite", + "GEOIP": "Coincidir con el código de país del IP", + "SRC-GEOIP": "Coincidir con el código de país del IP de origen", + "IP-ASN": "Coincidir con el ASN del IP", + "SRC-IP-ASN": "Coincidir con el ASN del IP de origen", + "IP-CIDR": "Coincidir con el rango de direcciones IP", + "IP-CIDR6": "Coincidir con el rango de direcciones IP", + "SRC-IP-CIDR": "Coincidir con el rango de direcciones IP de origen", + "IP-SUFFIX": "Coincidir con el rango de sufijos de IP", + "SRC-IP-SUFFIX": "Coincidir con el rango de sufijos de IP de origen", + "SRC-PORT": "Coincidir con el rango de puertos de origen de la solicitud", + "DST-PORT": "Coincidir con el rango de puertos de destino de la solicitud", + "IN-PORT": "Coincidir con el puerto de entrada", + "DSCP": "Etiqueta DSCP (solo para entradas UDP TPROXY)", + "PROCESS-NAME": "Coincidir con el nombre del proceso (nombre del paquete de Android)", + "PROCESS-PATH": "Coincidir con la ruta completa del proceso", + "PROCESS-NAME-REGEX": "Coincidir con el nombre completo del proceso mediante expresiones regulares (nombre del paquete de Android)", + "PROCESS-PATH-REGEX": "Coincidir con la ruta completa del proceso mediante expresiones regulares", + "NETWORK": "Coincidir con el protocolo de transporte (TCP/UDP)", + "UID": "Coincidir con el ID de usuario de Linux", + "IN-TYPE": "Coincidir con el tipo de entrada", + "IN-USER": "Coincidir con el nombre de usuario de entrada", + "IN-NAME": "Coincidir con el nombre de entrada", + "SUB-RULE": "Subregla", + "RULE-SET": "Coincidir con el conjunto de reglas", + "AND": "Y lógico", + "OR": "O lógico", + "NOT": "No lógico", + "MATCH": "Coincidir con todas las solicitudes" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "Salida de la consola del script" + }, + "card": { + "labels": { + "from": "De", + "updateTime": "Hora de actualización", + "usedTotal": "Utilizado / Total", + "expireTime": "Tiempo de expiración", + "clickToImport": "Haga clic para importar una suscripción" + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "Velocidad de subida", - "downloadSpeed": "Velocidad de descarga", - "memoryUsage": "Uso de memoria del núcleo" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "TUN Mode automatically disabled due to service unavailable", - "autoDisableFailed": "Failed to disable TUN Mode automatically" - } - }, - "labels": { - "releaseVersion": "Versión estable", - "alphaVersion": "Versión de vista previa" - } - }, - "core": { - "status": { - "stopping": "Deteniendo núcleo...", - "restarting": "Reiniciando núcleo..." - }, - "notifications": { - "changeSuccess": "Núcleo cambiado con éxito", - "changeFailed": "No se pudo cambiar el núcleo" - } - }, - "service": { - "status": { - "installing": "Instalando servicio...", - "uninstalling": "Desinstalando servicio..." - }, - "notifications": { - "installSuccess": "Servicio instalado con éxito", - "uninstallSuccess": "Servicio desinstalado con éxito" - } - }, "validation": { "config": { "failed": "Error de validación de la configuración de la suscripción. Compruebe el archivo de configuración de la suscripción. Los cambios se han deshecho. Detalles del error: ", @@ -1272,11 +1268,5 @@ "keyError": "Error de clave en el archivo de sobrescritura. Los cambios se han deshecho", "generalError": "Error en el archivo de sobrescritura. Los cambios se han deshecho" } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "Actualización con el proxy de Clash exitosa", - "withClashProxyFailed": "Error al actualizar incluso con el proxy de Clash" - } } } diff --git a/src/locales/fa.json b/src/locales/fa.json index e3c0e2e2..cd03dbd5 100644 --- a/src/locales/fa.json +++ b/src/locales/fa.json @@ -92,167 +92,7 @@ "dark": "Dark", "system": "System" }, - "ruleEditor": { - "title": "ویرایش قوانین", - "form": { - "labels": { - "type": "نوع قانون", - "content": "محتوای قانون", - "proxyPolicy": "سیاست پروکسی" - }, - "toggles": { - "noResolve": "بدون حل" - }, - "actions": { - "prependRule": "اضافه کردن قانون به ابتدا", - "appendRule": "اضافه کردن قانون به انتها" - }, - "validation": { - "conditionRequired": "شرط قانون الزامی است", - "invalidRule": "قانون نامعتبر" - } - }, - "ruleTypes": { - "DOMAIN": "مطابقت با نام کامل دامنه", - "DOMAIN-SUFFIX": "مطابقت با پسوند دامنه", - "DOMAIN-KEYWORD": "مطابقت با کلمه کلیدی دامنه", - "DOMAIN-REGEX": "مطابقت با دامنه با استفاده از عبارات منظم", - "GEOSITE": "مطابقت با دامنه‌های درون Geosite", - "GEOIP": "مطابقت با کد کشور IP", - "SRC-GEOIP": "مطابقت با کد کشور IP مبدا", - "IP-ASN": "مطابقت با ASN آدرس IP", - "SRC-IP-ASN": "مطابقت با ASN آدرس IP مبدا", - "IP-CIDR": "مطابقت با محدوده آدرس IP", - "IP-CIDR6": "مطابقت با محدوده آدرس IPv6", - "SRC-IP-CIDR": "مطابقت با محدوده آدرس IP مبدا", - "IP-SUFFIX": "مطابقت با محدوده پسوند آدرس IP", - "SRC-IP-SUFFIX": "مطابقت با محدوده پسوند آدرس IP مبدا", - "SRC-PORT": "مطابقت با محدوده پورت مبدا", - "DST-PORT": "مطابقت با محدوده پورت مقصد", - "IN-PORT": "مطابقت با پورت ورودی", - "DSCP": "علامت‌گذاری DSCP (فقط برای tproxy UDP ورودی)", - "PROCESS-NAME": "مطابقت با نام فرآیند (نام بسته Android)", - "PROCESS-PATH": "مطابقت با مسیر کامل فرآیند", - "PROCESS-NAME-REGEX": "مطابقت با نام فرآیند با استفاده از عبارات منظم (نام بسته Android)", - "PROCESS-PATH-REGEX": "مطابقت با مسیر کامل فرآیند با استفاده از عبارات منظم", - "NETWORK": "مطابقت با پروتکل انتقال (tcp/udp)", - "UID": "مطابقت با شناسه کاربری Linux", - "IN-TYPE": "مطابقت با نوع ورودی", - "IN-USER": "مطابقت با نام کاربری ورودی", - "IN-NAME": "مطابقت با نام ورودی", - "SUB-RULE": "قانون فرعی", - "RULE-SET": "مطابقت با مجموعه قوانین", - "AND": "منطق AND", - "OR": "منطق OR", - "NOT": "منطق NOT", - "MATCH": "مطابقت با تمام درخواست‌ها" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "System proxy is enabled, your applications will access the network through the proxy", - "systemProxyDisabled": "System proxy is disabled, it is recommended for most users to turn on this option", - "tunModeServiceRequired": "TUN mode requires service mode, please install the service first", - "tunModeEnabled": "TUN mode is enabled, applications will access the network through the virtual network card", - "tunModeDisabled": "TUN mode is disabled, suitable for special applications" - }, - "tooltips": { - "systemProxy": "به امکانات تنظیم پروکسی سیستم عامل دسترسی پیدا کنید. اگر فعال‌سازی ناموفق بود، پروکسی سیستم عامل را به‌صورت دستی تغییر دهید", - "tunMode": "TUN mode can take over all application traffic, suitable for special applications that do not follow the system proxy settings" - } - }, - "clashInfo": { - "title": "Clash Info", - "fields": { - "coreVersion": "Core Version", - "systemProxyAddress": "System Proxy Address", - "mixedPort": "Mixed Port", - "uptime": "Uptime", - "rulesCount": "Rules Count" - } - }, - "systemInfo": { - "title": "System Info", - "fields": { - "osInfo": "OS Info", - "autoLaunch": "راه‌اندازی خودکار", - "runningMode": "Running Mode", - "lastCheckUpdate": "Last Check Update", - "vergeVersion": "نسخه Verge" - }, - "actions": { - "settings": "تنظیمات" - }, - "tooltips": { - "autoLaunchAdmin": "Administrator mode may not support auto launch" - }, - "badges": { - "adminMode": "Administrator Mode", - "serviceMode": "حالت سرویس", - "sidecarMode": "User Mode", - "adminServiceMode": "Admin + Service Mode" - } - }, - "ipInfo": { - "title": "IP Information", - "errors": { - "load": "Failed to get IP info" - }, - "labels": { - "ip": "IP", - "asn": "ASN", - "isp": "ISP", - "org": "ORG", - "location": "Location", - "timezone": "Timezone", - "autoRefresh": "Auto refresh", - "unknown": "Unknown" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "سرعت بارگذاری", - "downloadSpeed": "سرعت دانلود", - "activeConnections": "Active Connections", - "uploaded": "بارگذاری شده", - "downloaded": "دانلود شده", - "memoryUsage": "استفاده از حافظه" - }, - "legends": { - "upload": "Upload", - "download": "Download" - }, - "patterns": { - "minutes": "{{time}} Minutes" - } - }, - "currentProxy": { - "title": "Current Node", - "actions": { - "refreshDelay": "بررسی تأخیر" - }, - "labels": { - "globalMode": "حالت جهانی", - "directMode": "حالت مستقیم", - "group": "Group", - "proxy": "Proxy", - "noActiveNode": "No active proxy node" - } - }, - "profile": { - "title": "پروفایل‌ها", - "actions": { - "import": "وارد کردن" - }, - "labels": { - "from": "از", - "updateTime": "زمان به‌روزرسانی", - "usedTotal": "استفاده‌شده / کل", - "expireTime": "زمان انقضا", - "clickToImport": "Click to import subscription" - } - }, "page": { "title": "Home", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "Website Tests" - }, - "clashMode": { - "errors": { - "communication": "Core communication error" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "System proxy is enabled, your applications will access the network through the proxy", + "systemProxyDisabled": "System proxy is disabled, it is recommended for most users to turn on this option", + "tunModeServiceRequired": "TUN mode requires service mode, please install the service first", + "tunModeEnabled": "TUN mode is enabled, applications will access the network through the virtual network card", + "tunModeDisabled": "TUN mode is disabled, suitable for special applications" + }, + "tooltips": { + "systemProxy": "به امکانات تنظیم پروکسی سیستم عامل دسترسی پیدا کنید. اگر فعال‌سازی ناموفق بود، پروکسی سیستم عامل را به‌صورت دستی تغییر دهید", + "tunMode": "TUN mode can take over all application traffic, suitable for special applications that do not follow the system proxy settings" + } }, - "labels": { - "rule": "حالت قانون", - "global": "حالت جهانی", - "direct": "حالت مستقیم" + "clashInfo": { + "title": "Clash Info", + "fields": { + "coreVersion": "Core Version", + "systemProxyAddress": "System Proxy Address", + "mixedPort": "Mixed Port", + "uptime": "Uptime", + "rulesCount": "Rules Count" + } }, - "descriptions": { - "rule": "Automatically choose proxies according to the rule set.", - "global": "Forward all network requests through the selected proxy.", - "direct": "Bypass the proxy and connect to the internet directly." + "systemInfo": { + "title": "System Info", + "fields": { + "osInfo": "OS Info", + "autoLaunch": "راه‌اندازی خودکار", + "runningMode": "Running Mode", + "lastCheckUpdate": "Last Check Update", + "vergeVersion": "نسخه Verge" + }, + "actions": { + "settings": "تنظیمات" + }, + "tooltips": { + "autoLaunchAdmin": "Administrator mode may not support auto launch" + }, + "badges": { + "adminMode": "Administrator Mode", + "serviceMode": "حالت سرویس", + "sidecarMode": "User Mode", + "adminServiceMode": "Admin + Service Mode" + } + }, + "ipInfo": { + "title": "IP Information", + "labels": { + "ip": "IP", + "asn": "ASN", + "isp": "ISP", + "org": "ORG", + "location": "Location", + "timezone": "Timezone", + "autoRefresh": "Auto refresh", + "unknown": "Unknown" + }, + "errors": { + "load": "دریافت اطلاعات IP با خطا مواجه شد" + } + }, + "currentProxy": { + "title": "Current Node", + "actions": { + "refreshDelay": "بررسی تأخیر" + }, + "labels": { + "globalMode": "حالت جهانی", + "directMode": "حالت مستقیم", + "group": "Group", + "proxy": "Proxy", + "noActiveNode": "No active proxy node" + } + }, + "tests": { + "title": "Website Tests" + }, + "traffic": { + "metrics": { + "uploadSpeed": "سرعت بارگذاری", + "downloadSpeed": "سرعت دانلود", + "activeConnections": "Active Connections", + "uploaded": "بارگذاری شده", + "downloaded": "دانلود شده", + "memoryUsage": "استفاده از حافظه" + }, + "legends": { + "upload": "Upload", + "download": "Download" + }, + "patterns": { + "minutes": "{{time}} Minutes" + } + }, + "clashMode": { + "errors": { + "communication": "Core communication error" + }, + "labels": { + "rule": "حالت قانون", + "global": "حالت جهانی", + "direct": "حالت مستقیم" + }, + "descriptions": { + "rule": "Automatically choose proxies according to the rule set.", + "global": "Forward all network requests through the selected proxy.", + "direct": "Bypass the proxy and connect to the internet directly." + } } } }, @@ -306,20 +239,22 @@ "tunMode": "Tun (کارت شبکه مجازی)", "systemProxy": "پراکسی سیستم" }, - "labels": { - "autoLaunch": "راه‌اندازی خودکار", - "silentStart": "شروع بی‌صدا" - }, "tooltips": { "autoLaunchAdmin": "Administrator mode may not support auto launch", "silentStart": "برنامه را در حالت پس‌زمینه بدون نمایش پانل اجرا کنید" + }, + "fields": { + "autoLaunch": "اجرای خودکار", + "silentStart": "اجرای بی‌صدا" + }, + "notifications": { + "tunMode": { + "autoDisabled": "TUN Mode automatically disabled due to service unavailable", + "autoDisableFailed": "Failed to disable TUN Mode automatically" + } } }, "proxyControl": { - "labels": { - "systemProxy": "پراکسی سیستم", - "tunMode": "Tun (کارت شبکه مجازی)" - }, "tooltips": { "systemProxy": "به امکانات تنظیم پروکسی سیستم عامل دسترسی پیدا کنید. اگر فعال‌سازی ناموفق بود، پروکسی سیستم عامل را به‌صورت دستی تغییر دهید", "tunMode": "حالت Tun (NIC مجازی): تمام ترافیک سیستم را ضبط می کند، وقتی فعال باشد، نیازی به فعال کردن پروکسی سیستم نیست.", @@ -328,6 +263,10 @@ "actions": { "installService": "نصب سرویس", "uninstallService": "Uninstall Service" + }, + "fields": { + "systemProxy": "پراکسی سیستم", + "tunMode": "Tun (کارت شبکه مجازی)" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "هسته Clash مجدداً راه‌اندازی شد", - "versionUpdated": "نسخه هسته به‌روزرسانی شد" + "versionUpdated": "نسخه هسته به‌روزرسانی شد", + "changeSuccess": "هسته با موفقیت تغییر کرد", + "changeFailed": "تغییر هسته ناموفق بود" + }, + "status": { + "stopping": "Stopping Core...", + "restarting": "Restarting Core..." + }, + "service": { + "status": { + "installing": "در حال نصب سرویس...", + "uninstalling": "Uninstalling Service..." + }, + "notifications": { + "installSuccess": "سرویس با موفقیت نصب شد", + "uninstallSuccess": "سرویس با موفقیت حذف نصب شد" + } + }, + "variants": { + "release": "نسخه نهایی", + "alpha": "نسخه آلفا" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "رابط شبکه", - "labels": { + "fields": { "ipAddress": "آدرس IP", "macAddress": "آدرس MAC" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} updated successfully", - "updateFailed": "Failed to update {{name}}: {{message}}", - "genericError": "Update failed: {{message}}", - "none": "No providers available to update", - "allUpdated": "All providers updated successfully" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "Update with Clash proxy successfully", + "withClashProxyFailed": "Update failed even with Clash proxy" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "به‌روزرسانی همه", "update": "به‌روزرسانی" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "حالت مستقیم" } }, - "strategies": { - "select": "انتخاب پروکسی به صورت دستی", - "url-test": "انتخاب پروکسی بر اساس تأخیر آزمایش URL", - "fallback": "تعویض به پروکسی دیگر در صورت بروز خطا", - "load-balance": "توزیع پراکسی بر اساس توازن بار", - "relay": "عبور از زنجیره پروکسی تعریف شده" - }, - "policies": { - "DIRECT": "داده‌ها به صورت مستقیم خروجی می‌شوند", - "REJECT": "درخواست‌ها را متوقف می‌کند", - "REJECT-DROP": "درخواست‌ها را نادیده می‌گیرد", - "PASS": "این قانون را در صورت تطابق نادیده می‌گیرد" + "enums": { + "strategies": { + "select": "انتخاب پروکسی به صورت دستی", + "url-test": "انتخاب پروکسی بر اساس تأخیر آزمایش URL", + "fallback": "تعویض به پروکسی دیگر در صورت بروز خطا", + "load-balance": "توزیع پراکسی بر اساس توازن بار", + "relay": "عبور از زنجیره پروکسی تعریف شده" + }, + "policies": { + "DIRECT": "داده‌ها به صورت مستقیم خروجی می‌شوند", + "REJECT": "درخواست‌ها را متوقف می‌کند", + "REJECT-DROP": "درخواست‌ها را نادیده می‌گیرد", + "PASS": "این قانون را در صورت تطابق نادیده می‌گیرد" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "به‌روزرسانی همه", "update": "به‌روزرسانی" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } } + }, + "editor": { + "title": "ویرایش قوانین", + "form": { + "labels": { + "type": "نوع قانون", + "content": "محتوای قانون", + "proxyPolicy": "سیاست پروکسی" + }, + "toggles": { + "noResolve": "بدون حل" + }, + "actions": { + "prependRule": "اضافه کردن قانون به ابتدا", + "appendRule": "اضافه کردن قانون به انتها" + }, + "validation": { + "conditionRequired": "شرط قانون الزامی است", + "invalidRule": "قانون نامعتبر" + } + }, + "ruleTypes": { + "DOMAIN": "مطابقت با نام کامل دامنه", + "DOMAIN-SUFFIX": "مطابقت با پسوند دامنه", + "DOMAIN-KEYWORD": "مطابقت با کلمه کلیدی دامنه", + "DOMAIN-REGEX": "مطابقت با دامنه با استفاده از عبارات منظم", + "GEOSITE": "مطابقت با دامنه‌های درون Geosite", + "GEOIP": "مطابقت با کد کشور IP", + "SRC-GEOIP": "مطابقت با کد کشور IP مبدا", + "IP-ASN": "مطابقت با ASN آدرس IP", + "SRC-IP-ASN": "مطابقت با ASN آدرس IP مبدا", + "IP-CIDR": "مطابقت با محدوده آدرس IP", + "IP-CIDR6": "مطابقت با محدوده آدرس IPv6", + "SRC-IP-CIDR": "مطابقت با محدوده آدرس IP مبدا", + "IP-SUFFIX": "مطابقت با محدوده پسوند آدرس IP", + "SRC-IP-SUFFIX": "مطابقت با محدوده پسوند آدرس IP مبدا", + "SRC-PORT": "مطابقت با محدوده پورت مبدا", + "DST-PORT": "مطابقت با محدوده پورت مقصد", + "IN-PORT": "مطابقت با پورت ورودی", + "DSCP": "علامت‌گذاری DSCP (فقط برای tproxy UDP ورودی)", + "PROCESS-NAME": "مطابقت با نام فرآیند (نام بسته Android)", + "PROCESS-PATH": "مطابقت با مسیر کامل فرآیند", + "PROCESS-NAME-REGEX": "مطابقت با نام فرآیند با استفاده از عبارات منظم (نام بسته Android)", + "PROCESS-PATH-REGEX": "مطابقت با مسیر کامل فرآیند با استفاده از عبارات منظم", + "NETWORK": "مطابقت با پروتکل انتقال (tcp/udp)", + "UID": "مطابقت با شناسه کاربری Linux", + "IN-TYPE": "مطابقت با نوع ورودی", + "IN-USER": "مطابقت با نام کاربری ورودی", + "IN-NAME": "مطابقت با نام ورودی", + "SUB-RULE": "قانون فرعی", + "RULE-SET": "مطابقت با مجموعه قوانین", + "AND": "منطق AND", + "OR": "منطق OR", + "NOT": "منطق NOT", + "MATCH": "مطابقت با تمام درخواست‌ها" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "کنسول اسکریپت" + }, + "card": { + "labels": { + "from": "از", + "updateTime": "زمان به‌روزرسانی", + "usedTotal": "استفاده‌شده / کل", + "expireTime": "زمان انقضا", + "clickToImport": "Click to import subscription" + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "سرعت بارگذاری", - "downloadSpeed": "سرعت دانلود", - "memoryUsage": "استفاده از حافظه" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "TUN Mode automatically disabled due to service unavailable", - "autoDisableFailed": "Failed to disable TUN Mode automatically" - } - }, - "labels": { - "releaseVersion": "نسخه نهایی", - "alphaVersion": "نسخه آلفا" - } - }, - "core": { - "status": { - "stopping": "Stopping Core...", - "restarting": "Restarting Core..." - }, - "notifications": { - "changeSuccess": "هسته با موفقیت تغییر کرد", - "changeFailed": "تغییر هسته ناموفق بود" - } - }, - "service": { - "status": { - "installing": "در حال نصب سرویس...", - "uninstalling": "Uninstalling Service..." - }, - "notifications": { - "installSuccess": "سرویس با موفقیت نصب شد", - "uninstallSuccess": "سرویس با موفقیت حذف نصب شد" - } - }, "validation": { "config": { "failed": "اعتبارسنجی پیکربندی اشتراک ناموفق بود، فایل پیکربندی را بررسی کنید، تغییرات برگشت داده شد، جزئیات خطا:", @@ -1272,11 +1268,5 @@ "keyError": "Merge file key error, changes reverted", "generalError": "Merge file error, changes reverted" } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "Update with Clash proxy successfully", - "withClashProxyFailed": "Update failed even with Clash proxy" - } } } diff --git a/src/locales/id.json b/src/locales/id.json index 158c96a5..470693fb 100644 --- a/src/locales/id.json +++ b/src/locales/id.json @@ -92,167 +92,7 @@ "dark": "Dark", "system": "System" }, - "ruleEditor": { - "title": "Ubah Aturan", - "form": { - "labels": { - "type": "Jenis Aturan", - "content": "Konten Aturan", - "proxyPolicy": "Kebijakan Proksi" - }, - "toggles": { - "noResolve": "Tidak Menyelesaikan" - }, - "actions": { - "prependRule": "Tambahkan Aturan di Awal", - "appendRule": "Tambahkan Aturan di Akhir" - }, - "validation": { - "conditionRequired": "Kondisi Aturan Diperlukan", - "invalidRule": "Aturan Tidak Valid" - } - }, - "ruleTypes": { - "DOMAIN": "Cocok dengan nama domain lengkap", - "DOMAIN-SUFFIX": "Cocok dengan sufiks domain", - "DOMAIN-KEYWORD": "Cocok dengan kata kunci domain", - "DOMAIN-REGEX": "Cocok dengan domain menggunakan ekspresi reguler", - "GEOSITE": "Cocok dengan domain dalam Geosite", - "GEOIP": "Cocok dengan kode negara alamat IP", - "SRC-GEOIP": "Cocok dengan kode negara alamat IP sumber", - "IP-ASN": "Cocok dengan ASN alamat IP", - "SRC-IP-ASN": "Cocok dengan ASN alamat IP sumber", - "IP-CIDR": "Cocok dengan rentang alamat IP", - "IP-CIDR6": "Cocok dengan rentang alamat IPv6", - "SRC-IP-CIDR": "Cocok dengan rentang alamat IP sumber", - "IP-SUFFIX": "Cocok dengan rentang sufiks alamat IP", - "SRC-IP-SUFFIX": "Cocok dengan rentang sufiks alamat IP sumber", - "SRC-PORT": "Cocok dengan rentang port sumber", - "DST-PORT": "Cocok dengan rentang port tujuan", - "IN-PORT": "Cocok dengan port masuk", - "DSCP": "Penandaan DSCP (hanya untuk tproxy UDP masuk)", - "PROCESS-NAME": "Cocok dengan nama proses (nama paket Android)", - "PROCESS-PATH": "Cocok dengan jalur proses lengkap", - "PROCESS-NAME-REGEX": "Cocok dengan nama proses lengkap menggunakan ekspresi reguler (nama paket Android)", - "PROCESS-PATH-REGEX": "Cocok dengan jalur proses lengkap menggunakan ekspresi reguler", - "NETWORK": "Cocok dengan protokol transportasi (tcp/udp)", - "UID": "Cocok dengan ID PENGGUNA Linux", - "IN-TYPE": "Cocok dengan jenis masuk", - "IN-USER": "Cocok dengan nama pengguna masuk", - "IN-NAME": "Cocok dengan nama masuk", - "SUB-RULE": "Sub-aturan", - "RULE-SET": "Cocok dengan set aturan", - "AND": "Logika DAN", - "OR": "Logika ATAU", - "NOT": "Logika TIDAK", - "MATCH": "Cocok dengan semua permintaan" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "System proxy is enabled, your applications will access the network through the proxy", - "systemProxyDisabled": "System proxy is disabled, it is recommended for most users to turn on this option", - "tunModeServiceRequired": "TUN mode requires service mode, please install the service first", - "tunModeEnabled": "TUN mode is enabled, applications will access the network through the virtual network card", - "tunModeDisabled": "TUN mode is disabled, suitable for special applications" - }, - "tooltips": { - "systemProxy": "Aktifkan untuk mengubah pengaturan proksi sistem operasi. Jika pengaktifan gagal, ubah pengaturan proksi sistem operasi secara manual", - "tunMode": "TUN mode can take over all application traffic, suitable for special applications that do not follow the system proxy settings" - } - }, - "clashInfo": { - "title": "Clash Info", - "fields": { - "coreVersion": "Core Version", - "systemProxyAddress": "System Proxy Address", - "mixedPort": "Mixed Port", - "uptime": "Uptime", - "rulesCount": "Rules Count" - } - }, - "systemInfo": { - "title": "System Info", - "fields": { - "osInfo": "OS Info", - "autoLaunch": "Peluncuran Otomatis", - "runningMode": "Running Mode", - "lastCheckUpdate": "Last Check Update", - "vergeVersion": "Versi Verge" - }, - "actions": { - "settings": "Pengaturan" - }, - "tooltips": { - "autoLaunchAdmin": "Administrator mode may not support auto launch" - }, - "badges": { - "adminMode": "Administrator Mode", - "serviceMode": "Mode Layanan", - "sidecarMode": "User Mode", - "adminServiceMode": "Admin + Service Mode" - } - }, - "ipInfo": { - "title": "IP Information", - "errors": { - "load": "Failed to get IP info" - }, - "labels": { - "ip": "IP", - "asn": "ASN", - "isp": "ISP", - "org": "ORG", - "location": "Location", - "timezone": "Timezone", - "autoRefresh": "Auto refresh", - "unknown": "Unknown" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "Kecepatan Unggah", - "downloadSpeed": "Kecepatan Unduh", - "activeConnections": "Active Connections", - "uploaded": "Diunggah", - "downloaded": "Diunduh", - "memoryUsage": "Penggunaan Memori" - }, - "legends": { - "upload": "Upload", - "download": "Download" - }, - "patterns": { - "minutes": "{{time}} Minutes" - } - }, - "currentProxy": { - "title": "Current Node", - "actions": { - "refreshDelay": "Periksa Keterlambatan" - }, - "labels": { - "globalMode": "Mode Global", - "directMode": "Mode Langsung", - "group": "Group", - "proxy": "Proxy", - "noActiveNode": "No active proxy node" - } - }, - "profile": { - "title": "Profil", - "actions": { - "import": "Impor" - }, - "labels": { - "from": "Dari", - "updateTime": "Waktu Pembaruan", - "usedTotal": "Digunakan / Total", - "expireTime": "Waktu Kedaluwarsa", - "clickToImport": "Click to import subscription" - } - }, "page": { "title": "Home", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "Website Tests" - }, - "clashMode": { - "errors": { - "communication": "Core communication error" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "System proxy is enabled, your applications will access the network through the proxy", + "systemProxyDisabled": "System proxy is disabled, it is recommended for most users to turn on this option", + "tunModeServiceRequired": "TUN mode requires service mode, please install the service first", + "tunModeEnabled": "TUN mode is enabled, applications will access the network through the virtual network card", + "tunModeDisabled": "TUN mode is disabled, suitable for special applications" + }, + "tooltips": { + "systemProxy": "Aktifkan untuk mengubah pengaturan proksi sistem operasi. Jika pengaktifan gagal, ubah pengaturan proksi sistem operasi secara manual", + "tunMode": "TUN mode can take over all application traffic, suitable for special applications that do not follow the system proxy settings" + } }, - "labels": { - "rule": "Mode Aturan", - "global": "Mode Global", - "direct": "Mode Langsung" + "clashInfo": { + "title": "Clash Info", + "fields": { + "coreVersion": "Core Version", + "systemProxyAddress": "System Proxy Address", + "mixedPort": "Mixed Port", + "uptime": "Uptime", + "rulesCount": "Rules Count" + } }, - "descriptions": { - "rule": "Automatically choose proxies according to the rule set.", - "global": "Forward all network requests through the selected proxy.", - "direct": "Bypass the proxy and connect to the internet directly." + "systemInfo": { + "title": "System Info", + "fields": { + "osInfo": "OS Info", + "autoLaunch": "Peluncuran Otomatis", + "runningMode": "Running Mode", + "lastCheckUpdate": "Last Check Update", + "vergeVersion": "Versi Verge" + }, + "actions": { + "settings": "Pengaturan" + }, + "tooltips": { + "autoLaunchAdmin": "Administrator mode may not support auto launch" + }, + "badges": { + "adminMode": "Administrator Mode", + "serviceMode": "Mode Layanan", + "sidecarMode": "User Mode", + "adminServiceMode": "Admin + Service Mode" + } + }, + "ipInfo": { + "title": "IP Information", + "labels": { + "ip": "IP", + "asn": "ASN", + "isp": "ISP", + "org": "ORG", + "location": "Location", + "timezone": "Timezone", + "autoRefresh": "Auto refresh", + "unknown": "Unknown" + }, + "errors": { + "load": "Gagal mendapatkan informasi IP" + } + }, + "currentProxy": { + "title": "Current Node", + "actions": { + "refreshDelay": "Periksa Keterlambatan" + }, + "labels": { + "globalMode": "Mode Global", + "directMode": "Mode Langsung", + "group": "Group", + "proxy": "Proxy", + "noActiveNode": "No active proxy node" + } + }, + "tests": { + "title": "Website Tests" + }, + "traffic": { + "metrics": { + "uploadSpeed": "Kecepatan Unggah", + "downloadSpeed": "Kecepatan Unduh", + "activeConnections": "Active Connections", + "uploaded": "Diunggah", + "downloaded": "Diunduh", + "memoryUsage": "Penggunaan Memori" + }, + "legends": { + "upload": "Upload", + "download": "Download" + }, + "patterns": { + "minutes": "{{time}} Minutes" + } + }, + "clashMode": { + "errors": { + "communication": "Core communication error" + }, + "labels": { + "rule": "Mode Aturan", + "global": "Mode Global", + "direct": "Mode Langsung" + }, + "descriptions": { + "rule": "Automatically choose proxies according to the rule set.", + "global": "Forward all network requests through the selected proxy.", + "direct": "Bypass the proxy and connect to the internet directly." + } } } }, @@ -306,20 +239,22 @@ "tunMode": "Mode Tun (NIC Virtual)", "systemProxy": "Proksi Sistem" }, - "labels": { - "autoLaunch": "Peluncuran Otomatis", - "silentStart": "Mulai Senyap" - }, "tooltips": { "autoLaunchAdmin": "Administrator mode may not support auto launch", "silentStart": "Mulai program dalam mode latar belakang tanpa menampilkan panel" + }, + "fields": { + "autoLaunch": "Mulai otomatis", + "silentStart": "Mulai senyap" + }, + "notifications": { + "tunMode": { + "autoDisabled": "TUN Mode automatically disabled due to service unavailable", + "autoDisableFailed": "Failed to disable TUN Mode automatically" + } } }, "proxyControl": { - "labels": { - "systemProxy": "Proksi Sistem", - "tunMode": "Mode Tun (NIC Virtual)" - }, "tooltips": { "systemProxy": "Aktifkan untuk mengubah pengaturan proksi sistem operasi. Jika pengaktifan gagal, ubah pengaturan proksi sistem operasi secara manual", "tunMode": "Mode Tun (NIC Virtual): Menangkap semua lalu lintas sistem, saat diaktifkan, tidak perlu mengaktifkan proksi sistem.", @@ -328,6 +263,10 @@ "actions": { "installService": "Instal Layanan", "uninstallService": "Uninstall Service" + }, + "fields": { + "systemProxy": "Proksi Sistem", + "tunMode": "Mode Tun (NIC Virtual)" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "Core Clash Dimulai Ulang", - "versionUpdated": "Versi Core Diperbarui" + "versionUpdated": "Versi Core Diperbarui", + "changeSuccess": "Inti berhasil diubah", + "changeFailed": "Gagal mengubah inti" + }, + "status": { + "stopping": "Stopping Core...", + "restarting": "Restarting Core..." + }, + "service": { + "status": { + "installing": "Memasang Layanan...", + "uninstalling": "Uninstalling Service..." + }, + "notifications": { + "installSuccess": "Layanan Berhasil Diinstal", + "uninstallSuccess": "Layanan Berhasil Dicopot" + } + }, + "variants": { + "release": "Versi Rilis", + "alpha": "Versi Alpha" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "Antarmuka Jaringan", - "labels": { + "fields": { "ipAddress": "Alamat IP", "macAddress": "Alamat MAC" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} updated successfully", - "updateFailed": "Failed to update {{name}}: {{message}}", - "genericError": "Update failed: {{message}}", - "none": "No providers available to update", - "allUpdated": "All providers updated successfully" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "Update with Clash proxy successfully", + "withClashProxyFailed": "Update failed even with Clash proxy" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "Perbarui Semua", "update": "Perbarui" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "Mode Langsung" } }, - "strategies": { - "select": "Pilih proksi secara manual", - "url-test": "Pilih proksi berdasarkan keterlambatan tes URL", - "fallback": "Beralih ke proksi lain saat terjadi kesalahan", - "load-balance": "Distribusikan proksi berdasarkan penyeimbangan beban", - "relay": "Lewatkan melalui rantai proksi yang ditentukan" - }, - "policies": { - "DIRECT": "Data langsung keluar", - "REJECT": "Mencegat permintaan", - "REJECT-DROP": "Membuang permintaan", - "PASS": "Lewati aturan ini saat cocok" + "enums": { + "strategies": { + "select": "Pilih proksi secara manual", + "url-test": "Pilih proksi berdasarkan keterlambatan tes URL", + "fallback": "Beralih ke proksi lain saat terjadi kesalahan", + "load-balance": "Distribusikan proksi berdasarkan penyeimbangan beban", + "relay": "Lewatkan melalui rantai proksi yang ditentukan" + }, + "policies": { + "DIRECT": "Data langsung keluar", + "REJECT": "Mencegat permintaan", + "REJECT-DROP": "Membuang permintaan", + "PASS": "Lewati aturan ini saat cocok" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "Perbarui Semua", "update": "Perbarui" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } } + }, + "editor": { + "title": "Ubah Aturan", + "form": { + "labels": { + "type": "Jenis Aturan", + "content": "Konten Aturan", + "proxyPolicy": "Kebijakan Proksi" + }, + "toggles": { + "noResolve": "Tidak Menyelesaikan" + }, + "actions": { + "prependRule": "Tambahkan Aturan di Awal", + "appendRule": "Tambahkan Aturan di Akhir" + }, + "validation": { + "conditionRequired": "Kondisi Aturan Diperlukan", + "invalidRule": "Aturan Tidak Valid" + } + }, + "ruleTypes": { + "DOMAIN": "Cocok dengan nama domain lengkap", + "DOMAIN-SUFFIX": "Cocok dengan sufiks domain", + "DOMAIN-KEYWORD": "Cocok dengan kata kunci domain", + "DOMAIN-REGEX": "Cocok dengan domain menggunakan ekspresi reguler", + "GEOSITE": "Cocok dengan domain dalam Geosite", + "GEOIP": "Cocok dengan kode negara alamat IP", + "SRC-GEOIP": "Cocok dengan kode negara alamat IP sumber", + "IP-ASN": "Cocok dengan ASN alamat IP", + "SRC-IP-ASN": "Cocok dengan ASN alamat IP sumber", + "IP-CIDR": "Cocok dengan rentang alamat IP", + "IP-CIDR6": "Cocok dengan rentang alamat IPv6", + "SRC-IP-CIDR": "Cocok dengan rentang alamat IP sumber", + "IP-SUFFIX": "Cocok dengan rentang sufiks alamat IP", + "SRC-IP-SUFFIX": "Cocok dengan rentang sufiks alamat IP sumber", + "SRC-PORT": "Cocok dengan rentang port sumber", + "DST-PORT": "Cocok dengan rentang port tujuan", + "IN-PORT": "Cocok dengan port masuk", + "DSCP": "Penandaan DSCP (hanya untuk tproxy UDP masuk)", + "PROCESS-NAME": "Cocok dengan nama proses (nama paket Android)", + "PROCESS-PATH": "Cocok dengan jalur proses lengkap", + "PROCESS-NAME-REGEX": "Cocok dengan nama proses lengkap menggunakan ekspresi reguler (nama paket Android)", + "PROCESS-PATH-REGEX": "Cocok dengan jalur proses lengkap menggunakan ekspresi reguler", + "NETWORK": "Cocok dengan protokol transportasi (tcp/udp)", + "UID": "Cocok dengan ID PENGGUNA Linux", + "IN-TYPE": "Cocok dengan jenis masuk", + "IN-USER": "Cocok dengan nama pengguna masuk", + "IN-NAME": "Cocok dengan nama masuk", + "SUB-RULE": "Sub-aturan", + "RULE-SET": "Cocok dengan set aturan", + "AND": "Logika DAN", + "OR": "Logika ATAU", + "NOT": "Logika TIDAK", + "MATCH": "Cocok dengan semua permintaan" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "Konsol Skrip" + }, + "card": { + "labels": { + "from": "Dari", + "updateTime": "Waktu Pembaruan", + "usedTotal": "Digunakan / Total", + "expireTime": "Waktu Kedaluwarsa", + "clickToImport": "Click to import subscription" + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "Kecepatan Unggah", - "downloadSpeed": "Kecepatan Unduh", - "memoryUsage": "Penggunaan Memori" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "TUN Mode automatically disabled due to service unavailable", - "autoDisableFailed": "Failed to disable TUN Mode automatically" - } - }, - "labels": { - "releaseVersion": "Versi Rilis", - "alphaVersion": "Versi Alpha" - } - }, - "core": { - "status": { - "stopping": "Stopping Core...", - "restarting": "Restarting Core..." - }, - "notifications": { - "changeSuccess": "Inti berhasil diubah", - "changeFailed": "Gagal mengubah inti" - } - }, - "service": { - "status": { - "installing": "Memasang Layanan...", - "uninstalling": "Uninstalling Service..." - }, - "notifications": { - "installSuccess": "Layanan Berhasil Diinstal", - "uninstallSuccess": "Layanan Berhasil Dicopot" - } - }, "validation": { "config": { "failed": "Validasi konfigurasi langganan gagal, periksa file konfigurasi, perubahan dibatalkan, detail kesalahan:", @@ -1272,11 +1268,5 @@ "keyError": "Merge file key error, changes reverted", "generalError": "Merge file error, changes reverted" } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "Update with Clash proxy successfully", - "withClashProxyFailed": "Update failed even with Clash proxy" - } } } diff --git a/src/locales/jp.json b/src/locales/jp.json index 3e923b8d..72d79360 100644 --- a/src/locales/jp.json +++ b/src/locales/jp.json @@ -92,167 +92,7 @@ "dark": "Dark", "system": "System" }, - "ruleEditor": { - "title": "ルールを編集", - "form": { - "labels": { - "type": "ルールタイプ", - "content": "ルール内容", - "proxyPolicy": "プロキシポリシー" - }, - "toggles": { - "noResolve": "DNS解決をスキップ" - }, - "actions": { - "prependRule": "前置ルールを追加", - "appendRule": "後置ルールを追加" - }, - "validation": { - "conditionRequired": "ルール条件が必要です", - "invalidRule": "無効なルール" - } - }, - "ruleTypes": { - "DOMAIN": "完全なドメイン名を一致させる", - "DOMAIN-SUFFIX": "ドメインサフィックスを一致させる", - "DOMAIN-KEYWORD": "ドメインキーワードを一致させる", - "DOMAIN-REGEX": "ドメイン正規表現を一致させる", - "GEOSITE": "Geosite内のドメインを一致させる", - "GEOIP": "IPの所属国コードを一致させる", - "SRC-GEOIP": "送信元IPの所属国コードを一致させる", - "IP-ASN": "IPの所属ASNを一致させる", - "SRC-IP-ASN": "送信元IPの所属ASNを一致させる", - "IP-CIDR": "IPアドレス範囲を一致させる", - "IP-CIDR6": "IPアドレス範囲を一致させる", - "SRC-IP-CIDR": "送信元IPアドレス範囲を一致させる", - "IP-SUFFIX": "IPサフィックス範囲を一致させる", - "SRC-IP-SUFFIX": "送信元IPサフィックス範囲を一致させる", - "SRC-PORT": "送信元ポート範囲を一致させる", - "DST-PORT": "宛先ポート範囲を一致させる", - "IN-PORT": "入力ポートを一致させる", - "DSCP": "DSCPマーク(TPROXY UDP入力のみ)", - "PROCESS-NAME": "プロセス名を一致させる(Androidパッケージ名)", - "PROCESS-PATH": "完全なプロセスパスを一致させる", - "PROCESS-NAME-REGEX": "完全なプロセス名を正規表現で一致させる(Androidパッケージ名)", - "PROCESS-PATH-REGEX": "完全なプロセスパスを正規表現で一致させる", - "NETWORK": "トランスポートプロトコルを一致させる (TCP/UDP)", - "UID": "LinuxユーザーIDを一致させる", - "IN-TYPE": "入力タイプを一致させる", - "IN-USER": "入力ユーザー名を一致させる", - "IN-NAME": "入力名を一致させる", - "SUB-RULE": "サブルール", - "RULE-SET": "ルールセットを一致させる", - "AND": "論理積", - "OR": "論理和", - "NOT": "論理否定", - "MATCH": "すべてのリクエストを一致させる" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "システムプロキシが有効になっています。アプリケーションはプロキシを通じてネットワークにアクセスします。", - "systemProxyDisabled": "システムプロキシが無効になっています。ほとんどのユーザーはこのオプションをオンにすることをお勧めします。", - "tunModeServiceRequired": "TUNモードはサービスモードが必要です。まずサービスをインストールしてください。", - "tunModeEnabled": "TUNモードが有効になっています。アプリケーションは仮想ネットワークカードを通じてネットワークにアクセスします。", - "tunModeDisabled": "TUNモードが無効になっています。特殊なアプリケーションに適しています。" - }, - "tooltips": { - "systemProxy": "オペレーティングシステムのプロキシ設定を変更します。有効にできない場合は、手動でオペレーティングシステムのプロキシ設定を変更してください。", - "tunMode": "TUNモードは全てのアプリケーションのトラフィックを制御できます。システムプロキシ設定に従わない特殊なアプリケーションに適しています。" - } - }, - "clashInfo": { - "title": "Clash情報", - "fields": { - "coreVersion": "コアバージョン", - "systemProxyAddress": "システムプロキシアドレス", - "mixedPort": "Mixed Port", - "uptime": "稼働時間", - "rulesCount": "ルール数" - } - }, - "systemInfo": { - "title": "システム情報", - "fields": { - "osInfo": "オペレーティングシステム情報", - "autoLaunch": "起動時に自動起動", - "runningMode": "実行モード", - "lastCheckUpdate": "最後の更新チェック", - "vergeVersion": "Vergeバージョン" - }, - "actions": { - "settings": "設定" - }, - "tooltips": { - "autoLaunchAdmin": "管理者モードでは起動時の自動起動がサポートされない場合があります。" - }, - "badges": { - "adminMode": "管理者モード", - "serviceMode": "サービスモード", - "sidecarMode": "ユーザーモード", - "adminServiceMode": "Admin + Service Mode" - } - }, - "ipInfo": { - "title": "IP情報", - "errors": { - "load": "IP情報の取得に失敗しました。" - }, - "labels": { - "ip": "IP", - "asn": "自治システム番号", - "isp": "インターネットサービスプロバイダー", - "org": "組織", - "location": "位置", - "timezone": "タイムゾーン", - "autoRefresh": "自動更新", - "unknown": "不明" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "アップロード速度", - "downloadSpeed": "ダウンロード速度", - "activeConnections": "アクティブな接続", - "uploaded": "アップロード量", - "downloaded": "ダウンロード量", - "memoryUsage": "コアメモリ使用量" - }, - "legends": { - "upload": "アップロード", - "download": "ダウンロード" - }, - "patterns": { - "minutes": "{{time}} Minutes" - } - }, - "currentProxy": { - "title": "現在のノード", - "actions": { - "refreshDelay": "遅延テスト" - }, - "labels": { - "globalMode": "グローバルモード", - "directMode": "直接接続モード", - "group": "プロキシグループ", - "proxy": "ノード", - "noActiveNode": "アクティブなプロキシノードがありません。" - } - }, - "profile": { - "title": "プロファイル", - "actions": { - "import": "インポート" - }, - "labels": { - "from": "から", - "updateTime": "更新時間", - "usedTotal": "使用済み / 合計", - "expireTime": "有効期限", - "clickToImport": "クリックしてサブスクリプションをインポート" - } - }, "page": { "title": "ホーム", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "ウェブサイトテスト" - }, - "clashMode": { - "errors": { - "communication": "Core communication error" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "システムプロキシが有効になっています。アプリケーションはプロキシを通じてネットワークにアクセスします。", + "systemProxyDisabled": "システムプロキシが無効になっています。ほとんどのユーザーはこのオプションをオンにすることをお勧めします。", + "tunModeServiceRequired": "TUNモードはサービスモードが必要です。まずサービスをインストールしてください。", + "tunModeEnabled": "TUNモードが有効になっています。アプリケーションは仮想ネットワークカードを通じてネットワークにアクセスします。", + "tunModeDisabled": "TUNモードが無効になっています。特殊なアプリケーションに適しています。" + }, + "tooltips": { + "systemProxy": "オペレーティングシステムのプロキシ設定を変更します。有効にできない場合は、手動でオペレーティングシステムのプロキシ設定を変更してください。", + "tunMode": "TUNモードは全てのアプリケーションのトラフィックを制御できます。システムプロキシ設定に従わない特殊なアプリケーションに適しています。" + } }, - "labels": { - "rule": "ルールモード", - "global": "グローバルモード", - "direct": "直接接続モード" + "clashInfo": { + "title": "Clash情報", + "fields": { + "coreVersion": "コアバージョン", + "systemProxyAddress": "システムプロキシアドレス", + "mixedPort": "Mixed Port", + "uptime": "稼働時間", + "rulesCount": "ルール数" + } }, - "descriptions": { - "rule": "Automatically choose proxies according to the rule set.", - "global": "Forward all network requests through the selected proxy.", - "direct": "Bypass the proxy and connect to the internet directly." + "systemInfo": { + "title": "システム情報", + "fields": { + "osInfo": "オペレーティングシステム情報", + "autoLaunch": "起動時に自動起動", + "runningMode": "実行モード", + "lastCheckUpdate": "最後の更新チェック", + "vergeVersion": "Vergeバージョン" + }, + "actions": { + "settings": "設定" + }, + "tooltips": { + "autoLaunchAdmin": "管理者モードでは起動時の自動起動がサポートされない場合があります。" + }, + "badges": { + "adminMode": "管理者モード", + "serviceMode": "サービスモード", + "sidecarMode": "ユーザーモード", + "adminServiceMode": "Admin + Service Mode" + } + }, + "ipInfo": { + "title": "IP情報", + "labels": { + "ip": "IP", + "asn": "自治システム番号", + "isp": "インターネットサービスプロバイダー", + "org": "組織", + "location": "位置", + "timezone": "タイムゾーン", + "autoRefresh": "自動更新", + "unknown": "不明" + }, + "errors": { + "load": "IP情報の取得に失敗しました" + } + }, + "currentProxy": { + "title": "現在のノード", + "actions": { + "refreshDelay": "遅延テスト" + }, + "labels": { + "globalMode": "グローバルモード", + "directMode": "直接接続モード", + "group": "プロキシグループ", + "proxy": "ノード", + "noActiveNode": "アクティブなプロキシノードがありません。" + } + }, + "tests": { + "title": "ウェブサイトテスト" + }, + "traffic": { + "metrics": { + "uploadSpeed": "アップロード速度", + "downloadSpeed": "ダウンロード速度", + "activeConnections": "アクティブな接続", + "uploaded": "アップロード量", + "downloaded": "ダウンロード量", + "memoryUsage": "コアメモリ使用量" + }, + "legends": { + "upload": "アップロード", + "download": "ダウンロード" + }, + "patterns": { + "minutes": "{{time}} Minutes" + } + }, + "clashMode": { + "errors": { + "communication": "Core communication error" + }, + "labels": { + "rule": "ルールモード", + "global": "グローバルモード", + "direct": "直接接続モード" + }, + "descriptions": { + "rule": "Automatically choose proxies according to the rule set.", + "global": "Forward all network requests through the selected proxy.", + "direct": "Bypass the proxy and connect to the internet directly." + } } } }, @@ -306,20 +239,22 @@ "tunMode": "仮想ネットワークカードモード", "systemProxy": "システムプロキシ" }, - "labels": { - "autoLaunch": "起動時に自動起動", - "silentStart": "サイレント起動" - }, "tooltips": { "autoLaunchAdmin": "管理者モードでは起動時の自動起動がサポートされない場合があります。", "silentStart": "アプリケーションを起動すると、バックグラウンドモードで実行され、アプリケーションパネルは表示されません。" + }, + "fields": { + "autoLaunch": "自動起動", + "silentStart": "サイレント起動" + }, + "notifications": { + "tunMode": { + "autoDisabled": "TUN Mode automatically disabled due to service unavailable", + "autoDisableFailed": "Failed to disable TUN Mode automatically" + } } }, "proxyControl": { - "labels": { - "systemProxy": "システムプロキシ", - "tunMode": "仮想ネットワークカードモード" - }, "tooltips": { "systemProxy": "オペレーティングシステムのプロキシ設定を変更します。有効にできない場合は、手動でオペレーティングシステムのプロキシ設定を変更してください。", "tunMode": "TUN(仮想ネットワークカード)モードはシステムのすべてのトラフィックを制御します。有効にすると、システムプロキシを開く必要はありません。", @@ -328,6 +263,10 @@ "actions": { "installService": "サービスをインストール", "uninstallService": "サービスのアンインストール" + }, + "fields": { + "systemProxy": "システムプロキシ", + "tunMode": "仮想ネットワークカードモード" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "Clashコアが再起動されました。", - "versionUpdated": "コアバージョンが更新されました。" + "versionUpdated": "コアバージョンが更新されました。", + "changeSuccess": "コアの切り替えに成功しました。", + "changeFailed": "コアの切り替えに失敗しました。" + }, + "status": { + "stopping": "コアを停止中...", + "restarting": "コアを再起動中..." + }, + "service": { + "status": { + "installing": "サービスをインストール中...", + "uninstalling": "サービスをアンインストール中..." + }, + "notifications": { + "installSuccess": "サービスのインストールに成功しました。", + "uninstallSuccess": "サービスのアンインストールに成功しました。" + } + }, + "variants": { + "release": "正式版", + "alpha": "アルファ版" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "ネットワークインターフェース", - "labels": { + "fields": { "ipAddress": "IPアドレス", "macAddress": "MACアドレス" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} updated successfully", - "updateFailed": "Failed to update {{name}}: {{message}}", - "genericError": "Update failed: {{message}}", - "none": "No providers available to update", - "allUpdated": "All providers updated successfully" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "Clashプロキシを使用して更新に成功しました。", + "withClashProxyFailed": "Clashプロキシを使用しても更新に失敗しました。" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "すべて更新", "update": "更新" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "直接接続モード" } }, - "strategies": { - "select": "手動でプロキシを選択", - "url-test": "URLテストによる遅延でプロキシを選択", - "fallback": "利用不可の場合は別のプロキシに切り替える", - "load-balance": "負荷分散によりプロキシを割り当てる", - "relay": "定義されたプロキシチェーンに沿って転送する" - }, - "policies": { - "DIRECT": "直接接続", - "REJECT": "リクエストを拒否", - "REJECT-DROP": "リクエストを破棄", - "PASS": "このルールをスキップ" + "enums": { + "strategies": { + "select": "手動でプロキシを選択", + "url-test": "URLテストによる遅延でプロキシを選択", + "fallback": "利用不可の場合は別のプロキシに切り替える", + "load-balance": "負荷分散によりプロキシを割り当てる", + "relay": "定義されたプロキシチェーンに沿って転送する" + }, + "policies": { + "DIRECT": "直接接続", + "REJECT": "リクエストを拒否", + "REJECT-DROP": "リクエストを破棄", + "PASS": "このルールをスキップ" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "すべて更新", "update": "更新" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } } + }, + "editor": { + "title": "ルールを編集", + "form": { + "labels": { + "type": "ルールタイプ", + "content": "ルール内容", + "proxyPolicy": "プロキシポリシー" + }, + "toggles": { + "noResolve": "DNS解決をスキップ" + }, + "actions": { + "prependRule": "前置ルールを追加", + "appendRule": "後置ルールを追加" + }, + "validation": { + "conditionRequired": "ルール条件が必要です", + "invalidRule": "無効なルール" + } + }, + "ruleTypes": { + "DOMAIN": "完全なドメイン名を一致させる", + "DOMAIN-SUFFIX": "ドメインサフィックスを一致させる", + "DOMAIN-KEYWORD": "ドメインキーワードを一致させる", + "DOMAIN-REGEX": "ドメイン正規表現を一致させる", + "GEOSITE": "Geosite内のドメインを一致させる", + "GEOIP": "IPの所属国コードを一致させる", + "SRC-GEOIP": "送信元IPの所属国コードを一致させる", + "IP-ASN": "IPの所属ASNを一致させる", + "SRC-IP-ASN": "送信元IPの所属ASNを一致させる", + "IP-CIDR": "IPアドレス範囲を一致させる", + "IP-CIDR6": "IPアドレス範囲を一致させる", + "SRC-IP-CIDR": "送信元IPアドレス範囲を一致させる", + "IP-SUFFIX": "IPサフィックス範囲を一致させる", + "SRC-IP-SUFFIX": "送信元IPサフィックス範囲を一致させる", + "SRC-PORT": "送信元ポート範囲を一致させる", + "DST-PORT": "宛先ポート範囲を一致させる", + "IN-PORT": "入力ポートを一致させる", + "DSCP": "DSCPマーク(TPROXY UDP入力のみ)", + "PROCESS-NAME": "プロセス名を一致させる(Androidパッケージ名)", + "PROCESS-PATH": "完全なプロセスパスを一致させる", + "PROCESS-NAME-REGEX": "完全なプロセス名を正規表現で一致させる(Androidパッケージ名)", + "PROCESS-PATH-REGEX": "完全なプロセスパスを正規表現で一致させる", + "NETWORK": "トランスポートプロトコルを一致させる (TCP/UDP)", + "UID": "LinuxユーザーIDを一致させる", + "IN-TYPE": "入力タイプを一致させる", + "IN-USER": "入力ユーザー名を一致させる", + "IN-NAME": "入力名を一致させる", + "SUB-RULE": "サブルール", + "RULE-SET": "ルールセットを一致させる", + "AND": "論理積", + "OR": "論理和", + "NOT": "論理否定", + "MATCH": "すべてのリクエストを一致させる" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "スクリプトコンソール出力" + }, + "card": { + "labels": { + "from": "から", + "updateTime": "更新時間", + "usedTotal": "使用済み / 合計", + "expireTime": "有効期限", + "clickToImport": "クリックしてサブスクリプションをインポート" + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "アップロード速度", - "downloadSpeed": "ダウンロード速度", - "memoryUsage": "コアメモリ使用量" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "TUN Mode automatically disabled due to service unavailable", - "autoDisableFailed": "Failed to disable TUN Mode automatically" - } - }, - "labels": { - "releaseVersion": "正式版", - "alphaVersion": "プレビュー版" - } - }, - "core": { - "status": { - "stopping": "コアを停止中...", - "restarting": "コアを再起動中..." - }, - "notifications": { - "changeSuccess": "コアの切り替えに成功しました。", - "changeFailed": "コアの切り替えに失敗しました。" - } - }, - "service": { - "status": { - "installing": "サービスをインストール中...", - "uninstalling": "サービスをアンインストール中..." - }, - "notifications": { - "installSuccess": "サービスのインストールに成功しました。", - "uninstallSuccess": "サービスのアンインストールに成功しました。" - } - }, "validation": { "config": { "failed": "プロファイル設定の検証に失敗しました。プロファイル設定ファイルを確認してください。変更は取り消されました。エラー詳細:", @@ -1272,11 +1268,5 @@ "keyError": "上書きファイルのキーエラーがあります。変更は取り消されました。", "generalError": "上書きファイルにエラーがあります。変更は取り消されました。" } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "Clashプロキシを使用して更新に成功しました。", - "withClashProxyFailed": "Clashプロキシを使用しても更新に失敗しました。" - } } } diff --git a/src/locales/ko.json b/src/locales/ko.json index 6cc686be..a23dc7c7 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -92,167 +92,7 @@ "dark": "Dark", "system": "System" }, - "ruleEditor": { - "title": "규칙 편집", - "form": { - "labels": { - "type": "규칙 유형", - "content": "규칙 내용", - "proxyPolicy": "프록시 정책" - }, - "toggles": { - "noResolve": "해석 안함" - }, - "actions": { - "prependRule": "규칙 앞에 추가", - "appendRule": "규칙 뒤에 추가" - }, - "validation": { - "conditionRequired": "규칙 조건 필요", - "invalidRule": "잘못된 규칙" - } - }, - "ruleTypes": { - "DOMAIN": "전체 도메인 이름과 일치", - "DOMAIN-SUFFIX": "도메인 접미사와 일치", - "DOMAIN-KEYWORD": "도메인 키워드와 일치", - "DOMAIN-REGEX": "정규 표현식을 사용한 도메인 일치", - "GEOSITE": "Geosite 내의 도메인과 일치", - "GEOIP": "IP 주소의 국가 코드와 일치", - "SRC-GEOIP": "소스 IP 주소의 국가 코드와 일치", - "IP-ASN": "IP 주소의 ASN과 일치", - "SRC-IP-ASN": "소스 IP 주소의 ASN과 일치", - "IP-CIDR": "IP 주소 범위와 일치", - "IP-CIDR6": "IPv6 주소 범위와 일치", - "SRC-IP-CIDR": "소스 IP 주소 범위와 일치", - "IP-SUFFIX": "IP 주소 접미사 범위와 일치", - "SRC-IP-SUFFIX": "소스 IP 주소 접미사 범위와 일치", - "SRC-PORT": "소스 포트 범위와 일치", - "DST-PORT": "대상 포트 범위와 일치", - "IN-PORT": "인바운드 포트와 일치", - "DSCP": "DSCP 마킹(tproxy UDP 인바운드만 해당)", - "PROCESS-NAME": "프로세스 이름과 일치(안드로이드 패키지 이름)", - "PROCESS-PATH": "전체 프로세스 경로와 일치", - "PROCESS-NAME-REGEX": "정규 표현식을 사용한 전체 프로세스 이름 일치(안드로이드 패키지 이름)", - "PROCESS-PATH-REGEX": "정규 표현식을 사용한 전체 프로세스 경로 일치", - "NETWORK": "전송 프로토콜과 일치(tcp/udp)", - "UID": "Linux 사용자 ID와 일치", - "IN-TYPE": "인바운드 유형과 일치", - "IN-USER": "인바운드 사용자 이름과 일치", - "IN-NAME": "인바운드 이름과 일치", - "SUB-RULE": "하위 규칙", - "RULE-SET": "규칙 세트와 일치", - "AND": "논리 AND", - "OR": "논리 OR", - "NOT": "논리 NOT", - "MATCH": "모든 요청과 일치" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "System proxy is enabled, your applications will access the network through the proxy", - "systemProxyDisabled": "System proxy is disabled, it is recommended for most users to turn on this option", - "tunModeServiceRequired": "TUN mode requires service mode, please install the service first", - "tunModeEnabled": "TUN mode is enabled, applications will access the network through the virtual network card", - "tunModeDisabled": "TUN mode is disabled, suitable for special applications" - }, - "tooltips": { - "systemProxy": "Enable to modify the operating system's proxy settings. If enabling fails, modify the operating system's proxy settings manually", - "tunMode": "TUN mode can take over all application traffic, suitable for special applications that do not follow the system proxy settings" - } - }, - "clashInfo": { - "title": "Clash Info", - "fields": { - "coreVersion": "Core Version", - "systemProxyAddress": "System Proxy Address", - "mixedPort": "Mixed Port", - "uptime": "Uptime", - "rulesCount": "Rules Count" - } - }, - "systemInfo": { - "title": "System Info", - "fields": { - "osInfo": "OS Info", - "autoLaunch": "Auto Launch", - "runningMode": "Running Mode", - "lastCheckUpdate": "Last Check Update", - "vergeVersion": "Verge Version" - }, - "actions": { - "settings": "설정" - }, - "tooltips": { - "autoLaunchAdmin": "Administrator mode may not support auto launch" - }, - "badges": { - "adminMode": "Administrator Mode", - "serviceMode": "서비스 모드", - "sidecarMode": "User Mode", - "adminServiceMode": "Admin + Service Mode" - } - }, - "ipInfo": { - "title": "IP Information", - "errors": { - "load": "Failed to get IP info" - }, - "labels": { - "ip": "IP", - "asn": "ASN", - "isp": "ISP", - "org": "ORG", - "location": "Location", - "timezone": "Timezone", - "autoRefresh": "Auto refresh", - "unknown": "Unknown" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "업로드 속도", - "downloadSpeed": "다운로드 속도", - "activeConnections": "활성 연결", - "uploaded": "업로드됨", - "downloaded": "다운로드됨", - "memoryUsage": "메모리 사용량" - }, - "legends": { - "upload": "업로드", - "download": "다운로드" - }, - "patterns": { - "minutes": "{{time}} Minutes" - } - }, - "currentProxy": { - "title": "Current Node", - "actions": { - "refreshDelay": "지연 확인" - }, - "labels": { - "globalMode": "Global Mode", - "directMode": "Direct Mode", - "group": "Group", - "proxy": "Proxy", - "noActiveNode": "No active proxy node" - } - }, - "profile": { - "title": "프로필", - "actions": { - "import": "가져오기" - }, - "labels": { - "from": "출처", - "updateTime": "업데이트 시간", - "usedTotal": "사용됨 / 전체", - "expireTime": "만료 시간", - "clickToImport": "Click to import subscription" - } - }, "page": { "title": "홈", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "Website Tests" - }, - "clashMode": { - "errors": { - "communication": "Core communication error" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "System proxy is enabled, your applications will access the network through the proxy", + "systemProxyDisabled": "System proxy is disabled, it is recommended for most users to turn on this option", + "tunModeServiceRequired": "TUN mode requires service mode, please install the service first", + "tunModeEnabled": "TUN mode is enabled, applications will access the network through the virtual network card", + "tunModeDisabled": "TUN mode is disabled, suitable for special applications" + }, + "tooltips": { + "systemProxy": "Enable to modify the operating system's proxy settings. If enabling fails, modify the operating system's proxy settings manually", + "tunMode": "TUN mode can take over all application traffic, suitable for special applications that do not follow the system proxy settings" + } }, - "labels": { - "rule": "Rule Mode", - "global": "Global Mode", - "direct": "Direct Mode" + "clashInfo": { + "title": "Clash Info", + "fields": { + "coreVersion": "Core Version", + "systemProxyAddress": "System Proxy Address", + "mixedPort": "Mixed Port", + "uptime": "Uptime", + "rulesCount": "Rules Count" + } }, - "descriptions": { - "rule": "Automatically choose proxies according to the rule set.", - "global": "Forward all network requests through the selected proxy.", - "direct": "Bypass the proxy and connect to the internet directly." + "systemInfo": { + "title": "System Info", + "fields": { + "osInfo": "OS Info", + "autoLaunch": "Auto Launch", + "runningMode": "Running Mode", + "lastCheckUpdate": "Last Check Update", + "vergeVersion": "Verge Version" + }, + "actions": { + "settings": "설정" + }, + "tooltips": { + "autoLaunchAdmin": "Administrator mode may not support auto launch" + }, + "badges": { + "adminMode": "Administrator Mode", + "serviceMode": "서비스 모드", + "sidecarMode": "User Mode", + "adminServiceMode": "Admin + Service Mode" + } + }, + "ipInfo": { + "title": "IP Information", + "labels": { + "ip": "IP", + "asn": "ASN", + "isp": "ISP", + "org": "ORG", + "location": "Location", + "timezone": "Timezone", + "autoRefresh": "Auto refresh", + "unknown": "Unknown" + }, + "errors": { + "load": "IP 정보를 가져오지 못했습니다" + } + }, + "currentProxy": { + "title": "Current Node", + "actions": { + "refreshDelay": "지연 확인" + }, + "labels": { + "globalMode": "Global Mode", + "directMode": "Direct Mode", + "group": "Group", + "proxy": "Proxy", + "noActiveNode": "No active proxy node" + } + }, + "tests": { + "title": "Website Tests" + }, + "traffic": { + "metrics": { + "uploadSpeed": "업로드 속도", + "downloadSpeed": "다운로드 속도", + "activeConnections": "활성 연결", + "uploaded": "업로드됨", + "downloaded": "다운로드됨", + "memoryUsage": "메모리 사용량" + }, + "legends": { + "upload": "업로드", + "download": "다운로드" + }, + "patterns": { + "minutes": "{{time}} Minutes" + } + }, + "clashMode": { + "errors": { + "communication": "Core communication error" + }, + "labels": { + "rule": "Rule Mode", + "global": "Global Mode", + "direct": "Direct Mode" + }, + "descriptions": { + "rule": "Automatically choose proxies according to the rule set.", + "global": "Forward all network requests through the selected proxy.", + "direct": "Bypass the proxy and connect to the internet directly." + } } } }, @@ -306,20 +239,22 @@ "tunMode": "Tun 모드", "systemProxy": "시스템 프록시" }, - "labels": { - "autoLaunch": "Auto Launch", - "silentStart": "자동 시작" - }, "tooltips": { "autoLaunchAdmin": "Administrator mode may not support auto launch", "silentStart": "Start the program in background mode without displaying the panel" + }, + "fields": { + "autoLaunch": "자동 실행", + "silentStart": "백그라운드 시작" + }, + "notifications": { + "tunMode": { + "autoDisabled": "TUN Mode automatically disabled due to service unavailable", + "autoDisableFailed": "Failed to disable TUN Mode automatically" + } } }, "proxyControl": { - "labels": { - "systemProxy": "시스템 프록시", - "tunMode": "Tun 모드" - }, "tooltips": { "systemProxy": "Enable to modify the operating system's proxy settings. If enabling fails, modify the operating system's proxy settings manually", "tunMode": "Tun (Virtual NIC) mode: Captures all system traffic, when enabled, there is no need to enable system proxy.", @@ -328,6 +263,10 @@ "actions": { "installService": "Install Service", "uninstallService": "Uninstall Service" + }, + "fields": { + "systemProxy": "시스템 프록시", + "tunMode": "Tun 모드" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "Clash Core Restarted", - "versionUpdated": "Core Version Updated" + "versionUpdated": "Core Version Updated", + "changeSuccess": "코어 변경 성공", + "changeFailed": "코어 변경 실패" + }, + "status": { + "stopping": "Stopping Core...", + "restarting": "Restarting Core..." + }, + "service": { + "status": { + "installing": "Installing Service...", + "uninstalling": "Uninstalling Service..." + }, + "notifications": { + "installSuccess": "Service Installed Successfully", + "uninstallSuccess": "Service Uninstalled Successfully" + } + }, + "variants": { + "release": "안정 버전", + "alpha": "알파 버전" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "Network Interface", - "labels": { + "fields": { "ipAddress": "IP Address", "macAddress": "MAC Address" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} updated successfully", - "updateFailed": "Failed to update {{name}}: {{message}}", - "genericError": "Update failed: {{message}}", - "none": "No providers available to update", - "allUpdated": "All providers updated successfully" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "Clash 프록시로 업데이트 성공", + "withClashProxyFailed": "Clash 프록시로도 업데이트 실패" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "모두 업데이트", "update": "업데이트" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "Direct Mode" } }, - "strategies": { - "select": "수동으로 프록시 선택", - "url-test": "URL 테스트 지연을 기준으로 프록시 선택", - "fallback": "오류 발생 시 다른 프록시로 전환", - "load-balance": "부하 분산에 따라 프록시 분배", - "relay": "정의된 프록시 체인을 통과" - }, - "policies": { - "DIRECT": "데이터가 직접 아웃바운드로 이동", - "REJECT": "요청 차단", - "REJECT-DROP": "요청 폐기", - "PASS": "일치할 경우 이 규칙 건너뛰기" + "enums": { + "strategies": { + "select": "수동으로 프록시 선택", + "url-test": "URL 테스트 지연을 기준으로 프록시 선택", + "fallback": "오류 발생 시 다른 프록시로 전환", + "load-balance": "부하 분산에 따라 프록시 분배", + "relay": "정의된 프록시 체인을 통과" + }, + "policies": { + "DIRECT": "데이터가 직접 아웃바운드로 이동", + "REJECT": "요청 차단", + "REJECT-DROP": "요청 폐기", + "PASS": "일치할 경우 이 규칙 건너뛰기" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "모두 업데이트", "update": "업데이트" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } } + }, + "editor": { + "title": "규칙 편집", + "form": { + "labels": { + "type": "규칙 유형", + "content": "규칙 내용", + "proxyPolicy": "프록시 정책" + }, + "toggles": { + "noResolve": "해석 안함" + }, + "actions": { + "prependRule": "규칙 앞에 추가", + "appendRule": "규칙 뒤에 추가" + }, + "validation": { + "conditionRequired": "규칙 조건 필요", + "invalidRule": "잘못된 규칙" + } + }, + "ruleTypes": { + "DOMAIN": "전체 도메인 이름과 일치", + "DOMAIN-SUFFIX": "도메인 접미사와 일치", + "DOMAIN-KEYWORD": "도메인 키워드와 일치", + "DOMAIN-REGEX": "정규 표현식을 사용한 도메인 일치", + "GEOSITE": "Geosite 내의 도메인과 일치", + "GEOIP": "IP 주소의 국가 코드와 일치", + "SRC-GEOIP": "소스 IP 주소의 국가 코드와 일치", + "IP-ASN": "IP 주소의 ASN과 일치", + "SRC-IP-ASN": "소스 IP 주소의 ASN과 일치", + "IP-CIDR": "IP 주소 범위와 일치", + "IP-CIDR6": "IPv6 주소 범위와 일치", + "SRC-IP-CIDR": "소스 IP 주소 범위와 일치", + "IP-SUFFIX": "IP 주소 접미사 범위와 일치", + "SRC-IP-SUFFIX": "소스 IP 주소 접미사 범위와 일치", + "SRC-PORT": "소스 포트 범위와 일치", + "DST-PORT": "대상 포트 범위와 일치", + "IN-PORT": "인바운드 포트와 일치", + "DSCP": "DSCP 마킹(tproxy UDP 인바운드만 해당)", + "PROCESS-NAME": "프로세스 이름과 일치(안드로이드 패키지 이름)", + "PROCESS-PATH": "전체 프로세스 경로와 일치", + "PROCESS-NAME-REGEX": "정규 표현식을 사용한 전체 프로세스 이름 일치(안드로이드 패키지 이름)", + "PROCESS-PATH-REGEX": "정규 표현식을 사용한 전체 프로세스 경로 일치", + "NETWORK": "전송 프로토콜과 일치(tcp/udp)", + "UID": "Linux 사용자 ID와 일치", + "IN-TYPE": "인바운드 유형과 일치", + "IN-USER": "인바운드 사용자 이름과 일치", + "IN-NAME": "인바운드 이름과 일치", + "SUB-RULE": "하위 규칙", + "RULE-SET": "규칙 세트와 일치", + "AND": "논리 AND", + "OR": "논리 OR", + "NOT": "논리 NOT", + "MATCH": "모든 요청과 일치" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "스크립트 콘솔" + }, + "card": { + "labels": { + "from": "출처", + "updateTime": "업데이트 시간", + "usedTotal": "사용됨 / 전체", + "expireTime": "만료 시간", + "clickToImport": "Click to import subscription" + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "업로드 속도", - "downloadSpeed": "다운로드 속도", - "memoryUsage": "메모리 사용량" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "TUN Mode automatically disabled due to service unavailable", - "autoDisableFailed": "Failed to disable TUN Mode automatically" - } - }, - "labels": { - "releaseVersion": "Release Version", - "alphaVersion": "Alpha Version" - } - }, - "core": { - "status": { - "stopping": "Stopping Core...", - "restarting": "Restarting Core..." - }, - "notifications": { - "changeSuccess": "코어 변경 성공", - "changeFailed": "코어 변경 실패" - } - }, - "service": { - "status": { - "installing": "Installing Service...", - "uninstalling": "Uninstalling Service..." - }, - "notifications": { - "installSuccess": "Service Installed Successfully", - "uninstallSuccess": "Service Uninstalled Successfully" - } - }, "validation": { "config": { "failed": "설정 검증 실패", @@ -1272,11 +1268,5 @@ "keyError": "병합 파일 키 오류", "generalError": "병합 파일 오류" } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "Clash 프록시로 업데이트 성공", - "withClashProxyFailed": "Clash 프록시로도 업데이트 실패" - } } } diff --git a/src/locales/ru.json b/src/locales/ru.json index 7e53e3c8..86eadff6 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -92,167 +92,7 @@ "dark": "Dark", "system": "System" }, - "ruleEditor": { - "title": "Редактировать правила", - "form": { - "labels": { - "type": "Тип правила", - "content": "Содержимое правила", - "proxyPolicy": "Политика прокси" - }, - "toggles": { - "noResolve": "Без разрешения" - }, - "actions": { - "prependRule": "Добавить правило в начало", - "appendRule": "Добавить правило в конец" - }, - "validation": { - "conditionRequired": "Требуется условие правила", - "invalidRule": "Недействительное правило" - } - }, - "ruleTypes": { - "DOMAIN": "Соответствует полному доменному имени", - "DOMAIN-SUFFIX": "Соответствует суффиксу домена", - "DOMAIN-KEYWORD": "Соответствует ключевому слову домена", - "DOMAIN-REGEX": "Соответствует домену с использованием регулярных выражений", - "GEOSITE": "Соответствует доменам в Geosite", - "GEOIP": "Соответствует коду страны IP-адреса", - "SRC-GEOIP": "Соответствует коду страны исходного IP-адреса", - "IP-ASN": "Соответствует ASN IP-адреса", - "SRC-IP-ASN": "Соответствует ASN исходного IP-адреса", - "IP-CIDR": "Соответствует диапазону IP-адресов", - "IP-CIDR6": "Соответствует диапазону IPv6-адресов", - "SRC-IP-CIDR": "Соответствует диапазону исходных IP-адресов", - "IP-SUFFIX": "Соответствует диапазону суффиксов IP-адресов", - "SRC-IP-SUFFIX": "Соответствует диапазону суффиксов исходных IP-адресов", - "SRC-PORT": "Соответствует диапазону исходных портов", - "DST-PORT": "Соответствует диапазону целевых портов", - "IN-PORT": "Соответствует входящему порту", - "DSCP": "Маркировка DSCP (только для tproxy UDP входящего)", - "PROCESS-NAME": "Соответствует имени процесса (имя пакета Android)", - "PROCESS-PATH": "Соответствует полному пути процесса", - "PROCESS-NAME-REGEX": "Соответствует имени процесса с использованием регулярных выражений (имя пакета Android)", - "PROCESS-PATH-REGEX": "Соответствует полному пути процесса с использованием регулярных выражений", - "NETWORK": "Соответствует транспортному протоколу (tcp/udp)", - "UID": "Соответствует USER ID в Linux", - "IN-TYPE": "Соответствует типу входящего соединения", - "IN-USER": "Соответствует имени пользователя входящего соединения", - "IN-NAME": "Соответствует имени входящего соединения", - "SUB-RULE": "Подправило", - "RULE-SET": "Соответствует набору правил", - "AND": "Логическое И", - "OR": "Логическое ИЛИ", - "NOT": "Логическое НЕ", - "MATCH": "Соответствует всем запросам" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "Системный прокси включен, ваши приложения будут получать доступ к сети через него", - "systemProxyDisabled": "Системный прокси отключен, большинству пользователей рекомендуется включить эту опцию", - "tunModeServiceRequired": "Режим TUN требует установленную службу Clash Verge", - "tunModeEnabled": "Режим TUN включен, приложения будут получать доступ к сети через виртуальную сетевую карту", - "tunModeDisabled": "Режим TUN отключен" - }, - "tooltips": { - "systemProxy": "Разрешить изменение настроек прокси-сервера операционной системы. Если разрешение не удастся, измените настройки прокси-сервера операционной системы вручную", - "tunMode": "Режим TUN может перехватить трафик всех приложений, подходит для приложений, которые не работают в режиме системного прокси." - } - }, - "clashInfo": { - "title": "Информация о Clash", - "fields": { - "coreVersion": "Версия ядра", - "systemProxyAddress": "Адрес системного прокси", - "mixedPort": "Mixed Port", - "uptime": "Время работы", - "rulesCount": "Количество правил" - } - }, - "systemInfo": { - "title": "Информация о системе", - "fields": { - "osInfo": "Версия ОС", - "autoLaunch": "Автозапуск", - "runningMode": "Режим работы", - "lastCheckUpdate": "Последняя проверка обновлений", - "vergeVersion": "Версия Clash Verge Rev" - }, - "actions": { - "settings": "Настройки" - }, - "tooltips": { - "autoLaunchAdmin": "Administrator mode may not support auto launch" - }, - "badges": { - "adminMode": "Administrator Mode", - "serviceMode": "Режим системной службы", - "sidecarMode": "Пользовательский режим", - "adminServiceMode": "Admin + Service Mode" - } - }, - "ipInfo": { - "title": "Информация об IP", - "errors": { - "load": "Не удалось получить информацию об IP" - }, - "labels": { - "ip": "IP", - "asn": "ASN", - "isp": "ISP", - "org": "ORG", - "location": "Location", - "timezone": "Timezone", - "autoRefresh": "Автоматическое обновление через", - "unknown": "Unknown" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "Скорость загрузки", - "downloadSpeed": "Скорость скачивания", - "activeConnections": "Активные соединения", - "uploaded": "Загружено", - "downloaded": "Скачано", - "memoryUsage": "Использование памяти" - }, - "legends": { - "upload": "Загрузка", - "download": "Скачивание" - }, - "patterns": { - "minutes": "{{time}} Minutes" - } - }, - "currentProxy": { - "title": "Текущий сервер", - "actions": { - "refreshDelay": "Проверка задержки" - }, - "labels": { - "globalMode": "Глобальный режим", - "directMode": "Прямой режим", - "group": "Группа", - "proxy": "Прокси", - "noActiveNode": "Нет активного прокси-узла" - } - }, - "profile": { - "title": "Профили", - "actions": { - "import": "Импорт" - }, - "labels": { - "from": "От", - "updateTime": "Время обновления", - "usedTotal": "Использовано / Всего", - "expireTime": "Время окончания", - "clickToImport": "Нажмите, чтобы импортировать подписку" - } - }, "page": { "title": "Главная", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "Проверка доступности веб-сайтов" - }, - "clashMode": { - "errors": { - "communication": "Core communication error" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "Системный прокси включен, ваши приложения будут получать доступ к сети через него", + "systemProxyDisabled": "Системный прокси отключен, большинству пользователей рекомендуется включить эту опцию", + "tunModeServiceRequired": "Режим TUN требует установленную службу Clash Verge", + "tunModeEnabled": "Режим TUN включен, приложения будут получать доступ к сети через виртуальную сетевую карту", + "tunModeDisabled": "Режим TUN отключен" + }, + "tooltips": { + "systemProxy": "Разрешить изменение настроек прокси-сервера операционной системы. Если разрешение не удастся, измените настройки прокси-сервера операционной системы вручную", + "tunMode": "Режим TUN может перехватить трафик всех приложений, подходит для приложений, которые не работают в режиме системного прокси." + } }, - "labels": { - "rule": "Режим правил", - "global": "Глобальный режим", - "direct": "Прямой режим" + "clashInfo": { + "title": "Информация о Clash", + "fields": { + "coreVersion": "Версия ядра", + "systemProxyAddress": "Адрес системного прокси", + "mixedPort": "Mixed Port", + "uptime": "Время работы", + "rulesCount": "Количество правил" + } }, - "descriptions": { - "rule": "Automatically choose proxies according to the rule set.", - "global": "Forward all network requests through the selected proxy.", - "direct": "Bypass the proxy and connect to the internet directly." + "systemInfo": { + "title": "Информация о системе", + "fields": { + "osInfo": "Версия ОС", + "autoLaunch": "Автозапуск", + "runningMode": "Режим работы", + "lastCheckUpdate": "Последняя проверка обновлений", + "vergeVersion": "Версия Clash Verge Rev" + }, + "actions": { + "settings": "Настройки" + }, + "tooltips": { + "autoLaunchAdmin": "Administrator mode may not support auto launch" + }, + "badges": { + "adminMode": "Administrator Mode", + "serviceMode": "Режим системной службы", + "sidecarMode": "Пользовательский режим", + "adminServiceMode": "Admin + Service Mode" + } + }, + "ipInfo": { + "title": "Информация об IP", + "labels": { + "ip": "IP", + "asn": "ASN", + "isp": "ISP", + "org": "ORG", + "location": "Location", + "timezone": "Timezone", + "autoRefresh": "Автоматическое обновление через", + "unknown": "Unknown" + }, + "errors": { + "load": "Не удалось получить данные IP" + } + }, + "currentProxy": { + "title": "Текущий сервер", + "actions": { + "refreshDelay": "Проверка задержки" + }, + "labels": { + "globalMode": "Глобальный режим", + "directMode": "Прямой режим", + "group": "Группа", + "proxy": "Прокси", + "noActiveNode": "Нет активного прокси-узла" + } + }, + "tests": { + "title": "Проверка доступности веб-сайтов" + }, + "traffic": { + "metrics": { + "uploadSpeed": "Скорость загрузки", + "downloadSpeed": "Скорость скачивания", + "activeConnections": "Активные соединения", + "uploaded": "Загружено", + "downloaded": "Скачано", + "memoryUsage": "Использование памяти" + }, + "legends": { + "upload": "Загрузка", + "download": "Скачивание" + }, + "patterns": { + "minutes": "{{time}} Minutes" + } + }, + "clashMode": { + "errors": { + "communication": "Core communication error" + }, + "labels": { + "rule": "Режим правил", + "global": "Глобальный режим", + "direct": "Прямой режим" + }, + "descriptions": { + "rule": "Automatically choose proxies according to the rule set.", + "global": "Forward all network requests through the selected proxy.", + "direct": "Bypass the proxy and connect to the internet directly." + } } } }, @@ -306,20 +239,22 @@ "tunMode": "Режим TUN", "systemProxy": "Системный прокси" }, - "labels": { - "autoLaunch": "Автозапуск", - "silentStart": "Тихий запуск" - }, "tooltips": { "autoLaunchAdmin": "Administrator mode may not support auto launch", "silentStart": "Запускать программу в фоновом режиме без отображения панели" + }, + "fields": { + "autoLaunch": "Автозапуск", + "silentStart": "Тихий запуск" + }, + "notifications": { + "tunMode": { + "autoDisabled": "TUN Mode automatically disabled due to service unavailable", + "autoDisableFailed": "Failed to disable TUN Mode automatically" + } } }, "proxyControl": { - "labels": { - "systemProxy": "Системный прокси", - "tunMode": "Режим TUN" - }, "tooltips": { "systemProxy": "Разрешить изменение настроек прокси-сервера операционной системы. Если разрешение не удастся, измените настройки прокси-сервера операционной системы вручную", "tunMode": "Режим Tun: захватывает весь системный трафик, при включении нет необходимости включать системный прокси-сервер.", @@ -328,6 +263,10 @@ "actions": { "installService": "Установить службу", "uninstallService": "Uninstall Service" + }, + "fields": { + "systemProxy": "Системный прокси", + "tunMode": "Режим TUN" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "Ядро перезапущено", - "versionUpdated": "Ядро обновлено до последней версии" + "versionUpdated": "Ядро обновлено до последней версии", + "changeSuccess": "Ядро успешно изменено", + "changeFailed": "Не удалось сменить ядро" + }, + "status": { + "stopping": "Stopping Core...", + "restarting": "Restarting Core..." + }, + "service": { + "status": { + "installing": "Установка службы...", + "uninstalling": "Uninstalling Service..." + }, + "notifications": { + "installSuccess": "Служба успешно установлена", + "uninstallSuccess": "Служба успешно удалена" + } + }, + "variants": { + "release": "Официальная версия", + "alpha": "Альфа-версия" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "Сетевой интерфейс", - "labels": { + "fields": { "ipAddress": "IP адрес", "macAddress": "MAC адрес" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} updated successfully", - "updateFailed": "Failed to update {{name}}: {{message}}", - "genericError": "Update failed: {{message}}", - "none": "No providers available to update", - "allUpdated": "All providers updated successfully" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "Update with Clash proxy successfully", + "withClashProxyFailed": "Update failed even with Clash proxy" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "Обновить все", "update": "Обновить" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "Прямой режим" } }, - "strategies": { - "select": "Выбор прокси вручную", - "url-test": "Выбор прокси на основе задержки теста URL", - "fallback": "Переключение на другой прокси при ошибке", - "load-balance": "Распределение прокси на основе балансировки нагрузки", - "relay": "Передача через определенную цепочку прокси" - }, - "policies": { - "DIRECT": "Данные направляются напрямую наружу", - "REJECT": "Перехватывает запросы", - "REJECT-DROP": "Отклоняет запросы", - "PASS": "Пропускает это правило при совпадении" + "enums": { + "strategies": { + "select": "Выбор прокси вручную", + "url-test": "Выбор прокси на основе задержки теста URL", + "fallback": "Переключение на другой прокси при ошибке", + "load-balance": "Распределение прокси на основе балансировки нагрузки", + "relay": "Передача через определенную цепочку прокси" + }, + "policies": { + "DIRECT": "Данные направляются напрямую наружу", + "REJECT": "Перехватывает запросы", + "REJECT-DROP": "Отклоняет запросы", + "PASS": "Пропускает это правило при совпадении" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "Обновить все", "update": "Обновить" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } } + }, + "editor": { + "title": "Редактировать правила", + "form": { + "labels": { + "type": "Тип правила", + "content": "Содержимое правила", + "proxyPolicy": "Политика прокси" + }, + "toggles": { + "noResolve": "Без разрешения" + }, + "actions": { + "prependRule": "Добавить правило в начало", + "appendRule": "Добавить правило в конец" + }, + "validation": { + "conditionRequired": "Требуется условие правила", + "invalidRule": "Недействительное правило" + } + }, + "ruleTypes": { + "DOMAIN": "Соответствует полному доменному имени", + "DOMAIN-SUFFIX": "Соответствует суффиксу домена", + "DOMAIN-KEYWORD": "Соответствует ключевому слову домена", + "DOMAIN-REGEX": "Соответствует домену с использованием регулярных выражений", + "GEOSITE": "Соответствует доменам в Geosite", + "GEOIP": "Соответствует коду страны IP-адреса", + "SRC-GEOIP": "Соответствует коду страны исходного IP-адреса", + "IP-ASN": "Соответствует ASN IP-адреса", + "SRC-IP-ASN": "Соответствует ASN исходного IP-адреса", + "IP-CIDR": "Соответствует диапазону IP-адресов", + "IP-CIDR6": "Соответствует диапазону IPv6-адресов", + "SRC-IP-CIDR": "Соответствует диапазону исходных IP-адресов", + "IP-SUFFIX": "Соответствует диапазону суффиксов IP-адресов", + "SRC-IP-SUFFIX": "Соответствует диапазону суффиксов исходных IP-адресов", + "SRC-PORT": "Соответствует диапазону исходных портов", + "DST-PORT": "Соответствует диапазону целевых портов", + "IN-PORT": "Соответствует входящему порту", + "DSCP": "Маркировка DSCP (только для tproxy UDP входящего)", + "PROCESS-NAME": "Соответствует имени процесса (имя пакета Android)", + "PROCESS-PATH": "Соответствует полному пути процесса", + "PROCESS-NAME-REGEX": "Соответствует имени процесса с использованием регулярных выражений (имя пакета Android)", + "PROCESS-PATH-REGEX": "Соответствует полному пути процесса с использованием регулярных выражений", + "NETWORK": "Соответствует транспортному протоколу (tcp/udp)", + "UID": "Соответствует USER ID в Linux", + "IN-TYPE": "Соответствует типу входящего соединения", + "IN-USER": "Соответствует имени пользователя входящего соединения", + "IN-NAME": "Соответствует имени входящего соединения", + "SUB-RULE": "Подправило", + "RULE-SET": "Соответствует набору правил", + "AND": "Логическое И", + "OR": "Логическое ИЛИ", + "NOT": "Логическое НЕ", + "MATCH": "Соответствует всем запросам" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "Консоль скрипта" + }, + "card": { + "labels": { + "from": "От", + "updateTime": "Время обновления", + "usedTotal": "Использовано / Всего", + "expireTime": "Время окончания", + "clickToImport": "Нажмите, чтобы импортировать подписку" + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "Скорость загрузки", - "downloadSpeed": "Скорость скачивания", - "memoryUsage": "Использование памяти" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "TUN Mode automatically disabled due to service unavailable", - "autoDisableFailed": "Failed to disable TUN Mode automatically" - } - }, - "labels": { - "releaseVersion": "Официальная версия", - "alphaVersion": "Альфа-версия" - } - }, - "core": { - "status": { - "stopping": "Stopping Core...", - "restarting": "Restarting Core..." - }, - "notifications": { - "changeSuccess": "Ядро успешно изменено", - "changeFailed": "Не удалось сменить ядро" - } - }, - "service": { - "status": { - "installing": "Установка службы...", - "uninstalling": "Uninstalling Service..." - }, - "notifications": { - "installSuccess": "Служба успешно установлена", - "uninstallSuccess": "Служба успешно удалена" - } - }, "validation": { "config": { "failed": "Ошибка проверки конфигурации подписки, проверьте файл конфигурации, изменения отменены, ошибка:", @@ -1272,11 +1268,5 @@ "keyError": "Ошибка ключа в Merge File, откат изменений", "generalError": "Ошибка Merge File, откат изменений" } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "Update with Clash proxy successfully", - "withClashProxyFailed": "Update failed even with Clash proxy" - } } } diff --git a/src/locales/tr.json b/src/locales/tr.json index ee457735..d4939e98 100644 --- a/src/locales/tr.json +++ b/src/locales/tr.json @@ -92,167 +92,7 @@ "dark": "Dark", "system": "System" }, - "ruleEditor": { - "title": "Kuralları Düzenle", - "form": { - "labels": { - "type": "Kural Tipi", - "content": "Kural İçeriği", - "proxyPolicy": "Vekil Politikası" - }, - "toggles": { - "noResolve": "Çözümleme Yok" - }, - "actions": { - "prependRule": "Kuralın Başına Ekle", - "appendRule": "Kuralın Sonuna Ekle" - }, - "validation": { - "conditionRequired": "Kural Koşulu Gerekli", - "invalidRule": "Geçersiz Kural" - } - }, - "ruleTypes": { - "DOMAIN": "Tam alan adıyla eşleşir", - "DOMAIN-SUFFIX": "Alan adı sonekiyle eşleşir", - "DOMAIN-KEYWORD": "Alan adı anahtar kelimesiyle eşleşir", - "DOMAIN-REGEX": "Alan adını düzenli ifadeler kullanarak eşleştirir", - "GEOSITE": "Geosite içindeki alan adlarıyla eşleşir", - "GEOIP": "IP adresinin ülke koduyla eşleşir", - "SRC-GEOIP": "Kaynak IP adresinin ülke koduyla eşleşir", - "IP-ASN": "IP adresinin ASN'siyle eşleşir", - "SRC-IP-ASN": "Kaynak IP adresinin ASN'siyle eşleşir", - "IP-CIDR": "IP adresi aralığıyla eşleşir", - "IP-CIDR6": "IPv6 adresi aralığıyla eşleşir", - "SRC-IP-CIDR": "Kaynak IP adresi aralığıyla eşleşir", - "IP-SUFFIX": "IP adresi sonek aralığıyla eşleşir", - "SRC-IP-SUFFIX": "Kaynak IP adresi sonek aralığıyla eşleşir", - "SRC-PORT": "Kaynak port aralığıyla eşleşir", - "DST-PORT": "Hedef port aralığıyla eşleşir", - "IN-PORT": "Gelen port ile eşleşir", - "DSCP": "DSCP işaretlemesi (sadece tvekil UDP girişi için)", - "PROCESS-NAME": "İşlem adıyla eşleşir (Android paket adı)", - "PROCESS-PATH": "Tam işlem yoluyla eşleşir", - "PROCESS-NAME-REGEX": "Tam işlem adını düzenli ifadeler kullanarak eşleştirir (Android paket adı)", - "PROCESS-PATH-REGEX": "Tam işlem yolunu düzenli ifadeler kullanarak eşleştirir", - "NETWORK": "Taşıma protokolüyle eşleşir (tcp/udp)", - "UID": "Linux KULLANICI ID'siyle eşleşir", - "IN-TYPE": "Gelen bağlantı tipiyle eşleşir", - "IN-USER": "Gelen bağlantı kullanıcı adıyla eşleşir", - "IN-NAME": "Gelen bağlantı adıyla eşleşir", - "SUB-RULE": "Alt kural", - "RULE-SET": "Kural setiyle eşleşir", - "AND": "Mantıksal VE", - "OR": "Mantıksal VEYA", - "NOT": "Mantıksal DEĞİL", - "MATCH": "Tüm isteklerle eşleşir" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "Sistem vekil'i etkinleştirildi, uygulamalarınız vekil üzerinden ağa erişecek", - "systemProxyDisabled": "Sistem vekil'i devre dışı, çoğu kullanıcı için bu seçeneği açmanız önerilir", - "tunModeServiceRequired": "TUN modu hizmet modu gerektirir, lütfen önce hizmeti kurun", - "tunModeEnabled": "TUN modu etkinleştirildi, uygulamalar sanal ağ kartı üzerinden ağa erişecek", - "tunModeDisabled": "TUN modu devre dışı, özel uygulamalar için uygundur" - }, - "tooltips": { - "systemProxy": "İşletim sisteminin vekil ayarlarını değiştirmek için etkinleştirin. Etkinleştirme başarısız olursa, işletim sisteminin proxy ayarlarını manuel olarak değiştirin", - "tunMode": "TUN modu tüm uygulama trafiğini ele alabilir, sistem vekil ayarlarını takip etmeyen özel uygulamalar için uygundur" - } - }, - "clashInfo": { - "title": "Clash Bilgisi", - "fields": { - "coreVersion": "Çekirdek Sürümü", - "systemProxyAddress": "Sistem Vekil Adresi", - "mixedPort": "Mixed Port", - "uptime": "Çalışma Süresi", - "rulesCount": "Kural Sayısı" - } - }, - "systemInfo": { - "title": "Sistem Bilgisi", - "fields": { - "osInfo": "İşletim Sistemi Bilgisi", - "autoLaunch": "Otomatik Başlatma", - "runningMode": "Çalışma Modu", - "lastCheckUpdate": "Son Güncelleme Kontrolü", - "vergeVersion": "Verge Sürümü" - }, - "actions": { - "settings": "Ayarlar" - }, - "tooltips": { - "autoLaunchAdmin": "Yönetici modu otomatik başlatmayı desteklemeyebilir" - }, - "badges": { - "adminMode": "Yönetici Modu", - "serviceMode": "Hizmet Modu", - "sidecarMode": "Kullanıcı Modu", - "adminServiceMode": "Yönetici + Hizmet Modu" - } - }, - "ipInfo": { - "title": "IP Bilgisi", - "errors": { - "load": "IP bilgisi alınamadı" - }, - "labels": { - "ip": "IP", - "asn": "ASN", - "isp": "ISP", - "org": "Kuruluş", - "location": "Konum", - "timezone": "Saat Dilimi", - "autoRefresh": "Otomatik yenile", - "unknown": "Bilinmiyor" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "Yükleme Hızı", - "downloadSpeed": "İndirme Hızı", - "activeConnections": "Aktif Bağlantılar", - "uploaded": "Yüklenen", - "downloaded": "İndirilen", - "memoryUsage": "Çekirdek Kullanımı" - }, - "legends": { - "upload": "Yükleme", - "download": "İndirme" - }, - "patterns": { - "minutes": "{{time}} Minutes" - } - }, - "currentProxy": { - "title": "Geçerli Düğüm", - "actions": { - "refreshDelay": "Gecikme kontrolü" - }, - "labels": { - "globalMode": "Küresel Mod", - "directMode": "Doğrudan Mod", - "group": "Grup", - "proxy": "Vekil", - "noActiveNode": "Aktif vekil düğümü yok" - } - }, - "profile": { - "title": "Profiller", - "actions": { - "import": "İçe Aktar" - }, - "labels": { - "from": "Kaynak", - "updateTime": "Güncelleme Zamanı", - "usedTotal": "Kullanılan / Toplam", - "expireTime": "Sona Erme Zamanı", - "clickToImport": "Abonelik içe aktarmak için tıklayın" - } - }, "page": { "title": "Ana Sayfa", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "Web Sitesi Testleri" - }, - "clashMode": { - "errors": { - "communication": "Core communication error" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "Sistem vekil'i etkinleştirildi, uygulamalarınız vekil üzerinden ağa erişecek", + "systemProxyDisabled": "Sistem vekil'i devre dışı, çoğu kullanıcı için bu seçeneği açmanız önerilir", + "tunModeServiceRequired": "TUN modu hizmet modu gerektirir, lütfen önce hizmeti kurun", + "tunModeEnabled": "TUN modu etkinleştirildi, uygulamalar sanal ağ kartı üzerinden ağa erişecek", + "tunModeDisabled": "TUN modu devre dışı, özel uygulamalar için uygundur" + }, + "tooltips": { + "systemProxy": "İşletim sisteminin vekil ayarlarını değiştirmek için etkinleştirin. Etkinleştirme başarısız olursa, işletim sisteminin proxy ayarlarını manuel olarak değiştirin", + "tunMode": "TUN modu tüm uygulama trafiğini ele alabilir, sistem vekil ayarlarını takip etmeyen özel uygulamalar için uygundur" + } }, - "labels": { - "rule": "Kural Modu", - "global": "Küresel Mod", - "direct": "Doğrudan Mod" + "clashInfo": { + "title": "Clash Bilgisi", + "fields": { + "coreVersion": "Çekirdek Sürümü", + "systemProxyAddress": "Sistem Vekil Adresi", + "mixedPort": "Mixed Port", + "uptime": "Çalışma Süresi", + "rulesCount": "Kural Sayısı" + } }, - "descriptions": { - "rule": "Automatically choose proxies according to the rule set.", - "global": "Forward all network requests through the selected proxy.", - "direct": "Bypass the proxy and connect to the internet directly." + "systemInfo": { + "title": "Sistem Bilgisi", + "fields": { + "osInfo": "İşletim Sistemi Bilgisi", + "autoLaunch": "Otomatik Başlatma", + "runningMode": "Çalışma Modu", + "lastCheckUpdate": "Son Güncelleme Kontrolü", + "vergeVersion": "Verge Sürümü" + }, + "actions": { + "settings": "Ayarlar" + }, + "tooltips": { + "autoLaunchAdmin": "Yönetici modu otomatik başlatmayı desteklemeyebilir" + }, + "badges": { + "adminMode": "Yönetici Modu", + "serviceMode": "Hizmet Modu", + "sidecarMode": "Kullanıcı Modu", + "adminServiceMode": "Yönetici + Hizmet Modu" + } + }, + "ipInfo": { + "title": "IP Bilgisi", + "labels": { + "ip": "IP", + "asn": "ASN", + "isp": "ISP", + "org": "Kuruluş", + "location": "Konum", + "timezone": "Saat Dilimi", + "autoRefresh": "Otomatik yenile", + "unknown": "Bilinmiyor" + }, + "errors": { + "load": "IP bilgisi alınamadı" + } + }, + "currentProxy": { + "title": "Geçerli Düğüm", + "actions": { + "refreshDelay": "Gecikme kontrolü" + }, + "labels": { + "globalMode": "Küresel Mod", + "directMode": "Doğrudan Mod", + "group": "Grup", + "proxy": "Vekil", + "noActiveNode": "Aktif vekil düğümü yok" + } + }, + "tests": { + "title": "Web Sitesi Testleri" + }, + "traffic": { + "metrics": { + "uploadSpeed": "Yükleme Hızı", + "downloadSpeed": "İndirme Hızı", + "activeConnections": "Aktif Bağlantılar", + "uploaded": "Yüklenen", + "downloaded": "İndirilen", + "memoryUsage": "Çekirdek Kullanımı" + }, + "legends": { + "upload": "Yükleme", + "download": "İndirme" + }, + "patterns": { + "minutes": "{{time}} Minutes" + } + }, + "clashMode": { + "errors": { + "communication": "Core communication error" + }, + "labels": { + "rule": "Kural Modu", + "global": "Küresel Mod", + "direct": "Doğrudan Mod" + }, + "descriptions": { + "rule": "Automatically choose proxies according to the rule set.", + "global": "Forward all network requests through the selected proxy.", + "direct": "Bypass the proxy and connect to the internet directly." + } } } }, @@ -306,20 +239,22 @@ "tunMode": "Tun Modu", "systemProxy": "Sistem Vekil'i" }, - "labels": { - "autoLaunch": "Otomatik Başlatma", - "silentStart": "Sessiz Başlatma" - }, "tooltips": { "autoLaunchAdmin": "Yönetici modu otomatik başlatmayı desteklemeyebilir", "silentStart": "Programı paneli görüntülemeden arka plan modunda başlatır" + }, + "fields": { + "autoLaunch": "Otomatik Başlat", + "silentStart": "Sessiz Başlatma" + }, + "notifications": { + "tunMode": { + "autoDisabled": "TUN Mode automatically disabled due to service unavailable", + "autoDisableFailed": "Failed to disable TUN Mode automatically" + } } }, "proxyControl": { - "labels": { - "systemProxy": "Sistem Vekil'i", - "tunMode": "Tun Modu" - }, "tooltips": { "systemProxy": "İşletim sisteminin vekil ayarlarını değiştirmek için etkinleştirin. Etkinleştirme başarısız olursa, işletim sisteminin proxy ayarlarını manuel olarak değiştirin", "tunMode": "Tun (Sanal Ağ Kartı) modu: Tüm sistem trafiğini yakalar, etkinleştirildiğinde sistem vekil'ini etkinleştirmeye gerek yoktur.", @@ -328,6 +263,10 @@ "actions": { "installService": "Hizmeti Kur", "uninstallService": "Uninstall Service" + }, + "fields": { + "systemProxy": "Sistem Vekil'i", + "tunMode": "Tun Modu" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "Clash Çekirdeği Yeniden Başlatıldı", - "versionUpdated": "Çekirdek Sürümü Güncellendi" + "versionUpdated": "Çekirdek Sürümü Güncellendi", + "changeSuccess": "Çekirdek başarıyla değiştirildi", + "changeFailed": "Çekirdek değiştirilemedi" + }, + "status": { + "stopping": "Stopping Core...", + "restarting": "Restarting Core..." + }, + "service": { + "status": { + "installing": "Hizmet Kuruluyor...", + "uninstalling": "Uninstalling Service..." + }, + "notifications": { + "installSuccess": "Hizmet Başarıyla Kuruldu", + "uninstallSuccess": "Hizmet Başarıyla Kaldırıldı" + } + }, + "variants": { + "release": "Kararlı Sürüm", + "alpha": "Alfa Sürümü" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "Ağ Arayüzü", - "labels": { + "fields": { "ipAddress": "IP Adresi", "macAddress": "MAC Adresi" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} updated successfully", - "updateFailed": "Failed to update {{name}}: {{message}}", - "genericError": "Update failed: {{message}}", - "none": "No providers available to update", - "allUpdated": "All providers updated successfully" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "Clash vekil ile güncelleme başarılı", + "withClashProxyFailed": "Clash vekil ile bile güncelleme başarısız oldu" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "Tümünü Güncelle", "update": "Güncelle" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "Doğrudan Mod" } }, - "strategies": { - "select": "Vekil'i manuel olarak seçin", - "url-test": "URL testi gecikmesine göre vekil seçin", - "fallback": "Hata durumunda başka bir vekil'e geçin", - "load-balance": "Yük dengelemeye göre vekil dağıtın", - "relay": "Tanımlanan vekil zincirinden geçirin" - }, - "policies": { - "DIRECT": "Veri doğrudan dışarı gider", - "REJECT": "İstekleri engeller", - "REJECT-DROP": "İstekleri atar", - "PASS": "Eşleştiğinde bu kuralı atlar" + "enums": { + "strategies": { + "select": "Vekil'i manuel olarak seçin", + "url-test": "URL testi gecikmesine göre vekil seçin", + "fallback": "Hata durumunda başka bir vekil'e geçin", + "load-balance": "Yük dengelemeye göre vekil dağıtın", + "relay": "Tanımlanan vekil zincirinden geçirin" + }, + "policies": { + "DIRECT": "Veri doğrudan dışarı gider", + "REJECT": "İstekleri engeller", + "REJECT-DROP": "İstekleri atar", + "PASS": "Eşleştiğinde bu kuralı atlar" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "Tümünü Güncelle", "update": "Güncelle" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } } + }, + "editor": { + "title": "Kuralları Düzenle", + "form": { + "labels": { + "type": "Kural Tipi", + "content": "Kural İçeriği", + "proxyPolicy": "Vekil Politikası" + }, + "toggles": { + "noResolve": "Çözümleme Yok" + }, + "actions": { + "prependRule": "Kuralın Başına Ekle", + "appendRule": "Kuralın Sonuna Ekle" + }, + "validation": { + "conditionRequired": "Kural Koşulu Gerekli", + "invalidRule": "Geçersiz Kural" + } + }, + "ruleTypes": { + "DOMAIN": "Tam alan adıyla eşleşir", + "DOMAIN-SUFFIX": "Alan adı sonekiyle eşleşir", + "DOMAIN-KEYWORD": "Alan adı anahtar kelimesiyle eşleşir", + "DOMAIN-REGEX": "Alan adını düzenli ifadeler kullanarak eşleştirir", + "GEOSITE": "Geosite içindeki alan adlarıyla eşleşir", + "GEOIP": "IP adresinin ülke koduyla eşleşir", + "SRC-GEOIP": "Kaynak IP adresinin ülke koduyla eşleşir", + "IP-ASN": "IP adresinin ASN'siyle eşleşir", + "SRC-IP-ASN": "Kaynak IP adresinin ASN'siyle eşleşir", + "IP-CIDR": "IP adresi aralığıyla eşleşir", + "IP-CIDR6": "IPv6 adresi aralığıyla eşleşir", + "SRC-IP-CIDR": "Kaynak IP adresi aralığıyla eşleşir", + "IP-SUFFIX": "IP adresi sonek aralığıyla eşleşir", + "SRC-IP-SUFFIX": "Kaynak IP adresi sonek aralığıyla eşleşir", + "SRC-PORT": "Kaynak port aralığıyla eşleşir", + "DST-PORT": "Hedef port aralığıyla eşleşir", + "IN-PORT": "Gelen port ile eşleşir", + "DSCP": "DSCP işaretlemesi (sadece tvekil UDP girişi için)", + "PROCESS-NAME": "İşlem adıyla eşleşir (Android paket adı)", + "PROCESS-PATH": "Tam işlem yoluyla eşleşir", + "PROCESS-NAME-REGEX": "Tam işlem adını düzenli ifadeler kullanarak eşleştirir (Android paket adı)", + "PROCESS-PATH-REGEX": "Tam işlem yolunu düzenli ifadeler kullanarak eşleştirir", + "NETWORK": "Taşıma protokolüyle eşleşir (tcp/udp)", + "UID": "Linux KULLANICI ID'siyle eşleşir", + "IN-TYPE": "Gelen bağlantı tipiyle eşleşir", + "IN-USER": "Gelen bağlantı kullanıcı adıyla eşleşir", + "IN-NAME": "Gelen bağlantı adıyla eşleşir", + "SUB-RULE": "Alt kural", + "RULE-SET": "Kural setiyle eşleşir", + "AND": "Mantıksal VE", + "OR": "Mantıksal VEYA", + "NOT": "Mantıksal DEĞİL", + "MATCH": "Tüm isteklerle eşleşir" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "Betik Konsolu" + }, + "card": { + "labels": { + "from": "Kaynak", + "updateTime": "Güncelleme Zamanı", + "usedTotal": "Kullanılan / Toplam", + "expireTime": "Sona Erme Zamanı", + "clickToImport": "Abonelik içe aktarmak için tıklayın" + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "Yükleme Hızı", - "downloadSpeed": "İndirme Hızı", - "memoryUsage": "Çekirdek Kullanımı" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "TUN Mode automatically disabled due to service unavailable", - "autoDisableFailed": "Failed to disable TUN Mode automatically" - } - }, - "labels": { - "releaseVersion": "Sürüm Versiyonu", - "alphaVersion": "Alfa Versiyonu" - } - }, - "core": { - "status": { - "stopping": "Stopping Core...", - "restarting": "Restarting Core..." - }, - "notifications": { - "changeSuccess": "Çekirdek başarıyla değiştirildi", - "changeFailed": "Çekirdek değiştirilemedi" - } - }, - "service": { - "status": { - "installing": "Hizmet Kuruluyor...", - "uninstalling": "Uninstalling Service..." - }, - "notifications": { - "installSuccess": "Hizmet Başarıyla Kuruldu", - "uninstallSuccess": "Hizmet Başarıyla Kaldırıldı" - } - }, "validation": { "config": { "failed": "Abonelik yapılandırması doğrulaması başarısız oldu. Lütfen abonelik yapılandırma dosyasını kontrol edin; değişiklikler geri alındı.", @@ -1272,11 +1268,5 @@ "keyError": "Birleştirme dosyası anahtar hatası, değişiklikler geri alındı", "generalError": "Birleştirme dosyası hatası, değişiklikler geri alındı" } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "Clash vekil ile güncelleme başarılı", - "withClashProxyFailed": "Clash vekil ile bile güncelleme başarısız oldu" - } } } diff --git a/src/locales/tt.json b/src/locales/tt.json index 4bd87ed9..27c2eda5 100644 --- a/src/locales/tt.json +++ b/src/locales/tt.json @@ -92,167 +92,7 @@ "dark": "Dark", "system": "System" }, - "ruleEditor": { - "title": "Кагыйдәләрне үзгәртү", - "form": { - "labels": { - "type": "Кагыйдә төре", - "content": "Кагыйдә эчтәлеге", - "proxyPolicy": "Прокси сәясәте" - }, - "toggles": { - "noResolve": "Резолвсыз" - }, - "actions": { - "prependRule": "Кагыйдәне өскә өстәү", - "appendRule": "Кагыйдәне аска өстәү" - }, - "validation": { - "conditionRequired": "Кагыйдә шарты кирәк", - "invalidRule": "Яраксыз кагыйдә" - } - }, - "ruleTypes": { - "DOMAIN": "Домен исеменең тулы туры килүе", - "DOMAIN-SUFFIX": "Домен суффиксына туры килү", - "DOMAIN-KEYWORD": "Доменда төп сүзгә туры килү", - "DOMAIN-REGEX": "Доменны регекс аша туры китерү", - "GEOSITE": "Geosite исемлегендәге доменга туры килү", - "GEOIP": "IP-адресның ил коды буенча туры килү", - "SRC-GEOIP": "Чыганак IP-адресның ил коды буенча туры килү", - "IP-ASN": "IP-адрес ASN'ы буенча туры килү", - "SRC-IP-ASN": "Чыганак IP-адрес ASN'ы буенча туры килү", - "IP-CIDR": "IP-адреслар диапазонына туры килү", - "IP-CIDR6": "IPv6 адреслар диапазонына туры килү", - "SRC-IP-CIDR": "Чыганак IP-адреслар диапазонына туры килү", - "IP-SUFFIX": "IP-адрес суффиксына туры килү", - "SRC-IP-SUFFIX": "Чыганак IP-адрес суффиксына туры килү", - "SRC-PORT": "Чыганак портлар диапазонына туры килү", - "DST-PORT": "Максат портлар диапазонына туры килү", - "IN-PORT": "Керүче портка туры килү", - "DSCP": "DSCP тамгалавы (tproxy UDP өчен)", - "PROCESS-NAME": "Процесс исеменә туры килү (Android пакет исеме)", - "PROCESS-PATH": "Процесс юлына туры килү", - "PROCESS-NAME-REGEX": "Процесс исемен регекс белән туры китерү (Android пакет исеме)", - "PROCESS-PATH-REGEX": "Процесс юлын регекс белән туры китерү", - "NETWORK": "Транспорт протоколына (tcp/udp) туры килү", - "UID": "Linux USER ID'га туры килү", - "IN-TYPE": "Керүче тоташу төренә туры килү", - "IN-USER": "Керүче тоташу кулланучысына туры килү", - "IN-NAME": "Керүче тоташу исеменә туры килү", - "SUB-RULE": "Кушымча кагыйдә", - "RULE-SET": "Кагыйдәләр тупланмасына туры килү", - "AND": "Логик ҺӘМ", - "OR": "Логик ЯКИ", - "NOT": "Логик ТҮГЕЛ", - "MATCH": "Барлык сорауларга туры килә" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "System proxy is enabled, your applications will access the network through the proxy", - "systemProxyDisabled": "System proxy is disabled, it is recommended for most users to turn on this option", - "tunModeServiceRequired": "TUN mode requires service mode, please install the service first", - "tunModeEnabled": "TUN mode is enabled, applications will access the network through the virtual network card", - "tunModeDisabled": "TUN mode is disabled, suitable for special applications" - }, - "tooltips": { - "systemProxy": "Системалы прокси көйләүләрен үзгәртү рөхсәтен бирегез. Әгәр рөхсәт алу мөмкин түгел икән, прокси көйләүләрен кулдан үзгәртегез", - "tunMode": "TUN mode can take over all application traffic, suitable for special applications that do not follow the system proxy settings" - } - }, - "clashInfo": { - "title": "Clash Info", - "fields": { - "coreVersion": "Core Version", - "systemProxyAddress": "System Proxy Address", - "mixedPort": "Mixed Port", - "uptime": "Uptime", - "rulesCount": "Rules Count" - } - }, - "systemInfo": { - "title": "System Info", - "fields": { - "osInfo": "OS Info", - "autoLaunch": "Автостарт", - "runningMode": "Running Mode", - "lastCheckUpdate": "Last Check Update", - "vergeVersion": "Verge версиясе" - }, - "actions": { - "settings": "Көйләүләр" - }, - "tooltips": { - "autoLaunchAdmin": "Administrator mode may not support auto launch" - }, - "badges": { - "adminMode": "Administrator Mode", - "serviceMode": "Сервис режимы", - "sidecarMode": "User Mode", - "adminServiceMode": "Admin + Service Mode" - } - }, - "ipInfo": { - "title": "IP Information", - "errors": { - "load": "Failed to get IP info" - }, - "labels": { - "ip": "IP", - "asn": "ASN", - "isp": "ISP", - "org": "ORG", - "location": "Location", - "timezone": "Timezone", - "autoRefresh": "Auto refresh", - "unknown": "Unknown" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "Йөкләү (чыгару) тизлеге", - "downloadSpeed": "Йөкләү тизлеге", - "activeConnections": "Active Connections", - "uploaded": "Чыгарылган", - "downloaded": "Йөкләнгән", - "memoryUsage": "Хәтер куллану" - }, - "legends": { - "upload": "Upload", - "download": "Download" - }, - "patterns": { - "minutes": "{{time}} Minutes" - } - }, - "currentProxy": { - "title": "Current Node", - "actions": { - "refreshDelay": "Задержканы тикшерү" - }, - "labels": { - "globalMode": "Глобаль режим", - "directMode": "Туры режим", - "group": "Group", - "proxy": "Proxy", - "noActiveNode": "No active proxy node" - } - }, - "profile": { - "title": "Профильләр", - "actions": { - "import": "Импорт" - }, - "labels": { - "from": "Каян", - "updateTime": "Яңарту вакыты", - "usedTotal": "Кулланылган / Барлыгы", - "expireTime": "Тамамлану вакыты", - "clickToImport": "Click to import subscription" - } - }, "page": { "title": "Home", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "Website Tests" - }, - "clashMode": { - "errors": { - "communication": "Core communication error" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "System proxy is enabled, your applications will access the network through the proxy", + "systemProxyDisabled": "System proxy is disabled, it is recommended for most users to turn on this option", + "tunModeServiceRequired": "TUN mode requires service mode, please install the service first", + "tunModeEnabled": "TUN mode is enabled, applications will access the network through the virtual network card", + "tunModeDisabled": "TUN mode is disabled, suitable for special applications" + }, + "tooltips": { + "systemProxy": "Системалы прокси көйләүләрен үзгәртү рөхсәтен бирегез. Әгәр рөхсәт алу мөмкин түгел икән, прокси көйләүләрен кулдан үзгәртегез", + "tunMode": "TUN mode can take over all application traffic, suitable for special applications that do not follow the system proxy settings" + } }, - "labels": { - "rule": "Кагыйдәләр режимы", - "global": "Глобаль режим", - "direct": "Туры режим" + "clashInfo": { + "title": "Clash Info", + "fields": { + "coreVersion": "Core Version", + "systemProxyAddress": "System Proxy Address", + "mixedPort": "Mixed Port", + "uptime": "Uptime", + "rulesCount": "Rules Count" + } }, - "descriptions": { - "rule": "Automatically choose proxies according to the rule set.", - "global": "Forward all network requests through the selected proxy.", - "direct": "Bypass the proxy and connect to the internet directly." + "systemInfo": { + "title": "System Info", + "fields": { + "osInfo": "OS Info", + "autoLaunch": "Автостарт", + "runningMode": "Running Mode", + "lastCheckUpdate": "Last Check Update", + "vergeVersion": "Verge версиясе" + }, + "actions": { + "settings": "Көйләүләр" + }, + "tooltips": { + "autoLaunchAdmin": "Administrator mode may not support auto launch" + }, + "badges": { + "adminMode": "Administrator Mode", + "serviceMode": "Сервис режимы", + "sidecarMode": "User Mode", + "adminServiceMode": "Admin + Service Mode" + } + }, + "ipInfo": { + "title": "IP Information", + "labels": { + "ip": "IP", + "asn": "ASN", + "isp": "ISP", + "org": "ORG", + "location": "Location", + "timezone": "Timezone", + "autoRefresh": "Auto refresh", + "unknown": "Unknown" + }, + "errors": { + "load": "IP мәгълүматын алу мөмкин булмады" + } + }, + "currentProxy": { + "title": "Current Node", + "actions": { + "refreshDelay": "Задержканы тикшерү" + }, + "labels": { + "globalMode": "Глобаль режим", + "directMode": "Туры режим", + "group": "Group", + "proxy": "Proxy", + "noActiveNode": "No active proxy node" + } + }, + "tests": { + "title": "Website Tests" + }, + "traffic": { + "metrics": { + "uploadSpeed": "Йөкләү (чыгару) тизлеге", + "downloadSpeed": "Йөкләү тизлеге", + "activeConnections": "Active Connections", + "uploaded": "Чыгарылган", + "downloaded": "Йөкләнгән", + "memoryUsage": "Хәтер куллану" + }, + "legends": { + "upload": "Upload", + "download": "Download" + }, + "patterns": { + "minutes": "{{time}} Minutes" + } + }, + "clashMode": { + "errors": { + "communication": "Core communication error" + }, + "labels": { + "rule": "Кагыйдәләр режимы", + "global": "Глобаль режим", + "direct": "Туры режим" + }, + "descriptions": { + "rule": "Automatically choose proxies according to the rule set.", + "global": "Forward all network requests through the selected proxy.", + "direct": "Bypass the proxy and connect to the internet directly." + } } } }, @@ -306,20 +239,22 @@ "tunMode": "Tun режимы (виртуаль челтәр адаптеры)", "systemProxy": "Системалы прокси" }, - "labels": { - "autoLaunch": "Автостарт", - "silentStart": "Фон режимында башлау" - }, "tooltips": { "autoLaunchAdmin": "Administrator mode may not support auto launch", "silentStart": "Программаны фоновый режимда, тәрәзәсез эшләтеп җибәрү" + }, + "fields": { + "autoLaunch": "Автоматик башлау", + "silentStart": "Тын башлау" + }, + "notifications": { + "tunMode": { + "autoDisabled": "TUN Mode automatically disabled due to service unavailable", + "autoDisableFailed": "Failed to disable TUN Mode automatically" + } } }, "proxyControl": { - "labels": { - "systemProxy": "Системалы прокси", - "tunMode": "Tun режимы (виртуаль челтәр адаптеры)" - }, "tooltips": { "systemProxy": "Системалы прокси көйләүләрен үзгәртү рөхсәтен бирегез. Әгәр рөхсәт алу мөмкин түгел икән, прокси көйләүләрен кулдан үзгәртегез", "tunMode": "Tun режимы бөтен системаның трафигын тотып ала. Аны кабызган очракта системалы проксины аерым кабызу таләп ителми.", @@ -328,6 +263,10 @@ "actions": { "installService": "Хезмәтне урнаштыру", "uninstallService": "Uninstall Service" + }, + "fields": { + "systemProxy": "Системалы прокси", + "tunMode": "Tun режимы (виртуаль челтәр адаптеры)" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "Clash ядросы яңадан башланды", - "versionUpdated": "Ядро версиясе яңартылды" + "versionUpdated": "Ядро версиясе яңартылды", + "changeSuccess": "Ядро уңышлы алыштырылды", + "changeFailed": "Ядро алыштыру уңышсыз булды" + }, + "status": { + "stopping": "Stopping Core...", + "restarting": "Restarting Core..." + }, + "service": { + "status": { + "installing": "Хезмәт урнаштырыла...", + "uninstalling": "Uninstalling Service..." + }, + "notifications": { + "installSuccess": "Сервис уңышлы урнаштырылды", + "uninstallSuccess": "Сервис уңышлы салдырылды" + } + }, + "variants": { + "release": "Рәсми версия", + "alpha": "Альфа-версия" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "Челтәр интерфейсы", - "labels": { + "fields": { "ipAddress": "IP адресы", "macAddress": "MAC адресы" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} updated successfully", - "updateFailed": "Failed to update {{name}}: {{message}}", - "genericError": "Update failed: {{message}}", - "none": "No providers available to update", - "allUpdated": "All providers updated successfully" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "Update with Clash proxy successfully", + "withClashProxyFailed": "Update failed even with Clash proxy" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "Барысын да яңарту", "update": "Яңарту" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "Туры режим" } }, - "strategies": { - "select": "Проксины кулдан сайлау", - "url-test": "URL-тест задержкасына карап прокси сайлау", - "fallback": "Хата булган очракта башка проксига күчү", - "load-balance": "Трафикны баланслау нигезендә прокси тарату", - "relay": "Билгеле прокси чылбыры аша тапшыру" - }, - "policies": { - "DIRECT": "Туры чыгу", - "REJECT": "Сорауларны тоткарлау", - "REJECT-DROP": "Сорауларны кире кагу", - "PASS": "Туры килсә дә, бу кагыйдәне урап узу" + "enums": { + "strategies": { + "select": "Проксины кулдан сайлау", + "url-test": "URL-тест задержкасына карап прокси сайлау", + "fallback": "Хата булган очракта башка проксига күчү", + "load-balance": "Трафикны баланслау нигезендә прокси тарату", + "relay": "Билгеле прокси чылбыры аша тапшыру" + }, + "policies": { + "DIRECT": "Туры чыгу", + "REJECT": "Сорауларны тоткарлау", + "REJECT-DROP": "Сорауларны кире кагу", + "PASS": "Туры килсә дә, бу кагыйдәне урап узу" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "Барысын да яңарту", "update": "Яңарту" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } } + }, + "editor": { + "title": "Кагыйдәләрне үзгәртү", + "form": { + "labels": { + "type": "Кагыйдә төре", + "content": "Кагыйдә эчтәлеге", + "proxyPolicy": "Прокси сәясәте" + }, + "toggles": { + "noResolve": "Резолвсыз" + }, + "actions": { + "prependRule": "Кагыйдәне өскә өстәү", + "appendRule": "Кагыйдәне аска өстәү" + }, + "validation": { + "conditionRequired": "Кагыйдә шарты кирәк", + "invalidRule": "Яраксыз кагыйдә" + } + }, + "ruleTypes": { + "DOMAIN": "Домен исеменең тулы туры килүе", + "DOMAIN-SUFFIX": "Домен суффиксына туры килү", + "DOMAIN-KEYWORD": "Доменда төп сүзгә туры килү", + "DOMAIN-REGEX": "Доменны регекс аша туры китерү", + "GEOSITE": "Geosite исемлегендәге доменга туры килү", + "GEOIP": "IP-адресның ил коды буенча туры килү", + "SRC-GEOIP": "Чыганак IP-адресның ил коды буенча туры килү", + "IP-ASN": "IP-адрес ASN'ы буенча туры килү", + "SRC-IP-ASN": "Чыганак IP-адрес ASN'ы буенча туры килү", + "IP-CIDR": "IP-адреслар диапазонына туры килү", + "IP-CIDR6": "IPv6 адреслар диапазонына туры килү", + "SRC-IP-CIDR": "Чыганак IP-адреслар диапазонына туры килү", + "IP-SUFFIX": "IP-адрес суффиксына туры килү", + "SRC-IP-SUFFIX": "Чыганак IP-адрес суффиксына туры килү", + "SRC-PORT": "Чыганак портлар диапазонына туры килү", + "DST-PORT": "Максат портлар диапазонына туры килү", + "IN-PORT": "Керүче портка туры килү", + "DSCP": "DSCP тамгалавы (tproxy UDP өчен)", + "PROCESS-NAME": "Процесс исеменә туры килү (Android пакет исеме)", + "PROCESS-PATH": "Процесс юлына туры килү", + "PROCESS-NAME-REGEX": "Процесс исемен регекс белән туры китерү (Android пакет исеме)", + "PROCESS-PATH-REGEX": "Процесс юлын регекс белән туры китерү", + "NETWORK": "Транспорт протоколына (tcp/udp) туры килү", + "UID": "Linux USER ID'га туры килү", + "IN-TYPE": "Керүче тоташу төренә туры килү", + "IN-USER": "Керүче тоташу кулланучысына туры килү", + "IN-NAME": "Керүче тоташу исеменә туры килү", + "SUB-RULE": "Кушымча кагыйдә", + "RULE-SET": "Кагыйдәләр тупланмасына туры килү", + "AND": "Логик ҺӘМ", + "OR": "Логик ЯКИ", + "NOT": "Логик ТҮГЕЛ", + "MATCH": "Барлык сорауларга туры килә" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "Скрипт консоле" + }, + "card": { + "labels": { + "from": "Каян", + "updateTime": "Яңарту вакыты", + "usedTotal": "Кулланылган / Барлыгы", + "expireTime": "Тамамлану вакыты", + "clickToImport": "Click to import subscription" + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "Йөкләү (чыгару) тизлеге", - "downloadSpeed": "Йөкләү тизлеге", - "memoryUsage": "Хәтер куллану" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "TUN Mode automatically disabled due to service unavailable", - "autoDisableFailed": "Failed to disable TUN Mode automatically" - } - }, - "labels": { - "releaseVersion": "Рәсми версия", - "alphaVersion": "Альфа-версия" - } - }, - "core": { - "status": { - "stopping": "Stopping Core...", - "restarting": "Restarting Core..." - }, - "notifications": { - "changeSuccess": "Ядро уңышлы алыштырылды", - "changeFailed": "Ядро алыштыру уңышсыз булды" - } - }, - "service": { - "status": { - "installing": "Хезмәт урнаштырыла...", - "uninstalling": "Uninstalling Service..." - }, - "notifications": { - "installSuccess": "Сервис уңышлы урнаштырылды", - "uninstallSuccess": "Сервис уңышлы салдырылды" - } - }, "validation": { "config": { "failed": "Язылу көйләү тикшерүе уңышсыз, көйләү файлын тикшерегез, үзгәрешләр кире кайтарылды, хата:", @@ -1272,11 +1268,5 @@ "keyError": "Merge file key error, changes reverted", "generalError": "Merge file error, changes reverted" } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "Update with Clash proxy successfully", - "withClashProxyFailed": "Update failed even with Clash proxy" - } } } diff --git a/src/locales/zh.json b/src/locales/zh.json index 7448af3c..8b01937b 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -92,167 +92,7 @@ "dark": "深色", "system": "系统" }, - "ruleEditor": { - "title": "编辑规则", - "form": { - "labels": { - "type": "规则类型", - "content": "规则内容", - "proxyPolicy": "代理策略" - }, - "toggles": { - "noResolve": "跳过 DNS 解析" - }, - "actions": { - "prependRule": "添加前置规则", - "appendRule": "添加后置规则" - }, - "validation": { - "conditionRequired": "规则条件缺失", - "invalidRule": "无效规则" - } - }, - "ruleTypes": { - "DOMAIN": "匹配完整域名 (DOMAIN)", - "DOMAIN-SUFFIX": "匹配域名后缀 (DOMAIN-SUFFIX)", - "DOMAIN-KEYWORD": "匹配域名关键字 (DOMAIN-KEYWORD)", - "DOMAIN-REGEX": "匹配域名正则表达式 (DOMAIN-REGEX)", - "GEOSITE": "匹配 Geosite 内的域名 (GEOSITE)", - "GEOIP": "匹配 IP 所属国家代码 (GEOIP)", - "SRC-GEOIP": "匹配来源 IP 所属国家代码 (SRC-GEOIP)", - "IP-ASN": "匹配 IP 所属 ASN (IP-ASN)", - "SRC-IP-ASN": "匹配来源 IP 所属 ASN (SRC-IP-ASN)", - "IP-CIDR": "匹配 IP 地址范围 (IP-CIDR)", - "IP-CIDR6": "匹配 IP 地址范围 (IP-CIDR6)", - "SRC-IP-CIDR": "匹配来源 IP 地址范围 (SRC-IP-CIDR)", - "IP-SUFFIX": "匹配 IP 后缀范围 (IP-SUFFIX)", - "SRC-IP-SUFFIX": "匹配来源 IP 后缀范围 (SRC-IP-SUFFIX)", - "SRC-PORT": "匹配请求来源端口范围 (SRC-PORT)", - "DST-PORT": "匹配请求目标端口范围 (DST-PORT)", - "IN-PORT": "匹配入站端口 (IN-PORT)", - "DSCP": "DSCP 标记(仅限 TPROXY UDP 入站)(DSCP)", - "PROCESS-NAME": "匹配进程名称 (PROCESS-NAME)", - "PROCESS-PATH": "匹配完整进程路径 (PROCESS-PATH)", - "PROCESS-NAME-REGEX": "正则匹配完整进程名称 (PROCESS-NAME-REGEX)", - "PROCESS-PATH-REGEX": "正则匹配完整进程路径 (PROCESS-PATH-REGEX)", - "NETWORK": "匹配传输协议 (TCP/UDP) (NETWORK)", - "UID": "匹配 Linux USER ID (UID)", - "IN-TYPE": "匹配入站类型 (IN-TYPE)", - "IN-USER": "匹配入站用户名 (IN-USER)", - "IN-NAME": "匹配入站名称 (IN-NAME)", - "SUB-RULE": "子规则 (SUB-RULE)", - "RULE-SET": "匹配规则集 (RULE-SET)", - "AND": "逻辑与 (AND)", - "OR": "逻辑或 (OR)", - "NOT": "逻辑非 (NOT)", - "MATCH": "匹配所有请求 (MATCH)" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "系统代理已启用,您的应用将通过代理访问网络", - "systemProxyDisabled": "系统代理已关闭,建议大多数用户打开此选项", - "tunModeServiceRequired": "TUN模式需要服务模式,请先安装服务", - "tunModeEnabled": "TUN 模式已启用,应用将通过虚拟网卡访问网络", - "tunModeDisabled": "TUN 模式已关闭,适用于特殊应用" - }, - "tooltips": { - "systemProxy": "修改操作系统的代理设置,如果开启失败,可手动修改操作系统的代理设置", - "tunMode": "TUN模式可以接管所有应用流量,适用于特殊不遵循系统代理设置的应用" - } - }, - "clashInfo": { - "title": "Clash 信息", - "fields": { - "coreVersion": "内核版本", - "systemProxyAddress": "系统代理地址", - "mixedPort": "混合代理端口", - "uptime": "运行时间", - "rulesCount": "规则数量" - } - }, - "systemInfo": { - "title": "系统信息", - "fields": { - "osInfo": "操作系统信息", - "autoLaunch": "开机自启", - "runningMode": "运行模式", - "lastCheckUpdate": "最后检查更新", - "vergeVersion": "Verge 版本" - }, - "actions": { - "settings": "设置" - }, - "tooltips": { - "autoLaunchAdmin": "管理员模式可能不支持开机自启" - }, - "badges": { - "adminMode": "管理员模式", - "serviceMode": "服务模式", - "sidecarMode": "用户模式", - "adminServiceMode": "管理员 + 服务模式" - } - }, - "ipInfo": { - "title": "IP 信息", - "errors": { - "load": "获取 IP 信息失败" - }, - "labels": { - "ip": "IP", - "asn": "自治域", - "isp": "服务商", - "org": "组织", - "location": "位置", - "timezone": "时区", - "autoRefresh": "自动刷新", - "unknown": "未知" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "上传速度", - "downloadSpeed": "下载速度", - "activeConnections": "活跃连接", - "uploaded": "上传量", - "downloaded": "下载量", - "memoryUsage": "内核占用" - }, - "legends": { - "upload": "上传", - "download": "下载" - }, - "patterns": { - "minutes": "{{time}} 分钟" - } - }, - "currentProxy": { - "title": "当前节点", - "actions": { - "refreshDelay": "延迟测试" - }, - "labels": { - "globalMode": "全局模式", - "directMode": "直连模式", - "group": "代理组", - "proxy": "节点", - "noActiveNode": "暂无激活的代理节点" - } - }, - "profile": { - "title": "订阅", - "actions": { - "import": "导入" - }, - "labels": { - "from": "来自", - "updateTime": "更新时间", - "usedTotal": "已使用 / 总量", - "expireTime": "到期时间", - "clickToImport": "点击导入订阅" - } - }, "page": { "title": "首页", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "网站测试" - }, - "clashMode": { - "errors": { - "communication": "内核通信错误" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "系统代理已启用,您的应用将通过代理访问网络", + "systemProxyDisabled": "系统代理已关闭,建议大多数用户打开此选项", + "tunModeServiceRequired": "TUN模式需要服务模式,请先安装服务", + "tunModeEnabled": "TUN 模式已启用,应用将通过虚拟网卡访问网络", + "tunModeDisabled": "TUN 模式已关闭,适用于特殊应用" + }, + "tooltips": { + "systemProxy": "修改操作系统的代理设置,如果开启失败,可手动修改操作系统的代理设置", + "tunMode": "TUN模式可以接管所有应用流量,适用于特殊不遵循系统代理设置的应用" + } }, - "labels": { - "rule": "规则", - "global": "全局", - "direct": "直连" + "clashInfo": { + "title": "Clash 信息", + "fields": { + "coreVersion": "内核版本", + "systemProxyAddress": "系统代理地址", + "mixedPort": "混合代理端口", + "uptime": "运行时间", + "rulesCount": "规则数量" + } }, - "descriptions": { - "rule": "基于预设规则智能判断流量走向,提供灵活的代理策略", - "global": "所有流量均通过代理服务器,适用于需要全局科学上网的场景", - "direct": "所有流量不经过代理节点,但经过Clash内核转发连接目标服务器,适用于需要通过内核进行分流的特定场景" + "systemInfo": { + "title": "系统信息", + "fields": { + "osInfo": "操作系统信息", + "autoLaunch": "开机自启", + "runningMode": "运行模式", + "lastCheckUpdate": "最后检查更新", + "vergeVersion": "Verge 版本" + }, + "actions": { + "settings": "设置" + }, + "tooltips": { + "autoLaunchAdmin": "管理员模式可能不支持开机自启" + }, + "badges": { + "adminMode": "管理员模式", + "serviceMode": "服务模式", + "sidecarMode": "用户模式", + "adminServiceMode": "管理员 + 服务模式" + } + }, + "ipInfo": { + "title": "IP 信息", + "labels": { + "ip": "IP", + "asn": "自治域", + "isp": "服务商", + "org": "组织", + "location": "位置", + "timezone": "时区", + "autoRefresh": "自动刷新", + "unknown": "未知" + }, + "errors": { + "load": "获取 IP 信息失败" + } + }, + "currentProxy": { + "title": "当前节点", + "actions": { + "refreshDelay": "延迟测试" + }, + "labels": { + "globalMode": "全局模式", + "directMode": "直连模式", + "group": "代理组", + "proxy": "节点", + "noActiveNode": "暂无激活的代理节点" + } + }, + "tests": { + "title": "网站测试" + }, + "traffic": { + "metrics": { + "uploadSpeed": "上传速度", + "downloadSpeed": "下载速度", + "activeConnections": "活跃连接", + "uploaded": "上传量", + "downloaded": "下载量", + "memoryUsage": "内核占用" + }, + "legends": { + "upload": "上传", + "download": "下载" + }, + "patterns": { + "minutes": "{{time}} 分钟" + } + }, + "clashMode": { + "errors": { + "communication": "内核通信错误" + }, + "labels": { + "rule": "规则", + "global": "全局", + "direct": "直连" + }, + "descriptions": { + "rule": "基于预设规则智能判断流量走向,提供灵活的代理策略", + "global": "所有流量均通过代理服务器,适用于需要全局科学上网的场景", + "direct": "所有流量不经过代理节点,但经过Clash内核转发连接目标服务器,适用于需要通过内核进行分流的特定场景" + } } } }, @@ -306,20 +239,22 @@ "tunMode": "虚拟网卡模式", "systemProxy": "系统代理" }, - "labels": { - "autoLaunch": "开机自启", - "silentStart": "静默启动" - }, "tooltips": { "autoLaunchAdmin": "管理员模式可能不支持开机自启", "silentStart": "程序启动时以后台模式运行,不显示程序面板" + }, + "fields": { + "autoLaunch": "开机自启", + "silentStart": "静默启动" + }, + "notifications": { + "tunMode": { + "autoDisabled": "由于服务不可用,TUN 模式已自动关闭", + "autoDisableFailed": "自动关闭 TUN 模式失败" + } } }, "proxyControl": { - "labels": { - "systemProxy": "系统代理", - "tunMode": "虚拟网卡模式" - }, "tooltips": { "systemProxy": "修改操作系统的代理设置,如果开启失败,可手动修改操作系统的代理设置", "tunMode": "TUN(虚拟网卡)模式接管系统所有流量,启用时无须打开系统代理", @@ -328,6 +263,10 @@ "actions": { "installService": "安装服务", "uninstallService": "卸载服务" + }, + "fields": { + "systemProxy": "系统代理", + "tunMode": "虚拟网卡模式" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "已重启 Clash 内核", - "versionUpdated": "内核版本已更新" + "versionUpdated": "内核版本已更新", + "changeSuccess": "内核切换成功", + "changeFailed": "无法切换内核" + }, + "status": { + "stopping": "停止内核中...", + "restarting": "重启内核中..." + }, + "service": { + "status": { + "installing": "安装服务中...", + "uninstalling": "卸载服务中..." + }, + "notifications": { + "installSuccess": "已成功安装服务", + "uninstallSuccess": "已成功卸载服务" + } + }, + "variants": { + "release": "正式版", + "alpha": "预览版" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "网络接口", - "labels": { + "fields": { "ipAddress": "IP 地址", "macAddress": "MAC 地址" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} 更新成功", - "updateFailed": "{{name}} 更新失败: {{message}}", - "genericError": "更新失败: {{message}}", - "none": "没有可更新的 provider", - "allUpdated": "所有 provider 均已更新" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "使用 Clash 代理更新成功", + "withClashProxyFailed": "使用 Clash 代理更新也失败" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "更新全部", "update": "更新" + }, + "notices": { + "updateSuccess": "{{name}} 更新成功", + "updateFailed": "{{name}} 更新失败: {{message}}", + "genericError": "更新失败: {{message}}", + "none": "没有可更新的 provider", + "allUpdated": "所有 provider 均已更新" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "直连模式" } }, - "strategies": { - "select": "手动选择代理", - "url-test": "根据 URL 测试延迟选择代理", - "fallback": "不可用时切换到另一个代理", - "load-balance": "根据负载均衡分配代理", - "relay": "根据定义的代理链传递" - }, - "policies": { - "DIRECT": "直连 (DIRECT)", - "REJECT": "拦截请求 (REJECT)", - "REJECT-DROP": "抛弃请求 (REJECT-DROP)", - "PASS": "跳过此规则 (PASS)" + "enums": { + "strategies": { + "select": "手动选择代理", + "url-test": "根据 URL 测试延迟选择代理", + "fallback": "不可用时切换到另一个代理", + "load-balance": "根据负载均衡分配代理", + "relay": "根据定义的代理链传递" + }, + "policies": { + "DIRECT": "直连 (DIRECT)", + "REJECT": "拦截请求 (REJECT)", + "REJECT-DROP": "抛弃请求 (REJECT-DROP)", + "PASS": "跳过此规则 (PASS)" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "更新全部", "update": "更新" + }, + "notices": { + "updateSuccess": "{{name}} 更新成功", + "updateFailed": "{{name}} 更新失败: {{message}}", + "genericError": "更新失败: {{message}}", + "none": "没有可更新的 provider", + "allUpdated": "所有 provider 均已更新" } } + }, + "editor": { + "title": "编辑规则", + "form": { + "labels": { + "type": "规则类型", + "content": "规则内容", + "proxyPolicy": "代理策略" + }, + "toggles": { + "noResolve": "跳过 DNS 解析" + }, + "actions": { + "prependRule": "添加前置规则", + "appendRule": "添加后置规则" + }, + "validation": { + "conditionRequired": "规则条件缺失", + "invalidRule": "无效规则" + } + }, + "ruleTypes": { + "DOMAIN": "匹配完整域名 (DOMAIN)", + "DOMAIN-SUFFIX": "匹配域名后缀 (DOMAIN-SUFFIX)", + "DOMAIN-KEYWORD": "匹配域名关键字 (DOMAIN-KEYWORD)", + "DOMAIN-REGEX": "匹配域名正则表达式 (DOMAIN-REGEX)", + "GEOSITE": "匹配 Geosite 内的域名 (GEOSITE)", + "GEOIP": "匹配 IP 所属国家代码 (GEOIP)", + "SRC-GEOIP": "匹配来源 IP 所属国家代码 (SRC-GEOIP)", + "IP-ASN": "匹配 IP 所属 ASN (IP-ASN)", + "SRC-IP-ASN": "匹配来源 IP 所属 ASN (SRC-IP-ASN)", + "IP-CIDR": "匹配 IP 地址范围 (IP-CIDR)", + "IP-CIDR6": "匹配 IP 地址范围 (IP-CIDR6)", + "SRC-IP-CIDR": "匹配来源 IP 地址范围 (SRC-IP-CIDR)", + "IP-SUFFIX": "匹配 IP 后缀范围 (IP-SUFFIX)", + "SRC-IP-SUFFIX": "匹配来源 IP 后缀范围 (SRC-IP-SUFFIX)", + "SRC-PORT": "匹配请求来源端口范围 (SRC-PORT)", + "DST-PORT": "匹配请求目标端口范围 (DST-PORT)", + "IN-PORT": "匹配入站端口 (IN-PORT)", + "DSCP": "DSCP 标记(仅限 TPROXY UDP 入站)(DSCP)", + "PROCESS-NAME": "匹配进程名称 (PROCESS-NAME)", + "PROCESS-PATH": "匹配完整进程路径 (PROCESS-PATH)", + "PROCESS-NAME-REGEX": "正则匹配完整进程名称 (PROCESS-NAME-REGEX)", + "PROCESS-PATH-REGEX": "正则匹配完整进程路径 (PROCESS-PATH-REGEX)", + "NETWORK": "匹配传输协议 (TCP/UDP) (NETWORK)", + "UID": "匹配 Linux USER ID (UID)", + "IN-TYPE": "匹配入站类型 (IN-TYPE)", + "IN-USER": "匹配入站用户名 (IN-USER)", + "IN-NAME": "匹配入站名称 (IN-NAME)", + "SUB-RULE": "子规则 (SUB-RULE)", + "RULE-SET": "匹配规则集 (RULE-SET)", + "AND": "逻辑与 (AND)", + "OR": "逻辑或 (OR)", + "NOT": "逻辑非 (NOT)", + "MATCH": "匹配所有请求 (MATCH)" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "脚本控制台输出" + }, + "card": { + "labels": { + "from": "来自", + "updateTime": "更新时间", + "usedTotal": "已使用 / 总量", + "expireTime": "到期时间", + "clickToImport": "点击导入订阅" + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "上传速度", - "downloadSpeed": "下载速度", - "memoryUsage": "内核占用" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "由于服务不可用,TUN 模式已自动关闭", - "autoDisableFailed": "自动关闭 TUN 模式失败" - } - }, - "labels": { - "releaseVersion": "正式版", - "alphaVersion": "预览版" - } - }, - "core": { - "status": { - "stopping": "停止内核中...", - "restarting": "重启内核中..." - }, - "notifications": { - "changeSuccess": "内核切换成功", - "changeFailed": "无法切换内核" - } - }, - "service": { - "status": { - "installing": "安装服务中...", - "uninstalling": "卸载服务中..." - }, - "notifications": { - "installSuccess": "已成功安装服务", - "uninstallSuccess": "已成功卸载服务" - } - }, "validation": { "config": { "failed": "订阅配置校验失败,请检查订阅配置文件,变更已撤销,错误详情:", @@ -1272,11 +1268,5 @@ "keyError": "覆写文件键错误,变更已撤销", "generalError": "覆写文件错误,变更已撤销" } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "使用 Clash 代理更新成功", - "withClashProxyFailed": "使用 Clash 代理更新也失败" - } } } diff --git a/src/locales/zhtw.json b/src/locales/zhtw.json index e7a579bf..cf2157dd 100644 --- a/src/locales/zhtw.json +++ b/src/locales/zhtw.json @@ -92,167 +92,7 @@ "dark": "深色", "system": "系統" }, - "ruleEditor": { - "title": "編輯規則", - "form": { - "labels": { - "type": "規則類型", - "content": "規則內容", - "proxyPolicy": "代理策略" - }, - "toggles": { - "noResolve": "跳過 DNS 解析" - }, - "actions": { - "prependRule": "新增前置規則", - "appendRule": "新增後置規則" - }, - "validation": { - "conditionRequired": "規則條件為必填", - "invalidRule": "無效規則" - } - }, - "ruleTypes": { - "DOMAIN": "配對完整網域 (DOMAIN)", - "DOMAIN-SUFFIX": "配對網域後綴 (DOMAIN-SUFFIX)", - "DOMAIN-KEYWORD": "配對網域關鍵字 (DOMAIN-KEYWORD)", - "DOMAIN-REGEX": "配對網域正規表示式 (DOMAIN-REGEX)", - "GEOSITE": "配對 Geosite 內的網域 (GEOSITE)", - "GEOIP": "配對 IP 所屬國家代碼 (GEOIP)", - "SRC-GEOIP": "配對來源 IP 所屬國家代碼 (SRC-GEOIP)", - "IP-ASN": "配對 IP 所屬 ASN (IP-ASN)", - "SRC-IP-ASN": "配對來源 IP 所屬 ASN (SRC-IP-ASN)", - "IP-CIDR": "配對 IP 位址範圍 (IP-CIDR)", - "IP-CIDR6": "配對 IP 位址範圍 (IP-CIDR6)", - "SRC-IP-CIDR": "配對來源 IP 位址範圍 (SRC-IP-CIDR)", - "IP-SUFFIX": "配對 IP 後綴範圍 (IP-SUFFIX)", - "SRC-IP-SUFFIX": "配對來源 IP 後綴範圍 (SRC-IP-SUFFIX)", - "SRC-PORT": "配對請求來源連接埠範圍 (SRC-PORT)", - "DST-PORT": "配對請求目標連接埠範圍 (DST-PORT)", - "IN-PORT": "配對傳入連接埠 (IN-PORT)", - "DSCP": "DSCP標記(僅限 TPROXY UDP 傳入)(DSCP)", - "PROCESS-NAME": "配對程序名稱 (PROCESS-NAME)", - "PROCESS-PATH": "配對完整程序路徑 (PROCESS-PATH)", - "PROCESS-NAME-REGEX": "正規表示式配對完整程序名稱 (PROCESS-NAME-REGEX)", - "PROCESS-PATH-REGEX": "正規表示式配對完整程序路徑 (PROCESS-PATH-REGEX)", - "NETWORK": "配對傳輸協定 (TCP/UDP) (NETWORK)", - "UID": "配對 Linux 使用者 ID (UID)", - "IN-TYPE": "配對傳入類型 (IN-TYPE)", - "IN-USER": "配對傳入使用者名稱 (IN-USER)", - "IN-NAME": "配對傳入名稱 (IN-NAME)", - "SUB-RULE": "子規則 (SUB-RULE)", - "RULE-SET": "配對規則集 (RULE-SET)", - "AND": "邏輯與 (AND)", - "OR": "邏輯或 (OR)", - "NOT": "邏輯非 (NOT)", - "MATCH": "配對所有請求 (MATCH)" - } - }, "home": { - "proxyTunCard": { - "status": { - "systemProxyEnabled": "系統代理已啟用,您的應用程式將透過代理存取網路", - "systemProxyDisabled": "系統代理已關閉,建議大多數使用者開啟此選項", - "tunModeServiceRequired": "虛擬網路介面卡模式需要服務模式,請先安裝服務", - "tunModeEnabled": "虛擬網路介面卡模式已啟用,應用程式將透過虛擬網路介面卡存取網路", - "tunModeDisabled": "虛擬網路介面卡模式已關閉,適用於特殊應用程式" - }, - "tooltips": { - "systemProxy": "修改作業系統的代理設定,如果開啟失敗,可手動修改作業系統的代理設定", - "tunMode": "虛擬網路介面卡模式可以接管所有應用程式流量,適用於不遵循系統代理設定的特殊應用程式" - } - }, - "clashInfo": { - "title": "Clash 資訊", - "fields": { - "coreVersion": "內核版本", - "systemProxyAddress": "系統代理位址", - "mixedPort": "Mixed Port", - "uptime": "執行時間", - "rulesCount": "規則數量" - } - }, - "systemInfo": { - "title": "系統資訊", - "fields": { - "osInfo": "作業系統資訊", - "autoLaunch": "開機自啟", - "runningMode": "執行模式", - "lastCheckUpdate": "最後檢查更新", - "vergeVersion": "Verge 版本" - }, - "actions": { - "settings": "設定" - }, - "tooltips": { - "autoLaunchAdmin": "管理員模式可能不支援開機自啟" - }, - "badges": { - "adminMode": "管理員模式", - "serviceMode": "服務模式", - "sidecarMode": "使用者模式", - "adminServiceMode": "系統管理員 + 服務模式" - } - }, - "ipInfo": { - "title": "IP資訊", - "errors": { - "load": "取得IP資訊失敗" - }, - "labels": { - "ip": "IP", - "asn": "自治系統", - "isp": "網際網路服務供應商", - "org": "組織", - "location": "位置", - "timezone": "時區", - "autoRefresh": "自動重整", - "unknown": "未知" - } - }, - "traffic": { - "metrics": { - "uploadSpeed": "上傳速度", - "downloadSpeed": "下載速度", - "activeConnections": "作用中連線", - "uploaded": "上傳量", - "downloaded": "下載量", - "memoryUsage": "內核佔用" - }, - "legends": { - "upload": "上傳", - "download": "下載" - }, - "patterns": { - "minutes": "{{time}} Minutes" - } - }, - "currentProxy": { - "title": "目前節點", - "actions": { - "refreshDelay": "延遲測試" - }, - "labels": { - "globalMode": "全域模式", - "directMode": "直連模式", - "group": "代理組", - "proxy": "節點", - "noActiveNode": "暫無作用中的代理節點" - } - }, - "profile": { - "title": "訂閱", - "actions": { - "import": "匯入" - }, - "labels": { - "from": "來自", - "updateTime": "更新時間", - "usedTotal": "已使用 / 總量", - "expireTime": "到期時間", - "clickToImport": "點擊匯入訂閱" - } - }, "page": { "title": "首頁", "tooltips": { @@ -280,22 +120,115 @@ } } }, - "tests": { - "title": "網站測試" - }, - "clashMode": { - "errors": { - "communication": "內核通信錯誤" + "cards": { + "proxyTun": { + "status": { + "systemProxyEnabled": "系統代理已啟用,您的應用程式將透過代理存取網路", + "systemProxyDisabled": "系統代理已關閉,建議大多數使用者開啟此選項", + "tunModeServiceRequired": "虛擬網路介面卡模式需要服務模式,請先安裝服務", + "tunModeEnabled": "虛擬網路介面卡模式已啟用,應用程式將透過虛擬網路介面卡存取網路", + "tunModeDisabled": "虛擬網路介面卡模式已關閉,適用於特殊應用程式" + }, + "tooltips": { + "systemProxy": "修改作業系統的代理設定,如果開啟失敗,可手動修改作業系統的代理設定", + "tunMode": "虛擬網路介面卡模式可以接管所有應用程式流量,適用於不遵循系統代理設定的特殊應用程式" + } }, - "labels": { - "rule": "規則模式", - "global": "全域模式", - "direct": "直連模式" + "clashInfo": { + "title": "Clash 資訊", + "fields": { + "coreVersion": "內核版本", + "systemProxyAddress": "系統代理位址", + "mixedPort": "Mixed Port", + "uptime": "執行時間", + "rulesCount": "規則數量" + } }, - "descriptions": { - "rule": "依照規則自動選擇代理。", - "global": "將所有網路請求轉送至所選代理。", - "direct": "略過代理,直接連線至網際網路。" + "systemInfo": { + "title": "系統資訊", + "fields": { + "osInfo": "作業系統資訊", + "autoLaunch": "開機自啟", + "runningMode": "執行模式", + "lastCheckUpdate": "最後檢查更新", + "vergeVersion": "Verge 版本" + }, + "actions": { + "settings": "設定" + }, + "tooltips": { + "autoLaunchAdmin": "管理員模式可能不支援開機自啟" + }, + "badges": { + "adminMode": "管理員模式", + "serviceMode": "服務模式", + "sidecarMode": "使用者模式", + "adminServiceMode": "系統管理員 + 服務模式" + } + }, + "ipInfo": { + "title": "IP資訊", + "labels": { + "ip": "IP", + "asn": "自治系統", + "isp": "網際網路服務供應商", + "org": "組織", + "location": "位置", + "timezone": "時區", + "autoRefresh": "自動重整", + "unknown": "未知" + }, + "errors": { + "load": "獲取 IP 資訊失敗" + } + }, + "currentProxy": { + "title": "目前節點", + "actions": { + "refreshDelay": "延遲測試" + }, + "labels": { + "globalMode": "全域模式", + "directMode": "直連模式", + "group": "代理組", + "proxy": "節點", + "noActiveNode": "暫無作用中的代理節點" + } + }, + "tests": { + "title": "網站測試" + }, + "traffic": { + "metrics": { + "uploadSpeed": "上傳速度", + "downloadSpeed": "下載速度", + "activeConnections": "作用中連線", + "uploaded": "上傳量", + "downloaded": "下載量", + "memoryUsage": "內核佔用" + }, + "legends": { + "upload": "上傳", + "download": "下載" + }, + "patterns": { + "minutes": "{{time}} Minutes" + } + }, + "clashMode": { + "errors": { + "communication": "內核通信錯誤" + }, + "labels": { + "rule": "規則模式", + "global": "全域模式", + "direct": "直連模式" + }, + "descriptions": { + "rule": "依照規則自動選擇代理。", + "global": "將所有網路請求轉送至所選代理。", + "direct": "略過代理,直接連線至網際網路。" + } } } }, @@ -306,20 +239,22 @@ "tunMode": "虛擬網路介面卡模式", "systemProxy": "系統代理" }, - "labels": { - "autoLaunch": "開機自啟", - "silentStart": "靜默啟動" - }, "tooltips": { "autoLaunchAdmin": "管理員模式可能不支援開機自啟", "silentStart": "程序啟動時以後台模式執行,不顯示程序面板" + }, + "fields": { + "autoLaunch": "開機自啟", + "silentStart": "靜默啟動" + }, + "notifications": { + "tunMode": { + "autoDisabled": "由於服務不可使用,虛擬網路介面卡模式已自動停用", + "autoDisableFailed": "自動停用虛擬網路介面卡模式失敗" + } } }, "proxyControl": { - "labels": { - "systemProxy": "系統代理", - "tunMode": "虛擬網路介面卡模式" - }, "tooltips": { "systemProxy": "修改作業系統的代理設定,如果開啟失敗,可手動修改作業系統的代理設定", "tunMode": "TUN(虛擬網路介面卡)模式接管系統所有流量,啟用時無需開啟系統代理", @@ -328,6 +263,10 @@ "actions": { "installService": "安裝服務", "uninstallService": "解除安裝服務" + }, + "fields": { + "systemProxy": "系統代理", + "tunMode": "虛擬網路介面卡模式" } }, "externalController": { @@ -423,7 +362,27 @@ }, "notifications": { "restartSuccess": "已重啟 Clash 內核", - "versionUpdated": "內核版本已更新" + "versionUpdated": "內核版本已更新", + "changeSuccess": "內核切換成功", + "changeFailed": "無法切換內核" + }, + "status": { + "stopping": "內核停止中...", + "restarting": "內核重啟中..." + }, + "service": { + "status": { + "installing": "安裝服務中...", + "uninstalling": "服務解除安裝中..." + }, + "notifications": { + "installSuccess": "已成功安裝服務", + "uninstallSuccess": "已成功解除安裝服務" + } + }, + "variants": { + "release": "正式版", + "alpha": "預覽版" } }, "liteMode": { @@ -829,19 +788,16 @@ }, "networkInterface": { "title": "網路介面", - "labels": { + "fields": { "ipAddress": "IP 位址", "macAddress": "MAC 位址" } - } - }, - "providers": { - "notices": { - "updateSuccess": "{{name}} updated successfully", - "updateFailed": "Failed to update {{name}}: {{message}}", - "genericError": "Update failed: {{message}}", - "none": "No providers available to update", - "allUpdated": "All providers updated successfully" + }, + "updater": { + "notifications": { + "withClashProxySuccess": "使用 Clash 代理更新成功", + "withClashProxyFailed": "使用 Clash 代理更新也失敗" + } } }, "test": { @@ -901,6 +857,13 @@ "actions": { "updateAll": "全部更新", "update": "更新" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } }, "rules": { @@ -940,18 +903,20 @@ "directMode": "直連模式" } }, - "strategies": { - "select": "手動選擇代理", - "url-test": "根據網址測試延遲選擇代理", - "fallback": "切換至另一個備用代理", - "load-balance": "根據負載平衡分配代理", - "relay": "根據定義的代理鏈傳送" - }, - "policies": { - "DIRECT": "直連 (DIRECT)", - "REJECT": "拒絕請求 (REJECT)", - "REJECT-DROP": "丟棄請求 (REJECT-DROP)", - "PASS": "跳過此規則 (PASS)" + "enums": { + "strategies": { + "select": "手動選擇代理", + "url-test": "根據網址測試延遲選擇代理", + "fallback": "切換至另一個備用代理", + "load-balance": "根據負載平衡分配代理", + "relay": "根據定義的代理鏈傳送" + }, + "policies": { + "DIRECT": "直連 (DIRECT)", + "REJECT": "拒絕請求 (REJECT)", + "REJECT-DROP": "丟棄請求 (REJECT-DROP)", + "PASS": "跳過此規則 (PASS)" + } } }, "rules": { @@ -963,8 +928,71 @@ "actions": { "updateAll": "全部更新", "update": "更新" + }, + "notices": { + "updateSuccess": "{{name}} updated successfully", + "updateFailed": "Failed to update {{name}}: {{message}}", + "genericError": "Update failed: {{message}}", + "none": "No providers available to update", + "allUpdated": "All providers updated successfully" } } + }, + "editor": { + "title": "編輯規則", + "form": { + "labels": { + "type": "規則類型", + "content": "規則內容", + "proxyPolicy": "代理策略" + }, + "toggles": { + "noResolve": "跳過 DNS 解析" + }, + "actions": { + "prependRule": "新增前置規則", + "appendRule": "新增後置規則" + }, + "validation": { + "conditionRequired": "規則條件為必填", + "invalidRule": "無效規則" + } + }, + "ruleTypes": { + "DOMAIN": "配對完整網域 (DOMAIN)", + "DOMAIN-SUFFIX": "配對網域後綴 (DOMAIN-SUFFIX)", + "DOMAIN-KEYWORD": "配對網域關鍵字 (DOMAIN-KEYWORD)", + "DOMAIN-REGEX": "配對網域正規表示式 (DOMAIN-REGEX)", + "GEOSITE": "配對 Geosite 內的網域 (GEOSITE)", + "GEOIP": "配對 IP 所屬國家代碼 (GEOIP)", + "SRC-GEOIP": "配對來源 IP 所屬國家代碼 (SRC-GEOIP)", + "IP-ASN": "配對 IP 所屬 ASN (IP-ASN)", + "SRC-IP-ASN": "配對來源 IP 所屬 ASN (SRC-IP-ASN)", + "IP-CIDR": "配對 IP 位址範圍 (IP-CIDR)", + "IP-CIDR6": "配對 IP 位址範圍 (IP-CIDR6)", + "SRC-IP-CIDR": "配對來源 IP 位址範圍 (SRC-IP-CIDR)", + "IP-SUFFIX": "配對 IP 後綴範圍 (IP-SUFFIX)", + "SRC-IP-SUFFIX": "配對來源 IP 後綴範圍 (SRC-IP-SUFFIX)", + "SRC-PORT": "配對請求來源連接埠範圍 (SRC-PORT)", + "DST-PORT": "配對請求目標連接埠範圍 (DST-PORT)", + "IN-PORT": "配對傳入連接埠 (IN-PORT)", + "DSCP": "DSCP標記(僅限 TPROXY UDP 傳入)(DSCP)", + "PROCESS-NAME": "配對程序名稱 (PROCESS-NAME)", + "PROCESS-PATH": "配對完整程序路徑 (PROCESS-PATH)", + "PROCESS-NAME-REGEX": "正規表示式配對完整程序名稱 (PROCESS-NAME-REGEX)", + "PROCESS-PATH-REGEX": "正規表示式配對完整程序路徑 (PROCESS-PATH-REGEX)", + "NETWORK": "配對傳輸協定 (TCP/UDP) (NETWORK)", + "UID": "配對 Linux 使用者 ID (UID)", + "IN-TYPE": "配對傳入類型 (IN-TYPE)", + "IN-USER": "配對傳入使用者名稱 (IN-USER)", + "IN-NAME": "配對傳入名稱 (IN-NAME)", + "SUB-RULE": "子規則 (SUB-RULE)", + "RULE-SET": "配對規則集 (RULE-SET)", + "AND": "邏輯與 (AND)", + "OR": "邏輯或 (OR)", + "NOT": "邏輯非 (NOT)", + "MATCH": "配對所有請求 (MATCH)" + } } }, "profiles": { @@ -1135,6 +1163,15 @@ }, "logViewer": { "title": "指令碼控制台輸出" + }, + "card": { + "labels": { + "from": "來自", + "updateTime": "更新時間", + "usedTotal": "已使用 / 總量", + "expireTime": "到期時間", + "clickToImport": "點擊匯入訂閱" + } } }, "connections": { @@ -1205,47 +1242,6 @@ } } }, - "layout": { - "traffic": { - "labels": { - "uploadSpeed": "上傳速度", - "downloadSpeed": "下載速度", - "memoryUsage": "內核佔用" - } - } - }, - "system": { - "notifications": { - "tunMode": { - "autoDisabled": "由於服務不可使用,虛擬網路介面卡模式已自動停用", - "autoDisableFailed": "自動停用虛擬網路介面卡模式失敗" - } - }, - "labels": { - "releaseVersion": "正式版", - "alphaVersion": "預覽版" - } - }, - "core": { - "status": { - "stopping": "內核停止中...", - "restarting": "內核重啟中..." - }, - "notifications": { - "changeSuccess": "內核切換成功", - "changeFailed": "無法切換內核" - } - }, - "service": { - "status": { - "installing": "安裝服務中...", - "uninstalling": "服務解除安裝中..." - }, - "notifications": { - "installSuccess": "已成功安裝服務", - "uninstallSuccess": "已成功解除安裝服務" - } - }, "validation": { "config": { "failed": "訂閱配置校驗失敗,請檢查訂閱配置文件,變更已撤銷,錯誤詳情:", @@ -1272,11 +1268,5 @@ "keyError": "覆寫檔案鍵錯誤,變更已撤銷", "generalError": "覆寫檔案錯誤,變更已撤銷" } - }, - "updates": { - "notifications": { - "withClashProxySuccess": "使用 Clash 代理更新成功", - "withClashProxyFailed": "使用 Clash 代理更新也失敗" - } } } diff --git a/src/pages/_layout/notificationHandlers.ts b/src/pages/_layout/notificationHandlers.ts index a8456ef0..61cebde7 100644 --- a/src/pages/_layout/notificationHandlers.ts +++ b/src/pages/_layout/notificationHandlers.ts @@ -20,9 +20,15 @@ export const handleNoticeMessage = ( }, "set_config::error": () => showNotice.error(msg), update_with_clash_proxy: () => - showNotice.success("updates.notifications.withClashProxySuccess", msg), + showNotice.success( + "settings.updater.notifications.withClashProxySuccess", + msg, + ), update_failed_even_with_clash: () => - showNotice.error("updates.notifications.withClashProxyFailed", msg), + showNotice.error( + "settings.updater.notifications.withClashProxyFailed", + msg, + ), update_failed: () => showNotice.error(msg), "config_validate::boot_error": () => showNotice.error("validation.config.bootFailed", msg), @@ -61,9 +67,9 @@ export const handleNoticeMessage = ( "config_validate::merge_error": () => showNotice.error("validation.merge.generalError", msg), "config_core::change_success": () => - showNotice.success("core.notifications.changeSuccess", msg), + showNotice.success("settings.clash.notifications.changeSuccess", msg), "config_core::change_error": () => - showNotice.error("core.notifications.changeFailed", msg), + showNotice.error("settings.clash.notifications.changeFailed", msg), }; const handler = handlers[status];