From d685e45f2f3ddf0bf32b92696cf5733211084bf2 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 17 Jul 2022 21:10:10 +0800 Subject: [PATCH] mgrLM // Populate with templates. --- .../LangModelRelated/mgrLangModel.swift | 20 ++++++++++++---- Source/Resources/template-exclusions.txt | 12 ++++++++++ Source/Resources/template-replacements.txt | 12 ++++++++++ Source/Resources/template-userphrases.txt | 12 ++++++++++ .../Resources/template-usersymbolphrases.txt | 12 ++++++++++ vChewing.xcodeproj/project.pbxproj | 24 +++++++++++++++++++ 6 files changed, 87 insertions(+), 5 deletions(-) create mode 100644 Source/Resources/template-exclusions.txt create mode 100644 Source/Resources/template-replacements.txt create mode 100644 Source/Resources/template-userphrases.txt create mode 100644 Source/Resources/template-usersymbolphrases.txt diff --git a/Source/Modules/LangModelRelated/mgrLangModel.swift b/Source/Modules/LangModelRelated/mgrLangModel.swift index 711f2b45..82efb2ce 100644 --- a/Source/Modules/LangModelRelated/mgrLangModel.swift +++ b/Source/Modules/LangModelRelated/mgrLangModel.swift @@ -36,6 +36,14 @@ private var gLangModelCHT = vChewing.LMInstantiator() private var gUserOverrideModelCHS = vChewing.LMUserOverride() private var gUserOverrideModelCHT = vChewing.LMUserOverride() +/// 使用者辭典資料預設範例檔案名稱。 +private let kTemplateNameUserPhrases = "template-userphrases" +private let kTemplateNameUserReplacements = "template-replacements" +private let kTemplateNameUserExclusions = "template-exclusions" +private let kTemplateNameUserSymbolPhrases = "template-usersymbolphrases" +private let kTemplateNameUserAssociatesCHS = "template-associatedPhrases-chs" +private let kTemplateNameUserAssociatesCHT = "template-associatedPhrases-cht" + enum mgrLangModel { /// 寫幾個回傳函式、供其餘控制模組來讀取那些被設為 fileprivate 的器外變數。 public static var lmCHS: vChewing.LMInstantiator { gLangModelCHS } @@ -314,11 +322,13 @@ enum mgrLangModel { /// SymbolNode 資料與 UserOverrideModel 半衰模組資料檔案不需要強行確保存在。 /// 前者的話,需要該檔案存在的人自己會建立。 /// 後者的話,你在敲字時自己就會建立。 - if !ensureFileExists(userPhrasesDataURL(mode)) - || !ensureFileExists(userAssociatesDataURL(mode)) - || !ensureFileExists(userFilteredDataURL(mode)) - || !ensureFileExists(userReplacementsDataURL(mode)) - || !ensureFileExists(userSymbolDataURL(mode)) + if !ensureFileExists(userPhrasesDataURL(mode), populateWithTemplate: kTemplateNameUserPhrases) + || !ensureFileExists( + userAssociatesDataURL(mode), + populateWithTemplate: mode == .imeModeCHS ? kTemplateNameUserAssociatesCHS : kTemplateNameUserAssociatesCHT) + || !ensureFileExists(userFilteredDataURL(mode), populateWithTemplate: kTemplateNameUserExclusions) + || !ensureFileExists(userReplacementsDataURL(mode), populateWithTemplate: kTemplateNameUserReplacements) + || !ensureFileExists(userSymbolDataURL(mode), populateWithTemplate: kTemplateNameUserSymbolPhrases) { return false } diff --git a/Source/Resources/template-exclusions.txt b/Source/Resources/template-exclusions.txt new file mode 100644 index 00000000..3a4df021 --- /dev/null +++ b/Source/Resources/template-exclusions.txt @@ -0,0 +1,12 @@ +# 𝙵𝙾𝚁𝙼𝙰𝚃 𝚘𝚛𝚐.𝚊𝚝𝚎𝚕𝚒𝚎𝚛𝙸𝚗𝚖𝚞.𝚟𝚌𝚑𝚎𝚠𝚒𝚗𝚐.𝚞𝚜𝚎𝚛𝙻𝚊𝚗𝚐𝚞𝚊𝚐𝚎𝙼𝚘𝚍𝚎𝚕𝙳𝚊𝚝𝚊.𝚏𝚘𝚛𝚖𝚊𝚝𝚝𝚎𝚍 +# 按照下述格式「字詞 注音-注音」的方式在本文內添入的字詞記錄會被輸入法的所有辭典都排除掉。 +# 按照下述格式「字词 注音-注音」的方式在本文内添入的字词记录会被输入法的所有辞典都排除掉。 +# 下記の格式「候補 注音-注音」のよう、このファイルで登録した入力候補は、全辞書から排除されます。 +# By using the format "Candidate Reading-Reading", all candidate pairs registered in this file will be blocked among all dictionaries. +# +# 北七 ㄅㄟˇ-ㄑㄧ +# +# 如果任何一行以半形英數「#」或者空格開頭,則該行將被忽略。 +# 如果任何一行以半角英数「#」或者空格开头,则该行将被忽略。 +# 頭文字が半角英数「#」或いは「スペース」の行は効けません。 +# Lines begin with an ASCII sharp symbol or a space will be omitted. diff --git a/Source/Resources/template-replacements.txt b/Source/Resources/template-replacements.txt new file mode 100644 index 00000000..555fd678 --- /dev/null +++ b/Source/Resources/template-replacements.txt @@ -0,0 +1,12 @@ +# 𝙵𝙾𝚁𝙼𝙰𝚃 𝚘𝚛𝚐.𝚊𝚝𝚎𝚕𝚒𝚎𝚛𝙸𝚗𝚖𝚞.𝚟𝚌𝚑𝚎𝚠𝚒𝚗𝚐.𝚞𝚜𝚎𝚛𝙻𝚊𝚗𝚐𝚞𝚊𝚐𝚎𝙼𝚘𝚍𝚎𝚕𝙳𝚊𝚝𝚊.𝚏𝚘𝚛𝚖𝚊𝚝𝚝𝚎𝚍 +# 按照下述格式「字詞 新字詞」的方式在本文內添入的字詞記錄才會生效。 +# 按照下述格式「字词 新字词」的方式在本文内添入的字词记录才会生效。 +# 下記の格式「候補 新候補」のよう、このファイルで登録した入力候補は効きます。 +# By using the format "Candidate NewCandidate", all entries registered in this file will be effective. +# +# 歐陽修 歐陽脩 +# +# 如果任何一行以半形英數「#」或者空格開頭,則該行將被忽略。 +# 如果任何一行以半角英数「#」或者空格开头,则该行将被忽略。 +# 頭文字が半角英数「#」或いは「スペース」の行は効けません。 +# Lines begin with an ASCII sharp symbol or a space will be omitted. diff --git a/Source/Resources/template-userphrases.txt b/Source/Resources/template-userphrases.txt new file mode 100644 index 00000000..b2455288 --- /dev/null +++ b/Source/Resources/template-userphrases.txt @@ -0,0 +1,12 @@ +# 𝙵𝙾𝚁𝙼𝙰𝚃 𝚘𝚛𝚐.𝚊𝚝𝚎𝚕𝚒𝚎𝚛𝙸𝚗𝚖𝚞.𝚟𝚌𝚑𝚎𝚠𝚒𝚗𝚐.𝚞𝚜𝚎𝚛𝙻𝚊𝚗𝚐𝚞𝚊𝚐𝚎𝙼𝚘𝚍𝚎𝚕𝙳𝚊𝚝𝚊.𝚏𝚘𝚛𝚖𝚊𝚝𝚝𝚎𝚍 +# 按照下述格式「字詞 注音-注音」的方式在本文內添入的字詞記錄才會生效。 +# 按照下述格式「字词 注音-注音」的方式在本文内添入的字词记录才会生效。 +# 下記の格式「候補 注音-注音」のよう、このファイルで登録した入力候補は効きます。 +# By using the format "Candidate Reading-Reading", all entries registered in this file will be effective. +# +# 我是自訂語彙 ㄨㄛˇ-ㄕˋ-ㄗˋ-ㄉㄧㄥˋ-ㄩˇ-ㄏㄨㄟˋ +# +# 如果任何一行以半形英數「#」或者空格開頭,則該行將被忽略。 +# 如果任何一行以半角英数「#」或者空格开头,则该行将被忽略。 +# 頭文字が半角英数「#」或いは「スペース」の行は効けません。 +# Lines begin with an ASCII sharp symbol or a space will be omitted. diff --git a/Source/Resources/template-usersymbolphrases.txt b/Source/Resources/template-usersymbolphrases.txt new file mode 100644 index 00000000..4419e49c --- /dev/null +++ b/Source/Resources/template-usersymbolphrases.txt @@ -0,0 +1,12 @@ +# 𝙵𝙾𝚁𝙼𝙰𝚃 𝚘𝚛𝚐.𝚊𝚝𝚎𝚕𝚒𝚎𝚛𝙸𝚗𝚖𝚞.𝚟𝚌𝚑𝚎𝚠𝚒𝚗𝚐.𝚞𝚜𝚎𝚛𝙻𝚊𝚗𝚐𝚞𝚊𝚐𝚎𝙼𝚘𝚍𝚎𝚕𝙳𝚊𝚝𝚊.𝚏𝚘𝚛𝚖𝚊𝚝𝚝𝚎𝚍 +# 按照下述格式「字詞 注音-注音」的方式在本文內添入的字詞記錄才會生效。 +# 按照下述格式「字词 注音-注音」的方式在本文内添入的字词记录才会生效。 +# 下記の格式「候補 注音-注音」のよう、このファイルで登録した入力候補は効きます。 +# By using the format "Candidate Reading-Reading", all entries registered in this file will be effective. +# +# ⚠︎ ㄐㄧㄥˇ-ㄍㄠˋ +# +# 如果任何一行以半形英數「#」或者空格開頭,則該行將被忽略。 +# 如果任何一行以半角英数「#」或者空格开头,则该行将被忽略。 +# 頭文字が半角英数「#」或いは「スペース」の行は効けません。 +# Lines begin with an ASCII sharp symbol or a space will be omitted. diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index 3157bf14..9add383c 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -109,6 +109,12 @@ 5BEDB723283B4C250078EB25 /* data-cht.plist in Resources */ = {isa = PBXBuildFile; fileRef = 5BEDB720283B4AEA0078EB25 /* data-cht.plist */; }; 5BEDB724283B4C250078EB25 /* data-symbols.plist in Resources */ = {isa = PBXBuildFile; fileRef = 5BEDB71E283B4AEA0078EB25 /* data-symbols.plist */; }; 5BEDB725283B4C250078EB25 /* data-chs.plist in Resources */ = {isa = PBXBuildFile; fileRef = 5BEDB71C283B4AEA0078EB25 /* data-chs.plist */; }; + 5BF9DA2728840E6200DBD48E /* template-usersymbolphrases.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5BF9DA2228840E6200DBD48E /* template-usersymbolphrases.txt */; }; + 5BF9DA2828840E6200DBD48E /* template-exclusions.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5BF9DA2328840E6200DBD48E /* template-exclusions.txt */; }; + 5BF9DA2928840E6200DBD48E /* template-associatedPhrases-chs.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5BF9DA2428840E6200DBD48E /* template-associatedPhrases-chs.txt */; }; + 5BF9DA2A28840E6200DBD48E /* template-replacements.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5BF9DA2528840E6200DBD48E /* template-replacements.txt */; }; + 5BF9DA2B28840E6200DBD48E /* template-userphrases.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5BF9DA2628840E6200DBD48E /* template-userphrases.txt */; }; + 5BF9DA2D288427E000DBD48E /* template-associatedPhrases-cht.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5BF9DA2C2884247800DBD48E /* template-associatedPhrases-cht.txt */; }; 6A187E2616004C5900466B2E /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6A187E2816004C5900466B2E /* MainMenu.xib */; }; 6A225A1F23679F2600F685C6 /* NotarizedArchives in Resources */ = {isa = PBXBuildFile; fileRef = 6A225A1E23679F2600F685C6 /* NotarizedArchives */; }; 6A2E40F6253A69DA00D1AE1D /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6A2E40F5253A69DA00D1AE1D /* Images.xcassets */; }; @@ -306,6 +312,12 @@ 5BEDB71E283B4AEA0078EB25 /* data-symbols.plist */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; name = "data-symbols.plist"; path = "Data/data-symbols.plist"; sourceTree = ""; }; 5BEDB71F283B4AEA0078EB25 /* data-zhuyinwen.plist */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; name = "data-zhuyinwen.plist"; path = "Data/data-zhuyinwen.plist"; sourceTree = ""; }; 5BEDB720283B4AEA0078EB25 /* data-cht.plist */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; name = "data-cht.plist"; path = "Data/data-cht.plist"; sourceTree = ""; }; + 5BF9DA2228840E6200DBD48E /* template-usersymbolphrases.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; path = "template-usersymbolphrases.txt"; sourceTree = ""; usesTabs = 0; }; + 5BF9DA2328840E6200DBD48E /* template-exclusions.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; path = "template-exclusions.txt"; sourceTree = ""; usesTabs = 0; }; + 5BF9DA2428840E6200DBD48E /* template-associatedPhrases-chs.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "template-associatedPhrases-chs.txt"; path = "../Data/components/chs/template-associatedPhrases-chs.txt"; sourceTree = ""; usesTabs = 0; }; + 5BF9DA2528840E6200DBD48E /* template-replacements.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; path = "template-replacements.txt"; sourceTree = ""; usesTabs = 0; }; + 5BF9DA2628840E6200DBD48E /* template-userphrases.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; path = "template-userphrases.txt"; sourceTree = ""; usesTabs = 0; }; + 5BF9DA2C2884247800DBD48E /* template-associatedPhrases-cht.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "template-associatedPhrases-cht.txt"; path = "../Data/components/cht/template-associatedPhrases-cht.txt"; sourceTree = ""; }; 5BFDF48C27B51867009523B6 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Main.strings"; sourceTree = ""; }; 6A0D4EA215FC0D2D00ABF4B3 /* vChewing.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = vChewing.app; sourceTree = BUILT_PRODUCTS_DIR; }; 6A0D4EF515FC0DA600ABF4B3 /* IME-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "IME-Info.plist"; sourceTree = ""; }; @@ -502,6 +514,12 @@ 5B62A33027AE78E500A19448 /* Resources */ = { isa = PBXGroup; children = ( + 5BF9DA2428840E6200DBD48E /* template-associatedPhrases-chs.txt */, + 5BF9DA2C2884247800DBD48E /* template-associatedPhrases-cht.txt */, + 5BF9DA2328840E6200DBD48E /* template-exclusions.txt */, + 5BF9DA2528840E6200DBD48E /* template-replacements.txt */, + 5BF9DA2628840E6200DBD48E /* template-userphrases.txt */, + 5BF9DA2228840E6200DBD48E /* template-usersymbolphrases.txt */, 6A0D4EEE15FC0DA600ABF4B3 /* Images */, 5BBBB76E27AED70B0023B93A /* MenuIcons */, 5BBBB75C27AED54C0023B93A /* SoundFiles */, @@ -984,6 +1002,7 @@ 5B84579E2871AD2200C93B01 /* convdict.plist in Resources */, 5BBBB77427AED70B0023B93A /* MenuIcon-SCVIM@2x.png in Resources */, D4E33D8A27A838CF006DB1CF /* Localizable.strings in Resources */, + 5BF9DA2828840E6200DBD48E /* template-exclusions.txt in Resources */, 5BDCBB2E27B4E67A00D0CC59 /* vChewingPhraseEditor.app in Resources */, 5BBBB76027AED54C0023B93A /* Fart.m4a in Resources */, 6A2E40F6253A69DA00D1AE1D /* Images.xcassets in Resources */, @@ -991,12 +1010,17 @@ 5BBBB76B27AED5DB0023B93A /* frmNonModalAlertWindow.xib in Resources */, 5BEDB723283B4C250078EB25 /* data-cht.plist in Resources */, 5BEDB721283B4C250078EB25 /* data-cns.plist in Resources */, + 5BF9DA2D288427E000DBD48E /* template-associatedPhrases-cht.txt in Resources */, 5BEDB725283B4C250078EB25 /* data-chs.plist in Resources */, + 5BF9DA2928840E6200DBD48E /* template-associatedPhrases-chs.txt in Resources */, 5BBBB76D27AED5DB0023B93A /* frmAboutWindow.xib in Resources */, + 5BF9DA2B28840E6200DBD48E /* template-userphrases.txt in Resources */, 5BBBB77527AED70B0023B93A /* MenuIcon-SCVIM.png in Resources */, 5BEDB722283B4C250078EB25 /* data-zhuyinwen.plist in Resources */, + 5BF9DA2728840E6200DBD48E /* template-usersymbolphrases.txt in Resources */, 5BEDB724283B4C250078EB25 /* data-symbols.plist in Resources */, 5B7BC4B027AFFBE800F66C24 /* frmPrefWindow.xib in Resources */, + 5BF9DA2A28840E6200DBD48E /* template-replacements.txt in Resources */, 5BBBB77327AED70B0023B93A /* MenuIcon-TCVIM@2x.png in Resources */, 5BBBB77627AED70B0023B93A /* MenuIcon-TCVIM.png in Resources */, 6A187E2616004C5900466B2E /* MainMenu.xib in Resources */,