diff --git a/Installer/Resources/ja.lproj/MainMenu.strings b/Installer/Resources/ja.lproj/MainMenu.strings index 8f0c7545..03c967d2 100644 --- a/Installer/Resources/ja.lproj/MainMenu.strings +++ b/Installer/Resources/ja.lproj/MainMenu.strings @@ -57,7 +57,7 @@ "QYf-Nf-hoi.title" = "OpenVanilla 小麦注音プロジェクトから派生。"; /* Class = "NSTextFieldCell"; title = "McBopomofo Engine by Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, et al.\nvChewing macOS Development: Shiki Suen, Hiraku Wang, etc.\nvChewing Phrase Database Maintained by Shiki Suen."; ObjectID = "VW8-s5-Wpn"; */ -"VW8-s5-Wpn.title" = "小麦注音入力エンジン開発:Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, など。\nmacOS 版の開発:Shiki Suen, Hiraku Wang, など。\n威注音語彙データの維持:Shiki Suen。"; +"VW8-s5-Wpn.title" = "小麦注音入力エンジン開発:Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, など。\nmacOS 版威注音の開発:Shiki Suen, Hiraku Wang, など。\n威注音語彙データの維持:Shiki Suen。"; /* Class = "NSTextFieldCell"; title = "Placeholder for showing copyright information."; ObjectID = "eo3-TK-0rB"; */ "eo3-TK-0rB.title" = "Placeholder for showing copyright information."; diff --git a/Installer/pkgPostInstall.sh b/Installer/pkgPostInstall.sh new file mode 100644 index 00000000..9805eb5f --- /dev/null +++ b/Installer/pkgPostInstall.sh @@ -0,0 +1,2 @@ +#!/bin/sh +~/Library/Input\ Methods/vChewing.app/Contents/MacOS/vChewing install --all diff --git a/LICENSE-JPN.txt b/LICENSE-JPN.txt index 340b1f37..28ecbc4c 100644 --- a/LICENSE-JPN.txt +++ b/LICENSE-JPN.txt @@ -2,7 +2,7 @@ vChewing macOS: MIT商標不許可ライセンス (MIT-NTL License) © 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project. 小麦注音入力エンジン開発:Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, など。 -威注音 macOS 版の開発:Hiraku Wang, Shiki Suen, など。 +macOS 版威注音の開発:Hiraku Wang, Shiki Suen, など。 威注音語彙データの維持:Shiki Suen。 以下に定める条件に従い、本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、および/または販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。 diff --git a/README.md b/README.md index e09de7f3..e140742e 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ 威注音輸入法 macOS 版程式維護:Shiki Suen。特別感謝 Hiraku Wong 等人的技術協力。 -威注音詞庫由孫志貴維護,以 3-Clause BSD License 授權釋出。 +威注音詞庫由 Shiki Suen 維護,以 3-Clause BSD License 授權釋出。其中的詞頻數據[由 NAER 授權用於非商業用途](https://twitter.com/ShikiSuen/status/1479329302713831424)。 使用者可自由使用、散播本軟體,惟散播時必須完整保留版權聲明及軟體授權、且一旦經過修改便不可以再繼續使用威注音的產品名稱。 diff --git a/Source/Data b/Source/Data index 21e4163c..ed87f5b1 160000 --- a/Source/Data +++ b/Source/Data @@ -1 +1 @@ -Subproject commit 21e4163c6f6f5c9929c1dd5872d091f732f07836 +Subproject commit ed87f5b1edd762660051783770b88a38ab60ba75 diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index b7308d79..a723c532 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -594,13 +594,13 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; // still nothing, then we update the composing buffer (some app has // strange behavior if we don't do this, "thinking" the key is not - // actually consumed) - if ([state isKindOfClass:[InputStateNotEmpty class]] || !_bpmfReadingBuffer->isEmpty()) { - [IME prtDebugIntel:@"A9BFF20E"]; - errorCallback(); - stateCallback(state); - return YES; - } + // actually consumed) // 下面這幾行反而會製造問題,所以威注音禁用之。 +// if ([state isKindOfClass:[InputStateNotEmpty class]] || !_bpmfReadingBuffer->isEmpty()) { +// [IME prtDebugIntel:@"A9BFF20E"]; +// errorCallback(); +// stateCallback(state); +// return YES; +// } return NO; } diff --git a/Source/Modules/IMEModules/ctlInputMethod.swift b/Source/Modules/IMEModules/ctlInputMethod.swift index 7b7a11a3..31fdaa3f 100644 --- a/Source/Modules/IMEModules/ctlInputMethod.swift +++ b/Source/Modules/IMEModules/ctlInputMethod.swift @@ -188,26 +188,19 @@ class ctlInputMethod: IMKInputController { override func handle(_ event: NSEvent!, client: Any!) -> Bool { - if event.type == .flagsChanged { - let functionKeyKeyboardLayoutID = mgrPrefs.functionKeyboardLayout - let basisKeyboardLayoutID = mgrPrefs.basisKeyboardLayout - - if functionKeyKeyboardLayoutID == basisKeyboardLayoutID { - return false - } - + // 這裡不要判斷 flags 是否有 change,因為 InputMethodKit 有時就是會無法判斷。 + if mgrPrefs.functionKeyboardLayout != mgrPrefs.basisKeyboardLayout { let includeShift = mgrPrefs.functionKeyKeyboardLayoutOverrideIncludeShiftKey - - if event.modifierFlags.contains(.capsLock) || + if event.modifierFlags == .capsLock || + event.modifierFlags.contains(.command) || event.modifierFlags.contains(.option) || event.modifierFlags.contains(.control) || event.modifierFlags.contains(.function) || (event.modifierFlags.contains(.shift) && includeShift) { - (client as? IMKTextInput)?.overrideKeyboard(withKeyboardNamed: functionKeyKeyboardLayoutID) - return false + (client as? IMKTextInput)?.overrideKeyboard(withKeyboardNamed: mgrPrefs.functionKeyboardLayout) + } else { + (client as? IMKTextInput)?.overrideKeyboard(withKeyboardNamed: mgrPrefs.basisKeyboardLayout) } - (client as? IMKTextInput)?.overrideKeyboard(withKeyboardNamed: basisKeyboardLayoutID) - return false } var textFrame = NSRect.zero diff --git a/Source/UI/NotifierUI/NotifierController.swift b/Source/UI/NotifierUI/NotifierController.swift index bc9b7087..d4f83084 100644 --- a/Source/UI/NotifierUI/NotifierController.swift +++ b/Source/UI/NotifierUI/NotifierController.swift @@ -104,7 +104,6 @@ public class NotifierController: NSWindowController, NotifierWindowDelegate { let transparentVisualEffect = NSVisualEffectView() transparentVisualEffect.blendingMode = .behindWindow transparentVisualEffect.state = .active - transparentVisualEffect.material = .dark let panel = NotifierWindow(contentRect: windowRect, styleMask: styleMask, backing: .buffered, defer: false) panel.contentView = transparentVisualEffect diff --git a/Source/WindowNIBs/Base.lproj/MainMenu.xib b/Source/WindowNIBs/Base.lproj/MainMenu.xib index 2c5e937c..986e78cd 100644 --- a/Source/WindowNIBs/Base.lproj/MainMenu.xib +++ b/Source/WindowNIBs/Base.lproj/MainMenu.xib @@ -1,8 +1,8 @@ - + - + @@ -37,10 +37,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/WindowNIBs/ja.lproj/frmAboutWindow.strings b/Source/WindowNIBs/ja.lproj/frmAboutWindow.strings index 71ab1f3c..534e0993 100644 --- a/Source/WindowNIBs/ja.lproj/frmAboutWindow.strings +++ b/Source/WindowNIBs/ja.lproj/frmAboutWindow.strings @@ -24,4 +24,4 @@ // "lblCopyright.title" = "© 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project."; /* Class = "NSTextFieldCell"; title = "McBopomofo Engine by Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, et al.\nvChewing macOS Development: Shiki Suen, Hiraku Wang, etc.\nvChewing Phrase Database Maintained by Shiki Suen."; ObjectID = "lblCredits"; */ -"lblCredits.title" = "小麦注音入力エンジン開発:Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, など。\nmacOS 版の開発:Shiki Suen, Hiraku Wang, など。\n威注音語彙データの維持:Shiki Suen。"; +"lblCredits.title" = "小麦注音入力エンジン開発:Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, など。\nmacOS 版威注音の開発:Shiki Suen, Hiraku Wang, など。\n威注音語彙データの維持:Shiki Suen。"; diff --git a/Source/WindowNIBs/zh-Hans.lproj/frmAboutWindow.strings b/Source/WindowNIBs/zh-Hans.lproj/frmAboutWindow.strings index 3657c6b6..0529c644 100644 --- a/Source/WindowNIBs/zh-Hans.lproj/frmAboutWindow.strings +++ b/Source/WindowNIBs/zh-Hans.lproj/frmAboutWindow.strings @@ -24,4 +24,4 @@ // "lblCopyright.title" = "© 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project."; /* Class = "NSTextFieldCell"; title = "McBopomofo Engine by Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, et al.\nvChewing macOS Development: Shiki Suen, Hiraku Wang, etc.\nvChewing Phrase Database Maintained by Shiki Suen."; ObjectID = "lblCredits"; */ -"VW8-s5-Wpn.title" = "小麦注音引擎研发:Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, 等。\n威注音 macOS 程式研发:Shiki Suen, Hiraku Wang, 等。\n威注音词库维护:Shiki Suen。"; +"lblCredits.title" = "小麦注音引擎研发:Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, 等。\n威注音 macOS 程式研发:Shiki Suen, Hiraku Wang, 等。\n威注音词库维护:Shiki Suen。"; diff --git a/Source/WindowNIBs/zh-Hant.lproj/frmAboutWindow.strings b/Source/WindowNIBs/zh-Hant.lproj/frmAboutWindow.strings index fd892d88..665ae1ba 100644 --- a/Source/WindowNIBs/zh-Hant.lproj/frmAboutWindow.strings +++ b/Source/WindowNIBs/zh-Hant.lproj/frmAboutWindow.strings @@ -24,4 +24,4 @@ // "lblCopyright.title" = "© 2011-2022 OpenVanilla Project & © 2021-2022 vChewing Project."; /* Class = "NSTextFieldCell"; title = "McBopomofo Engine by Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, et al.\nvChewing macOS Development: Shiki Suen, Hiraku Wang, etc.\nvChewing Phrase Database Maintained by Shiki Suen."; ObjectID = "lblCredits"; */ -"VW8-s5-Wpn.title" = "小麥注音引擎研發:Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, 等。\n威注音 macOS 程式研發:Shiki Suen, Hiraku Wang, 等。\n威注音詞庫維護:Shiki Suen。"; +"lblCredits.title" = "小麥注音引擎研發:Mengjuei Hsieh, Lukhnos Liu, Zonble Yang, 等。\n威注音 macOS 程式研發:Shiki Suen, Hiraku Wang, 等。\n威注音詞庫維護:Shiki Suen。"; diff --git a/Update-Info.plist b/Update-Info.plist index 802055ed..9607906b 100644 --- a/Update-Info.plist +++ b/Update-Info.plist @@ -7,8 +7,8 @@ UpdateInfoSite https://gitee.com/vChewing/vChewing-macOS/releases CFBundleVersion - 1940 + 1941 CFBundleShortVersionString - 1.4.0 + 1.4.1 diff --git a/UserPhraseEditor/StringExtension.swift b/UserPhraseEditor/StringExtension.swift index e2f149fa..08b1db62 100644 --- a/UserPhraseEditor/StringExtension.swift +++ b/UserPhraseEditor/StringExtension.swift @@ -27,6 +27,9 @@ extension String { self = regex.stringByReplacingMatches(in: self, options: [], range: range, withTemplate: replaceWith) } catch { return } } + mutating func selfReplace(_ strOf: String, _ strWith: String = "") { + self = self.replacingOccurrences(of: strOf, with: strWith) + } mutating func formatConsolidate(HYPY2BPMF: Bool) { // Step 1: Consolidating formats per line. var strProcessed = self @@ -55,435 +58,435 @@ extension String { // 漢語拼音轉注音,得先從最長的可能的拼音組合開始轉起, // 這樣等轉換到更短的可能的漢語拼音組合時就不會出錯。 // 依此類推,聲調放在最後來轉換。 - varLineData.regReplace(pattern: "chuang", replaceWith: "ㄔㄨㄤ") - varLineData.regReplace(pattern: "shuang", replaceWith: "ㄕㄨㄤ") - varLineData.regReplace(pattern: "zhuang", replaceWith: "ㄓㄨㄤ") - varLineData.regReplace(pattern: "chang", replaceWith: "ㄔㄤ") - varLineData.regReplace(pattern: "cheng", replaceWith: "ㄔㄥ") - varLineData.regReplace(pattern: "chong", replaceWith: "ㄔㄨㄥ") - varLineData.regReplace(pattern: "chuai", replaceWith: "ㄔㄨㄞ") - varLineData.regReplace(pattern: "chuan", replaceWith: "ㄔㄨㄢ") - varLineData.regReplace(pattern: "guang", replaceWith: "ㄍㄨㄤ") - varLineData.regReplace(pattern: "huang", replaceWith: "ㄏㄨㄤ") - varLineData.regReplace(pattern: "jiang", replaceWith: "ㄐㄧㄤ") - varLineData.regReplace(pattern: "jiong", replaceWith: "ㄐㄩㄥ") - varLineData.regReplace(pattern: "kuang", replaceWith: "ㄎㄨㄤ") - varLineData.regReplace(pattern: "liang", replaceWith: "ㄌㄧㄤ") - varLineData.regReplace(pattern: "niang", replaceWith: "ㄋㄧㄤ") - varLineData.regReplace(pattern: "qiang", replaceWith: "ㄑㄧㄤ") - varLineData.regReplace(pattern: "qiong", replaceWith: "ㄑㄩㄥ") - varLineData.regReplace(pattern: "shang", replaceWith: "ㄕㄤ") - varLineData.regReplace(pattern: "sheng", replaceWith: "ㄕㄥ") - varLineData.regReplace(pattern: "shuai", replaceWith: "ㄕㄨㄞ") - varLineData.regReplace(pattern: "shuan", replaceWith: "ㄕㄨㄢ") - varLineData.regReplace(pattern: "xiang", replaceWith: "ㄒㄧㄤ") - varLineData.regReplace(pattern: "xiong", replaceWith: "ㄒㄩㄥ") - varLineData.regReplace(pattern: "zhang", replaceWith: "ㄓㄤ") - varLineData.regReplace(pattern: "zheng", replaceWith: "ㄓㄥ") - varLineData.regReplace(pattern: "zhong", replaceWith: "ㄓㄨㄥ") - varLineData.regReplace(pattern: "zhuai", replaceWith: "ㄓㄨㄞ") - varLineData.regReplace(pattern: "zhuan", replaceWith: "ㄓㄨㄢ") - varLineData.regReplace(pattern: "bang", replaceWith: "ㄅㄤ") - varLineData.regReplace(pattern: "beng", replaceWith: "ㄅㄥ") - varLineData.regReplace(pattern: "bian", replaceWith: "ㄅㄧㄢ") - varLineData.regReplace(pattern: "biao", replaceWith: "ㄅㄧㄠ") - varLineData.regReplace(pattern: "bing", replaceWith: "ㄅㄧㄥ") - varLineData.regReplace(pattern: "cang", replaceWith: "ㄘㄤ") - varLineData.regReplace(pattern: "ceng", replaceWith: "ㄘㄥ") - varLineData.regReplace(pattern: "chai", replaceWith: "ㄔㄞ") - varLineData.regReplace(pattern: "chan", replaceWith: "ㄔㄢ") - varLineData.regReplace(pattern: "chao", replaceWith: "ㄔㄠ") - varLineData.regReplace(pattern: "chen", replaceWith: "ㄔㄣ") - varLineData.regReplace(pattern: "chou", replaceWith: "ㄔㄡ") - varLineData.regReplace(pattern: "chua", replaceWith: "ㄔㄨㄚ") - varLineData.regReplace(pattern: "chui", replaceWith: "ㄔㄨㄟ") - varLineData.regReplace(pattern: "chun", replaceWith: "ㄔㄨㄣ") - varLineData.regReplace(pattern: "chuo", replaceWith: "ㄔㄨㄛ") - varLineData.regReplace(pattern: "cong", replaceWith: "ㄘㄨㄥ") - varLineData.regReplace(pattern: "cuan", replaceWith: "ㄘㄨㄢ") - varLineData.regReplace(pattern: "dang", replaceWith: "ㄉㄤ") - varLineData.regReplace(pattern: "deng", replaceWith: "ㄉㄥ") - varLineData.regReplace(pattern: "dian", replaceWith: "ㄉㄧㄢ") - varLineData.regReplace(pattern: "diao", replaceWith: "ㄉㄧㄠ") - varLineData.regReplace(pattern: "ding", replaceWith: "ㄉㄧㄥ") - varLineData.regReplace(pattern: "dong", replaceWith: "ㄉㄨㄥ") - varLineData.regReplace(pattern: "duan", replaceWith: "ㄉㄨㄢ") - varLineData.regReplace(pattern: "fang", replaceWith: "ㄈㄤ") - varLineData.regReplace(pattern: "feng", replaceWith: "ㄈㄥ") - varLineData.regReplace(pattern: "fiao", replaceWith: "ㄈㄧㄠ") - varLineData.regReplace(pattern: "fong", replaceWith: "ㄈㄨㄥ") - varLineData.regReplace(pattern: "gang", replaceWith: "ㄍㄤ") - varLineData.regReplace(pattern: "geng", replaceWith: "ㄍㄥ") - varLineData.regReplace(pattern: "giao", replaceWith: "ㄍㄧㄠ") - varLineData.regReplace(pattern: "gong", replaceWith: "ㄍㄨㄥ") - varLineData.regReplace(pattern: "guai", replaceWith: "ㄍㄨㄞ") - varLineData.regReplace(pattern: "guan", replaceWith: "ㄍㄨㄢ") - varLineData.regReplace(pattern: "hang", replaceWith: "ㄏㄤ") - varLineData.regReplace(pattern: "heng", replaceWith: "ㄏㄥ") - varLineData.regReplace(pattern: "hong", replaceWith: "ㄏㄨㄥ") - varLineData.regReplace(pattern: "huai", replaceWith: "ㄏㄨㄞ") - varLineData.regReplace(pattern: "huan", replaceWith: "ㄏㄨㄢ") - varLineData.regReplace(pattern: "jian", replaceWith: "ㄐㄧㄢ") - varLineData.regReplace(pattern: "jiao", replaceWith: "ㄐㄧㄠ") - varLineData.regReplace(pattern: "jing", replaceWith: "ㄐㄧㄥ") - varLineData.regReplace(pattern: "juan", replaceWith: "ㄐㄩㄢ") - varLineData.regReplace(pattern: "kang", replaceWith: "ㄎㄤ") - varLineData.regReplace(pattern: "keng", replaceWith: "ㄎㄥ") - varLineData.regReplace(pattern: "kong", replaceWith: "ㄎㄨㄥ") - varLineData.regReplace(pattern: "kuai", replaceWith: "ㄎㄨㄞ") - varLineData.regReplace(pattern: "kuan", replaceWith: "ㄎㄨㄢ") - varLineData.regReplace(pattern: "lang", replaceWith: "ㄌㄤ") - varLineData.regReplace(pattern: "leng", replaceWith: "ㄌㄥ") - varLineData.regReplace(pattern: "lian", replaceWith: "ㄌㄧㄢ") - varLineData.regReplace(pattern: "liao", replaceWith: "ㄌㄧㄠ") - varLineData.regReplace(pattern: "ling", replaceWith: "ㄌㄧㄥ") - varLineData.regReplace(pattern: "long", replaceWith: "ㄌㄨㄥ") - varLineData.regReplace(pattern: "luan", replaceWith: "ㄌㄨㄢ") - varLineData.regReplace(pattern: "lvan", replaceWith: "ㄌㄩㄢ") - varLineData.regReplace(pattern: "mang", replaceWith: "ㄇㄤ") - varLineData.regReplace(pattern: "meng", replaceWith: "ㄇㄥ") - varLineData.regReplace(pattern: "mian", replaceWith: "ㄇㄧㄢ") - varLineData.regReplace(pattern: "miao", replaceWith: "ㄇㄧㄠ") - varLineData.regReplace(pattern: "ming", replaceWith: "ㄇㄧㄥ") - varLineData.regReplace(pattern: "nang", replaceWith: "ㄋㄤ") - varLineData.regReplace(pattern: "neng", replaceWith: "ㄋㄥ") - varLineData.regReplace(pattern: "nian", replaceWith: "ㄋㄧㄢ") - varLineData.regReplace(pattern: "niao", replaceWith: "ㄋㄧㄠ") - varLineData.regReplace(pattern: "ning", replaceWith: "ㄋㄧㄥ") - varLineData.regReplace(pattern: "nong", replaceWith: "ㄋㄨㄥ") - varLineData.regReplace(pattern: "nuan", replaceWith: "ㄋㄨㄢ") - varLineData.regReplace(pattern: "pang", replaceWith: "ㄆㄤ") - varLineData.regReplace(pattern: "peng", replaceWith: "ㄆㄥ") - varLineData.regReplace(pattern: "pian", replaceWith: "ㄆㄧㄢ") - varLineData.regReplace(pattern: "piao", replaceWith: "ㄆㄧㄠ") - varLineData.regReplace(pattern: "ping", replaceWith: "ㄆㄧㄥ") - varLineData.regReplace(pattern: "qian", replaceWith: "ㄑㄧㄢ") - varLineData.regReplace(pattern: "qiao", replaceWith: "ㄑㄧㄠ") - varLineData.regReplace(pattern: "qing", replaceWith: "ㄑㄧㄥ") - varLineData.regReplace(pattern: "quan", replaceWith: "ㄑㄩㄢ") - varLineData.regReplace(pattern: "rang", replaceWith: "ㄖㄤ") - varLineData.regReplace(pattern: "reng", replaceWith: "ㄖㄥ") - varLineData.regReplace(pattern: "rong", replaceWith: "ㄖㄨㄥ") - varLineData.regReplace(pattern: "ruan", replaceWith: "ㄖㄨㄢ") - varLineData.regReplace(pattern: "sang", replaceWith: "ㄙㄤ") - varLineData.regReplace(pattern: "seng", replaceWith: "ㄙㄥ") - varLineData.regReplace(pattern: "shai", replaceWith: "ㄕㄞ") - varLineData.regReplace(pattern: "shan", replaceWith: "ㄕㄢ") - varLineData.regReplace(pattern: "shao", replaceWith: "ㄕㄠ") - varLineData.regReplace(pattern: "shei", replaceWith: "ㄕㄟ") - varLineData.regReplace(pattern: "shen", replaceWith: "ㄕㄣ") - varLineData.regReplace(pattern: "shou", replaceWith: "ㄕㄡ") - varLineData.regReplace(pattern: "shua", replaceWith: "ㄕㄨㄚ") - varLineData.regReplace(pattern: "shui", replaceWith: "ㄕㄨㄟ") - varLineData.regReplace(pattern: "shun", replaceWith: "ㄕㄨㄣ") - varLineData.regReplace(pattern: "shuo", replaceWith: "ㄕㄨㄛ") - varLineData.regReplace(pattern: "song", replaceWith: "ㄙㄨㄥ") - varLineData.regReplace(pattern: "suan", replaceWith: "ㄙㄨㄢ") - varLineData.regReplace(pattern: "tang", replaceWith: "ㄊㄤ") - varLineData.regReplace(pattern: "teng", replaceWith: "ㄊㄥ") - varLineData.regReplace(pattern: "tian", replaceWith: "ㄊㄧㄢ") - varLineData.regReplace(pattern: "tiao", replaceWith: "ㄊㄧㄠ") - varLineData.regReplace(pattern: "ting", replaceWith: "ㄊㄧㄥ") - varLineData.regReplace(pattern: "tong", replaceWith: "ㄊㄨㄥ") - varLineData.regReplace(pattern: "tuan", replaceWith: "ㄊㄨㄢ") - varLineData.regReplace(pattern: "wang", replaceWith: "ㄨㄤ") - varLineData.regReplace(pattern: "weng", replaceWith: "ㄨㄥ") - varLineData.regReplace(pattern: "xian", replaceWith: "ㄒㄧㄢ") - varLineData.regReplace(pattern: "xiao", replaceWith: "ㄒㄧㄠ") - varLineData.regReplace(pattern: "xing", replaceWith: "ㄒㄧㄥ") - varLineData.regReplace(pattern: "xuan", replaceWith: "ㄒㄩㄢ") - varLineData.regReplace(pattern: "yang", replaceWith: "ㄧㄤ") - varLineData.regReplace(pattern: "ying", replaceWith: "ㄧㄥ") - varLineData.regReplace(pattern: "yong", replaceWith: "ㄩㄥ") - varLineData.regReplace(pattern: "yuan", replaceWith: "ㄩㄢ") - varLineData.regReplace(pattern: "zang", replaceWith: "ㄗㄤ") - varLineData.regReplace(pattern: "zeng", replaceWith: "ㄗㄥ") - varLineData.regReplace(pattern: "zhai", replaceWith: "ㄓㄞ") - varLineData.regReplace(pattern: "zhan", replaceWith: "ㄓㄢ") - varLineData.regReplace(pattern: "zhao", replaceWith: "ㄓㄠ") - varLineData.regReplace(pattern: "zhei", replaceWith: "ㄓㄟ") - varLineData.regReplace(pattern: "zhen", replaceWith: "ㄓㄣ") - varLineData.regReplace(pattern: "zhou", replaceWith: "ㄓㄡ") - varLineData.regReplace(pattern: "zhua", replaceWith: "ㄓㄨㄚ") - varLineData.regReplace(pattern: "zhui", replaceWith: "ㄓㄨㄟ") - varLineData.regReplace(pattern: "zhun", replaceWith: "ㄓㄨㄣ") - varLineData.regReplace(pattern: "zhuo", replaceWith: "ㄓㄨㄛ") - varLineData.regReplace(pattern: "zong", replaceWith: "ㄗㄨㄥ") - varLineData.regReplace(pattern: "zuan", replaceWith: "ㄗㄨㄢ") - varLineData.regReplace(pattern: "jun", replaceWith: "ㄐㄩㄣ") - varLineData.regReplace(pattern: "ang", replaceWith: "ㄤ") - varLineData.regReplace(pattern: "bai", replaceWith: "ㄅㄞ") - varLineData.regReplace(pattern: "ban", replaceWith: "ㄅㄢ") - varLineData.regReplace(pattern: "bao", replaceWith: "ㄅㄠ") - varLineData.regReplace(pattern: "bei", replaceWith: "ㄅㄟ") - varLineData.regReplace(pattern: "ben", replaceWith: "ㄅㄣ") - varLineData.regReplace(pattern: "bie", replaceWith: "ㄅㄧㄝ") - varLineData.regReplace(pattern: "bin", replaceWith: "ㄅㄧㄣ") - varLineData.regReplace(pattern: "cai", replaceWith: "ㄘㄞ") - varLineData.regReplace(pattern: "can", replaceWith: "ㄘㄢ") - varLineData.regReplace(pattern: "cao", replaceWith: "ㄘㄠ") - varLineData.regReplace(pattern: "cei", replaceWith: "ㄘㄟ") - varLineData.regReplace(pattern: "cen", replaceWith: "ㄘㄣ") - varLineData.regReplace(pattern: "cha", replaceWith: "ㄔㄚ") - varLineData.regReplace(pattern: "che", replaceWith: "ㄔㄜ") - varLineData.regReplace(pattern: "chi", replaceWith: "ㄔ") - varLineData.regReplace(pattern: "chu", replaceWith: "ㄔㄨ") - varLineData.regReplace(pattern: "cou", replaceWith: "ㄘㄡ") - varLineData.regReplace(pattern: "cui", replaceWith: "ㄘㄨㄟ") - varLineData.regReplace(pattern: "cun", replaceWith: "ㄘㄨㄣ") - varLineData.regReplace(pattern: "cuo", replaceWith: "ㄘㄨㄛ") - varLineData.regReplace(pattern: "dai", replaceWith: "ㄉㄞ") - varLineData.regReplace(pattern: "dan", replaceWith: "ㄉㄢ") - varLineData.regReplace(pattern: "dao", replaceWith: "ㄉㄠ") - varLineData.regReplace(pattern: "dei", replaceWith: "ㄉㄟ") - varLineData.regReplace(pattern: "den", replaceWith: "ㄉㄣ") - varLineData.regReplace(pattern: "dia", replaceWith: "ㄉㄧㄚ") - varLineData.regReplace(pattern: "die", replaceWith: "ㄉㄧㄝ") - varLineData.regReplace(pattern: "diu", replaceWith: "ㄉㄧㄡ") - varLineData.regReplace(pattern: "dou", replaceWith: "ㄉㄡ") - varLineData.regReplace(pattern: "dui", replaceWith: "ㄉㄨㄟ") - varLineData.regReplace(pattern: "dun", replaceWith: "ㄉㄨㄣ") - varLineData.regReplace(pattern: "duo", replaceWith: "ㄉㄨㄛ") - varLineData.regReplace(pattern: "eng", replaceWith: "ㄥ") - varLineData.regReplace(pattern: "fan", replaceWith: "ㄈㄢ") - varLineData.regReplace(pattern: "fei", replaceWith: "ㄈㄟ") - varLineData.regReplace(pattern: "fen", replaceWith: "ㄈㄣ") - varLineData.regReplace(pattern: "fou", replaceWith: "ㄈㄡ") - varLineData.regReplace(pattern: "gai", replaceWith: "ㄍㄞ") - varLineData.regReplace(pattern: "gan", replaceWith: "ㄍㄢ") - varLineData.regReplace(pattern: "gao", replaceWith: "ㄍㄠ") - varLineData.regReplace(pattern: "gei", replaceWith: "ㄍㄟ") - varLineData.regReplace(pattern: "gin", replaceWith: "ㄍㄧㄣ") - varLineData.regReplace(pattern: "gen", replaceWith: "ㄍㄣ") - varLineData.regReplace(pattern: "gou", replaceWith: "ㄍㄡ") - varLineData.regReplace(pattern: "gua", replaceWith: "ㄍㄨㄚ") - varLineData.regReplace(pattern: "gue", replaceWith: "ㄍㄨㄜ") - varLineData.regReplace(pattern: "gui", replaceWith: "ㄍㄨㄟ") - varLineData.regReplace(pattern: "gun", replaceWith: "ㄍㄨㄣ") - varLineData.regReplace(pattern: "guo", replaceWith: "ㄍㄨㄛ") - varLineData.regReplace(pattern: "hai", replaceWith: "ㄏㄞ") - varLineData.regReplace(pattern: "han", replaceWith: "ㄏㄢ") - varLineData.regReplace(pattern: "hao", replaceWith: "ㄏㄠ") - varLineData.regReplace(pattern: "hei", replaceWith: "ㄏㄟ") - varLineData.regReplace(pattern: "hen", replaceWith: "ㄏㄣ") - varLineData.regReplace(pattern: "hou", replaceWith: "ㄏㄡ") - varLineData.regReplace(pattern: "hua", replaceWith: "ㄏㄨㄚ") - varLineData.regReplace(pattern: "hui", replaceWith: "ㄏㄨㄟ") - varLineData.regReplace(pattern: "hun", replaceWith: "ㄏㄨㄣ") - varLineData.regReplace(pattern: "huo", replaceWith: "ㄏㄨㄛ") - varLineData.regReplace(pattern: "jia", replaceWith: "ㄐㄧㄚ") - varLineData.regReplace(pattern: "jie", replaceWith: "ㄐㄧㄝ") - varLineData.regReplace(pattern: "jin", replaceWith: "ㄐㄧㄣ") - varLineData.regReplace(pattern: "jiu", replaceWith: "ㄐㄧㄡ") - varLineData.regReplace(pattern: "jue", replaceWith: "ㄐㄩㄝ") - varLineData.regReplace(pattern: "kai", replaceWith: "ㄎㄞ") - varLineData.regReplace(pattern: "kan", replaceWith: "ㄎㄢ") - varLineData.regReplace(pattern: "kao", replaceWith: "ㄎㄠ") - varLineData.regReplace(pattern: "ken", replaceWith: "ㄎㄣ") - varLineData.regReplace(pattern: "kiu", replaceWith: "ㄎㄧㄡ") - varLineData.regReplace(pattern: "kou", replaceWith: "ㄎㄡ") - varLineData.regReplace(pattern: "kua", replaceWith: "ㄎㄨㄚ") - varLineData.regReplace(pattern: "kui", replaceWith: "ㄎㄨㄟ") - varLineData.regReplace(pattern: "kun", replaceWith: "ㄎㄨㄣ") - varLineData.regReplace(pattern: "kuo", replaceWith: "ㄎㄨㄛ") - varLineData.regReplace(pattern: "lai", replaceWith: "ㄌㄞ") - varLineData.regReplace(pattern: "lan", replaceWith: "ㄌㄢ") - varLineData.regReplace(pattern: "lao", replaceWith: "ㄌㄠ") - varLineData.regReplace(pattern: "lei", replaceWith: "ㄌㄟ") - varLineData.regReplace(pattern: "lia", replaceWith: "ㄌㄧㄚ") - varLineData.regReplace(pattern: "lie", replaceWith: "ㄌㄧㄝ") - varLineData.regReplace(pattern: "lin", replaceWith: "ㄌㄧㄣ") - varLineData.regReplace(pattern: "liu", replaceWith: "ㄌㄧㄡ") - varLineData.regReplace(pattern: "lou", replaceWith: "ㄌㄡ") - varLineData.regReplace(pattern: "lun", replaceWith: "ㄌㄨㄣ") - varLineData.regReplace(pattern: "luo", replaceWith: "ㄌㄨㄛ") - varLineData.regReplace(pattern: "lve", replaceWith: "ㄌㄩㄝ") - varLineData.regReplace(pattern: "mai", replaceWith: "ㄇㄞ") - varLineData.regReplace(pattern: "man", replaceWith: "ㄇㄢ") - varLineData.regReplace(pattern: "mao", replaceWith: "ㄇㄠ") - varLineData.regReplace(pattern: "mei", replaceWith: "ㄇㄟ") - varLineData.regReplace(pattern: "men", replaceWith: "ㄇㄣ") - varLineData.regReplace(pattern: "mie", replaceWith: "ㄇㄧㄝ") - varLineData.regReplace(pattern: "min", replaceWith: "ㄇㄧㄣ") - varLineData.regReplace(pattern: "miu", replaceWith: "ㄇㄧㄡ") - varLineData.regReplace(pattern: "mou", replaceWith: "ㄇㄡ") - varLineData.regReplace(pattern: "nai", replaceWith: "ㄋㄞ") - varLineData.regReplace(pattern: "nan", replaceWith: "ㄋㄢ") - varLineData.regReplace(pattern: "nao", replaceWith: "ㄋㄠ") - varLineData.regReplace(pattern: "nei", replaceWith: "ㄋㄟ") - varLineData.regReplace(pattern: "nen", replaceWith: "ㄋㄣ") - varLineData.regReplace(pattern: "nie", replaceWith: "ㄋㄧㄝ") - varLineData.regReplace(pattern: "nin", replaceWith: "ㄋㄧㄣ") - varLineData.regReplace(pattern: "niu", replaceWith: "ㄋㄧㄡ") - varLineData.regReplace(pattern: "nou", replaceWith: "ㄋㄡ") - varLineData.regReplace(pattern: "nui", replaceWith: "ㄋㄨㄟ") - varLineData.regReplace(pattern: "nun", replaceWith: "ㄋㄨㄣ") - varLineData.regReplace(pattern: "nuo", replaceWith: "ㄋㄨㄛ") - varLineData.regReplace(pattern: "nve", replaceWith: "ㄋㄩㄝ") - varLineData.regReplace(pattern: "pai", replaceWith: "ㄆㄞ") - varLineData.regReplace(pattern: "pan", replaceWith: "ㄆㄢ") - varLineData.regReplace(pattern: "pao", replaceWith: "ㄆㄠ") - varLineData.regReplace(pattern: "pei", replaceWith: "ㄆㄟ") - varLineData.regReplace(pattern: "pen", replaceWith: "ㄆㄣ") - varLineData.regReplace(pattern: "pia", replaceWith: "ㄆㄧㄚ") - varLineData.regReplace(pattern: "pie", replaceWith: "ㄆㄧㄝ") - varLineData.regReplace(pattern: "pin", replaceWith: "ㄆㄧㄣ") - varLineData.regReplace(pattern: "pou", replaceWith: "ㄆㄡ") - varLineData.regReplace(pattern: "qia", replaceWith: "ㄑㄧㄚ") - varLineData.regReplace(pattern: "qie", replaceWith: "ㄑㄧㄝ") - varLineData.regReplace(pattern: "qin", replaceWith: "ㄑㄧㄣ") - varLineData.regReplace(pattern: "qiu", replaceWith: "ㄑㄧㄡ") - varLineData.regReplace(pattern: "que", replaceWith: "ㄑㄩㄝ") - varLineData.regReplace(pattern: "qun", replaceWith: "ㄑㄩㄣ") - varLineData.regReplace(pattern: "ran", replaceWith: "ㄖㄢ") - varLineData.regReplace(pattern: "rao", replaceWith: "ㄖㄠ") - varLineData.regReplace(pattern: "ren", replaceWith: "ㄖㄣ") - varLineData.regReplace(pattern: "rou", replaceWith: "ㄖㄡ") - varLineData.regReplace(pattern: "rui", replaceWith: "ㄖㄨㄟ") - varLineData.regReplace(pattern: "run", replaceWith: "ㄖㄨㄣ") - varLineData.regReplace(pattern: "ruo", replaceWith: "ㄖㄨㄛ") - varLineData.regReplace(pattern: "sai", replaceWith: "ㄙㄞ") - varLineData.regReplace(pattern: "san", replaceWith: "ㄙㄢ") - varLineData.regReplace(pattern: "sao", replaceWith: "ㄙㄠ") - varLineData.regReplace(pattern: "sei", replaceWith: "ㄙㄟ") - varLineData.regReplace(pattern: "sen", replaceWith: "ㄙㄣ") - varLineData.regReplace(pattern: "sha", replaceWith: "ㄕㄚ") - varLineData.regReplace(pattern: "she", replaceWith: "ㄕㄜ") - varLineData.regReplace(pattern: "shi", replaceWith: "ㄕ") - varLineData.regReplace(pattern: "shu", replaceWith: "ㄕㄨ") - varLineData.regReplace(pattern: "sou", replaceWith: "ㄙㄡ") - varLineData.regReplace(pattern: "sui", replaceWith: "ㄙㄨㄟ") - varLineData.regReplace(pattern: "sun", replaceWith: "ㄙㄨㄣ") - varLineData.regReplace(pattern: "suo", replaceWith: "ㄙㄨㄛ") - varLineData.regReplace(pattern: "tai", replaceWith: "ㄊㄞ") - varLineData.regReplace(pattern: "tan", replaceWith: "ㄊㄢ") - varLineData.regReplace(pattern: "tao", replaceWith: "ㄊㄠ") - varLineData.regReplace(pattern: "tie", replaceWith: "ㄊㄧㄝ") - varLineData.regReplace(pattern: "tou", replaceWith: "ㄊㄡ") - varLineData.regReplace(pattern: "tui", replaceWith: "ㄊㄨㄟ") - varLineData.regReplace(pattern: "tun", replaceWith: "ㄊㄨㄣ") - varLineData.regReplace(pattern: "tuo", replaceWith: "ㄊㄨㄛ") - varLineData.regReplace(pattern: "wai", replaceWith: "ㄨㄞ") - varLineData.regReplace(pattern: "wan", replaceWith: "ㄨㄢ") - varLineData.regReplace(pattern: "wei", replaceWith: "ㄨㄟ") - varLineData.regReplace(pattern: "wen", replaceWith: "ㄨㄣ") - varLineData.regReplace(pattern: "xia", replaceWith: "ㄒㄧㄚ") - varLineData.regReplace(pattern: "xie", replaceWith: "ㄒㄧㄝ") - varLineData.regReplace(pattern: "xin", replaceWith: "ㄒㄧㄣ") - varLineData.regReplace(pattern: "xiu", replaceWith: "ㄒㄧㄡ") - varLineData.regReplace(pattern: "xue", replaceWith: "ㄒㄩㄝ") - varLineData.regReplace(pattern: "xun", replaceWith: "ㄒㄩㄣ") - varLineData.regReplace(pattern: "yai", replaceWith: "ㄧㄞ") - varLineData.regReplace(pattern: "yan", replaceWith: "ㄧㄢ") - varLineData.regReplace(pattern: "yao", replaceWith: "ㄧㄠ") - varLineData.regReplace(pattern: "yin", replaceWith: "ㄧㄣ") - varLineData.regReplace(pattern: "you", replaceWith: "ㄧㄡ") - varLineData.regReplace(pattern: "yue", replaceWith: "ㄩㄝ") - varLineData.regReplace(pattern: "yun", replaceWith: "ㄩㄣ") - varLineData.regReplace(pattern: "zai", replaceWith: "ㄗㄞ") - varLineData.regReplace(pattern: "zan", replaceWith: "ㄗㄢ") - varLineData.regReplace(pattern: "zao", replaceWith: "ㄗㄠ") - varLineData.regReplace(pattern: "zei", replaceWith: "ㄗㄟ") - varLineData.regReplace(pattern: "zen", replaceWith: "ㄗㄣ") - varLineData.regReplace(pattern: "zha", replaceWith: "ㄓㄚ") - varLineData.regReplace(pattern: "zhe", replaceWith: "ㄓㄜ") - varLineData.regReplace(pattern: "zhi", replaceWith: "ㄓ") - varLineData.regReplace(pattern: "zhu", replaceWith: "ㄓㄨ") - varLineData.regReplace(pattern: "zou", replaceWith: "ㄗㄡ") - varLineData.regReplace(pattern: "zui", replaceWith: "ㄗㄨㄟ") - varLineData.regReplace(pattern: "zun", replaceWith: "ㄗㄨㄣ") - varLineData.regReplace(pattern: "zuo", replaceWith: "ㄗㄨㄛ") - varLineData.regReplace(pattern: "ai", replaceWith: "ㄞ") - varLineData.regReplace(pattern: "an", replaceWith: "ㄢ") - varLineData.regReplace(pattern: "ao", replaceWith: "ㄠ") - varLineData.regReplace(pattern: "ba", replaceWith: "ㄅㄚ") - varLineData.regReplace(pattern: "bi", replaceWith: "ㄅㄧ") - varLineData.regReplace(pattern: "bo", replaceWith: "ㄅㄛ") - varLineData.regReplace(pattern: "bu", replaceWith: "ㄅㄨ") - varLineData.regReplace(pattern: "ca", replaceWith: "ㄘㄚ") - varLineData.regReplace(pattern: "ce", replaceWith: "ㄘㄜ") - varLineData.regReplace(pattern: "ci", replaceWith: "ㄘ") - varLineData.regReplace(pattern: "cu", replaceWith: "ㄘㄨ") - varLineData.regReplace(pattern: "da", replaceWith: "ㄉㄚ") - varLineData.regReplace(pattern: "de", replaceWith: "ㄉㄜ") - varLineData.regReplace(pattern: "di", replaceWith: "ㄉㄧ") - varLineData.regReplace(pattern: "du", replaceWith: "ㄉㄨ") - varLineData.regReplace(pattern: "eh", replaceWith: "ㄝ") - varLineData.regReplace(pattern: "ei", replaceWith: "ㄟ") - varLineData.regReplace(pattern: "en", replaceWith: "ㄣ") - varLineData.regReplace(pattern: "er", replaceWith: "ㄦ") - varLineData.regReplace(pattern: "fa", replaceWith: "ㄈㄚ") - varLineData.regReplace(pattern: "fo", replaceWith: "ㄈㄛ") - varLineData.regReplace(pattern: "fu", replaceWith: "ㄈㄨ") - varLineData.regReplace(pattern: "ga", replaceWith: "ㄍㄚ") - varLineData.regReplace(pattern: "ge", replaceWith: "ㄍㄜ") - varLineData.regReplace(pattern: "gi", replaceWith: "ㄍㄧ") - varLineData.regReplace(pattern: "gu", replaceWith: "ㄍㄨ") - varLineData.regReplace(pattern: "ha", replaceWith: "ㄏㄚ") - varLineData.regReplace(pattern: "he", replaceWith: "ㄏㄜ") - varLineData.regReplace(pattern: "hu", replaceWith: "ㄏㄨ") - varLineData.regReplace(pattern: "ji", replaceWith: "ㄐㄧ") - varLineData.regReplace(pattern: "ju", replaceWith: "ㄐㄩ") - varLineData.regReplace(pattern: "ka", replaceWith: "ㄎㄚ") - varLineData.regReplace(pattern: "ke", replaceWith: "ㄎㄜ") - varLineData.regReplace(pattern: "ku", replaceWith: "ㄎㄨ") - varLineData.regReplace(pattern: "la", replaceWith: "ㄌㄚ") - varLineData.regReplace(pattern: "le", replaceWith: "ㄌㄜ") - varLineData.regReplace(pattern: "li", replaceWith: "ㄌㄧ") - varLineData.regReplace(pattern: "lo", replaceWith: "ㄌㄛ") - varLineData.regReplace(pattern: "lu", replaceWith: "ㄌㄨ") - varLineData.regReplace(pattern: "lv", replaceWith: "ㄌㄩ") - varLineData.regReplace(pattern: "ma", replaceWith: "ㄇㄚ") - varLineData.regReplace(pattern: "me", replaceWith: "ㄇㄜ") - varLineData.regReplace(pattern: "mi", replaceWith: "ㄇㄧ") - varLineData.regReplace(pattern: "mo", replaceWith: "ㄇㄛ") - varLineData.regReplace(pattern: "mu", replaceWith: "ㄇㄨ") - varLineData.regReplace(pattern: "na", replaceWith: "ㄋㄚ") - varLineData.regReplace(pattern: "ne", replaceWith: "ㄋㄜ") - varLineData.regReplace(pattern: "ni", replaceWith: "ㄋㄧ") - varLineData.regReplace(pattern: "nu", replaceWith: "ㄋㄨ") - varLineData.regReplace(pattern: "nv", replaceWith: "ㄋㄩ") - varLineData.regReplace(pattern: "ou", replaceWith: "ㄡ") - varLineData.regReplace(pattern: "pa", replaceWith: "ㄆㄚ") - varLineData.regReplace(pattern: "pi", replaceWith: "ㄆㄧ") - varLineData.regReplace(pattern: "po", replaceWith: "ㄆㄛ") - varLineData.regReplace(pattern: "pu", replaceWith: "ㄆㄨ") - varLineData.regReplace(pattern: "qi", replaceWith: "ㄑㄧ") - varLineData.regReplace(pattern: "qu", replaceWith: "ㄑㄩ") - varLineData.regReplace(pattern: "re", replaceWith: "ㄖㄜ") - varLineData.regReplace(pattern: "ri", replaceWith: "ㄖ") - varLineData.regReplace(pattern: "ru", replaceWith: "ㄖㄨ") - varLineData.regReplace(pattern: "sa", replaceWith: "ㄙㄚ") - varLineData.regReplace(pattern: "se", replaceWith: "ㄙㄜ") - varLineData.regReplace(pattern: "si", replaceWith: "ㄙ") - varLineData.regReplace(pattern: "su", replaceWith: "ㄙㄨ") - varLineData.regReplace(pattern: "ta", replaceWith: "ㄊㄚ") - varLineData.regReplace(pattern: "te", replaceWith: "ㄊㄜ") - varLineData.regReplace(pattern: "ti", replaceWith: "ㄊㄧ") - varLineData.regReplace(pattern: "tu", replaceWith: "ㄊㄨ") - varLineData.regReplace(pattern: "wa", replaceWith: "ㄨㄚ") - varLineData.regReplace(pattern: "wo", replaceWith: "ㄨㄛ") - varLineData.regReplace(pattern: "wu", replaceWith: "ㄨ") - varLineData.regReplace(pattern: "xi", replaceWith: "ㄒㄧ") - varLineData.regReplace(pattern: "xu", replaceWith: "ㄒㄩ") - varLineData.regReplace(pattern: "ya", replaceWith: "ㄧㄚ") - varLineData.regReplace(pattern: "ye", replaceWith: "ㄧㄝ") - varLineData.regReplace(pattern: "yi", replaceWith: "ㄧ") - varLineData.regReplace(pattern: "yo", replaceWith: "ㄧㄛ") - varLineData.regReplace(pattern: "yu", replaceWith: "ㄩ") - varLineData.regReplace(pattern: "za", replaceWith: "ㄗㄚ") - varLineData.regReplace(pattern: "ze", replaceWith: "ㄗㄜ") - varLineData.regReplace(pattern: "zi", replaceWith: "ㄗ") - varLineData.regReplace(pattern: "zu", replaceWith: "ㄗㄨ") - varLineData.regReplace(pattern: "a", replaceWith: "ㄚ") - varLineData.regReplace(pattern: "e", replaceWith: "ㄜ") - varLineData.regReplace(pattern: "o", replaceWith: "ㄛ") - varLineData.regReplace(pattern: "q", replaceWith: "ㄑ") - varLineData.regReplace(pattern: "2", replaceWith: "ˊ") - varLineData.regReplace(pattern: "3", replaceWith: "ˇ") - varLineData.regReplace(pattern: "4", replaceWith: "ˋ") - varLineData.regReplace(pattern: "5", replaceWith: "˙") - varLineData.regReplace(pattern: "1", replaceWith: "") + varLineData.selfReplace("chuang", "ㄔㄨㄤ") + varLineData.selfReplace("shuang", "ㄕㄨㄤ") + varLineData.selfReplace("zhuang", "ㄓㄨㄤ") + varLineData.selfReplace("chang", "ㄔㄤ") + varLineData.selfReplace("cheng", "ㄔㄥ") + varLineData.selfReplace("chong", "ㄔㄨㄥ") + varLineData.selfReplace("chuai", "ㄔㄨㄞ") + varLineData.selfReplace("chuan", "ㄔㄨㄢ") + varLineData.selfReplace("guang", "ㄍㄨㄤ") + varLineData.selfReplace("huang", "ㄏㄨㄤ") + varLineData.selfReplace("jiang", "ㄐㄧㄤ") + varLineData.selfReplace("jiong", "ㄐㄩㄥ") + varLineData.selfReplace("kuang", "ㄎㄨㄤ") + varLineData.selfReplace("liang", "ㄌㄧㄤ") + varLineData.selfReplace("niang", "ㄋㄧㄤ") + varLineData.selfReplace("qiang", "ㄑㄧㄤ") + varLineData.selfReplace("qiong", "ㄑㄩㄥ") + varLineData.selfReplace("shang", "ㄕㄤ") + varLineData.selfReplace("sheng", "ㄕㄥ") + varLineData.selfReplace("shuai", "ㄕㄨㄞ") + varLineData.selfReplace("shuan", "ㄕㄨㄢ") + varLineData.selfReplace("xiang", "ㄒㄧㄤ") + varLineData.selfReplace("xiong", "ㄒㄩㄥ") + varLineData.selfReplace("zhang", "ㄓㄤ") + varLineData.selfReplace("zheng", "ㄓㄥ") + varLineData.selfReplace("zhong", "ㄓㄨㄥ") + varLineData.selfReplace("zhuai", "ㄓㄨㄞ") + varLineData.selfReplace("zhuan", "ㄓㄨㄢ") + varLineData.selfReplace("bang", "ㄅㄤ") + varLineData.selfReplace("beng", "ㄅㄥ") + varLineData.selfReplace("bian", "ㄅㄧㄢ") + varLineData.selfReplace("biao", "ㄅㄧㄠ") + varLineData.selfReplace("bing", "ㄅㄧㄥ") + varLineData.selfReplace("cang", "ㄘㄤ") + varLineData.selfReplace("ceng", "ㄘㄥ") + varLineData.selfReplace("chai", "ㄔㄞ") + varLineData.selfReplace("chan", "ㄔㄢ") + varLineData.selfReplace("chao", "ㄔㄠ") + varLineData.selfReplace("chen", "ㄔㄣ") + varLineData.selfReplace("chou", "ㄔㄡ") + varLineData.selfReplace("chua", "ㄔㄨㄚ") + varLineData.selfReplace("chui", "ㄔㄨㄟ") + varLineData.selfReplace("chun", "ㄔㄨㄣ") + varLineData.selfReplace("chuo", "ㄔㄨㄛ") + varLineData.selfReplace("cong", "ㄘㄨㄥ") + varLineData.selfReplace("cuan", "ㄘㄨㄢ") + varLineData.selfReplace("dang", "ㄉㄤ") + varLineData.selfReplace("deng", "ㄉㄥ") + varLineData.selfReplace("dian", "ㄉㄧㄢ") + varLineData.selfReplace("diao", "ㄉㄧㄠ") + varLineData.selfReplace("ding", "ㄉㄧㄥ") + varLineData.selfReplace("dong", "ㄉㄨㄥ") + varLineData.selfReplace("duan", "ㄉㄨㄢ") + varLineData.selfReplace("fang", "ㄈㄤ") + varLineData.selfReplace("feng", "ㄈㄥ") + varLineData.selfReplace("fiao", "ㄈㄧㄠ") + varLineData.selfReplace("fong", "ㄈㄨㄥ") + varLineData.selfReplace("gang", "ㄍㄤ") + varLineData.selfReplace("geng", "ㄍㄥ") + varLineData.selfReplace("giao", "ㄍㄧㄠ") + varLineData.selfReplace("gong", "ㄍㄨㄥ") + varLineData.selfReplace("guai", "ㄍㄨㄞ") + varLineData.selfReplace("guan", "ㄍㄨㄢ") + varLineData.selfReplace("hang", "ㄏㄤ") + varLineData.selfReplace("heng", "ㄏㄥ") + varLineData.selfReplace("hong", "ㄏㄨㄥ") + varLineData.selfReplace("huai", "ㄏㄨㄞ") + varLineData.selfReplace("huan", "ㄏㄨㄢ") + varLineData.selfReplace("jian", "ㄐㄧㄢ") + varLineData.selfReplace("jiao", "ㄐㄧㄠ") + varLineData.selfReplace("jing", "ㄐㄧㄥ") + varLineData.selfReplace("juan", "ㄐㄩㄢ") + varLineData.selfReplace("kang", "ㄎㄤ") + varLineData.selfReplace("keng", "ㄎㄥ") + varLineData.selfReplace("kong", "ㄎㄨㄥ") + varLineData.selfReplace("kuai", "ㄎㄨㄞ") + varLineData.selfReplace("kuan", "ㄎㄨㄢ") + varLineData.selfReplace("lang", "ㄌㄤ") + varLineData.selfReplace("leng", "ㄌㄥ") + varLineData.selfReplace("lian", "ㄌㄧㄢ") + varLineData.selfReplace("liao", "ㄌㄧㄠ") + varLineData.selfReplace("ling", "ㄌㄧㄥ") + varLineData.selfReplace("long", "ㄌㄨㄥ") + varLineData.selfReplace("luan", "ㄌㄨㄢ") + varLineData.selfReplace("lvan", "ㄌㄩㄢ") + varLineData.selfReplace("mang", "ㄇㄤ") + varLineData.selfReplace("meng", "ㄇㄥ") + varLineData.selfReplace("mian", "ㄇㄧㄢ") + varLineData.selfReplace("miao", "ㄇㄧㄠ") + varLineData.selfReplace("ming", "ㄇㄧㄥ") + varLineData.selfReplace("nang", "ㄋㄤ") + varLineData.selfReplace("neng", "ㄋㄥ") + varLineData.selfReplace("nian", "ㄋㄧㄢ") + varLineData.selfReplace("niao", "ㄋㄧㄠ") + varLineData.selfReplace("ning", "ㄋㄧㄥ") + varLineData.selfReplace("nong", "ㄋㄨㄥ") + varLineData.selfReplace("nuan", "ㄋㄨㄢ") + varLineData.selfReplace("pang", "ㄆㄤ") + varLineData.selfReplace("peng", "ㄆㄥ") + varLineData.selfReplace("pian", "ㄆㄧㄢ") + varLineData.selfReplace("piao", "ㄆㄧㄠ") + varLineData.selfReplace("ping", "ㄆㄧㄥ") + varLineData.selfReplace("qian", "ㄑㄧㄢ") + varLineData.selfReplace("qiao", "ㄑㄧㄠ") + varLineData.selfReplace("qing", "ㄑㄧㄥ") + varLineData.selfReplace("quan", "ㄑㄩㄢ") + varLineData.selfReplace("rang", "ㄖㄤ") + varLineData.selfReplace("reng", "ㄖㄥ") + varLineData.selfReplace("rong", "ㄖㄨㄥ") + varLineData.selfReplace("ruan", "ㄖㄨㄢ") + varLineData.selfReplace("sang", "ㄙㄤ") + varLineData.selfReplace("seng", "ㄙㄥ") + varLineData.selfReplace("shai", "ㄕㄞ") + varLineData.selfReplace("shan", "ㄕㄢ") + varLineData.selfReplace("shao", "ㄕㄠ") + varLineData.selfReplace("shei", "ㄕㄟ") + varLineData.selfReplace("shen", "ㄕㄣ") + varLineData.selfReplace("shou", "ㄕㄡ") + varLineData.selfReplace("shua", "ㄕㄨㄚ") + varLineData.selfReplace("shui", "ㄕㄨㄟ") + varLineData.selfReplace("shun", "ㄕㄨㄣ") + varLineData.selfReplace("shuo", "ㄕㄨㄛ") + varLineData.selfReplace("song", "ㄙㄨㄥ") + varLineData.selfReplace("suan", "ㄙㄨㄢ") + varLineData.selfReplace("tang", "ㄊㄤ") + varLineData.selfReplace("teng", "ㄊㄥ") + varLineData.selfReplace("tian", "ㄊㄧㄢ") + varLineData.selfReplace("tiao", "ㄊㄧㄠ") + varLineData.selfReplace("ting", "ㄊㄧㄥ") + varLineData.selfReplace("tong", "ㄊㄨㄥ") + varLineData.selfReplace("tuan", "ㄊㄨㄢ") + varLineData.selfReplace("wang", "ㄨㄤ") + varLineData.selfReplace("weng", "ㄨㄥ") + varLineData.selfReplace("xian", "ㄒㄧㄢ") + varLineData.selfReplace("xiao", "ㄒㄧㄠ") + varLineData.selfReplace("xing", "ㄒㄧㄥ") + varLineData.selfReplace("xuan", "ㄒㄩㄢ") + varLineData.selfReplace("yang", "ㄧㄤ") + varLineData.selfReplace("ying", "ㄧㄥ") + varLineData.selfReplace("yong", "ㄩㄥ") + varLineData.selfReplace("yuan", "ㄩㄢ") + varLineData.selfReplace("zang", "ㄗㄤ") + varLineData.selfReplace("zeng", "ㄗㄥ") + varLineData.selfReplace("zhai", "ㄓㄞ") + varLineData.selfReplace("zhan", "ㄓㄢ") + varLineData.selfReplace("zhao", "ㄓㄠ") + varLineData.selfReplace("zhei", "ㄓㄟ") + varLineData.selfReplace("zhen", "ㄓㄣ") + varLineData.selfReplace("zhou", "ㄓㄡ") + varLineData.selfReplace("zhua", "ㄓㄨㄚ") + varLineData.selfReplace("zhui", "ㄓㄨㄟ") + varLineData.selfReplace("zhun", "ㄓㄨㄣ") + varLineData.selfReplace("zhuo", "ㄓㄨㄛ") + varLineData.selfReplace("zong", "ㄗㄨㄥ") + varLineData.selfReplace("zuan", "ㄗㄨㄢ") + varLineData.selfReplace("jun", "ㄐㄩㄣ") + varLineData.selfReplace("ang", "ㄤ") + varLineData.selfReplace("bai", "ㄅㄞ") + varLineData.selfReplace("ban", "ㄅㄢ") + varLineData.selfReplace("bao", "ㄅㄠ") + varLineData.selfReplace("bei", "ㄅㄟ") + varLineData.selfReplace("ben", "ㄅㄣ") + varLineData.selfReplace("bie", "ㄅㄧㄝ") + varLineData.selfReplace("bin", "ㄅㄧㄣ") + varLineData.selfReplace("cai", "ㄘㄞ") + varLineData.selfReplace("can", "ㄘㄢ") + varLineData.selfReplace("cao", "ㄘㄠ") + varLineData.selfReplace("cei", "ㄘㄟ") + varLineData.selfReplace("cen", "ㄘㄣ") + varLineData.selfReplace("cha", "ㄔㄚ") + varLineData.selfReplace("che", "ㄔㄜ") + varLineData.selfReplace("chi", "ㄔ") + varLineData.selfReplace("chu", "ㄔㄨ") + varLineData.selfReplace("cou", "ㄘㄡ") + varLineData.selfReplace("cui", "ㄘㄨㄟ") + varLineData.selfReplace("cun", "ㄘㄨㄣ") + varLineData.selfReplace("cuo", "ㄘㄨㄛ") + varLineData.selfReplace("dai", "ㄉㄞ") + varLineData.selfReplace("dan", "ㄉㄢ") + varLineData.selfReplace("dao", "ㄉㄠ") + varLineData.selfReplace("dei", "ㄉㄟ") + varLineData.selfReplace("den", "ㄉㄣ") + varLineData.selfReplace("dia", "ㄉㄧㄚ") + varLineData.selfReplace("die", "ㄉㄧㄝ") + varLineData.selfReplace("diu", "ㄉㄧㄡ") + varLineData.selfReplace("dou", "ㄉㄡ") + varLineData.selfReplace("dui", "ㄉㄨㄟ") + varLineData.selfReplace("dun", "ㄉㄨㄣ") + varLineData.selfReplace("duo", "ㄉㄨㄛ") + varLineData.selfReplace("eng", "ㄥ") + varLineData.selfReplace("fan", "ㄈㄢ") + varLineData.selfReplace("fei", "ㄈㄟ") + varLineData.selfReplace("fen", "ㄈㄣ") + varLineData.selfReplace("fou", "ㄈㄡ") + varLineData.selfReplace("gai", "ㄍㄞ") + varLineData.selfReplace("gan", "ㄍㄢ") + varLineData.selfReplace("gao", "ㄍㄠ") + varLineData.selfReplace("gei", "ㄍㄟ") + varLineData.selfReplace("gin", "ㄍㄧㄣ") + varLineData.selfReplace("gen", "ㄍㄣ") + varLineData.selfReplace("gou", "ㄍㄡ") + varLineData.selfReplace("gua", "ㄍㄨㄚ") + varLineData.selfReplace("gue", "ㄍㄨㄜ") + varLineData.selfReplace("gui", "ㄍㄨㄟ") + varLineData.selfReplace("gun", "ㄍㄨㄣ") + varLineData.selfReplace("guo", "ㄍㄨㄛ") + varLineData.selfReplace("hai", "ㄏㄞ") + varLineData.selfReplace("han", "ㄏㄢ") + varLineData.selfReplace("hao", "ㄏㄠ") + varLineData.selfReplace("hei", "ㄏㄟ") + varLineData.selfReplace("hen", "ㄏㄣ") + varLineData.selfReplace("hou", "ㄏㄡ") + varLineData.selfReplace("hua", "ㄏㄨㄚ") + varLineData.selfReplace("hui", "ㄏㄨㄟ") + varLineData.selfReplace("hun", "ㄏㄨㄣ") + varLineData.selfReplace("huo", "ㄏㄨㄛ") + varLineData.selfReplace("jia", "ㄐㄧㄚ") + varLineData.selfReplace("jie", "ㄐㄧㄝ") + varLineData.selfReplace("jin", "ㄐㄧㄣ") + varLineData.selfReplace("jiu", "ㄐㄧㄡ") + varLineData.selfReplace("jue", "ㄐㄩㄝ") + varLineData.selfReplace("kai", "ㄎㄞ") + varLineData.selfReplace("kan", "ㄎㄢ") + varLineData.selfReplace("kao", "ㄎㄠ") + varLineData.selfReplace("ken", "ㄎㄣ") + varLineData.selfReplace("kiu", "ㄎㄧㄡ") + varLineData.selfReplace("kou", "ㄎㄡ") + varLineData.selfReplace("kua", "ㄎㄨㄚ") + varLineData.selfReplace("kui", "ㄎㄨㄟ") + varLineData.selfReplace("kun", "ㄎㄨㄣ") + varLineData.selfReplace("kuo", "ㄎㄨㄛ") + varLineData.selfReplace("lai", "ㄌㄞ") + varLineData.selfReplace("lan", "ㄌㄢ") + varLineData.selfReplace("lao", "ㄌㄠ") + varLineData.selfReplace("lei", "ㄌㄟ") + varLineData.selfReplace("lia", "ㄌㄧㄚ") + varLineData.selfReplace("lie", "ㄌㄧㄝ") + varLineData.selfReplace("lin", "ㄌㄧㄣ") + varLineData.selfReplace("liu", "ㄌㄧㄡ") + varLineData.selfReplace("lou", "ㄌㄡ") + varLineData.selfReplace("lun", "ㄌㄨㄣ") + varLineData.selfReplace("luo", "ㄌㄨㄛ") + varLineData.selfReplace("lve", "ㄌㄩㄝ") + varLineData.selfReplace("mai", "ㄇㄞ") + varLineData.selfReplace("man", "ㄇㄢ") + varLineData.selfReplace("mao", "ㄇㄠ") + varLineData.selfReplace("mei", "ㄇㄟ") + varLineData.selfReplace("men", "ㄇㄣ") + varLineData.selfReplace("mie", "ㄇㄧㄝ") + varLineData.selfReplace("min", "ㄇㄧㄣ") + varLineData.selfReplace("miu", "ㄇㄧㄡ") + varLineData.selfReplace("mou", "ㄇㄡ") + varLineData.selfReplace("nai", "ㄋㄞ") + varLineData.selfReplace("nan", "ㄋㄢ") + varLineData.selfReplace("nao", "ㄋㄠ") + varLineData.selfReplace("nei", "ㄋㄟ") + varLineData.selfReplace("nen", "ㄋㄣ") + varLineData.selfReplace("nie", "ㄋㄧㄝ") + varLineData.selfReplace("nin", "ㄋㄧㄣ") + varLineData.selfReplace("niu", "ㄋㄧㄡ") + varLineData.selfReplace("nou", "ㄋㄡ") + varLineData.selfReplace("nui", "ㄋㄨㄟ") + varLineData.selfReplace("nun", "ㄋㄨㄣ") + varLineData.selfReplace("nuo", "ㄋㄨㄛ") + varLineData.selfReplace("nve", "ㄋㄩㄝ") + varLineData.selfReplace("pai", "ㄆㄞ") + varLineData.selfReplace("pan", "ㄆㄢ") + varLineData.selfReplace("pao", "ㄆㄠ") + varLineData.selfReplace("pei", "ㄆㄟ") + varLineData.selfReplace("pen", "ㄆㄣ") + varLineData.selfReplace("pia", "ㄆㄧㄚ") + varLineData.selfReplace("pie", "ㄆㄧㄝ") + varLineData.selfReplace("pin", "ㄆㄧㄣ") + varLineData.selfReplace("pou", "ㄆㄡ") + varLineData.selfReplace("qia", "ㄑㄧㄚ") + varLineData.selfReplace("qie", "ㄑㄧㄝ") + varLineData.selfReplace("qin", "ㄑㄧㄣ") + varLineData.selfReplace("qiu", "ㄑㄧㄡ") + varLineData.selfReplace("que", "ㄑㄩㄝ") + varLineData.selfReplace("qun", "ㄑㄩㄣ") + varLineData.selfReplace("ran", "ㄖㄢ") + varLineData.selfReplace("rao", "ㄖㄠ") + varLineData.selfReplace("ren", "ㄖㄣ") + varLineData.selfReplace("rou", "ㄖㄡ") + varLineData.selfReplace("rui", "ㄖㄨㄟ") + varLineData.selfReplace("run", "ㄖㄨㄣ") + varLineData.selfReplace("ruo", "ㄖㄨㄛ") + varLineData.selfReplace("sai", "ㄙㄞ") + varLineData.selfReplace("san", "ㄙㄢ") + varLineData.selfReplace("sao", "ㄙㄠ") + varLineData.selfReplace("sei", "ㄙㄟ") + varLineData.selfReplace("sen", "ㄙㄣ") + varLineData.selfReplace("sha", "ㄕㄚ") + varLineData.selfReplace("she", "ㄕㄜ") + varLineData.selfReplace("shi", "ㄕ") + varLineData.selfReplace("shu", "ㄕㄨ") + varLineData.selfReplace("sou", "ㄙㄡ") + varLineData.selfReplace("sui", "ㄙㄨㄟ") + varLineData.selfReplace("sun", "ㄙㄨㄣ") + varLineData.selfReplace("suo", "ㄙㄨㄛ") + varLineData.selfReplace("tai", "ㄊㄞ") + varLineData.selfReplace("tan", "ㄊㄢ") + varLineData.selfReplace("tao", "ㄊㄠ") + varLineData.selfReplace("tie", "ㄊㄧㄝ") + varLineData.selfReplace("tou", "ㄊㄡ") + varLineData.selfReplace("tui", "ㄊㄨㄟ") + varLineData.selfReplace("tun", "ㄊㄨㄣ") + varLineData.selfReplace("tuo", "ㄊㄨㄛ") + varLineData.selfReplace("wai", "ㄨㄞ") + varLineData.selfReplace("wan", "ㄨㄢ") + varLineData.selfReplace("wei", "ㄨㄟ") + varLineData.selfReplace("wen", "ㄨㄣ") + varLineData.selfReplace("xia", "ㄒㄧㄚ") + varLineData.selfReplace("xie", "ㄒㄧㄝ") + varLineData.selfReplace("xin", "ㄒㄧㄣ") + varLineData.selfReplace("xiu", "ㄒㄧㄡ") + varLineData.selfReplace("xue", "ㄒㄩㄝ") + varLineData.selfReplace("xun", "ㄒㄩㄣ") + varLineData.selfReplace("yai", "ㄧㄞ") + varLineData.selfReplace("yan", "ㄧㄢ") + varLineData.selfReplace("yao", "ㄧㄠ") + varLineData.selfReplace("yin", "ㄧㄣ") + varLineData.selfReplace("you", "ㄧㄡ") + varLineData.selfReplace("yue", "ㄩㄝ") + varLineData.selfReplace("yun", "ㄩㄣ") + varLineData.selfReplace("zai", "ㄗㄞ") + varLineData.selfReplace("zan", "ㄗㄢ") + varLineData.selfReplace("zao", "ㄗㄠ") + varLineData.selfReplace("zei", "ㄗㄟ") + varLineData.selfReplace("zen", "ㄗㄣ") + varLineData.selfReplace("zha", "ㄓㄚ") + varLineData.selfReplace("zhe", "ㄓㄜ") + varLineData.selfReplace("zhi", "ㄓ") + varLineData.selfReplace("zhu", "ㄓㄨ") + varLineData.selfReplace("zou", "ㄗㄡ") + varLineData.selfReplace("zui", "ㄗㄨㄟ") + varLineData.selfReplace("zun", "ㄗㄨㄣ") + varLineData.selfReplace("zuo", "ㄗㄨㄛ") + varLineData.selfReplace("ai", "ㄞ") + varLineData.selfReplace("an", "ㄢ") + varLineData.selfReplace("ao", "ㄠ") + varLineData.selfReplace("ba", "ㄅㄚ") + varLineData.selfReplace("bi", "ㄅㄧ") + varLineData.selfReplace("bo", "ㄅㄛ") + varLineData.selfReplace("bu", "ㄅㄨ") + varLineData.selfReplace("ca", "ㄘㄚ") + varLineData.selfReplace("ce", "ㄘㄜ") + varLineData.selfReplace("ci", "ㄘ") + varLineData.selfReplace("cu", "ㄘㄨ") + varLineData.selfReplace("da", "ㄉㄚ") + varLineData.selfReplace("de", "ㄉㄜ") + varLineData.selfReplace("di", "ㄉㄧ") + varLineData.selfReplace("du", "ㄉㄨ") + varLineData.selfReplace("eh", "ㄝ") + varLineData.selfReplace("ei", "ㄟ") + varLineData.selfReplace("en", "ㄣ") + varLineData.selfReplace("er", "ㄦ") + varLineData.selfReplace("fa", "ㄈㄚ") + varLineData.selfReplace("fo", "ㄈㄛ") + varLineData.selfReplace("fu", "ㄈㄨ") + varLineData.selfReplace("ga", "ㄍㄚ") + varLineData.selfReplace("ge", "ㄍㄜ") + varLineData.selfReplace("gi", "ㄍㄧ") + varLineData.selfReplace("gu", "ㄍㄨ") + varLineData.selfReplace("ha", "ㄏㄚ") + varLineData.selfReplace("he", "ㄏㄜ") + varLineData.selfReplace("hu", "ㄏㄨ") + varLineData.selfReplace("ji", "ㄐㄧ") + varLineData.selfReplace("ju", "ㄐㄩ") + varLineData.selfReplace("ka", "ㄎㄚ") + varLineData.selfReplace("ke", "ㄎㄜ") + varLineData.selfReplace("ku", "ㄎㄨ") + varLineData.selfReplace("la", "ㄌㄚ") + varLineData.selfReplace("le", "ㄌㄜ") + varLineData.selfReplace("li", "ㄌㄧ") + varLineData.selfReplace("lo", "ㄌㄛ") + varLineData.selfReplace("lu", "ㄌㄨ") + varLineData.selfReplace("lv", "ㄌㄩ") + varLineData.selfReplace("ma", "ㄇㄚ") + varLineData.selfReplace("me", "ㄇㄜ") + varLineData.selfReplace("mi", "ㄇㄧ") + varLineData.selfReplace("mo", "ㄇㄛ") + varLineData.selfReplace("mu", "ㄇㄨ") + varLineData.selfReplace("na", "ㄋㄚ") + varLineData.selfReplace("ne", "ㄋㄜ") + varLineData.selfReplace("ni", "ㄋㄧ") + varLineData.selfReplace("nu", "ㄋㄨ") + varLineData.selfReplace("nv", "ㄋㄩ") + varLineData.selfReplace("ou", "ㄡ") + varLineData.selfReplace("pa", "ㄆㄚ") + varLineData.selfReplace("pi", "ㄆㄧ") + varLineData.selfReplace("po", "ㄆㄛ") + varLineData.selfReplace("pu", "ㄆㄨ") + varLineData.selfReplace("qi", "ㄑㄧ") + varLineData.selfReplace("qu", "ㄑㄩ") + varLineData.selfReplace("re", "ㄖㄜ") + varLineData.selfReplace("ri", "ㄖ") + varLineData.selfReplace("ru", "ㄖㄨ") + varLineData.selfReplace("sa", "ㄙㄚ") + varLineData.selfReplace("se", "ㄙㄜ") + varLineData.selfReplace("si", "ㄙ") + varLineData.selfReplace("su", "ㄙㄨ") + varLineData.selfReplace("ta", "ㄊㄚ") + varLineData.selfReplace("te", "ㄊㄜ") + varLineData.selfReplace("ti", "ㄊㄧ") + varLineData.selfReplace("tu", "ㄊㄨ") + varLineData.selfReplace("wa", "ㄨㄚ") + varLineData.selfReplace("wo", "ㄨㄛ") + varLineData.selfReplace("wu", "ㄨ") + varLineData.selfReplace("xi", "ㄒㄧ") + varLineData.selfReplace("xu", "ㄒㄩ") + varLineData.selfReplace("ya", "ㄧㄚ") + varLineData.selfReplace("ye", "ㄧㄝ") + varLineData.selfReplace("yi", "ㄧ") + varLineData.selfReplace("yo", "ㄧㄛ") + varLineData.selfReplace("yu", "ㄩ") + varLineData.selfReplace("za", "ㄗㄚ") + varLineData.selfReplace("ze", "ㄗㄜ") + varLineData.selfReplace("zi", "ㄗ") + varLineData.selfReplace("zu", "ㄗㄨ") + varLineData.selfReplace("a", "ㄚ") + varLineData.selfReplace("e", "ㄜ") + varLineData.selfReplace("o", "ㄛ") + varLineData.selfReplace("q", "ㄑ") + varLineData.selfReplace("2", "ˊ") + varLineData.selfReplace("3", "ˇ") + varLineData.selfReplace("4", "ˋ") + varLineData.selfReplace("5", "˙") + varLineData.selfReplace("1", "") strProcessed += varLineData strProcessed += "\n" } diff --git a/vChewing.pkgproj b/vChewing.pkgproj index 65eafd79..61302bb5 100644 --- a/vChewing.pkgproj +++ b/vChewing.pkgproj @@ -686,6 +686,8 @@ POSTINSTALL_PATH + PATH + Installer/pkgPostInstall.sh PATH_TYPE 1 @@ -724,7 +726,7 @@ USE_HFS+_COMPRESSION VERSION - 1.4.0 + 1.4.1 TYPE 0 diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index 9b5c48b7..0e3f6061 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -1179,7 +1179,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1940; + CURRENT_PROJECT_VERSION = 1941; DEBUG_INFORMATION_FORMAT = dwarf; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; @@ -1202,7 +1202,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.4.0; + MARKETING_VERSION = 1.4.1; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor; @@ -1235,7 +1235,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1940; + CURRENT_PROJECT_VERSION = 1941; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -1254,7 +1254,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.4.0; + MARKETING_VERSION = 1.4.1; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor;