diff --git a/Source/Modules/WindowControllers/CtlPrefWindow.swift b/Source/Modules/WindowControllers/CtlPrefWindow.swift index ae413495..77f292cc 100644 --- a/Source/Modules/WindowControllers/CtlPrefWindow.swift +++ b/Source/Modules/WindowControllers/CtlPrefWindow.swift @@ -422,7 +422,7 @@ extension CtlPrefWindow: NSToolbarDelegate { var toolbarIdentifiers: [NSToolbarItem.Identifier] { var result = [NSToolbarItem.Identifier]() PrefUITabs.allCases.forEach { neta in - if [.tabCandidates, .tabBehavior, .tabOutput, .tabDevZone].contains(neta) { return } + if [.tabCandidates, .tabBehavior, .tabOutput].contains(neta) { return } if neta == .tabExperience, result.count >= 1 { result.insert(neta.toolbarIdentifier, at: 1) return @@ -474,6 +474,11 @@ extension CtlPrefWindow: NSToolbarDelegate { window?.toolbar?.selectedItemIdentifier = PrefUITabs.tabKeyboard.toolbarIdentifier } + @objc func showDevZoneView(_: Any?) { + use(view: vwrDevZone) + window?.toolbar?.selectedItemIdentifier = PrefUITabs.tabDevZone.toolbarIdentifier + } + func toolbar( _: NSToolbar, itemForItemIdentifier itemIdentifier: NSToolbarItem.Identifier, willBeInsertedIntoToolbar _: Bool @@ -484,26 +489,16 @@ extension CtlPrefWindow: NSToolbarDelegate { item.image = tab.icon item.label = tab.i18nTitle switch tab { - case .tabGeneral: - item.action = #selector(showGeneralView(_:)) - case .tabCandidates: - return nil - case .tabBehavior: - return nil - case .tabOutput: - return nil - case .tabDictionary: - item.action = #selector(showDictionaryView(_:)) - case .tabPhrases: - item.action = #selector(showPhrasesView(_:)) - case .tabCassette: - item.action = #selector(showCassetteView(_:)) - case .tabKeyboard: - item.action = #selector(showKeyboardView(_:)) - case .tabDevZone: - return nil - case .tabExperience: - item.action = #selector(showExperienceView(_:)) + case .tabGeneral: item.action = #selector(showGeneralView(_:)) + case .tabCandidates: return nil + case .tabBehavior: return nil + case .tabOutput: return nil + case .tabDictionary: item.action = #selector(showDictionaryView(_:)) + case .tabPhrases: item.action = #selector(showPhrasesView(_:)) + case .tabCassette: item.action = #selector(showCassetteView(_:)) + case .tabKeyboard: item.action = #selector(showKeyboardView(_:)) + case .tabDevZone: item.action = #selector(showDevZoneView(_:)) + case .tabExperience: item.action = #selector(showExperienceView(_:)) } return item } diff --git a/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib b/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib index c73e251a..ac5acbb0 100644 --- a/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib +++ b/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib @@ -1,6 +1,7 @@ + @@ -31,6 +32,7 @@ + @@ -42,71 +44,87 @@ - + - + - + - + - - + + - - + + - - - - - - - - - - + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + @@ -117,60 +135,63 @@ - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + @@ -181,73 +202,79 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -261,34 +288,39 @@ + + - + - + - + - + - + - - + + - - + + + + + + + + + + + + + + + + + + - - @@ -530,8 +621,6 @@ - - @@ -542,8 +631,6 @@ - - @@ -551,31 +638,31 @@ - + - + - + - + - - + + - + - + @@ -609,21 +696,21 @@ - - + + - - + + - + - + @@ -647,6 +734,9 @@ - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - @@ -1102,581 +1236,17 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %{value1}@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Cassette mode is similar to the CIN support of the Yahoo Kimo IME, allowing users to use their own CIN tables to implement their stroked-based input schema (e.g. Wubi, Cangjie, Boshiamy, etc.) as a plan-B in vChewing IME. However, since vChewing won't compromise its phonabet input mode experience for this cassette mode, users might not feel comfortable enough comparing to their experiences with RIME (recommended) or OpenVanilla (deprecated). - - - - - - - - - - - All strokes in the composition buffer will be shown as ASCII keyboard characters unless this option is enabled. Stroke is definable in the “%keyname” section of the CIN file. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This conversion only affects the cassette module, converting typed contents to either Simplified Chinese or Traditional Chinese in accordance with this setting and your current input mode. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Item 1 - Item 2 - Item 3 - - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Basic keyboard layout option will only affect the appearance of the on-screen-keyboard if the current Mandarin parser is not (any) pinyin. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + @@ -1762,6 +1332,9 @@ + + + @@ -1780,17 +1353,17 @@ - + - - + + - + - + @@ -1798,19 +1371,19 @@ - + - + - + @@ -1818,7 +1391,7 @@ - + @@ -1843,9 +1416,9 @@ - + - + @@ -1854,7 +1427,7 @@ + + + @@ -1917,5 +1493,754 @@ DQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %{value1}@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cassette mode is similar to the CIN support of the Yahoo Kimo IME, allowing users to use their own CIN tables to implement their stroked-based input schema (e.g. Wubi, Cangjie, Boshiamy, etc.) as a plan-B in vChewing IME. However, since vChewing won't compromise its phonabet input mode experience for this cassette mode, users might not feel comfortable enough comparing to their experiences with RIME (recommended) or OpenVanilla (deprecated). + + + + + + + + + + + + + + All strokes in the composition buffer will be shown as ASCII keyboard characters unless this option is enabled. Stroke is definable in the “%keyname” section of the CIN file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This conversion only affects the cassette module, converting typed contents to either Simplified Chinese or Traditional Chinese in accordance with this setting and your current input mode. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Item 1 + Item 2 + Item 3 + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Basic keyboard layout option will only affect the appearance of the on-screen-keyboard if the current Mandarin parser is not (any) pinyin. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Warning: This page is for testing future features. +Features listed here may not work as expected. + + + + + + + + + + + + + + + + + + + + Some clients with web-based front UI may have issues rendering segmented thick underlines drawn by their implemented “setMarkedText()”. This option stops the input method from delivering segmented thick underlines to “client().setMarkedText()”. Note that segmented thick underlines are only used in marking mode, unless the client itself misimplements the IMKTextInput method “setMarkedText()”. This option only affects the inline composition buffer. + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/WindowNIBs/en.lproj/frmPrefWindow.strings b/Source/WindowNIBs/en.lproj/frmPrefWindow.strings index b280121a..20eb5d1a 100644 --- a/Source/WindowNIBs/en.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/en.lproj/frmPrefWindow.strings @@ -111,6 +111,7 @@ "tglTrimUnfinishedReadingsOnCommit.title" = "Trim unfinished readings / strokes on commit"; "TXr-FF-ehw.title" = "Traditional Chinese"; "ueU-Rz-a1C.title" = "Choose the behavior of (Shift+)Tab key in the candidate window."; +"VAP-TU-eck.title" = "Some clients with web-based front UI may have issues rendering segmented thick underlines drawn by their implemented “setMarkedText()”. This option stops the input method from delivering segmented thick underlines to “client().setMarkedText()”. Note that segmented thick underlines are only used in marking mode, unless the client itself misimplements the IMKTextInput method “setMarkedText()”. This option only affects the inline composition buffer."; "VdT-fw-7pQ.title" = "Debug Mode"; "vpd-zx-GIk.title" = "Seigyou (JinYei)"; "W24-T4-cg0.title" = "Enable CNS11643 Support (2023-01-06)"; @@ -133,4 +134,5 @@ "xjP-r7-GaK.title" = "Dachen 26 (libChewing)"; "XqL-rf-X6d.title" = "Space to +revolve pages, Shift+Space to +revolve candidates"; "xrE-8T-WKO.label" = "Advanced"; +"N6e-bR-mVa.title" = "Disable segmented thick underline in marking mode for managed clients"; "ZEv-Q2-mYL.title" = "Change user interface language (will reboot the IME)."; diff --git a/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings b/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings index 5cedeeb2..6d5f3f31 100644 --- a/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings @@ -111,6 +111,7 @@ "tglTrimUnfinishedReadingsOnCommit.title" = "送り出す緩衝列内容から未完成な音読み/筆組みを除く"; "TXr-FF-ehw.title" = "繁体中国語"; "ueU-Rz-a1C.title" = "入力候補陳列での (Shift+)Tab キーの輪番切替対象をご指定ください。"; +"VAP-TU-eck.title" = "一部の「Web UI を用いた」客体アプリには、多段式太下線の描きをうまく取り扱えぬ支障はございます。このチェックを入れると、IME から「client().setMarkedText()」を経由して、客体に「多段式太下線を書かずに」と命令することはできます。多段式太下線はマーキングモードだけで用いるデザインですが、間違くて別のモードでもそれを書いてしまう客体アプリはございます(多分 IMKTextInput の実作の問題かもしれません)。このチェックは「文脈内入力緩衝列」だけに関わります。"; "VdT-fw-7pQ.title" = "欠陥辿着モード"; "vpd-zx-GIk.title" = "精業配列"; "W24-T4-cg0.title" = "全字庫モード // 入力可能の漢字数倍増 (2023-01-06)"; @@ -133,4 +134,5 @@ "xjP-r7-GaK.title" = "酷音大千 26 キー配列"; "XqL-rf-X6d.title" = "Space で次のページ、Shift+Space で次の候補文字を"; "xrE-8T-WKO.label" = "詳細"; +"N6e-bR-mVa.title" = "管理されている客体アプリには、マーキングモードの多段式太下線の描きを禁ず"; "ZEv-Q2-mYL.title" = "アプリ表示用言語をご指定ください、そして入力アプリは自動的に再起動。"; diff --git a/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings b/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings index f9fde11d..54179f58 100644 --- a/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings @@ -111,6 +111,7 @@ "tglTrimUnfinishedReadingsOnCommit.title" = "在递交时清理未完成拼写的读音或字根"; "TXr-FF-ehw.title" = "繁体中文"; "ueU-Rz-a1C.title" = "指定 (Shift+)Tab 热键在选字窗内的轮替操作对象。"; +"VAP-TU-eck.title" = "部分采用 Web 前端介面设计的客体应用可能会无法正常绘制用于输入法标记模式的分段式粗型下划线。这个选项将会阻止输入法借由 client().setMarkedText() 函式向客体应用传达对粗型下划线的分段绘制请求。分段式粗型下划线仅用于输入法的标记模式,除非客体应用对 setMarkedText() 这个 IMKTextInput 协定方法的实作有问题。该选项仅影响内文组字区。"; "VdT-fw-7pQ.title" = "侦错模式"; "vpd-zx-GIk.title" = "精业"; "W24-T4-cg0.title" = "启用 CNS11643 全字库支援 (2023-01-06)"; @@ -133,4 +134,5 @@ "xjP-r7-GaK.title" = "酷音大千二十六键"; "XqL-rf-X6d.title" = "Space 换下一页,Shift+Space 换选下一个候选字。"; "xrE-8T-WKO.label" = "进阶"; +"N6e-bR-mVa.title" = "针对被管理的客体,在标记模式下禁用分段式粗型下划线"; "ZEv-Q2-mYL.title" = "变更使用者界面语言,会自动重新启动输入法。"; diff --git a/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings b/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings index f5b522a2..1d5b65a0 100644 --- a/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings @@ -111,6 +111,7 @@ "tglTrimUnfinishedReadingsOnCommit.title" = "在遞交時清理未完成拼寫的讀音或字根"; "TXr-FF-ehw.title" = "繁體中文"; "ueU-Rz-a1C.title" = "指定 (Shift+)Tab 熱鍵在選字窗內的輪替操作對象。"; +"VAP-TU-eck.title" = "部分採用 Web 前端介面設計的客體應用可能會無法正常繪製用於輸入法標記模式的分段式粗型下劃線。這個選項將會阻止輸入法藉由 client().setMarkedText() 函式向客體應用傳達對粗型下劃線的分段繪製請求。分段式粗型下劃線僅用於輸入法的標記模式,除非客體應用對 setMarkedText() 這個 IMKTextInput 協定方法的實作有問題。該選項僅影響內文組字區。"; "VdT-fw-7pQ.title" = "偵錯模式"; "vpd-zx-GIk.title" = "精業"; "W24-T4-cg0.title" = "啟用 CNS11643 全字庫支援 (2023-01-06)"; @@ -133,4 +134,5 @@ "xjP-r7-GaK.title" = "酷音大千二十六鍵"; "XqL-rf-X6d.title" = "Space 換下一頁,Shift+Space 換選下一個候選字"; "xrE-8T-WKO.label" = "進階"; +"N6e-bR-mVa.title" = "針對被管理的客體,在標記模式下禁用分段式粗型下劃線"; "ZEv-Q2-mYL.title" = "變更使用者介面語言,會自動重新啟動輸入法。";