Ejemplo n.º 1
0
 private string GetFilename(Dialect dialect)
 {
     return(Pronunciations
            .Where(x => x.Prefix == dialect.ToString())
            .Select(x => x.Filename)
            .First());
 }
Ejemplo n.º 2
0
        protected static bool UpdatePronunciation(PronModel Pron)
        {
            var    oldPron         = Pronunciations.First(c => c.Id == Pron.Id).ToModel();
            int    field           = 0;
            string ColumnsToUpdate = string.Empty;

            CheckFieldUpdate("Words", Pron.Text, oldPron.Text, ref field, ref ColumnsToUpdate);
            CheckFieldUpdate("Phonemes", Pron.Phonemes, oldPron.Phonemes, ref field, ref ColumnsToUpdate);

            CheckQuestionChanges(Pron, oldPron, ref field, ref ColumnsToUpdate);

            if (ColumnsToUpdate.IsEmpty())
            {
                return(Errors.ThrowErrorMsg(ErrorType.NullOrEmpty, ColumnsToUpdate));
            }

            string query = string.Format(UpdateSQL, Model.Pron.ToDesc(), ColumnsToUpdate, Pron.Id);

            if (!SendQuery(query))
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 3
0
 public VoiceBox()
 {
     _settings                = Settings.Instance;
     _pronunciations          = Pronunciations.Instance;
     _pronunciationDictionary = new Dictionary <string, string>();
     _speech       = new SpeechSynthesizer();
     _speech.Voice = _settings.SettingsVoice;
     _loadPronunciations();
 }
 public ViewModelPronunciations()
 {
     _pronunciations          = Pronunciations.Instance;
     _pronunciationCollection = new ObservableCollection <Pronunciation>();
     PronunciationWord        = "";
     PronunciationSound       = "";
     SelectionMode            = false;
     _notifier = new TaskNotifier(this);
     _loadPronunciations();
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Reads alternate pronunciations from the pronunciations file
        /// </summary>
        /// <returns>true on success</returns>
        private bool loadPronunciations(CultureInfo ci)
        {
            if (_pronunciations != null)
            {
                _pronunciations.Dispose();
            }

            _pronunciations = new Pronunciations();

            return(_pronunciations.Load(ci, SAPISettings.PronunciationsFile));
        }
Ejemplo n.º 6
0
        protected static bool RemovePronunciation(PronVM Pron)
        {
            string query = string.Format(RemoveSQL, Model.Pron.ToDesc(), Pron.Id);

            if (!SendQuery(query))
            {
                return(false);
            }

            Pronunciations.Remove(Pron);

            return(true);
        }
Ejemplo n.º 7
0
        protected static bool InsertPronunciation(PronModel Pron)
        {
            string query = string.Format(InsertSQL + "'{1}', '{2}', {3}, '{4}')",
                                         Model.Pron.ToDesc(),
                                         Pron.Text, Pron.Phonemes,
                                         Pron.Importance, Pron.IsActive);

            if (!SendQuery(query))
            {
                return(false);
            }

            var inserted = GetLast(Model.Pron.ToDesc());

            Pronunciations.Add(inserted.Tables[0].AsEnumerable().
                               Select(GetDatarowPronunciation()).First().ToVM());

            return(true);
        }
Ejemplo n.º 8
0
        public WordViewModel(DictionaryQueryModel Querymodel, params object[] args)
        {
            var model = Querymodel.Result;

            IsLoadingVisibility = Visibility.Collapsed;
            switch (Querymodel.ResultStatus)
            {
            case ResultStatus.Succuss:
                Word = model.Word;
                foreach (var item in model.Pronounciations)
                {
                    if (item.PhoneticSymbol != string.Empty || item.SoundUri != string.Empty)
                    {
                        Pronunciations.Add(new PronounciationViewModel(item));
                    }
                }
                if (model.InflectionWords.Count > 0)
                {
                    foreach (var item in model.InflectionWords)
                    {
                        if (item.Words.Count != 0)
                        {
                            InflectionWords.Add(new InflectionWordViewModel(item));
                        }
                    }
                }
                else
                {
                    InflectionWordsVisibility = Visibility.Collapsed;
                }
                if (model.Definitions.Count > 0)
                {
                    foreach (var item in model.Definitions)
                    {
                        Definitions.Add(new DefinitionViewModel(item));
                    }
                }
                else
                {
                    DefinitionsVisibility = Visibility.Collapsed;
                }
                if (model.SampleSentences.Count > 0)
                {
                    foreach (var item in model.SampleSentences)
                    {
                        SampleSentences.Add(new SampleSentenceViewModel(item));
                    }
                }
                else
                {
                    SampleSentencesVisibility = Visibility.Collapsed;
                }
                break;

            case ResultStatus.WordCantFind:
                FailedVisibility = Visibility.Visible;
                NoticeText       = "找不到单词";
                break;

            case ResultStatus.FailedWithUnknownReason:
                FailedVisibility = Visibility.Visible;
                NoticeText       = "未知错误";
                break;

            case ResultStatus.InputSentence:
                FailedVisibility = Visibility.Visible;
                NoticeText       = "您输入的可能是句子,目前仅支持翻译单词或短词组";
                break;

            case ResultStatus.WrongLanguage:
                FailedVisibility = Visibility.Visible;
                NoticeText       = string.Format("您输入的语言可能是 {0}, 请切换词典", LanguageHelper.GetLanguageName((Language)args[0]));
                break;
            }
        }