From bbf7813c65231e1e35885519deedafcba34b06dd Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sat, 5 Mar 2022 00:13:28 +0800 Subject: [PATCH 01/72] UPE // App Bundle Name Localization. --- vChewing.xcodeproj/project.pbxproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index f4bbfa91..35e35404 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -1306,6 +1306,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = "UserPhraseEditor/PhraseEditor-Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "$(PRODUCT_NAME)"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; INFOPLIST_KEY_NSHumanReadableCopyright = "© 2021-2022 vChewing Project."; INFOPLIST_KEY_NSMainStoryboardFile = Main; @@ -1353,6 +1354,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = "UserPhraseEditor/PhraseEditor-Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "$(PRODUCT_NAME)"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; INFOPLIST_KEY_NSHumanReadableCopyright = "© 2021-2022 vChewing Project."; INFOPLIST_KEY_NSMainStoryboardFile = Main; From a7cb355d4f4ed688c5406f01cc302805b07cb387 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Thu, 3 Mar 2022 21:38:37 +0800 Subject: [PATCH 02/72] Xcode // Use the compiling script shipped in the main repo. - This is for debugging conveniences only. Previous methods still work. --- vChewing.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index 35e35404..4a2c034b 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -792,11 +792,11 @@ /* Begin PBXLegacyTarget section */ 6A38BC2115FC12FD00A8A51F /* Data */ = { isa = PBXLegacyTarget; - buildArgumentsString = "$(ACTION) macv"; + buildArgumentsString = "$(ACTION) ../../DataCompiler/dataCompiler.swift"; buildConfigurationList = 6A38BC2215FC12FD00A8A51F /* Build configuration list for PBXLegacyTarget "Data" */; buildPhases = ( ); - buildToolPath = /usr/bin/make; + buildToolPath = /usr/bin/swift; buildWorkingDirectory = "$(SRCROOT)/Source/Data"; dependencies = ( ); From 0f0fc84090ed7ab7f9225345152b18b286db1383 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 28 Feb 2022 00:07:44 +0800 Subject: [PATCH 03/72] DataCompiler // Changed the handling of kana frequencies. - This can make sure that kana has lowest frequencies than anything. --- DataCompiler/dataCompiler.swift | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/DataCompiler/dataCompiler.swift b/DataCompiler/dataCompiler.swift index 7565a568..8a2f21ef 100644 --- a/DataCompiler/dataCompiler.swift +++ b/DataCompiler/dataCompiler.swift @@ -343,17 +343,24 @@ func weightAndSort(_ arrStructUncalculated: [Entry], isCHS: Bool) -> [Entry] { let fscale: Float = 2.7 var norm: Float = 0.0 for entry in arrStructUncalculated { - norm += fscale**(Float(entry.valPhrase.count) / 3.0 - 1.0) * Float(entry.valCount) // Credit: MJHsieh. + if entry.valCount >= 0 { + norm += fscale**(Float(entry.valPhrase.count) / 3.0 - 1.0) * Float(entry.valCount) // Credit: MJHsieh. + } } // norm 計算完畢,開始將 norm 作為新的固定常數來為每個詞條記錄計算權重。 // 將新酷音的詞語出現次數數據轉換成小麥引擎可讀的數據形式。 // 對出現次數小於 1 的詞條,將 0 當成 0.5 來處理、以防止除零。 // 統計公式著作權歸 MJHsieh 所有(MIT License)。 for entry in arrStructUncalculated { - let weight: Float = (entry.valCount < 1) ? - log10(fscale**(Float(entry.valPhrase.count) / 3.0 - 1.0) * 0.5 / norm) // Credit: MJHsieh. - : - log10(fscale**(Float(entry.valPhrase.count) / 3.0 - 1.0) * Float(entry.valCount) / norm) // Credit: MJHsieh. + var weight: Float = 0 + switch entry.valCount { + case -1: // 假名 + weight = -13 + case 0: // 墊底低頻漢字與詞語 + weight = log10(fscale**(Float(entry.valPhrase.count) / 3.0 - 1.0) * 0.5 / norm) // Credit: MJHsieh. + default: + weight = log10(fscale**(Float(entry.valPhrase.count) / 3.0 - 1.0) * Float(entry.valCount) / norm) // Credit: MJHsieh. + } let weightRounded: Float = weight.rounded(toPlaces: 3) // 為了節省生成的檔案體積,僅保留小數點後三位。 arrStructCalculated += [Entry.init(valPhone: entry.valPhone, valPhrase: entry.valPhrase, valWeight: weightRounded, valCount: entry.valCount)] } From ece91e3e3f92bc9a7d754ef2eca546107151721c Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 28 Feb 2022 14:05:54 +0800 Subject: [PATCH 04/72] DataCompiler // Fix Surrogate-Pair Compatibility Issue with RegEx Function. --- DataCompiler/dataCompiler.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DataCompiler/dataCompiler.swift b/DataCompiler/dataCompiler.swift index 8a2f21ef..4128f4c6 100644 --- a/DataCompiler/dataCompiler.swift +++ b/DataCompiler/dataCompiler.swift @@ -21,9 +21,10 @@ import Foundation // MARK: - 前導工作 fileprivate extension String { mutating func regReplace(pattern: String, replaceWith: String = "") { + // Ref: https://stackoverflow.com/a/40993403/4162914 && https://stackoverflow.com/a/71291137/4162914 do { let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive) - let range = NSRange(location: 0, length: count) + let range = NSRange(location: 0, length: self.utf16.count) self = regex.stringByReplacingMatches(in: self, options: [], range: range, withTemplate: replaceWith) } catch { return } } From b461cae0c38b705f800dfecdeedf67beb0bf5a40 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Thu, 3 Mar 2022 21:21:11 +0800 Subject: [PATCH 05/72] DataCompiler // Regex Optimization. --- DataCompiler/dataCompiler.swift | 51 ++++++++++++++------------------- 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/DataCompiler/dataCompiler.swift b/DataCompiler/dataCompiler.swift index 4128f4c6..dea6fa77 100644 --- a/DataCompiler/dataCompiler.swift +++ b/DataCompiler/dataCompiler.swift @@ -118,16 +118,13 @@ func rawDictForPhrases(isCHS: Bool) -> [Entry] { } // 預處理格式 strRAW = strRAW.replacingOccurrences(of: " #MACOS", with: "") // 去掉 macOS 標記 - strRAW = strRAW.replacingOccurrences(of: " ", with: " ") // CJKWhiteSpace (\x{3000}) to ASCII Space - strRAW = strRAW.replacingOccurrences(of: " ", with: " ") // NonBreakWhiteSpace (\x{A0}) to ASCII Space - strRAW = strRAW.replacingOccurrences(of: "\t", with: " ") // Tab to ASCII Space - strRAW.regReplace(pattern: "\\f", replaceWith: "\n") // Form Feed to LF - strRAW = strRAW.replacingOccurrences(of: "\r", with: "\n") // CR to LF - strRAW.regReplace(pattern: " +", replaceWith: " ") // 統整連續空格為一個 ASCII 空格 - // strRAW.regReplace(pattern: "\\n+", replaceWith: "\n") // 統整連續 LF 為一個 LF - // (不需要處理純空行,因為空記錄不會被轉為 Entry) - strRAW = strRAW.replacingOccurrences(of: " \n", with: "\n") // 去除行尾空格 - strRAW = strRAW.replacingOccurrences(of: "\n ", with: "\n") // 去除行首空格 + // CJKWhiteSpace (\x{3000}) to ASCII Space + // NonBreakWhiteSpace (\x{A0}) to ASCII Space + // Tab to ASCII Space + // 統整連續空格為一個 ASCII 空格 + strRAW.regReplace(pattern: #"( +| +| +|\t+)+"#, replaceWith: " ") + strRAW.regReplace(pattern: #"(\f+|\r+)+"#, replaceWith: "\n") // CR & Form Feed to LF + strRAW.regReplace(pattern: #"(\n+| \n+|\n+ )"#, replaceWith: "\n") // 去除行尾行首空格與重複行 if strRAW.prefix(1) == " " { // 去除檔案開頭空格 strRAW.removeFirst() } @@ -195,16 +192,13 @@ func rawDictForKanjis(isCHS: Bool) -> [Entry] { } // 預處理格式 strRAW = strRAW.replacingOccurrences(of: " #MACOS", with: "") // 去掉 macOS 標記 - strRAW = strRAW.replacingOccurrences(of: " ", with: " ") // CJKWhiteSpace (\x{3000}) to ASCII Space - strRAW = strRAW.replacingOccurrences(of: " ", with: " ") // NonBreakWhiteSpace (\x{A0}) to ASCII Space - strRAW = strRAW.replacingOccurrences(of: "\t", with: " ") // Tab to ASCII Space - strRAW.regReplace(pattern: "\\f", replaceWith: "\n") // Form Feed to LF - strRAW = strRAW.replacingOccurrences(of: "\r", with: "\n") // CR to LF - strRAW.regReplace(pattern: " +", replaceWith: " ") // 統整連續空格為一個 ASCII 空格 - // strRAW.regReplace(pattern: "\\n+", replaceWith: "\n") // 統整連續 LF 為一個 LF - // (不需要處理純空行,因為空記錄不會被轉為 Entry) - strRAW = strRAW.replacingOccurrences(of: " \n", with: "\n") // 去除行尾空格 - strRAW = strRAW.replacingOccurrences(of: "\n ", with: "\n") // 去除行首空格 + // CJKWhiteSpace (\x{3000}) to ASCII Space + // NonBreakWhiteSpace (\x{A0}) to ASCII Space + // Tab to ASCII Space + // 統整連續空格為一個 ASCII 空格 + strRAW.regReplace(pattern: #"( +| +| +|\t+)+"#, replaceWith: " ") + strRAW.regReplace(pattern: #"(\f+|\r+)+"#, replaceWith: "\n") // CR & Form Feed to LF + strRAW.regReplace(pattern: #"(\n+| \n+|\n+ )"#, replaceWith: "\n") // 去除行尾行首空格與重複行 if strRAW.prefix(1) == " " { // 去除檔案開頭空格 strRAW.removeFirst() } @@ -277,16 +271,13 @@ func rawDictForNonKanjis(isCHS: Bool) -> [Entry] { } // 預處理格式 strRAW = strRAW.replacingOccurrences(of: " #MACOS", with: "") // 去掉 macOS 標記 - strRAW = strRAW.replacingOccurrences(of: " ", with: " ") // CJKWhiteSpace (\x{3000}) to ASCII Space - strRAW = strRAW.replacingOccurrences(of: " ", with: " ") // NonBreakWhiteSpace (\x{A0}) to ASCII Space - strRAW = strRAW.replacingOccurrences(of: "\t", with: " ") // Tab to ASCII Space - strRAW.regReplace(pattern: "\\f", replaceWith: "\n") // Form Feed to LF - strRAW = strRAW.replacingOccurrences(of: "\r", with: "\n") // CR to LF - strRAW.regReplace(pattern: " +", replaceWith: " ") // 統整連續空格為一個 ASCII 空格 - // strRAW.regReplace(pattern: "\\n+", replaceWith: "\n") // 統整連續 LF 為一個 LF - // (不需要處理純空行,因為空記錄不會被轉為 Entry) - strRAW = strRAW.replacingOccurrences(of: " \n", with: "\n") // 去除行尾空格 - strRAW = strRAW.replacingOccurrences(of: "\n ", with: "\n") // 去除行首空格 + // CJKWhiteSpace (\x{3000}) to ASCII Space + // NonBreakWhiteSpace (\x{A0}) to ASCII Space + // Tab to ASCII Space + // 統整連續空格為一個 ASCII 空格 + strRAW.regReplace(pattern: #"( +| +| +|\t+)+"#, replaceWith: " ") + strRAW.regReplace(pattern: #"(\f+|\r+)+"#, replaceWith: "\n") // CR & Form Feed to LF + strRAW.regReplace(pattern: #"(\n+| \n+|\n+ )"#, replaceWith: "\n") // 去除行尾行首空格與重複行 if strRAW.prefix(1) == " " { // 去除檔案開頭空格 strRAW.removeFirst() } From 70c4327d270d417db1a50bb8538d38c55b64dbbe Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sat, 5 Mar 2022 10:58:27 +0800 Subject: [PATCH 06/72] LMConsolidator // Regex Optimization. --- Source/Modules/FileHandlers/LMConsolidator.mm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Source/Modules/FileHandlers/LMConsolidator.mm b/Source/Modules/FileHandlers/LMConsolidator.mm index f0a3cbb6..cd4fd9b3 100644 --- a/Source/Modules/FileHandlers/LMConsolidator.mm +++ b/Source/Modules/FileHandlers/LMConsolidator.mm @@ -86,15 +86,19 @@ bool LMConsolidator::ConsolidateContent(const char *path, bool shouldCheckPragma } // 第一遍 for 用來統整每行內的內容。 // regex sedCJKWhiteSpace("\\x{3000}"), sedNonBreakWhiteSpace("\\x{A0}"), sedWhiteSpace("\\s+"), sedLeadingSpace("^\\s"), sedTrailingSpace("\\s$"); // 這樣寫會導致輸入法敲不了任何字,推測 Xcode 13 支援的 cpp / objCpp 可能對某些 Regex 寫法有相容性問題。 - regex sedCJKWhiteSpace(" "), sedNonBreakWhiteSpace(" "), sedWhiteSpace("\\s+"), sedLeadingSpace("^\\s"), sedTrailingSpace("\\s$"); // RegEx 先定義好。 + // regex sedCJKWhiteSpace(" "), sedNonBreakWhiteSpace(" "), sedWhiteSpace("\\s+"), sedLeadingSpace("^\\s"), sedTrailingSpace("\\s$"); // RegEx 先定義好。 + regex sedToConsolidate("( +| +| +|\t+)+"), sedToTrim("(^\\s|\\s$)"); for(int i=0;i Date: Sat, 5 Mar 2022 11:13:37 +0800 Subject: [PATCH 07/72] UPE // Regex Optimization. --- UserPhraseEditor/StringExtension.swift | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/UserPhraseEditor/StringExtension.swift b/UserPhraseEditor/StringExtension.swift index 70faf0f0..8ab7384d 100644 --- a/UserPhraseEditor/StringExtension.swift +++ b/UserPhraseEditor/StringExtension.swift @@ -31,15 +31,13 @@ extension String { var strProcessed = self // 預處理格式 strProcessed = strProcessed.replacingOccurrences(of: " #MACOS", with: "") // 去掉 macOS 標記 - strProcessed = strProcessed.replacingOccurrences(of: " ", with: " ") // CJKWhiteSpace (\x{3000}) to ASCII Space - strProcessed = strProcessed.replacingOccurrences(of: " ", with: " ") // NonBreakWhiteSpace (\x{A0}) to ASCII Space - strProcessed = strProcessed.replacingOccurrences(of: "\t", with: " ") // Tab to ASCII Space - strProcessed.regReplace(pattern: "\\f", replaceWith: "\n") // Form Feed to LF - strProcessed = strProcessed.replacingOccurrences(of: "\r", with: "\n") // CR to LF - strProcessed.regReplace(pattern: " +", replaceWith: " ") // 統整連續空格為一個 ASCII 空格 - strProcessed.regReplace(pattern: "\\n+", replaceWith: "\n") // 統整連續 LF 為一個 LF - strProcessed = strProcessed.replacingOccurrences(of: " \n", with: "\n") // 去除行尾空格 - strProcessed = strProcessed.replacingOccurrences(of: "\n ", with: "\n") // 去除行首空格 + // CJKWhiteSpace (\x{3000}) to ASCII Space + // NonBreakWhiteSpace (\x{A0}) to ASCII Space + // Tab to ASCII Space + // 統整連續空格為一個 ASCII 空格 + strProcessed.regReplace(pattern: #"( +| +| +|\t+)+"#, replaceWith: " ") + strProcessed.regReplace(pattern: #"(\f+|\r+)+"#, replaceWith: "\n") // CR & Form Feed to LF + strProcessed.regReplace(pattern: #"(\n+| \n+|\n+ )"#, replaceWith: "\n") // 去除行尾行首空格與重複行 if strProcessed.prefix(1) == " " { // 去除檔案開頭空格 strProcessed.removeFirst() } From 0b394d97bac94d2341cd55580e0dcbdfb1ea8632 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 28 Feb 2022 14:05:33 +0800 Subject: [PATCH 08/72] UPE // Fix Surrogate-Pair Compatibility Issue with RegEx Function. --- UserPhraseEditor/StringExtension.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/UserPhraseEditor/StringExtension.swift b/UserPhraseEditor/StringExtension.swift index 8ab7384d..fc3ca498 100644 --- a/UserPhraseEditor/StringExtension.swift +++ b/UserPhraseEditor/StringExtension.swift @@ -20,9 +20,10 @@ import Foundation extension String { mutating func regReplace(pattern: String, replaceWith: String = "") { + // Ref: https://stackoverflow.com/a/40993403/4162914 && https://stackoverflow.com/a/71291137/4162914 do { let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive) - let range = NSRange(location: 0, length: count) + let range = NSRange(location: 0, length: self.utf16.count) self = regex.stringByReplacingMatches(in: self, options: [], range: range, withTemplate: replaceWith) } catch { return } } From ce48f8d33a1e8c7b98044a5db42e1b6ef3393315 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 28 Feb 2022 14:05:46 +0800 Subject: [PATCH 09/72] KanjiConv // Fix Surrogate-Pair Compatibility Issue with RegEx Function. --- Source/Modules/ControllerModules/vChewingKanjiConverter.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Modules/ControllerModules/vChewingKanjiConverter.swift b/Source/Modules/ControllerModules/vChewingKanjiConverter.swift index e778b53c..ef8b52fd 100644 --- a/Source/Modules/ControllerModules/vChewingKanjiConverter.swift +++ b/Source/Modules/ControllerModules/vChewingKanjiConverter.swift @@ -21,10 +21,11 @@ import Cocoa // 這個模組果然還是要用 Regex 轉換會比較爽。 // 為防止與其他模組彼此發生可能的衝突,這段 String 擴展就用 private 開頭來私有化。 private extension String { + // Ref: https://stackoverflow.com/a/40993403/4162914 && https://stackoverflow.com/a/71291137/4162914 mutating func regReplace(pattern: String, replaceWith: String = "") { do { let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive) - let range = NSRange(location: 0, length: count) + let range = NSRange(location: 0, length: self.utf16.count) self = regex.stringByReplacingMatches(in: self, options: [], range: range, withTemplate: replaceWith) } catch { return } } From 511120b5356cd308cd162db799881c7800e804a5 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 28 Feb 2022 14:50:34 +0800 Subject: [PATCH 10/72] PrefWindow // Layout Update for further purposes. --- .../WindowNIBs/Base.lproj/frmPrefWindow.xib | 131 +++++++++--------- .../WindowNIBs/en.lproj/frmPrefWindow.strings | 7 +- .../WindowNIBs/ja.lproj/frmPrefWindow.strings | 7 +- .../zh-Hans.lproj/frmPrefWindow.strings | 7 +- .../zh-Hant.lproj/frmPrefWindow.strings | 7 +- 5 files changed, 88 insertions(+), 71 deletions(-) diff --git a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib index 8cf4f8fd..8b2cc983 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib +++ b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib @@ -332,17 +332,17 @@ - + - + - + - + @@ -354,7 +354,7 @@ - + @@ -373,7 +373,7 @@ - + @@ -381,7 +381,7 @@ - + @@ -392,7 +392,7 @@ - + @@ -417,7 +417,7 @@ - + @@ -468,7 +468,7 @@ - + @@ -476,7 +476,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - + + + + @@ -705,7 +710,7 @@ - + diff --git a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings index 0f699ea3..6523d768 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings @@ -185,8 +185,8 @@ /* Class = "NSMenuItem"; title = "Japanese"; ObjectID = "rVQ-Hx-cGi"; */ "rVQ-Hx-cGi.title" = "Japanese"; -/* Class = "NSBox"; title = "Dictionary Settings"; ObjectID = "s4r-ji-vbr"; */ -"s4r-ji-vbr.title" = "Dictionary Settings"; +/* Class = "NSBox"; title = "Dictionary and Language Models"; ObjectID = "cf2-se-PDO"; */ +"cf2-se-PDO.title" = "Dictionary and Language Models"; /* Class = "NSTextFieldCell"; title = "Choose your preferred layout of the candidate window."; ObjectID = "xC5-yV-1W1"; */ "xC5-yV-1W1.title" = "Choose your preferred layout of the candidate window."; @@ -194,6 +194,9 @@ /* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "xrE-8T-WKO"; */ "xrE-8T-WKO.label" = "Advanced"; +/* Class = "NSTabViewItem"; label = "Dictionary"; ObjectID = "2iG-Ic-gbl"; */ +"2iG-Ic-gbl.label" = "Dictionary"; + /* Class = "NSTextFieldCell"; title = "Regarding On-Screen Keyboard Support:"; ObjectID = "wQ9-px-b07"; */ "wQ9-px-b07.title" = "Regarding On-Screen Keyboard Viewer Support:\n\n\tSince v1.3.2, vChewing supports on-screen keyboard by supporting \"Apple Zhuyin Bopomofo\" and \"Apple Zhuyin Eten\" alphanumeric layout. Theoreotically, these two dynamic layouts work with all types of Apple physical keyboards, and you can report failure cases through macOS Feedback Assistant app if macOS built-in Zhuyin / Eten-Zhuyin Input Method fails from working with your non-US keyboard.\n\n\tHOWEVER, choosing such dynamic alphanumeric layouts REQUIRING THAT you have to choose the Bopomofo layout above to Standard (Microsoft / Dachen) since the Bopomofo / Eten layout support in this case is already finished by the macOS system."; diff --git a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings index 27296d66..430ec22f 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings @@ -185,8 +185,8 @@ /* Class = "NSMenuItem"; title = "Japanese"; ObjectID = "rVQ-Hx-cGi"; */ "rVQ-Hx-cGi.title" = "和語"; -/* Class = "NSBox"; title = "Dictionary Settings"; ObjectID = "s4r-ji-vbr"; */ -"s4r-ji-vbr.title" = "辞書設定"; +/* Class = "NSBox"; title = "Dictionary and Language Models"; ObjectID = "cf2-se-PDO"; */ +"cf2-se-PDO.title" = "辞書と言語モデル"; /* Class = "NSTextFieldCell"; title = "Choose your preferred layout of the candidate window."; ObjectID = "xC5-yV-1W1"; */ "xC5-yV-1W1.title" = "入力候補陳列の仕様をご指定ください。"; @@ -194,6 +194,9 @@ /* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "xrE-8T-WKO"; */ "xrE-8T-WKO.label" = "詳細"; +/* Class = "NSTabViewItem"; label = "Dictionary"; ObjectID = "2iG-Ic-gbl"; */ +"2iG-Ic-gbl.label" = "辞書"; + /* Class = "NSTextFieldCell"; title = "Regarding On-Screen Keyboard Support:"; ObjectID = "wQ9-px-b07"; */ "wQ9-px-b07.title" = "macOS 内蔵のキーボードビューアについて:\n\n\t威注音は v1.3.2 版にて macOS 内蔵のキーボードビューアをサポートし始めたが、「Apple Zhuyin Bopomofo」と「Apple Zhuyin Eten」この2つダイナミック英数キーボード配列をサポートしたためである。基本的には、この機能は全ての言語の Apple キーボードと一緒に動けるはず。macOS 内蔵の注音入力と倚天注音入力が支障なく使える限り(支障があったら Feedback Assistant.app で Apple にご報告を)、この2つダイナミック英数キーボード配列も威注音で作動できるだと考えられる。\n\n\tだが、もし、ダイナミック英数キーボード配列を起用すると、今のこの画面の上の「注音キーボード配列」を標準配列にしなければならぬこと。なぜなら、この場合、倚天などの注音配列のサポート役割は macOS である。"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings index 600874d5..6a0fb860 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings @@ -185,8 +185,8 @@ /* Class = "NSMenuItem"; title = "Japanese"; ObjectID = "rVQ-Hx-cGi"; */ "rVQ-Hx-cGi.title" = "和语"; -/* Class = "NSBox"; title = "Dictionary Settings"; ObjectID = "s4r-ji-vbr"; */ -"s4r-ji-vbr.title" = "辞典设定"; +/* Class = "NSBox"; title = "Dictionary and Language Models"; ObjectID = "cf2-se-PDO"; */ +"cf2-se-PDO.title" = "辞典&語言模型"; /* Class = "NSTextFieldCell"; title = "Choose your preferred layout of the candidate window."; ObjectID = "xC5-yV-1W1"; */ "xC5-yV-1W1.title" = "选择您所偏好的候选字窗布局。"; @@ -194,6 +194,9 @@ /* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "xrE-8T-WKO"; */ "xrE-8T-WKO.label" = "进阶"; +/* Class = "NSTabViewItem"; label = "Dictionary"; ObjectID = "2iG-Ic-gbl"; */ +"2iG-Ic-gbl.label" = "辞典"; + /* Class = "NSTextFieldCell"; title = "Regarding On-Screen Keyboard Support:"; ObjectID = "wQ9-px-b07"; */ "wQ9-px-b07.title" = "关于 macOS 内建萤幕模拟键盘支援:\n\n\t自 v1.3.2 版开始,威注音支援 macOS 内建的萤幕小键盘。该功能是借由对「Apple 标准注音键盘布局」与「Apple 倚天注音键盘布局」这两个动态英数键盘布局来完成的。理论上来讲,这两个动态英数键盘布局应该可以与所有语种的 Apple 物理键盘相容。如果有不相容的情况的话,macOS 内建的注音与倚天注音输入法一定也会有相同的故障(可以借由 Feedback Assistant.app 向 Apple 反馈这种键盘布局问题)。\n\n\t然而,如果您启用了这种动态英数键盘布局的话,请将当前画面顶端的注音键盘布局设为「微软/大千……」,因为对诸如倚天等异种键盘的支援已经交给 macOS 系统来事先完成了。"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings index 0fff1e88..685b8248 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings @@ -185,8 +185,8 @@ /* Class = "NSMenuItem"; title = "Japanese"; ObjectID = "rVQ-Hx-cGi"; */ "rVQ-Hx-cGi.title" = "和語"; -/* Class = "NSBox"; title = "Dictionary Settings"; ObjectID = "s4r-ji-vbr"; */ -"s4r-ji-vbr.title" = "辭典設定"; +/* Class = "NSBox"; title = "Dictionary and Language Models"; ObjectID = "cf2-se-PDO"; */ +"cf2-se-PDO.title" = "辭典&語言模型"; /* Class = "NSTextFieldCell"; title = "Choose your preferred layout of the candidate window."; ObjectID = "xC5-yV-1W1"; */ "xC5-yV-1W1.title" = "選擇您所偏好的候選字窗佈局。"; @@ -194,6 +194,9 @@ /* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "xrE-8T-WKO"; */ "xrE-8T-WKO.label" = "進階"; +/* Class = "NSTabViewItem"; label = "Dictionary"; ObjectID = "2iG-Ic-gbl"; */ +"2iG-Ic-gbl.label" = "辭典"; + /* Class = "NSTextFieldCell"; title = "Regarding On-Screen Keyboard Support:"; ObjectID = "wQ9-px-b07"; */ "wQ9-px-b07.title" = "關於 macOS 內建螢幕模擬鍵盤支援:\n\n\t自 v1.3.2 版開始,威注音支援 macOS 內建的螢幕小鍵盤。該功能是藉由對「Apple 標準注音鍵盤佈局」與「Apple 倚天注音鍵盤佈局」這兩個動態英數鍵盤佈局來完成的。理論上來講,這兩個動態英數鍵盤佈局應該可以與所有語種的 Apple 物理鍵盤相容。如果有不相容的情況的話,macOS 內建的注音與倚天注音輸入法一定也會有相同的故障(可以藉由 Feedback Assistant.app 向 Apple 反饋這種鍵盤佈局問題)。\n\n\t然而,如果您啟用了這種動態英數鍵盤佈局的話,請將當前畫面頂端的注音鍵盤佈局設為「微軟/大千……」,因為對諸如倚天等異種鍵盤的支援已經交給 macOS 系統來事先完成了。"; From 790975d542bcc727550aa8d44717e0ecda76919e Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 28 Feb 2022 16:39:06 +0800 Subject: [PATCH 11/72] Repo // Remove a useless namespace. - The name "Taiyan" will be used as a new namespace instead. - Mandarin and Gramambular modules (from libFormosana) will use their individual namespaces instead without a shared root namespace. --- Source/3rdParty/OVMandarin/Mandarin.cpp | 3 +- Source/3rdParty/OVMandarin/Mandarin.h | 3 +- .../Modules/ControllerModules/KeyHandler.mm | 52 +++++++++---------- .../Modules/LangModelRelated/LMInstantiator.h | 10 ++-- .../LangModelRelated/LMInstantiator.mm | 40 +++++++------- .../SubLanguageModels/CoreLM.h | 8 +-- .../SubLanguageModels/CoreLM.mm | 10 ++-- .../SubLanguageModels/ParselessLM.cpp | 12 ++--- .../SubLanguageModels/ParselessLM.h | 6 +-- .../SubLanguageModels/UserOverrideModel.cpp | 14 ++--- .../SubLanguageModels/UserOverrideModel.h | 6 +-- .../SubLanguageModels/UserPhrasesLM.h | 6 +-- .../SubLanguageModels/UserPhrasesLM.mm | 10 ++-- .../LanguageParsers/Gramambular/Bigram.h | 3 +- .../Gramambular/BlockReadingBuilder.h | 3 +- .../LanguageParsers/Gramambular/Grid.h | 3 +- .../LanguageParsers/Gramambular/Grid.mm | 3 +- .../Gramambular/KeyValuePair.h | 3 +- .../Gramambular/LanguageModel.h | 3 +- .../LanguageParsers/Gramambular/Node.h | 3 +- .../LanguageParsers/Gramambular/NodeAnchor.h | 3 +- .../LanguageParsers/Gramambular/Span.h | 3 +- .../LanguageParsers/Gramambular/Unigram.h | 3 +- .../LanguageParsers/Gramambular/Walker.h | 3 +- 24 files changed, 100 insertions(+), 113 deletions(-) diff --git a/Source/3rdParty/OVMandarin/Mandarin.cpp b/Source/3rdParty/OVMandarin/Mandarin.cpp index d1f6d08e..53cbd299 100644 --- a/Source/3rdParty/OVMandarin/Mandarin.cpp +++ b/Source/3rdParty/OVMandarin/Mandarin.cpp @@ -22,7 +22,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include #include -namespace Taiyan { namespace Mandarin { class PinyinParseHelper { @@ -1034,5 +1033,5 @@ const BopomofoKeyboardLayout* BopomofoKeyboardLayout::HanyuPinyinLayout() { } } // namespace Mandarin -} // namespace Taiyan + diff --git a/Source/3rdParty/OVMandarin/Mandarin.h b/Source/3rdParty/OVMandarin/Mandarin.h index bb0ec5de..e8a24708 100644 --- a/Source/3rdParty/OVMandarin/Mandarin.h +++ b/Source/3rdParty/OVMandarin/Mandarin.h @@ -25,7 +25,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include #include -namespace Taiyan { namespace Mandarin { class BopomofoSyllable { @@ -471,6 +470,6 @@ protected: std::string pinyin_sequence_; }; } // namespace Mandarin -} // namespace Taiyan + #endif // MANDARIN_H_ diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index 78e760e8..a5d6effe 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -33,7 +33,7 @@ InputMode imeModeNULL = @"org.atelierInmu.inputmethod.vChewing.IMENULL"; static const double kEpsilon = 0.000001; -static double FindHighestScore(const std::vector &nodes, double epsilon) { +static double FindHighestScore(const std::vector &nodes, double epsilon) { double highestScore = 0.0; for (auto ni = nodes.begin(), ne = nodes.end(); ni != ne; ++ni) { double score = ni->node->highestUnigramScore(); @@ -46,7 +46,7 @@ static double FindHighestScore(const std::vectorkey().length() > b.node->key().length(); } @@ -62,7 +62,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; @implementation KeyHandler { // the reading buffer that takes user input - Taiyan::Mandarin::BopomofoReadingBuffer *_bpmfReadingBuffer; + Mandarin::BopomofoReadingBuffer *_bpmfReadingBuffer; // language model vChewing::LMInstantiator *_languageModel; @@ -71,10 +71,10 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; vChewing::UserOverrideModel *_userOverrideModel; // the grid (lattice) builder for the unigrams (and bigrams) - Taiyan::Gramambular::BlockReadingBuilder *_builder; + Gramambular::BlockReadingBuilder *_builder; // latest walked path (trellis) using the Viterbi algorithm - std::vector _walkedNodes; + std::vector _walkedNodes; NSString *_inputMode; } @@ -122,7 +122,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; if (_builder) { delete _builder; - _builder = new Taiyan::Gramambular::BlockReadingBuilder(_languageModel); + _builder = new Gramambular::BlockReadingBuilder(_languageModel); _builder->setJoinSeparator("-"); } @@ -148,7 +148,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; { self = [super init]; if (self) { - _bpmfReadingBuffer = new Taiyan::Mandarin::BopomofoReadingBuffer(Taiyan::Mandarin::BopomofoKeyboardLayout::StandardLayout()); + _bpmfReadingBuffer = new Mandarin::BopomofoReadingBuffer(Mandarin::BopomofoKeyboardLayout::StandardLayout()); // create the lattice builder _languageModel = [mgrLangModel lmCHT]; @@ -156,7 +156,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; _languageModel->setCNSEnabled(Preferences.cns11643Enabled); _userOverrideModel = [mgrLangModel userOverrideModelCHT]; - _builder = new Taiyan::Gramambular::BlockReadingBuilder(_languageModel); + _builder = new Gramambular::BlockReadingBuilder(_languageModel); // each Mandarin syllable is separated by a hyphen _builder->setJoinSeparator("-"); @@ -170,31 +170,31 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; NSInteger layout = Preferences.keyboardLayout; switch (layout) { case KeyboardLayoutStandard: - _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::StandardLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Mandarin::BopomofoKeyboardLayout::StandardLayout()); break; case KeyboardLayoutEten: - _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::ETenLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Mandarin::BopomofoKeyboardLayout::ETenLayout()); break; case KeyboardLayoutHsu: - _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::HsuLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Mandarin::BopomofoKeyboardLayout::HsuLayout()); break; case KeyboardLayoutEten26: - _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::ETen26Layout()); + _bpmfReadingBuffer->setKeyboardLayout(Mandarin::BopomofoKeyboardLayout::ETen26Layout()); break; case KeyboardLayoutIBM: - _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::IBMLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Mandarin::BopomofoKeyboardLayout::IBMLayout()); break; case KeyboardLayoutMiTAC: - _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::MiTACLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Mandarin::BopomofoKeyboardLayout::MiTACLayout()); break; case KeyboardLayoutFakeSeigyou: - _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::FakeSeigyouLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Mandarin::BopomofoKeyboardLayout::FakeSeigyouLayout()); break; case KeyboardLayoutHanyuPinyin: - _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::HanyuPinyinLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Mandarin::BopomofoKeyboardLayout::HanyuPinyinLayout()); break; default: - _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::StandardLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Mandarin::BopomofoKeyboardLayout::StandardLayout()); Preferences.keyboardLayout = KeyboardLayoutStandard; } } @@ -203,7 +203,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; { size_t cursorIndex = [self _actualCandidateCursorIndex]; std::string stringValue(value.UTF8String); - Taiyan::Gramambular::NodeAnchor selectedNode = _builder->grid().fixNodeSelectedCandidate(cursorIndex, stringValue); + Gramambular::NodeAnchor selectedNode = _builder->grid().fixNodeSelectedCandidate(cursorIndex, stringValue); if (!Preferences.useSCPCTypingMode) { // 不要針對逐字選字模式啟用臨時半衰記憶模型。 // If the length of the readings and the characters do not match, // it often means it is a special symbol and it should not be stored @@ -383,7 +383,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; if (!overrideValue.empty()) { size_t cursorIndex = [self _actualCandidateCursorIndex]; - std::vector nodes = _builder->grid().nodesCrossingOrEndingAt(cursorIndex); + std::vector nodes = _builder->grid().nodesCrossingOrEndingAt(cursorIndex); double highestScore = FindHighestScore(nodes, kEpsilon); _builder->grid().overrideNodeScoreForSelectedCandidate(cursorIndex, overrideValue, static_cast(highestScore)); } @@ -1275,7 +1275,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; // we must do some Unicode codepoint counting to find the actual cursor location for the client // i.e. we need to take UTF-16 into consideration, for which a surrogate pair takes 2 UniChars // locations - for (std::vector::iterator wi = _walkedNodes.begin(), we = _walkedNodes.end(); wi != we; ++wi) { + for (std::vector::iterator wi = _walkedNodes.begin(), we = _walkedNodes.end(); wi != we; ++wi) { if ((*wi).node) { std::string nodeStr = (*wi).node->currentKeyValue().value; NSString *valueString = [NSString stringWithUTF8String:nodeStr.c_str()]; @@ -1343,7 +1343,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; // retrieve the most likely trellis, i.e. a Maximum Likelihood Estimation // of the best possible Mandarain characters given the input syllables, // using the Viterbi algorithm implemented in the Gramambular library - Taiyan::Gramambular::Walker walker(&_builder->grid()); + Gramambular::Walker walker(&_builder->grid()); // the reverse walk traces the trellis from the end _walkedNodes = walker.reverseWalk(_builder->grid().width()); @@ -1376,7 +1376,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; if (_builder->grid().width() > (size_t) composingBufferSize) { if (_walkedNodes.size() > 0) { - Taiyan::Gramambular::NodeAnchor &anchor = _walkedNodes[0]; + Gramambular::NodeAnchor &anchor = _walkedNodes[0]; poppedText = [NSString stringWithUTF8String:anchor.node->currentKeyValue().value.c_str()]; _builder->removeHeadReadings(anchor.spanningLength); } @@ -1391,15 +1391,15 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; NSMutableArray *candidatesArray = [[NSMutableArray alloc] init]; size_t cursorIndex = [self _actualCandidateCursorIndex]; - std::vector nodes = _builder->grid().nodesCrossingOrEndingAt(cursorIndex); + std::vector nodes = _builder->grid().nodesCrossingOrEndingAt(cursorIndex); // sort the nodes, so that longer nodes (representing longer phrases) are placed at the top of the candidate list stable_sort(nodes.begin(), nodes.end(), NodeAnchorDescendingSorter()); // then use the C++ trick to retrieve the candidates for each node at/crossing the cursor - for (std::vector::iterator ni = nodes.begin(), ne = nodes.end(); ni != ne; ++ni) { - const std::vector &candidates = (*ni).node->candidates(); - for (std::vector::const_iterator ci = candidates.begin(), ce = candidates.end(); ci != ce; ++ci) { + for (std::vector::iterator ni = nodes.begin(), ne = nodes.end(); ni != ne; ++ni) { + const std::vector &candidates = (*ni).node->candidates(); + for (std::vector::const_iterator ci = candidates.begin(), ce = candidates.end(); ci != ce; ++ci) { [candidatesArray addObject:[NSString stringWithUTF8String:(*ci).value.c_str()]]; } } diff --git a/Source/Modules/LangModelRelated/LMInstantiator.h b/Source/Modules/LangModelRelated/LMInstantiator.h index 594cbe23..34507abc 100644 --- a/Source/Modules/LangModelRelated/LMInstantiator.h +++ b/Source/Modules/LangModelRelated/LMInstantiator.h @@ -32,7 +32,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH namespace vChewing { -using namespace Taiyan::Gramambular; +using namespace Gramambular; /// LMInstantiator is a facade for managing a set of models including /// the input method language model, user phrases and excluded phrases. @@ -56,7 +56,7 @@ using namespace Taiyan::Gramambular; /// model while launching and to load the user phrases anytime if the custom /// files are modified. It does not keep the reference of the data pathes but /// you have to pass the paths when you ask it to do loading. -class LMInstantiator : public Taiyan::Gramambular::LanguageModel { +class LMInstantiator : public Gramambular::LanguageModel { public: LMInstantiator(); ~LMInstantiator(); @@ -97,11 +97,11 @@ public: void loadPhraseReplacementMap(const char* phraseReplacementPath); /// Not implemented since we do not have data to provide bigram function. - const std::vector bigramsForKeys(const std::string& preceedingKey, const std::string& key); + const std::vector bigramsForKeys(const std::string& preceedingKey, const std::string& key); /// Returns a list of available unigram for the given key. /// @param key A std::string represents the BPMF reading or a symbol key. For /// example, it you pass "ㄇㄚ", it returns "嗎", "媽", and so on. - const std::vector unigramsForKey(const std::string& key); + const std::vector unigramsForKey(const std::string& key); /// If the model has unigrams for the given key. /// @param key The key. bool hasUnigramsForKey(const std::string& key); @@ -135,7 +135,7 @@ protected: /// @param insertedValues The values for unigrams already in the results. /// It helps to prevent duplicated unigrams. Please note that the method /// has a side effect that it inserts values to `insertedValues`. - const std::vector filterAndTransformUnigrams(const std::vector unigrams, + const std::vector filterAndTransformUnigrams(const std::vector unigrams, const std::unordered_set& excludedValues, std::unordered_set& insertedValues); diff --git a/Source/Modules/LangModelRelated/LMInstantiator.mm b/Source/Modules/LangModelRelated/LMInstantiator.mm index 4fe8d376..f9b0eb39 100644 --- a/Source/Modules/LangModelRelated/LMInstantiator.mm +++ b/Source/Modules/LangModelRelated/LMInstantiator.mm @@ -119,16 +119,16 @@ void LMInstantiator::loadPhraseReplacementMap(const char* phraseReplacementPath) } } -const std::vector LMInstantiator::bigramsForKeys(const std::string& preceedingKey, const std::string& key) +const std::vector LMInstantiator::bigramsForKeys(const std::string& preceedingKey, const std::string& key) { - return std::vector(); + return std::vector(); } -const std::vector LMInstantiator::unigramsForKey(const std::string& key) +const std::vector LMInstantiator::unigramsForKey(const std::string& key) { if (key == " ") { - std::vector spaceUnigrams; - Taiyan::Gramambular::Unigram g; + std::vector spaceUnigrams; + Gramambular::Unigram g; g.keyValue.key = " "; g.keyValue.value = " "; g.score = 0; @@ -136,24 +136,24 @@ const std::vector LMInstantiator::unigramsForKey(c return spaceUnigrams; } - std::vector allUnigrams; - std::vector miscUnigrams; - std::vector symbolUnigrams; - std::vector userUnigrams; - std::vector cnsUnigrams; + std::vector allUnigrams; + std::vector miscUnigrams; + std::vector symbolUnigrams; + std::vector userUnigrams; + std::vector cnsUnigrams; std::unordered_set excludedValues; std::unordered_set insertedValues; if (m_excludedPhrases.hasUnigramsForKey(key)) { - std::vector excludedUnigrams = m_excludedPhrases.unigramsForKey(key); + std::vector excludedUnigrams = m_excludedPhrases.unigramsForKey(key); transform(excludedUnigrams.begin(), excludedUnigrams.end(), inserter(excludedValues, excludedValues.end()), - [](const Taiyan::Gramambular::Unigram& u) { return u.keyValue.value; }); + [](const Gramambular::Unigram& u) { return u.keyValue.value; }); } if (m_userPhrases.hasUnigramsForKey(key)) { - std::vector rawUserUnigrams = m_userPhrases.unigramsForKey(key); + std::vector rawUserUnigrams = m_userPhrases.unigramsForKey(key); // 用這句指令讓使用者語彙檔案內的詞條優先順序隨著行數增加而逐漸增高。 // 這樣一來就可以在就地新增語彙時徹底複寫優先權。 std::reverse(rawUserUnigrams.begin(), rawUserUnigrams.end()); @@ -161,22 +161,22 @@ const std::vector LMInstantiator::unigramsForKey(c } if (m_languageModel.hasUnigramsForKey(key)) { - std::vector rawGlobalUnigrams = m_languageModel.unigramsForKey(key); + std::vector rawGlobalUnigrams = m_languageModel.unigramsForKey(key); allUnigrams = filterAndTransformUnigrams(rawGlobalUnigrams, excludedValues, insertedValues); } if (m_miscModel.hasUnigramsForKey(key)) { - std::vector rawMiscUnigrams = m_miscModel.unigramsForKey(key); + std::vector rawMiscUnigrams = m_miscModel.unigramsForKey(key); miscUnigrams = filterAndTransformUnigrams(rawMiscUnigrams, excludedValues, insertedValues); } if (m_symbolModel.hasUnigramsForKey(key)) { - std::vector rawSymbolUnigrams = m_symbolModel.unigramsForKey(key); + std::vector rawSymbolUnigrams = m_symbolModel.unigramsForKey(key); symbolUnigrams = filterAndTransformUnigrams(rawSymbolUnigrams, excludedValues, insertedValues); } if (m_cnsModel.hasUnigramsForKey(key) && m_cnsEnabled) { - std::vector rawCNSUnigrams = m_cnsModel.unigramsForKey(key); + std::vector rawCNSUnigrams = m_cnsModel.unigramsForKey(key); cnsUnigrams = filterAndTransformUnigrams(rawCNSUnigrams, excludedValues, insertedValues); } @@ -234,9 +234,9 @@ void LMInstantiator::setExternalConverter(std::function LMInstantiator::filterAndTransformUnigrams(const std::vector unigrams, const std::unordered_set& excludedValues, std::unordered_set& insertedValues) +const std::vector LMInstantiator::filterAndTransformUnigrams(const std::vector unigrams, const std::unordered_set& excludedValues, std::unordered_set& insertedValues) { - std::vector results; + std::vector results; for (auto&& unigram : unigrams) { // excludedValues filters out the unigrams with the original value. @@ -258,7 +258,7 @@ const std::vector LMInstantiator::filterAndTransfo value = replacement; } if (insertedValues.find(value) == insertedValues.end()) { - Taiyan::Gramambular::Unigram g; + Gramambular::Unigram g; g.keyValue.value = value; g.keyValue.key = unigram.keyValue.key; g.score = unigram.score; diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.h b/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.h index 178ee21a..0beffc83 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.h +++ b/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.h @@ -31,11 +31,11 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH // to avoid creating new string objects; the parser is a simple DFA using namespace std; -using namespace Taiyan::Gramambular; +using namespace Gramambular; namespace vChewing { -class CoreLM : public Taiyan::Gramambular::LanguageModel { +class CoreLM : public Gramambular::LanguageModel { public: CoreLM(); ~CoreLM(); @@ -45,8 +45,8 @@ public: void close(); void dump(); - virtual const std::vector bigramsForKeys(const string& preceedingKey, const string& key); - virtual const std::vector unigramsForKey(const string& key); + virtual const std::vector bigramsForKeys(const string& preceedingKey, const string& key); + virtual const std::vector unigramsForKey(const string& key); virtual bool hasUnigramsForKey(const string& key); protected: diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.mm b/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.mm index 42cf9aae..2f84c4c3 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.mm +++ b/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.mm @@ -25,7 +25,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include #include -using namespace Taiyan::Gramambular; +using namespace Gramambular; vChewing::CoreLM::CoreLM() : fd(-1) @@ -292,14 +292,14 @@ void vChewing::CoreLM::dump() } } -const std::vector vChewing::CoreLM::bigramsForKeys(const string& preceedingKey, const string& key) +const std::vector vChewing::CoreLM::bigramsForKeys(const string& preceedingKey, const string& key) { - return std::vector(); + return std::vector(); } -const std::vector vChewing::CoreLM::unigramsForKey(const string& key) +const std::vector vChewing::CoreLM::unigramsForKey(const string& key) { - std::vector v; + std::vector v; map >::const_iterator i = keyRowMap.find(key.c_str()); if (i != keyRowMap.end()) { diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/ParselessLM.cpp b/Source/Modules/LangModelRelated/SubLanguageModels/ParselessLM.cpp index 2fd63f03..92104c22 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/ParselessLM.cpp +++ b/Source/Modules/LangModelRelated/SubLanguageModels/ParselessLM.cpp @@ -80,23 +80,23 @@ void vChewing::ParselessLM::close() } } -const std::vector +const std::vector vChewing::ParselessLM::bigramsForKeys( const std::string& preceedingKey, const std::string& key) { - return std::vector(); + return std::vector(); } -const std::vector +const std::vector vChewing::ParselessLM::unigramsForKey(const std::string& key) { if (db_ == nullptr) { - return std::vector(); + return std::vector(); } - std::vector results; + std::vector results; for (const auto& row : db_->findRows(key + " ")) { - Taiyan::Gramambular::Unigram unigram; + Gramambular::Unigram unigram; // Move ahead until we encounter the first space. This is the key. auto it = row.begin(); diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/ParselessLM.h b/Source/Modules/LangModelRelated/SubLanguageModels/ParselessLM.h index df25c494..984054a2 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/ParselessLM.h +++ b/Source/Modules/LangModelRelated/SubLanguageModels/ParselessLM.h @@ -29,7 +29,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH namespace vChewing { -class ParselessLM : public Taiyan::Gramambular::LanguageModel { +class ParselessLM : public Gramambular::LanguageModel { public: ~ParselessLM() override; @@ -37,9 +37,9 @@ public: bool open(const std::string_view& path); void close(); - const std::vector bigramsForKeys( + const std::vector bigramsForKeys( const std::string& preceedingKey, const std::string& key) override; - const std::vector unigramsForKey( + const std::vector unigramsForKey( const std::string& key) override; bool hasUnigramsForKey(const std::string& key) override; diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.cpp b/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.cpp index 2e0a7096..8d30149a 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.cpp +++ b/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.cpp @@ -34,7 +34,7 @@ static double Score(size_t eventCount, double timestamp, double lambda); static bool IsEndingPunctuation(const std::string& value); -static std::string WalkedNodesToKey(const std::vector& walkedNodes, +static std::string WalkedNodesToKey(const std::vector& walkedNodes, size_t cursorIndex); UserOverrideModel::UserOverrideModel(size_t capacity, double decayConstant) @@ -43,7 +43,7 @@ UserOverrideModel::UserOverrideModel(size_t capacity, double decayConstant) m_decayExponent = log(0.5) / decayConstant; } -void UserOverrideModel::observe(const std::vector& walkedNodes, +void UserOverrideModel::observe(const std::vector& walkedNodes, size_t cursorIndex, const std::string& candidate, double timestamp) { @@ -76,7 +76,7 @@ void UserOverrideModel::observe(const std::vector& walkedNodes, +std::string UserOverrideModel::suggest(const std::vector& walkedNodes, size_t cursorIndex, double timestamp) { std::string key = WalkedNodesToKey(walkedNodes, cursorIndex); @@ -138,12 +138,12 @@ static bool IsEndingPunctuation(const std::string& value) { return value == "," || value == "。" || value== "!" || value == "?" || value == "」" || value == "』" || value== "”" || value == "’"; } -static std::string WalkedNodesToKey(const std::vector& walkedNodes, +static std::string WalkedNodesToKey(const std::vector& walkedNodes, size_t cursorIndex) { std::stringstream s; - std::vector n; + std::vector n; size_t ll = 0; - for (std::vector::const_iterator i = walkedNodes.begin(); + for (std::vector::const_iterator i = walkedNodes.begin(); i != walkedNodes.end(); ++i) { const auto& nn = *i; @@ -154,7 +154,7 @@ static std::string WalkedNodesToKey(const std::vector::const_reverse_iterator r = n.rbegin(); + std::vector::const_reverse_iterator r = n.rbegin(); if (r == n.rend()) { return ""; diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.h b/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.h index 7189f5d2..10824c4b 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.h +++ b/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.h @@ -27,18 +27,18 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH namespace vChewing { -using namespace Taiyan::Gramambular; +using namespace Gramambular; class UserOverrideModel { public: UserOverrideModel(size_t capacity, double decayConstant); - void observe(const std::vector& walkedNodes, + void observe(const std::vector& walkedNodes, size_t cursorIndex, const std::string& candidate, double timestamp); - std::string suggest(const std::vector& walkedNodes, + std::string suggest(const std::vector& walkedNodes, size_t cursorIndex, double timestamp); diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.h b/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.h index 33d57c61..05881911 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.h +++ b/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.h @@ -27,7 +27,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH namespace vChewing { -class UserPhrasesLM : public Taiyan::Gramambular::LanguageModel +class UserPhrasesLM : public Gramambular::LanguageModel { public: UserPhrasesLM(); @@ -46,8 +46,8 @@ public: return 0.0; } - virtual const std::vector bigramsForKeys(const std::string& preceedingKey, const std::string& key); - virtual const std::vector unigramsForKey(const std::string& key); + virtual const std::vector bigramsForKeys(const std::string& preceedingKey, const std::string& key); + virtual const std::vector unigramsForKey(const std::string& key); virtual bool hasUnigramsForKey(const std::string& key); protected: diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.mm b/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.mm index 6ae55429..f530f21f 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.mm +++ b/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.mm @@ -121,19 +121,19 @@ void UserPhrasesLM::dump() } } -const std::vector UserPhrasesLM::bigramsForKeys(const std::string& preceedingKey, const std::string& key) +const std::vector UserPhrasesLM::bigramsForKeys(const std::string& preceedingKey, const std::string& key) { - return std::vector(); + return std::vector(); } -const std::vector UserPhrasesLM::unigramsForKey(const std::string& key) +const std::vector UserPhrasesLM::unigramsForKey(const std::string& key) { - std::vector v; + std::vector v; auto iter = keyRowMap.find(key); if (iter != keyRowMap.end()) { const std::vector& rows = iter->second; for (const auto& row : rows) { - Taiyan::Gramambular::Unigram g; + Gramambular::Unigram g; g.keyValue.key = row.key; g.keyValue.value = row.value; g.score = overridedValue(); diff --git a/Source/Modules/LanguageParsers/Gramambular/Bigram.h b/Source/Modules/LanguageParsers/Gramambular/Bigram.h index 5995238d..16576b31 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Bigram.h +++ b/Source/Modules/LanguageParsers/Gramambular/Bigram.h @@ -24,7 +24,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include "KeyValuePair.h" -namespace Taiyan { namespace Gramambular { class Bigram { public: @@ -88,6 +87,6 @@ inline bool Bigram::operator<(const Bigram& another) const { return false; } } // namespace Gramambular -} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/BlockReadingBuilder.h b/Source/Modules/LanguageParsers/Gramambular/BlockReadingBuilder.h index a74a79f4..4ece863b 100644 --- a/Source/Modules/LanguageParsers/Gramambular/BlockReadingBuilder.h +++ b/Source/Modules/LanguageParsers/Gramambular/BlockReadingBuilder.h @@ -26,7 +26,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include "Grid.h" #include "LanguageModel.h" -namespace Taiyan { namespace Gramambular { class BlockReadingBuilder { @@ -201,6 +200,6 @@ inline const std::string BlockReadingBuilder::Join( return result; } } // namespace Gramambular -} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/Grid.h b/Source/Modules/LanguageParsers/Gramambular/Grid.h index f81c9301..3fd5c206 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Grid.h +++ b/Source/Modules/LanguageParsers/Gramambular/Grid.h @@ -27,7 +27,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include "NodeAnchor.h" #include "Span.h" -namespace Taiyan { namespace Gramambular { class Grid { @@ -218,6 +217,6 @@ inline void Grid::overrideNodeScoreForSelectedCandidate( } } // namespace Gramambular -} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/Grid.mm b/Source/Modules/LanguageParsers/Gramambular/Grid.mm index ba76a6e0..9e96c28e 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Grid.mm +++ b/Source/Modules/LanguageParsers/Gramambular/Grid.mm @@ -22,7 +22,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include #include -namespace Taiyan { namespace Gramambular { std::string Grid::dumpDOT() { @@ -67,4 +66,4 @@ std::string Grid::dumpDOT() { } } // namespace Gramambular -} // namespace Taiyan + diff --git a/Source/Modules/LanguageParsers/Gramambular/KeyValuePair.h b/Source/Modules/LanguageParsers/Gramambular/KeyValuePair.h index e22a96bd..569687ed 100644 --- a/Source/Modules/LanguageParsers/Gramambular/KeyValuePair.h +++ b/Source/Modules/LanguageParsers/Gramambular/KeyValuePair.h @@ -23,7 +23,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include #include -namespace Taiyan { namespace Gramambular { class KeyValuePair { @@ -54,6 +53,6 @@ inline bool KeyValuePair::operator<(const KeyValuePair& another) const { return false; } } // namespace Gramambular -} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/LanguageModel.h b/Source/Modules/LanguageParsers/Gramambular/LanguageModel.h index b24f7fff..bed61ab5 100644 --- a/Source/Modules/LanguageParsers/Gramambular/LanguageModel.h +++ b/Source/Modules/LanguageParsers/Gramambular/LanguageModel.h @@ -26,7 +26,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include "Bigram.h" #include "Unigram.h" -namespace Taiyan { namespace Gramambular { class LanguageModel { @@ -39,6 +38,6 @@ public: virtual bool hasUnigramsForKey(const std::string& key) = 0; }; } // namespace Gramambular -} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/Node.h b/Source/Modules/LanguageParsers/Gramambular/Node.h index dfc961c5..42de5910 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Node.h +++ b/Source/Modules/LanguageParsers/Gramambular/Node.h @@ -27,7 +27,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include "LanguageModel.h" -namespace Taiyan { namespace Gramambular { class Node { @@ -209,6 +208,6 @@ inline const KeyValuePair Node::currentKeyValue() const { } } } // namespace Gramambular -} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/NodeAnchor.h b/Source/Modules/LanguageParsers/Gramambular/NodeAnchor.h index f215c92e..485bb51f 100644 --- a/Source/Modules/LanguageParsers/Gramambular/NodeAnchor.h +++ b/Source/Modules/LanguageParsers/Gramambular/NodeAnchor.h @@ -24,7 +24,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include "Node.h" -namespace Taiyan { namespace Gramambular { struct NodeAnchor { @@ -59,6 +58,6 @@ inline std::ostream& operator<<(std::ostream& stream, return stream; } } // namespace Gramambular -} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/Span.h b/Source/Modules/LanguageParsers/Gramambular/Span.h index e46df777..30c12692 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Span.h +++ b/Source/Modules/LanguageParsers/Gramambular/Span.h @@ -26,7 +26,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include "Node.h" -namespace Taiyan { namespace Gramambular { class Span { public: @@ -88,6 +87,6 @@ inline Node* Span::nodeOfLength(size_t length) { inline size_t Span::maximumLength() const { return m_maximumLength; } } // namespace Gramambular -} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/Unigram.h b/Source/Modules/LanguageParsers/Gramambular/Unigram.h index b05e55f6..45b461d4 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Unigram.h +++ b/Source/Modules/LanguageParsers/Gramambular/Unigram.h @@ -24,7 +24,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include "KeyValuePair.h" -namespace Taiyan { namespace Gramambular { class Unigram { @@ -86,6 +85,6 @@ inline bool Unigram::ScoreCompare(const Unigram& a, const Unigram& b) { return a.score > b.score; } } // namespace Gramambular -} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/Walker.h b/Source/Modules/LanguageParsers/Gramambular/Walker.h index fdb035d6..b694c7e7 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Walker.h +++ b/Source/Modules/LanguageParsers/Gramambular/Walker.h @@ -25,7 +25,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include "Grid.h" -namespace Taiyan { namespace Gramambular { class Walker { @@ -80,6 +79,6 @@ inline const std::vector Walker::reverseWalk( return *result; } } // namespace Gramambular -} // namespace Taiyan + #endif From a272b6e757a192770f027bb584ce27d10bb67f24 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 28 Feb 2022 19:06:50 +0800 Subject: [PATCH 12/72] PrefModule // +SpecifySpaceKeyBehavior, plus format fixes. --- .../IMEModules/PreferencesModule.swift | 51 +++++++++++-------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/Source/Modules/IMEModules/PreferencesModule.swift b/Source/Modules/IMEModules/PreferencesModule.swift index 68d2cf45..92bad1b6 100644 --- a/Source/Modules/IMEModules/PreferencesModule.swift +++ b/Source/Modules/IMEModules/PreferencesModule.swift @@ -39,6 +39,7 @@ private let kHalfWidthPunctuationEnabled = "HalfWidthPunctuationEnable" private let kMoveCursorAfterSelectingCandidate = "MoveCursorAfterSelectingCandidate" private let kEscToCleanInputBuffer = "EscToCleanInputBuffer" private let kSpecifyTabKeyBehavior = "SpecifyTabKeyBehavior" +private let kSpecifySpaceKeyBehavior = "SpecifySpaceKeyBehavior" private let kUseSCPCTypingMode = "UseSCPCTypingMode" private let kMaxCandidateLength = "MaxCandidateLength" private let kShouldNotFartInLieuOfBeep = "ShouldNotFartInLieuOfBeep" @@ -158,7 +159,7 @@ struct ComposingBufferSize { case MiTAC = 5 case FakeSeigyou = 6 case hanyuPinyin = 10 - + var name: String { switch (self) { case .standard: @@ -229,6 +230,7 @@ struct ComposingBufferSize { kShiftJISShinjitaiOutputEnabled, kHalfWidthPunctuationEnabled, kSpecifyTabKeyBehavior, + kSpecifySpaceKeyBehavior, kEscToCleanInputBuffer, kCandidateTextFontName, kCandidateKeyLabelFontName, @@ -242,7 +244,7 @@ struct ComposingBufferSize { kChineseConversionStyleKey, kAssociatedPhrasesEnabled] } - + @objc public static func setMissingDefaults () { // 既然 Preferences Module 的預設屬性不自動寫入 plist、而且還是 private,那這邊就先寫入了。 @@ -260,22 +262,27 @@ struct ComposingBufferSize { if UserDefaults.standard.object(forKey: kCandidateListTextSize) == nil { UserDefaults.standard.set(Preferences.candidateListTextSize, forKey: kCandidateListTextSize) } - + // 預設摁空格鍵來選字,所以設成 true if UserDefaults.standard.object(forKey: kChooseCandidateUsingSpace) == nil { UserDefaults.standard.set(Preferences.chooseCandidateUsingSpace, forKey: kChooseCandidateUsingSpace) } - + // 自動檢測使用者自訂語彙數據的變動並載入。 if UserDefaults.standard.object(forKey: kShouldAutoReloadUserDataFiles) == nil { UserDefaults.standard.set(Preferences.shouldAutoReloadUserDataFiles, forKey: kShouldAutoReloadUserDataFiles) } - + // 預設情況下讓 Tab 鍵在選字窗內切換候選字、而不是用來換頁。 if UserDefaults.standard.object(forKey: kSpecifyTabKeyBehavior) == nil { UserDefaults.standard.set(Preferences.specifyTabKeyBehavior, forKey: kSpecifyTabKeyBehavior) } - + + // 預設情況下讓 Space 鍵在選字窗內切換候選字、而不是用來換頁。 + if UserDefaults.standard.object(forKey: kSpecifySpaceKeyBehavior) == nil { + UserDefaults.standard.set(Preferences.specifySpaceKeyBehavior, forKey: kSpecifySpaceKeyBehavior) + } + // 預設禁用逐字選字模式(就是每個字都要選的那種),所以設成 false if UserDefaults.standard.object(forKey: kUseSCPCTypingMode) == nil { UserDefaults.standard.set(Preferences.useSCPCTypingMode, forKey: kUseSCPCTypingMode) @@ -290,32 +297,32 @@ struct ComposingBufferSize { if UserDefaults.standard.object(forKey: kSelectPhraseAfterCursorAsCandidatePreference) == nil { UserDefaults.standard.set(Preferences.selectPhraseAfterCursorAsCandidate, forKey: kSelectPhraseAfterCursorAsCandidatePreference) } - + // 預設在選字後自動移動游標 if UserDefaults.standard.object(forKey: kMoveCursorAfterSelectingCandidate) == nil { UserDefaults.standard.set(Preferences.moveCursorAfterSelectingCandidate, forKey: kMoveCursorAfterSelectingCandidate) } - + // 預設橫向選字窗,不爽請自行改成縱向選字窗 if UserDefaults.standard.object(forKey: kUseHorizontalCandidateListPreference) == nil { UserDefaults.standard.set(Preferences.useHorizontalCandidateList, forKey: kUseHorizontalCandidateListPreference) } - + // 預設停用全字庫支援 if UserDefaults.standard.object(forKey: kCNS11643Enabled) == nil { UserDefaults.standard.set(Preferences.cns11643Enabled, forKey: kCNS11643Enabled) } - + // 預設停用繁體轉康熙模組 if UserDefaults.standard.object(forKey: kChineseConversionEnabled) == nil { UserDefaults.standard.set(Preferences.chineseConversionEnabled, forKey: kChineseConversionEnabled) } - + // 預設停用繁體轉 JIS 當用新字體模組 if UserDefaults.standard.object(forKey: kShiftJISShinjitaiOutputEnabled) == nil { UserDefaults.standard.set(Preferences.shiftJISShinjitaiOutputEnabled, forKey: kShiftJISShinjitaiOutputEnabled) } - + // 預設停用自訂語彙置換 if UserDefaults.standard.object(forKey: kPhraseReplacementEnabled) == nil { UserDefaults.standard.set(Preferences.phraseReplacementEnabled, forKey: kPhraseReplacementEnabled) @@ -325,7 +332,7 @@ struct ComposingBufferSize { if UserDefaults.standard.object(forKey: kShouldNotFartInLieuOfBeep) == nil { UserDefaults.standard.set(Preferences.shouldNotFartInLieuOfBeep, forKey: kShouldNotFartInLieuOfBeep) } - + UserDefaults.standard.synchronize() } @@ -353,7 +360,7 @@ struct ComposingBufferSize { @CandidateListTextSize(key: kCandidateListTextSize) @objc static var candidateListTextSize: CGFloat - + @UserDefault(key: kShouldAutoReloadUserDataFiles, defaultValue: true) @objc static var shouldAutoReloadUserDataFiles: Bool @@ -371,22 +378,22 @@ struct ComposingBufferSize { @UserDefault(key: kChooseCandidateUsingSpace, defaultValue: true) @objc static var chooseCandidateUsingSpace: Bool - + @UserDefault(key: kUseSCPCTypingMode, defaultValue: false) @objc static var useSCPCTypingMode: Bool - + @objc static func toggleSCPCTypingModeEnabled() -> Bool { useSCPCTypingMode = !useSCPCTypingMode UserDefaults.standard.set(useSCPCTypingMode, forKey: kUseSCPCTypingMode) return useSCPCTypingMode } - + @UserDefault(key: kMaxCandidateLength, defaultValue: kDefaultComposingBufferSize * 2) @objc static var maxCandidateLength: Int - + @UserDefault(key: kShouldNotFartInLieuOfBeep, defaultValue: true) @objc static var shouldNotFartInLieuOfBeep: Bool - + @objc static func toggleShouldNotFartInLieuOfBeep() -> Bool { shouldNotFartInLieuOfBeep = !shouldNotFartInLieuOfBeep UserDefaults.standard.set(shouldNotFartInLieuOfBeep, forKey: kShouldNotFartInLieuOfBeep) @@ -435,9 +442,13 @@ struct ComposingBufferSize { @UserDefault(key: kEscToCleanInputBuffer, defaultValue: true) @objc static var escToCleanInputBuffer: Bool + @UserDefault(key: kSpecifyTabKeyBehavior, defaultValue: false) @objc static var specifyTabKeyBehavior: Bool + @UserDefault(key: kSpecifySpaceKeyBehavior, defaultValue: false) + @objc static var specifySpaceKeyBehavior: Bool + // MARK: - Optional settings @UserDefault(key: kCandidateTextFontName, defaultValue: nil) @objc static var candidateTextFontName: String? @@ -522,5 +533,5 @@ struct ComposingBufferSize { UserDefaults.standard.set(associatedPhrasesEnabled, forKey: kAssociatedPhrasesEnabled) return associatedPhrasesEnabled } - + } From 79b7393b166af36bf336bb0494e5837e266bca83 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 28 Feb 2022 19:07:53 +0800 Subject: [PATCH 13/72] PrefWindow // Add options for kSpecifySpaceKeyBehavior, + i18n tweaks. --- .../WindowNIBs/Base.lproj/frmPrefWindow.xib | 100 ++++++++++++------ .../WindowNIBs/en.lproj/frmPrefWindow.strings | 17 ++- .../WindowNIBs/ja.lproj/frmPrefWindow.strings | 17 ++- .../zh-Hans.lproj/frmPrefWindow.strings | 15 ++- .../zh-Hant.lproj/frmPrefWindow.strings | 15 ++- 5 files changed, 119 insertions(+), 45 deletions(-) diff --git a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib index 8b2cc983..8e90874a 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib +++ b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib @@ -416,32 +416,6 @@ - - @@ -475,9 +449,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -499,9 +533,11 @@ + - + + @@ -510,11 +546,13 @@ + - + + - + diff --git a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings index 6523d768..68fd253d 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings @@ -80,8 +80,8 @@ /* Class = "NSMenuItem"; title = "96"; ObjectID = "101"; */ "101.title" = "96"; -/* Class = "NSButtonCell"; title = "Enable SPACE key for calling candidate window"; ObjectID = "110"; */ -"110.title" = "Enable SPACE key for calling candidate window"; +/* Class = "NSButtonCell"; title = "Enable Space key for calling candidate window"; ObjectID = "110"; */ +"110.title" = "Enable Space key for calling candidate window"; /* Class = "NSTextFieldCell"; title = "Alphanumeric:"; ObjectID = "126"; */ "126.title" = "Alphanumeric:"; @@ -200,11 +200,20 @@ /* Class = "NSTextFieldCell"; title = "Regarding On-Screen Keyboard Support:"; ObjectID = "wQ9-px-b07"; */ "wQ9-px-b07.title" = "Regarding On-Screen Keyboard Viewer Support:\n\n\tSince v1.3.2, vChewing supports on-screen keyboard by supporting \"Apple Zhuyin Bopomofo\" and \"Apple Zhuyin Eten\" alphanumeric layout. Theoreotically, these two dynamic layouts work with all types of Apple physical keyboards, and you can report failure cases through macOS Feedback Assistant app if macOS built-in Zhuyin / Eten-Zhuyin Input Method fails from working with your non-US keyboard.\n\n\tHOWEVER, choosing such dynamic alphanumeric layouts REQUIRING THAT you have to choose the Bopomofo layout above to Standard (Microsoft / Dachen) since the Bopomofo / Eten layout support in this case is already finished by the macOS system."; +/* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Tab key in the candidate window."; ObjectID = "ueU-Rz-a1C"; */ +"ueU-Rz-a1C.title" = "Choose the behavior of (Shift+)Tab key in the candidate window."; + /* Class = "NSButtonCell"; title = "Cycling Pages"; ObjectID = "s7u-Fm-dVg"; */ "s7u-Fm-dVg.title" = "Cycling Pages"; /* Class = "NSButtonCell"; title = "Cycling Candidates"; ObjectID = "FVC-br-H57"; */ "FVC-br-H57.title" = "Cycling Candidates"; -/* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Tab key in the candidate window."; ObjectID = "ueU-Rz-a1C"; */ -"ueU-Rz-a1C.title" = "Choose the behavior of (Shift+)Tab key in the candidate window."; +/* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Space key in the candidate window."; ObjectID = "Pg5-G9-pY5"; */ +"Pg5-G9-pY5.title" = "Choose the behavior of (Shift+)Space key in the candidate window."; + +/* Class = "NSButtonCell"; title = "Space to +cycle pages, Shift+Space to +cycle candidates"; ObjectID = "XqL-rf-X6d"; */ +"XqL-rf-X6d.title" = "Space to +cycle pages, Shift+Space to +cycle candidates"; + +/* Class = "NSButtonCell"; title = "Space to +cycle candidates, Shift+Space to +cycle pages"; ObjectID = "dIN-TZ-67g"; */ +"dIN-TZ-67g.title" = "Space to +cycle candidates, Shift+Space to +cycle pages"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings index 430ec22f..1dd9552a 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings @@ -80,8 +80,8 @@ /* Class = "NSMenuItem"; title = "96"; ObjectID = "101"; */ "101.title" = "96"; -/* Class = "NSButtonCell"; title = "Enable SPACE key for calling candidate window"; ObjectID = "110"; */ -"110.title" = "スペースキーで入力候補を呼び出す"; +/* Class = "NSButtonCell"; title = "Enable Space key for calling candidate window"; ObjectID = "110"; */ +"110.title" = "Space キーで入力候補を呼び出す"; /* Class = "NSTextFieldCell"; title = "Alphanumeric:"; ObjectID = "126"; */ "126.title" = "英数キーボード配列:"; @@ -200,11 +200,20 @@ /* Class = "NSTextFieldCell"; title = "Regarding On-Screen Keyboard Support:"; ObjectID = "wQ9-px-b07"; */ "wQ9-px-b07.title" = "macOS 内蔵のキーボードビューアについて:\n\n\t威注音は v1.3.2 版にて macOS 内蔵のキーボードビューアをサポートし始めたが、「Apple Zhuyin Bopomofo」と「Apple Zhuyin Eten」この2つダイナミック英数キーボード配列をサポートしたためである。基本的には、この機能は全ての言語の Apple キーボードと一緒に動けるはず。macOS 内蔵の注音入力と倚天注音入力が支障なく使える限り(支障があったら Feedback Assistant.app で Apple にご報告を)、この2つダイナミック英数キーボード配列も威注音で作動できるだと考えられる。\n\n\tだが、もし、ダイナミック英数キーボード配列を起用すると、今のこの画面の上の「注音キーボード配列」を標準配列にしなければならぬこと。なぜなら、この場合、倚天などの注音配列のサポート役割は macOS である。"; +/* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Tab key in the candidate window."; ObjectID = "ueU-Rz-a1C"; */ +"ueU-Rz-a1C.title" = "入力候補陳列での (Shift+)Tab キーの輪番切替対象をご指定ください。"; + /* Class = "NSButtonCell"; title = "Cycling Pages"; ObjectID = "s7u-Fm-dVg"; */ "s7u-Fm-dVg.title" = "ページ"; /* Class = "NSButtonCell"; title = "Cycling Candidates"; ObjectID = "FVC-br-H57"; */ "FVC-br-H57.title" = "候補文字そのもの"; -/* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Tab key in the candidate window."; ObjectID = "ueU-Rz-a1C"; */ -"ueU-Rz-a1C.title" = "入力候補陳列での (Shift+)Tab キーの輪番切替対象をご指定ください。"; +/* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Space key in the candidate window."; ObjectID = "Pg5-G9-pY5"; */ +"Pg5-G9-pY5.title" = "入力候補陳列での (Shift+)Space キーの輪番切替対象をご指定ください。"; + +/* Class = "NSButtonCell"; title = "Space to +cycle pages, Shift+Space to +cycle candidates"; ObjectID = "XqL-rf-X6d"; */ +"XqL-rf-X6d.title" = "Space で次のページ、Shift+Space で次の候補文字を"; + +/* Class = "NSButtonCell"; title = "Space to +cycle candidates, Shift+Space to +cycle pages"; ObjectID = "dIN-TZ-67g"; */ +"dIN-TZ-67g.title" = "Shift+Space で次のページ、Space で次の候補文字を"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings index 6a0fb860..803e7b32 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings @@ -80,7 +80,7 @@ /* Class = "NSMenuItem"; title = "96"; ObjectID = "101"; */ "101.title" = "96"; -/* Class = "NSButtonCell"; title = "Enable SPACE key for calling candidate window"; ObjectID = "110"; */ +/* Class = "NSButtonCell"; title = "Enable Space key for calling candidate window"; ObjectID = "110"; */ "110.title" = "敲空格键以选字"; /* Class = "NSTextFieldCell"; title = "Alphanumeric:"; ObjectID = "126"; */ @@ -200,11 +200,20 @@ /* Class = "NSTextFieldCell"; title = "Regarding On-Screen Keyboard Support:"; ObjectID = "wQ9-px-b07"; */ "wQ9-px-b07.title" = "关于 macOS 内建萤幕模拟键盘支援:\n\n\t自 v1.3.2 版开始,威注音支援 macOS 内建的萤幕小键盘。该功能是借由对「Apple 标准注音键盘布局」与「Apple 倚天注音键盘布局」这两个动态英数键盘布局来完成的。理论上来讲,这两个动态英数键盘布局应该可以与所有语种的 Apple 物理键盘相容。如果有不相容的情况的话,macOS 内建的注音与倚天注音输入法一定也会有相同的故障(可以借由 Feedback Assistant.app 向 Apple 反馈这种键盘布局问题)。\n\n\t然而,如果您启用了这种动态英数键盘布局的话,请将当前画面顶端的注音键盘布局设为「微软/大千……」,因为对诸如倚天等异种键盘的支援已经交给 macOS 系统来事先完成了。"; +/* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Tab key in the candidate window."; ObjectID = "ueU-Rz-a1C"; */ +"ueU-Rz-a1C.title" = "指定 (Shift+)Tab 热键在选字窗内的轮替操作对象。"; + /* Class = "NSButtonCell"; title = "Cycling Pages"; ObjectID = "s7u-Fm-dVg"; */ "s7u-Fm-dVg.title" = "轮替页面"; /* Class = "NSButtonCell"; title = "Cycling Candidates"; ObjectID = "FVC-br-H57"; */ "FVC-br-H57.title" = "轮替候选字"; -/* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Tab key in the candidate window."; ObjectID = "ueU-Rz-a1C"; */ -"ueU-Rz-a1C.title" = "指定 (Shift+)Tab 热键在选字窗内的轮替操作对象。"; +/* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Space key in the candidate window."; ObjectID = "Pg5-G9-pY5"; */ +"Pg5-G9-pY5.title" = "指定 (Shift+)Space 热键在选字窗内的轮替操作对象。"; + +/* Class = "NSButtonCell"; title = "Space to +cycle pages, Shift+Space to +cycle candidates"; ObjectID = "XqL-rf-X6d"; */ +"XqL-rf-X6d.title" = "Space 换下一页,Shift+Space 换选下一个候选字。"; + +/* Class = "NSButtonCell"; title = "Space to +cycle candidates, Shift+Space to +cycle pages"; ObjectID = "dIN-TZ-67g"; */ +"dIN-TZ-67g.title" = "Shift+Space 换下一页,Space 换选下一个候选字。"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings index 685b8248..418ee08e 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings @@ -80,7 +80,7 @@ /* Class = "NSMenuItem"; title = "96"; ObjectID = "101"; */ "101.title" = "96"; -/* Class = "NSButtonCell"; title = "Enable SPACE key for calling candidate window"; ObjectID = "110"; */ +/* Class = "NSButtonCell"; title = "Enable Space key for calling candidate window"; ObjectID = "110"; */ "110.title" = "敲空格鍵以選字"; /* Class = "NSTextFieldCell"; title = "Alphanumeric:"; ObjectID = "126"; */ @@ -200,11 +200,20 @@ /* Class = "NSTextFieldCell"; title = "Regarding On-Screen Keyboard Support:"; ObjectID = "wQ9-px-b07"; */ "wQ9-px-b07.title" = "關於 macOS 內建螢幕模擬鍵盤支援:\n\n\t自 v1.3.2 版開始,威注音支援 macOS 內建的螢幕小鍵盤。該功能是藉由對「Apple 標準注音鍵盤佈局」與「Apple 倚天注音鍵盤佈局」這兩個動態英數鍵盤佈局來完成的。理論上來講,這兩個動態英數鍵盤佈局應該可以與所有語種的 Apple 物理鍵盤相容。如果有不相容的情況的話,macOS 內建的注音與倚天注音輸入法一定也會有相同的故障(可以藉由 Feedback Assistant.app 向 Apple 反饋這種鍵盤佈局問題)。\n\n\t然而,如果您啟用了這種動態英數鍵盤佈局的話,請將當前畫面頂端的注音鍵盤佈局設為「微軟/大千……」,因為對諸如倚天等異種鍵盤的支援已經交給 macOS 系統來事先完成了。"; +/* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Tab key in the candidate window."; ObjectID = "ueU-Rz-a1C"; */ +"ueU-Rz-a1C.title" = "指定 (Shift+)Tab 熱鍵在選字窗內的輪替操作對象。"; + /* Class = "NSButtonCell"; title = "Cycling Pages"; ObjectID = "s7u-Fm-dVg"; */ "s7u-Fm-dVg.title" = "輪替頁面"; /* Class = "NSButtonCell"; title = "Cycling Candidates"; ObjectID = "FVC-br-H57"; */ "FVC-br-H57.title" = "輪替候選字"; -/* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Tab key in the candidate window."; ObjectID = "ueU-Rz-a1C"; */ -"ueU-Rz-a1C.title" = "指定 (Shift+)Tab 熱鍵在選字窗內的輪替操作對象。"; +/* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Space key in the candidate window."; ObjectID = "Pg5-G9-pY5"; */ +"Pg5-G9-pY5.title" = "指定 (Shift+)Space 熱鍵在選字窗內的輪替操作對象。"; + +/* Class = "NSButtonCell"; title = "Space to +cycle pages, Shift+Space to +cycle candidates"; ObjectID = "XqL-rf-X6d"; */ +"XqL-rf-X6d.title" = "Space 換下一頁,Shift+Space 換選下一個候選字"; + +/* Class = "NSButtonCell"; title = "Space to +cycle candidates, Shift+Space to +cycle pages"; ObjectID = "dIN-TZ-67g"; */ +"dIN-TZ-67g.title" = "Shift+Space 換下一頁,Space 換選下一個候選字"; From 58d84b4c929cf0f1ae53a291d080d1dbeef9dc8e Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 28 Feb 2022 20:33:55 +0800 Subject: [PATCH 14/72] KeyHandler // Allow users to define SPACE key behavior in Candidate Window. --- Source/Modules/ControllerModules/KeyHandler.mm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index a5d6effe..7433e943 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -1046,7 +1046,21 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; return YES; } - if ([input isSpace] || [input isPageDown] || input.emacsKey == vChewingEmacsKeyNextPage) { + if ([input isSpace]) { + BOOL updated = + Preferences.specifySpaceKeyBehavior? + ([input isShiftHold] ? [gCurrentCandidateController highlightNextCandidate] : [gCurrentCandidateController showNextPage]) + : + ([input isShiftHold] ? [gCurrentCandidateController showNextPage] : [gCurrentCandidateController highlightNextCandidate]) + ; + if (!updated) { + [IME prtDebugIntel:@"A11C781F"]; + errorCallback(); + } + return YES; + } + + if ([input isPageDown] || input.emacsKey == vChewingEmacsKeyNextPage) { BOOL updated = [gCurrentCandidateController showNextPage]; if (!updated) { [IME prtDebugIntel:@"9B691919"]; From 6eb3f4fe9be19dadaddc9f6b93474f1687a8a15e Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sat, 5 Mar 2022 10:35:24 +0800 Subject: [PATCH 15/72] KeyHandler // Fix typo: Symchronize -> Synchronize. --- Source/Modules/ControllerModules/KeyHandler.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index 7433e943..04a2b401 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -111,7 +111,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; newUserOverrideModel = [mgrLangModel userOverrideModelCHT]; } - // Symchronize the Preference Setting "setPhraseReplacementEnabled" to the new LM. + // Synchronize the Preference Setting "setPhraseReplacementEnabled" to the new LM. newLanguageModel->setPhraseReplacementEnabled(Preferences.phraseReplacementEnabled); // Only apply the changes if the value is changed From 6b3bc98ae8892c599e1b8915564b002124d1caa6 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 1 Mar 2022 18:10:57 +0800 Subject: [PATCH 16/72] Pref // Fix typo: Alphanumeral -> Alphanumerical. --- Source/Modules/IMEModules/PreferencesModule.swift | 2 +- Source/Resources/Base.lproj/Localizable.strings | 2 +- Source/Resources/en.lproj/Localizable.strings | 2 +- Source/Resources/ja.lproj/Localizable.strings | 2 +- Source/Resources/zh-Hans.lproj/Localizable.strings | 2 +- Source/Resources/zh-Hant.lproj/Localizable.strings | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Source/Modules/IMEModules/PreferencesModule.swift b/Source/Modules/IMEModules/PreferencesModule.swift index 92bad1b6..3ed5b896 100644 --- a/Source/Modules/IMEModules/PreferencesModule.swift +++ b/Source/Modules/IMEModules/PreferencesModule.swift @@ -502,7 +502,7 @@ struct ComposingBufferSize { case .empty: return NSLocalizedString("Candidates keys cannot be empty.", comment: "") case .invalidCharacters: - return NSLocalizedString("Candidate keys can only contain ASCII characters like alphanumerals.", comment: "") + return NSLocalizedString("Candidate keys can only contain ASCII characters like alphanumericals.", comment: "") case .containSpace: return NSLocalizedString("Candidate keys cannot contain space.", comment: "") case .duplicatedCharacters: diff --git a/Source/Resources/Base.lproj/Localizable.strings b/Source/Resources/Base.lproj/Localizable.strings index fac28d72..184d9a79 100644 --- a/Source/Resources/Base.lproj/Localizable.strings +++ b/Source/Resources/Base.lproj/Localizable.strings @@ -28,7 +28,7 @@ "Edit Phrase Replacement Table…" = "Edit Phrase Replacement Table…"; "Use Phrase Replacement" = "Use Phrase Replacement"; "Candidates keys cannot be empty." = "Candidates keys cannot be empty."; -"Candidate keys can only contain ASCII characters like alphanumerals." = "Candidate keys can only contain ASCII characters like alphanumerals."; +"Candidate keys can only contain ASCII characters like alphanumericals." = "Candidate keys can only contain ASCII characters like alphanumericals."; "Candidate keys cannot contain space." = "Candidate keys cannot contain space."; "There should not be duplicated keys." = "There should not be duplicated keys."; "Please specify at least 4 candidate keys." = "Please specify at least 4 candidate keys."; diff --git a/Source/Resources/en.lproj/Localizable.strings b/Source/Resources/en.lproj/Localizable.strings index fac28d72..184d9a79 100644 --- a/Source/Resources/en.lproj/Localizable.strings +++ b/Source/Resources/en.lproj/Localizable.strings @@ -28,7 +28,7 @@ "Edit Phrase Replacement Table…" = "Edit Phrase Replacement Table…"; "Use Phrase Replacement" = "Use Phrase Replacement"; "Candidates keys cannot be empty." = "Candidates keys cannot be empty."; -"Candidate keys can only contain ASCII characters like alphanumerals." = "Candidate keys can only contain ASCII characters like alphanumerals."; +"Candidate keys can only contain ASCII characters like alphanumericals." = "Candidate keys can only contain ASCII characters like alphanumericals."; "Candidate keys cannot contain space." = "Candidate keys cannot contain space."; "There should not be duplicated keys." = "There should not be duplicated keys."; "Please specify at least 4 candidate keys." = "Please specify at least 4 candidate keys."; diff --git a/Source/Resources/ja.lproj/Localizable.strings b/Source/Resources/ja.lproj/Localizable.strings index 00026872..4f056b37 100644 --- a/Source/Resources/ja.lproj/Localizable.strings +++ b/Source/Resources/ja.lproj/Localizable.strings @@ -28,7 +28,7 @@ "Edit Phrase Replacement Table…" = "言葉置換表を編集…"; "Use Phrase Replacement" = "言葉置換機能"; "Candidates keys cannot be empty." = "言選り用キー陣列に何かキーをご登録ください。"; -"Candidate keys can only contain ASCII characters like alphanumerals." = "言選り用キー陣列にはASCII文字だけをご登録ください(英数など)。"; +"Candidate keys can only contain ASCII characters like alphanumericals." = "言選り用キー陣列にはASCII文字だけをご登録ください(英数など)。"; "Candidate keys cannot contain space." = "言選り用キー陣列にスペースキーは登録できません。"; "There should not be duplicated keys." = "言選り用キー陣列に同じキーの重複登録はできません。"; "Please specify at least 4 candidate keys." = "言選り用キー陣列に少なくとも4つのキーをご登録ください。"; diff --git a/Source/Resources/zh-Hans.lproj/Localizable.strings b/Source/Resources/zh-Hans.lproj/Localizable.strings index bee4cf8e..cb5f55e4 100644 --- a/Source/Resources/zh-Hans.lproj/Localizable.strings +++ b/Source/Resources/zh-Hans.lproj/Localizable.strings @@ -28,7 +28,7 @@ "Edit Phrase Replacement Table…" = "编辑语汇置换表…"; "Use Phrase Replacement" = "使用语汇置换"; "Candidates keys cannot be empty." = "您必须指定选字键。"; -"Candidate keys can only contain ASCII characters like alphanumerals." = "选字键只能是英数等 ASCII 字符。"; +"Candidate keys can only contain ASCII characters like alphanumericals." = "选字键只能是英数等 ASCII 字符。"; "Candidate keys cannot contain space." = "选字键不得包含空格。"; "There should not be duplicated keys." = "选字键不得重复。"; "Please specify at least 4 candidate keys." = "请至少指定四个选字键。"; diff --git a/Source/Resources/zh-Hant.lproj/Localizable.strings b/Source/Resources/zh-Hant.lproj/Localizable.strings index 3a1b9998..e7f0a0bd 100644 --- a/Source/Resources/zh-Hant.lproj/Localizable.strings +++ b/Source/Resources/zh-Hant.lproj/Localizable.strings @@ -28,7 +28,7 @@ "Edit Phrase Replacement Table…" = "編輯語彙置換表…"; "Use Phrase Replacement" = "使用語彙置換"; "Candidates keys cannot be empty." = "您必須指定選字鍵。"; -"Candidate keys can only contain ASCII characters like alphanumerals." = "選字鍵只能是英數等 ASCII 字符。"; +"Candidate keys can only contain ASCII characters like alphanumericals." = "選字鍵只能是英數等 ASCII 字符。"; "Candidate keys cannot contain space." = "選字鍵不得包含空格。"; "There should not be duplicated keys." = "選字鍵不得重複。"; "Please specify at least 4 candidate keys." = "請至少指定四個選字鍵。"; From 60f7d018781ecdf5210b7bb6ec54762e1d20d110 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 1 Mar 2022 17:11:46 +0800 Subject: [PATCH 17/72] Prefs // Formalize the naming of certain key names. - Since the keys already have initial "k", they don't have to use "Key" as their suffixes. --- Source/Modules/IMEModules/PreferencesModule.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Modules/IMEModules/PreferencesModule.swift b/Source/Modules/IMEModules/PreferencesModule.swift index 3ed5b896..802982d5 100644 --- a/Source/Modules/IMEModules/PreferencesModule.swift +++ b/Source/Modules/IMEModules/PreferencesModule.swift @@ -48,8 +48,8 @@ private let kCandidateTextFontName = "CandidateTextFontName" private let kCandidateKeyLabelFontName = "CandidateKeyLabelFontName" private let kCandidateKeys = "CandidateKeys" -private let kChineseConversionEngineKey = "ChineseConversionEngine" -private let kChineseConversionStyleKey = "ChineseConversionStyle" +private let kChineseConversionEngine = "ChineseConversionEngine" +private let kChineseConversionStyle = "ChineseConversionStyle" private let kAssociatedPhrasesEnabled = "AssociatedPhrasesEnabled" private let kPhraseReplacementEnabled = "PhraseReplacementEnabled" @@ -240,8 +240,8 @@ struct ComposingBufferSize { kUseSCPCTypingMode, kMaxCandidateLength, kShouldNotFartInLieuOfBeep, - kChineseConversionEngineKey, - kChineseConversionStyleKey, + kChineseConversionEngine, + kChineseConversionStyle, kAssociatedPhrasesEnabled] } From 5e40bb07dd1ebbd24b8e49ecbdd6027c057ca7e9 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 1 Mar 2022 17:35:32 +0800 Subject: [PATCH 18/72] Pref // Adding preferences for handling alphanumerical input mode. --- .../Modules/IMEModules/PreferencesModule.swift | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Source/Modules/IMEModules/PreferencesModule.swift b/Source/Modules/IMEModules/PreferencesModule.swift index 802982d5..9ee67a12 100644 --- a/Source/Modules/IMEModules/PreferencesModule.swift +++ b/Source/Modules/IMEModules/PreferencesModule.swift @@ -20,6 +20,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH import Cocoa private let kIsDebugModeEnabled = "_DebugMode" +private let kIsAlphanumericalModeEnabled = "IsAlphanumericalModeEnabled" private let kCheckUpdateAutomatically = "CheckUpdateAutomatically" private let kKeyboardLayoutPreference = "KeyboardLayout" private let kBasisKeyboardLayoutPreference = "BasisKeyboardLayout" @@ -214,6 +215,7 @@ struct ComposingBufferSize { @objc public class Preferences: NSObject { static var allKeys:[String] { [kIsDebugModeEnabled, + kIsAlphanumericalModeEnabled, kKeyboardLayoutPreference, kBasisKeyboardLayoutPreference, kFunctionKeyKeyboardLayoutPreference, @@ -253,6 +255,11 @@ struct ComposingBufferSize { UserDefaults.standard.set(Preferences.isDebugModeEnabled, forKey: kIsDebugModeEnabled) } + // 首次啟用輸入法時不要啟用英數模式。 + if UserDefaults.standard.object(forKey: kIsAlphanumericalModeEnabled) == nil { + UserDefaults.standard.set(Preferences.isAlphanumericalModeEnabled, forKey: kIsAlphanumericalModeEnabled) + } + // 首次啟用輸入法時設定不要自動更新,免得在某些要隔絕外部網路連線的保密機構內觸犯資安規則。 if UserDefaults.standard.object(forKey: kCheckUpdateAutomatically) == nil { UserDefaults.standard.set(false, forKey: kCheckUpdateAutomatically) @@ -339,6 +346,16 @@ struct ComposingBufferSize { @UserDefault(key: kIsDebugModeEnabled, defaultValue: false) @objc static var isDebugModeEnabled: Bool + @UserDefault(key: kIsAlphanumericalModeEnabled, defaultValue: false) + @objc static var isAlphanumericalModeEnabled: Bool + + @objc @discardableResult static func toggleAlphanumericalModeEnabled() -> Bool { + isAlphanumericalModeEnabled = !isAlphanumericalModeEnabled + UserDefaults.standard.set(isAlphanumericalModeEnabled, forKey: kIsAlphanumericalModeEnabled) + NotifierController.notify(message: String(format: "%@%@%@", NSLocalizedString("Alphanumerical Input Mode", comment: ""), "\n", isAlphanumericalModeEnabled ? NSLocalizedString("NotificationSwitchON", comment: "") : NSLocalizedString("NotificationSwitchOFF", comment: ""))) + return isAlphanumericalModeEnabled + } + @UserDefault(key: kAppleLanguagesPreferences, defaultValue: []) @objc static var appleLanguages: Array From 7938f4bf95058be02972d2fc703edef7b0d18d67 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 1 Mar 2022 23:26:44 +0800 Subject: [PATCH 19/72] i18n // Alphanumerical Mode (notification text). --- Source/Resources/Base.lproj/Localizable.strings | 1 + Source/Resources/en.lproj/Localizable.strings | 1 + Source/Resources/ja.lproj/Localizable.strings | 1 + Source/Resources/zh-Hans.lproj/Localizable.strings | 1 + Source/Resources/zh-Hant.lproj/Localizable.strings | 1 + 5 files changed, 5 insertions(+) diff --git a/Source/Resources/Base.lproj/Localizable.strings b/Source/Resources/Base.lproj/Localizable.strings index 184d9a79..27856c78 100644 --- a/Source/Resources/Base.lproj/Localizable.strings +++ b/Source/Resources/Base.lproj/Localizable.strings @@ -47,6 +47,7 @@ "zh-Hans" = "Simplified Chinese"; "zh-Hant" = "Traditional Chinese"; "ja" = "Japanese"; +"Alphanumerical Input Mode" = "Alphanumerical Input Mode"; "Apple Zhuyin Bopomofo" = "Apple Zhuyin Bopomofo (Standard)"; "Apple Zhuyin Eten" = "Apple Zhuyin Eten"; diff --git a/Source/Resources/en.lproj/Localizable.strings b/Source/Resources/en.lproj/Localizable.strings index 184d9a79..27856c78 100644 --- a/Source/Resources/en.lproj/Localizable.strings +++ b/Source/Resources/en.lproj/Localizable.strings @@ -47,6 +47,7 @@ "zh-Hans" = "Simplified Chinese"; "zh-Hant" = "Traditional Chinese"; "ja" = "Japanese"; +"Alphanumerical Input Mode" = "Alphanumerical Input Mode"; "Apple Zhuyin Bopomofo" = "Apple Zhuyin Bopomofo (Standard)"; "Apple Zhuyin Eten" = "Apple Zhuyin Eten"; diff --git a/Source/Resources/ja.lproj/Localizable.strings b/Source/Resources/ja.lproj/Localizable.strings index 4f056b37..ace5325d 100644 --- a/Source/Resources/ja.lproj/Localizable.strings +++ b/Source/Resources/ja.lproj/Localizable.strings @@ -47,6 +47,7 @@ "zh-Hans" = "簡體中国語"; "zh-Hant" = "繁體中国語"; "ja" = "和語"; +"Alphanumerical Input Mode" = "英数入力モード"; "Apple Zhuyin Bopomofo" = "Apple 注音ボポモフォ配列(大千標準)"; "Apple Zhuyin Bopomofo" = "Apple 注音ボポモフォ配列(倚天伝統)"; diff --git a/Source/Resources/zh-Hans.lproj/Localizable.strings b/Source/Resources/zh-Hans.lproj/Localizable.strings index cb5f55e4..0f1ca127 100644 --- a/Source/Resources/zh-Hans.lproj/Localizable.strings +++ b/Source/Resources/zh-Hans.lproj/Localizable.strings @@ -47,6 +47,7 @@ "zh-Hans" = "简体中文"; "zh-Hant" = "繁体中文"; "ja" = "和文"; +"Alphanumerical Input Mode" = "原生英数输入模式"; "Apple Zhuyin Bopomofo" = "Apple 标准注音键盘布局"; "Apple Zhuyin Eten" = "Apple 倚天注音键盘布局"; diff --git a/Source/Resources/zh-Hant.lproj/Localizable.strings b/Source/Resources/zh-Hant.lproj/Localizable.strings index e7f0a0bd..9350bc8b 100644 --- a/Source/Resources/zh-Hant.lproj/Localizable.strings +++ b/Source/Resources/zh-Hant.lproj/Localizable.strings @@ -47,6 +47,7 @@ "zh-Hans" = "簡體中文"; "zh-Hant" = "繁體中文"; "ja" = "和文"; +"Alphanumerical Input Mode" = "原生英數輸入模式"; "Apple Zhuyin Bopomofo" = "Apple 標準注音鍵盤佈局"; "Apple Zhuyin Eten" = "Apple 倚天注音鍵盤佈局"; From 3c176086e09398def313e06fcbcf7d3a57329225 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 1 Mar 2022 18:11:04 +0800 Subject: [PATCH 20/72] ctlIME // Bind alphanumerical mode preferences. --- Source/Modules/IMEModules/ctlInputMethod.swift | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Source/Modules/IMEModules/ctlInputMethod.swift b/Source/Modules/IMEModules/ctlInputMethod.swift index 5a04837a..b9660837 100644 --- a/Source/Modules/IMEModules/ctlInputMethod.swift +++ b/Source/Modules/IMEModules/ctlInputMethod.swift @@ -92,6 +92,10 @@ class ctlInputMethod: IMKInputController { userAssociatedPhrasesItem.keyEquivalentModifierMask = [.command, .control] userAssociatedPhrasesItem.state = Preferences.associatedPhrasesEnabled.state + let alphaNumericalModeItem = menu.addItem(withTitle: NSLocalizedString("Alphanumerical Input Mode", comment: ""), action: #selector(toggleAlphanumericalModeEnabled(_:)), keyEquivalent: "I") + alphaNumericalModeItem.keyEquivalentModifierMask = [.command, .control] + alphaNumericalModeItem.state = Preferences.isAlphanumericalModeEnabled.state + if optionKeyPressed { let phaseReplacementItem = menu.addItem(withTitle: NSLocalizedString("Use Phrase Replacement", comment: ""), action: #selector(togglePhraseReplacement(_:)), keyEquivalent: "") phaseReplacementItem.state = Preferences.phraseReplacementEnabled.state @@ -200,7 +204,7 @@ class ctlInputMethod: IMKInputController { var textFrame = NSRect.zero let attributes: [AnyHashable: Any]? = (client as? IMKTextInput)?.attributes(forCharacterIndex: 0, lineHeightRectangle: &textFrame) let useVerticalMode = (attributes?["IMKTextOrientation"] as? NSNumber)?.intValue == 0 || false - + if (client as? IMKTextInput)?.bundleIdentifier() == "org.atelierInmu.vChewing.vChewingPhraseEditor" { ctlInputMethod.areWeUsingOurOwnPhraseEditor = true } else { @@ -249,6 +253,10 @@ class ctlInputMethod: IMKInputController { NotifierController.notify(message: String(format: "%@%@%@", NSLocalizedString("Per-Char Associated Phrases", comment: ""), "\n", Preferences.toggleAssociatedPhrasesEnabled() ? NSLocalizedString("NotificationSwitchON", comment: "") : NSLocalizedString("NotificationSwitchOFF", comment: ""))) } + @objc func toggleAlphanumericalModeEnabled(_ sender: Any?) { + Preferences.toggleAlphanumericalModeEnabled() + } + @objc func togglePhraseReplacement(_ sender: Any?) { mgrLangModel.setPhraseReplacementEnabled(Preferences.togglePhraseReplacementEnabled()) } From 922352ea1bf222e0f44251d00cd894762e17cdd1 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 1 Mar 2022 19:31:09 +0800 Subject: [PATCH 21/72] KeyHandler // Bind a12l mode pref to functions. --- Source/Modules/ControllerModules/KeyHandler.mm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index 04a2b401..3a245494 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -272,10 +272,10 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; return NO; } - // Caps Lock processing : if Caps Lock is on, temporarily disable bopomofo. + // Caps Lock processing : if Caps Lock is on or Preferences.isAlphanumericalModeEnabled, temporarily disable bopomofo. if ([input isBackSpace] || [input isEnter] || [input isAbsorbedArrowKey] || [input isExtraChooseCandidateKey] || [input isExtraChooseCandidateKeyReverse] || [input isCursorForward] || [input isCursorBackward]) { // do nothing if backspace is pressed -- we ignore the key - } else if ([input isCapsLockOn]) { + } else if ([input isCapsLockOn] || Preferences.isAlphanumericalModeEnabled) { // process all possible combination, we hope. [self clear]; InputStateEmpty *emptyState = [[InputStateEmpty alloc] init]; From 9b365a951d245c8c6254918577c9cde73a19431d Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 1 Mar 2022 20:44:09 +0800 Subject: [PATCH 22/72] KeyConv // Better alphanumerical support. --- .../AppleKeyboardConverter.swift | 142 +++++++++++++++++- 1 file changed, 139 insertions(+), 3 deletions(-) diff --git a/Source/Modules/ControllerModules/AppleKeyboardConverter.swift b/Source/Modules/ControllerModules/AppleKeyboardConverter.swift index 187ffb4c..5637945f 100644 --- a/Source/Modules/ControllerModules/AppleKeyboardConverter.swift +++ b/Source/Modules/ControllerModules/AppleKeyboardConverter.swift @@ -29,14 +29,74 @@ import Cocoa return false } } - // 處理 Apple 注音鍵盤佈局類型 + // 處理 Apple 注音鍵盤佈局類型。 @objc class func cnvApple2ABC(_ charCode: UniChar) -> UniChar { var charCode = charCode // 在按鍵資訊被送往 OVMandarin 之前,先轉換為可以被 OVMandarin 正常處理的資訊。 if self.isDynamicBaseKeyboardLayoutEnabled() { - // 保證 Apple 大千佈局內的符號鍵正常工作 + // 保證 Apple 大千佈局內的符號鍵正常工作。 if charCode == 45 && (Preferences.basisKeyboardLayout == "com.apple.keylayout.ZhuyinBopomofo") { charCode = UniChar(96) } if charCode == 183 && (Preferences.basisKeyboardLayout == "com.apple.keylayout.ZhuyinEten") { charCode = UniChar(96) } + // 針對不同的 Apple 動態鍵盤佈局糾正大寫英文輸入。 + switch Preferences.basisKeyboardLayout { + case "com.apple.keylayout.ZhuyinBopomofo": do { + if (charCode == 97) {charCode = UniChar(65)} + if (charCode == 98) {charCode = UniChar(66)} + if (charCode == 99) {charCode = UniChar(67)} + if (charCode == 100) {charCode = UniChar(68)} + if (charCode == 101) {charCode = UniChar(69)} + if (charCode == 102) {charCode = UniChar(70)} + if (charCode == 103) {charCode = UniChar(71)} + if (charCode == 104) {charCode = UniChar(72)} + if (charCode == 105) {charCode = UniChar(73)} + if (charCode == 106) {charCode = UniChar(74)} + if (charCode == 107) {charCode = UniChar(75)} + if (charCode == 108) {charCode = UniChar(76)} + if (charCode == 109) {charCode = UniChar(77)} + if (charCode == 110) {charCode = UniChar(78)} + if (charCode == 111) {charCode = UniChar(79)} + if (charCode == 112) {charCode = UniChar(80)} + if (charCode == 113) {charCode = UniChar(81)} + if (charCode == 114) {charCode = UniChar(82)} + if (charCode == 115) {charCode = UniChar(83)} + if (charCode == 116) {charCode = UniChar(84)} + if (charCode == 117) {charCode = UniChar(85)} + if (charCode == 118) {charCode = UniChar(86)} + if (charCode == 119) {charCode = UniChar(87)} + if (charCode == 120) {charCode = UniChar(88)} + if (charCode == 121) {charCode = UniChar(89)} + if (charCode == 122) {charCode = UniChar(90)} + } + case "com.apple.keylayout.ZhuyinEten": do { + if (charCode == 65345) {charCode = UniChar(65)} + if (charCode == 65346) {charCode = UniChar(66)} + if (charCode == 65347) {charCode = UniChar(67)} + if (charCode == 65348) {charCode = UniChar(68)} + if (charCode == 65349) {charCode = UniChar(69)} + if (charCode == 65350) {charCode = UniChar(70)} + if (charCode == 65351) {charCode = UniChar(71)} + if (charCode == 65352) {charCode = UniChar(72)} + if (charCode == 65353) {charCode = UniChar(73)} + if (charCode == 65354) {charCode = UniChar(74)} + if (charCode == 65355) {charCode = UniChar(75)} + if (charCode == 65356) {charCode = UniChar(76)} + if (charCode == 65357) {charCode = UniChar(77)} + if (charCode == 65358) {charCode = UniChar(78)} + if (charCode == 65359) {charCode = UniChar(79)} + if (charCode == 65360) {charCode = UniChar(80)} + if (charCode == 65361) {charCode = UniChar(81)} + if (charCode == 65362) {charCode = UniChar(82)} + if (charCode == 65363) {charCode = UniChar(83)} + if (charCode == 65364) {charCode = UniChar(84)} + if (charCode == 65365) {charCode = UniChar(85)} + if (charCode == 65366) {charCode = UniChar(86)} + if (charCode == 65367) {charCode = UniChar(87)} + if (charCode == 65368) {charCode = UniChar(88)} + if (charCode == 65369) {charCode = UniChar(89)} + if (charCode == 65370) {charCode = UniChar(90)} + } + default: break + } // 注音鍵群。 if (charCode == 12573) {charCode = UniChar(44)} if (charCode == 12582) {charCode = UniChar(45)} @@ -98,6 +158,14 @@ import Cocoa if (charCode == 65290) {charCode = UniChar(42)} if (charCode == 65288) {charCode = UniChar(40)} if (charCode == 65289) {charCode = UniChar(41)} + // Apple 倚天注音佈局追加符號糾正項目。 + if Preferences.basisKeyboardLayout == "com.apple.keylayout.ZhuyinEten" { + if (charCode == 65343) {charCode = UniChar(95)} + if (charCode == 65306) {charCode = UniChar(58)} + if (charCode == 65311) {charCode = UniChar(63)} + if (charCode == 65291) {charCode = UniChar(43)} + if (charCode == 65372) {charCode = UniChar(124)} + } } return charCode } @@ -105,9 +173,69 @@ import Cocoa @objc class func cnvStringApple2ABC(_ strProcessed: String) -> String { var strProcessed = strProcessed if self.isDynamicBaseKeyboardLayoutEnabled() { - // 保證 Apple 大千佈局內的符號鍵正常工作 + // 保證 Apple 大千佈局內的符號鍵正常工作。 if (strProcessed == "-" && Preferences.basisKeyboardLayout == "com.apple.keylayout.ZhuyinBopomofo") { strProcessed = "`" } if (strProcessed == "·" && Preferences.basisKeyboardLayout == "com.apple.keylayout.ZhuyinEten") { strProcessed = "`" } + // 針對不同的 Apple 動態鍵盤佈局糾正大寫英文輸入。 + switch Preferences.basisKeyboardLayout { + case "com.apple.keylayout.ZhuyinBopomofo": do { + if (strProcessed == "a") {strProcessed = "A"} + if (strProcessed == "b") {strProcessed = "B"} + if (strProcessed == "c") {strProcessed = "C"} + if (strProcessed == "d") {strProcessed = "D"} + if (strProcessed == "e") {strProcessed = "E"} + if (strProcessed == "f") {strProcessed = "F"} + if (strProcessed == "g") {strProcessed = "G"} + if (strProcessed == "h") {strProcessed = "H"} + if (strProcessed == "i") {strProcessed = "I"} + if (strProcessed == "j") {strProcessed = "J"} + if (strProcessed == "k") {strProcessed = "K"} + if (strProcessed == "l") {strProcessed = "L"} + if (strProcessed == "m") {strProcessed = "M"} + if (strProcessed == "n") {strProcessed = "N"} + if (strProcessed == "o") {strProcessed = "O"} + if (strProcessed == "p") {strProcessed = "P"} + if (strProcessed == "q") {strProcessed = "Q"} + if (strProcessed == "r") {strProcessed = "R"} + if (strProcessed == "s") {strProcessed = "S"} + if (strProcessed == "t") {strProcessed = "T"} + if (strProcessed == "u") {strProcessed = "U"} + if (strProcessed == "v") {strProcessed = "V"} + if (strProcessed == "w") {strProcessed = "W"} + if (strProcessed == "x") {strProcessed = "X"} + if (strProcessed == "y") {strProcessed = "Y"} + if (strProcessed == "z") {strProcessed = "Z"} + } + case "com.apple.keylayout.ZhuyinEten": do { + if (strProcessed == "a") {strProcessed = "A"} + if (strProcessed == "b") {strProcessed = "B"} + if (strProcessed == "c") {strProcessed = "C"} + if (strProcessed == "d") {strProcessed = "D"} + if (strProcessed == "e") {strProcessed = "E"} + if (strProcessed == "f") {strProcessed = "F"} + if (strProcessed == "g") {strProcessed = "G"} + if (strProcessed == "h") {strProcessed = "H"} + if (strProcessed == "i") {strProcessed = "I"} + if (strProcessed == "j") {strProcessed = "J"} + if (strProcessed == "k") {strProcessed = "K"} + if (strProcessed == "l") {strProcessed = "L"} + if (strProcessed == "m") {strProcessed = "M"} + if (strProcessed == "n") {strProcessed = "N"} + if (strProcessed == "o") {strProcessed = "O"} + if (strProcessed == "p") {strProcessed = "P"} + if (strProcessed == "q") {strProcessed = "Q"} + if (strProcessed == "r") {strProcessed = "R"} + if (strProcessed == "s") {strProcessed = "S"} + if (strProcessed == "t") {strProcessed = "T"} + if (strProcessed == "u") {strProcessed = "U"} + if (strProcessed == "v") {strProcessed = "V"} + if (strProcessed == "w") {strProcessed = "W"} + if (strProcessed == "x") {strProcessed = "X"} + if (strProcessed == "y") {strProcessed = "Y"} + if (strProcessed == "z") {strProcessed = "Z"} + } + default: break + } // 注音鍵群。 if (strProcessed == "ㄝ") {strProcessed = ","} if (strProcessed == "ㄦ") {strProcessed = "-"} @@ -169,6 +297,14 @@ import Cocoa if (strProcessed == "*") {strProcessed = "*"} if (strProcessed == "(") {strProcessed = "("} if (strProcessed == ")") {strProcessed = ")"} + // Apple 倚天注音佈局追加符號糾正項目。 + if Preferences.basisKeyboardLayout == "com.apple.keylayout.ZhuyinEten" { + if (strProcessed == "_") {strProcessed = "_"} + if (strProcessed == ":") {strProcessed = ":"} + if (strProcessed == "?") {strProcessed = "?"} + if (strProcessed == "+") {strProcessed = "+"} + if (strProcessed == "|") {strProcessed = "|"} + } } return strProcessed } From 597693abe1dde78a1830d1fa01e1a5cb9ed7ab6d Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 1 Mar 2022 22:18:59 +0800 Subject: [PATCH 23/72] KeyHandler // Let alphanumerical mode respect AppleKeyboardConverter. - Note that Apple Dynamic Keyboard Layout users need to press'n'hold ALT+SHIFT when typing uppercase letters. If this brings you inconveniences or causes hotkey conflicts with the app you are using, please consider using static keyboard layouts (like US keyboard layout, etc.) instead which sacrifices the on-screen bopomofo keyboard. --- Source/Modules/ControllerModules/KeyHandler.mm | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index 3a245494..3cb060d6 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -272,18 +272,23 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; return NO; } - // Caps Lock processing : if Caps Lock is on or Preferences.isAlphanumericalModeEnabled, temporarily disable bopomofo. + // Caps Lock processing: if Caps Lock is on or Preferences.isAlphanumericalModeEnabled, temporarily disable bopomofo. + // Also: Alphanumerical mode processing. if ([input isBackSpace] || [input isEnter] || [input isAbsorbedArrowKey] || [input isExtraChooseCandidateKey] || [input isExtraChooseCandidateKeyReverse] || [input isCursorForward] || [input isCursorBackward]) { // do nothing if backspace is pressed -- we ignore the key - } else if ([input isCapsLockOn] || Preferences.isAlphanumericalModeEnabled) { + } else if (Preferences.isAlphanumericalModeEnabled || [input isCapsLockOn]) { // process all possible combination, we hope. [self clear]; InputStateEmpty *emptyState = [[InputStateEmpty alloc] init]; stateCallback(emptyState); - // first commit everything in the buffer. - if ([input isShiftHold]) { - return NO; + // Non-Dynamic Keyboard Layouts Only: When shift is pressed, don't do further processing, since it outputs capital letter anyway. + if ((![Preferences.basisKeyboardLayout isEqual: @"com.apple.keylayout.ZhuyinBopomofo"] + && ![Preferences.basisKeyboardLayout isEqual: @"com.apple.keylayout.ZhuyinEten"]) + || [input isCapsLockOn]){ + if ([input isShiftHold]) { + return NO; + } } // if ASCII but not printable, don't use insertText:replacementRange: as many apps don't handle non-ASCII char insertions. @@ -291,10 +296,11 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; return NO; } - // when shift is pressed, don't do further processing, since it outputs capital letter anyway. + // commit everything in the buffer. InputStateCommitting *committingState = [[InputStateCommitting alloc] initWithPoppedText:[input.inputText lowercaseString]]; stateCallback(committingState); stateCallback(emptyState); + return YES; } From f2e93807b6cc26db5ba76b8c7b0a9eb9c090f444 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 1 Mar 2022 22:45:14 +0800 Subject: [PATCH 24/72] Pref // Enable Apple ABC keyboard layout for alphanumerical mode. --- Source/Modules/IMEModules/PreferencesModule.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Modules/IMEModules/PreferencesModule.swift b/Source/Modules/IMEModules/PreferencesModule.swift index 9ee67a12..7cfe8c16 100644 --- a/Source/Modules/IMEModules/PreferencesModule.swift +++ b/Source/Modules/IMEModules/PreferencesModule.swift @@ -369,7 +369,7 @@ struct ComposingBufferSize { @UserDefault(key: kBasisKeyboardLayoutPreference, defaultValue: "com.apple.keylayout.ZhuyinBopomofo") @objc static var basisKeyboardLayout: String - @UserDefault(key: kFunctionKeyKeyboardLayoutPreference, defaultValue: "com.apple.keylayout.ZhuyinBopomofo") + @UserDefault(key: kFunctionKeyKeyboardLayoutPreference, defaultValue: "com.apple.keylayout.ABC") @objc static var functionKeyboardLayout: String @UserDefault(key: kFunctionKeyKeyboardLayoutOverrideIncludeShift, defaultValue: false) From cb06c138dd9ac8d03bd23c5d836d7e29cb22d2df Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 1 Mar 2022 22:46:03 +0800 Subject: [PATCH 25/72] ctlIME // Enable Apple ABC keyboard layout for alphanumerical mode. --- Source/Modules/IMEModules/ctlInputMethod.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Source/Modules/IMEModules/ctlInputMethod.swift b/Source/Modules/IMEModules/ctlInputMethod.swift index b9660837..655f26ac 100644 --- a/Source/Modules/IMEModules/ctlInputMethod.swift +++ b/Source/Modules/IMEModules/ctlInputMethod.swift @@ -182,6 +182,12 @@ class ctlInputMethod: IMKInputController { } override func handle(_ event: NSEvent!, client: Any!) -> Bool { + + if (Preferences.isAlphanumericalModeEnabled) { + (client as? IMKTextInput)?.overrideKeyboard(withKeyboardNamed: Preferences.functionKeyboardLayout) + return false + } + if event.type == .flagsChanged { let functionKeyKeyboardLayoutID = Preferences.functionKeyboardLayout let basisKeyboardLayoutID = Preferences.basisKeyboardLayout From c59095cbe9c943cadd928517f8dba7b713af9745 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Fri, 4 Mar 2022 19:44:04 +0800 Subject: [PATCH 26/72] Pref // +showPageButtonsInCandidateWindow --- Source/Modules/IMEModules/PreferencesModule.swift | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Source/Modules/IMEModules/PreferencesModule.swift b/Source/Modules/IMEModules/PreferencesModule.swift index 7cfe8c16..037f975b 100644 --- a/Source/Modules/IMEModules/PreferencesModule.swift +++ b/Source/Modules/IMEModules/PreferencesModule.swift @@ -26,6 +26,7 @@ private let kKeyboardLayoutPreference = "KeyboardLayout" private let kBasisKeyboardLayoutPreference = "BasisKeyboardLayout" private let kFunctionKeyKeyboardLayoutPreference = "FunctionKeyKeyboardLayout" private let kFunctionKeyKeyboardLayoutOverrideIncludeShift = "FunctionKeyKeyboardLayoutOverrideIncludeShift" +private let kShowPageButtonsInCandidateWindow = "ShowPageButtonsInCandidateWindow" private let kCandidateListTextSize = "CandidateListTextSize" private let kAppleLanguagesPreferences = "AppleLanguages" private let kShouldAutoReloadUserDataFiles = "ShouldAutoReloadUserDataFiles" @@ -220,6 +221,7 @@ struct ComposingBufferSize { kBasisKeyboardLayoutPreference, kFunctionKeyKeyboardLayoutPreference, kFunctionKeyKeyboardLayoutOverrideIncludeShift, + kShowPageButtonsInCandidateWindow, kCandidateListTextSize, kAppleLanguagesPreferences, kShouldAutoReloadUserDataFiles, @@ -265,6 +267,11 @@ struct ComposingBufferSize { UserDefaults.standard.set(false, forKey: kCheckUpdateAutomatically) } + // 預設不顯示選字窗翻頁按鈕 + if UserDefaults.standard.object(forKey: kShowPageButtonsInCandidateWindow) == nil { + UserDefaults.standard.set(Preferences.showPageButtonsInCandidateWindow, forKey: kShowPageButtonsInCandidateWindow) + } + // 預設選字窗字詞文字尺寸,設成 18 剛剛好 if UserDefaults.standard.object(forKey: kCandidateListTextSize) == nil { UserDefaults.standard.set(Preferences.candidateListTextSize, forKey: kCandidateListTextSize) @@ -375,6 +382,9 @@ struct ComposingBufferSize { @UserDefault(key: kFunctionKeyKeyboardLayoutOverrideIncludeShift, defaultValue: false) @objc static var functionKeyKeyboardLayoutOverrideIncludeShiftKey: Bool + @UserDefault(key: kShowPageButtonsInCandidateWindow, defaultValue: false) + @objc static var showPageButtonsInCandidateWindow: Bool + @CandidateListTextSize(key: kCandidateListTextSize) @objc static var candidateListTextSize: CGFloat From ebce0aa099c369eb7ba37c0df21bbdd3a2e364a8 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Fri, 4 Mar 2022 21:17:31 +0800 Subject: [PATCH 27/72] PrefWindow // +showPageButtonsInCandidateWindow --- .../WindowNIBs/Base.lproj/frmPrefWindow.xib | 64 +++++++++++-------- .../WindowNIBs/en.lproj/frmPrefWindow.strings | 3 + .../WindowNIBs/ja.lproj/frmPrefWindow.strings | 3 + .../zh-Hans.lproj/frmPrefWindow.strings | 3 + .../zh-Hant.lproj/frmPrefWindow.strings | 3 + 5 files changed, 48 insertions(+), 28 deletions(-) diff --git a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib index 8e90874a..69690e01 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib +++ b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib @@ -22,7 +22,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -62,7 +62,7 @@ - + @@ -87,7 +87,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -114,7 +114,7 @@ - + @@ -126,7 +126,7 @@ - + @@ -134,12 +134,9 @@ - - - - + - + @@ -151,6 +148,8 @@ + + @@ -161,8 +160,19 @@ + - + @@ -172,35 +182,33 @@ - - - - + + + - - + - + - + - - + + + - - + + - - + - + diff --git a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings index 68fd253d..b81867e9 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings @@ -47,6 +47,9 @@ /* Class = "NSButtonCell"; title = "Vertical"; ObjectID = "22"; */ "22.title" = "Vertical"; +/* Class = "NSButtonCell"; title = "Show page buttons in candidate list"; ObjectID = "shc-Nu-UsM"; */ +"shc-Nu-UsM.title" = "Show page buttons in candidate list"; + /* Class = "NSTextFieldCell"; title = "Candidate List Layout:"; ObjectID = "24"; */ "24.title" = "Candidate List Layout:"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings index 1dd9552a..e56badd0 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings @@ -47,6 +47,9 @@ /* Class = "NSButtonCell"; title = "Vertical"; ObjectID = "22"; */ "22.title" = "縦型陳列"; +/* Class = "NSButtonCell"; title = "Show page buttons in candidate list"; ObjectID = "shc-Nu-UsM"; */ +"shc-Nu-UsM.title" = "ページボタンを表示"; + /* Class = "NSTextFieldCell"; title = "Candidate List Layout:"; ObjectID = "24"; */ "24.title" = "入力候補陳列の仕様:"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings index 803e7b32..9b54a2e1 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings @@ -47,6 +47,9 @@ /* Class = "NSButtonCell"; title = "Vertical"; ObjectID = "22"; */ "22.title" = "纵向布局"; +/* Class = "NSButtonCell"; title = "Show page buttons in candidate list"; ObjectID = "shc-Nu-UsM"; */ +"shc-Nu-UsM.title" = "在选字窗内显示翻页按钮"; + /* Class = "NSTextFieldCell"; title = "Candidate List Layout:"; ObjectID = "24"; */ "24.title" = "候选字窗布局:"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings index 418ee08e..4b03b6c9 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings @@ -47,6 +47,9 @@ /* Class = "NSButtonCell"; title = "Vertical"; ObjectID = "22"; */ "22.title" = "縱向佈局"; +/* Class = "NSButtonCell"; title = "Show page buttons in candidate list"; ObjectID = "shc-Nu-UsM"; */ +"shc-Nu-UsM.title" = "在選字窗內顯示翻頁按鈕"; + /* Class = "NSTextFieldCell"; title = "Candidate List Layout:"; ObjectID = "24"; */ "24.title" = "候選字窗佈局:"; From 76c1aa4878df9405388056c7834f76d3b7107f8b Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Fri, 4 Mar 2022 21:08:58 +0800 Subject: [PATCH 28/72] Voltaire // +showPageButtonsInCandidateWindow --- Source/UI/CandidateUI/HorizontalCandidateController.swift | 2 +- Source/UI/CandidateUI/VerticalCandidateController.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/UI/CandidateUI/HorizontalCandidateController.swift b/Source/UI/CandidateUI/HorizontalCandidateController.swift index ffe8ee48..c120d8eb 100644 --- a/Source/UI/CandidateUI/HorizontalCandidateController.swift +++ b/Source/UI/CandidateUI/HorizontalCandidateController.swift @@ -343,7 +343,7 @@ extension HorizontalCandidateController { frameRect.size = newSize candidateView.frame = frameRect - if pageCount > 1 { + if pageCount > 1 && Preferences.showPageButtonsInCandidateWindow { var buttonRect = nextPageButton.frame let spacing:CGFloat = 0.0 diff --git a/Source/UI/CandidateUI/VerticalCandidateController.swift b/Source/UI/CandidateUI/VerticalCandidateController.swift index 50fe09f7..69bf624b 100644 --- a/Source/UI/CandidateUI/VerticalCandidateController.swift +++ b/Source/UI/CandidateUI/VerticalCandidateController.swift @@ -349,7 +349,7 @@ extension VerticalCandidateController { frameRect.size = newSize candidateView.frame = frameRect - if pageCount > 1 { + if pageCount > 1 && Preferences.showPageButtonsInCandidateWindow { var buttonRect = nextPageButton.frame let spacing:CGFloat = 0.0 From 2aa54018a079ba65ec9d6fbfdb7df017d3d8bd09 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 2 Mar 2022 01:44:10 +0800 Subject: [PATCH 29/72] Voltaire // Disable Rounded Window Corner on macOS 10.11-12. - macOS 10.11 cannot always render rounded window corner correctly. - macOS 10.12 users are strongly suggested to upgrade to at least macOS 10.13, especially Hackintosh users for better NVMe support. TBO vChewing is considering of removing macOS 10.12 from the supported OS list. --- Source/UI/CandidateUI/HorizontalCandidateController.swift | 4 +++- Source/UI/CandidateUI/VerticalCandidateController.swift | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/UI/CandidateUI/HorizontalCandidateController.swift b/Source/UI/CandidateUI/HorizontalCandidateController.swift index c120d8eb..a2e0785c 100644 --- a/Source/UI/CandidateUI/HorizontalCandidateController.swift +++ b/Source/UI/CandidateUI/HorizontalCandidateController.swift @@ -105,7 +105,9 @@ fileprivate class HorizontalCandidateView: NSView { self.wantsLayer = true self.layer?.borderColor = NSColor.selectedMenuItemTextColor.withAlphaComponent(0.30).cgColor self.layer?.borderWidth = 1.0 - self.layer?.cornerRadius = 6.0 + if #available(macOS 10.13, *) { + self.layer?.cornerRadius = 6.0 + } let bounds = self.bounds NSColor.controlBackgroundColor.setFill() // Candidate list panel base background diff --git a/Source/UI/CandidateUI/VerticalCandidateController.swift b/Source/UI/CandidateUI/VerticalCandidateController.swift index 69bf624b..35055ba7 100644 --- a/Source/UI/CandidateUI/VerticalCandidateController.swift +++ b/Source/UI/CandidateUI/VerticalCandidateController.swift @@ -111,7 +111,9 @@ fileprivate class VerticalCandidateView: NSView { self.wantsLayer = true self.layer?.borderColor = NSColor.selectedMenuItemTextColor.withAlphaComponent(0.30).cgColor self.layer?.borderWidth = 1.0 - self.layer?.cornerRadius = 6.0 + if #available(macOS 10.13, *) { + self.layer?.cornerRadius = 6.0 + } let bounds = self.bounds NSColor.controlBackgroundColor.setFill() // Candidate list panel base background From a291a82501b2b6532c243254855be55b96e6894f Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 2 Mar 2022 01:52:04 +0800 Subject: [PATCH 30/72] Voltaire // Unify the window border color on all macOS builds. --- Source/UI/CandidateUI/HorizontalCandidateController.swift | 6 +----- Source/UI/CandidateUI/VerticalCandidateController.swift | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/Source/UI/CandidateUI/HorizontalCandidateController.swift b/Source/UI/CandidateUI/HorizontalCandidateController.swift index a2e0785c..ab785d84 100644 --- a/Source/UI/CandidateUI/HorizontalCandidateController.swift +++ b/Source/UI/CandidateUI/HorizontalCandidateController.swift @@ -113,11 +113,7 @@ fileprivate class HorizontalCandidateView: NSView { NSColor.controlBackgroundColor.setFill() // Candidate list panel base background NSBezierPath.fill(bounds) - if #available(macOS 10.14, *) { - NSColor.separatorColor.setStroke() - } else { - NSColor.darkGray.setStroke() - } + NSColor.systemGray.withAlphaComponent(0.75).setStroke() NSBezierPath.strokeLine(from: NSPoint(x: bounds.size.width, y: 0.0), to: NSPoint(x: bounds.size.width, y: bounds.size.height)) diff --git a/Source/UI/CandidateUI/VerticalCandidateController.swift b/Source/UI/CandidateUI/VerticalCandidateController.swift index 35055ba7..d5228159 100644 --- a/Source/UI/CandidateUI/VerticalCandidateController.swift +++ b/Source/UI/CandidateUI/VerticalCandidateController.swift @@ -119,11 +119,7 @@ fileprivate class VerticalCandidateView: NSView { NSColor.controlBackgroundColor.setFill() // Candidate list panel base background NSBezierPath.fill(bounds) - if #available(macOS 10.14, *) { - NSColor.separatorColor.setStroke() - } else { - NSColor.darkGray.setStroke() - } + NSColor.systemGray.withAlphaComponent(0.75).setStroke() NSBezierPath.strokeLine(from: NSPoint(x: bounds.size.width, y: 0.0), to: NSPoint(x: bounds.size.width, y: bounds.size.height)) From 4826636c33fdfd10437605ccb07af65ddc45f497 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 28 Feb 2022 22:36:15 +0800 Subject: [PATCH 31/72] Voltaire // Differentiate highlighted colors to reflect current input mode. --- .../UI/CandidateUI/HorizontalCandidateController.swift | 10 +++++++++- .../UI/CandidateUI/VerticalCandidateController.swift | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Source/UI/CandidateUI/HorizontalCandidateController.swift b/Source/UI/CandidateUI/HorizontalCandidateController.swift index ab785d84..a079a1af 100644 --- a/Source/UI/CandidateUI/HorizontalCandidateController.swift +++ b/Source/UI/CandidateUI/HorizontalCandidateController.swift @@ -127,7 +127,15 @@ fileprivate class HorizontalCandidateView: NSView { var activeCandidateIndexAttr = keyLabelAttrDict var activeCandidateAttr = candidateAttrDict if index == highlightedIndex { - NSColor.alternateSelectedControlColor.setFill() // The background color of the highlightened candidate + // The background color of the highlightened candidate + switch ctlInputMethod.currentKeyHandler.inputMode { + case InputMode.imeModeCHS: + NSColor.systemRed.withAlphaComponent(0.75).setFill() + case InputMode.imeModeCHT: + NSColor.systemBlue.withAlphaComponent(0.75).setFill() + default: + NSColor.alternateSelectedControlColor.setFill() + } activeCandidateIndexAttr[.foregroundColor] = NSColor.selectedMenuItemTextColor.withAlphaComponent(0.84) // The index text color of the highlightened candidate activeCandidateAttr[.foregroundColor] = NSColor.selectedMenuItemTextColor // The phrase text color of the highlightened candidate } else { diff --git a/Source/UI/CandidateUI/VerticalCandidateController.swift b/Source/UI/CandidateUI/VerticalCandidateController.swift index d5228159..c918d290 100644 --- a/Source/UI/CandidateUI/VerticalCandidateController.swift +++ b/Source/UI/CandidateUI/VerticalCandidateController.swift @@ -133,7 +133,15 @@ fileprivate class VerticalCandidateView: NSView { var activeCandidateIndexAttr = keyLabelAttrDict var activeCandidateAttr = candidateAttrDict if index == highlightedIndex { - NSColor.alternateSelectedControlColor.setFill() // The background color of the highlightened candidate + // The background color of the highlightened candidate + switch ctlInputMethod.currentKeyHandler.inputMode { + case InputMode.imeModeCHS: + NSColor.systemRed.withAlphaComponent(0.75).setFill() + case InputMode.imeModeCHT: + NSColor.systemBlue.withAlphaComponent(0.75).setFill() + default: + NSColor.alternateSelectedControlColor.setFill() + } activeCandidateIndexAttr[.foregroundColor] = NSColor.selectedMenuItemTextColor.withAlphaComponent(0.84) // The index text color of the highlightened candidate activeCandidateAttr[.foregroundColor] = NSColor.selectedMenuItemTextColor // The phrase text color of the highlightened candidate } else { From 5f683ade57fa962c2d8ecfb970e9b927db1eaf1c Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Fri, 4 Mar 2022 20:01:18 +0800 Subject: [PATCH 32/72] Voltaire // Give a min. width to vertical candidate window. --- Source/UI/CandidateUI/VerticalCandidateController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/UI/CandidateUI/VerticalCandidateController.swift b/Source/UI/CandidateUI/VerticalCandidateController.swift index c918d290..ad6ab334 100644 --- a/Source/UI/CandidateUI/VerticalCandidateController.swift +++ b/Source/UI/CandidateUI/VerticalCandidateController.swift @@ -69,7 +69,7 @@ fileprivate class VerticalCandidateView: NSView { let cellWidth = rctCandidate.size.width + cellPadding let cellHeight = rctCandidate.size.height + cellPadding if (calculatedWindowWidth < rctCandidate.size.width) { - calculatedWindowWidth = rctCandidate.size.width + calculatedWindowWidth = rctCandidate.size.width + cellPadding } newWidths.append(cellWidth) newHeights.append(cellHeight) From 817984627efe873e51b60449aceb624d009dcc26 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Fri, 4 Mar 2022 21:08:43 +0800 Subject: [PATCH 33/72] Voltaire // Page buttons style redesign. --- .../HorizontalCandidateController.swift | 59 ++++++++++-------- .../VerticalCandidateController.swift | 61 ++++++++++--------- 2 files changed, 65 insertions(+), 55 deletions(-) diff --git a/Source/UI/CandidateUI/HorizontalCandidateController.swift b/Source/UI/CandidateUI/HorizontalCandidateController.swift index a079a1af..a8faeb52 100644 --- a/Source/UI/CandidateUI/HorizontalCandidateController.swift +++ b/Source/UI/CandidateUI/HorizontalCandidateController.swift @@ -100,15 +100,6 @@ fileprivate class HorizontalCandidateView: NSView { } override func draw(_ dirtyRect: NSRect) { - - // Give a standalone layer to the candidate list panel - self.wantsLayer = true - self.layer?.borderColor = NSColor.selectedMenuItemTextColor.withAlphaComponent(0.30).cgColor - self.layer?.borderWidth = 1.0 - if #available(macOS 10.13, *) { - self.layer?.cornerRadius = 6.0 - } - let bounds = self.bounds NSColor.controlBackgroundColor.setFill() // Candidate list panel base background NSBezierPath.fill(bounds) @@ -205,36 +196,50 @@ public class HorizontalCandidateController: CandidateController { public init() { var contentRect = NSRect(x: 128.0, y: 128.0, width: 0.0, height: 0.0) - let styleMask: NSWindow.StyleMask = [.borderless, .nonactivatingPanel] + let styleMask: NSWindow.StyleMask = [.nonactivatingPanel] let panel = NSPanel(contentRect: contentRect, styleMask: styleMask, backing: .buffered, defer: false) panel.level = NSWindow.Level(Int(kCGPopUpMenuWindowLevel) + 1) panel.hasShadow = true panel.isOpaque = false - panel.backgroundColor = NSColor.clear // Transparentify everything outside of the candidate list panel + panel.backgroundColor = NSColor.clear contentRect.origin = NSPoint.zero candidateView = HorizontalCandidateView(frame: contentRect) + + candidateView.wantsLayer = true + candidateView.layer?.borderColor = NSColor.selectedMenuItemTextColor.withAlphaComponent(0.30).cgColor + candidateView.layer?.borderWidth = 1.0 + if #available(macOS 10.13, *) { + candidateView.layer?.cornerRadius = 6.0 + } + panel.contentView?.addSubview(candidateView) - contentRect.size = NSSize(width: 20.0, height: 15.0) // Reduce the button width + contentRect.size = NSSize(width: 20.0, height: 10.0) // Reduce the button width + let buttonAttribute: [NSAttributedString.Key : Any] = [.font : NSFont.systemFont(ofSize: 9.0)] + nextPageButton = NSButton(frame: contentRect) - nextPageButton.setButtonType(.momentaryLight) - nextPageButton.bezelStyle = .shadowlessSquare + NSColor.controlBackgroundColor.setFill() + NSBezierPath.fill(nextPageButton.bounds) nextPageButton.wantsLayer = true nextPageButton.layer?.masksToBounds = true - nextPageButton.layer?.borderColor = NSColor.clear.cgColor // Attempt to remove the system default layer border color - step 1 - nextPageButton.layer?.borderWidth = 0.0 // Attempt to remove the system default layer border color - step 2 - nextPageButton.layer?.backgroundColor = NSColor.black.cgColor // Button Background Color. Otherwise the button will be half-transparent in macOS Monterey Dark Mode. - nextPageButton.attributedTitle = NSMutableAttributedString(string: "⬇︎") // Next Page Arrow + nextPageButton.layer?.borderColor = NSColor.clear.cgColor + nextPageButton.layer?.borderWidth = 0.0 + nextPageButton.setButtonType(.momentaryLight) + nextPageButton.bezelStyle = .disclosure + nextPageButton.userInterfaceLayoutDirection = .leftToRight + nextPageButton.attributedTitle = NSMutableAttributedString(string: " ", attributes: buttonAttribute) // Next Page Arrow prevPageButton = NSButton(frame: contentRect) - prevPageButton.setButtonType(.momentaryLight) - prevPageButton.bezelStyle = .shadowlessSquare + NSColor.controlBackgroundColor.setFill() + NSBezierPath.fill(prevPageButton.bounds) prevPageButton.wantsLayer = true prevPageButton.layer?.masksToBounds = true - prevPageButton.layer?.borderColor = NSColor.clear.cgColor // Attempt to remove the system default layer border color - step 1 - prevPageButton.layer?.borderWidth = 0.0 // Attempt to remove the system default layer border color - step 2 - prevPageButton.layer?.backgroundColor = NSColor.black.cgColor // Button Background Color. Otherwise the button will be half-transparent in macOS Monterey Dark Mode. - prevPageButton.attributedTitle = NSMutableAttributedString(string: "⬆︎") // Previous Page Arrow + prevPageButton.layer?.borderColor = NSColor.clear.cgColor + prevPageButton.layer?.borderWidth = 0.0 + prevPageButton.setButtonType(.momentaryLight) + prevPageButton.bezelStyle = .disclosure + prevPageButton.userInterfaceLayoutDirection = .rightToLeft + prevPageButton.attributedTitle = NSMutableAttributedString(string: " ", attributes: buttonAttribute) // Previous Page Arrow panel.contentView?.addSubview(nextPageButton) panel.contentView?.addSubview(prevPageButton) @@ -356,13 +361,13 @@ extension HorizontalCandidateController { buttonRect.size.height = floor(newSize.height / 2) let buttonOriginY = (newSize.height - (buttonRect.size.height * 2.0 + spacing)) / 2.0 - buttonRect.origin = NSPoint(x: newSize.width + 8.0, y: buttonOriginY) + buttonRect.origin = NSPoint(x: newSize.width, y: buttonOriginY) nextPageButton.frame = buttonRect - buttonRect.origin = NSPoint(x: newSize.width + 8.0, y: buttonOriginY + buttonRect.size.height + spacing) + buttonRect.origin = NSPoint(x: newSize.width, y: buttonOriginY + buttonRect.size.height + spacing) prevPageButton.frame = buttonRect - newSize.width += 52.0 + newSize.width += 20 nextPageButton.isHidden = false prevPageButton.isHidden = false } else { diff --git a/Source/UI/CandidateUI/VerticalCandidateController.swift b/Source/UI/CandidateUI/VerticalCandidateController.swift index ad6ab334..64b67eae 100644 --- a/Source/UI/CandidateUI/VerticalCandidateController.swift +++ b/Source/UI/CandidateUI/VerticalCandidateController.swift @@ -106,15 +106,6 @@ fileprivate class VerticalCandidateView: NSView { } override func draw(_ dirtyRect: NSRect) { - - // Give a standalone layer to the candidate list panel - self.wantsLayer = true - self.layer?.borderColor = NSColor.selectedMenuItemTextColor.withAlphaComponent(0.30).cgColor - self.layer?.borderWidth = 1.0 - if #available(macOS 10.13, *) { - self.layer?.cornerRadius = 6.0 - } - let bounds = self.bounds NSColor.controlBackgroundColor.setFill() // Candidate list panel base background NSBezierPath.fill(bounds) @@ -211,36 +202,50 @@ public class VerticalCandidateController: CandidateController { public init() { var contentRect = NSRect(x: 128.0, y: 128.0, width: 0.0, height: 0.0) - let styleMask: NSWindow.StyleMask = [.borderless, .nonactivatingPanel] + let styleMask: NSWindow.StyleMask = [.nonactivatingPanel] let panel = NSPanel(contentRect: contentRect, styleMask: styleMask, backing: .buffered, defer: false) panel.level = NSWindow.Level(Int(kCGPopUpMenuWindowLevel) + 1) panel.hasShadow = true panel.isOpaque = false - panel.backgroundColor = NSColor.clear // Transparentify everything outside of the candidate list panel + panel.backgroundColor = NSColor.clear contentRect.origin = NSPoint.zero candidateView = VerticalCandidateView(frame: contentRect) + + candidateView.wantsLayer = true + candidateView.layer?.borderColor = NSColor.selectedMenuItemTextColor.withAlphaComponent(0.30).cgColor + candidateView.layer?.borderWidth = 1.0 + if #available(macOS 10.13, *) { + candidateView.layer?.cornerRadius = 6.0 + } + panel.contentView?.addSubview(candidateView) - - contentRect.size = NSSize(width: 20.0, height: 15.0) // Reduce the button width + + contentRect.size = NSSize(width: 20.0, height: 10.0) // Reduce the button width + let buttonAttribute: [NSAttributedString.Key : Any] = [.font : NSFont.systemFont(ofSize: 9.0)] + nextPageButton = NSButton(frame: contentRect) - nextPageButton.setButtonType(.momentaryLight) - nextPageButton.bezelStyle = .shadowlessSquare + NSColor.controlBackgroundColor.setFill() + NSBezierPath.fill(nextPageButton.bounds) nextPageButton.wantsLayer = true nextPageButton.layer?.masksToBounds = true - nextPageButton.layer?.borderColor = NSColor.clear.cgColor // Attempt to remove the system default layer border color - step 1 - nextPageButton.layer?.borderWidth = 0.0 // Attempt to remove the system default layer border color - step 2 - nextPageButton.layer?.backgroundColor = NSColor.black.cgColor // Button Background Color. Otherwise the button will be half-transparent in macOS Monterey Dark Mode. - nextPageButton.attributedTitle = NSMutableAttributedString(string: "➡︎") // Next Page Arrow + nextPageButton.layer?.borderColor = NSColor.clear.cgColor + nextPageButton.layer?.borderWidth = 0.0 + nextPageButton.setButtonType(.momentaryLight) + nextPageButton.bezelStyle = .disclosure + nextPageButton.userInterfaceLayoutDirection = .leftToRight + nextPageButton.attributedTitle = NSMutableAttributedString(string: " ", attributes: buttonAttribute) // Next Page Arrow prevPageButton = NSButton(frame: contentRect) - prevPageButton.setButtonType(.momentaryLight) - prevPageButton.bezelStyle = .shadowlessSquare + NSColor.controlBackgroundColor.setFill() + NSBezierPath.fill(prevPageButton.bounds) prevPageButton.wantsLayer = true prevPageButton.layer?.masksToBounds = true - prevPageButton.layer?.borderColor = NSColor.clear.cgColor // Attempt to remove the system default layer border color - step 1 - prevPageButton.layer?.borderWidth = 0.0 // Attempt to remove the system default layer border color - step 2 - prevPageButton.layer?.backgroundColor = NSColor.black.cgColor // Button Background Color. Otherwise the button will be half-transparent in macOS Monterey Dark Mode. - prevPageButton.attributedTitle = NSMutableAttributedString(string: "⬅︎") // Previous Page Arrow + prevPageButton.layer?.borderColor = NSColor.clear.cgColor + prevPageButton.layer?.borderWidth = 0.0 + prevPageButton.setButtonType(.momentaryLight) + prevPageButton.bezelStyle = .disclosure + prevPageButton.userInterfaceLayoutDirection = .rightToLeft + prevPageButton.attributedTitle = NSMutableAttributedString(string: " ", attributes: buttonAttribute) // Previous Page Arrow panel.contentView?.addSubview(nextPageButton) panel.contentView?.addSubview(prevPageButton) @@ -362,13 +367,13 @@ extension VerticalCandidateController { // buttonRect.size.height = floor(candidateTextHeight + cellPadding / 2) let buttonOriginY = (newSize.height - (buttonRect.size.height * 2.0 + spacing)) // / 2.0 - buttonRect.origin = NSPoint(x: newSize.width + 8.0, y: buttonOriginY) + buttonRect.origin = NSPoint(x: newSize.width, y: buttonOriginY) nextPageButton.frame = buttonRect - buttonRect.origin = NSPoint(x: newSize.width + 8.0, y: buttonOriginY + buttonRect.size.height + spacing) + buttonRect.origin = NSPoint(x: newSize.width, y: buttonOriginY + buttonRect.size.height + spacing) prevPageButton.frame = buttonRect - newSize.width += 52.0 + newSize.width += 20 nextPageButton.isHidden = false prevPageButton.isHidden = false } else { From eebe84ea9c49448b3b1693629559ba73b46a3b9f Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Fri, 4 Mar 2022 22:56:38 +0800 Subject: [PATCH 34/72] KeyHandlerInput // Attempt to detect flag changes. --- Source/Modules/ControllerModules/KeyHandlerInput.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/Modules/ControllerModules/KeyHandlerInput.swift b/Source/Modules/ControllerModules/KeyHandlerInput.swift index dc087714..08ac51c5 100644 --- a/Source/Modules/ControllerModules/KeyHandlerInput.swift +++ b/Source/Modules/ControllerModules/KeyHandlerInput.swift @@ -51,6 +51,7 @@ class KeyHandlerInput: NSObject { @objc private (set) var inputTextIgnoringModifiers: String? @objc private (set) var charCode: UInt16 @objc private (set) var keyCode: UInt16 + private var isFlagChanged: Bool private var flags: NSEvent.ModifierFlags private var cursorForwardKey: KeyCode private var cursorBackwardKey: KeyCode @@ -68,6 +69,7 @@ class KeyHandlerInput: NSObject { self.keyCode = keyCode self.charCode = AppleKeyboardConverter.cnvApple2ABC(charCode) self.flags = flags + self.isFlagChanged = false useVerticalMode = isVerticalMode emacsKey = EmacsKeyHelper.detect(charCode: AppleKeyboardConverter.cnvApple2ABC(charCode), flags: flags) cursorForwardKey = useVerticalMode ? .down : .right @@ -84,6 +86,7 @@ class KeyHandlerInput: NSObject { inputTextIgnoringModifiers = AppleKeyboardConverter.cnvStringApple2ABC(event.charactersIgnoringModifiers ?? "") keyCode = event.keyCode flags = event.modifierFlags + isFlagChanged = (event.type == .flagsChanged) ? true : false useVerticalMode = isVerticalMode let charCode: UInt16 = { guard let inputText = event.characters, inputText.count > 0 else { From 3b79367f5ed5a0871741d50547ad566ed08d97a3 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Fri, 4 Mar 2022 22:56:55 +0800 Subject: [PATCH 35/72] KeyHandlerInput // Make KeyCode available in ObjC. --- Source/Modules/ControllerModules/KeyHandlerInput.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Modules/ControllerModules/KeyHandlerInput.swift b/Source/Modules/ControllerModules/KeyHandlerInput.swift index 08ac51c5..c0946ea9 100644 --- a/Source/Modules/ControllerModules/KeyHandlerInput.swift +++ b/Source/Modules/ControllerModules/KeyHandlerInput.swift @@ -21,7 +21,7 @@ import Cocoa // Use KeyCodes as much as possible since its recognition won't be affected by macOS Base Keyboard Layouts. // KeyCodes: https://eastmanreference.com/complete-list-of-applescript-key-codes -enum KeyCode: UInt16 { +@objc enum KeyCode: UInt16 { case none = 0 case space = 49 case backSpace = 51 From 7b672ea2848e458fc37a48c8ef8c4bb32182d596 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Fri, 4 Mar 2022 22:57:22 +0800 Subject: [PATCH 36/72] KeyHandlerInput // Add KeyCodes of L/R Shift & CapsLock. --- Source/Modules/ControllerModules/KeyHandlerInput.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/Modules/ControllerModules/KeyHandlerInput.swift b/Source/Modules/ControllerModules/KeyHandlerInput.swift index c0946ea9..04c0f6fb 100644 --- a/Source/Modules/ControllerModules/KeyHandlerInput.swift +++ b/Source/Modules/ControllerModules/KeyHandlerInput.swift @@ -38,6 +38,9 @@ import Cocoa case home = 115 case end = 119 case delete = 117 + case leftShift = 56 + case rightShift = 60 + case capsLock = 57 } // CharCodes: https://theasciicode.com.ar/ascii-control-characters/horizontal-tab-ascii-code-9.html From 28ae93053317f4b0afcca18b781f7f6ecd4fd567 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sat, 5 Mar 2022 14:07:27 +0800 Subject: [PATCH 37/72] KeyHandler // Enable bpmf commit with Ctrl+CMD+Enter. - In UserPhraseEditor the hotkey is Ctrl+Enter, committing bpmf readings with separator "-". - In other apps the hotkey is Ctrl+CMD+Enter, committing bpmf readings with an ASCII space as the separator. --- Source/Modules/ControllerModules/KeyHandler.mm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index 3cb060d6..869d5560 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -524,7 +524,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; // MARK: Enter if ([input isEnter]) { if ([input isControlHold]) { - if (ctlInputMethod.areWeUsingOurOwnPhraseEditor) { + if (ctlInputMethod.areWeUsingOurOwnPhraseEditor || [input isCommandHold]) { return [self _handleCtrlEnterWithState:state stateCallback:stateCallback errorCallback:errorCallback]; } } @@ -850,12 +850,10 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; - (BOOL)_handleCtrlEnterWithState:(InputState *)state stateCallback:(void (^)(InputState *))stateCallback errorCallback:(void (^)(void))errorCallback { - if (![state isKindOfClass:[InputStateInputting class]]) { - return NO; - } + if (![state isKindOfClass:[InputStateInputting class]]) return NO; NSArray *readings = [self _currentReadings]; - NSString *composingBuffer = [readings componentsJoinedByString:@"-"]; + NSString *composingBuffer = (ctlInputMethod.areWeUsingOurOwnPhraseEditor) ? [readings componentsJoinedByString:@"-"] : [readings componentsJoinedByString:@" "] ; [self clear]; From 9518ffd347983a4e5e18cc5892b2f172a8d7fb70 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 6 Mar 2022 10:10:47 +0800 Subject: [PATCH 38/72] KeyHandler(Input) // Use KeyCode to handle symbol menu. - CharCode is not reliable at all. KeyCode is the most accurate. KeyCode doesn't give a phuque about the character sent through macOS keyboard layouts but only focuses on which physical key is pressed. --- Source/Modules/ControllerModules/KeyHandler.mm | 2 +- .../Modules/ControllerModules/KeyHandlerInput.swift | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index 869d5560..759f9541 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -532,7 +532,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; } // MARK: Punctuation list - if ([input isSymbolMenuKey]) { + if ([input isSymbolMenuPhysicalKey] && ![input isShiftHold]) { // 得在這裡先 commit buffer,不然會導致「在摁 ESC 離開符號選單時會重複輸入上一次的組字區的內容」的不當行為。 // 於是這裡用「模擬一次 Enter 鍵的操作」使其代為執行這個 commit buffer 的動作。 diff --git a/Source/Modules/ControllerModules/KeyHandlerInput.swift b/Source/Modules/ControllerModules/KeyHandlerInput.swift index 04c0f6fb..7ab70873 100644 --- a/Source/Modules/ControllerModules/KeyHandlerInput.swift +++ b/Source/Modules/ControllerModules/KeyHandlerInput.swift @@ -41,11 +41,13 @@ import Cocoa case leftShift = 56 case rightShift = 60 case capsLock = 57 + case symbolMenuPhysicalKey = 50 } // CharCodes: https://theasciicode.com.ar/ascii-control-characters/horizontal-tab-ascii-code-9.html -enum CharCode: UInt16 { - case symbolMenuKey_ABC = 96 +enum CharCode: UInt/*16*/ { + case yajuusenpai = 1145141919810893 + // - CharCode is not reliable at all. KeyCode is the most accurate. KeyCode doesn't give a phuque about the character sent through macOS keyboard layouts but only focuses on which physical key is pressed. } class KeyHandlerInput: NSObject { @@ -231,9 +233,10 @@ class KeyHandlerInput: NSObject { KeyCode(rawValue: keyCode) == verticalModeOnlyChooseCandidateKey } - @objc var isSymbolMenuKey: Bool { - // 這裡用 CharCode 更合適,不然就無法輸入波浪鍵了。 - CharCode(rawValue: charCode) == CharCode.symbolMenuKey_ABC + @objc var isSymbolMenuPhysicalKey: Bool { + // 這裡必須用 KeyCode,這樣才不會受隨 macOS 版本更動的 Apple 動態注音鍵盤排列內容的影響。 + // 只是必須得與 ![input isShift] 搭配使用才可以(也就是僅判定 Shift 沒被摁下的情形)。 + KeyCode(rawValue: keyCode) == KeyCode.symbolMenuPhysicalKey } } From 0a77938ec7aaefdd5366f0e67d67350481d04bb4 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 6 Mar 2022 10:36:07 +0800 Subject: [PATCH 39/72] KeyConv // Stop Converting Previous SymbolMenu CharCodes. --- .../Modules/ControllerModules/AppleKeyboardConverter.swift | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Source/Modules/ControllerModules/AppleKeyboardConverter.swift b/Source/Modules/ControllerModules/AppleKeyboardConverter.swift index 5637945f..a3b75add 100644 --- a/Source/Modules/ControllerModules/AppleKeyboardConverter.swift +++ b/Source/Modules/ControllerModules/AppleKeyboardConverter.swift @@ -34,9 +34,6 @@ import Cocoa var charCode = charCode // 在按鍵資訊被送往 OVMandarin 之前,先轉換為可以被 OVMandarin 正常處理的資訊。 if self.isDynamicBaseKeyboardLayoutEnabled() { - // 保證 Apple 大千佈局內的符號鍵正常工作。 - if charCode == 45 && (Preferences.basisKeyboardLayout == "com.apple.keylayout.ZhuyinBopomofo") { charCode = UniChar(96) } - if charCode == 183 && (Preferences.basisKeyboardLayout == "com.apple.keylayout.ZhuyinEten") { charCode = UniChar(96) } // 針對不同的 Apple 動態鍵盤佈局糾正大寫英文輸入。 switch Preferences.basisKeyboardLayout { case "com.apple.keylayout.ZhuyinBopomofo": do { @@ -173,9 +170,6 @@ import Cocoa @objc class func cnvStringApple2ABC(_ strProcessed: String) -> String { var strProcessed = strProcessed if self.isDynamicBaseKeyboardLayoutEnabled() { - // 保證 Apple 大千佈局內的符號鍵正常工作。 - if (strProcessed == "-" && Preferences.basisKeyboardLayout == "com.apple.keylayout.ZhuyinBopomofo") { strProcessed = "`" } - if (strProcessed == "·" && Preferences.basisKeyboardLayout == "com.apple.keylayout.ZhuyinEten") { strProcessed = "`" } // 針對不同的 Apple 動態鍵盤佈局糾正大寫英文輸入。 switch Preferences.basisKeyboardLayout { case "com.apple.keylayout.ZhuyinBopomofo": do { From 544880ebc77bd7be0765bbc93cfacb8499d56bec Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sat, 5 Mar 2022 14:40:37 +0800 Subject: [PATCH 40/72] Pref // default SelectPhraseAfterCursorAsCandidate as false. --- Source/Modules/IMEModules/PreferencesModule.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Modules/IMEModules/PreferencesModule.swift b/Source/Modules/IMEModules/PreferencesModule.swift index 037f975b..0c24dfc3 100644 --- a/Source/Modules/IMEModules/PreferencesModule.swift +++ b/Source/Modules/IMEModules/PreferencesModule.swift @@ -391,7 +391,7 @@ struct ComposingBufferSize { @UserDefault(key: kShouldAutoReloadUserDataFiles, defaultValue: true) @objc static var shouldAutoReloadUserDataFiles: Bool - @UserDefault(key: kSelectPhraseAfterCursorAsCandidatePreference, defaultValue: true) + @UserDefault(key: kSelectPhraseAfterCursorAsCandidatePreference, defaultValue: false) @objc static var selectPhraseAfterCursorAsCandidate: Bool @UserDefault(key: kMoveCursorAfterSelectingCandidate, defaultValue: false) From c1b7941d45d6bf8581f2c59cc259e72f63c8eaad Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sat, 5 Mar 2022 15:11:58 +0800 Subject: [PATCH 41/72] Prefs // default ShowPageButtonsInCandidateWindow as true. --- Source/Modules/IMEModules/PreferencesModule.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Modules/IMEModules/PreferencesModule.swift b/Source/Modules/IMEModules/PreferencesModule.swift index 0c24dfc3..c7fb5248 100644 --- a/Source/Modules/IMEModules/PreferencesModule.swift +++ b/Source/Modules/IMEModules/PreferencesModule.swift @@ -382,7 +382,7 @@ struct ComposingBufferSize { @UserDefault(key: kFunctionKeyKeyboardLayoutOverrideIncludeShift, defaultValue: false) @objc static var functionKeyKeyboardLayoutOverrideIncludeShiftKey: Bool - @UserDefault(key: kShowPageButtonsInCandidateWindow, defaultValue: false) + @UserDefault(key: kShowPageButtonsInCandidateWindow, defaultValue: true) @objc static var showPageButtonsInCandidateWindow: Bool @CandidateListTextSize(key: kCandidateListTextSize) From 6c7b798ca25067572eb4a776be9a94edf6745054 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sat, 5 Mar 2022 15:43:33 +0800 Subject: [PATCH 42/72] ctlIME // Use Shift to toggle a12l mode (not enabled yet). - I commented out the content of this update since it has bugs. --- Source/Modules/IMEModules/ctlInputMethod.swift | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Source/Modules/IMEModules/ctlInputMethod.swift b/Source/Modules/IMEModules/ctlInputMethod.swift index 655f26ac..25ecc8b7 100644 --- a/Source/Modules/IMEModules/ctlInputMethod.swift +++ b/Source/Modules/IMEModules/ctlInputMethod.swift @@ -198,6 +198,15 @@ class ctlInputMethod: IMKInputController { let includeShift = Preferences.functionKeyKeyboardLayoutOverrideIncludeShiftKey let notShift = NSEvent.ModifierFlags(rawValue: ~(NSEvent.ModifierFlags.shift.rawValue)) + + // Shift Click Handling: Toggling Alphanumerical Mode. // STILL BUGGY, hence being commented out. + // if !event.modifierFlags.contains(.shift) + // && event.modifierFlags == .init(rawValue: 0) + // && !event.modifierFlags.contains(notShift) + // && (event.keyCode == KeyCode.leftShift.rawValue || event.keyCode == KeyCode.rightShift.rawValue) { + // Preferences.toggleAlphanumericalModeEnabled() + // } + if event.modifierFlags.contains(notShift) || (event.modifierFlags.contains(.shift) && includeShift) { (client as? IMKTextInput)?.overrideKeyboard(withKeyboardNamed: functionKeyKeyboardLayoutID) From 2778fef5a5309b387f329b343dce85815a211de7 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 6 Mar 2022 14:12:21 +0800 Subject: [PATCH 43/72] KeyHandler // Simplify: _actualCandidateCursorIndex. --- Source/Modules/ControllerModules/KeyHandler.mm | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index 759f9541..46883043 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -1429,15 +1429,10 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; - (size_t)_actualCandidateCursorIndex { size_t cursorIndex = _builder->cursorIndex(); - if (Preferences.selectPhraseAfterCursorAsCandidate) { - // MS Phonetics IME style, phrase is *after* the cursor, i.e. cursor is always *before* the phrase - if (cursorIndex < _builder->length()) { - ++cursorIndex; - } - } else { - if (!cursorIndex) { - ++cursorIndex; - } + // MS Phonetics IME style, phrase is *after* the cursor, i.e. cursor is always *before* the phrase + if ((Preferences.selectPhraseAfterCursorAsCandidate && (cursorIndex < _builder->length())) + || !cursorIndex) { + ++cursorIndex; } return cursorIndex; From 210365563949ded180153cb993dbe408c1ac77c3 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 6 Mar 2022 22:14:27 +0800 Subject: [PATCH 44/72] Pref // Ensure JIS switch defaults updated when necessary. --- Source/Modules/IMEModules/PreferencesModule.swift | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/Modules/IMEModules/PreferencesModule.swift b/Source/Modules/IMEModules/PreferencesModule.swift index c7fb5248..c5b73ad9 100644 --- a/Source/Modules/IMEModules/PreferencesModule.swift +++ b/Source/Modules/IMEModules/PreferencesModule.swift @@ -442,7 +442,10 @@ struct ComposingBufferSize { @objc @discardableResult static func toggleChineseConversionEnabled() -> Bool { chineseConversionEnabled = !chineseConversionEnabled // 康熙轉換與 JIS 轉換不能同時開啟,否則會出現某些奇奇怪怪的情況 - if chineseConversionEnabled && shiftJISShinjitaiOutputEnabled {self.toggleShiftJISShinjitaiOutputEnabled()} + if chineseConversionEnabled && shiftJISShinjitaiOutputEnabled { + self.toggleShiftJISShinjitaiOutputEnabled() + UserDefaults.standard.set(shiftJISShinjitaiOutputEnabled, forKey: kShiftJISShinjitaiOutputEnabled) + } UserDefaults.standard.set(chineseConversionEnabled, forKey: kChineseConversionEnabled) return chineseConversionEnabled } From 0dab3153b1e45fbce4619eaaddc28451206aade2 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 6 Mar 2022 22:14:10 +0800 Subject: [PATCH 45/72] LMInstantiator // + setSymbolEnabled & symbolEnabled. --- Source/Modules/LangModelRelated/LMInstantiator.h | 6 ++++++ Source/Modules/LangModelRelated/LMInstantiator.mm | 13 ++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Source/Modules/LangModelRelated/LMInstantiator.h b/Source/Modules/LangModelRelated/LMInstantiator.h index 34507abc..0357a464 100644 --- a/Source/Modules/LangModelRelated/LMInstantiator.h +++ b/Source/Modules/LangModelRelated/LMInstantiator.h @@ -111,6 +111,11 @@ public: /// If phrase replacement is enabled or not. bool phraseReplacementEnabled(); + /// Enables or disables symbol input. + void setSymbolEnabled(bool enabled); + /// If symbol input is enabled or not. + bool symbolEnabled(); + /// Enables or disables CNS11643 input. void setCNSEnabled(bool enabled); /// If CNS11643 input is enabled or not. @@ -149,6 +154,7 @@ protected: AssociatedPhrases m_associatedPhrases; bool m_phraseReplacementEnabled; bool m_cnsEnabled; + bool m_symbolEnabled; bool m_externalConverterEnabled; std::function m_externalConverter; }; diff --git a/Source/Modules/LangModelRelated/LMInstantiator.mm b/Source/Modules/LangModelRelated/LMInstantiator.mm index f9b0eb39..948f9aff 100644 --- a/Source/Modules/LangModelRelated/LMInstantiator.mm +++ b/Source/Modules/LangModelRelated/LMInstantiator.mm @@ -170,7 +170,7 @@ const std::vector LMInstantiator::unigramsForKey(const std miscUnigrams = filterAndTransformUnigrams(rawMiscUnigrams, excludedValues, insertedValues); } - if (m_symbolModel.hasUnigramsForKey(key)) { + if (m_symbolModel.hasUnigramsForKey(key) && m_symbolEnabled) { std::vector rawSymbolUnigrams = m_symbolModel.unigramsForKey(key); symbolUnigrams = filterAndTransformUnigrams(rawSymbolUnigrams, excludedValues, insertedValues); } @@ -214,11 +214,22 @@ void LMInstantiator::setCNSEnabled(bool enabled) { m_cnsEnabled = enabled; } + bool LMInstantiator::cnsEnabled() { return m_cnsEnabled; } +void LMInstantiator::setSymbolEnabled(bool enabled) +{ + m_symbolEnabled = enabled; +} + +bool LMInstantiator::symbolEnabled() +{ + return m_symbolEnabled; +} + void LMInstantiator::setExternalConverterEnabled(bool enabled) { m_externalConverterEnabled = enabled; From ddc450f8e3c3832f02375dfa8c400e5a6cb884ec Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 6 Mar 2022 22:14:21 +0800 Subject: [PATCH 46/72] Pref // + symbolInputEnabled & toggleSymbolInputEnabled. --- .../Modules/IMEModules/PreferencesModule.swift | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Source/Modules/IMEModules/PreferencesModule.swift b/Source/Modules/IMEModules/PreferencesModule.swift index c5b73ad9..1dc1a424 100644 --- a/Source/Modules/IMEModules/PreferencesModule.swift +++ b/Source/Modules/IMEModules/PreferencesModule.swift @@ -35,6 +35,7 @@ private let kUseHorizontalCandidateListPreference = "UseHorizontalCandidateList" private let kComposingBufferSizePreference = "ComposingBufferSize" private let kChooseCandidateUsingSpace = "ChooseCandidateUsingSpace" private let kCNS11643Enabled = "CNS11643Enabled" +private let kSymbolInputEnabled = "SymbolInputEnabled" private let kChineseConversionEnabled = "ChineseConversionEnabled" private let kShiftJISShinjitaiOutputEnabled = "ShiftJISShinjitaiOutputEnabled" private let kHalfWidthPunctuationEnabled = "HalfWidthPunctuationEnable" @@ -230,6 +231,7 @@ struct ComposingBufferSize { kComposingBufferSizePreference, kChooseCandidateUsingSpace, kCNS11643Enabled, + kSymbolInputEnabled, kChineseConversionEnabled, kShiftJISShinjitaiOutputEnabled, kHalfWidthPunctuationEnabled, @@ -272,6 +274,11 @@ struct ComposingBufferSize { UserDefaults.standard.set(Preferences.showPageButtonsInCandidateWindow, forKey: kShowPageButtonsInCandidateWindow) } + // 預設啟用繪文字與符號輸入 + if UserDefaults.standard.object(forKey: kSymbolInputEnabled) == nil { + UserDefaults.standard.set(Preferences.symbolInputEnabled, forKey: kSymbolInputEnabled) + } + // 預設選字窗字詞文字尺寸,設成 18 剛剛好 if UserDefaults.standard.object(forKey: kCandidateListTextSize) == nil { UserDefaults.standard.set(Preferences.candidateListTextSize, forKey: kCandidateListTextSize) @@ -436,6 +443,16 @@ struct ComposingBufferSize { return cns11643Enabled } + @UserDefault(key: kSymbolInputEnabled, defaultValue: true) + @objc static var symbolInputEnabled: Bool + + @objc static func toggleSymbolInputEnabled() -> Bool { + symbolInputEnabled = !symbolInputEnabled + mgrLangModel.setSymbolEnabled(symbolInputEnabled) // 很重要 + UserDefaults.standard.set(symbolInputEnabled, forKey: kSymbolInputEnabled) + return symbolInputEnabled + } + @UserDefault(key: kChineseConversionEnabled, defaultValue: false) @objc static var chineseConversionEnabled: Bool From 0bcf9110b053b7a9dcfe60334cbcea120c3ded52 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 6 Mar 2022 22:37:08 +0800 Subject: [PATCH 47/72] KeyHandler // +setSymbolInputEnabled. --- Source/Modules/ControllerModules/KeyHandler.mm | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index 46883043..e7dc6a61 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -154,6 +154,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; _languageModel = [mgrLangModel lmCHT]; _languageModel->setPhraseReplacementEnabled(Preferences.phraseReplacementEnabled); _languageModel->setCNSEnabled(Preferences.cns11643Enabled); + _languageModel->setSymbolEnabled(Preferences.symbolInputEnabled); _userOverrideModel = [mgrLangModel userOverrideModelCHT]; _builder = new Gramambular::BlockReadingBuilder(_languageModel); From 3965239de87771f6a0589138560786e963e2c5ed Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 6 Mar 2022 22:37:38 +0800 Subject: [PATCH 48/72] mgrLM // +setSymbolEnabled. --- Source/Modules/LangModelRelated/mgrLangModel.h | 2 ++ Source/Modules/LangModelRelated/mgrLangModel.mm | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/Source/Modules/LangModelRelated/mgrLangModel.h b/Source/Modules/LangModelRelated/mgrLangModel.h index e003fd70..34c3dc48 100644 --- a/Source/Modules/LangModelRelated/mgrLangModel.h +++ b/Source/Modules/LangModelRelated/mgrLangModel.h @@ -36,6 +36,8 @@ NS_ASSUME_NONNULL_BEGIN + (BOOL)writeUserPhrase:(NSString *)userPhrase inputMode:(InputMode)mode areWeDuplicating:(BOOL)areWeDuplicating; + (void)setPhraseReplacementEnabled:(BOOL)phraseReplacementEnabled; + (void)setCNSEnabled:(BOOL)cnsEnabled; ++ (void)setSymbolEnabled:(BOOL)symbolEnabled; + + (NSString *)specifyBundleDataPath:(NSString *)filename; + (NSString *)userPhrasesDataPath:(InputMode)mode; + (NSString *)userAssociatedPhrasesDataPath:(InputMode)mode; diff --git a/Source/Modules/LangModelRelated/mgrLangModel.mm b/Source/Modules/LangModelRelated/mgrLangModel.mm index 9c696d6c..6e211979 100644 --- a/Source/Modules/LangModelRelated/mgrLangModel.mm +++ b/Source/Modules/LangModelRelated/mgrLangModel.mm @@ -371,4 +371,10 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing gLangModelCHS.setCNSEnabled(cnsEnabled); } ++ (void)setSymbolEnabled:(BOOL)symbolEnabled +{ + gLangModelCHT.setSymbolEnabled(symbolEnabled); + gLangModelCHS.setSymbolEnabled(symbolEnabled); +} + @end From 9a2f6fcf1169184179525dae522b3e10ba32ab87 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 6 Mar 2022 22:37:55 +0800 Subject: [PATCH 49/72] ctlIME // +toggleSymbolEnabled. --- Source/Modules/IMEModules/ctlInputMethod.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Source/Modules/IMEModules/ctlInputMethod.swift b/Source/Modules/IMEModules/ctlInputMethod.swift index 25ecc8b7..6eae7fd3 100644 --- a/Source/Modules/IMEModules/ctlInputMethod.swift +++ b/Source/Modules/IMEModules/ctlInputMethod.swift @@ -99,6 +99,9 @@ class ctlInputMethod: IMKInputController { if optionKeyPressed { let phaseReplacementItem = menu.addItem(withTitle: NSLocalizedString("Use Phrase Replacement", comment: ""), action: #selector(togglePhraseReplacement(_:)), keyEquivalent: "") phaseReplacementItem.state = Preferences.phraseReplacementEnabled.state + + let toggleSymbolInputItem = menu.addItem(withTitle: NSLocalizedString("Symbol & Emoji Input", comment: ""), action: #selector(toggleSymbolEnabled(_:)), keyEquivalent: "") + toggleSymbolInputItem.state = Preferences.symbolInputEnabled.state } menu.addItem(NSMenuItem.separator()) // --------------------- @@ -264,6 +267,11 @@ class ctlInputMethod: IMKInputController { NotifierController.notify(message: String(format: "%@%@%@", NSLocalizedString("CNS11643 Mode", comment: ""), "\n", Preferences.cns11643Enabled ? NSLocalizedString("NotificationSwitchON", comment: "") : NSLocalizedString("NotificationSwitchOFF", comment: ""))) } + @objc func toggleSymbolEnabled(_ sender: Any?) { + mgrLangModel.setSymbolEnabled(Preferences.toggleSymbolInputEnabled()) + NotifierController.notify(message: String(format: "%@%@%@", NSLocalizedString("Symbol & Emoji Input", comment: ""), "\n", Preferences.symbolInputEnabled ? NSLocalizedString("NotificationSwitchON", comment: "") : NSLocalizedString("NotificationSwitchOFF", comment: ""))) + } + @objc func toggleAssociatedPhrasesEnabled(_ sender: Any?) { NotifierController.notify(message: String(format: "%@%@%@", NSLocalizedString("Per-Char Associated Phrases", comment: ""), "\n", Preferences.toggleAssociatedPhrasesEnabled() ? NSLocalizedString("NotificationSwitchON", comment: "") : NSLocalizedString("NotificationSwitchOFF", comment: ""))) } From 90dd28f19cdffbf81bd3a98e613d805ba75f5250 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 6 Mar 2022 22:41:02 +0800 Subject: [PATCH 50/72] i18n // Fix ja-JP translation error regarding Apple Eten layout. --- Source/Resources/ja.lproj/Localizable.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Resources/ja.lproj/Localizable.strings b/Source/Resources/ja.lproj/Localizable.strings index ace5325d..5df01a25 100644 --- a/Source/Resources/ja.lproj/Localizable.strings +++ b/Source/Resources/ja.lproj/Localizable.strings @@ -49,7 +49,7 @@ "ja" = "和語"; "Alphanumerical Input Mode" = "英数入力モード"; "Apple Zhuyin Bopomofo" = "Apple 注音ボポモフォ配列(大千標準)"; -"Apple Zhuyin Bopomofo" = "Apple 注音ボポモフォ配列(倚天伝統)"; +"Apple Zhuyin Eten" = "Apple 注音ボポモフォ配列(倚天伝統)"; // The followings are the category names used in the Symbol menu. "catCommonSymbols" = "常用"; From 023048d7c7c01147d69c360c309479ae4b527061 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 6 Mar 2022 22:57:41 +0800 Subject: [PATCH 51/72] i18n // +"Symbol & Emoji Input" string translation. --- Source/Resources/Base.lproj/Localizable.strings | 1 + Source/Resources/en.lproj/Localizable.strings | 1 + Source/Resources/ja.lproj/Localizable.strings | 1 + Source/Resources/zh-Hans.lproj/Localizable.strings | 1 + Source/Resources/zh-Hant.lproj/Localizable.strings | 1 + 5 files changed, 5 insertions(+) diff --git a/Source/Resources/Base.lproj/Localizable.strings b/Source/Resources/Base.lproj/Localizable.strings index 27856c78..778638a9 100644 --- a/Source/Resources/Base.lproj/Localizable.strings +++ b/Source/Resources/Base.lproj/Localizable.strings @@ -50,6 +50,7 @@ "Alphanumerical Input Mode" = "Alphanumerical Input Mode"; "Apple Zhuyin Bopomofo" = "Apple Zhuyin Bopomofo (Standard)"; "Apple Zhuyin Eten" = "Apple Zhuyin Eten"; +"Symbol & Emoji Input" = "Symbol & Emoji Input"; // The followings are the category names used in the Symbol menu. "catCommonSymbols" = "CommonSymbols"; diff --git a/Source/Resources/en.lproj/Localizable.strings b/Source/Resources/en.lproj/Localizable.strings index 27856c78..778638a9 100644 --- a/Source/Resources/en.lproj/Localizable.strings +++ b/Source/Resources/en.lproj/Localizable.strings @@ -50,6 +50,7 @@ "Alphanumerical Input Mode" = "Alphanumerical Input Mode"; "Apple Zhuyin Bopomofo" = "Apple Zhuyin Bopomofo (Standard)"; "Apple Zhuyin Eten" = "Apple Zhuyin Eten"; +"Symbol & Emoji Input" = "Symbol & Emoji Input"; // The followings are the category names used in the Symbol menu. "catCommonSymbols" = "CommonSymbols"; diff --git a/Source/Resources/ja.lproj/Localizable.strings b/Source/Resources/ja.lproj/Localizable.strings index 5df01a25..4dea78fb 100644 --- a/Source/Resources/ja.lproj/Localizable.strings +++ b/Source/Resources/ja.lproj/Localizable.strings @@ -50,6 +50,7 @@ "Alphanumerical Input Mode" = "英数入力モード"; "Apple Zhuyin Bopomofo" = "Apple 注音ボポモフォ配列(大千標準)"; "Apple Zhuyin Eten" = "Apple 注音ボポモフォ配列(倚天伝統)"; +"Symbol & Emoji Input" = "符号&絵文字入力"; // The followings are the category names used in the Symbol menu. "catCommonSymbols" = "常用"; diff --git a/Source/Resources/zh-Hans.lproj/Localizable.strings b/Source/Resources/zh-Hans.lproj/Localizable.strings index 0f1ca127..01ce1d54 100644 --- a/Source/Resources/zh-Hans.lproj/Localizable.strings +++ b/Source/Resources/zh-Hans.lproj/Localizable.strings @@ -50,6 +50,7 @@ "Alphanumerical Input Mode" = "原生英数输入模式"; "Apple Zhuyin Bopomofo" = "Apple 标准注音键盘布局"; "Apple Zhuyin Eten" = "Apple 倚天注音键盘布局"; +"Symbol & Emoji Input" = "符号&绘文字输入"; // The followings are the category names used in the Symbol menu. "catCommonSymbols" = "常用"; diff --git a/Source/Resources/zh-Hant.lproj/Localizable.strings b/Source/Resources/zh-Hant.lproj/Localizable.strings index 9350bc8b..dd6aec31 100644 --- a/Source/Resources/zh-Hant.lproj/Localizable.strings +++ b/Source/Resources/zh-Hant.lproj/Localizable.strings @@ -50,6 +50,7 @@ "Alphanumerical Input Mode" = "原生英數輸入模式"; "Apple Zhuyin Bopomofo" = "Apple 標準注音鍵盤佈局"; "Apple Zhuyin Eten" = "Apple 倚天注音鍵盤佈局"; +"Symbol & Emoji Input" = "符號&繪文字輸入"; // The followings are the category names used in the Symbol menu. "catCommonSymbols" = "常用"; From 9080add531f16711eca7f56ddfc307ae8294f34b Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 7 Mar 2022 10:12:20 +0800 Subject: [PATCH 52/72] DataCompiler // Clean credits of formulas. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 依《中華人民共和國著作權法》第五條,「公式」不適用該法。 --- DataCompiler/dataCompiler.swift | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/DataCompiler/dataCompiler.swift b/DataCompiler/dataCompiler.swift index dea6fa77..081a5f2d 100644 --- a/DataCompiler/dataCompiler.swift +++ b/DataCompiler/dataCompiler.swift @@ -336,20 +336,19 @@ func weightAndSort(_ arrStructUncalculated: [Entry], isCHS: Bool) -> [Entry] { var norm: Float = 0.0 for entry in arrStructUncalculated { if entry.valCount >= 0 { - norm += fscale**(Float(entry.valPhrase.count) / 3.0 - 1.0) * Float(entry.valCount) // Credit: MJHsieh. + norm += fscale**(Float(entry.valPhrase.count) / 3.0 - 1.0) * Float(entry.valCount) } } // norm 計算完畢,開始將 norm 作為新的固定常數來為每個詞條記錄計算權重。 // 將新酷音的詞語出現次數數據轉換成小麥引擎可讀的數據形式。 // 對出現次數小於 1 的詞條,將 0 當成 0.5 來處理、以防止除零。 - // 統計公式著作權歸 MJHsieh 所有(MIT License)。 for entry in arrStructUncalculated { var weight: Float = 0 switch entry.valCount { case -1: // 假名 weight = -13 case 0: // 墊底低頻漢字與詞語 - weight = log10(fscale**(Float(entry.valPhrase.count) / 3.0 - 1.0) * 0.5 / norm) // Credit: MJHsieh. + weight = log10(fscale**(Float(entry.valPhrase.count) / 3.0 - 1.0) * 0.5 / norm) default: weight = log10(fscale**(Float(entry.valPhrase.count) / 3.0 - 1.0) * Float(entry.valCount) / norm) // Credit: MJHsieh. } From 08b35580ab59b8d3a9ec037f03bc259b48e0d3c5 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 7 Mar 2022 13:12:48 +0800 Subject: [PATCH 53/72] Gramambular // Restore previous folder structure. - Moving the DumpDOT() back to the Grid.h header. --- .../LanguageParsers/Gramambular/Grid.h | 41 ++++++++++- .../LanguageParsers/Gramambular/Grid.mm | 69 ------------------- vChewing.xcodeproj/project.pbxproj | 4 -- 3 files changed, 40 insertions(+), 74 deletions(-) delete mode 100644 Source/Modules/LanguageParsers/Gramambular/Grid.mm diff --git a/Source/Modules/LanguageParsers/Gramambular/Grid.h b/Source/Modules/LanguageParsers/Gramambular/Grid.h index 3fd5c206..6113bb8c 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Grid.h +++ b/Source/Modules/LanguageParsers/Gramambular/Grid.h @@ -60,7 +60,46 @@ public: const std::string& value, float overridingScore); - std::string dumpDOT(); + std::string dumpDOT() { + std::stringstream sst; + sst << "digraph {" << std::endl; + sst << "graph [ rankdir=LR ];" << std::endl; + sst << "BOS;" << std::endl; + + for (size_t p = 0; p < m_spans.size(); p++) { + Span& span = m_spans[p]; + for (size_t ni = 0; ni <= span.maximumLength(); ni++) { + Node* np = span.nodeOfLength(ni); + if (np) { + if (!p) { + sst << "BOS -> " << np->currentKeyValue().value << ";" << std::endl; + } + + sst << np->currentKeyValue().value << ";" << std::endl; + + if (p + ni < m_spans.size()) { + Span& dstSpan = m_spans[p + ni]; + for (size_t q = 0; q <= dstSpan.maximumLength(); q++) { + Node* dn = dstSpan.nodeOfLength(q); + if (dn) { + sst << np->currentKeyValue().value << " -> " + << dn->currentKeyValue().value << ";" << std::endl; + } + } + } + + if (p + ni == m_spans.size()) { + sst << np->currentKeyValue().value << " -> " + << "EOS;" << std::endl; + } + } + } + } + + sst << "EOS;" << std::endl; + sst << "}"; + return sst.str(); + } protected: std::vector m_spans; diff --git a/Source/Modules/LanguageParsers/Gramambular/Grid.mm b/Source/Modules/LanguageParsers/Gramambular/Grid.mm deleted file mode 100644 index 9e96c28e..00000000 --- a/Source/Modules/LanguageParsers/Gramambular/Grid.mm +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). -// All possible vChewing-specific modifications are (c) 2021 and onwards The vChewing Project (MIT-NTL 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: - -1. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -2. No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, - except as required to fulfill notice requirements above. - -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. -*/ - -#include "Grid.h" - -#include -#include - -namespace Gramambular { - -std::string Grid::dumpDOT() { - std::stringstream sst; - sst << "digraph {" << std::endl; - sst << "graph [ rankdir=LR ];" << std::endl; - sst << "BOS;" << std::endl; - - for (size_t p = 0; p < m_spans.size(); p++) { - Span& span = m_spans[p]; - for (size_t ni = 0; ni <= span.maximumLength(); ni++) { - Node* np = span.nodeOfLength(ni); - if (np) { - if (!p) { - sst << "BOS -> " << np->currentKeyValue().value << ";" << std::endl; - } - - sst << np->currentKeyValue().value << ";" << std::endl; - - if (p + ni < m_spans.size()) { - Span& dstSpan = m_spans[p + ni]; - for (size_t q = 0; q <= dstSpan.maximumLength(); q++) { - Node* dn = dstSpan.nodeOfLength(q); - if (dn) { - sst << np->currentKeyValue().value << " -> " - << dn->currentKeyValue().value << ";" << std::endl; - } - } - } - - if (p + ni == m_spans.size()) { - sst << np->currentKeyValue().value << " -> " - << "EOS;" << std::endl; - } - } - } - } - - sst << "EOS;" << std::endl; - sst << "}"; - return sst.str(); -} - -} // namespace Gramambular - diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index 4a2c034b..97f28552 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -50,7 +50,6 @@ 5BD05C6827B2BBEF004C4F1D /* Content.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6327B2BBEF004C4F1D /* Content.swift */; }; 5BD05C6927B2BBEF004C4F1D /* WindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6427B2BBEF004C4F1D /* WindowController.swift */; }; 5BD05C6A27B2BBEF004C4F1D /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6527B2BBEF004C4F1D /* ViewController.swift */; }; - 5BDC5CAB27C2873D00E1CCE2 /* Grid.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5BDC5CAA27C2873D00E1CCE2 /* Grid.mm */; }; 5BDC5CB327C28E8B00E1CCE2 /* icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 5BDC5CB227C28E8B00E1CCE2 /* icon.icns */; }; 5BDC5CB527C28E8B00E1CCE2 /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDC5CB427C28E8B00E1CCE2 /* ShareViewController.swift */; }; 5BDC5CB827C28E8B00E1CCE2 /* ShareViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDC5CB627C28E8B00E1CCE2 /* ShareViewController.xib */; }; @@ -231,7 +230,6 @@ 5BD05C6327B2BBEF004C4F1D /* Content.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Content.swift; sourceTree = ""; }; 5BD05C6427B2BBEF004C4F1D /* WindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WindowController.swift; sourceTree = ""; }; 5BD05C6527B2BBEF004C4F1D /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 5BDC5CAA27C2873D00E1CCE2 /* Grid.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = Grid.mm; sourceTree = ""; }; 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = KeyboardExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 5BDC5CB227C28E8B00E1CCE2 /* icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = icon.icns; sourceTree = ""; }; 5BDC5CB427C28E8B00E1CCE2 /* ShareViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareViewController.swift; sourceTree = ""; }; @@ -752,7 +750,6 @@ 6A0D4F1515FC0EB100ABF4B3 /* BlockReadingBuilder.h */, 6A0D4F1615FC0EB100ABF4B3 /* Gramambular.h */, 6A0D4F1715FC0EB100ABF4B3 /* Grid.h */, - 5BDC5CAA27C2873D00E1CCE2 /* Grid.mm */, 6A0D4F1815FC0EB100ABF4B3 /* KeyValuePair.h */, 6A0D4F1915FC0EB100ABF4B3 /* LanguageModel.h */, 6A0D4F1A15FC0EB100ABF4B3 /* Node.h */, @@ -1075,7 +1072,6 @@ D47F7DD3278C1263002F9DD7 /* UserOverrideModel.cpp in Sources */, 5B62A33627AE795800A19448 /* PreferencesModule.swift in Sources */, 5B62A33827AE79CD00A19448 /* NSStringUtils.swift in Sources */, - 5BDC5CAB27C2873D00E1CCE2 /* Grid.mm in Sources */, 5B62A33227AE792F00A19448 /* InputSourceHelper.swift in Sources */, 5B62A34927AE7CD900A19448 /* TooltipController.swift in Sources */, 6A0D4F4515FC0EB100ABF4B3 /* Mandarin.cpp in Sources */, From d743cfab58182302bd223ab4ca1b21b5fa5dd2c7 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 7 Mar 2022 20:29:28 +0800 Subject: [PATCH 54/72] PrefWindow // Tweak checkbox bindings. --- Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib index 69690e01..5c1c8960 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib +++ b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib @@ -514,6 +514,7 @@ + From ae7f93cb7cbb27825dccb86e69cf9c405be290e0 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 7 Mar 2022 22:12:43 +0800 Subject: [PATCH 63/72] PrefWindow // Moving SCPC switch to Advanced panel. --- .../WindowNIBs/Base.lproj/frmPrefWindow.xib | 158 +++++++++--------- .../WindowNIBs/en.lproj/frmPrefWindow.strings | 4 +- .../WindowNIBs/ja.lproj/frmPrefWindow.strings | 2 +- .../zh-Hans.lproj/frmPrefWindow.strings | 2 +- .../zh-Hant.lproj/frmPrefWindow.strings | 2 +- 5 files changed, 83 insertions(+), 85 deletions(-) diff --git a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib index 62a39d34..21379800 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib +++ b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib @@ -161,7 +161,7 @@ - - + @@ -451,7 +448,7 @@ - + @@ -459,7 +456,7 @@ - + @@ -484,7 +481,7 @@ - + @@ -492,9 +489,9 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings index b81867e9..69652d62 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings @@ -143,8 +143,8 @@ /* Class = "NSTextFieldCell"; title = "Choose your preferred keyboard layout."; ObjectID = "RQ6-MS-m4C"; */ "RQ6-MS-m4C.title" = "Choose your preferred keyboard layout."; -/* Class = "NSButtonCell"; title = "Push the cursor to the front of the phrase after candidate selection"; ObjectID = "RUG-ls-KyA"; */ -"RUG-ls-KyA.title" = "Push the cursor to the front of the phrase after candidate selection"; +/* Class = "NSButtonCell"; title = "Push the cursor to the front of the phrase after selection"; ObjectID = "RUG-ls-KyA"; */ +"RUG-ls-KyA.title" = "Push the cursor to the front of the phrase after selection"; /* Class = "NSMenuItem"; title = "Traditional Chinese"; ObjectID = "TXr-FF-ehw"; */ "TXr-FF-ehw.title" = "Traditional Chinese"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings index e56badd0..1864b327 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings @@ -143,7 +143,7 @@ /* Class = "NSTextFieldCell"; title = "Choose your preferred keyboard layout."; ObjectID = "RQ6-MS-m4C"; */ "RQ6-MS-m4C.title" = "お好きなるキーボード配列をお選びください。"; -/* Class = "NSButtonCell"; title = "Push the cursor to the front of the phrase after candidate selection"; ObjectID = "RUG-ls-KyA"; */ +/* Class = "NSButtonCell"; title = "Push the cursor to the front of the phrase after selection"; ObjectID = "RUG-ls-KyA"; */ "RUG-ls-KyA.title" = "候補選択の直後、すぐカーソルを単語の後ろに移す"; /* Class = "NSMenuItem"; title = "Traditional Chinese"; ObjectID = "TXr-FF-ehw"; */ diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings index 9b54a2e1..ba4c8b6e 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings @@ -143,7 +143,7 @@ /* Class = "NSTextFieldCell"; title = "Choose your preferred keyboard layout."; ObjectID = "RQ6-MS-m4C"; */ "RQ6-MS-m4C.title" = "选择您所偏好的键盘布局。"; -/* Class = "NSButtonCell"; title = "Push the cursor to the front of the phrase after candidate selection"; ObjectID = "RUG-ls-KyA"; */ +/* Class = "NSButtonCell"; title = "Push the cursor to the front of the phrase after selection"; ObjectID = "RUG-ls-KyA"; */ "RUG-ls-KyA.title" = "在选字后将光标置于该字词的前方"; /* Class = "NSMenuItem"; title = "Traditional Chinese"; ObjectID = "TXr-FF-ehw"; */ diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings index 4b03b6c9..6619d71b 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings @@ -143,7 +143,7 @@ /* Class = "NSTextFieldCell"; title = "Choose your preferred keyboard layout."; ObjectID = "RQ6-MS-m4C"; */ "RQ6-MS-m4C.title" = "選擇您所偏好的鍵盤佈局。"; -/* Class = "NSButtonCell"; title = "Push the cursor to the front of the phrase after candidate selection"; ObjectID = "RUG-ls-KyA"; */ +/* Class = "NSButtonCell"; title = "Push the cursor to the front of the phrase after selection"; ObjectID = "RUG-ls-KyA"; */ "RUG-ls-KyA.title" = "在選字後將游標置於該字詞的前方"; /* Class = "NSMenuItem"; title = "Traditional Chinese"; ObjectID = "TXr-FF-ehw"; */ From 7962f082d3b1cd5ea4c438fba5ebd18e236853db Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 7 Mar 2022 22:21:37 +0800 Subject: [PATCH 64/72] (ctl)PrefWindow // +symbolInputEnabled. --- Source/WindowControllers/ctlPrefWindow.swift | 4 ++++ .../WindowNIBs/Base.lproj/frmPrefWindow.xib | 18 ++++++++++++++++++ .../WindowNIBs/en.lproj/frmPrefWindow.strings | 3 +++ .../WindowNIBs/ja.lproj/frmPrefWindow.strings | 3 +++ .../zh-Hans.lproj/frmPrefWindow.strings | 3 +++ .../zh-Hant.lproj/frmPrefWindow.strings | 4 ++++ 6 files changed, 35 insertions(+) diff --git a/Source/WindowControllers/ctlPrefWindow.swift b/Source/WindowControllers/ctlPrefWindow.swift index 705a9c9a..a24bba6d 100644 --- a/Source/WindowControllers/ctlPrefWindow.swift +++ b/Source/WindowControllers/ctlPrefWindow.swift @@ -174,6 +174,10 @@ extension RangeReplaceableCollection where Element: Hashable { mgrLangModel.setCNSEnabled(Preferences.cns11643Enabled) } + @IBAction func toggleSymbolInputEnabled(_ sender: Any) { + mgrLangModel.setSymbolEnabled(Preferences.symbolInputEnabled) + } + @IBAction func toggleTrad2KangXiAction(_ sender: Any) { if chkTrad2KangXi.state == .on && chkTrad2JISShinjitai.state == .on { Preferences.toggleShiftJISShinjitaiOutputEnabled() diff --git a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib index 21379800..08134c55 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib +++ b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib @@ -598,11 +598,29 @@ + + + + diff --git a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings index 69652d62..f1821d59 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings @@ -220,3 +220,6 @@ /* Class = "NSButtonCell"; title = "Space to +cycle candidates, Shift+Space to +cycle pages"; ObjectID = "dIN-TZ-67g"; */ "dIN-TZ-67g.title" = "Space to +cycle candidates, Shift+Space to +cycle pages"; + +/* Class = "NSButtonCell"; title = "Enable symbol input support (incl. certain emoji symbols)"; ObjectID = "hSv-LJ-Cq3"; */ +"hSv-LJ-Cq3.title" = "Enable symbol input support (incl. certain emoji symbols)"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings index 1864b327..4d056e4b 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings @@ -220,3 +220,6 @@ /* Class = "NSButtonCell"; title = "Space to +cycle candidates, Shift+Space to +cycle pages"; ObjectID = "dIN-TZ-67g"; */ "dIN-TZ-67g.title" = "Shift+Space で次のページ、Space で次の候補文字を"; + +/* Class = "NSButtonCell"; title = "Enable symbol input support (incl. certain emoji symbols)"; ObjectID = "hSv-LJ-Cq3"; */ +"hSv-LJ-Cq3.title" = "僅かなる絵文字も含む符号入力サポートを起用"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings index ba4c8b6e..3341201d 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings @@ -220,3 +220,6 @@ /* Class = "NSButtonCell"; title = "Space to +cycle candidates, Shift+Space to +cycle pages"; ObjectID = "dIN-TZ-67g"; */ "dIN-TZ-67g.title" = "Shift+Space 换下一页,Space 换选下一个候选字。"; + +/* Class = "NSButtonCell"; title = "Enable symbol input support (incl. certain emoji symbols)"; ObjectID = "hSv-LJ-Cq3"; */ +"hSv-LJ-Cq3.title" = "启用包括少许绘文字在内的符号输入支援"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings index 6619d71b..a114c243 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings @@ -220,3 +220,7 @@ /* Class = "NSButtonCell"; title = "Space to +cycle candidates, Shift+Space to +cycle pages"; ObjectID = "dIN-TZ-67g"; */ "dIN-TZ-67g.title" = "Shift+Space 換下一頁,Space 換選下一個候選字"; + +/* Class = "NSButtonCell"; title = "Enable symbol input support (incl. certain emoji symbols)"; ObjectID = "hSv-LJ-Cq3"; */ +"hSv-LJ-Cq3.title" = "啟用包括少許繪文字在內的符號輸入支援"; + From dfd690ad4a75e9dd0e1e7c2700c06c570f285fec Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 8 Mar 2022 12:01:17 +0800 Subject: [PATCH 65/72] ctlPrefWindow // Remove useless menu items. --- Source/WindowControllers/ctlPrefWindow.swift | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Source/WindowControllers/ctlPrefWindow.swift b/Source/WindowControllers/ctlPrefWindow.swift index a24bba6d..9f3a1756 100644 --- a/Source/WindowControllers/ctlPrefWindow.swift +++ b/Source/WindowControllers/ctlPrefWindow.swift @@ -84,11 +84,6 @@ extension RangeReplaceableCollection where Element: Hashable { menuItem_AppleZhuyinEten.representedObject = String("com.apple.keylayout.ZhuyinEten") basisKeyboardLayoutButton.menu?.addItem(menuItem_AppleZhuyinEten) - let menuItem_vChewingDachen = NSMenuItem() - menuItem_vChewingDachen.title = String(format: NSLocalizedString("vChewing Dachen (Not Finished Yet)", comment: "")) - menuItem_vChewingDachen.representedObject = String("org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingDachen") - basisKeyboardLayoutButton.menu?.addItem(menuItem_vChewingDachen) - let basisKeyboardLayoutID = Preferences.basisKeyboardLayout for source in list { @@ -145,8 +140,6 @@ extension RangeReplaceableCollection where Element: Hashable { chosenBaseKeyboardLayoutItem = menuItem_AppleZhuyinBopomofo case "com.apple.keylayout.ZhuyinEten": chosenBaseKeyboardLayoutItem = menuItem_AppleZhuyinEten - case "org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyindachen": - chosenBaseKeyboardLayoutItem = menuItem_vChewingDachen default: break // nothing to do } From 03061eb0cbf6da4e64e8b4699e2fec79636659ed Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 8 Mar 2022 10:58:08 +0800 Subject: [PATCH 66/72] KeyConv // Recognizing vChewing Dynamic Keyboards. --- .../ControllerModules/AppleKeyboardConverter.swift | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Source/Modules/ControllerModules/AppleKeyboardConverter.swift b/Source/Modules/ControllerModules/AppleKeyboardConverter.swift index a3b75add..bd5adf67 100644 --- a/Source/Modules/ControllerModules/AppleKeyboardConverter.swift +++ b/Source/Modules/ControllerModules/AppleKeyboardConverter.swift @@ -25,6 +25,16 @@ import Cocoa return true case "com.apple.keylayout.ZhuyinEten": return true + case "org.atelierInmu.vChewing.keyLayouts.vchewingdachen": + return true + case "org.atelierInmu.vChewing.keyLayouts.vchewingmitac": + return true + case "org.atelierInmu.vChewing.keyLayouts.vchewingibm": + return true + case "org.atelierInmu.vChewing.keyLayouts.vchewingseigyou": + return true + case "org.atelierInmu.vChewing.keyLayouts.vchewingeten": + return true default: return false } From fc02dd907ae525a575d0704d8231457399565c9f Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 8 Mar 2022 11:20:18 +0800 Subject: [PATCH 67/72] Proj // Reorganizing how KeyLayout bundle deploys. --- .../Base.lproj/ShareViewController.xib | 78 ------- KeyboardExtension/Info.plist | 23 --- .../KeyboardExtension.entitlements | 12 -- KeyboardExtension/ShareViewController.swift | 41 ---- KeyboardExtension/icon.icns | Bin 495508 -> 0 bytes .../Contents/Info.plist | 20 +- ...en.keylayout => vChewing Dachen.keylayout} | 3 +- ...ETen.keylayout => vChewing ETen.keylayout} | 3 +- ...ngIBM.keylayout => vChewing IBM.keylayout} | 3 +- ...TAC.keylayout => vChewing MiTAC.keylayout} | 3 +- ...u.keylayout => vChewing Seigyou.keylayout} | 3 +- .../Resources/zh.lproj/InfoPlist.strings | Bin 304 -> 362 bytes vChewing.xcodeproj/project.pbxproj | 193 +----------------- 13 files changed, 22 insertions(+), 360 deletions(-) delete mode 100644 KeyboardExtension/Base.lproj/ShareViewController.xib delete mode 100644 KeyboardExtension/Info.plist delete mode 100644 KeyboardExtension/KeyboardExtension.entitlements delete mode 100644 KeyboardExtension/ShareViewController.swift delete mode 100644 KeyboardExtension/icon.icns rename KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/{vChewingDachen.keylayout => vChewing Dachen.keylayout} (99%) rename KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/{vChewingETen.keylayout => vChewing ETen.keylayout} (99%) rename KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/{vChewingIBM.keylayout => vChewing IBM.keylayout} (99%) rename KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/{vChewingMiTAC.keylayout => vChewing MiTAC.keylayout} (99%) rename KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/{vChewingSeigyou.keylayout => vChewing Seigyou.keylayout} (99%) diff --git a/KeyboardExtension/Base.lproj/ShareViewController.xib b/KeyboardExtension/Base.lproj/ShareViewController.xib deleted file mode 100644 index bc80e0d6..00000000 --- a/KeyboardExtension/Base.lproj/ShareViewController.xib +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/KeyboardExtension/Info.plist b/KeyboardExtension/Info.plist deleted file mode 100644 index f275862c..00000000 --- a/KeyboardExtension/Info.plist +++ /dev/null @@ -1,23 +0,0 @@ - - - - - CFBundleIconFile - icon - NSExtension - - NSExtensionAttributes - - NSExtensionActivationRule - - NSExtensionActivationSupportsText - - - - NSExtensionPointIdentifier - com.apple.share-services - NSExtensionPrincipalClass - $(PRODUCT_MODULE_NAME).ShareViewController - - - diff --git a/KeyboardExtension/KeyboardExtension.entitlements b/KeyboardExtension/KeyboardExtension.entitlements deleted file mode 100644 index 33ede3bb..00000000 --- a/KeyboardExtension/KeyboardExtension.entitlements +++ /dev/null @@ -1,12 +0,0 @@ - - - - - com.apple.security.temporary-exception.mach-register.global-name - org_atelierInmu_inputmethod_vChewing - com.apple.security.app-sandbox - - com.apple.security.files.user-selected.read-only - - - diff --git a/KeyboardExtension/ShareViewController.swift b/KeyboardExtension/ShareViewController.swift deleted file mode 100644 index 75910d4c..00000000 --- a/KeyboardExtension/ShareViewController.swift +++ /dev/null @@ -1,41 +0,0 @@ -// -// ShareViewController.swift -// KeyboardExtension -// -// Created by ShikiSuen on 2022/2/20. -// - -import Cocoa - -class ShareViewController: NSViewController { - - override var nibName: NSNib.Name? { - return NSNib.Name("ShareViewController") - } - - override func loadView() { - super.loadView() - - // Insert code here to customize the view - let item = self.extensionContext!.inputItems[0] as! NSExtensionItem - if let attachments = item.attachments { - NSLog("Attachments = %@", attachments as NSArray) - } else { - NSLog("No Attachments") - } - } - - @IBAction func send(_ sender: AnyObject?) { - let outputItem = NSExtensionItem() - // Complete implementation by setting the appropriate value on the output item - - let outputItems = [outputItem] - self.extensionContext!.completeRequest(returningItems: outputItems, completionHandler: nil) -} - - @IBAction func cancel(_ sender: AnyObject?) { - let cancelError = NSError(domain: NSCocoaErrorDomain, code: NSUserCancelledError, userInfo: nil) - self.extensionContext!.cancelRequest(withError: cancelError) - } - -} diff --git a/KeyboardExtension/icon.icns b/KeyboardExtension/icon.icns deleted file mode 100644 index 84ae85cdf5d9a60126f992e226b9fd9ca6e9d5cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495508 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 z 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 %9vnbho?7kE=tDY?K+k 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%0D3)DTxOns|HBI-W(S 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 CFBundleVersion 1.0 - KLInfo_vChewingDachen + KLInfo_vChewing Dachen TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingDachen + org.atelierInmu.vChewing.keyLayouts.vchewingdachen TISIntendedLanguage zh-Hanb - KLInfo_vChewingETen + KLInfo_vChewing ETen TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingETen + org.atelierInmu.vChewing.keyLayouts.vchewingeten TISIntendedLanguage zh-Hanb - KLInfo_vChewingIBM + KLInfo_vChewing IBM TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingIBM + org.atelierInmu.vChewing.keyLayouts.vchewingibm TISIntendedLanguage zh-Hanb - KLInfo_vChewingMiTAC + KLInfo_vChewing MiTAC TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingMiTAC + org.atelierInmu.vChewing.keyLayouts.vchewingmitac TISIntendedLanguage zh-Hanb - KLInfo_vChewingSeigyou + KLInfo_vChewing Seigyou TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingSeigyou + org.atelierInmu.vChewing.keyLayouts.vchewingseigyou TISIntendedLanguage zh-Hanb diff --git a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingDachen.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing Dachen.keylayout similarity index 99% rename from KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingDachen.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing Dachen.keylayout index 19c784b8..c3057e80 100644 --- a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingDachen.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing Dachen.keylayout @@ -1,6 +1,6 @@ - + @@ -817,6 +817,7 @@ + diff --git a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingETen.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing ETen.keylayout similarity index 99% rename from KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingETen.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing ETen.keylayout index 918c7780..4cc83d13 100644 --- a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingETen.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing ETen.keylayout @@ -1,6 +1,6 @@ - + @@ -817,6 +817,7 @@ + diff --git a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingIBM.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing IBM.keylayout similarity index 99% rename from KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingIBM.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing IBM.keylayout index 66ea8e1b..88e1c7ad 100644 --- a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingIBM.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing IBM.keylayout @@ -1,6 +1,6 @@ - + @@ -817,6 +817,7 @@ + diff --git a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingMiTAC.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing MiTAC.keylayout similarity index 99% rename from KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingMiTAC.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing MiTAC.keylayout index c459b76a..248fbbb2 100644 --- a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingMiTAC.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing MiTAC.keylayout @@ -1,6 +1,6 @@ - + @@ -817,6 +817,7 @@ + diff --git a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingSeigyou.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing Seigyou.keylayout similarity index 99% rename from KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingSeigyou.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing Seigyou.keylayout index d153ef26..91c998ab 100644 --- a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingSeigyou.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing Seigyou.keylayout @@ -1,6 +1,6 @@ - + @@ -817,6 +817,7 @@ + diff --git a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings index 128b7a6694fb2f879401d239948a40e38bc9788e..a3fe737d23b4825a249ddfa4f7253126aaa5288d 100644 GIT binary patch literal 362 zcmezWPl=(7!I>e0A(f$=A(J7GA)P^i!G$4_AsH-|$Djn{+X6ABI#gBG3|v^$C@{D( zgaFOPXAVLIE;BqCoEUuZxCADTOTRDBXCVxZK!4))4YC?s<^%(Mk_il}f(6g$K}F&!r6xd>X$e3y gdNMdM_%cAXPS#_T5P^vAtI5p-i7GKzGjK5g0H}s0wg3PC diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index 97f28552..6fa6e630 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -33,6 +33,7 @@ 5B62A35327AE89C400A19448 /* InputSourceHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B62A33127AE792F00A19448 /* InputSourceHelper.swift */; }; 5B73FB5E27B2BE1300E9BF49 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5B73FB6027B2BE1300E9BF49 /* InfoPlist.strings */; }; 5B7BC4B027AFFBE800F66C24 /* frmPrefWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B7BC4AE27AFFBE800F66C24 /* frmPrefWindow.xib */; }; + 5BAD0CD527D701F6003D127F /* vChewingKeyLayout.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */; }; 5BBBB75F27AED54C0023B93A /* Beep.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 5BBBB75D27AED54C0023B93A /* Beep.m4a */; }; 5BBBB76027AED54C0023B93A /* Fart.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 5BBBB75E27AED54C0023B93A /* Fart.m4a */; }; 5BBBB76B27AED5DB0023B93A /* frmNonModalAlertWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BBBB76527AED5DB0023B93A /* frmNonModalAlertWindow.xib */; }; @@ -50,11 +51,6 @@ 5BD05C6827B2BBEF004C4F1D /* Content.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6327B2BBEF004C4F1D /* Content.swift */; }; 5BD05C6927B2BBEF004C4F1D /* WindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6427B2BBEF004C4F1D /* WindowController.swift */; }; 5BD05C6A27B2BBEF004C4F1D /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6527B2BBEF004C4F1D /* ViewController.swift */; }; - 5BDC5CB327C28E8B00E1CCE2 /* icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 5BDC5CB227C28E8B00E1CCE2 /* icon.icns */; }; - 5BDC5CB527C28E8B00E1CCE2 /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDC5CB427C28E8B00E1CCE2 /* ShareViewController.swift */; }; - 5BDC5CB827C28E8B00E1CCE2 /* ShareViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDC5CB627C28E8B00E1CCE2 /* ShareViewController.xib */; }; - 5BDC5CBD27C28E8B00E1CCE2 /* KeyboardExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 5BDC5CC227C2941F00E1CCE2 /* vChewingKeyLayout.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */; }; 5BDCBB2E27B4E67A00D0CC59 /* vChewingPhraseEditor.app in Resources */ = {isa = PBXBuildFile; fileRef = 5BD05BB827B2A429004C4F1D /* vChewingPhraseEditor.app */; }; 5BE78BD927B3775B005EA1BE /* ctlAboutWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BE78BD827B37750005EA1BE /* ctlAboutWindow.swift */; }; 5BE78BDD27B3776D005EA1BE /* frmAboutWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE78BDA27B37764005EA1BE /* frmAboutWindow.xib */; }; @@ -101,13 +97,6 @@ remoteGlobalIDString = 5BD05BB727B2A429004C4F1D; remoteInfo = vChewingPhraseEditor; }; - 5BDC5CBB27C28E8B00E1CCE2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6A0D4E9415FC0CFA00ABF4B3 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5BDC5CAF27C28E8B00E1CCE2; - remoteInfo = KeyboardExtension; - }; 6A38BC2515FC131100A8A51F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6A0D4E9415FC0CFA00ABF4B3 /* Project object */; @@ -131,7 +120,6 @@ dstPath = ""; dstSubfolderSpec = 13; files = ( - 5BDC5CBD27C28E8B00E1CCE2 /* KeyboardExtension.appex in Embed App Extensions */, ); name = "Embed App Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -230,12 +218,6 @@ 5BD05C6327B2BBEF004C4F1D /* Content.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Content.swift; sourceTree = ""; }; 5BD05C6427B2BBEF004C4F1D /* WindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WindowController.swift; sourceTree = ""; }; 5BD05C6527B2BBEF004C4F1D /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = KeyboardExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - 5BDC5CB227C28E8B00E1CCE2 /* icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = icon.icns; sourceTree = ""; }; - 5BDC5CB427C28E8B00E1CCE2 /* ShareViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareViewController.swift; sourceTree = ""; }; - 5BDC5CB727C28E8B00E1CCE2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ShareViewController.xib; sourceTree = ""; }; - 5BDC5CB927C28E8B00E1CCE2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5BDC5CBA27C28E8B00E1CCE2 /* KeyboardExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = KeyboardExtension.entitlements; sourceTree = ""; }; 5BDCBB4227B4F6C600D0CC59 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/MainMenu.strings"; sourceTree = ""; }; 5BDCBB4327B4F6C600D0CC59 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/frmAboutWindow.strings"; sourceTree = ""; }; 5BDCBB4527B4F6C600D0CC59 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings"; sourceTree = ""; }; @@ -321,13 +303,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 5BDC5CAD27C28E8B00E1CCE2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 6A0D4E9F15FC0D2D00ABF4B3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -669,11 +644,6 @@ isa = PBXGroup; children = ( 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */, - 5BDC5CB227C28E8B00E1CCE2 /* icon.icns */, - 5BDC5CB427C28E8B00E1CCE2 /* ShareViewController.swift */, - 5BDC5CB627C28E8B00E1CCE2 /* ShareViewController.xib */, - 5BDC5CB927C28E8B00E1CCE2 /* Info.plist */, - 5BDC5CBA27C28E8B00E1CCE2 /* KeyboardExtension.entitlements */, ); path = KeyboardExtension; sourceTree = ""; @@ -700,7 +670,6 @@ 6A0D4EA215FC0D2D00ABF4B3 /* vChewing.app */, 6ACA41CB15FC1D7500935EF6 /* vChewingInstaller.app */, 5BD05BB827B2A429004C4F1D /* vChewingPhraseEditor.app */, - 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */, ); name = Products; sourceTree = ""; @@ -821,23 +790,6 @@ productReference = 5BD05BB827B2A429004C4F1D /* vChewingPhraseEditor.app */; productType = "com.apple.product-type.application"; }; - 5BDC5CAF27C28E8B00E1CCE2 /* KeyboardExtension */ = { - isa = PBXNativeTarget; - buildConfigurationList = 5BDC5CC127C28E8B00E1CCE2 /* Build configuration list for PBXNativeTarget "KeyboardExtension" */; - buildPhases = ( - 5BDC5CAC27C28E8B00E1CCE2 /* Sources */, - 5BDC5CAD27C28E8B00E1CCE2 /* Frameworks */, - 5BDC5CAE27C28E8B00E1CCE2 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = KeyboardExtension; - productName = KeyboardExtension; - productReference = 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */; - productType = "com.apple.product-type.app-extension"; - }; 6A0D4EA115FC0D2D00ABF4B3 /* vChewing */ = { isa = PBXNativeTarget; buildConfigurationList = 6A0D4EC015FC0D2E00ABF4B3 /* Build configuration list for PBXNativeTarget "vChewing" */; @@ -852,7 +804,6 @@ dependencies = ( 5B0AF8B327B2C4E20096FE54 /* PBXTargetDependency */, 6A38BC2615FC131100A8A51F /* PBXTargetDependency */, - 5BDC5CBC27C28E8B00E1CCE2 /* PBXTargetDependency */, ); name = vChewing; packageProductDependencies = ( @@ -896,10 +847,6 @@ LastSwiftMigration = 1320; ProvisioningStyle = Automatic; }; - 5BDC5CAF27C28E8B00E1CCE2 = { - CreatedOnToolsVersion = 13.2; - ProvisioningStyle = Automatic; - }; 6A0D4EA115FC0D2D00ABF4B3 = { LastSwiftMigration = 1240; ProvisioningStyle = Automatic; @@ -931,7 +878,6 @@ 6A0D4EA115FC0D2D00ABF4B3 /* vChewing */, 6ACA41CA15FC1D7500935EF6 /* vChewingInstaller */, 5BD05BB727B2A429004C4F1D /* vChewingPhraseEditor */, - 5BDC5CAF27C28E8B00E1CCE2 /* KeyboardExtension */, 6A38BC2115FC12FD00A8A51F /* Data */, ); }; @@ -949,16 +895,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 5BDC5CAE27C28E8B00E1CCE2 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 5BDC5CB827C28E8B00E1CCE2 /* ShareViewController.xib in Resources */, - 5BDC5CC227C2941F00E1CCE2 /* vChewingKeyLayout.bundle in Resources */, - 5BDC5CB327C28E8B00E1CCE2 /* icon.icns in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 6A0D4EA015FC0D2D00ABF4B3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -981,6 +917,7 @@ 5BBBB77627AED70B0023B93A /* MenuIcon-TCVIM.png in Resources */, 6A187E2616004C5900466B2E /* MainMenu.xib in Resources */, 5BBBB75F27AED54C0023B93A /* Beep.m4a in Resources */, + 5BAD0CD527D701F6003D127F /* vChewingKeyLayout.bundle in Resources */, 5B2DB16F27AF6891006D874E /* data-chs.txt in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1035,14 +972,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 5BDC5CAC27C28E8B00E1CCE2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 5BDC5CB527C28E8B00E1CCE2 /* ShareViewController.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 6A0D4E9E15FC0D2D00ABF4B3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1108,11 +1037,6 @@ target = 5BD05BB727B2A429004C4F1D /* vChewingPhraseEditor */; targetProxy = 5B0AF8B227B2C4E20096FE54 /* PBXContainerItemProxy */; }; - 5BDC5CBC27C28E8B00E1CCE2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5BDC5CAF27C28E8B00E1CCE2 /* KeyboardExtension */; - targetProxy = 5BDC5CBB27C28E8B00E1CCE2 /* PBXContainerItemProxy */; - }; 6A38BC2615FC131100A8A51F /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 6A38BC2115FC12FD00A8A51F /* Data */; @@ -1180,14 +1104,6 @@ name = Main.storyboard; sourceTree = ""; }; - 5BDC5CB627C28E8B00E1CCE2 /* ShareViewController.xib */ = { - isa = PBXVariantGroup; - children = ( - 5BDC5CB727C28E8B00E1CCE2 /* Base */, - ); - name = ShareViewController.xib; - sourceTree = ""; - }; 5BE78BDA27B37764005EA1BE /* frmAboutWindow.xib */ = { isa = PBXVariantGroup; children = ( @@ -1369,102 +1285,6 @@ }; name = Release; }; - 5BDC5CBF27C28E8B00E1CCE2 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = KeyboardExtension/KeyboardExtension.entitlements; - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1925; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_ASSET_PATHS = KeyboardExtension/vChewingKeyLayout.bundle; - DEVELOPMENT_TEAM = ""; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = KeyboardExtension/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = KeyboardExtension; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 12.1; - MARKETING_VERSION = 1.3.6; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing.KeyboardExtension; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 5BDC5CC027C28E8B00E1CCE2 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = KeyboardExtension/KeyboardExtension.entitlements; - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1925; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_ASSET_PATHS = KeyboardExtension/vChewingKeyLayout.bundle; - DEVELOPMENT_TEAM = ""; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = KeyboardExtension/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = KeyboardExtension; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 12.1; - MARKETING_VERSION = 1.3.6; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing.KeyboardExtension; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; 6A0D4E9915FC0CFA00ABF4B3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1831,15 +1651,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5BDC5CC127C28E8B00E1CCE2 /* Build configuration list for PBXNativeTarget "KeyboardExtension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 5BDC5CBF27C28E8B00E1CCE2 /* Debug */, - 5BDC5CC027C28E8B00E1CCE2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 6A0D4E9715FC0CFA00ABF4B3 /* Build configuration list for PBXProject "vChewing" */ = { isa = XCConfigurationList; buildConfigurations = ( From 5ee4b1bacc09941ced1a811bd8fdc1052cb18dad Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 8 Mar 2022 13:28:04 +0800 Subject: [PATCH 68/72] KeyLayout // Ensure FakeSeigyou layout. - OVMandarin does not support using certain keys required by the genuine Seigyou (JINYEI) layout. --- .../Contents/Info.plist | 18 +++++++++--------- ...ylayout => vChewing FakeSeigyou.keylayout} | 17 +++++++++-------- .../Resources/zh.lproj/InfoPlist.strings | Bin 362 -> 380 bytes 3 files changed, 18 insertions(+), 17 deletions(-) rename KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/{vChewing Seigyou.keylayout => vChewing FakeSeigyou.keylayout} (99%) diff --git a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Info.plist b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Info.plist index a4f968a0..fb4a77df 100644 --- a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Info.plist +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Info.plist @@ -26,6 +26,15 @@ TISIntendedLanguage zh-Hanb + KLInfo_vChewing FakeSeigyou + + TICapsLockLanguageSwitchCapable + + TISInputSourceID + org.atelierInmu.vChewing.keyLayouts.vchewingfakeseigyou + TISIntendedLanguage + zh-Hanb + KLInfo_vChewing IBM TICapsLockLanguageSwitchCapable @@ -44,14 +53,5 @@ TISIntendedLanguage zh-Hanb - KLInfo_vChewing Seigyou - - TICapsLockLanguageSwitchCapable - - TISInputSourceID - org.atelierInmu.vChewing.keyLayouts.vchewingseigyou - TISIntendedLanguage - zh-Hanb - diff --git a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing Seigyou.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing FakeSeigyou.keylayout similarity index 99% rename from KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing Seigyou.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing FakeSeigyou.keylayout index 91c998ab..f52ebd3a 100644 --- a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing Seigyou.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing FakeSeigyou.keylayout @@ -1,7 +1,7 @@ - - + + @@ -66,19 +66,19 @@ - + - - + + - - + + - + @@ -492,6 +492,7 @@ + diff --git a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings index a3fe737d23b4825a249ddfa4f7253126aaa5288d..17944c96c618fcbfb0161ecbaaf5aea53effb518 100644 GIT binary patch delta 45 vcmaFG^oMD}GIlqHM22jJ)XBPxn&Ju!P#!}tLn=ciLpnnxLq0?4#O{6o7&r^Z delta 19 bcmeyv^onW1vdJ8bB@@4hOkAfi@qq{cSi1 Date: Tue, 8 Mar 2022 13:57:26 +0800 Subject: [PATCH 69/72] PrefWindow // Update texts regarding keyboard layouts. --- .../WindowNIBs/Base.lproj/frmPrefWindow.xib | 50 ++++++++++--------- .../WindowNIBs/en.lproj/frmPrefWindow.strings | 2 +- .../WindowNIBs/ja.lproj/frmPrefWindow.strings | 2 +- .../zh-Hans.lproj/frmPrefWindow.strings | 2 +- .../zh-Hant.lproj/frmPrefWindow.strings | 2 +- 5 files changed, 30 insertions(+), 28 deletions(-) diff --git a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib index 08134c55..e59f26c0 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib +++ b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib @@ -655,8 +655,26 @@ + + + + + + + + Regarding On-Screen Keyboard Viewer Support: + + Since v1.3.2, vChewing supports on-screen keyboard by supporting "Apple Zhuyin Bopomofo" and "Apple Zhuyin Eten" alphanumeric layout. Theoreotically, these two dynamic layouts work with all types of Apple physical keyboards, and you can report failure cases through macOS Feedback Assistant app if macOS built-in Zhuyin / Eten-Zhuyin Input Method fails from working with your non-US keyboard. + + HOWEVER, choosing such dynamic alphanumeric layouts REQUIRING THAT you have to choose the Bopomofo layout above to Standard (Microsoft / Dachen) since the Bopomofo / Eten layout support in this case is already finished by the macOS system. + + Note that If you have chosen those "vChewing****" Alphanumerical layouts, then the Bopomofo layouts MUST MATCH the choices. + + + + - + @@ -668,7 +686,7 @@ - + @@ -693,7 +711,7 @@ - + @@ -707,49 +725,33 @@ - + - - - - - - - - Regarding On-Screen Keyboard Viewer Support: - - Since v1.3.2, vChewing supports on-screen keyboard by supporting "Apple Zhuyin Bopomofo" and "Apple Zhuyin Eten" alphanumeric layout. Theoreotically, these two dynamic layouts work with all types of Apple physical keyboards, and you can report failure cases through macOS Feedback Assistant app if macOS built-in Zhuyin / Eten-Zhuyin Input Method fails from working with your non-US keyboard. - - HOWEVER, choosing such dynamic alphanumeric layouts REQUIRING THAT you have to choose the Bopomofo layout above to Standard (Microsoft / Dachen) since the Bopomofo / Eten layout support in this case is already finished by the macOS system. - - - - - + - + - + - + diff --git a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings index f1821d59..738aa27a 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings @@ -201,7 +201,7 @@ "2iG-Ic-gbl.label" = "Dictionary"; /* Class = "NSTextFieldCell"; title = "Regarding On-Screen Keyboard Support:"; ObjectID = "wQ9-px-b07"; */ -"wQ9-px-b07.title" = "Regarding On-Screen Keyboard Viewer Support:\n\n\tSince v1.3.2, vChewing supports on-screen keyboard by supporting \"Apple Zhuyin Bopomofo\" and \"Apple Zhuyin Eten\" alphanumeric layout. Theoreotically, these two dynamic layouts work with all types of Apple physical keyboards, and you can report failure cases through macOS Feedback Assistant app if macOS built-in Zhuyin / Eten-Zhuyin Input Method fails from working with your non-US keyboard.\n\n\tHOWEVER, choosing such dynamic alphanumeric layouts REQUIRING THAT you have to choose the Bopomofo layout above to Standard (Microsoft / Dachen) since the Bopomofo / Eten layout support in this case is already finished by the macOS system."; +"wQ9-px-b07.title" = "Regarding On-Screen Keyboard Viewer Support:\n\n\tSince v1.3.2, vChewing supports on-screen keyboard by supporting \"Apple Zhuyin Bopomofo\" and \"Apple Zhuyin Eten\" alphanumeric layout. Theoreotically, these two dynamic layouts work with all types of Apple physical keyboards, and you can report failure cases through macOS Feedback Assistant app if macOS built-in Zhuyin / Eten-Zhuyin Input Method fails from working with your non-US keyboard. HOWEVER, choosing such dynamic alphanumeric layouts REQUIRING THAT you have to choose the Bopomofo layout above to Standard (Microsoft / Dachen) since the Bopomofo / Eten layout support in this case is already finished by the macOS system.\n\n\tAlso: If you have chosen those \"vChewing****\" Alphanumerical layouts, then the Bopomofo layouts MUST MATCH the choices."; /* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Tab key in the candidate window."; ObjectID = "ueU-Rz-a1C"; */ "ueU-Rz-a1C.title" = "Choose the behavior of (Shift+)Tab key in the candidate window."; diff --git a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings index 4d056e4b..15794051 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings @@ -201,7 +201,7 @@ "2iG-Ic-gbl.label" = "辞書"; /* Class = "NSTextFieldCell"; title = "Regarding On-Screen Keyboard Support:"; ObjectID = "wQ9-px-b07"; */ -"wQ9-px-b07.title" = "macOS 内蔵のキーボードビューアについて:\n\n\t威注音は v1.3.2 版にて macOS 内蔵のキーボードビューアをサポートし始めたが、「Apple Zhuyin Bopomofo」と「Apple Zhuyin Eten」この2つダイナミック英数キーボード配列をサポートしたためである。基本的には、この機能は全ての言語の Apple キーボードと一緒に動けるはず。macOS 内蔵の注音入力と倚天注音入力が支障なく使える限り(支障があったら Feedback Assistant.app で Apple にご報告を)、この2つダイナミック英数キーボード配列も威注音で作動できるだと考えられる。\n\n\tだが、もし、ダイナミック英数キーボード配列を起用すると、今のこの画面の上の「注音キーボード配列」を標準配列にしなければならぬこと。なぜなら、この場合、倚天などの注音配列のサポート役割は macOS である。"; +"wQ9-px-b07.title" = "macOS 内蔵のキーボードビューアについて:\n\n\t威注音は v1.3.2 版にて macOS 内蔵のキーボードビューアをサポートし始めたが、「Apple Zhuyin Bopomofo」と「Apple Zhuyin Eten」この2つダイナミック英数キーボード配列をサポートしたためである。基本的には、この機能は全ての言語の Apple キーボードと一緒に動けるはず。macOS 内蔵の注音入力と倚天注音入力が支障なく使える限り(支障があったら Feedback Assistant.app で Apple にご報告を)、この2つダイナミック英数キーボード配列も威注音で作動できるだと考えられる。だが、もし、ダイナミック英数キーボード配列を起用すると、今のこの画面の上の「注音キーボード配列」を標準配列にしなければならぬこと。なぜなら、この場合、倚天などの注音配列のサポート役割は macOS である。\n\n\t他に注意:英数配列を「vChewing○○○○」と名付けた配列に設定した場合、注音配列も必ず一致して下さい。"; /* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Tab key in the candidate window."; ObjectID = "ueU-Rz-a1C"; */ "ueU-Rz-a1C.title" = "入力候補陳列での (Shift+)Tab キーの輪番切替対象をご指定ください。"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings index 3341201d..323eb6c9 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings @@ -201,7 +201,7 @@ "2iG-Ic-gbl.label" = "辞典"; /* Class = "NSTextFieldCell"; title = "Regarding On-Screen Keyboard Support:"; ObjectID = "wQ9-px-b07"; */ -"wQ9-px-b07.title" = "关于 macOS 内建萤幕模拟键盘支援:\n\n\t自 v1.3.2 版开始,威注音支援 macOS 内建的萤幕小键盘。该功能是借由对「Apple 标准注音键盘布局」与「Apple 倚天注音键盘布局」这两个动态英数键盘布局来完成的。理论上来讲,这两个动态英数键盘布局应该可以与所有语种的 Apple 物理键盘相容。如果有不相容的情况的话,macOS 内建的注音与倚天注音输入法一定也会有相同的故障(可以借由 Feedback Assistant.app 向 Apple 反馈这种键盘布局问题)。\n\n\t然而,如果您启用了这种动态英数键盘布局的话,请将当前画面顶端的注音键盘布局设为「微软/大千……」,因为对诸如倚天等异种键盘的支援已经交给 macOS 系统来事先完成了。"; +"wQ9-px-b07.title" = "关于 macOS 内建萤幕模拟键盘支援:\n\n\t自 v1.3.2 版开始,威注音支援 macOS 内建的萤幕小键盘。该功能是借由对「Apple 标准注音键盘布局」与「Apple 倚天注音键盘布局」这两个动态英数键盘布局来完成的。理论上来讲,这两个动态英数键盘布局应该可以与所有语种的 Apple 物理键盘相容。如果有不相容的情况的话,macOS 内建的注音与倚天注音输入法一定也会有相同的故障(可以借由 Feedback Assistant.app 向 Apple 反馈这种键盘布局问题)。然而,如果您启用了这种动态英数键盘布局的话,请将当前画面顶端的注音键盘布局设为「微软/大千……」,因为对诸如倚天等异种键盘的支援已经交给 macOS 系统来事先完成了。\n\n\t另外:如果您在「英数键盘布局」内选了所有以「vChewing」开头的键盘配列的话,对应的「注音键盘布局」也要选成相同的配列才可以。比如说前者选「vChewing Dachen」那后者就得选「微软/大千……」、前者选「vChewing FakeSeigyou」那后者就得选「伪精业」,依此类推。"; /* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Tab key in the candidate window."; ObjectID = "ueU-Rz-a1C"; */ "ueU-Rz-a1C.title" = "指定 (Shift+)Tab 热键在选字窗内的轮替操作对象。"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings index a114c243..03e9557c 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings @@ -201,7 +201,7 @@ "2iG-Ic-gbl.label" = "辭典"; /* Class = "NSTextFieldCell"; title = "Regarding On-Screen Keyboard Support:"; ObjectID = "wQ9-px-b07"; */ -"wQ9-px-b07.title" = "關於 macOS 內建螢幕模擬鍵盤支援:\n\n\t自 v1.3.2 版開始,威注音支援 macOS 內建的螢幕小鍵盤。該功能是藉由對「Apple 標準注音鍵盤佈局」與「Apple 倚天注音鍵盤佈局」這兩個動態英數鍵盤佈局來完成的。理論上來講,這兩個動態英數鍵盤佈局應該可以與所有語種的 Apple 物理鍵盤相容。如果有不相容的情況的話,macOS 內建的注音與倚天注音輸入法一定也會有相同的故障(可以藉由 Feedback Assistant.app 向 Apple 反饋這種鍵盤佈局問題)。\n\n\t然而,如果您啟用了這種動態英數鍵盤佈局的話,請將當前畫面頂端的注音鍵盤佈局設為「微軟/大千……」,因為對諸如倚天等異種鍵盤的支援已經交給 macOS 系統來事先完成了。"; +"wQ9-px-b07.title" = "關於 macOS 內建螢幕模擬鍵盤支援:\n\n\t自 v1.3.2 版開始,威注音支援 macOS 內建的螢幕小鍵盤。該功能是藉由對「Apple 標準注音鍵盤佈局」與「Apple 倚天注音鍵盤佈局」這兩個動態英數鍵盤佈局來完成的。理論上來講,這兩個動態英數鍵盤佈局應該可以與所有語種的 Apple 物理鍵盤相容。如果有不相容的情況的話,macOS 內建的注音與倚天注音輸入法一定也會有相同的故障(可以藉由 Feedback Assistant.app 向 Apple 反饋這種鍵盤佈局問題)。然而,如果您啟用了這種動態英數鍵盤佈局的話,請將當前畫面頂端的注音鍵盤佈局設為「微軟/大千……」,因為對諸如倚天等異種鍵盤的支援已經交給 macOS 系統來事先完成了。\n\n\t另外:如果您在「英數鍵盤佈局」內選了所有以「vChewing」開頭的鍵盤配列的話,對應的「注音鍵盤佈局」也要選成相同的配列才可以。比如說前者選「vChewing Dachen」那後者就得選「微軟/大千……」、前者選「vChewing FakeSeigyou」那後者就得選「偽精業」,依此類推。"; /* Class = "NSTextFieldCell"; title = "Choose the behavior of (Shift+)Tab key in the candidate window."; ObjectID = "ueU-Rz-a1C"; */ "ueU-Rz-a1C.title" = "指定 (Shift+)Tab 熱鍵在選字窗內的輪替操作對象。"; From 7a4ffbea271743a31e01360e8837166a09f111d9 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 8 Mar 2022 10:59:19 +0800 Subject: [PATCH 70/72] Installer // Add PKG Installation Support. --- Installer/pkgPostInstall.sh | 3 + vChewing.pkgproj | 1188 +++++++++++++++++++++++++++++++++++ 2 files changed, 1191 insertions(+) create mode 100644 Installer/pkgPostInstall.sh create mode 100644 vChewing.pkgproj diff --git a/Installer/pkgPostInstall.sh b/Installer/pkgPostInstall.sh new file mode 100644 index 00000000..737f7c4a --- /dev/null +++ b/Installer/pkgPostInstall.sh @@ -0,0 +1,3 @@ +#!/bin/sh +killall vChewing +rm -rf ~/Library/Input\ Methods/vChewing.app diff --git a/vChewing.pkgproj b/vChewing.pkgproj new file mode 100644 index 00000000..8d355fef --- /dev/null +++ b/vChewing.pkgproj @@ -0,0 +1,1188 @@ + + + + + PACKAGES + + + MUST-CLOSE-APPLICATION-ITEMS + + MUST-CLOSE-APPLICATIONS + + PACKAGE_FILES + + DEFAULT_INSTALL_LOCATION + / + HIERARCHY + + CHILDREN + + + CHILDREN + + GID + 80 + PATH + Applications + PATH_TYPE + 0 + PERMISSIONS + 509 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + GID + 80 + PATH + Application Support + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + Automator + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + Documentation + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + Extensions + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + Filesystems + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + Frameworks + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + BUNDLE_CAN_DOWNGRADE + + BUNDLE_POSTINSTALL_PATH + + PATH_TYPE + 1 + + BUNDLE_PREINSTALL_PATH + + PATH_TYPE + 1 + + CHILDREN + + GID + 0 + PATH + Build/Products/Release/vChewing.app + PATH_TYPE + 1 + PERMISSIONS + 493 + TYPE + 3 + UID + 0 + + + GID + 0 + PATH + Input Methods + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + Internet Plug-Ins + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + GID + 0 + PATH + KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing Dachen.keylayout + PATH_TYPE + 1 + PERMISSIONS + 420 + TYPE + 3 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing ETen.keylayout + PATH_TYPE + 1 + PERMISSIONS + 420 + TYPE + 3 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing FakeSeigyou.keylayout + PATH_TYPE + 1 + PERMISSIONS + 420 + TYPE + 3 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing IBM.keylayout + PATH_TYPE + 1 + PERMISSIONS + 420 + TYPE + 3 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewing MiTAC.keylayout + PATH_TYPE + 1 + PERMISSIONS + 420 + TYPE + 3 + UID + 0 + + + BUNDLE_CAN_DOWNGRADE + + BUNDLE_POSTINSTALL_PATH + + PATH_TYPE + 1 + + BUNDLE_PREINSTALL_PATH + + PATH_TYPE + 1 + + CHILDREN + + GID + 0 + PATH + KeyboardExtension/vChewingKeyLayout.bundle + PATH_TYPE + 1 + PERMISSIONS + 493 + TYPE + 3 + UID + 0 + + + GID + 0 + PATH + Keyboard Layouts + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + LaunchAgents + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + LaunchDaemons + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + PreferencePanes + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + Preferences + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 80 + PATH + Printers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + PrivilegedHelperTools + PATH_TYPE + 0 + PERMISSIONS + 1005 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + QuickLook + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + QuickTime + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + Screen Savers + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + Scripts + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + Services + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + GID + 0 + PATH + Widgets + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + Library + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + CHILDREN + + + CHILDREN + + GID + 0 + PATH + Shared + PATH_TYPE + 0 + PERMISSIONS + 1023 + TYPE + 1 + UID + 0 + + + GID + 80 + PATH + Users + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + + GID + 0 + PATH + / + PATH_TYPE + 0 + PERMISSIONS + 493 + TYPE + 1 + UID + 0 + + PAYLOAD_TYPE + 0 + PRESERVE_EXTENDED_ATTRIBUTES + + SHOW_INVISIBLE + + SPLIT_FORKS + + TREAT_MISSING_FILES_AS_WARNING + + VERSION + 5 + + PACKAGE_SCRIPTS + + POSTINSTALL_PATH + + PATH_TYPE + 1 + + PREINSTALL_PATH + + PATH + Installer/pkgPostInstall.sh + PATH_TYPE + 1 + + RESOURCES + + + PACKAGE_SETTINGS + + AUTHENTICATION + 0 + CONCLUSION_ACTION + 0 + FOLLOW_SYMBOLIC_LINKS + + IDENTIFIER + org.atelierInmu.vChewing + LOCATION + 0 + NAME + vChewing + OVERWRITE_PERMISSIONS + + PAYLOAD_SIZE + -1 + REFERENCE_PATH + + RELOCATABLE + + USE_HFS+_COMPRESSION + + VERSION + 1.3.7 + + TYPE + 0 + UUID + 2D0C3907-5C56-430B-A525-65B19DB6B70A + + + PROJECT + + PROJECT_COMMENTS + + NOTES + + + + PROJECT_PRESENTATION + + BACKGROUND + + ALIGNMENT + 6 + APPAREANCES + + DARK_AQUA + + ALIGNMENT + 6 + BACKGROUND_PATH + + PATH + Source/Resources/Images/Images.xcassets/AppIcon.appiconset/128X128.png + PATH_TYPE + 1 + + CUSTOM + + LAYOUT_DIRECTION + 0 + SCALING + 2 + + LIGHT_AQUA + + ALIGNMENT + 6 + BACKGROUND_PATH + + PATH + Source/Resources/Images/Images.xcassets/AppIcon.appiconset/128X128.png + PATH_TYPE + 1 + + CUSTOM + + LAYOUT_DIRECTION + 0 + SCALING + 2 + + + BACKGROUND_PATH + + PATH + Source/Resources/Images/Images.xcassets/AppIcon.appiconset/128X128.png + PATH_TYPE + 1 + + CUSTOM + + LAYOUT_DIRECTION + 0 + SCALING + 2 + SHARED_SETTINGS_FOR_ALL_APPAREANCES + + + INSTALLATION TYPE + + HIERARCHIES + + INSTALLER + + LIST + + + CHILDREN + + DESCRIPTION + + OPTIONS + + HIDDEN + + STATE + 0 + + PACKAGE_UUID + 2D0C3907-5C56-430B-A525-65B19DB6B70A + TITLE + + + LANGUAGE + English + VALUE + vChewing Input Method + + + LANGUAGE + Simplified Chinese + VALUE + 威注音输入法 + + + LANGUAGE + Japanese + VALUE + 威注音入力アプリ + + + LANGUAGE + Traditional Chinese + VALUE + 威注音輸入法 + + + TYPE + 0 + UUID + 1DE7EA6D-01C2-4702-B0EC-A7ACACF623AE + + + REMOVED + + + + MODE + 1 + + INSTALLATION_STEPS + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewIntroductionController + INSTALLER_PLUGIN + Introduction + LIST_TITLE_KEY + InstallerSectionTitle + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewReadMeController + INSTALLER_PLUGIN + ReadMe + LIST_TITLE_KEY + InstallerSectionTitle + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewLicenseController + INSTALLER_PLUGIN + License + LIST_TITLE_KEY + InstallerSectionTitle + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewDestinationSelectController + INSTALLER_PLUGIN + TargetSelect + LIST_TITLE_KEY + InstallerSectionTitle + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewInstallationTypeController + INSTALLER_PLUGIN + PackageSelection + LIST_TITLE_KEY + InstallerSectionTitle + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewInstallationController + INSTALLER_PLUGIN + Install + LIST_TITLE_KEY + InstallerSectionTitle + + + ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS + ICPresentationViewSummaryController + INSTALLER_PLUGIN + Summary + LIST_TITLE_KEY + InstallerSectionTitle + + + INTRODUCTION + + LOCALIZATIONS + + + LICENSE + + LOCALIZATIONS + + + LANGUAGE + English + VALUE + + PATH + LICENSE.txt + PATH_TYPE + 1 + + + + LANGUAGE + Simplified Chinese + VALUE + + PATH + LICENSE-CHS.txt + PATH_TYPE + 1 + + + + LANGUAGE + Japanese + VALUE + + PATH + LICENSE-JPN.txt + PATH_TYPE + 1 + + + + LANGUAGE + Traditional Chinese + VALUE + + PATH + LICENSE-CHT.txt + PATH_TYPE + 1 + + + + MODE + 0 + + README + + LOCALIZATIONS + + + SUMMARY + + LOCALIZATIONS + + + TITLE + + LOCALIZATIONS + + + LANGUAGE + English + VALUE + vChewing Input Method + + + LANGUAGE + Traditional Chinese + VALUE + 威注音輸入法 + + + LANGUAGE + Japanese + VALUE + 威注音入力アプリ + + + LANGUAGE + Simplified Chinese + VALUE + 威注音输入法 + + + + + PROJECT_REQUIREMENTS + + LIST + + + BEHAVIOR + 3 + DICTIONARY + + IC_REQUIREMENT_OS_DISK_TYPE + 1 + IC_REQUIREMENT_OS_DISTRIBUTION_TYPE + 0 + IC_REQUIREMENT_OS_MINIMUM_VERSION + 101105 + + IC_REQUIREMENT_CHECK_TYPE + 0 + IDENTIFIER + fr.whitebox.Packages.requirement.os + MESSAGE + + + LANGUAGE + English + SECONDARY_VALUE + Requiring at least macOS 10.11.5 for Unicode Support. + VALUE + Minimum OS Version Not Met. + + + LANGUAGE + Traditional Chinese + SECONDARY_VALUE + 至少 macOS 10.11.5 方可滿足威注音對系統內的萬國碼版本支援的需要。 + VALUE + 作業系統版本太舊 + + + LANGUAGE + Japanese + SECONDARY_VALUE + Unicode バージョン依頼のため、macOS 10.11.5 以降が必要。 + VALUE + OSのバージョンは古すぎ + + + LANGUAGE + Simplified Chinese + SECONDARY_VALUE + 至少 macOS 10.11.5 方可满足威注音对系统内的万国码版本支援的需要。 + VALUE + 作业系统版本太旧 + + + NAME + Operating System + STATE + + + + RESOURCES + + ROOT_VOLUME_ONLY + + + PROJECT_SETTINGS + + ADVANCED_OPTIONS + + installer-script.domains:enable_currentUserHome + 1 + + BUILD_FORMAT + 0 + BUILD_PATH + + PATH + Build + PATH_TYPE + 1 + + EXCLUDED_FILES + + + PATTERNS_ARRAY + + + REGULAR_EXPRESSION + + STRING + .DS_Store + TYPE + 0 + + + PROTECTED + + PROXY_NAME + Remove .DS_Store files + PROXY_TOOLTIP + Remove ".DS_Store" files created by the Finder. + STATE + + + + PATTERNS_ARRAY + + + REGULAR_EXPRESSION + + STRING + .pbdevelopment + TYPE + 0 + + + PROTECTED + + PROXY_NAME + Remove .pbdevelopment files + PROXY_TOOLTIP + Remove ".pbdevelopment" files created by ProjectBuilder or Xcode. + STATE + + + + PATTERNS_ARRAY + + + REGULAR_EXPRESSION + + STRING + CVS + TYPE + 1 + + + REGULAR_EXPRESSION + + STRING + .cvsignore + TYPE + 0 + + + REGULAR_EXPRESSION + + STRING + .cvspass + TYPE + 0 + + + REGULAR_EXPRESSION + + STRING + .svn + TYPE + 1 + + + REGULAR_EXPRESSION + + STRING + .git + TYPE + 1 + + + REGULAR_EXPRESSION + + STRING + .gitignore + TYPE + 0 + + + PROTECTED + + PROXY_NAME + Remove SCM metadata + PROXY_TOOLTIP + Remove helper files and folders used by the CVS, SVN or Git Source Code Management systems. + STATE + + + + PATTERNS_ARRAY + + + REGULAR_EXPRESSION + + STRING + classes.nib + TYPE + 0 + + + REGULAR_EXPRESSION + + STRING + designable.db + TYPE + 0 + + + REGULAR_EXPRESSION + + STRING + info.nib + TYPE + 0 + + + PROTECTED + + PROXY_NAME + Optimize nib files + PROXY_TOOLTIP + Remove "classes.nib", "info.nib" and "designable.nib" files within .nib bundles. + STATE + + + + PATTERNS_ARRAY + + + REGULAR_EXPRESSION + + STRING + Resources Disabled + TYPE + 1 + + + PROTECTED + + PROXY_NAME + Remove Resources Disabled folders + PROXY_TOOLTIP + Remove "Resources Disabled" folders. + STATE + + + + SEPARATOR + + + + NAME + vChewing + PAYLOAD_ONLY + + TREAT_MISSING_PRESENTATION_DOCUMENTS_AS_WARNING + + + + TYPE + 0 + VERSION + 2 + + From e4a90731105b29e319dbd87b6a2c3544daedbefe Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 7 Mar 2022 10:02:21 +0800 Subject: [PATCH 71/72] Data Update - 20220308 --- Source/Data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Data b/Source/Data index 4d01ae8b..8090069b 160000 --- a/Source/Data +++ b/Source/Data @@ -1 +1 @@ -Subproject commit 4d01ae8b9bd650c4f501b3ef4f5294b7e217ef9a +Subproject commit 8090069bc5eefa2a58ade7dda1aaadb0d11855e9 From 51b32c0c277f04654c1f72eef8fb4b8991fb7cc2 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 8 Mar 2022 14:30:08 +0800 Subject: [PATCH 72/72] Bump version to 1.3.7 Build 1927. --- Update-Info.plist | 4 ++-- vChewing.xcodeproj/project.pbxproj | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Update-Info.plist b/Update-Info.plist index 40e16d4a..e4ade5b1 100644 --- a/Update-Info.plist +++ b/Update-Info.plist @@ -7,8 +7,8 @@ UpdateInfoSite https://gitee.com/vChewing/vChewing-macOS/releases CFBundleVersion - 1925 + 1927 CFBundleShortVersionString - 1.3.6 + 1.3.7 diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index 6fa6e630..7658f9d0 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -1205,7 +1205,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1925; + CURRENT_PROJECT_VERSION = 1926; DEBUG_INFORMATION_FORMAT = dwarf; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; @@ -1225,7 +1225,7 @@ INFOPLIST_KEY_NSPrincipalClass = NSApplication; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.3.6; + MARKETING_VERSION = 1.3.7; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor; @@ -1258,7 +1258,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1925; + CURRENT_PROJECT_VERSION = 1926; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -1273,7 +1273,7 @@ INFOPLIST_KEY_NSPrincipalClass = NSApplication; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.3.6; + MARKETING_VERSION = 1.3.7; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor; @@ -1388,7 +1388,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1925; + CURRENT_PROJECT_VERSION = 1926; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = ""; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -1420,7 +1420,7 @@ INFOPLIST_FILE = "Source/Resources/IME-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.3.6; + MARKETING_VERSION = 1.3.7; ONLY_ACTIVE_ARCH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1453,7 +1453,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1925; + CURRENT_PROJECT_VERSION = 1926; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = ""; @@ -1479,7 +1479,7 @@ INFOPLIST_FILE = "Source/Resources/IME-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.3.6; + MARKETING_VERSION = 1.3.7; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1562,7 +1562,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1925; + CURRENT_PROJECT_VERSION = 1927; DEVELOPMENT_TEAM = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; @@ -1584,7 +1584,7 @@ INFOPLIST_FILE = "Installer/Installer-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.3.6; + MARKETING_VERSION = 1.3.7; ONLY_ACTIVE_ARCH = YES; PRODUCT_BUNDLE_IDENTIFIER = "org.atelierInmu.vChewing.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1612,7 +1612,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1925; + CURRENT_PROJECT_VERSION = 1927; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -1628,7 +1628,7 @@ INFOPLIST_FILE = "Installer/Installer-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.3.6; + MARKETING_VERSION = 1.3.7; PRODUCT_BUNDLE_IDENTIFIER = "org.atelierInmu.vChewing.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "";