diff --git a/ClashX/AppDelegate.swift b/ClashX/AppDelegate.swift index 8cc088e5c..dc3e24299 100644 --- a/ClashX/AppDelegate.swift +++ b/ClashX/AppDelegate.swift @@ -1084,7 +1084,7 @@ extension AppDelegate { @IBAction func tunMode(_ sender: NSMenuItem) { let nc = NSUserNotificationCenter.default guard let config = ApiRequest.shared.currentConfigContent else { - nc.post(title: "Tun Mode", info: "Not found current config.") + nc.post(title: "Tun Mode", info: NSLocalizedString("Not found current config.", comment: "")) return } @@ -1092,7 +1092,7 @@ extension AppDelegate { ApiRequest.requestConfig { guard let path = ClashMetaConfig.updateConfigTun(config, enable: !$0.tun.enable) else { sender.isEnabled = true - nc.post(title: "Tun Mode", info: "Decode current config failed.") + nc.post(title: "Tun Mode", info: NSLocalizedString("Decode current config failed.", comment: "")) return } @@ -1136,33 +1136,33 @@ extension AppDelegate { guard $0.error == nil, let data = $0.data, let tagName = try? JSON(data: data)["tag_name"].string else { - unc.postUpdateNotice(msg: "Some thing failed.") + unc.postUpdateNotice(msg: NSLocalizedString("Some thing failed.", comment: "")) return } if tagName != AppVersionUtil.currentVersion { let alert = NSAlert() - alert.messageText = "Open github release page to download \(tagName)" + alert.messageText = NSLocalizedString("Open github release page to download ", comment: "") + "\(tagName)" alert.addButton(withTitle: NSLocalizedString("OK", comment: "")) alert.addButton(withTitle: NSLocalizedString("Cancel", comment: "")) if alert.runModal() == .alertFirstButtonReturn { NSWorkspace.shared.open(.init(string: "https://github.com/MetaCubeX/ClashX.Meta/releases/latest")!) } } else { - unc.postUpdateNotice(msg: "No new release found.") + unc.postUpdateNotice(msg: NSLocalizedString("No new release found.", comment: "")) } } } @IBAction func updateGEO(_ sender: NSMenuItem) { ApiRequest.updateGEO { _ in - NSUserNotificationCenter.default.post(title: "Updating GEO Databases...", info: "Good luck to you 🙃") + NSUserNotificationCenter.default.post(title: NSLocalizedString("Updating GEO Databases...", comment: ""), info: NSLocalizedString("Good luck to you 🙃", comment: "")) } } @IBAction func flushFakeipCache(_ sender: NSMenuItem) { ApiRequest.flushFakeipCache { - NSUserNotificationCenter.default.post(title: "Flush fake-ip cache", info: $0 ? "Success" : "Failed") + NSUserNotificationCenter.default.post(title: NSLocalizedString("Flush fake-ip cache", comment: ""), info: $0 ? "Success" : "Failed") } } @@ -1176,12 +1176,7 @@ extension AppDelegate { @IBAction func useAlphaMeta(_ sender: NSMenuItem) { if UserDefaults.standard.object(forKey: "useAlphaCore") as? Bool == nil { let alert = NSAlert() - alert.messageText = """ -If you don't know what you're doing, never turn this switch on. -如果你不知道你在做什么, 请绝对不要打开这个开关. -Running Meta Core without any authentication under sudo privileges can have devastating consequences. -在sudo 权限下运行未经验证的 Meta 核心, 可能造成严重后果. -""" + alert.messageText = NSLocalizedString("Alpha Meta core Warning", comment: "") alert.alertStyle = .warning alert.addButton(withTitle: NSLocalizedString("Continue", comment: "")) alert.addButton(withTitle: NSLocalizedString("Cancel", comment: "")) @@ -1285,7 +1280,7 @@ Running Meta Core without any authentication under sudo privileges can have deva return } self.updateAlphaVersion(version) - dlResult("Version: \(version)") + dlResult(NSLocalizedString("Version: ", comment: "") + version) } catch let error { dlResult("Something error \(error.localizedDescription)") } @@ -1298,12 +1293,12 @@ Running Meta Core without any authentication under sudo privileges can have deva useAlphaMetaMenuItem.isEnabled = enable alphaMetaVersionMenuItem.isEnabled = enable if let v = version { - let info = "Version: \(v)" + let info = NSLocalizedString("Version: ", comment: "") + v alphaMetaVersionMenuItem.title = info - updateAlphaMetaMenuItem.title = "Update Meta core" + updateAlphaMetaMenuItem.title = NSLocalizedString("Update Alpha Meta core", comment: "") } else { - alphaMetaVersionMenuItem.title = "Version: none" - updateAlphaMetaMenuItem.title = "Download Meta core" + alphaMetaVersionMenuItem.title = NSLocalizedString("Version: ", comment: "") + "none" + updateAlphaMetaMenuItem.title = NSLocalizedString("Download Meta core", comment: "") } } } diff --git a/ClashX/General/Managers/MenuItemFactory.swift b/ClashX/General/Managers/MenuItemFactory.swift index 947a3f4b9..0091510c4 100644 --- a/ClashX/General/Managers/MenuItemFactory.swift +++ b/ClashX/General/Managers/MenuItemFactory.swift @@ -32,7 +32,7 @@ class MenuItemFactory { } } - static let updateAllProvidersTitle = "Update All Providers" + static let updateAllProvidersTitle = NSLocalizedString("Update All Providers", comment: "") // MARK: - Public @@ -405,7 +405,7 @@ extension MenuItemFactory { !date.timeIntervalSinceNow.isInfinite, let re = dateCF.string(from: abs(date.timeIntervalSinceNow)) else { return nil } - return "\(re) ago" + return re + NSLocalizedString(" ago", comment: "Provider update time title") } @objc static func actionUpdateAllProviders(sender: NSMenuItem) { diff --git a/ClashX/Models/ClashProxy.swift b/ClashX/Models/ClashProxy.swift index 362126f75..2e5ba542a 100644 --- a/ClashX/Models/ClashProxy.swift +++ b/ClashX/Models/ClashProxy.swift @@ -23,6 +23,10 @@ enum ClashProxyType: String, Codable { case snell = "Snell" case trojan = "Trojan" case relay = "Relay" + + case vless = "Vless" + case hysteria = "Hysteria" + case unknown = "Unknown" static let proxyGroups: [ClashProxyType] = [.select, .urltest, .fallback, .loadBalance] diff --git a/ClashX/Support Files/en.lproj/Localizable.strings b/ClashX/Support Files/en.lproj/Localizable.strings index 759d1d78b..be467a381 100644 --- a/ClashX/Support Files/en.lproj/Localizable.strings +++ b/ClashX/Support Files/en.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* Provider update time title */ +" ago" = " ago"; + /* No comment provided by engineer. */ "Add a remote config" = "Add a remote config"; @@ -5,7 +8,7 @@ "Add a remote control config" = "Add a remote control config"; /* No comment provided by engineer. */ -"Apply and Quit" = "Apply and Quit"; +"Alpha Meta core Warning" = "If you don't know what you're doing, never turn this switch on.\nRunning Meta Core without any authentication under 'su' privileges may damage your mac."; /* No comment provided by engineer. */ "Auto Close Connection" = "Auto Close Connection"; @@ -40,9 +43,15 @@ /* No comment provided by engineer. */ "Config loading Fail!" = "Config loading Fail!"; +/* No comment provided by engineer. */ +"Continue" = "Continue"; + /* No comment provided by engineer. */ "Custom your GEOIP MMDB download address." = "Custom your GEOIP MMDB download address."; +/* No comment provided by engineer. */ +"Decode current config failed." = "Decode current config failed."; + /* No comment provided by engineer. */ "Details" = "Details"; @@ -55,6 +64,9 @@ /* No comment provided by engineer. */ "Download fail" = "Download fail"; +/* No comment provided by engineer. */ +"Download Meta core" = "Download Meta core"; + /* No comment provided by engineer. */ "Enhance proxy list render" = "Enhance proxy list render"; @@ -64,9 +76,15 @@ /* No comment provided by engineer. */ "Fail:" = "Fail:"; +/* No comment provided by engineer. */ +"Flush fake-ip cache" = "Flush fake-ip cache"; + /* No comment provided by engineer. */ "Global" = "Global"; +/* No comment provided by engineer. */ +"Good luck to you 🙃" = "Good luck to you 🙃"; + /* No comment provided by engineer. */ "hours" = "hours"; @@ -82,17 +100,21 @@ /* No comment provided by engineer. */ "Load Balance" = "Load Balance"; -"Mode" = "Mode"; +/* No comment provided by engineer. */ +"Never" = "Never"; /* No comment provided by engineer. */ -"Need to Restart the ClashX to Take effect, Please start clashX manually" = "Need to Restart the ClashX to Take effect, Please start clashX manually"; +"No new release found." = "No new release found."; /* No comment provided by engineer. */ -"Never" = "Never"; +"Not found current config." = "Not found current config."; /* No comment provided by engineer. */ "OK" = "OK"; +/* No comment provided by engineer. */ +"Open github release page to download " = "Open github release page to download "; + /* No comment provided by engineer. */ "Ports Open Fail, Please try to restart ClashX" = "Ports Open Fail, Please try to restart ClashX"; @@ -129,18 +151,18 @@ /* No comment provided by engineer. */ "Rule" = "Rule"; -/* No comment provided by engineer. */ -"Script" = "Script"; - /* No comment provided by engineer. */ "Should be a least 1 hour" = "Should be a least 1 hour"; /* No comment provided by engineer. */ -"Show speedTest at top" = "Show speedTest at top"; +"Some thing failed." = "Some thing failed."; /* No comment provided by engineer. */ "Stable" = "Stable"; +/* No comment provided by engineer. */ +"Start Meta Fail!" = "Start Meta Fail!"; + /* No comment provided by engineer. */ "Succeed!" = "Succeed!"; @@ -165,6 +187,12 @@ /* No comment provided by engineer. */ "This version of ClashX contains a break change due to clash core 1.0 released. Check if your config is not working properly." = "This version of ClashX contains a break change due to clash core 1.0 released. Check if your config is not working properly."; +/* No comment provided by engineer. */ +"Update All Providers" = "Update All Providers"; + +/* No comment provided by engineer. */ +"Update Alpha Meta core" = "Update Alpha Meta core"; + /* No comment provided by engineer. */ "Update GEOIP Database" = "Update GEOIP Database"; @@ -174,6 +202,9 @@ /* No comment provided by engineer. */ "Updating" = "Updating"; +/* No comment provided by engineer. */ +"Updating GEO Databases..." = "Updating GEO Databases..."; + /* No comment provided by engineer. */ "Upgrade Channel" = "Upgrade Channel"; @@ -185,3 +216,6 @@ /* No comment provided by engineer. */ "Use reload config to try reconnect." = "Use reload config to try reconnect."; + +/* No comment provided by engineer. */ +"Version: " = "Version: "; diff --git a/ClashX/Support Files/zh-Hans.lproj/Localizable.strings b/ClashX/Support Files/zh-Hans.lproj/Localizable.strings index 292273ac7..c5e447685 100644 --- a/ClashX/Support Files/zh-Hans.lproj/Localizable.strings +++ b/ClashX/Support Files/zh-Hans.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* Provider update time title */ +" ago" = "前"; + /* No comment provided by engineer. */ "Add a remote config" = "添加托管配置文件"; @@ -5,7 +8,7 @@ "Add a remote control config" = "添加远程控制器配置"; /* No comment provided by engineer. */ -"Apply and Quit" = "应用并退出"; +"Alpha Meta core Warning" = "如果你不知道你在做什么, 请绝对不要打开这个开关.\n在 'su' 权限下运行未经验证的 Meta 核心, 可能损坏你的 mac."; /* No comment provided by engineer. */ "Auto Close Connection" = "切换代理时中断连接"; @@ -40,9 +43,15 @@ /* No comment provided by engineer. */ "Config loading Fail!" = "配置文件加载失败"; +/* No comment provided by engineer. */ +"Continue" = "继续"; + /* No comment provided by engineer. */ "Custom your GEOIP MMDB download address." = "自定义下载地址"; +/* No comment provided by engineer. */ +"Decode current config failed." = "无法解析当前的配置文件."; + /* No comment provided by engineer. */ "Details" = "查看详情"; @@ -55,6 +64,9 @@ /* No comment provided by engineer. */ "Download fail" = "下载失败"; +/* No comment provided by engineer. */ +"Download Meta core" = "下载 Meta 内核"; + /* No comment provided by engineer. */ "Enhance proxy list render" = "增强渲染代理列表"; @@ -64,9 +76,15 @@ /* No comment provided by engineer. */ "Fail:" = "失败:"; +/* No comment provided by engineer. */ +"Flush fake-ip cache" = "清空 fake-ip 缓存"; + /* No comment provided by engineer. */ "Global" = "全局"; +/* No comment provided by engineer. */ +"Good luck to you 🙃" = "祝你好运 🙃"; + /* No comment provided by engineer. */ "hours" = "小时"; @@ -82,17 +100,21 @@ /* No comment provided by engineer. */ "Load Balance" = "负载均衡"; -"Mode" = "模式"; +/* No comment provided by engineer. */ +"Never" = "从未"; /* No comment provided by engineer. */ -"Need to Restart the ClashX to Take effect, Please start clashX manually" = "需要重启ClashX生效,请手动启动ClashX"; +"No new release found." = "未找到更新."; /* No comment provided by engineer. */ -"Never" = "从未"; +"Not found current config." = "未找到当前的配置文件."; /* No comment provided by engineer. */ "OK" = "确定"; +/* No comment provided by engineer. */ +"Open github release page to download " = "打开 GitHub Release 下载 "; + /* No comment provided by engineer. */ "Ports Open Fail, Please try to restart ClashX" = "端口打开失败,请尝试重启ClashX"; @@ -129,18 +151,18 @@ /* No comment provided by engineer. */ "Rule" = "规则"; -/* No comment provided by engineer. */ -"Script" = "脚本"; - /* No comment provided by engineer. */ "Should be a least 1 hour" = "至少需要1小时间隔"; /* No comment provided by engineer. */ -"Show speedTest at top" = "顶端显示测速按钮"; +"Some thing failed." = "发生了一些错误."; /* No comment provided by engineer. */ "Stable" = "Stable"; +/* No comment provided by engineer. */ +"Start Meta Fail!" = "打开Meta 失败!"; + /* No comment provided by engineer. */ "Succeed!" = "成功!"; @@ -166,7 +188,13 @@ "This version of ClashX contains a break change due to clash core 1.0 released. Check if your config is not working properly." = "由于Clash Core发布1.0版本,使用此版本的 ClashX 可能需要更新配置内容\n前往 https://github.com/Dreamacro/clash/wiki/breaking-changes-in-1.0.0 查看详情"; /* No comment provided by engineer. */ -"Update GEOIP Database" = "更新IP数据库"; +"Update All Providers" = "更新所有 Providers"; + +/* No comment provided by engineer. */ +"Update Alpha Meta core" = "更新 Alpha Meta 内核"; + +/* No comment provided by engineer. */ +"Update GEOIP Database" = "更新 GEOIP 数据库"; /* No comment provided by engineer. */ "Update remote config update interval" = "远程配置自动更新间隔"; @@ -174,6 +202,9 @@ /* No comment provided by engineer. */ "Updating" = "更新中"; +/* No comment provided by engineer. */ +"Updating GEO Databases..." = "更新 GEO 数据库..."; + /* No comment provided by engineer. */ "Upgrade Channel" = "更新通道"; @@ -185,3 +216,6 @@ /* No comment provided by engineer. */ "Use reload config to try reconnect." = "使用重载配置文件按钮尝试重新连接"; + +/* No comment provided by engineer. */ +"Version: " = "版本: "; diff --git a/ClashX/zh-Hans.lproj/Main.strings b/ClashX/zh-Hans.lproj/Main.strings index a733fd28a..084e32177 100644 --- a/ClashX/zh-Hans.lproj/Main.strings +++ b/ClashX/zh-Hans.lproj/Main.strings @@ -1,27 +1,42 @@ /* Class = "NSMenuItem"; title = "ERROR"; ObjectID = "0iu-lB-eZN"; */ "0iu-lB-eZN.title" = "ERROR"; +/* Class = "NSMenu"; title = "Remote Controller"; ObjectID = "1He-Eq-fSy"; */ +"1He-Eq-fSy.title" = "远程控制器"; + /* Class = "NSButtonCell"; title = "Update"; ObjectID = "2Rx-ih-aGW"; */ "2Rx-ih-aGW.title" = "更新"; /* Class = "NSMenuItem"; title = "Log level"; ObjectID = "3Da-fL-Mzr"; */ "3Da-fL-Mzr.title" = "日志等级"; +/* Class = "NSMenuItem"; title = "Proxy providers"; ObjectID = "4Jz-gx-7X9"; */ +"4Jz-gx-7X9.title" = "代理 Prividers"; + /* Class = "NSButtonCell"; title = "Add"; ObjectID = "51K-nB-xLS"; */ "51K-nB-xLS.title" = "添加"; +/* Class = "NSTableColumn"; headerCell.title = "Api Secret"; ObjectID = "5hn-k8-CWe"; */ +"5hn-k8-CWe.headerCell.title" = "Api Secret"; + /* Class = "NSViewController"; title = "Remote Configs"; ObjectID = "6WI-Hi-v9j"; */ "6WI-Hi-v9j.title" = "托管的配置文件"; /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "7G6-oO-vNs"; */ "7G6-oO-vNs.title" = "Text Cell"; +/* Class = "NSMenuItem"; title = "Copy shell command (External IP)"; ObjectID = "7wl-vK-5JO"; */ +"7wl-vK-5JO.title" = "复制终端代理命令(外部IP)"; + /* Class = "NSMenuItem"; title = "Rule"; ObjectID = "89n-bD-JHk"; */ "89n-bD-JHk.title" = "规则判断"; /* Class = "NSMenuItem"; title = "Set as system proxy"; ObjectID = "8se-yr-wmp"; */ "8se-yr-wmp.title" = "设置为系统代理"; +/* Class = "NSTextFieldCell"; title = "External Controls"; ObjectID = "9gE-NX-2wJ"; */ +"9gE-NX-2wJ.title" = "远程控制器"; + /* Class = "NSMenuItem"; title = "Ports"; ObjectID = "9i0-LH-x04"; */ "9i0-LH-x04.title" = "端口"; @@ -34,9 +49,21 @@ /* Class = "NSMenuItem"; title = "Start at login"; ObjectID = "B1J-XB-BiZ"; */ "B1J-XB-BiZ.title" = "开机启动"; +/* Class = "NSButtonCell"; title = "Delete"; ObjectID = "B2w-4r-5Kh"; */ +"B2w-4r-5Kh.title" = "删除"; + +/* Class = "NSMenuItem"; title = "Remote Controller"; ObjectID = "BRR-WK-aeP"; */ +"BRR-WK-aeP.title" = "远程控制器"; + +/* Class = "NSMenuItem"; title = "Hide unselectable"; ObjectID = "C3l-5G-vzB"; */ +"C3l-5G-vzB.title" = "隐藏不可选择的策略组"; + /* Class = "NSTableColumn"; headerCell.title = "Url"; ObjectID = "C79-J5-30z"; */ "C79-J5-30z.headerCell.title" = "链接"; +/* Class = "NSMenuItem"; title = "Rule providers"; ObjectID = "cJg-BS-yk2"; */ +"cJg-BS-yk2.title" = "规则 Prividers"; + /* Class = "NSMenuItem"; title = "Benchmark"; ObjectID = "COu-UX-bww"; */ "COu-UX-bww.title" = "延迟测速"; @@ -55,9 +82,18 @@ /* Class = "NSMenuItem"; title = "Manage"; ObjectID = "Dwg-Qb-2AU"; */ "Dwg-Qb-2AU.title" = "管理"; +/* Class = "NSMenuItem"; title = "Meta"; ObjectID = "F3d-AD-N6E"; */ +"F3d-AD-N6E.title" = "Meta"; + /* Class = "NSMenuItem"; title = "Remote config"; ObjectID = "h1C-R6-Y9w"; */ "h1C-R6-Y9w.title" = "托管配置"; +/* Class = "NSMenuItem"; title = "Set update interval"; ObjectID = "h1H-7k-9HS"; */ +"h1H-7k-9HS.title" = "设置更新间隔"; + +/* Class = "NSMenuItem"; title = " Manage"; ObjectID = "hlb-KQ-Fdr"; */ +"hlb-KQ-Fdr.title" = "管理"; + /* Class = "NSMenuItem"; title = "About"; ObjectID = "hUb-k9-TEf"; */ "hUb-k9-TEf.title" = "关于"; @@ -73,18 +109,30 @@ /* Class = "NSMenuItem"; title = "API Connect Error"; ObjectID = "jGT-1M-xJu"; */ "jGT-1M-xJu.title" = "API Connect Error"; +/* Class = "NSMenu"; title = "Meta"; ObjectID = "ji6-hK-w0I"; */ +"ji6-hK-w0I.title" = "Meta"; + /* Class = "NSMenuItem"; title = "Copy shell command"; ObjectID = "Jmb-PK-rMW"; */ "Jmb-PK-rMW.title" = "复制终端代理命令"; /* Class = "NSMenuItem"; title = "Config"; ObjectID = "JMV-Dy-CI0"; */ "JMV-Dy-CI0.title" = "配置"; +/* Class = "NSMenu"; title = "Alpha Core"; ObjectID = "JYf-zC-xoj"; */ +"JYf-zC-xoj.title" = "Alpha 内核"; + /* Class = "NSMenuItem"; title = "WARNING"; ObjectID = "ko2-Ir-DxA"; */ "ko2-Ir-DxA.title" = "WARNING"; /* Class = "NSTableColumn"; headerCell.title = "Config Name"; ObjectID = "lRE-Xa-euB"; */ "lRE-Xa-euB.headerCell.title" = "配置文件名称"; +/* Class = "NSMenuItem"; title = "Sniffer"; ObjectID = "mk5-fI-KvW"; */ +"mk5-fI-KvW.title" = "域名嗅探"; + +/* Class = "NSMenuItem"; title = "Download or update"; ObjectID = "MWh-yg-3Yk"; */ +"MWh-yg-3Yk.title" = "下载或更新"; + /* Class = "NSMenuItem"; title = "Direct"; ObjectID = "Np6-Pm-Lo3"; */ "Np6-Pm-Lo3.title" = "直接连接"; @@ -100,6 +148,9 @@ /* Class = "NSMenuItem"; title = "Check Update"; ObjectID = "p0T-J8-Emx"; */ "p0T-J8-Emx.title" = "检查更新"; +/* Class = "NSMenu"; title = "Proxy providers"; ObjectID = "PXU-hU-r0O"; */ +"PXU-hU-r0O.title" = "代理供应商"; + /* Class = "NSMenuItem"; title = "Reload config"; ObjectID = "q3G-VH-eyy"; */ "q3G-VH-eyy.title" = "重载配置文件"; @@ -112,26 +163,50 @@ /* Class = "NSMenuItem"; title = "Set benchmark url"; ObjectID = "rls-O1-mpQ"; */ "rls-O1-mpQ.title" = "设置延迟测速链接"; +/* Class = "NSViewController"; title = "External Manager"; ObjectID = "s6y-wL-pnr"; */ +"s6y-wL-pnr.title" = "远程控制器"; + /* Class = "NSMenu"; title = "Experimental"; ObjectID = "sbS-Fj-gxn"; */ "sbS-Fj-gxn.title" = "试验性功能"; +/* Class = "NSMenuItem"; title = "Use alpha meta"; ObjectID = "sk5-MZ-XB1"; */ +"sk5-MZ-XB1.title" = "使用 alpha meta"; + +/* Class = "NSMenuItem"; title = "Version: none"; ObjectID = "Stq-Vy-QaD"; */ +"Stq-Vy-QaD.title" = "版本: 未知"; + /* Class = "NSMenu"; title = "Config"; ObjectID = "tck-zU-JKQ"; */ "tck-zU-JKQ.title" = "配置"; /* Class = "NSTextFieldCell"; title = "Configs"; ObjectID = "tL1-bl-LXd"; */ "tL1-bl-LXd.title" = "托管的配置文件:"; +/* Class = "NSMenuItem"; title = "Requires restart ⚠️"; ObjectID = "u64-fu-xPW"; */ +"u64-fu-xPW.title" = "需要重启 ⚠️"; + /* Class = "NSMenu"; title = "API Connect Error"; ObjectID = "UU2-uE-YB4"; */ "UU2-uE-YB4.title" = "API Connect Error"; /* Class = "NSMenuItem"; title = "Allow connect from Lan"; ObjectID = "Vz8-7n-vx6"; */ "Vz8-7n-vx6.title" = "允许局域网连接"; +/* Class = "NSMenu"; title = "Rule providers"; ObjectID = "wiW-XY-cyg"; */ +"wiW-XY-cyg.title" = "规则供应商"; + +/* Class = "NSTextFieldCell"; title = "This allows you to control the clash core running in the different machine"; ObjectID = "WkL-aX-66E"; */ +"WkL-aX-66E.title" = "远程控制器允许你控制其他设备上的 Clash 状态。"; + +/* Class = "NSMenuItem"; title = "Alpha Core"; ObjectID = "WNb-4C-MWu"; */ +"WNb-4C-MWu.title" = "Alpha 内核"; + /* Class = "NSMenu"; title = "Log level"; ObjectID = "wqo-3T-4qO"; */ "wqo-3T-4qO.title" = "日志等级"; -/* Class = "NSMenuItem"; title = "Use built in api"; ObjectID = "xG5-B4-mlw"; */ -"xG5-B4-mlw.title" = "使用内置接口"; +/* Class = "NSMenuItem"; title = "Flush fake-ip cache"; ObjectID = "WZT-AH-ria"; */ +"WZT-AH-ria.title" = "清空 Fake-IP 缓存"; + +/* Class = "NSMenuItem"; title = "Update GEO databases"; ObjectID = "WZu-fm-nxd"; */ +"WZu-fm-nxd.title" = "更新 Geo 数据库"; /* Class = "NSMenuItem"; title = "Dashboard"; ObjectID = "XG6-2M-PNi"; */ "XG6-2M-PNi.title" = "控制台"; @@ -154,41 +229,14 @@ /* Class = "NSMenuItem"; title = "Show network indicator"; ObjectID = "YIO-Vj-64f"; */ "YIO-Vj-64f.title" = "显示实时速率"; -/* Class = "NSTextFieldCell"; title = "Core Version"; ObjectID = "zwo-q5-k5N"; */ -"zwo-q5-k5N.title" = "内核版本"; - -/* Class = "NSMenuItem"; title = "Copy shell command (External IP)"; ObjectID = "7wl-vK-5JO"; */ -"7wl-vK-5JO.title" = "复制终端代理命令(外部IP)"; - -/* Class = "NSTableColumn"; headerCell.title = "Api Secret"; ObjectID = "5hn-k8-CWe"; */ -"5hn-k8-CWe.headerCell.title" = "Api Secret"; - -/* Class = "NSTextFieldCell"; title = "External Controls"; ObjectID = "9gE-NX-2wJ"; */ -"9gE-NX-2wJ.title" = "远程控制器"; - -/* Class = "NSButtonCell"; title = "Delete"; ObjectID = "B2w-4r-5Kh"; */ -"B2w-4r-5Kh.title" = "删除"; - -/* Class = "NSButtonCell"; title = "Add"; ObjectID = "ZcF-10-jsl"; */ -"ZcF-10-jsl.title" = "添加"; - -/* Class = "NSViewController"; title = "External Manager"; ObjectID = "s6y-wL-pnr"; */ -"s6y-wL-pnr.title" = "远程控制器"; - /* Class = "NSTableColumn"; headerCell.title = "Api Url"; ObjectID = "yO6-uZ-IRv"; */ "yO6-uZ-IRv.headerCell.title" = "Api Url"; -/* Class = "NSMenu"; title = "Remote Controller"; ObjectID = "1He-Eq-fSy"; */ -"1He-Eq-fSy.title" = "远程控制器"; - -/* Class = "NSMenuItem"; title = "Remote Controller"; ObjectID = "BRR-WK-aeP"; */ -"BRR-WK-aeP.title" = "远程控制器"; - -/* Class = "NSMenuItem"; title = " Manage"; ObjectID = "hlb-KQ-Fdr"; */ -"hlb-KQ-Fdr.title" = "管理"; +/* Class = "NSButtonCell"; title = "Add"; ObjectID = "ZcF-10-jsl"; */ +"ZcF-10-jsl.title" = "添加"; -/* Class = "NSTextFieldCell"; title = "This allows you to control the clash core running in the different machine"; ObjectID = "WkL-aX-66E"; */ -"WkL-aX-66E.title" = "远程控制器允许你控制其他设备上的 Clash 状态。"; +/* Class = "NSMenuItem"; title = "Tun mode"; ObjectID = "ZoW-Ax-rde"; */ +"ZoW-Ax-rde.title" = "Tun 模式"; -/* Class = "NSMenuItem"; title = "Set update Interval"; ObjectID = "h1H-7k-9HS"; */ -"h1H-7k-9HS.title" = "设置更新间隔"; +/* Class = "NSTextFieldCell"; title = "Core Version"; ObjectID = "zwo-q5-k5N"; */ +"zwo-q5-k5N.title" = "内核版本";