From 92b0b6d45ed98ddfe5b644fd5d76ef4bc5b8d2fa Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 13 Feb 2022 12:28:39 +0800 Subject: [PATCH] Mandarin // Add Fake-Seigyou Phonetic Layout. --- Source/3rdParty/OVMandarin/Mandarin.cpp | 55 +++++++++++++++++++ Source/3rdParty/OVMandarin/Mandarin.h | 1 + .../Modules/ControllerModules/KeyHandler.mm | 3 + .../IMEModules/PreferencesModule.swift | 3 + .../WindowNIBs/Base.lproj/frmPrefWindow.xib | 1 + .../WindowNIBs/en.lproj/frmPrefWindow.strings | 3 + .../WindowNIBs/ja.lproj/frmPrefWindow.strings | 3 + .../zh-Hans.lproj/frmPrefWindow.strings | 3 + .../zh-Hant.lproj/frmPrefWindow.strings | 3 + 9 files changed, 75 insertions(+) diff --git a/Source/3rdParty/OVMandarin/Mandarin.cpp b/Source/3rdParty/OVMandarin/Mandarin.cpp index 813012a2..5b1e827a 100644 --- a/Source/3rdParty/OVMandarin/Mandarin.cpp +++ b/Source/3rdParty/OVMandarin/Mandarin.cpp @@ -1258,9 +1258,59 @@ static BopomofoKeyboardLayout* CreateETen26Layout() { ASSIGNKEY1(ktcm, vec, 'r', BPMF::ER); ASSIGNKEY1(ktcm, vec, 'i', BPMF::AI); ASSIGNKEY1(ktcm, vec, 'z', BPMF::AO); + return new BopomofoKeyboardLayout(ktcm, "ETen26"); } +static BopomofoKeyboardLayout* CreateFakeSeigyouLayout() { + std::vector vec; + BopomofoKeyToComponentMap ktcm; + + ASSIGNKEY1(ktcm, vec, '1', BPMF::Tone5); + ASSIGNKEY1(ktcm, vec, '2', BPMF::B); + ASSIGNKEY1(ktcm, vec, '3', BPMF::D); + ASSIGNKEY1(ktcm, vec, '4', BPMF::I); + ASSIGNKEY1(ktcm, vec, '5', BPMF::U); + ASSIGNKEY1(ktcm, vec, '6', BPMF::ZH); + ASSIGNKEY1(ktcm, vec, '7', BPMF::UE); + ASSIGNKEY1(ktcm, vec, '8', BPMF::A); + ASSIGNKEY1(ktcm, vec, '9', BPMF::AI); + ASSIGNKEY1(ktcm, vec, '0', BPMF::AN); + ASSIGNKEY1(ktcm, vec, '-', BPMF::ERR); + ASSIGNKEY1(ktcm, vec, ';', BPMF::ANG); + ASSIGNKEY1(ktcm, vec, ',', BPMF::E); + ASSIGNKEY1(ktcm, vec, '.', BPMF::OU); + ASSIGNKEY1(ktcm, vec, '/', BPMF::ENG); + ASSIGNKEY1(ktcm, vec, 'a', BPMF::Tone3); + ASSIGNKEY1(ktcm, vec, 'b', BPMF::X); + ASSIGNKEY1(ktcm, vec, 'c', BPMF::L); + ASSIGNKEY1(ktcm, vec, 'd', BPMF::N); + ASSIGNKEY1(ktcm, vec, 'e', BPMF::T); + ASSIGNKEY1(ktcm, vec, 'f', BPMF::K); + ASSIGNKEY1(ktcm, vec, 'g', BPMF::Q); + ASSIGNKEY1(ktcm, vec, 'h', BPMF::SH); + ASSIGNKEY1(ktcm, vec, 'i', BPMF::O); + ASSIGNKEY1(ktcm, vec, 'j', BPMF::C); + ASSIGNKEY1(ktcm, vec, 'k', BPMF::ER); + ASSIGNKEY1(ktcm, vec, 'l', BPMF::AO); + ASSIGNKEY1(ktcm, vec, 'm', BPMF::S); + ASSIGNKEY1(ktcm, vec, 'n', BPMF::R); + ASSIGNKEY1(ktcm, vec, 'o', BPMF::EI); + ASSIGNKEY1(ktcm, vec, 'p', BPMF::EN); + ASSIGNKEY1(ktcm, vec, 'q', BPMF::Tone2); + ASSIGNKEY1(ktcm, vec, 'r', BPMF::G); + ASSIGNKEY1(ktcm, vec, 's', BPMF::M); + ASSIGNKEY1(ktcm, vec, 't', BPMF::J); + ASSIGNKEY1(ktcm, vec, 'u', BPMF::Z); + ASSIGNKEY1(ktcm, vec, 'v', BPMF::H); + ASSIGNKEY1(ktcm, vec, 'w', BPMF::P); + ASSIGNKEY1(ktcm, vec, 'x', BPMF::F); + ASSIGNKEY1(ktcm, vec, 'y', BPMF::CH); + ASSIGNKEY1(ktcm, vec, 'z', BPMF::Tone4); + + return new BopomofoKeyboardLayout(ktcm, "FakeSeigyou"); +} + static BopomofoKeyboardLayout* CreateHanyuPinyinLayout() { BopomofoKeyToComponentMap ktcm; return new BopomofoKeyboardLayout(ktcm, "HanyuPinyin"); @@ -1296,6 +1346,11 @@ const BopomofoKeyboardLayout* BopomofoKeyboardLayout::MiTACLayout() { return layout; } +const BopomofoKeyboardLayout* BopomofoKeyboardLayout::FakeSeigyouLayout() { + static BopomofoKeyboardLayout* layout = CreateFakeSeigyouLayout(); + return layout; +} + const BopomofoKeyboardLayout* BopomofoKeyboardLayout::HanyuPinyinLayout() { static BopomofoKeyboardLayout* layout = CreateHanyuPinyinLayout(); return layout; diff --git a/Source/3rdParty/OVMandarin/Mandarin.h b/Source/3rdParty/OVMandarin/Mandarin.h index 50be17cf..3af64f84 100644 --- a/Source/3rdParty/OVMandarin/Mandarin.h +++ b/Source/3rdParty/OVMandarin/Mandarin.h @@ -214,6 +214,7 @@ public: static const BopomofoKeyboardLayout* ETen26Layout(); static const BopomofoKeyboardLayout* IBMLayout(); static const BopomofoKeyboardLayout* MiTACLayout(); + static const BopomofoKeyboardLayout* FakeSeigyouLayout(); static const BopomofoKeyboardLayout* HanyuPinyinLayout(); BopomofoKeyboardLayout(const BopomofoKeyToComponentMap& ktcm, diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index 6adc3665..db1abe69 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -185,6 +185,9 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; case KeyboardLayoutMiTAC: _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::MiTACLayout()); break; + case KeyboardLayoutFakeSeigyou: + _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::FakeSeigyouLayout()); + break; case KeyboardLayoutHanyuPinyin: _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::HanyuPinyinLayout()); break; diff --git a/Source/Modules/IMEModules/PreferencesModule.swift b/Source/Modules/IMEModules/PreferencesModule.swift index f81ddd3a..68bc607f 100644 --- a/Source/Modules/IMEModules/PreferencesModule.swift +++ b/Source/Modules/IMEModules/PreferencesModule.swift @@ -156,6 +156,7 @@ struct ComposingBufferSize { case eten26 = 3 case IBM = 4 case MiTAC = 5 + case FakeSeigyou = 6 case hanyuPinyin = 10 var name: String { @@ -172,6 +173,8 @@ struct ComposingBufferSize { return "IBM" case .MiTAC: return "MiTAC" + case .FakeSeigyou: + return "FakeSeigyou" case .hanyuPinyin: return "HanyuPinyin" } diff --git a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib index 08218d8b..b54085c7 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib +++ b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib @@ -596,6 +596,7 @@ + diff --git a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings index 98c75154..791109b7 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/en.lproj/frmPrefWindow.strings @@ -92,6 +92,9 @@ /* Class = "NSMenuItem"; title = "MiTAC"; ObjectID = "7fV-x8-WHQ"; */ "7fV-x8-WHQ.title" = "MiTAC"; +/* Class = "NSMenuItem"; title = "Fake Seigyou"; ObjectID = "27F-8T-FkQ"; */ +"27F-8T-FkQ.title" = "Fake Seigyou (similar to JinYei)"; + /* Class = "NSTabViewItem"; label = "Keyboard"; ObjectID = "1AW-xf-c2f"; */ "1AW-xf-c2f.label" = "Keyboard"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings index 1bc1ba72..c3950b6a 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings @@ -92,6 +92,9 @@ /* Class = "NSMenuItem"; title = "MiTAC"; ObjectID = "7fV-x8-WHQ"; */ "7fV-x8-WHQ.title" = "神通"; +/* Class = "NSMenuItem"; title = "Fake Seigyou"; ObjectID = "27F-8T-FkQ"; */ +"27F-8T-FkQ.title" = "偽精業"; + /* Class = "NSTabViewItem"; label = "Keyboard"; ObjectID = "1AW-xf-c2f"; */ "1AW-xf-c2f.label" = "キーボード"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings index 72f334d4..82c1ae19 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings @@ -92,6 +92,9 @@ /* Class = "NSMenuItem"; title = "MiTAC"; ObjectID = "7fV-x8-WHQ"; */ "7fV-x8-WHQ.title" = "神通"; +/* Class = "NSMenuItem"; title = "Fake Seigyou"; ObjectID = "27F-8T-FkQ"; */ +"27F-8T-FkQ.title" = "伪精业"; + /* Class = "NSTabViewItem"; label = "Keyboard"; ObjectID = "1AW-xf-c2f"; */ "1AW-xf-c2f.label" = "键盘"; diff --git a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings index fb104a04..f748e726 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings @@ -92,6 +92,9 @@ /* Class = "NSMenuItem"; title = "MiTAC"; ObjectID = "7fV-x8-WHQ"; */ "7fV-x8-WHQ.title" = "神通"; +/* Class = "NSMenuItem"; title = "Fake Seigyou"; ObjectID = "27F-8T-FkQ"; */ +"27F-8T-FkQ.title" = "偽精業"; + /* Class = "NSTabViewItem"; label = "Keyboard"; ObjectID = "1AW-xf-c2f"; */ "1AW-xf-c2f.label" = "鍵盤";