diff --git a/ControlWidgets/ControlWidgetsControl.swift b/ControlWidgets/ControlWidgetsControl.swift index fa3c799..10fb588 100644 --- a/ControlWidgets/ControlWidgetsControl.swift +++ b/ControlWidgets/ControlWidgetsControl.swift @@ -23,12 +23,12 @@ struct ControlWidgetsControl: ControlWidget { isOn: isConnected, action: ToggleVPNIntent() ) { isOn in - Label(isOn ? "Connected" : "Disconnected", systemImage: "network") - .controlWidgetActionHint(isOn ? "Disconnect" : "Connect") + Label(isOn ? LocalizedStringResource("vpn_connected") : LocalizedStringResource("vpn_disconnected"), systemImage: "network") + .controlWidgetActionHint(isOn ? LocalizedStringResource("vpn_disconnect") : LocalizedStringResource("vpn_connect")) } } .displayName("EasyTier") - .description("Toggle VPN connection") + .description(LocalizedStringResource("toggle_vpn_connection")) } } @@ -49,9 +49,9 @@ extension ControlWidgetsControl { } struct ToggleVPNIntent: SetValueIntent { - static let title: LocalizedStringResource = "Toggle VPN" + static let title: LocalizedStringResource = "toggle_vpn" - @Parameter(title: "Connected") + @Parameter(title: LocalizedStringResource("vpn_connected")) var value: Bool func perform() async throws -> some IntentResult { diff --git a/EasyTier/Localizable.xcstrings b/EasyTier/Localizable.xcstrings index 6ccf452..c77aedf 100644 --- a/EasyTier/Localizable.xcstrings +++ b/EasyTier/Localizable.xcstrings @@ -2937,6 +2937,38 @@ } } }, + "toggle_vpn" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toggle VPN" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "切换 VPN" + } + } + } + }, + "toggle_vpn_connection" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toggle VPN connection" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "切换 VPN 连接" + } + } + } + }, "tunnel_proto" : { "localizations" : { "en" : { @@ -3145,6 +3177,70 @@ } } }, + "vpn_connect" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connect" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "连接" + } + } + } + }, + "vpn_connected" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connected" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已连接" + } + } + } + }, + "vpn_disconnect" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Disconnect" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "断开" + } + } + } + }, + "vpn_disconnected" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Disconnected" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已断开" + } + } + } + }, "vpn_portal_client_network" : { "localizations" : { "en" : {