diff --git a/Source/AppDelegate.m b/Source/AppDelegate.m index 46d1ed3f..5e9369c0 100644 --- a/Source/AppDelegate.m +++ b/Source/AppDelegate.m @@ -35,6 +35,7 @@ #import "AppDelegate.h" #import "OVNonModalAlertWindowController.h" #import "PreferencesWindowController.h" +#import "frmAboutWindow.h" extern void LTLoadLanguageModel(void); @@ -273,4 +274,9 @@ static const NSTimeInterval kTimeoutInterval = 60.0; return YES; } +- (IBAction) about:(id)sender { + // Show the window: + [[frmAboutWindow defaultController].window orderFront:self]; +} + @end diff --git a/Source/Base.lproj/MainMenu.xib b/Source/Base.lproj/MainMenu.xib index 4c79f2b9..b834ac49 100644 --- a/Source/Base.lproj/MainMenu.xib +++ b/Source/Base.lproj/MainMenu.xib @@ -20,7 +20,7 @@ - + diff --git a/Source/Base.lproj/frmAboutWindow.xib b/Source/Base.lproj/frmAboutWindow.xib new file mode 100644 index 00000000..50d36558 --- /dev/null +++ b/Source/Base.lproj/frmAboutWindow.xib @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + McBopomofo Engine by Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, et al. +vChewing macOS Development Reinforced by Hiraku Wang.
vChewing Phrase Database Maintained by Shiki Suen. + + + + + + + + + + + + + + + + + + + + + DISCLAIMER: The vChewing project is not responsible for the phrase database shipped in the original McBopomofo project. Everything in the vChewing phrase database has been confirmed lawful to the Anti-Secession Law and the National Security Law of the PRC. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Images/Images.xcassets/AboutBanner.imageset/AboutBanner.png b/Source/Images/Images.xcassets/AboutBanner.imageset/AboutBanner.png new file mode 100644 index 00000000..b852e1e3 Binary files /dev/null and b/Source/Images/Images.xcassets/AboutBanner.imageset/AboutBanner.png differ diff --git a/Source/Images/Images.xcassets/AboutBanner.imageset/AboutBanner@2x.png b/Source/Images/Images.xcassets/AboutBanner.imageset/AboutBanner@2x.png new file mode 100644 index 00000000..de4c94d9 Binary files /dev/null and b/Source/Images/Images.xcassets/AboutBanner.imageset/AboutBanner@2x.png differ diff --git a/Source/Images/Images.xcassets/AboutBanner.imageset/AboutBanner@3x.png b/Source/Images/Images.xcassets/AboutBanner.imageset/AboutBanner@3x.png new file mode 100644 index 00000000..ef9000f5 Binary files /dev/null and b/Source/Images/Images.xcassets/AboutBanner.imageset/AboutBanner@3x.png differ diff --git a/Source/Images/Images.xcassets/AboutBanner.imageset/Contents.json b/Source/Images/Images.xcassets/AboutBanner.imageset/Contents.json new file mode 100644 index 00000000..46812c39 --- /dev/null +++ b/Source/Images/Images.xcassets/AboutBanner.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "AboutBanner.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "AboutBanner@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "AboutBanner@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Source/Images/Images.xcassets/AppIcon.appiconset/192X192.png b/Source/Images/Images.xcassets/AppIcon.appiconset/192X192.png deleted file mode 100644 index 2d8cd93e..00000000 Binary files a/Source/Images/Images.xcassets/AppIcon.appiconset/192X192.png and /dev/null differ diff --git a/Source/InputMethodController.mm b/Source/InputMethodController.mm index 64e009bc..7fa19449 100644 --- a/Source/InputMethodController.mm +++ b/Source/InputMethodController.mm @@ -39,10 +39,12 @@ #import "OVStringHelper.h" #import "OVUTF8Helper.h" #import "AppDelegate.h" +#import "frmAboutWindow.h" #import "VTHorizontalCandidateController.h" #import "VTVerticalCandidateController.h" #import "vChewing-Swift.h" + //@import SwiftUI; // C++ namespace usages @@ -1325,8 +1327,7 @@ static double FindHighestScore(const vector& nodes, double epsilon) - (void)showAbout:(id)sender { - [[NSApplication sharedApplication] orderFrontStandardAboutPanel:sender]; - [[NSApplication sharedApplication] activateIgnoringOtherApps:YES]; + [[frmAboutWindow defaultController].window orderFront:sender]; } - (void)toggleChineseConverter:(id)sender diff --git a/Source/Installer/en.lproj/InfoPlist.strings b/Source/Installer/en.lproj/InfoPlist.strings index 080e9bd0..657c8a41 100644 --- a/Source/Installer/en.lproj/InfoPlist.strings +++ b/Source/Installer/en.lproj/InfoPlist.strings @@ -1,4 +1,4 @@ /* Localized versions of Info.plist keys */ CFBundleName = "Install vChewing"; -NSHumanReadableCopyright = "Copyright © 2011-2021 Mengjuei Hsieh et al.\nAll Rights Reserved."; +NSHumanReadableCopyright = "Copyright © 2011-2022 OpenVanilla Project (Mengjuei Hsieh et al.)\nAll Rights Reserved."; diff --git a/Source/Installer/zh-Hans.lproj/InfoPlist.strings b/Source/Installer/zh-Hans.lproj/InfoPlist.strings index 7f7803f6..3338b409 100644 --- a/Source/Installer/zh-Hans.lproj/InfoPlist.strings +++ b/Source/Installer/zh-Hans.lproj/InfoPlist.strings @@ -1,5 +1,5 @@ /* Localized versions of Info.plist keys */ CFBundleName = "安装威注音"; -NSHumanReadableCopyright = "Copyright © 2011-2021 Mengjuei Hsieh et al.\nAll Rights Reserved."; +NSHumanReadableCopyright = "Copyright © 2011-2022 OpenVanilla Project (Mengjuei Hsieh et al.)\nAll Rights Reserved."; diff --git a/Source/Installer/zh-Hans.lproj/MainMenu.xib b/Source/Installer/zh-Hans.lproj/MainMenu.xib index d90801fd..ef091d7f 100644 --- a/Source/Installer/zh-Hans.lproj/MainMenu.xib +++ b/Source/Installer/zh-Hans.lproj/MainMenu.xib @@ -1,8 +1,8 @@ - + - + @@ -87,7 +87,7 @@ - + @@ -97,14 +97,14 @@ - + - + @@ -148,7 +148,7 @@ Gw - + @@ -157,7 +157,7 @@ Gw - + @@ -183,7 +183,7 @@ Gw - + diff --git a/Source/Installer/zh-Hant.lproj/InfoPlist.strings b/Source/Installer/zh-Hant.lproj/InfoPlist.strings index f034b1a5..bdfa843b 100644 --- a/Source/Installer/zh-Hant.lproj/InfoPlist.strings +++ b/Source/Installer/zh-Hant.lproj/InfoPlist.strings @@ -1,5 +1,5 @@ /* Localized versions of Info.plist keys */ CFBundleName = "安裝威注音"; -NSHumanReadableCopyright = "Copyright © 2011-2021 Mengjuei Hsieh et al.\nAll Rights Reserved."; +NSHumanReadableCopyright = "Copyright © 2011-2022 OpenVanilla Project (Mengjuei Hsieh et al.)\nAll Rights Reserved."; diff --git a/Source/Installer/zh-Hant.lproj/MainMenu.xib b/Source/Installer/zh-Hant.lproj/MainMenu.xib index bb333e83..1adabe61 100644 --- a/Source/Installer/zh-Hant.lproj/MainMenu.xib +++ b/Source/Installer/zh-Hant.lproj/MainMenu.xib @@ -1,8 +1,8 @@ - + - + @@ -87,7 +87,7 @@ - + @@ -97,14 +97,14 @@ - + - + @@ -183,7 +183,7 @@ Gw - + diff --git a/Source/en.lproj/InfoPlist.strings b/Source/en.lproj/InfoPlist.strings index a5c0514d..09f06fe8 100644 --- a/Source/en.lproj/InfoPlist.strings +++ b/Source/en.lproj/InfoPlist.strings @@ -1,5 +1,6 @@ CFBundleName = "vChewing"; CFBundleDisplayName = "vChewing"; -NSHumanReadableCopyright = "Copyright © 2011-2021 Mengjuei Hsieh et al.\nAll Rights Reserved."; +NSHumanReadableCopyright = "© 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project."; "org.openvanilla.inputmethod.vChewing.Bopomofo" = "vChewing-CHT"; "org.openvanilla.inputmethod.vChewing.SimpBopomofo" = "vChewing-CHS"; +CFEULAContent = "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."; diff --git a/Source/en.lproj/MITLicense.txt b/Source/en.lproj/MITLicense.txt new file mode 100644 index 00000000..3488b7d0 --- /dev/null +++ b/Source/en.lproj/MITLicense.txt @@ -0,0 +1,5 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Source/en.lproj/frmAboutWindow.strings b/Source/en.lproj/frmAboutWindow.strings new file mode 100644 index 00000000..432fbaec --- /dev/null +++ b/Source/en.lproj/frmAboutWindow.strings @@ -0,0 +1,27 @@ + +/* Class = "NSTextFieldCell"; title = "MIT License:"; ObjectID = "lblMITLicense"; */ +"lblMITLicense.title" = "MIT License:"; + +/* Class = "NSTextFieldCell"; title = "version"; ObjectID = "lblVersionString"; */ +// "lblVersionString.title" = "version"; + +/* Class = "NSWindow"; title = "About vChewing for macOS"; ObjectID = "ttlAboutWindow"; */ +"ttlAboutWindow.title" = "About vChewing for macOS"; + +/* Class = "NSTextFieldCell"; title = "Derived from OpenVanilla McBopopmofo Project."; ObjectID = "lblProjectDescription"; */ +"lblProjectDescription.title" = "Derived from OpenVanilla McBopopmofo Project."; + +/* Class = "NSButtonCell"; title = "OK"; ObjectID = "btnConfirm"; */ +"btnConfirm.title" = "OK"; + +/* Class = "NSTextFieldCell"; title = "vChewing for macOS"; ObjectID = "lblAppTitle"; */ +"lblAppTitle.title" = "vChewing for macOS"; + +/* Class = "NSTextFieldCell"; title = "DISCLAIMER: The vChewing project is not responsible for the phrase database shipped in the original McBopomofo project. Everything in the vChewing phrase database has been confirmed lawful to the Anti-Secession Law and the National Security Law of the PRC."; ObjectID = "lblDisclaimer"; */ +"lblDisclaimer.title" = "DISCLAIMER: The vChewing project is not responsible for the phrase database shipped in the original McBopomofo project. Everything in the vChewing phrase database has been confirmed lawful to the Anti-Secession Law and the National Security Law of the PRC."; + +/* Class = "NSTextFieldCell"; title = "© 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project."; ObjectID = "lblCopyright"; */ +// "lblCopyright.title" = "© 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project."; + +/* Class = "NSTextFieldCell"; title = "McBopomofo Engine by Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, et al.\nvChewing macOS Development Reinforced by Hiraku Wang.
vChewing Phrase Database Maintained by Shiki Suen."; ObjectID = "lblCredits"; */ +"lblCredits.title" = "McBopomofo Engine by Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, et al.\nvChewing macOS Development Reinforced by Hiraku Wang.
vChewing Phrase Database Maintained by Shiki Suen."; diff --git a/Source/frmAboutWindow.h b/Source/frmAboutWindow.h new file mode 100644 index 00000000..3c2c2d73 --- /dev/null +++ b/Source/frmAboutWindow.h @@ -0,0 +1,38 @@ +// +// frmAboutWindow.h +// Tile Map Editor +// +// Created & Original Rights by Nicolás Miari on 2016/02/11. +// Patched by Shiki Suen for the vChewing Project. +// Released under MIT License. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#import + +@interface frmAboutWindow : NSWindowController + ++ (instancetype) defaultController; + +@property (nonatomic) IBOutlet NSTextField *appNameLabel; +@property (nonatomic) IBOutlet NSTextField *appVersionLabel; +@property (nonatomic) IBOutlet NSTextField *appCopyrightLabel; +@property (nonatomic) IBOutlet NSTextView *appEULAContent; + +@end diff --git a/Source/frmAboutWindow.m b/Source/frmAboutWindow.m new file mode 100644 index 00000000..4b608a9d --- /dev/null +++ b/Source/frmAboutWindow.m @@ -0,0 +1,75 @@ +// +// frmAboutWindow.m +// Tile Map Editor +// +// Created & Original Rights by Nicolás Miari on 2016/02/11. +// Patched by Shiki Suen for the vChewing Project. +// Released under MIT License. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#import "frmAboutWindow.h" + + +@implementation frmAboutWindow +@synthesize appNameLabel; +@synthesize appVersionLabel; +@synthesize appCopyrightLabel; +@synthesize appEULAContent; + ++ (instancetype) defaultController { + + static id staticInstance = nil; + static dispatch_once_t onceToken; + + dispatch_once(&onceToken, ^{ + staticInstance = [[self alloc] init]; + }); + + return staticInstance; +} + + +#pragma mark - Initialization + + +- (instancetype) init { + return [super initWithWindowNibName:@"frmAboutWindow" owner:self]; +} + + +#pragma mark - NSWindowController + + +- (void) windowDidLoad { + + [super windowDidLoad]; + + NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary]; + + self.appNameLabel.stringValue = [infoDictionary objectForKey:@"CFBundleName"]; + self.appVersionLabel.stringValue = [infoDictionary objectForKey:@"CFBundleShortVersionString"]; + self.appCopyrightLabel.stringValue = [infoDictionary objectForKey:@"NSHumanReadableCopyright"]; + self.appEULAContent.string = [infoDictionary objectForKey:@"CFEULAContent"]; + + // If you add more custom subviews to display additional information about + // your app, configure them here +} + +@end diff --git a/Source/vChewing-Info.plist b/Source/vChewing-Info.plist index 7e5e7510..51326130 100644 --- a/Source/vChewing-Info.plist +++ b/Source/vChewing-Info.plist @@ -2,6 +2,8 @@ + CFEULAContent + License texts used in the customized about window. CFBundleDevelopmentRegion English CFBundleExecutable @@ -104,7 +106,7 @@ LSUIElement NSHumanReadableCopyright - Copyright © 2011-2021 Mengjuei Hsieh et al. + © 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project. NSMainNibFile MainMenu NSPrincipalClass diff --git a/Source/zh-Hans.lproj/InfoPlist.strings b/Source/zh-Hans.lproj/InfoPlist.strings index 512bfd97..4de42942 100644 --- a/Source/zh-Hans.lproj/InfoPlist.strings +++ b/Source/zh-Hans.lproj/InfoPlist.strings @@ -1,5 +1,6 @@ CFBundleName = "威注音"; CFBundleDisplayName = "威注音"; -NSHumanReadableCopyright = "Copyright © 2011-2021 Mengjuei Hsieh et al.\nAll Rights Reserved."; +NSHumanReadableCopyright = "© 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project."; "org.openvanilla.inputmethod.vChewing.Bopomofo" = "威註音"; "org.openvanilla.inputmethod.vChewing.SimpBopomofo" = "威注音"; +CFEULAContent = "软件的著作权利人依此麻理授权条款,将其对于软件的著作权利授权释出,只要使用者践履以下二项麻理授权条款叙明的义务性规定,其即享有对此软件程式及其相关说明文档自由不受限制地进行利用的权利,范围包括「使用、重制、修改、合并、出版、散布、再授权、及贩售程式重制作品」等诸多方面的应用,而散布程式之人、更可将上述权利传递予其后收受程式的后手,倘若其后收受程式之人亦服膺以下二项麻理授权条款的义务性规定,则其对程式亦享有与前手运用范围相同的同一权利。\n\n散布此一软件程序者,须将本条款其上的「著作权声明」及以下的「免责声明」,内嵌于软件程序及其重制作品的实体之中。\n\n因麻理软件程序的授权模式乃是无偿提供,是以在现行法律的架构下可以主张合理的免除担保责任。麻理软件的著作权人或任何的后续散布者,对于其所散布的麻理软件程序皆不负任何形式上实质上的担保责任,明示亦或隐喻、商业利用性亦或特定目的使用性,这些均不在保障之列。利用麻理软件程序的所有风险均由使用者自行担负。假如所使用的麻理程序发生缺陷性问题,使用者需自行担负修正、改正及必要的服务支出。麻理软件程序的著作权人不负任何形式上实质上的担保责任,无论任何一般的、特殊的、偶发的、因果关系式的损害,或是麻理软件程序的不适用性,均须由使用者自行负担。"; diff --git a/Source/zh-Hans.lproj/MITLicense.txt b/Source/zh-Hans.lproj/MITLicense.txt new file mode 100644 index 00000000..8823b780 --- /dev/null +++ b/Source/zh-Hans.lproj/MITLicense.txt @@ -0,0 +1,5 @@ +軟體的著作權利人依此麻理授權條款,將其對於軟體的著作權利授權釋出,只要使用者踐履以下二項麻理授權條款敘明的義務性規定,其即享有對此軟體程式及其相關說明文檔自由不受限制地進行利用的權利,範圍包括「使用、重製、修改、合併、出版、散布、再授權、及販售程式重製作品」等諸多方面的應用,而散布程式之人、更可將上述權利傳遞予其後收受程式的後手,倘若其後收受程式之人亦服膺以下二項麻理授權條款的義務性規定,則其對程式亦享有與前手運用範圍相同的同一權利。 + +散布此一軟體程式者,須將本條款其上的「著作權聲明」及以下的「免責聲明」,內嵌於軟體程式及其重製作品的實體之中。 + +因麻理軟體程式的授權模式乃是無償提供,是以在現行法律的架構下可以主張合理的免除擔保責任。麻理軟體的著作權人或任何的後續散布者,對於其所散布的麻理軟體程式皆不負任何形式上實質上的擔保責任,明示亦或隱喻、商業利用性亦或特定目的使用性,這些均不在保障之列。利用麻理軟體程式的所有風險均由使用者自行擔負。假如所使用的麻理程式發生缺陷性問題,使用者需自行擔負修正、改正及必要的服務支出。麻理軟體程式的著作權人不負任何形式上實質上的擔保責任,無論任何一般的、特殊的、偶發的、因果關係式的損害,或是麻理軟體程式的不適用性,均須由使用者自行負擔。 diff --git a/Source/zh-Hans.lproj/MainMenu.xib b/Source/zh-Hans.lproj/MainMenu.xib index 4c79f2b9..ce657a67 100644 --- a/Source/zh-Hans.lproj/MainMenu.xib +++ b/Source/zh-Hans.lproj/MainMenu.xib @@ -1,8 +1,8 @@ - + - + @@ -11,7 +11,7 @@ - + @@ -288,6 +288,7 @@ + diff --git a/Source/zh-Hans.lproj/frmAboutWindow.strings b/Source/zh-Hans.lproj/frmAboutWindow.strings new file mode 100644 index 00000000..017c4e33 --- /dev/null +++ b/Source/zh-Hans.lproj/frmAboutWindow.strings @@ -0,0 +1,27 @@ + +/* Class = "NSTextFieldCell"; title = "MIT License:"; ObjectID = "lblMITLicense"; */ +"lblMITLicense.title" = "麻理许可协议 (MIT License):"; + +/* Class = "NSTextFieldCell"; title = "version"; ObjectID = "lblVersionString"; */ +// "lblVersionString.title" = "版本"; + +/* Class = "NSWindow"; title = "About vChewing for macOS"; ObjectID = "ttlAboutWindow"; */ +"ttlAboutWindow.title" = "关于 macOS 版「威注音输入法」"; + +/* Class = "NSTextFieldCell"; title = "Derived from OpenVanilla McBopopmofo Project."; ObjectID = "lblProjectDescription"; */ +"lblProjectDescription.title" = "该专案由 OpenVanilla 小麦注音专案衍生而来。"; + +/* Class = "NSButtonCell"; title = "OK"; ObjectID = "btnConfirm"; */ +"btnConfirm.title" = "确定"; + +/* Class = "NSTextFieldCell"; title = "vChewing for macOS"; ObjectID = "lblAppTitle"; */ +"lblAppTitle.title" = "vChewing for macOS"; + +/* Class = "NSTextFieldCell"; title = "DISCLAIMER: The vChewing project is not responsible for the phrase database shipped in the original McBopomofo project. Everything in the vChewing phrase database has been confirmed lawful to the Anti-Secession Law and the National Security Law of the PRC."; ObjectID = "lblDisclaimer"; */ +"lblDisclaimer.title" = "免责声明:威注音专案对小麦注音官方专案内赠的小麦注音原版词库内容不负任何责任。威注音输入法专用的威注音词库已依照《中华人民共和国国家安全法》与《中华人民共和国反分裂国家法》做过合规处理。"; + +/* Class = "NSTextFieldCell"; title = "© 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project."; ObjectID = "lblCopyright"; */ +// "lblCopyright.title" = "© 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project."; + +/* Class = "NSTextFieldCell"; title = "McBopomofo Engine by Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, et al.\nvChewing macOS Development Reinforced by Hiraku Wang.
vChewing Phrase Database Maintained by Shiki Suen."; ObjectID = "lblCredits"; */ +"lblCredits.title" = "小麦注音引擎研发:Mengjuei Hsieh, Lukhnos Liu, Zonble Yang (Zonble), 等。\n威注音 macOS 程式研发协力:Hiraku Wang。\n威注音词库维护:孙志贵 (Shiki Suen)。"; diff --git a/Source/zh-Hant.lproj/InfoPlist.strings b/Source/zh-Hant.lproj/InfoPlist.strings index 512bfd97..770cbb8a 100644 --- a/Source/zh-Hant.lproj/InfoPlist.strings +++ b/Source/zh-Hant.lproj/InfoPlist.strings @@ -1,5 +1,6 @@ CFBundleName = "威注音"; CFBundleDisplayName = "威注音"; -NSHumanReadableCopyright = "Copyright © 2011-2021 Mengjuei Hsieh et al.\nAll Rights Reserved."; +NSHumanReadableCopyright = "© 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project."; "org.openvanilla.inputmethod.vChewing.Bopomofo" = "威註音"; "org.openvanilla.inputmethod.vChewing.SimpBopomofo" = "威注音"; +CFEULAContent = "軟體的著作權利人依此麻理授權條款,將其對於軟體的著作權利授權釋出,只要使用者踐履以下二項麻理授權條款敘明的義務性規定,其即享有對此軟體程式及其相關說明文檔自由不受限制地進行利用的權利,範圍包括「使用、重製、修改、合併、出版、散布、再授權、及販售程式重製作品」等諸多方面的應用,而散布程式之人、更可將上述權利傳遞予其後收受程式的後手,倘若其後收受程式之人亦服膺以下二項麻理授權條款的義務性規定,則其對程式亦享有與前手運用範圍相同的同一權利。\n\n散布此一軟體程式者,須將本條款其上的「著作權聲明」及以下的「免責聲明」,內嵌於軟體程式及其重製作品的實體之中。\n\n因麻理軟體程式的授權模式乃是無償提供,是以在現行法律的架構下可以主張合理的免除擔保責任。麻理軟體的著作權人或任何的後續散布者,對於其所散布的麻理軟體程式皆不負任何形式上實質上的擔保責任,明示亦或隱喻、商業利用性亦或特定目的使用性,這些均不在保障之列。利用麻理軟體程式的所有風險均由使用者自行擔負。假如所使用的麻理程式發生缺陷性問題,使用者需自行擔負修正、改正及必要的服務支出。麻理軟體程式的著作權人不負任何形式上實質上的擔保責任,無論任何一般的、特殊的、偶發的、因果關係式的損害,或是麻理軟體程式的不適用性,均須由使用者自行負擔。"; diff --git a/Source/zh-Hant.lproj/MITLicense.txt b/Source/zh-Hant.lproj/MITLicense.txt new file mode 100644 index 00000000..403c8887 --- /dev/null +++ b/Source/zh-Hant.lproj/MITLicense.txt @@ -0,0 +1,5 @@ +软件的著作权利人依此麻理授权条款,将其对于软件的著作权利授权释出,只要使用者践履以下二项麻理授权条款叙明的义务性规定,其即享有对此软件程式及其相关说明文档自由不受限制地进行利用的权利,范围包括「使用、重制、修改、合并、出版、散布、再授权、及贩售程式重制作品」等诸多方面的应用,而散布程式之人、更可将上述权利传递予其后收受程式的后手,倘若其后收受程式之人亦服膺以下二项麻理授权条款的义务性规定,则其对程式亦享有与前手运用范围相同的同一权利。 + +散布此一软件程序者,须将本条款其上的「著作权声明」及以下的「免责声明」,内嵌于软件程序及其重制作品的实体之中。 + +因麻理软件程序的授权模式乃是无偿提供,是以在现行法律的架构下可以主张合理的免除担保责任。麻理软件的著作权人或任何的后续散布者,对于其所散布的麻理软件程序皆不负任何形式上实质上的担保责任,明示亦或隐喻、商业利用性亦或特定目的使用性,这些均不在保障之列。利用麻理软件程序的所有风险均由使用者自行担负。假如所使用的麻理程序发生缺陷性问题,使用者需自行担负修正、改正及必要的服务支出。麻理软件程序的著作权人不负任何形式上实质上的担保责任,无论任何一般的、特殊的、偶发的、因果关系式的损害,或是麻理软件程序的不适用性,均须由使用者自行负担。 diff --git a/Source/zh-Hant.lproj/frmAboutWindow.strings b/Source/zh-Hant.lproj/frmAboutWindow.strings new file mode 100644 index 00000000..2d49020b --- /dev/null +++ b/Source/zh-Hant.lproj/frmAboutWindow.strings @@ -0,0 +1,27 @@ + +/* Class = "NSTextFieldCell"; title = "MIT License:"; ObjectID = "lblMITLicense"; */ +"lblMITLicense.title" = "麻理授權合約 (MIT License):"; + +/* Class = "NSTextFieldCell"; title = "version"; ObjectID = "lblVersionString"; */ +// "lblVersionString.title" = "版本"; + +/* Class = "NSWindow"; title = "About vChewing for macOS"; ObjectID = "ttlAboutWindow"; */ +"ttlAboutWindow.title" = "關於 macOS 版「威注音輸入法」"; + +/* Class = "NSTextFieldCell"; title = "Derived from OpenVanilla McBopopmofo Project."; ObjectID = "lblProjectDescription"; */ +"lblProjectDescription.title" = "該專案由 OpenVanilla 小麥注音專案衍生而來。"; + +/* Class = "NSButtonCell"; title = "OK"; ObjectID = "btnConfirm"; */ +"btnConfirm.title" = "確定"; + +/* Class = "NSTextFieldCell"; title = "vChewing for macOS"; ObjectID = "lblAppTitle"; */ +"lblAppTitle.title" = "vChewing for macOS"; + +/* Class = "NSTextFieldCell"; title = "DISCLAIMER: The vChewing project is not responsible for the phrase database shipped in the original McBopomofo project. Everything in the vChewing phrase database has been confirmed lawful to the Anti-Secession Law and the National Security Law of the PRC."; ObjectID = "lblDisclaimer"; */ +"lblDisclaimer.title" = "免責聲明:威注音專案對小麥注音官方專案內贈的小麥注音原版詞庫內容不負任何責任。威注音輸入法專用的威注音詞庫已依照《中華人民共和國國家安全法》與《中華人民共和國反分裂國家法》做過合規處理。"; + +/* Class = "NSTextFieldCell"; title = "© 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project."; ObjectID = "lblCopyright"; */ +// "lblCopyright.title" = "© 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project."; + +/* Class = "NSTextFieldCell"; title = "McBopomofo Engine by Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, et al.\nvChewing macOS Development Reinforced by Hiraku Wang.
vChewing Phrase Database Maintained by Shiki Suen."; ObjectID = "lblCredits"; */ +"lblCredits.title" = "小麥注音引擎研發:Mengjuei Hsieh, Lukhnos Liu, Zonble Yang (Zonble), 等。\n威注音 macOS 程式研發協力:Hiraku Wang。\n威注音詞庫維護:孫志貴 (Shiki Suen)。"; diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index c9317aeb..3e064140 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -9,7 +9,11 @@ /* Begin PBXBuildFile section */ 5B000FC3278495AD004F02AC /* SimpBopomofo.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 5B000FC1278495AD004F02AC /* SimpBopomofo.tiff */; }; 5B000FC4278495AD004F02AC /* SimpBopomofo@2x.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 5B000FC2278495AD004F02AC /* SimpBopomofo@2x.tiff */; }; + 5B42B64027876FDC00BB9B9F /* UserOverrideModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5B42B63E27876FDC00BB9B9F /* UserOverrideModel.cpp */; }; + 5B58E87F278413E7003EA2AD /* MITLicense.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5B58E87D278413E7003EA2AD /* MITLicense.txt */; }; 5BC3FB83278492DE0022E99A /* data-chs.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5BC3FB82278492DE0022E99A /* data-chs.txt */; }; + 5BF4A6FE27844738007DC6E7 /* frmAboutWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BF4A6FC27844738007DC6E7 /* frmAboutWindow.m */; }; + 5BF4A70027844DC5007DC6E7 /* frmAboutWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BF4A70227844DC5007DC6E7 /* frmAboutWindow.xib */; }; 6A0421A815FEF3F50061ED63 /* FastLM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6A0421A615FEF3F50061ED63 /* FastLM.cpp */; }; 6A0D4EA715FC0D2D00ABF4B3 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A0D4EA615FC0D2D00ABF4B3 /* Cocoa.framework */; }; 6A0D4ED015FC0D6400ABF4B3 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A0D4EC415FC0D6400ABF4B3 /* AppDelegate.m */; }; @@ -87,6 +91,12 @@ 5B9781D82763850700897999 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "Source/zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; 5B9781D92763850700897999 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "zh-Hans"; path = "zh-Hans.lproj/MainMenu.xib"; sourceTree = ""; }; 5BC3FB82278492DE0022E99A /* data-chs.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "data-chs.txt"; sourceTree = ""; }; + 5BF4A6FB27844738007DC6E7 /* frmAboutWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = frmAboutWindow.h; sourceTree = ""; }; + 5BF4A6FC27844738007DC6E7 /* frmAboutWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = frmAboutWindow.m; sourceTree = ""; }; + 5BF4A70327844DD0007DC6E7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/frmAboutWindow.xib; sourceTree = ""; }; + 5BF4A70527844DD2007DC6E7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/frmAboutWindow.strings; sourceTree = ""; }; + 5BF4A70727844DD3007DC6E7 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/frmAboutWindow.strings"; sourceTree = ""; }; + 5BF4A70A278451A6007DC6E7 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/frmAboutWindow.strings"; sourceTree = ""; }; 6A0421A615FEF3F50061ED63 /* FastLM.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FastLM.cpp; sourceTree = ""; }; 6A0421A715FEF3F50061ED63 /* FastLM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FastLM.h; sourceTree = ""; }; 6A0D4EA215FC0D2D00ABF4B3 /* vChewing.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = vChewing.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -268,6 +278,7 @@ 6A0D4EC215FC0D3C00ABF4B3 /* Source */ = { isa = PBXGroup; children = ( + 5B58E87D278413E7003EA2AD /* MITLicense.txt */, 6A0D4ED815FC0DA600ABF4B3 /* CandidateUI */, 6A38BBDD15FC115800A8A51F /* Data */, 6A0D4F1215FC0EB100ABF4B3 /* Engine */, @@ -275,6 +286,8 @@ 6A0D4F4715FC0EB900ABF4B3 /* Resources */, 6A0D4EC315FC0D6400ABF4B3 /* AppDelegate.h */, 6A0D4EC415FC0D6400ABF4B3 /* AppDelegate.m */, + 5BF4A6FB27844738007DC6E7 /* frmAboutWindow.h */, + 5BF4A6FC27844738007DC6E7 /* frmAboutWindow.m */, 6A0D4EC615FC0D6400ABF4B3 /* InputMethodController.h */, 6A0D4EC715FC0D6400ABF4B3 /* InputMethodController.mm */, 6A0D4EC815FC0D6400ABF4B3 /* main.m */, @@ -287,8 +300,8 @@ 6A0D4ECC15FC0D6400ABF4B3 /* PreferencesWindowController.m */, D427A9C025ED28CC005D43E0 /* OpenCCBridge.swift */, D427A9BF25ED28CC005D43E0 /* vChewing-Bridging-Header.h */, - 6AE30A471F7F40B7008735BD /* UserOverrideModel.cpp */, - 6AE30A481F7F40B7008735BD /* UserOverrideModel.h */, + 5B42B63E27876FDC00BB9B9F /* UserOverrideModel.cpp */, + 5B42B63F27876FDC00BB9B9F /* UserOverrideModel.h */, ); path = Source; sourceTree = ""; @@ -405,6 +418,7 @@ 6A0D4F4715FC0EB900ABF4B3 /* Resources */ = { isa = PBXGroup; children = ( + 5BF4A70227844DC5007DC6E7 /* frmAboutWindow.xib */, 6AFF97F0253B299E007F1C49 /* OVNonModalAlertWindowController.xib */, 6A0D4EEE15FC0DA600ABF4B3 /* Images */, 6A0D4EF515FC0DA600ABF4B3 /* vChewing-Info.plist */, @@ -581,7 +595,9 @@ 6A2E40F6253A69DA00D1AE1D /* Images.xcassets in Resources */, 6A38BC1515FC117A00A8A51F /* data.txt in Resources */, 6AFF97F2253B299E007F1C49 /* OVNonModalAlertWindowController.xib in Resources */, + 5B58E87F278413E7003EA2AD /* MITLicense.txt in Resources */, 6A187E2616004C5900466B2E /* MainMenu.xib in Resources */, + 5BF4A70027844DC5007DC6E7 /* frmAboutWindow.xib in Resources */, 5BC3FB83278492DE0022E99A /* data-chs.txt in Resources */, 5B000FC4278495AD004F02AC /* SimpBopomofo@2x.tiff in Resources */, ); @@ -631,7 +647,9 @@ 6A0D4ED015FC0D6400ABF4B3 /* AppDelegate.m in Sources */, 6A0D4ED215FC0D6400ABF4B3 /* InputMethodController.mm in Sources */, 6A0D4ED315FC0D6400ABF4B3 /* main.m in Sources */, + 5BF4A6FE27844738007DC6E7 /* frmAboutWindow.m in Sources */, 6A0D4ED415FC0D6400ABF4B3 /* OVInputSourceHelper.m in Sources */, + 5B42B64027876FDC00BB9B9F /* UserOverrideModel.cpp in Sources */, 6A0D4ED515FC0D6400ABF4B3 /* PreferencesWindowController.m in Sources */, 6A0D4EFE15FC0DA600ABF4B3 /* VTCandidateController.m in Sources */, 6A0D4EFF15FC0DA600ABF4B3 /* VTHorizontalCandidateController.m in Sources */, @@ -673,6 +691,27 @@ /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ + 5B58E87D278413E7003EA2AD /* MITLicense.txt */ = { + isa = PBXVariantGroup; + children = ( + 5B58E87E278413E7003EA2AD /* en */, + 5B58E880278413EF003EA2AD /* zh-Hans */, + 5B58E881278413F1003EA2AD /* zh-Hant */, + ); + name = MITLicense.txt; + sourceTree = ""; + }; + 5BF4A70227844DC5007DC6E7 /* frmAboutWindow.xib */ = { + isa = PBXVariantGroup; + children = ( + 5BF4A70327844DD0007DC6E7 /* Base */, + 5BF4A70527844DD2007DC6E7 /* en */, + 5BF4A70727844DD3007DC6E7 /* zh-Hant */, + 5BF4A70A278451A6007DC6E7 /* zh-Hans */, + ); + name = frmAboutWindow.xib; + sourceTree = ""; + }; 6A0D4F4815FC0EE100ABF4B3 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( @@ -781,6 +820,7 @@ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; @@ -821,6 +861,7 @@ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES;