diff --git a/Reveil.xcodeproj/project.pbxproj b/Reveil.xcodeproj/project.pbxproj index 17fe988..c75007c 100644 --- a/Reveil.xcodeproj/project.pbxproj +++ b/Reveil.xcodeproj/project.pbxproj @@ -231,6 +231,7 @@ 0FA0657A2B3D8363000A7ECE /* PresetsHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PresetsHelper.swift; sourceTree = ""; }; 0FA065862B42803B000A7ECE /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; }; 0FA065882B4282BC000A7ECE /* StandardUserDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StandardUserDefaults.swift; sourceTree = ""; }; + 0FCD42972B68BCC400076CE4 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; 0FD0D2672AE0CB27001DD1E8 /* Entry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Entry.swift; sourceTree = ""; }; 0FD0D2692AE0CD95001DD1E8 /* Dashboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Dashboard.swift; sourceTree = ""; }; 0FD0D26B2AE0D39C001DD1E8 /* EntryExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EntryExporter.swift; sourceTree = ""; }; @@ -887,6 +888,7 @@ en, Base, "zh-Hans", + es, ); mainGroup = CC4AE2AB2ACAA4B400DA23AC; packageReferences = ( @@ -1130,6 +1132,7 @@ children = ( CC21B4BE2ACAE5E5003EC114 /* en */, CC21B4C02ACAE601003EC114 /* zh-Hans */, + 0FCD42972B68BCC400076CE4 /* es */, ); name = Localizable.strings; sourceTree = ""; @@ -1304,7 +1307,7 @@ CODE_SIGN_ENTITLEMENTS = Reveil/Reveil.entitlements; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = GXZ23M5TP2; "ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES; @@ -1347,7 +1350,7 @@ CODE_SIGN_ENTITLEMENTS = Reveil/Reveil.entitlements; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = GXZ23M5TP2; "ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES; diff --git a/Reveil.xcodeproj/xcshareddata/xcschemes/Reveil.xcscheme b/Reveil.xcodeproj/xcshareddata/xcschemes/Reveil.xcscheme index ba56f05..bd224c7 100644 --- a/Reveil.xcodeproj/xcshareddata/xcschemes/Reveil.xcscheme +++ b/Reveil.xcodeproj/xcshareddata/xcschemes/Reveil.xcscheme @@ -33,6 +33,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "es" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/Reveil/Pages/AboutView.swift b/Reveil/Pages/AboutView.swift index e36ed80..7c24a2a 100644 --- a/Reveil/Pages/AboutView.swift +++ b/Reveil/Pages/AboutView.swift @@ -42,6 +42,8 @@ struct AboutView: View { @Environment(\.colorScheme) var colorScheme + private static let translatorPage: String = NSLocalizedString("TRANSLATOR_URL", comment: "https://TRANSLATOR_URL") + var body: some View { ScrollView(.vertical) { VStack(alignment: .center, spacing: 20) { @@ -81,6 +83,16 @@ struct AboutView: View { ) } + if !Self.translatorPage.hasPrefix("(") { + Link(destination: URL(string: Self.translatorPage)!) { + LinkCell( + label: NSLocalizedString("TRANSLATOR", comment: "Translator"), + description: NSLocalizedString("@TRANSLATOR", comment: "@Translator"), + hasClosure: true + ) + } + } + Link(destination: URL(string: "mailto:82flex@gmail.com")!) { LinkCell( label: NSLocalizedString("CONTACT", comment: "Contact"), diff --git a/Reveil/en.lproj/Localizable.strings b/Reveil/en.lproj/Localizable.strings index 9734d7b..d3af322 100644 --- a/Reveil/en.lproj/Localizable.strings +++ b/Reveil/en.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* @Translator */ +"@TRANSLATOR" = "(null)"; + /* About */ "ABOUT" = "About"; @@ -952,6 +955,12 @@ /* Process task port was obtained */ "TOUCHED_PROCESS_TASK_PORT" = "Process task port was obtained"; +/* Translator */ +"TRANSLATOR" = "Translator"; + +/* https://TRANSLATOR_URL */ +"TRANSLATOR_URL" = "(null)"; + /* Type */ "TYPE" = "Type"; diff --git a/Reveil/es.lproj/Localizable.strings b/Reveil/es.lproj/Localizable.strings index c004370..61ce7d7 100644 --- a/Reveil/es.lproj/Localizable.strings +++ b/Reveil/es.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* @Translator */ +"@TRANSLATOR" = "@Deci8BelioS"; + /* About */ "ABOUT" = "Acerca de"; @@ -952,6 +955,12 @@ /* Process task port was obtained */ "TOUCHED_PROCESS_TASK_PORT" = "El puerto de tarea del proceso fue obtenido"; +/* Translator */ +"TRANSLATOR" = "Traductor"; + +/* https://TRANSLATOR_URL */ +"TRANSLATOR_URL" = "https://github.com/Deci8BelioS"; + /* Type */ "TYPE" = "Tipo"; diff --git a/Reveil/zh-Hans.lproj/Localizable.strings b/Reveil/zh-Hans.lproj/Localizable.strings index 080f3cd..5939a2f 100644 --- a/Reveil/zh-Hans.lproj/Localizable.strings +++ b/Reveil/zh-Hans.lproj/Localizable.strings @@ -1,3 +1,6 @@ +/* @Translator */ +"@TRANSLATOR" = "(null)"; + /* About */ "ABOUT" = "关于"; @@ -952,6 +955,12 @@ /* Process task port was obtained */ "TOUCHED_PROCESS_TASK_PORT" = "检测到进程任务端口被额外引用"; +/* Translator */ +"TRANSLATOR" = "本地化"; + +/* https://TRANSLATOR_URL */ +"TRANSLATOR_URL" = "(null)"; + /* Type */ "TYPE" = "类型";