diff --git a/Source/Modules/AppDelegate.swift b/Source/Modules/AppDelegate.swift index e8d482ce..b8bcf8df 100644 --- a/Source/Modules/AppDelegate.swift +++ b/Source/Modules/AppDelegate.swift @@ -149,9 +149,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, ctlNonModalAlertWindowDelega // 拖 100ms 再重載,畢竟有些有特殊需求的使用者可能會想使用巨型自訂語彙檔案。 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) { if mgrPrefs.shouldAutoReloadUserDataFiles { - mgrLangModel.loadUserPhrases() - mgrLangModel.loadUserPhraseReplacement() - mgrLangModel.loadUserAssociatedPhrases() + IME.initLangModels(userOnly: true) } } } @@ -176,10 +174,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, ctlNonModalAlertWindowDelega } func applicationDidFinishLaunching(_ notification: Notification) { - mgrLangModel.loadDataModels() // 這句還是不要砍了。 - mgrLangModel.loadUserPhrases() - mgrLangModel.loadUserPhraseReplacement() - mgrLangModel.loadUserAssociatedPhrases() + IME.initLangModels(userOnly: false) fsStreamHelper.delegate = self _ = fsStreamHelper.start() diff --git a/Source/Modules/IME.swift b/Source/Modules/IME.swift index 11b8a007..38f65151 100644 --- a/Source/Modules/IME.swift +++ b/Source/Modules/IME.swift @@ -31,6 +31,18 @@ import Cocoa } } + @objc static func initLangModels(userOnly: Bool) { + if !userOnly { + mgrLangModel.loadDataModels() // 這句還是不要砍了。 + } + // mgrLangModel 的 loadUserPhrases 等函數在自動讀取 dataFolderPath 時, + // 如果發現自訂目錄不可用,則會自動抹去自訂目錄設定、改採預設目錄。 + // 所以這裡不需要特別處理。 + mgrLangModel.loadUserPhrases() + mgrLangModel.loadUserPhraseReplacement() + mgrLangModel.loadUserAssociatedPhrases() + } + @objc static func isDarkMode() -> Bool { if #available(macOS 10.15, *) { let appearanceDescription = NSApplication.shared.effectiveAppearance.debugDescription.lowercased()