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) { func applicationDidFinishLaunching(_ notification: Notification) {
LanguageModelManager.setupDataModelValueConverter() LanguageModelManager.setupDataModelValueConverter()
LanguageModelManager.loadDataModels()
LanguageModelManager.loadUserPhrases() LanguageModelManager.loadUserPhrases()
LanguageModelManager.loadUserPhraseReplacement() LanguageModelManager.loadUserPhraseReplacement()

View File

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

View File

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

View File

@ -60,6 +60,16 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, McBopomo
LTLoadLanguageModelFile(@"data-plain-bpmf", gLanguageModelPlainBopomofo); 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 + (void)loadUserPhrases
{ {
gLanguageModelMcBopomofo.loadUserPhrases([[self userPhrasesDataPathMcBopomofo] UTF8String], [[self excludedPhrasesDataPathMcBopomofo] UTF8String]); gLanguageModelMcBopomofo.loadUserPhrases([[self userPhrasesDataPathMcBopomofo] UTF8String], [[self excludedPhrasesDataPathMcBopomofo] UTF8String]);