private void GetProvidersAndLanguages() { Enchant enchant = new Enchant(); enchant.Open(); Logger.Info("[Spellcheck] Found Enchant version: {0}", enchant.Version); providers = enchant.GetProviders(); Logger.Info("[Spellcheck] Found {0} providers: {1}", providers.Length, string.Join(",", providers)); string[] langTags = enchant.GetLanguages(); ArrayList langs = new ArrayList(); foreach (string langTag in langTags) { SpellLanguage language = new SpellLanguage(langTag); if (!langs.Contains(language)) { langs.Add(language); } } langs.Sort(); languages = (SpellLanguage[])langs.ToArray(typeof(SpellLanguage)); Logger.Info("[Spellcheck] Found {0} languages: {1}", languages.Length, GetLanguageIDsAsString(languages)); enchant.Close(); }
public void SetActiveLanguageIndex(SubtitleTextType textType, int index) { bool isEmpty = ((index < 0) || (index >= languages.Length)); SpellLanguage activeLanguage = null; if (isEmpty) { index = -1; } else { activeLanguage = languages[index] as SpellLanguage; } Logger.Info("[Spellcheck] Setting active {0} language: {1}", textType, (activeLanguage == null ? "none." : activeLanguage.ID)); /* Set index variable */ if (textType == SubtitleTextType.Text) { activeTextLanguageIndex = index; } else { activeTranslationLanguageIndex = index; } string activeLanguageID = (isEmpty ? String.Empty : activeLanguage.ID); SetActiveLanguageInConfig(textType, activeLanguageID); EmitLanguageChanged(textType); }
/* Event members */ private void OnLanguageList(string langTag, string providerName, string providerDesc, string providerFile, IntPtr userdata) { SpellLanguage language = new SpellLanguage(langTag); if (!languages.Contains(language)) { languages.Add(language); } }
private int GetLanguageIndex(string languageID) { for (int index = 0; index < languages.Length; index++) { SpellLanguage language = languages[index] as SpellLanguage; if (language.ID == languageID) { return(index); } } return(-1); }
private bool GtkSpellSetLanguage (SpellLanguage language) { if (language == null) { if (IsGtkSpellAttached()) { GtkSpellDetach(); } return false; } else { if (!IsGtkSpellAttached()) { GtkSpellAttach(); } bool result = gtkspell_set_language(spellTextView, language.ID, IntPtr.Zero); if (!result) GtkSpellDetach(); return result; } }