public TranslateWindow()
        {
            InitializeComponent();

            IsShowSource = true;

            GameTextHistory = new Queue <string>();

            this.Topmost = true;
            UI_Init();
            IsOCRingFlag = false;

            mh = new MecabHelper();

            IsPauseFlag = true;
            translator1 = TranslatorAuto(Common.appSettings.FirstTranslator);
            translator2 = TranslatorAuto(Common.appSettings.SecondTranslator);

            bth = new BeforeTransHandle(Convert.ToString(Common.GameID), Common.UsingSrcLang, Common.UsingDstLang);
            ath = new AfterTransHandle(bth);

            if (Common.transMode == 1)
            {
                Common.textHooker.Sevent += DataRecvEventHandler;
            }
            else if (Common.transMode == 2)
            {
                MouseKeyboardHook_Init();
            }
        }
Esempio n. 2
0
        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            Common.appSettings.TF_LocX  = Convert.ToString((int)this.Left);
            Common.appSettings.TF_LocY  = Convert.ToString((int)this.Top);
            Common.appSettings.TF_SizeW = Convert.ToString((int)this.Width);
            Common.appSettings.TF_SizeH = Convert.ToString((int)this.Height);

            if (hook != null)
            {
                hook.Stop();
                hook = null;
            }

            if (Common.textHooker != null)
            {
                Common.textHooker.Sevent -= DataRecvEventHandler;
                Common.textHooker.StopHook();
                Common.textHooker = null;
            }

            dtimer.Stop();
            dtimer = null;

            //立即清一次,否则重复打开翻译窗口会造成异常:Mecab处理类库异常
            _mecabHelper = null;
            GC.Collect();
        }
Esempio n. 3
0
        public MecabViewModel(GameViewModel gameViewModel, CardViewModel cardViewModel, MecabHelper mecabHelper)
        {
            this.gameViewModel = gameViewModel;
            this.cardViewModel = cardViewModel;
            this.mecabHelper   = mecabHelper;

            CanEnableMecab = mecabHelper.CanCreateTagger;
        }
Esempio n. 4
0
        private IntPtr winHandle;                   //窗口句柄,用于设置活动窗口,以达到全屏状态下总在最前的目的

        public TranslateWindow()
        {
            InitializeComponent();

            _isShowSource = true;
            _isLocked     = false;

            _gameTextHistory = new Queue <string>();

            this.Topmost = true;
            UI_Init();
            IsOCRingFlag = false;


            _mecabHelper = new MecabHelper();

            _textSpeechHelper = new TextSpeechHelper();
            if (Common.appSettings.ttsVoice == "")
            {
                Growl.InfoGlobal(Application.Current.Resources["TranslateWin_NoTTS_Hint"].ToString());
            }
            else
            {
                _textSpeechHelper.SetTTSVoice(Common.appSettings.ttsVoice);
                _textSpeechHelper.SetVolume(Common.appSettings.ttsVolume);
                _textSpeechHelper.SetRate(Common.appSettings.ttsRate);
            }

            if (Common.appSettings.xxgPath != string.Empty)
            {
                _dict = new XxgJpzhDict();
                _dict.DictInit(Common.appSettings.xxgPath, string.Empty);
            }

            IsPauseFlag  = true;
            _translator1 = TranslatorAuto(Common.appSettings.FirstTranslator);
            _translator2 = TranslatorAuto(Common.appSettings.SecondTranslator);

            _beforeTransHandle = new BeforeTransHandle(Convert.ToString(Common.GameID), Common.UsingSrcLang, Common.UsingDstLang);
            _afterTransHandle  = new AfterTransHandle(_beforeTransHandle);

            _artificialTransHelper = new ArtificialTransHelper(Convert.ToString(Common.GameID));

            if (Common.transMode == 1)
            {
                Common.textHooker.Sevent += DataRecvEventHandler;
            }
            else if (Common.transMode == 2)
            {
                MouseKeyboardHook_Init();
            }
        }
Esempio n. 5
0
        public GameViewDataService(MecabHelper mecabHelper)
        {
            this.mecabHelper = mecabHelper;

            if (mecabHelper.CanCreateTagger)
            {
                mecabHelper.CreateTagger();
            }
            else
            {
                if (DataRepository.EnableMecab)
                {
                    DataRepository.EnableMecab = false;
                }
            }
        }
Esempio n. 6
0
        // FIXME: learn new way
        // https://stackoverflow.com/questions/20099743/how-do-i-get-design-time-view-of-a-view-model-first-approach-with-ioc
        // This make design view but get wrong in Real mode
        //public GameViewModel() : this(new DesignGameDataService()) { }
        /// <summary>
        /// Initializes a new instance of the MainViewModel class.
        /// </summary>
        public GameViewModel(IGameDataService dataService)
        {
            log.Info("Initialize");
            TextTemplateConfig = TextTemplateType.OutLineKanaBottom;

            _dataService          = dataService;
            DisplayTextCollection = _dataService.InitTextData(TextTemplateConfig);

            if (IsInDesignMode)
            {
                // Code runs in Blend --> create design time data.
                CardInfo = new WordCardInfo()
                {
                    Word      = "買う",
                    Ruby      = "かう",
                    IsProcess = false,
                    Hinshi    = "動詞",
                    Kaisetsu  = new ObservableCollection <string>()
                    {
                        "1. 多,多数,许多。(たくさん。多くのもの。)",
                        "2. 多半,大都。(ふつう。一般に。たいてい。)"
                    }
                };

                MainHeight = 800;
                MainWidth  = 600;
            }
            else
            {
                // Code runs "for real"
                CardInfo          = new WordCardInfo();
                _mecabHelper      = new MecabHelper();
                _mojiHelper       = new MojiDictApi();
                _baiduHelper      = new BaiduWebTranslator();
                WordSearchCommand = new RelayCommand <SingleTextItem>(WordSearch, CanWordSearch);
                PopupCloseCommand = new RelayCommand(() => Messenger.Default.Send(new NotificationMessage("CloseCard")));
                PinCommand        = new RelayCommand(() => TextPanelPin = !TextPanelPin);
                TranslateCommand  = new RelayCommand(FakeDoTranslate);
                TranslateTextList = new ObservableCollection <string>();

                Textractor.SelectedDataEvent += SelectedDataEventHandler;
            }
        }
Esempio n. 7
0
        public TranslateWindow()
        {
            InitializeComponent();

            _isShowSource = true;

            _gameTextHistory = new Queue <string>();

            this.Topmost = true;
            UI_Init();
            IsOCRingFlag = false;

            _mecabHelper = new MecabHelper();

            if (Common.appSettings.xxgPath != string.Empty)
            {
                _dict = new XxgJpzhDict();
                _dict.DictInit(Common.appSettings.xxgPath, string.Empty);
            }


            IsPauseFlag  = true;
            _translator1 = TranslatorAuto(Common.appSettings.FirstTranslator);
            _translator2 = TranslatorAuto(Common.appSettings.SecondTranslator);

            _beforeTransHandle = new BeforeTransHandle(Convert.ToString(Common.GameID), Common.UsingSrcLang, Common.UsingDstLang);
            _afterTransHandle  = new AfterTransHandle(_beforeTransHandle);

            if (Common.transMode == 1)
            {
                Common.textHooker.Sevent += DataRecvEventHandler;
            }
            else if (Common.transMode == 2)
            {
                MouseKeyboardHook_Init();
            }
        }