public override ReadOnlyLanguagePairCollection GetLanguagePairs() { PrepareProcessing(); LanguagePairCollection result = new LanguagePairCollection(); int index; foreach (ServiceItemData sid in services) { if (Subjects.BinarySearch(sid.Subject) >= 0) { index = result.BinarySearch(sid.LanguagePair); if (index < 0) { result.Insert(~index, sid.LanguagePair); } } } return(new ReadOnlyLanguagePairCollection(result)); }
public override ReadOnlyServiceSettingCollection GetServiceSettings(string phrase, LanguagePair languagePair) { ServiceSettingCollection result = new ServiceSettingCollection(); PrepareProcessing(); foreach (KeyValuePair <LanguagePair, ServiceItemsCollection> kvp in Manager.LanguagePairServiceItems) { if (disabledSourceLanguages.BinarySearch(kvp.Key.From) >= 0) { continue; } if (disabledTargetLanguages.BinarySearch(kvp.Key.To) >= 0) { continue; } foreach (ServiceItem si in kvp.Value) { if ( (kvp.Key.From == languagePair.From || languagePair.From == Language.Any) && (kvp.Key.To == languagePair.To || languagePair.To == Language.Any || (IncludeMonolingualDictionaryInTranslation && si is MonolingualDictionary) ) ) { foreach (string subject in si.SupportedSubjects) { if (Subjects.BinarySearch(subject) >= 0) { ServiceItemSetting tsetting = new ServiceItemSetting(kvp.Key, subject, si, TranslateOptions.Instance.GetNetworkSetting(si.Service)); result.Add(tsetting); } } } } } return(new ReadOnlyServiceSettingCollection(result)); }
public override ReadOnlyLanguagePairCollection GetLanguagePairs() { PrepareProcessing(); LanguagePairCollection result = new LanguagePairCollection(); int index; foreach (ServiceItem item in Manager.ServiceItems) { foreach (string subject in item.SupportedSubjects) { if (Subjects.BinarySearch(subject) >= 0) { foreach (LanguagePair lp in item.SupportedTranslations) { if (disabledSourceLanguages.BinarySearch(lp.From) >= 0) { continue; } if (disabledTargetLanguages.BinarySearch(lp.To) >= 0) { continue; } index = result.BinarySearch(lp); if (index < 0) { result.Insert(~index, lp); } } } } } return(new ReadOnlyLanguagePairCollection(result)); }
public override ReadOnlyServiceSettingCollection GetServiceSettings(string phrase, LanguagePair languagePair) { PrepareProcessing(); ServiceSettingCollection result = new ServiceSettingCollection(); int index; foreach (ServiceItemData sid in services) { if ( (sid.LanguagePair.From == languagePair.From || languagePair.From == Language.Any) && (sid.LanguagePair.To == languagePair.To || languagePair.To == Language.Any) ) { index = Subjects.BinarySearch(sid.Subject); if (index >= 0) { ServiceItemSetting tsetting = new ServiceItemSetting(sid.LanguagePair, sid.Subject, sid.ServiceItem, TranslateOptions.Instance.GetNetworkSetting(sid.ServiceItem.Service)); result.Add(tsetting); } } } return(new ReadOnlyServiceSettingCollection(result)); }