From 2d64720ab152744767e52c804dd523461b781982 Mon Sep 17 00:00:00 2001 From: Trung Phan Date: Tue, 19 May 2020 10:45:20 +0700 Subject: [PATCH 1/6] Add swipe gesture to statusbar --- Blurred.xcodeproj/project.pbxproj | 4 ++++ .../ViewControllers/StatusBarController.swift | 3 +++ .../Views/StatusBarSwipeToSetAlphaView.swift | 24 +++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 Blurred/Views/StatusBarSwipeToSetAlphaView.swift diff --git a/Blurred.xcodeproj/project.pbxproj b/Blurred.xcodeproj/project.pbxproj index 9df722e..35686fc 100644 --- a/Blurred.xcodeproj/project.pbxproj +++ b/Blurred.xcodeproj/project.pbxproj @@ -32,6 +32,7 @@ 5515742323C43FC5006BE18F /* StatusBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5515742223C43FC5006BE18F /* StatusBarController.swift */; }; 5515742523C46FE8006BE18F /* UserDefaults+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5515742423C46FE8006BE18F /* UserDefaults+Extension.swift */; }; 553B8D1B23C2E43D0009CA0F /* DimManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 553B8D1A23C2E43D0009CA0F /* DimManager.swift */; }; + 557D86AF2473878900C4B809 /* StatusBarSwipeToSetAlphaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 557D86AE2473878900C4B809 /* StatusBarSwipeToSetAlphaView.swift */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -77,6 +78,7 @@ 5515742223C43FC5006BE18F /* StatusBarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusBarController.swift; sourceTree = ""; }; 5515742423C46FE8006BE18F /* UserDefaults+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Extension.swift"; sourceTree = ""; }; 553B8D1A23C2E43D0009CA0F /* DimManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DimManager.swift; sourceTree = ""; }; + 557D86AE2473878900C4B809 /* StatusBarSwipeToSetAlphaView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusBarSwipeToSetAlphaView.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -102,6 +104,7 @@ 0850B62224208EA200717EDE /* Views */ = { isa = PBXGroup; children = ( + 557D86AE2473878900C4B809 /* StatusBarSwipeToSetAlphaView.swift */, 0850B62324208EC300717EDE /* LinkView.swift */, 0851749A23FD099400B3B84F /* GeneralView.swift */, 0850B62524208EE700717EDE /* AboutView.swift */, @@ -330,6 +333,7 @@ 0853667923C58F1E00567AA8 /* Collection+Extension.swift in Sources */, 0853667723C4C0AC00567AA8 /* WindowInfo.swift in Sources */, 085174A323FD2EF300B3B84F /* GlobalKeyBindPreferences.swift in Sources */, + 557D86AF2473878900C4B809 /* StatusBarSwipeToSetAlphaView.swift in Sources */, 0851749C23FD099400B3B84F /* GeneralView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Blurred/ViewControllers/StatusBarController.swift b/Blurred/ViewControllers/StatusBarController.swift index 4e82903..e484427 100644 --- a/Blurred/ViewControllers/StatusBarController.swift +++ b/Blurred/ViewControllers/StatusBarController.swift @@ -25,6 +25,9 @@ class StatusBarController{ private func setupView() { if let button = menuStatusItem.button { button.image = #imageLiteral(resourceName: "ico_menu") + + let swipeView = StatusBarSwipeToSetAlphaView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: button.frame.size)) + button.addSubview(swipeView) } menuStatusItem.menu = getContextMenu() } diff --git a/Blurred/Views/StatusBarSwipeToSetAlphaView.swift b/Blurred/Views/StatusBarSwipeToSetAlphaView.swift new file mode 100644 index 0000000..2c70099 --- /dev/null +++ b/Blurred/Views/StatusBarSwipeToSetAlphaView.swift @@ -0,0 +1,24 @@ +// +// MySwipeStatusBar.swift +// Blurred +// +// Created by Trung Phan on 5/19/20. +// Copyright © 2020 Dwarves Foundation. All rights reserved. +// + +import Cocoa + +class StatusBarSwipeToSetAlphaView: NSView { + override func wantsScrollEventsForSwipeTracking(on axis: NSEvent.GestureAxis) -> Bool { + if axis == .vertical { + return true + } + return false + } + + override func scrollWheel(with event: NSEvent) { + + if event.deltaY > 0 { if (DimManager.sharedInstance.setting.alpha > 10.0) { DimManager.sharedInstance.setting.alpha -= 1.0}} + if event.deltaY < 0 { if (DimManager.sharedInstance.setting.alpha < 100) { DimManager.sharedInstance.setting.alpha += 1 }} + } +} From 5b5af429e5de33a902c9e6983c3040bfb60f0da0 Mon Sep 17 00:00:00 2001 From: Peter Luo Date: Tue, 16 Jun 2020 19:13:32 +0800 Subject: [PATCH 2/6] Add basic Chinese Simplified translation --- Blurred.xcodeproj/project.pbxproj | 31 ++++++-- Blurred/Base.lproj/Main.storyboard | 4 +- Blurred/Views/LinkView.swift | 7 +- Blurred/en.lproj/Localizable.strings | 7 ++ Blurred/en.lproj/Main.strings | 84 ++++++++++++++++++++++ Blurred/zh-Hans.lproj/Localizable.strings | 29 ++++++++ Blurred/zh-Hans.lproj/Main.strings | 25 +++++++ BlurredLauncher/zh-Hans.lproj/Main.strings | 69 ++++++++++++++++++ 8 files changed, 249 insertions(+), 7 deletions(-) create mode 100644 Blurred/en.lproj/Localizable.strings create mode 100644 Blurred/en.lproj/Main.strings create mode 100644 Blurred/zh-Hans.lproj/Localizable.strings create mode 100644 Blurred/zh-Hans.lproj/Main.strings create mode 100644 BlurredLauncher/zh-Hans.lproj/Main.strings diff --git a/Blurred.xcodeproj/project.pbxproj b/Blurred.xcodeproj/project.pbxproj index 35686fc..1118151 100644 --- a/Blurred.xcodeproj/project.pbxproj +++ b/Blurred.xcodeproj/project.pbxproj @@ -33,6 +33,7 @@ 5515742523C46FE8006BE18F /* UserDefaults+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5515742423C46FE8006BE18F /* UserDefaults+Extension.swift */; }; 553B8D1B23C2E43D0009CA0F /* DimManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 553B8D1A23C2E43D0009CA0F /* DimManager.swift */; }; 557D86AF2473878900C4B809 /* StatusBarSwipeToSetAlphaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 557D86AE2473878900C4B809 /* StatusBarSwipeToSetAlphaView.swift */; }; + B32C8D902498D3A9003562C9 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = B32C8D922498D3A9003562C9 /* Localizable.strings */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -79,6 +80,11 @@ 5515742423C46FE8006BE18F /* UserDefaults+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Extension.swift"; sourceTree = ""; }; 553B8D1A23C2E43D0009CA0F /* DimManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DimManager.swift; sourceTree = ""; }; 557D86AE2473878900C4B809 /* StatusBarSwipeToSetAlphaView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusBarSwipeToSetAlphaView.swift; sourceTree = ""; }; + B32C8D812498CF8D003562C9 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Main.strings; sourceTree = ""; }; + B32C8D8C2498D0F7003562C9 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Main.strings"; sourceTree = ""; }; + B32C8D8D2498D0F7003562C9 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Main.strings"; sourceTree = ""; }; + B32C8D912498D3A9003562C9 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; + B32C8D932498D3AE003562C9 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -170,6 +176,7 @@ 55AA99F523B07AB8005478F2 /* ViewControllers */, 08FF678C23A9156A00EACD58 /* AppDelegate.swift */, 08FF679023A9156C00EACD58 /* Assets.xcassets */, + B32C8D922498D3A9003562C9 /* Localizable.strings */, 08FF679223A9156C00EACD58 /* Main.storyboard */, 08FF679523A9156C00EACD58 /* Info.plist */, 08FF678A23A9156A00EACD58 /* Products */, @@ -268,6 +275,7 @@ knownRegions = ( en, Base, + "zh-Hans", ); mainGroup = 08FF678023A9156A00EACD58; packageReferences = ( @@ -298,6 +306,7 @@ buildActionMask = 2147483647; files = ( 08FF679123A9156C00EACD58 /* Assets.xcassets in Resources */, + B32C8D902498D3A9003562C9 /* Localizable.strings in Resources */, 08FF679423A9156C00EACD58 /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -345,6 +354,7 @@ isa = PBXVariantGroup; children = ( 0889D10B23C4721100E867FF /* Base */, + B32C8D8D2498D0F7003562C9 /* zh-Hans */, ); name = Main.storyboard; sourceTree = ""; @@ -353,10 +363,21 @@ isa = PBXVariantGroup; children = ( 08FF679323A9156C00EACD58 /* Base */, + B32C8D812498CF8D003562C9 /* en */, + B32C8D8C2498D0F7003562C9 /* zh-Hans */, ); name = Main.storyboard; sourceTree = ""; }; + B32C8D922498D3A9003562C9 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + B32C8D912498D3A9003562C9 /* zh-Hans */, + B32C8D932498D3AE003562C9 /* en */, + ); + name = Localizable.strings; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ @@ -367,7 +388,7 @@ CODE_SIGN_ENTITLEMENTS = BlurredLauncher/BlurredLauncher.entitlements; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = W777S7V8TN; + DEVELOPMENT_TEAM = VGURA84Q2L; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = BlurredLauncher/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -389,7 +410,7 @@ CODE_SIGN_ENTITLEMENTS = BlurredLauncher/BlurredLauncher.entitlements; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = W777S7V8TN; + DEVELOPMENT_TEAM = VGURA84Q2L; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = BlurredLauncher/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -408,6 +429,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -468,6 +490,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -526,7 +549,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 2; - DEVELOPMENT_TEAM = W777S7V8TN; + DEVELOPMENT_TEAM = VGURA84Q2L; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = Blurred/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -551,7 +574,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 2; - DEVELOPMENT_TEAM = W777S7V8TN; + DEVELOPMENT_TEAM = VGURA84Q2L; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = Blurred/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/Blurred/Base.lproj/Main.storyboard b/Blurred/Base.lproj/Main.storyboard index dbc8676..fadef50 100644 --- a/Blurred/Base.lproj/Main.storyboard +++ b/Blurred/Base.lproj/Main.storyboard @@ -1,7 +1,7 @@ - + - + diff --git a/Blurred/Views/LinkView.swift b/Blurred/Views/LinkView.swift index c603d87..4e38b0c 100644 --- a/Blurred/Views/LinkView.swift +++ b/Blurred/Views/LinkView.swift @@ -26,13 +26,18 @@ struct LinkView: View { .frame(width: 16) .foregroundColor(.primary) - Text(title) + Text(localizedTitle) .fontWeight(.medium) .foregroundColor(.primary) } }.buttonStyle(LinkButtonStyle()) } } + + private var localizedTitle: String { + let localizedString = NSLocalizedString(title, comment: "") + return localizedString + } } struct LinkView_Previews: PreviewProvider { diff --git a/Blurred/en.lproj/Localizable.strings b/Blurred/en.lproj/Localizable.strings new file mode 100644 index 0000000..b212d0e --- /dev/null +++ b/Blurred/en.lproj/Localizable.strings @@ -0,0 +1,7 @@ +/* + Localizable.strings + Blurred + + Created by Peter Luo on 2020/6/16. + Copyright © 2020 Dwarves Foundation. All rights reserved. +*/ diff --git a/Blurred/en.lproj/Main.strings b/Blurred/en.lproj/Main.strings new file mode 100644 index 0000000..5633c31 --- /dev/null +++ b/Blurred/en.lproj/Main.strings @@ -0,0 +1,84 @@ + +/* Class = "NSMenuItem"; title = "Blurred"; ObjectID = "1Xt-HY-uBw"; */ +"1Xt-HY-uBw.title" = "Blurred"; + +/* Class = "NSMenuItem"; title = "Quit Dimmer Bar"; ObjectID = "4sb-4s-VLi"; */ +"4sb-4s-VLi.title" = "Quit Dimmer Bar"; + +/* Class = "NSMenuItem"; title = "Edit"; ObjectID = "5QF-Oa-p0T"; */ +"5QF-Oa-p0T.title" = "Edit"; + +/* Class = "NSMenuItem"; title = "About Dimmer Bar"; ObjectID = "5kV-Vb-QxS"; */ +"5kV-Vb-QxS.title" = "About Dimmer Bar"; + +/* Class = "NSWindow"; title = "General"; ObjectID = "9fi-09-O47"; */ +"9fi-09-O47.title" = "General"; + +/* Class = "NSMenu"; title = "Main Menu"; ObjectID = "AYu-sK-qS6"; */ +"AYu-sK-qS6.title" = "Main Menu"; + +/* Class = "NSMenuItem"; title = "Preferences…"; ObjectID = "BOF-NM-1cW"; */ +"BOF-NM-1cW.title" = "Preferences…"; + +/* Class = "NSMenu"; title = "Help"; ObjectID = "F2S-fz-NVQ"; */ +"F2S-fz-NVQ.title" = "Help"; + +/* Class = "NSSegmentedCell"; F3F-sa-eQc.ibShadowedLabels[0] = "General"; ObjectID = "F3F-sa-eQc"; */ +"F3F-sa-eQc.ibShadowedLabels[0]" = "General"; + +/* Class = "NSSegmentedCell"; F3F-sa-eQc.ibShadowedLabels[1] = "About"; ObjectID = "F3F-sa-eQc"; */ +"F3F-sa-eQc.ibShadowedLabels[1]" = "About"; + +/* Class = "NSMenuItem"; title = "Dimmer Bar Help"; ObjectID = "FKE-Sm-Kum"; */ +"FKE-Sm-Kum.title" = "Dimmer Bar Help"; + +/* Class = "NSMenuItem"; title = "View"; ObjectID = "H8h-7b-M4v"; */ +"H8h-7b-M4v.title" = "View"; + +/* Class = "NSMenuItem"; title = "Show All"; ObjectID = "Kd2-mp-pUS"; */ +"Kd2-mp-pUS.title" = "Show All"; + +/* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "LE2-aR-0XJ"; */ +"LE2-aR-0XJ.title" = "Bring All to Front"; + +/* Class = "NSMenuItem"; title = "Services"; ObjectID = "NMo-om-nkz"; */ +"NMo-om-nkz.title" = "Services"; + +/* Class = "NSMenuItem"; title = "Minimize"; ObjectID = "OY7-WF-poV"; */ +"OY7-WF-poV.title" = "Minimize"; + +/* Class = "NSMenuItem"; title = "Hide Dimmer Bar"; ObjectID = "Olw-nP-bQN"; */ +"Olw-nP-bQN.title" = "Hide Dimmer Bar"; + +/* Class = "NSMenuItem"; title = "Zoom"; ObjectID = "R4o-n2-Eq4"; */ +"R4o-n2-Eq4.title" = "Zoom"; + +/* Class = "NSMenu"; title = "Window"; ObjectID = "Td7-aD-5lo"; */ +"Td7-aD-5lo.title" = "Window"; + +/* Class = "NSMenuItem"; title = "Hide Others"; ObjectID = "Vdr-fp-XzO"; */ +"Vdr-fp-XzO.title" = "Hide Others"; + +/* Class = "NSMenuItem"; title = "Window"; ObjectID = "aUF-d1-5bR"; */ +"aUF-d1-5bR.title" = "Window"; + +/* Class = "NSMenuItem"; title = "File"; ObjectID = "dMs-cI-mzQ"; */ +"dMs-cI-mzQ.title" = "File"; + +/* Class = "NSToolbarItem"; label = "Custom View"; ObjectID = "e5C-OW-vng"; */ +"e5C-OW-vng.label" = "Custom View"; + +/* Class = "NSToolbarItem"; paletteLabel = "Custom View"; ObjectID = "e5C-OW-vng"; */ +"e5C-OW-vng.paletteLabel" = "Custom View"; + +/* Class = "NSMenu"; title = "Services"; ObjectID = "hz9-B4-Xy5"; */ +"hz9-B4-Xy5.title" = "Services"; + +/* Class = "NSMenuItem"; title = "Format"; ObjectID = "jxT-CU-nIS"; */ +"jxT-CU-nIS.title" = "Format"; + +/* Class = "NSMenu"; title = "Blurred"; ObjectID = "uQy-DD-JDr"; */ +"uQy-DD-JDr.title" = "Blurred"; + +/* Class = "NSMenuItem"; title = "Help"; ObjectID = "wpr-3q-Mcd"; */ +"wpr-3q-Mcd.title" = "Help"; diff --git a/Blurred/zh-Hans.lproj/Localizable.strings b/Blurred/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000..837acc5 --- /dev/null +++ b/Blurred/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,29 @@ +/* + Localizable.strings + Blurred + + Created by Peter Luo on 2020/6/16. + Copyright © 2020 Dwarves Foundation. All rights reserved. +*/ + +// GeneralView +"General"="通用"; +"Blurred level"="模糊等级"; +"Blur mode"="模糊模式"; +"Single"="单个"; +"Parallel"="平行"; +"Enable Blurred"="启用背景模糊"; +"Start Blurred when log in"="在登录时启用背景模糊"; +"Open Preferences Window when login"="在登录时显示偏好设置"; +"Global shortcut"="全局快捷键"; +"Listening..."="正在监听..."; +"Set Hotkey"="设置快捷键"; + +// AboutView +"About"="关于"; +"Blurred"="Blurred"; +"Focus on your work"="专注你的工作"; +"Know more about us"="关于我们"; +"Follow us on Twitter"="在推特上关注我们"; +"This app is fully open source"="此应用完全开源"; +"Email us"="电子邮件"; diff --git a/Blurred/zh-Hans.lproj/Main.strings b/Blurred/zh-Hans.lproj/Main.strings new file mode 100644 index 0000000..bbee313 --- /dev/null +++ b/Blurred/zh-Hans.lproj/Main.strings @@ -0,0 +1,25 @@ +"1Xt-HY-uBw.title" = "Blurred"; +"4sb-4s-VLi.title" = "退出 Dimmer Bar"; +"5kV-Vb-QxS.title" = "关于 Dimmer Bar"; +"9fi-09-O47.title" = "通用"; +"AYu-sK-qS6.title" = "主菜单"; +"BOF-NM-1cW.title" = "偏好设置…"; +"F2S-fz-NVQ.title" = "帮助"; +"F3F-sa-eQc.ibShadowedLabels[0]" = "通用"; +"F3F-sa-eQc.ibShadowedLabels[1]" = "关于"; +"FKE-Sm-Kum.title" = "Dimmer Bar 帮助"; +"H8h-7b-M4v.title" = "视图"; +"Kd2-mp-pUS.title" = "显示全部"; +"LE2-aR-0XJ.title" = "Bring All to Front"; +"NMo-om-nkz.title" = "服务"; +"OY7-WF-poV.title" = "最小化"; +"Olw-nP-bQN.title" = "隐藏 Dimmer Bar" +"R4o-n2-Eq4.title" = "缩放"; +"Td7-aD-5lo.title" = "窗口"; +"Vdr-fp-XzO.title" = "隐藏其他"; +"aUF-d1-5bR.title" = "窗口"; +"dMs-cI-mzQ.title" = "文件";= +"hz9-B4-Xy5.title" = "服务"; +"jxT-CU-nIS.title" = "格式"; +"uQy-DD-JDr.title" = "Blurred"; +"wpr-3q-Mcd.title" = "帮助"; diff --git a/BlurredLauncher/zh-Hans.lproj/Main.strings b/BlurredLauncher/zh-Hans.lproj/Main.strings new file mode 100644 index 0000000..2d80973 --- /dev/null +++ b/BlurredLauncher/zh-Hans.lproj/Main.strings @@ -0,0 +1,69 @@ + +/* Class = "NSMenuItem"; title = "dimmerBarLauncher"; ObjectID = "1Xt-HY-uBw"; */ +"1Xt-HY-uBw.title" = "dimmerBarLauncher"; + +/* Class = "NSMenuItem"; title = "Quit dimmerBarLauncher"; ObjectID = "4sb-4s-VLi"; */ +"4sb-4s-VLi.title" = "Quit dimmerBarLauncher"; + +/* Class = "NSMenuItem"; title = "Edit"; ObjectID = "5QF-Oa-p0T"; */ +"5QF-Oa-p0T.title" = "Edit"; + +/* Class = "NSMenuItem"; title = "About dimmerBarLauncher"; ObjectID = "5kV-Vb-QxS"; */ +"5kV-Vb-QxS.title" = "About dimmerBarLauncher"; + +/* Class = "NSMenu"; title = "Main Menu"; ObjectID = "AYu-sK-qS6"; */ +"AYu-sK-qS6.title" = "Main Menu"; + +/* Class = "NSMenuItem"; title = "Preferences…"; ObjectID = "BOF-NM-1cW"; */ +"BOF-NM-1cW.title" = "Preferences…"; + +/* Class = "NSMenu"; title = "Help"; ObjectID = "F2S-fz-NVQ"; */ +"F2S-fz-NVQ.title" = "Help"; + +/* Class = "NSMenuItem"; title = "dimmerBarLauncher Help"; ObjectID = "FKE-Sm-Kum"; */ +"FKE-Sm-Kum.title" = "dimmerBarLauncher Help"; + +/* Class = "NSMenuItem"; title = "View"; ObjectID = "H8h-7b-M4v"; */ +"H8h-7b-M4v.title" = "View"; + +/* Class = "NSMenuItem"; title = "Show All"; ObjectID = "Kd2-mp-pUS"; */ +"Kd2-mp-pUS.title" = "Show All"; + +/* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "LE2-aR-0XJ"; */ +"LE2-aR-0XJ.title" = "Bring All to Front"; + +/* Class = "NSMenuItem"; title = "Services"; ObjectID = "NMo-om-nkz"; */ +"NMo-om-nkz.title" = "Services"; + +/* Class = "NSMenuItem"; title = "Minimize"; ObjectID = "OY7-WF-poV"; */ +"OY7-WF-poV.title" = "Minimize"; + +/* Class = "NSMenuItem"; title = "Hide dimmerBarLauncher"; ObjectID = "Olw-nP-bQN"; */ +"Olw-nP-bQN.title" = "Hide dimmerBarLauncher"; + +/* Class = "NSMenuItem"; title = "Zoom"; ObjectID = "R4o-n2-Eq4"; */ +"R4o-n2-Eq4.title" = "Zoom"; + +/* Class = "NSMenu"; title = "Window"; ObjectID = "Td7-aD-5lo"; */ +"Td7-aD-5lo.title" = "Window"; + +/* Class = "NSMenuItem"; title = "Hide Others"; ObjectID = "Vdr-fp-XzO"; */ +"Vdr-fp-XzO.title" = "Hide Others"; + +/* Class = "NSMenuItem"; title = "Window"; ObjectID = "aUF-d1-5bR"; */ +"aUF-d1-5bR.title" = "Window"; + +/* Class = "NSMenuItem"; title = "File"; ObjectID = "dMs-cI-mzQ"; */ +"dMs-cI-mzQ.title" = "File"; + +/* Class = "NSMenu"; title = "Services"; ObjectID = "hz9-B4-Xy5"; */ +"hz9-B4-Xy5.title" = "Services"; + +/* Class = "NSMenuItem"; title = "Format"; ObjectID = "jxT-CU-nIS"; */ +"jxT-CU-nIS.title" = "Format"; + +/* Class = "NSMenu"; title = "dimmerBarLauncher"; ObjectID = "uQy-DD-JDr"; */ +"uQy-DD-JDr.title" = "dimmerBarLauncher"; + +/* Class = "NSMenuItem"; title = "Help"; ObjectID = "wpr-3q-Mcd"; */ +"wpr-3q-Mcd.title" = "Help"; From 95c3db8f4840cba86a84bfc63791ebb1e648d948 Mon Sep 17 00:00:00 2001 From: Peter Luo Date: Tue, 16 Jun 2020 19:51:06 +0800 Subject: [PATCH 3/6] Add ZHCN translation to Status Bar --- Blurred.xcodeproj/project.pbxproj | 4 ++++ .../xcshareddata/xcschemes/Blurred.xcscheme | 1 + Blurred/Utilities/String+Extension.swift | 15 +++++++++++++++ Blurred/ViewControllers/StatusBarController.swift | 12 ++++++------ Blurred/Views/LinkView.swift | 7 +------ Blurred/zh-Hans.lproj/Localizable.strings | 9 +++++++-- 6 files changed, 34 insertions(+), 14 deletions(-) create mode 100644 Blurred/Utilities/String+Extension.swift diff --git a/Blurred.xcodeproj/project.pbxproj b/Blurred.xcodeproj/project.pbxproj index 1118151..a64b8cf 100644 --- a/Blurred.xcodeproj/project.pbxproj +++ b/Blurred.xcodeproj/project.pbxproj @@ -34,6 +34,7 @@ 553B8D1B23C2E43D0009CA0F /* DimManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 553B8D1A23C2E43D0009CA0F /* DimManager.swift */; }; 557D86AF2473878900C4B809 /* StatusBarSwipeToSetAlphaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 557D86AE2473878900C4B809 /* StatusBarSwipeToSetAlphaView.swift */; }; B32C8D902498D3A9003562C9 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = B32C8D922498D3A9003562C9 /* Localizable.strings */; }; + B32C8D992498E837003562C9 /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B32C8D982498E837003562C9 /* String+Extension.swift */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -85,6 +86,7 @@ B32C8D8D2498D0F7003562C9 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Main.strings"; sourceTree = ""; }; B32C8D912498D3A9003562C9 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; B32C8D932498D3AE003562C9 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + B32C8D982498E837003562C9 /* String+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extension.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -205,6 +207,7 @@ 0853667823C58F1E00567AA8 /* Collection+Extension.swift */, 083501CB23C5DF0400F6E567 /* EventMonitor.swift */, 08203CCF23CD9CBE0006AE7C /* Bundle+Extension.swift */, + B32C8D982498E837003562C9 /* String+Extension.swift */, ); path = Utilities; sourceTree = ""; @@ -329,6 +332,7 @@ 0850B62624208EE700717EDE /* AboutView.swift in Sources */, 553B8D1B23C2E43D0009CA0F /* DimManager.swift in Sources */, 083501CC23C5DF0400F6E567 /* EventMonitor.swift in Sources */, + B32C8D992498E837003562C9 /* String+Extension.swift in Sources */, 0850B6282420ABCB00717EDE /* GeneralViewController.swift in Sources */, 5515742323C43FC5006BE18F /* StatusBarController.swift in Sources */, 0851749B23FD099400B3B84F /* SettingObservable.swift in Sources */, diff --git a/Blurred.xcodeproj/xcshareddata/xcschemes/Blurred.xcscheme b/Blurred.xcodeproj/xcshareddata/xcschemes/Blurred.xcscheme index 915376d..d4e0828 100644 --- a/Blurred.xcodeproj/xcshareddata/xcschemes/Blurred.xcscheme +++ b/Blurred.xcodeproj/xcshareddata/xcschemes/Blurred.xcscheme @@ -34,6 +34,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "zh-Hans" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/Blurred/Utilities/String+Extension.swift b/Blurred/Utilities/String+Extension.swift new file mode 100644 index 0000000..4fdbad3 --- /dev/null +++ b/Blurred/Utilities/String+Extension.swift @@ -0,0 +1,15 @@ +// +// String+Extension.swift +// Blurred +// +// Created by Peter Luo on 2020/6/16. +// Copyright © 2020 Dwarves Foundation. All rights reserved. +// + +import Foundation + +extension String { + var localized: String { + return NSLocalizedString(self, comment: "") + } +} diff --git a/Blurred/ViewControllers/StatusBarController.swift b/Blurred/ViewControllers/StatusBarController.swift index e484427..d12ac60 100644 --- a/Blurred/ViewControllers/StatusBarController.swift +++ b/Blurred/ViewControllers/StatusBarController.swift @@ -59,7 +59,7 @@ class StatusBarController{ private func getContextMenu() -> NSMenu { let menu = NSMenu() let sliderMenuItem = NSMenuItem() - let titleEnable = DimManager.sharedInstance.setting.isEnabled ? "Disable" : "Enable" + let titleEnable = DimManager.sharedInstance.setting.isEnabled ? "Disable".localized : "Enable".localized let enableButton = NSMenuItem(title: titleEnable, action: #selector(toggleEnable), keyEquivalent: "E") enableButton.target = self @@ -67,7 +67,7 @@ class StatusBarController{ DimManager.sharedInstance.setting.$isEnabled .receive(on: DispatchQueue.main) .sink {[weak enableButton] isEnabled in - let title = isEnabled ? "Disable" : "Enable" + let title = isEnabled ? "Disable".localized : "Enable".localized enableButton?.title = title } .store(in: &cancellableSet) @@ -85,15 +85,15 @@ class StatusBarController{ ]) sliderMenuItem.view = view - menu.addItem(withTitle: "Slide to set Dim level", action: nil, keyEquivalent: "") + menu.addItem(withTitle: "Slide to set Dim level".localized, action: nil, keyEquivalent: "") menu.addItem(sliderMenuItem) menu.addItem(NSMenuItem.separator()) menu.addItem(enableButton) menu.addItem(NSMenuItem.separator()) - menu.addItem(NSMenuItem(title: "Preferences...", action: #selector(openPreferences), keyEquivalent: "P")) + menu.addItem(NSMenuItem(title: "Preferences...".localized, action: #selector(openPreferences), keyEquivalent: "P")) menu.addItem(NSMenuItem.separator()) - menu.addItem(NSMenuItem(title: "Quit", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q")) - menu.item(withTitle: "Preferences...")?.target = self + menu.addItem(NSMenuItem(title: "Quit".localized, action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q")) + menu.item(withTitle: "Preferences...".localized)?.target = self return menu } diff --git a/Blurred/Views/LinkView.swift b/Blurred/Views/LinkView.swift index 4e38b0c..0923fd4 100644 --- a/Blurred/Views/LinkView.swift +++ b/Blurred/Views/LinkView.swift @@ -26,18 +26,13 @@ struct LinkView: View { .frame(width: 16) .foregroundColor(.primary) - Text(localizedTitle) + Text(title.localized) .fontWeight(.medium) .foregroundColor(.primary) } }.buttonStyle(LinkButtonStyle()) } } - - private var localizedTitle: String { - let localizedString = NSLocalizedString(title, comment: "") - return localizedString - } } struct LinkView_Previews: PreviewProvider { diff --git a/Blurred/zh-Hans.lproj/Localizable.strings b/Blurred/zh-Hans.lproj/Localizable.strings index 837acc5..d6314ff 100644 --- a/Blurred/zh-Hans.lproj/Localizable.strings +++ b/Blurred/zh-Hans.lproj/Localizable.strings @@ -7,7 +7,6 @@ */ // GeneralView -"General"="通用"; "Blurred level"="模糊等级"; "Blur mode"="模糊模式"; "Single"="单个"; @@ -20,10 +19,16 @@ "Set Hotkey"="设置快捷键"; // AboutView -"About"="关于"; "Blurred"="Blurred"; "Focus on your work"="专注你的工作"; "Know more about us"="关于我们"; "Follow us on Twitter"="在推特上关注我们"; "This app is fully open source"="此应用完全开源"; "Email us"="电子邮件"; + +// Status Bar +"Slide to set Dim level"="滑动来设置模糊等级"; +"Preferences..."="偏好设置..."; +"Quit"="退出"; +"Disable"="关闭"; +"Enable"="开启"; From b34a2617f2aff3d08d73b271954b1ce559d62c95 Mon Sep 17 00:00:00 2001 From: Peter Luo Date: Tue, 16 Jun 2020 20:10:58 +0800 Subject: [PATCH 4/6] Add ZH_CN translation to the window segments --- .../xcshareddata/xcschemes/Blurred.xcscheme | 1 - Blurred/Base.lproj/Main.storyboard | 2 ++ .../ViewControllers/PreferencesWindowController.swift | 11 +++++++++-- Blurred/zh-Hans.lproj/Localizable.strings | 2 ++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Blurred.xcodeproj/xcshareddata/xcschemes/Blurred.xcscheme b/Blurred.xcodeproj/xcshareddata/xcschemes/Blurred.xcscheme index d4e0828..915376d 100644 --- a/Blurred.xcodeproj/xcshareddata/xcschemes/Blurred.xcscheme +++ b/Blurred.xcodeproj/xcshareddata/xcschemes/Blurred.xcscheme @@ -34,7 +34,6 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "zh-Hans" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/Blurred/Base.lproj/Main.storyboard b/Blurred/Base.lproj/Main.storyboard index fadef50..a8bb9e6 100644 --- a/Blurred/Base.lproj/Main.storyboard +++ b/Blurred/Base.lproj/Main.storyboard @@ -158,10 +158,12 @@ + + diff --git a/Blurred/ViewControllers/PreferencesWindowController.swift b/Blurred/ViewControllers/PreferencesWindowController.swift index 06f2c83..3c0674f 100644 --- a/Blurred/ViewControllers/PreferencesWindowController.swift +++ b/Blurred/ViewControllers/PreferencesWindowController.swift @@ -11,6 +11,9 @@ import SwiftUI import HotKey class PreferencesWindowController: NSWindowController { + + @IBOutlet weak var segmentController: NSSegmentedControl! + enum MenuSegment: Int { case general case about @@ -38,6 +41,10 @@ class PreferencesWindowController: NSWindowController { override func windowDidLoad() { super.windowDidLoad() updateVC() + + // Set localized titles for segment labels + self.segmentController.setLabel("General".localized, forSegment: 0) + self.segmentController.setLabel("About".localized, forSegment: 1) } @@ -50,10 +57,10 @@ class PreferencesWindowController: NSWindowController { switch menuSegment { case .general: self.window?.contentViewController = generalVC - self.window?.title = "General" + self.window?.title = "General".localized case .about: self.window?.contentViewController = aboutVC - self.window?.title = "About" + self.window?.title = "About".localized } var windowOrigin = CGPoint(x: 0, y: 0) diff --git a/Blurred/zh-Hans.lproj/Localizable.strings b/Blurred/zh-Hans.lproj/Localizable.strings index d6314ff..62e3c13 100644 --- a/Blurred/zh-Hans.lproj/Localizable.strings +++ b/Blurred/zh-Hans.lproj/Localizable.strings @@ -32,3 +32,5 @@ "Quit"="退出"; "Disable"="关闭"; "Enable"="开启"; +"General"="通用"; +"About"="关于"; From 3ab73c0cfa36a8a6bbce2ad438638aeed8e72ec8 Mon Sep 17 00:00:00 2001 From: Dario Vladovic Date: Mon, 22 Jun 2020 06:14:56 +0200 Subject: [PATCH 5/6] Add Homebrew install instructions :blue_book: --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index fc13b2a..a74b9ac 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,12 @@ A macOS utility that helps reduce distraction by dimming your inactive noise [![AppStore](misc/appstore.svg)](https://apps.apple.com/us/app/blurred/id1497527363) +#### Using Homebrew + +``` +brew cask install blurred +``` + #### Manual download - [Download latest version](https://github.com/dwarvesf/Blurred/releases/latest) From 2114772bdeb50ba057e18006a6718742a560cbbb Mon Sep 17 00:00:00 2001 From: phucld Date: Tue, 23 Jun 2020 11:54:19 +0700 Subject: [PATCH 6/6] bump version to v1.2.0 --- Blurred.xcodeproj/project.pbxproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Blurred.xcodeproj/project.pbxproj b/Blurred.xcodeproj/project.pbxproj index a64b8cf..0e4a3ac 100644 --- a/Blurred.xcodeproj/project.pbxproj +++ b/Blurred.xcodeproj/project.pbxproj @@ -552,7 +552,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = VGURA84Q2L; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = Blurred/Info.plist; @@ -561,7 +561,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.2.0; PRODUCT_BUNDLE_IDENTIFIER = foundation.dwarves.blurred; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -577,7 +577,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = VGURA84Q2L; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = Blurred/Info.plist; @@ -586,7 +586,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.2.0; PRODUCT_BUNDLE_IDENTIFIER = foundation.dwarves.blurred; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "";