diff --git a/src/components/base/base-empty.tsx b/src/components/base/base-empty.tsx
index dcf04bbb..275f43ef 100644
--- a/src/components/base/base-empty.tsx
+++ b/src/components/base/base-empty.tsx
@@ -1,16 +1,23 @@
import { InboxRounded } from "@mui/icons-material";
import { alpha, Box, Typography } from "@mui/material";
+import type { ReactNode } from "react";
import { useTranslation } from "react-i18next";
interface Props {
- text?: React.ReactNode;
- extra?: React.ReactNode;
+ text?: ReactNode;
+ textKey?: string;
+ extra?: ReactNode;
}
-export const BaseEmpty = (props: Props) => {
- const { text = "Empty", extra } = props;
+export const BaseEmpty = ({
+ text,
+ textKey = "common.states.empty",
+ extra,
+}: Props) => {
const { t } = useTranslation();
+ const resolvedText: ReactNode = text !== undefined ? text : t(textKey);
+
return (
({
@@ -24,7 +31,7 @@ export const BaseEmpty = (props: Props) => {
})}
>
- {t(`${text}`)}
+ {resolvedText}
{extra}
);
diff --git a/src/components/home/clash-mode-card.tsx b/src/components/home/clash-mode-card.tsx
index 96fab34f..d8cd3982 100644
--- a/src/components/home/clash-mode-card.tsx
+++ b/src/components/home/clash-mode-card.tsx
@@ -13,25 +13,48 @@ import { useVerge } from "@/hooks/use-verge";
import { useAppData } from "@/providers/app-data-context";
import { patchClashMode } from "@/services/cmds";
+const CLASH_MODES = ["rule", "global", "direct"] as const;
+type ClashMode = (typeof CLASH_MODES)[number];
+
+const isClashMode = (mode: string): mode is ClashMode =>
+ (CLASH_MODES as readonly string[]).includes(mode);
+
+const MODE_META: Record = {
+ rule: {
+ label: "home.clashMode.labels.rule",
+ description: "home.clashMode.descriptions.rule",
+ },
+ global: {
+ label: "home.clashMode.labels.global",
+ description: "home.clashMode.descriptions.global",
+ },
+ direct: {
+ label: "home.clashMode.labels.direct",
+ description: "home.clashMode.descriptions.direct",
+ },
+};
+
export const ClashModeCard = () => {
const { t } = useTranslation();
const { verge } = useVerge();
const { clashConfig, refreshClashConfig } = useAppData();
// 支持的模式列表
- const modeList = useMemo(() => ["rule", "global", "direct"] as const, []);
+ const modeList = CLASH_MODES;
// 直接使用API返回的模式,不维护本地状态
const currentMode = clashConfig?.mode?.toLowerCase();
+ const currentModeKey =
+ typeof currentMode === "string" && isClashMode(currentMode)
+ ? currentMode
+ : undefined;
const modeDescription = useMemo(() => {
- if (typeof currentMode === "string" && currentMode.length > 0) {
- return t(
- `${currentMode[0].toLocaleUpperCase()}${currentMode.slice(1)} Mode Description`,
- );
+ if (currentModeKey) {
+ return t(MODE_META[currentModeKey].description);
}
return t("home.clashMode.errors.communication");
- }, [currentMode, t]);
+ }, [currentModeKey, t]);
// 模式图标映射
const modeIcons = useMemo(
@@ -44,8 +67,8 @@ export const ClashModeCard = () => {
);
// 切换模式的处理函数
- const onChangeMode = useLockFn(async (mode: string) => {
- if (mode === currentMode) return;
+ const onChangeMode = useLockFn(async (mode: ClashMode) => {
+ if (mode === currentModeKey) return;
if (verge?.auto_close_connection) {
closeAllConnections();
}
@@ -60,7 +83,7 @@ export const ClashModeCard = () => {
});
// 按钮样式
- const buttonStyles = (mode: string) => ({
+ const buttonStyles = (mode: ClashMode) => ({
cursor: "pointer",
px: 2,
py: 1.2,
@@ -68,8 +91,8 @@ export const ClashModeCard = () => {
alignItems: "center",
justifyContent: "center",
gap: 1,
- bgcolor: mode === currentMode ? "primary.main" : "background.paper",
- color: mode === currentMode ? "primary.contrastText" : "text.primary",
+ bgcolor: mode === currentModeKey ? "primary.main" : "background.paper",
+ color: mode === currentModeKey ? "primary.contrastText" : "text.primary",
borderRadius: 1.5,
transition: "all 0.2s ease-in-out",
position: "relative",
@@ -82,7 +105,7 @@ export const ClashModeCard = () => {
transform: "translateY(1px)",
},
"&::after":
- mode === currentMode
+ mode === currentModeKey
? {
content: '""',
position: "absolute",
@@ -128,7 +151,7 @@ export const ClashModeCard = () => {
{modeList.map((mode) => (
onChangeMode(mode)}
sx={buttonStyles(mode)}
>
@@ -137,10 +160,10 @@ export const ClashModeCard = () => {
variant="body2"
sx={{
textTransform: "capitalize",
- fontWeight: mode === currentMode ? 600 : 400,
+ fontWeight: mode === currentModeKey ? 600 : 400,
}}
>
- {t(mode)}
+ {t(MODE_META[mode].label)}
))}
diff --git a/src/components/home/system-info-card.tsx b/src/components/home/system-info-card.tsx
index 0f474218..0fa1c32e 100644
--- a/src/components/home/system-info-card.tsx
+++ b/src/components/home/system-info-card.tsx
@@ -174,7 +174,9 @@ export const SystemInfoCard = () => {
try {
const info = await checkUpdate();
if (!info?.available) {
- showNotice.success("Currently on the Latest Version");
+ showNotice.success(
+ t("settings.verge.advanced.notifications.latestVersion"),
+ );
} else {
showNotice.info("Update Available", 2000);
goToSettings();
diff --git a/src/components/profile/editor-viewer.tsx b/src/components/profile/editor-viewer.tsx
index dd4591be..9b742f26 100644
--- a/src/components/profile/editor-viewer.tsx
+++ b/src/components/profile/editor-viewer.tsx
@@ -245,7 +245,9 @@ export const EditorViewer = (props: Props) => {
appWindow.toggleMaximize().then(editorResize)}
>
{isMaximized ? : }
diff --git a/src/components/proxy/proxy-groups.tsx b/src/components/proxy/proxy-groups.tsx
index a5ae5331..84e771c4 100644
--- a/src/components/proxy/proxy-groups.tsx
+++ b/src/components/proxy/proxy-groups.tsx
@@ -372,7 +372,7 @@ export const ProxyGroups = (props: Props) => {
}, [renderList]);
if (mode === "direct") {
- return ;
+ return ;
}
if (isChainMode) {
diff --git a/src/components/setting/mods/clash-core-viewer.tsx b/src/components/setting/mods/clash-core-viewer.tsx
index 8756766b..596162c5 100644
--- a/src/components/setting/mods/clash-core-viewer.tsx
+++ b/src/components/setting/mods/clash-core-viewer.tsx
@@ -75,7 +75,7 @@ export function ClashCoreViewer({ ref }: { ref?: Ref }) {
try {
setRestarting(true);
await restartCore();
- showNotice.success("Clash Core Restarted");
+ showNotice.success(t("settings.clash.notifications.restartSuccess"));
setRestarting(false);
} catch (err) {
setRestarting(false);
@@ -88,7 +88,7 @@ export function ClashCoreViewer({ ref }: { ref?: Ref }) {
setUpgrading(true);
await upgradeCore();
setUpgrading(false);
- showNotice.success("Core Version Updated");
+ showNotice.success(t("settings.clash.notifications.versionUpdated"));
} catch (err: any) {
setUpgrading(false);
const errMsg = err?.response?.data?.message ?? String(err);
diff --git a/src/components/setting/mods/hotkey-viewer.tsx b/src/components/setting/mods/hotkey-viewer.tsx
index a150e05d..4a01d081 100644
--- a/src/components/setting/mods/hotkey-viewer.tsx
+++ b/src/components/setting/mods/hotkey-viewer.tsx
@@ -24,7 +24,17 @@ const HOTKEY_FUNC = [
"toggle_system_proxy",
"toggle_tun_mode",
"entry_lightweight_mode",
-];
+] as const;
+
+const HOTKEY_FUNC_LABELS: Record<(typeof HOTKEY_FUNC)[number], string> = {
+ open_or_close_dashboard: "settings.hotkey.functions.openOrCloseDashboard",
+ clash_mode_rule: "settings.hotkey.functions.rule",
+ clash_mode_global: "settings.hotkey.functions.global",
+ clash_mode_direct: "settings.hotkey.functions.direct",
+ toggle_system_proxy: "settings.hotkey.functions.toggleSystemProxy",
+ toggle_tun_mode: "settings.hotkey.functions.toggleTunMode",
+ entry_lightweight_mode: "settings.hotkey.functions.entryLightweightMode",
+};
export const HotkeyViewer = forwardRef((props, ref) => {
const { t } = useTranslation();
@@ -108,7 +118,7 @@ export const HotkeyViewer = forwardRef((props, ref) => {
{HOTKEY_FUNC.map((func) => (
- {t(func)}
+ {t(HOTKEY_FUNC_LABELS[func])}
setHotkeyMap((m) => ({ ...m, [func]: v }))}
diff --git a/src/components/setting/mods/network-interface-viewer.tsx b/src/components/setting/mods/network-interface-viewer.tsx
index a6b48851..b12e6d93 100644
--- a/src/components/setting/mods/network-interface-viewer.tsx
+++ b/src/components/setting/mods/network-interface-viewer.tsx
@@ -133,7 +133,7 @@ const AddressDisplay = ({
size="small"
onClick={async () => {
await writeText(content);
- showNotice.success("Copy Success");
+ showNotice.success("settings.common.notifications.copySuccess");
}}
>
diff --git a/src/locales/ar.json b/src/locales/ar.json
index 86d4b618..7b9088ba 100644
--- a/src/locales/ar.json
+++ b/src/locales/ar.json
@@ -1,7 +1,4 @@
{
- "Maximize": "تكبير",
- "Minimize": "تصغير",
- "Empty": "فارغ",
"Proxies": "الوكلاء",
"rule": "قاعدة",
"global": "عالمي",
@@ -65,13 +62,6 @@
"theme.light": "سمة فاتحة",
"theme.dark": "سمة داكنة",
"theme.system": "سمة النظام",
- "Copy Success": "تم النسخ بنجاح",
- "open_or_close_dashboard": "فتح/إغلاق لوحة التحكم",
- "clash_mode_rule": "وضع القواعد",
- "clash_mode_global": "الوضع العالمي",
- "toggle_system_proxy": "تفعيل/تعطيل وكيل النظام",
- "toggle_tun_mode": "تفعيل/تعطيل وضع TUN",
- "entry_lightweight_mode": "Entry Lightweight Mode",
"Exit": "خروج",
"Profile Imported Successfully": "تم استيراد الملف الشخصي بنجاح",
"Stopping Core...": "Stopping Core...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "Uninstalling Service...",
"Service Installed Successfully": "تم تثبيت الخدمة بنجاح",
"Service Uninstalled Successfully": "تم إلغاء تثبيت الخدمة بنجاح",
- "Core Version Updated": "تم تحديث إصدار النواة",
- "Currently on the Latest Version": "أنت على أحدث إصدار حاليًا",
"Import Subscription Successful": "تم استيراد الاشتراك بنجاح",
"Profile": "الملف الشخصي",
"Dashboard": "لوحة التحكم",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "The traffic statistics component encountered an error and has been disabled to prevent crashes."
},
"states": {
- "saving": "Saving..."
+ "saving": "Saving...",
+ "empty": "فارغ"
+ },
+ "window": {
+ "maximize": "تكبير",
+ "minimize": "تصغير"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"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."
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "تم إعادة تشغيل نواة Clash"
+ "restartSuccess": "تم إعادة تشغيل نواة Clash",
+ "versionUpdated": "تم تحديث إصدار النواة"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "تمكين مفتاح التشغيل السريع العالمي"
},
- "title": "إعدادات الاختصارات"
+ "title": "إعدادات الاختصارات",
+ "functions": {
+ "rule": "وضع القواعد",
+ "global": "الوضع العالمي",
+ "openOrCloseDashboard": "فتح/إغلاق لوحة التحكم",
+ "toggleSystemProxy": "تفعيل/تعطيل وكيل النظام",
+ "toggleTunMode": "تفعيل/تعطيل وضع TUN",
+ "entryLightweightMode": "Entry Lightweight Mode",
+ "direct": "الوضع المباشر"
+ }
},
"password": {
"prompts": {
diff --git a/src/locales/de.json b/src/locales/de.json
index 858ef20a..ef610839 100644
--- a/src/locales/de.json
+++ b/src/locales/de.json
@@ -1,7 +1,4 @@
{
- "Maximize": "Maximieren",
- "Minimize": "Minimieren",
- "Empty": "Leer",
"Proxies": "Proxies",
"rule": "Regel",
"global": "Global",
@@ -65,13 +62,6 @@
"theme.light": "Light",
"theme.dark": "Dark",
"theme.system": "System",
- "Copy Success": "Kopieren erfolgreich",
- "open_or_close_dashboard": "Dashboard öffnen/schließen",
- "clash_mode_rule": "Regel-Modus",
- "clash_mode_global": "Globaler Modus",
- "toggle_system_proxy": "Systemproxy ein/ausschalten",
- "toggle_tun_mode": "TUN-Modus ein/ausschalten",
- "entry_lightweight_mode": "Leichtgewichtigen Modus betreten",
"Exit": "Beenden",
"Profile Imported Successfully": "Abonnement erfolgreich importiert",
"Stopping Core...": "Kern wird gestoppt...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "Service wird deinstalliert...",
"Service Installed Successfully": "Service erfolgreich installiert",
"Service Uninstalled Successfully": "Service erfolgreich deinstalliert",
- "Core Version Updated": "Kernversion wurde aktualisiert",
- "Currently on the Latest Version": "Sie verwenden bereits die neueste Version",
"Import Subscription Successful": "Abonnement erfolgreich importiert",
"Profile": "Konfiguration",
"Dashboard": "Dashboard",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "The traffic statistics component encountered an error and has been disabled to prevent crashes."
},
"states": {
- "saving": "Saving..."
+ "saving": "Saving...",
+ "empty": "Leer"
+ },
+ "window": {
+ "maximize": "Maximieren",
+ "minimize": "Minimieren"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"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."
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "Clash-Kern wurde neu gestartet"
+ "restartSuccess": "Clash-Kern wurde neu gestartet",
+ "versionUpdated": "Kernversion wurde aktualisiert"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "Globale Tastenkombinationen aktivieren"
},
- "title": "Tastenkombinationseinstellungen"
+ "title": "Tastenkombinationseinstellungen",
+ "functions": {
+ "rule": "Regel-Modus",
+ "global": "Globaler Modus",
+ "openOrCloseDashboard": "Dashboard öffnen/schließen",
+ "toggleSystemProxy": "Systemproxy ein/ausschalten",
+ "toggleTunMode": "TUN-Modus ein/ausschalten",
+ "entryLightweightMode": "Leichtgewichtigen Modus betreten",
+ "direct": "Direktverbindungs-Modus"
+ }
},
"password": {
"prompts": {
diff --git a/src/locales/en.json b/src/locales/en.json
index 15b8a174..d7119229 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -1,7 +1,4 @@
{
- "Maximize": "Maximize",
- "Minimize": "Minimize",
- "Empty": "Empty",
"Proxies": "Proxies",
"rule": "rule",
"global": "global",
@@ -65,13 +62,6 @@
"theme.light": "Light",
"theme.dark": "Dark",
"theme.system": "System",
- "Copy Success": "Copy Success",
- "open_or_close_dashboard": "Open/Close Dashboard",
- "clash_mode_rule": "Rule Mode",
- "clash_mode_global": "Global Mode",
- "toggle_system_proxy": "Enable/Disable System Proxy",
- "toggle_tun_mode": "Enable/Disable Tun Mode",
- "entry_lightweight_mode": "Entry Lightweight Mode",
"Exit": "Exit",
"Profile Imported Successfully": "Profile Imported Successfully",
"Stopping Core...": "Stopping Core...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "Uninstalling Service...",
"Service Installed Successfully": "Service Installed Successfully",
"Service Uninstalled Successfully": "Service Uninstalled Successfully",
- "Core Version Updated": "Core Version Updated",
- "Currently on the Latest Version": "Currently on the Latest Version",
"Import Subscription Successful": "Import subscription successful",
"Profile": "Profile",
"Dashboard": "Dashboard",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "The traffic statistics component encountered an error and has been disabled to prevent crashes."
},
"states": {
- "saving": "Saving..."
+ "saving": "Saving...",
+ "empty": "Empty"
+ },
+ "window": {
+ "maximize": "Maximize",
+ "minimize": "Minimize"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"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."
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "Clash Core Restarted"
+ "restartSuccess": "Clash Core Restarted",
+ "versionUpdated": "Core Version Updated"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "Enable Global Hotkey"
},
- "title": "Hotkey Setting"
+ "title": "Hotkey Setting",
+ "functions": {
+ "rule": "Rule Mode",
+ "global": "Global Mode",
+ "openOrCloseDashboard": "Open/Close Dashboard",
+ "toggleSystemProxy": "Enable/Disable System Proxy",
+ "toggleTunMode": "Enable/Disable Tun Mode",
+ "entryLightweightMode": "Entry Lightweight Mode",
+ "direct": "Direct Mode"
+ }
},
"password": {
"prompts": {
diff --git a/src/locales/es.json b/src/locales/es.json
index 76e0a91b..137a36e0 100644
--- a/src/locales/es.json
+++ b/src/locales/es.json
@@ -1,7 +1,4 @@
{
- "Maximize": "Maximizar",
- "Minimize": "Minimizar",
- "Empty": "Vacío",
"Proxies": "Proxies",
"rule": "Regla",
"global": "Global",
@@ -65,13 +62,6 @@
"theme.light": "Light",
"theme.dark": "Dark",
"theme.system": "System",
- "Copy Success": "Copia exitosa",
- "open_or_close_dashboard": "Abrir/cerrar panel",
- "clash_mode_rule": "Modo de reglas",
- "clash_mode_global": "Modo global",
- "toggle_system_proxy": "Activar/desactivar el proxy del sistema",
- "toggle_tun_mode": "Activar/desactivar el modo TUN",
- "entry_lightweight_mode": "Entrar en modo ligero",
"Exit": "Salir",
"Profile Imported Successfully": "Suscripción importada con éxito",
"Stopping Core...": "Deteniendo núcleo...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "Desinstalando servicio...",
"Service Installed Successfully": "Servicio instalado con éxito",
"Service Uninstalled Successfully": "Servicio desinstalado con éxito",
- "Core Version Updated": "Versión del núcleo actualizada",
- "Currently on the Latest Version": "Actualmente está en la última versión",
"Import Subscription Successful": "Suscripción importada con éxito",
"Profile": "Configuración",
"Dashboard": "Panel de control",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "The traffic statistics component encountered an error and has been disabled to prevent crashes."
},
"states": {
- "saving": "Saving..."
+ "saving": "Saving...",
+ "empty": "Vacío"
+ },
+ "window": {
+ "maximize": "Maximizar",
+ "minimize": "Minimizar"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"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."
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "Núcleo de Clash reiniciado"
+ "restartSuccess": "Núcleo de Clash reiniciado",
+ "versionUpdated": "Versión del núcleo actualizada"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "Habilitar atajos de teclado globales"
},
- "title": "Configuración de atajos de teclado"
+ "title": "Configuración de atajos de teclado",
+ "functions": {
+ "rule": "Modo de reglas",
+ "global": "Modo global",
+ "openOrCloseDashboard": "Abrir/cerrar panel",
+ "toggleSystemProxy": "Activar/desactivar el proxy del sistema",
+ "toggleTunMode": "Activar/desactivar el modo TUN",
+ "entryLightweightMode": "Entrar en modo ligero",
+ "direct": "Modo de conexión directa"
+ }
},
"password": {
"prompts": {
diff --git a/src/locales/fa.json b/src/locales/fa.json
index 8ecf25a6..12266afb 100644
--- a/src/locales/fa.json
+++ b/src/locales/fa.json
@@ -1,7 +1,4 @@
{
- "Maximize": "بزرگنمایی",
- "Minimize": "کوچکنمایی",
- "Empty": "خالی خالی",
"Proxies": "پراکسیها",
"rule": "قانون",
"global": "جهانی",
@@ -65,13 +62,6 @@
"theme.light": "روشن",
"theme.dark": "تاریک",
"theme.system": "سیستم",
- "Copy Success": "کپی با موفقیت انجام شد",
- "open_or_close_dashboard": "باز/بستن داشبورد",
- "clash_mode_rule": "حالت قانون",
- "clash_mode_global": "حالت جهانی",
- "toggle_system_proxy": "فعال/غیرفعال کردن پراکسی سیستم",
- "toggle_tun_mode": "فعال/غیرفعال کردن حالت Tun",
- "entry_lightweight_mode": "Entry Lightweight Mode",
"Exit": "خروج",
"Profile Imported Successfully": "پروفایل با موفقیت وارد شد",
"Stopping Core...": "Stopping Core...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "Uninstalling Service...",
"Service Installed Successfully": "سرویس با موفقیت نصب شد",
"Service Uninstalled Successfully": "سرویس با موفقیت حذف نصب شد",
- "Core Version Updated": "نسخه هسته بهروزرسانی شد",
- "Currently on the Latest Version": "در حال حاضر در آخرین نسخه",
"Import Subscription Successful": "وارد کردن اشتراک با موفقیت انجام شد",
"Profile": "پروفایل",
"Dashboard": "داشبورد",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "The traffic statistics component encountered an error and has been disabled to prevent crashes."
},
"states": {
- "saving": "Saving..."
+ "saving": "Saving...",
+ "empty": "خالی خالی"
+ },
+ "window": {
+ "maximize": "بزرگنمایی",
+ "minimize": "کوچکنمایی"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"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."
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "هسته Clash مجدداً راهاندازی شد"
+ "restartSuccess": "هسته Clash مجدداً راهاندازی شد",
+ "versionUpdated": "نسخه هسته بهروزرسانی شد"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "فعال کردن کلید میانبر سراسری"
},
- "title": "تنظیمات کلیدهای میانبر"
+ "title": "تنظیمات کلیدهای میانبر",
+ "functions": {
+ "rule": "حالت قانون",
+ "global": "حالت جهانی",
+ "openOrCloseDashboard": "باز/بستن داشبورد",
+ "toggleSystemProxy": "فعال/غیرفعال کردن پراکسی سیستم",
+ "toggleTunMode": "فعال/غیرفعال کردن حالت Tun",
+ "entryLightweightMode": "Entry Lightweight Mode",
+ "direct": "حالت مستقیم"
+ }
},
"password": {
"prompts": {
diff --git a/src/locales/id.json b/src/locales/id.json
index aa11596d..10591d59 100644
--- a/src/locales/id.json
+++ b/src/locales/id.json
@@ -1,7 +1,4 @@
{
- "Maximize": "Maksimalkan",
- "Minimize": "Minimalkan",
- "Empty": "Kosong",
"Proxies": "Proksi",
"rule": "aturan",
"global": "global",
@@ -65,13 +62,6 @@
"theme.light": "Terang",
"theme.dark": "Gelap",
"theme.system": "Sistem",
- "Copy Success": "Salin Berhasil",
- "open_or_close_dashboard": "Buka/Tutup Dasbor",
- "clash_mode_rule": "Mode Aturan",
- "clash_mode_global": "Mode Global",
- "toggle_system_proxy": "Aktifkan/Nonaktifkan Proksi Sistem",
- "toggle_tun_mode": "Aktifkan/Nonaktifkan Mode Tun",
- "entry_lightweight_mode": "Entry Lightweight Mode",
"Exit": "Keluar",
"Profile Imported Successfully": "Profil Berhasil Diimpor",
"Stopping Core...": "Stopping Core...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "Uninstalling Service...",
"Service Installed Successfully": "Layanan Berhasil Diinstal",
"Service Uninstalled Successfully": "Layanan Berhasil Dicopot",
- "Core Version Updated": "Versi Core Diperbarui",
- "Currently on the Latest Version": "Saat ini pada Versi Terbaru",
"Import Subscription Successful": "Berlangganan Berhasil Diimpor",
"Profile": "Profil",
"Dashboard": "Dasbor",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "The traffic statistics component encountered an error and has been disabled to prevent crashes."
},
"states": {
- "saving": "Saving..."
+ "saving": "Saving...",
+ "empty": "Kosong"
+ },
+ "window": {
+ "maximize": "Maksimalkan",
+ "minimize": "Minimalkan"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"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."
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "Core Clash Dimulai Ulang"
+ "restartSuccess": "Core Clash Dimulai Ulang",
+ "versionUpdated": "Versi Core Diperbarui"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "Aktifkan Hotkey Global"
},
- "title": "Pengaturan Pintasan"
+ "title": "Pengaturan Pintasan",
+ "functions": {
+ "rule": "Mode Aturan",
+ "global": "Mode Global",
+ "openOrCloseDashboard": "Buka/Tutup Dasbor",
+ "toggleSystemProxy": "Aktifkan/Nonaktifkan Proksi Sistem",
+ "toggleTunMode": "Aktifkan/Nonaktifkan Mode Tun",
+ "entryLightweightMode": "Entry Lightweight Mode",
+ "direct": "Mode Langsung"
+ }
},
"password": {
"prompts": {
diff --git a/src/locales/jp.json b/src/locales/jp.json
index afc372e1..3874af73 100644
--- a/src/locales/jp.json
+++ b/src/locales/jp.json
@@ -1,7 +1,4 @@
{
- "Maximize": "最大化",
- "Minimize": "最小化",
- "Empty": "空っぽ",
"Proxies": "Proxies",
"rule": "ルール",
"global": "グローバル",
@@ -65,13 +62,6 @@
"theme.light": "ライト",
"theme.dark": "ダーク",
"theme.system": "システム",
- "Copy Success": "コピー成功",
- "open_or_close_dashboard": "ダッシュボードを開く/閉じる",
- "clash_mode_rule": "ルールモード",
- "clash_mode_global": "グローバルモード",
- "toggle_system_proxy": "システムプロキシを開く/閉じる",
- "toggle_tun_mode": "TUNモードを開く/閉じる",
- "entry_lightweight_mode": "軽量モードに入る",
"Exit": "終了",
"Profile Imported Successfully": "プロファイルのインポートに成功しました。",
"Stopping Core...": "コアを停止中...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "サービスをアンインストール中...",
"Service Installed Successfully": "サービスのインストールに成功しました。",
"Service Uninstalled Successfully": "サービスのアンインストールに成功しました。",
- "Core Version Updated": "コアバージョンが更新されました。",
- "Currently on the Latest Version": "現在は最新バージョンです。",
"Import Subscription Successful": "サブスクリプションのインポートに成功しました。",
"Profile": "プロファイル",
"Dashboard": "ダッシュボード",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "The traffic statistics component encountered an error and has been disabled to prevent crashes."
},
"states": {
- "saving": "Saving..."
+ "saving": "Saving...",
+ "empty": "空っぽ"
+ },
+ "window": {
+ "maximize": "最大化",
+ "minimize": "最小化"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"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."
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "Clashコアが再起動されました。"
+ "restartSuccess": "Clashコアが再起動されました。",
+ "versionUpdated": "コアバージョンが更新されました。"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "グローバルホットキーを有効にする"
},
- "title": "ホットキー設定"
+ "title": "ホットキー設定",
+ "functions": {
+ "rule": "ルールモード",
+ "global": "グローバルモード",
+ "openOrCloseDashboard": "ダッシュボードを開く/閉じる",
+ "toggleSystemProxy": "システムプロキシを開く/閉じる",
+ "toggleTunMode": "TUNモードを開く/閉じる",
+ "entryLightweightMode": "軽量モードに入る",
+ "direct": "直接接続モード"
+ }
},
"password": {
"prompts": {
diff --git a/src/locales/ko.json b/src/locales/ko.json
index 8b5371fe..cea24c3e 100644
--- a/src/locales/ko.json
+++ b/src/locales/ko.json
@@ -1,7 +1,4 @@
{
- "Maximize": "최대화",
- "Minimize": "최소화",
- "Empty": "비어있음",
"Proxies": "프록시",
"rule": "규칙",
"global": "전역",
@@ -65,13 +62,6 @@
"theme.light": "Light",
"theme.dark": "Dark",
"theme.system": "System",
- "Copy Success": "복사 성공",
- "open_or_close_dashboard": "Open/Close Dashboard",
- "clash_mode_rule": "Rule Mode",
- "clash_mode_global": "Global Mode",
- "toggle_system_proxy": "Enable/Disable System Proxy",
- "toggle_tun_mode": "Enable/Disable Tun Mode",
- "entry_lightweight_mode": "Entry Lightweight Mode",
"Exit": "Exit",
"Profile Imported Successfully": "Profile Imported Successfully",
"Stopping Core...": "Stopping Core...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "Uninstalling Service...",
"Service Installed Successfully": "Service Installed Successfully",
"Service Uninstalled Successfully": "Service Uninstalled Successfully",
- "Core Version Updated": "Core Version Updated",
- "Currently on the Latest Version": "Currently on the Latest Version",
"Import Subscription Successful": "구독 가져오기 성공",
"Profile": "Profile",
"Dashboard": "Dashboard",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "The traffic statistics component encountered an error and has been disabled to prevent crashes."
},
"states": {
- "saving": "Saving..."
+ "saving": "Saving...",
+ "empty": "비어있음"
+ },
+ "window": {
+ "maximize": "최대화",
+ "minimize": "최소화"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"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."
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "Clash Core Restarted"
+ "restartSuccess": "Clash Core Restarted",
+ "versionUpdated": "Core Version Updated"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "Enable Global Hotkey"
},
- "title": "단축키 설정"
+ "title": "단축키 설정",
+ "functions": {
+ "rule": "Rule Mode",
+ "global": "Global Mode",
+ "openOrCloseDashboard": "Open/Close Dashboard",
+ "toggleSystemProxy": "Enable/Disable System Proxy",
+ "toggleTunMode": "Enable/Disable Tun Mode",
+ "entryLightweightMode": "Entry Lightweight Mode",
+ "direct": "Direct Mode"
+ }
},
"password": {
"prompts": {
diff --git a/src/locales/ru.json b/src/locales/ru.json
index 312ccf48..1e449768 100644
--- a/src/locales/ru.json
+++ b/src/locales/ru.json
@@ -1,7 +1,4 @@
{
- "Maximize": "Развернуть",
- "Minimize": "Свернуть",
- "Empty": "Пусто",
"Proxies": "Прокси",
"rule": "правила",
"global": "глобальный",
@@ -65,13 +62,6 @@
"theme.light": "Светлая",
"theme.dark": "Тёмная",
"theme.system": "Системная",
- "Copy Success": "Скопировано",
- "open_or_close_dashboard": "Открыть/Закрыть панель управления",
- "clash_mode_rule": "Режим правил",
- "clash_mode_global": "Глобальный режим",
- "toggle_system_proxy": "Включить/Отключить системный прокси",
- "toggle_tun_mode": "Включить/Отключить режим TUN",
- "entry_lightweight_mode": "Вход в LightWeight Mode",
"Exit": "Выход",
"Profile Imported Successfully": "Профиль успешно импортирован",
"Stopping Core...": "Stopping Core...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "Uninstalling Service...",
"Service Installed Successfully": "Служба успешно установлена",
"Service Uninstalled Successfully": "Служба успешно удалена",
- "Core Version Updated": "Ядро обновлено до последней версии",
- "Currently on the Latest Version": "Обновление не требуется",
"Import Subscription Successful": "Подписка успешно импортирована",
"Profile": "Профиль",
"Dashboard": "Панель управления",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "The traffic statistics component encountered an error and has been disabled to prevent crashes."
},
"states": {
- "saving": "Saving..."
+ "saving": "Saving...",
+ "empty": "Пусто"
+ },
+ "window": {
+ "maximize": "Развернуть",
+ "minimize": "Свернуть"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"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."
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "Ядро перезапущено"
+ "restartSuccess": "Ядро перезапущено",
+ "versionUpdated": "Ядро обновлено до последней версии"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "Включить глобальную горячую клавишу"
},
- "title": "Настройки сочетаний клавиш"
+ "title": "Настройки сочетаний клавиш",
+ "functions": {
+ "rule": "Режим правил",
+ "global": "Глобальный режим",
+ "openOrCloseDashboard": "Открыть/Закрыть панель управления",
+ "toggleSystemProxy": "Включить/Отключить системный прокси",
+ "toggleTunMode": "Включить/Отключить режим TUN",
+ "entryLightweightMode": "Вход в LightWeight Mode",
+ "direct": "Прямой режим"
+ }
},
"password": {
"prompts": {
diff --git a/src/locales/tr.json b/src/locales/tr.json
index e033aa98..455994fd 100644
--- a/src/locales/tr.json
+++ b/src/locales/tr.json
@@ -1,7 +1,4 @@
{
- "Maximize": "Büyüt",
- "Minimize": "Küçült",
- "Empty": "Boş",
"Proxies": "Vekil'ler",
"rule": "kural",
"global": "küresel",
@@ -65,13 +62,6 @@
"theme.light": "Açık",
"theme.dark": "Koyu",
"theme.system": "Sistem",
- "Copy Success": "Kopyalama Başarılı",
- "open_or_close_dashboard": "Kontrol Panelini Aç/Kapat",
- "clash_mode_rule": "Kural Modu",
- "clash_mode_global": "Küresel Mod",
- "toggle_system_proxy": "Sistem Vekil'ini Etkinleştir/Devre Dışı Bırak",
- "toggle_tun_mode": "Tun Modunu Etkinleştir/Devre Dışı Bırak",
- "entry_lightweight_mode": "Hafif Moda Gir",
"Exit": "Çıkış",
"Profile Imported Successfully": "Profil Başarıyla İçe Aktarıldı",
"Stopping Core...": "Stopping Core...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "Uninstalling Service...",
"Service Installed Successfully": "Hizmet Başarıyla Kuruldu",
"Service Uninstalled Successfully": "Hizmet Başarıyla Kaldırıldı",
- "Core Version Updated": "Çekirdek Sürümü Güncellendi",
- "Currently on the Latest Version": "Şu Anda En Son Sürümdesiniz",
"Import Subscription Successful": "Abonelik içe aktarımı başarılı",
"Profile": "Profil",
"Dashboard": "Kontrol Paneli",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "The traffic statistics component encountered an error and has been disabled to prevent crashes."
},
"states": {
- "saving": "Saving..."
+ "saving": "Saving...",
+ "empty": "Boş"
+ },
+ "window": {
+ "maximize": "Büyüt",
+ "minimize": "Küçült"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"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."
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "Clash Çekirdeği Yeniden Başlatıldı"
+ "restartSuccess": "Clash Çekirdeği Yeniden Başlatıldı",
+ "versionUpdated": "Çekirdek Sürümü Güncellendi"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "Küresel Kısayol Tuşunu Etkinleştir"
},
- "title": "Kısayol Tuşu Ayarı"
+ "title": "Kısayol Tuşu Ayarı",
+ "functions": {
+ "rule": "Kural Modu",
+ "global": "Küresel Mod",
+ "openOrCloseDashboard": "Kontrol Panelini Aç/Kapat",
+ "toggleSystemProxy": "Sistem Vekil'ini Etkinleştir/Devre Dışı Bırak",
+ "toggleTunMode": "Tun Modunu Etkinleştir/Devre Dışı Bırak",
+ "entryLightweightMode": "Hafif Moda Gir",
+ "direct": "Doğrudan Mod"
+ }
},
"password": {
"prompts": {
diff --git a/src/locales/tt.json b/src/locales/tt.json
index 7ccb338f..8ead1ea5 100644
--- a/src/locales/tt.json
+++ b/src/locales/tt.json
@@ -1,7 +1,4 @@
{
- "Maximize": "Зурайту",
- "Minimize": "Кечерәйтү",
- "Empty": "Буш",
"Proxies": "Прокси",
"rule": "кагыйдә",
"global": "глобаль",
@@ -65,13 +62,6 @@
"theme.light": "Якты",
"theme.dark": "Караңгы",
"theme.system": "Система",
- "Copy Success": "Күчерелде",
- "open_or_close_dashboard": "Панельне ачу/ябу",
- "clash_mode_rule": "Кагыйдәләр режимы",
- "clash_mode_global": "Глобаль режим",
- "toggle_system_proxy": "Системалы проксины кабызу/сүндерү",
- "toggle_tun_mode": "Tun режимын кабызу/сүндерү",
- "entry_lightweight_mode": "Entry Lightweight Mode",
"Exit": "Чыгу",
"Profile Imported Successfully": "Профиль уңышлы импортланды",
"Stopping Core...": "Stopping Core...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "Uninstalling Service...",
"Service Installed Successfully": "Сервис уңышлы урнаштырылды",
"Service Uninstalled Successfully": "Сервис уңышлы салдырылды",
- "Core Version Updated": "Ядро версиясе яңартылды",
- "Currently on the Latest Version": "Сездә иң соңгы версия урнаштырылган",
"Import Subscription Successful": "Import subscription successful",
"Profile": "Профиль",
"Dashboard": "Панель",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "The traffic statistics component encountered an error and has been disabled to prevent crashes."
},
"states": {
- "saving": "Saving..."
+ "saving": "Saving...",
+ "empty": "Буш"
+ },
+ "window": {
+ "maximize": "Зурайту",
+ "minimize": "Кечерәйтү"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"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."
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "Clash ядросы яңадан башланды"
+ "restartSuccess": "Clash ядросы яңадан башланды",
+ "versionUpdated": "Ядро версиясе яңартылды"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "Глобаль Хоткейны кушу"
},
- "title": "Клавиатура төймәләре (hotkey) көйләүләре"
+ "title": "Клавиатура төймәләре (hotkey) көйләүләре",
+ "functions": {
+ "rule": "Кагыйдәләр режимы",
+ "global": "Глобаль режим",
+ "openOrCloseDashboard": "Панельне ачу/ябу",
+ "toggleSystemProxy": "Системалы проксины кабызу/сүндерү",
+ "toggleTunMode": "Tun режимын кабызу/сүндерү",
+ "entryLightweightMode": "Entry Lightweight Mode",
+ "direct": "Туры режим"
+ }
},
"password": {
"prompts": {
diff --git a/src/locales/zh.json b/src/locales/zh.json
index 18651322..110fff1d 100644
--- a/src/locales/zh.json
+++ b/src/locales/zh.json
@@ -1,7 +1,4 @@
{
- "Maximize": "最大化",
- "Minimize": "最小化",
- "Empty": "空空如也",
"Proxies": "代理",
"rule": "规则",
"global": "全局",
@@ -65,13 +62,6 @@
"theme.light": "浅色",
"theme.dark": "深色",
"theme.system": "系统",
- "Copy Success": "复制成功",
- "open_or_close_dashboard": "打开/关闭面板",
- "clash_mode_rule": "规则模式",
- "clash_mode_global": "全局模式",
- "toggle_system_proxy": "打开/关闭系统代理",
- "toggle_tun_mode": "打开/关闭 TUN 模式",
- "entry_lightweight_mode": "进入轻量模式",
"Exit": "退出",
"Profile Imported Successfully": "导入订阅成功",
"Stopping Core...": "停止内核中...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "卸载服务中...",
"Service Installed Successfully": "已成功安装服务",
"Service Uninstalled Successfully": "已成功卸载服务",
- "Core Version Updated": "内核版本已更新",
- "Currently on the Latest Version": "当前已是最新版本",
"Import Subscription Successful": "导入订阅成功",
"Profile": "配置",
"Dashboard": "仪表板",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "流量统计组件发生错误,为防止崩溃已暂时停用。"
},
"states": {
- "saving": "保存中..."
+ "saving": "保存中...",
+ "empty": "空空如也"
+ },
+ "window": {
+ "maximize": "最大化",
+ "minimize": "最小化"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"clashMode": {
"errors": {
"communication": "内核通信错误"
+ },
+ "labels": {
+ "rule": "规则模式",
+ "global": "全局模式",
+ "direct": "直连模式"
+ },
+ "descriptions": {
+ "rule": "按照规则自动选择代理。",
+ "global": "将所有网络请求转发到选定的代理。",
+ "direct": "绕过代理,直接连接互联网。"
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "已重启 Clash 内核"
+ "restartSuccess": "已重启 Clash 内核",
+ "versionUpdated": "内核版本已更新"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "启用全局热键"
},
- "title": "热键设置"
+ "title": "热键设置",
+ "functions": {
+ "rule": "规则模式",
+ "global": "全局模式",
+ "openOrCloseDashboard": "打开/关闭面板",
+ "toggleSystemProxy": "打开/关闭系统代理",
+ "toggleTunMode": "打开/关闭 TUN 模式",
+ "entryLightweightMode": "进入轻量模式",
+ "direct": "直连模式"
+ }
},
"password": {
"prompts": {
diff --git a/src/locales/zhtw.json b/src/locales/zhtw.json
index d34fcae5..5a20c690 100644
--- a/src/locales/zhtw.json
+++ b/src/locales/zhtw.json
@@ -1,7 +1,4 @@
{
- "Maximize": "最大化",
- "Minimize": "最小化",
- "Empty": "空空如也",
"Proxies": "代理",
"rule": "規則",
"global": "全域",
@@ -65,13 +62,6 @@
"theme.light": "淺色",
"theme.dark": "深色",
"theme.system": "系統",
- "Copy Success": "複製成功",
- "open_or_close_dashboard": "開啟/關閉儀表板",
- "clash_mode_rule": "規則模式",
- "clash_mode_global": "全域模式",
- "toggle_system_proxy": "開啟/關閉系統代理",
- "toggle_tun_mode": "開啟/關閉 虛擬網路介面卡模式",
- "entry_lightweight_mode": "進入輕量模式",
"Exit": "離開",
"Profile Imported Successfully": "匯入設定檔成功",
"Stopping Core...": "內核停止中...",
@@ -80,8 +70,6 @@
"Uninstalling Service...": "服務解除安裝中...",
"Service Installed Successfully": "已成功安裝服務",
"Service Uninstalled Successfully": "已成功解除安裝服務",
- "Core Version Updated": "內核版本已更新",
- "Currently on the Latest Version": "目前已是最新版本",
"Import Subscription Successful": "匯入訂閱成功",
"Profile": "配置",
"Dashboard": "儀表板",
@@ -209,7 +197,12 @@
"trafficStatsDescription": "流量統計元件發生錯誤,已停用以避免當機。"
},
"states": {
- "saving": "儲存中..."
+ "saving": "儲存中...",
+ "empty": "空空如也"
+ },
+ "window": {
+ "maximize": "最大化",
+ "minimize": "最小化"
}
},
"navigation": {
@@ -524,6 +517,16 @@
"clashMode": {
"errors": {
"communication": "內核通信錯誤"
+ },
+ "labels": {
+ "rule": "規則模式",
+ "global": "全域模式",
+ "direct": "直連模式"
+ },
+ "descriptions": {
+ "rule": "依照規則自動選擇代理。",
+ "global": "將所有網路請求轉送至所選代理。",
+ "direct": "略過代理,直接連線至網際網路。"
}
}
},
@@ -675,7 +678,8 @@
}
},
"notifications": {
- "restartSuccess": "已重啟 Clash 內核"
+ "restartSuccess": "已重啟 Clash 內核",
+ "versionUpdated": "內核版本已更新"
}
},
"liteMode": {
@@ -1064,7 +1068,16 @@
"toggles": {
"enableGlobal": "啟用全域快速鍵"
},
- "title": "快速鍵設定"
+ "title": "快速鍵設定",
+ "functions": {
+ "rule": "規則模式",
+ "global": "全域模式",
+ "openOrCloseDashboard": "開啟/關閉儀表板",
+ "toggleSystemProxy": "開啟/關閉系統代理",
+ "toggleTunMode": "開啟/關閉 虛擬網路介面卡模式",
+ "entryLightweightMode": "進入輕量模式",
+ "direct": "直連模式"
+ }
},
"password": {
"prompts": {
diff --git a/src/pages/unlock.tsx b/src/pages/unlock.tsx
index 4f8579b3..f9f1ea67 100644
--- a/src/pages/unlock.tsx
+++ b/src/pages/unlock.tsx
@@ -282,7 +282,7 @@ const UnlockPage = () => {
height: "50%",
}}
>
-
+
) : (