diff --git a/Assets/ime_config.xml b/Assets/ime_config.xml new file mode 100644 index 0000000..ef42fb8 --- /dev/null +++ b/Assets/ime_config.xml @@ -0,0 +1,506 @@ + + + + 微软拼音 + MSPinyin + GFxIME_Ch_Simp_MSPinyin + + Chinese (Simplified) - Microsoft Pinyin IME 3.0 + MSPinyin IME 3.0 + GFxIME_Ch_Simp_MSPinyin_3_0 + + Chinese (Simplified) - Microsoft Pinyin IME + MSPinyin IME + GFxIME_Ch_Simp_MSPinyin + + Chinese (Simplified) - Microsoft Pinyin New Experience Input Style + MSPinyin IME + GFxIME_Ch_Simp_MSPinyin + + Microsoft Pinyin SimpleFast + MSPinyin IME + GFxIME_Ch_Simp_MSPinyin + + 中文(简体) - 微软拼音新体验输入风格 + MSPinyin IME + GFxIME_Ch_Simp_MSPinyin + + Chinese (Simplified) - NeiMa + NeiMa + GFxIME_NotSupported + + Chinese (Simplified) - QuanPin + Quan Pin + GFxIME_Ch_Simp_QuanPin + + Chinese (Simplified) - ShuangPin + Shuang Pin + GFxIME_Ch_Simp_ShuangPin + + Chinese (Simplified) - US Keyboard + Chinese (Simplified) + GFxIME_Ch_Simp + + Chinese (Simplified) - ZhengMa + ZhengMa + GFxIME_Ch_Simp_ZhengMa + + Chinese Simplified QuanPin (version 6.0) + Quan Pin + GFxIME_Ch_Simp_QuanPin + + 简体中文全拼(版本 6.0) + Quan Pin + GFxIME_Ch_Simp_QuanPin + + Chinese Simplified ShuangPin (version 6.0) + Shuang Pin + GFxIME_Ch_Simp_ShuangPin + + 简体中文双拼(版本 6.0) + Shuang Pin + GFxIME_Ch_Simp_ShuangPin + + Chinese Simplified ZhengMa (version 6.0) + Zheng Ma + GFxIME_Ch_Simp_ZhengMa + + 简体中文郑码(版本 6.0) + Zheng Ma + GFxIME_Ch_Simp_ZhengMa + + Chinese (Simplified) - Microsoft Pinyin ABC Input Style + ABC + GFxIME_Ch_Simp_ABC + + 中文(简体) - 微软拼音 ABC 输入风格 + ABC + GFxIME_Ch_Simp_ABC + + IMSC14.IME + Microsoft Pinyin IME 2010 + GFxIME_Ch_Simp_MSPinyin1_2010 + + IMSC12li.IME + Microsoft Pinyin IME 2007 + GFxIME_Ch_Simp_MSPinyin1_2010 + + IMSC40A.IME + Microsoft Pinyin IME 3.0 + GFxIME_Ch_Simp_MSPinyin_3_0 + + pintlgnt.ime + Microsoft Pinyin IME 3.0 + GFxIME_Ch_Simp_MSPinyin_3_0 + + winpy.ime + Quan Pin + GFxIME_Ch_Simp_QuanPin + + winsp.ime + Shuang Pin + GFxIME_Ch_Simp_ShuangPin + + winzm.ime + ZhengMa + GFxIME_Ch_Simp_ZhengMa + + Google Pinyin + 谷歌拼音输入法 + GFxIME_GooglePinyin + + Google Pinyin + 谷歌拼音输入法 2 + GFxIME_GooglePinyin + + Google Pinyin + 谷歌拼音输入法 2.0 + GFxIME_GooglePinyin + + Google Pinyin + 中文 (简体) - 谷歌拼音输入法 + GFxIME_GooglePinyin + + QQPINYIN.IME + 中文 - QQ拼音输入法 + GFxIME_Ch_Simp_QQPinyin + + GOOGLEPINYIN2.IME + 中文 (简体) - 谷歌拼音输入法 + GFxIME_GooglePinyin + + GOOGLEPINYIN3.IME + 中文 (简体) - 谷歌拼音输入法 + GFxIME_GooglePinyin + + ARRAY.IME + ArrayCL + GFxIME_Ch_Trad_ArrayCL + + IMSC14WR.IME + Microsoft Pinyin New Experience 2010 + GFxIME_Ch_Simp_MSPinyin1_2010 + + IMSCE14WR.IME + Microsoft Pinyin Simple Fast 2010 + GFxIME_Ch_Simp_MSPinyin1_2010 + + Sogou Pinyin + 搜狗拼音输入法 + GFxIME_SogouPinyin + + 搜狗拼音输入法 + 搜狗拼音输入法 + GFxIME_SogouPinyin + + 搜狗输入法 + 搜狗输入法 + GFxIME_SogouPinyin + + Sogou Pinyin IME + 中文(简体) - 搜狗拼音输入法 + GFxIME_SogouPinyin + + Sogou Pinyin + 中文 (简体) - 搜狗拼音输入法 + GFxIME_SogouPinyin + + SOGOUPY.IME + 中文 (简体) - 搜狗拼音输入法 + GFxIME_SogouPinyin + + 搜狗五笔输入法 + Sougou Wubi + GFxIME_SogouPinyin + + 중국어 (번체) - New ChangJie + New ChangJie + GFxIME_Ch_Trad_NewChangJie + + 中文 (简体) - 加加输入法5.0 + JJ Pinyin + GFxIME_Ch_Simp_JJ + + BAIDUCN.IME + 中文 (简体) - 百度拼音输入法 + GFxIME_BaiduPinyin + + 中文(简体) - 百度输入法 + 中文(简体) - 百度输入法 + GFxIME_BaiduPinyin + + QQWUBI.IME + 中文 - QQ五笔输入法 + GFxIME_Ch_Trad_ArrayCL + + WINABCX.IME + itABC v5.30 + GFxIME_Ch_Trad_ArrayCL + + KUNLUN.IME + 中文 (简体) - 必应 Bing 输入法 + GFxIME_BingPinyin + + WN_INPUT.IME + 中文(简体) - 万能五笔外挂版 + GFxIME_Ch_Trad_ArrayCL + + WN.IME + 中文(简体) - 万能五笔输入法 + GFxIME_Ch_Trad_ArrayCL + + freeime.ime + 中文(简体) - 极点五笔 + GFxIME_Ch_Trad_ArrayCL + + 中文 - QQ五笔输入法 + QQPinyin + GFxIME_Ch_Simp_QQPinyin + + 中文 - QQ拼音输入法 + QQPinyin + GFxIME_Ch_Simp_QQPinyin + + Microsoft Pinyin + MSPinyin IME + GFxIME_Ch_Simp_MSPinyin + + Microsoft Wubi + Microsoft Wubi + GFxIME_Ch_Simp_MSPinyin + + 中文(简体) - 手心输入法 + 中文(简体) - 手心输入法 + GFxIME_Ch_Simp + + + + + + Chinese (Traditional) - Alphanumeric + Alphanumeric + GFxIME_NotSupported + + Chinese (Traditional) - Array + Array + GFxIME_Ch_Trad_Array + + Chinese (Traditional) - Big5 Code + Big5 + GFxIME_NotSupported + + Chinese (Traditional) - ChangJie + ChangJie + GFxIME_Ch_Trad_ChangJie + + 中文 (繁體) - 倉頡 + ChangJie + GFxIME_Ch_Trad_ChangJie + + Chinese (Traditional) - DaYi + DaYi + GFxIME_Ch_Trad_DaYi + + Chinese (Traditional) - New ChangJie + {F3BA907A-6C7E-11D4-97FA-0080C882687E} + New ChangJie + GFxIME_Ch_Trad_NewChangJie + + 中文 (繁體) - 新倉頡 + New ChangJie + GFxIME_Ch_Trad_NewChangJie + + Microsoft ChangJie + {4BDF9F03-C7D3-11D4-B2AB-0080C882687E} + ChangJie + GFxIME_Ch_Trad_NewChangJie + + Chinese (Traditional) - New Phonetic + {B2F9C502-1742-11D4-9790-0080C882687E} + New Phonetic + GFxIME_Ch_Trad_NewPhonetic + + 中文 (繁體) - 新注音 + New Phonetic + GFxIME_Ch_Trad_NewPhonetic + + Chinese (Traditional) - Phonetic + Phonetic + GFxIME_Ch_Trad_Phonetic + + 中文 (繁體) - 注音 + Phonetic + GFxIME_Ch_Trad_Phonetic + + Chinese (Traditional) - Quick + Quick + GFxIME_Ch_Trad_Quick + + 中文 (繁體) - 速成 + Quick + GFxIME_Ch_Trad_Quick + + Chinese (Traditional) - US Keyboard + Unknown + GFxIME_Ch_Trad + + Chinese (Traditional) - Unicode + Unicode + GFxIME_NotSupported + + Chinese Traditional Array (version 6.0) + Array + GFxIME_Ch_Trad_Array + + 中文繁體行列 (version 6.0) + Array + GFxIME_Ch_Trad_Array + + Chinese Traditional DaYi (version 6.0) + DaYi + GFxIME_Ch_Trad_DaYi + + 中文繁體大易 (version 6.0) + DaYi + GFxIME_Ch_Trad_DaYi + + winar30.ime + Array + GFxIME_Ch_Trad_Array + + chajei.ime + ChangJie + GFxIME_Ch_Trad_ChangJie + + dayi.ime + DaYi + GFxIME_Ch_Trad_DaYi + + CINTLGNT.IME + New ChangJie + GFxIME_Ch_Trad_NewChangJie + + MSTCICJA.IME + New ChangJie + GFxIME_Ch_Trad_NewChangJie + + IMTCC14.IME + New ChangJie 2010 + GFxIME_Ch_Trad_NewChangJie2010 + + MSTCIPHA.IME + New Phonetic + GFxIME_Ch_Trad_NewPhonetic + + TINTLGNT.IME + New Phonetic + GFxIME_Ch_Trad_NewPhonetic + + IMTCP14.IME + New Phonetic 2010 + GFxIME_Ch_Trad_NewPhonetic2010 + + IMTCQ14.IME + New Quick 2010 + GFxIME_Ch_Trad_NewQuick2010 + + phon.ime + Phonetic + GFxIME_Ch_Trad_Phonetic + + quick.ime + Quick + GFxIME_Ch_Trad_Quick + + Microsoft Quick + Microsoft Quick + GFxIME_Ch_Trad_Quick + + Microsoft ChangJie + Microsoft ChangJie + GFxIME_Ch_Trad_ChangJie + + CHEWING.IME + New Chewing IME + GFxIME_Ch_Trad_NewChewing + + ChangJie (Майкрософт) + Microsoft ChangJie + GFxIME_Ch_Trad_ChangJie + + + + + + 微软输入法 + 微软输入法 + GFxIME_Jp + + Google Japanese Input + Google Japanese Input + GFxIME_Jp_GOOG2010 + + Microsoft IME + Japanese Microsoft IME + GFxIME_Jp + + imjp81.ime + Japanese Microsoft IME + GFxIME_Jp + + Japanese Input System (MS-IME2002) + MS-IME 2002 + GFxIME_Jp_2002 + + imjp8.ime + Microsoft IME Standard 2002 + GFxIME_Jp_2002 + + imjp9.ime + Microsoft IME Standard 2003 + GFxIME_Jp_2003 + + imjp12.ime + MS-IME 2007 + GFxIME_Jp_2007 + + imjp14.ime + Japanese IME 2010 + GFxIME_Jp_2010 + + ATOK 2008 + ATOK 2008 + GFxIME_Jp_ATOK2008 + + ATOK 2009 + ATOK 2009 + GFxIME_Jp_ATOK2009 + + ATOK22W.IME + ATOK 2009 + GFxIME_Jp_ATOK2009 + + Google Japanese Input + Google Japanese Input + GFxIME_Jp_GOOG2010 + + ATOK26W.IME + ATOK 2013 + GFxIME_Jp_ATOK2008 + + + + + + 微软输入法 + 微软输入法 + GFxIME_Kr + + Microsoft IME + Korean Microsoft IME + GFxIME_Kr + + Korean Input System (IME 2000) + Korean 2000 + GFxIME_Kr + + Korean + Korean + GFxIME_Kr + + imekr61.ime + Korean IME 2000 + GFxIME_Kr_2000 + + imekr.ime + Korean IME 2002 + GFxIME_Kr_2002 + + imekr70.ime + Korean IME 2003 + GFxIME_Kr_2003 + + imkr12.ime + Korean IME 2007 + GFxIME_Kr_2007 + + imkr14.ime + Korean IME 2010 + GFxIME_Kr_2010 + + Korean IME 2007 + Microsoft 입력기 + GFxIME_Kr_2007 + + Korean Microsoft IME + Microsoft 한글 입력기 + GFxIME_Kr_8_6001 + + Microsoft 입력기 + Korean Microsoft IME + GFxIME_Kr + + + + + diff --git a/src/KorabliChsMod.Core/KorabliChsMod.Core.csproj b/src/KorabliChsMod.Core/KorabliChsMod.Core.csproj index 20ec92b..0b92e61 100644 --- a/src/KorabliChsMod.Core/KorabliChsMod.Core.csproj +++ b/src/KorabliChsMod.Core/KorabliChsMod.Core.csproj @@ -9,6 +9,9 @@ + + Always + diff --git a/src/KorabliChsMod.Core/Services/ChsModService.cs b/src/KorabliChsMod.Core/Services/ChsModService.cs index 7e72e63..9bfc9b6 100644 --- a/src/KorabliChsMod.Core/Services/ChsModService.cs +++ b/src/KorabliChsMod.Core/Services/ChsModService.cs @@ -38,7 +38,8 @@ public partial class ChsModService(NetworkEngine networkEngine, FileCachePool fi /// 成功返回true,失败返回false public async Task Install(GameDetectModel gameDetectModel, CancellationToken cancellationToken = default) { - return await this.PathXmlAddon(gameDetectModel, cancellationToken) && await this.CorePackInstall(gameDetectModel, cancellationToken); + return await this.PathXmlAddon(gameDetectModel, cancellationToken) && await this.CorePackInstall(gameDetectModel, cancellationToken)&& await this.ImeConfigInstall(gameDetectModel, cancellationToken) +; } /// @@ -52,6 +53,7 @@ public bool Uninstall(GameDetectModel gameDetectModel, CancellationToken cancell try { IOExtension.DeleteFile(gameDetectModel.ChsModFilePath); + IOExtension.DeleteFile(Path.Combine(gameDetectModel.ModFolder, "gui", "flash", "ime_config.xml")); return true; } catch (Exception e) @@ -184,6 +186,38 @@ internal async Task CorePackInstall(GameDetectModel gameDetectModel, Cance return false; } } + + + internal Task ImeConfigInstall(GameDetectModel gameDetectModel, CancellationToken cancellationToken = default) + { + return Task.Run(() => + { + try + { + // 源文件:程序目录下的 Assets/ime_config.xml + var source = Path.Combine(AppContext.BaseDirectory, "Assets", "ime_config.xml"); + if (!File.Exists(source)) + { + // 你可以选择:当作失败 or 直接跳过。 + // “打包内置”的目标是必有,所以我建议:缺失就当失败,方便发现打包问题 + throw new FileNotFoundException("未找到内置 ime_config.xml,请检查安装包是否包含 Assets/ime_config.xml", source); + } + + // 目标文件:.../res_mods//gui/flash/ime_config.xml + var target = Path.Combine(gameDetectModel.ModFolder, "gui", "flash", "ime_config.xml"); + var targetDir = Path.GetDirectoryName(target)!; + Directory.CreateDirectory(targetDir); + + File.Copy(source, target, overwrite: true); + return true; + } + catch (Exception e) + { + this.ServiceEvent?.Invoke(this, new ServiceEventArg { Exception = e }); + return false; + } + }, cancellationToken); + } } }