Lazy loads language models.

This commit is contained in:
zonble 2022-01-30 06:38:16 +08:00
parent c3d953c618
commit 2c0a12f43f
4 changed files with 13 additions and 1 deletions

View File

@ -153,7 +153,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NonModalAlertWindowControlle
func applicationDidFinishLaunching(_ notification: Notification) {
LanguageModelManager.setupDataModelValueConverter()
LanguageModelManager.loadDataModels()
LanguageModelManager.loadUserPhrases()
LanguageModelManager.loadUserPhraseReplacement()

View File

@ -127,6 +127,7 @@ class McBopomofoInputMethodController: IMKInputController {
override func setValue(_ value: Any!, forTag tag: Int, client: Any!) {
let newInputMode = InputMode(rawValue: value as? String ?? InputMode.bopomofo.rawValue)
LanguageModelManager.loadDataModel(newInputMode)
if keyHandler.inputMode != newInputMode {
UserDefaults.standard.synchronize()
// Remember to override the keyboard layout again -- treat this as an activate event.

View File

@ -22,12 +22,14 @@
// OTHER DEALINGS IN THE SOFTWARE.
#import <Foundation/Foundation.h>
#import "KeyHandler.h"
NS_ASSUME_NONNULL_BEGIN
@interface LanguageModelManager : NSObject
+ (void)loadDataModels;
+ (void)loadDataModel:(InputMode)mode;
+ (void)loadUserPhrases;
+ (void)loadUserPhraseReplacement;
+ (void)setupDataModelValueConverter;

View File

@ -60,6 +60,16 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, McBopomo
LTLoadLanguageModelFile(@"data-plain-bpmf", gLanguageModelPlainBopomofo);
}
+ (void)loadDataModel:(InputMode)mode
{
if ([mode isEqualToString:InputModeBopomofo]) {
LTLoadLanguageModelFile(@"data", gLanguageModelMcBopomofo);
}
if ([mode isEqualToString:InputModePlainBopomofo]) {
LTLoadLanguageModelFile(@"data-plain-bpmf", gLanguageModelPlainBopomofo);
}
}
+ (void)loadUserPhrases
{
gLanguageModelMcBopomofo.loadUserPhrases([[self userPhrasesDataPathMcBopomofo] UTF8String], [[self excludedPhrasesDataPathMcBopomofo] UTF8String]);