void CbToSelectedIndexChanged(object sender, EventArgs e) { if (ignoreLanguageChange) { return; } if (lvProfiles.SelectedItems.Count != 1) { return; } ListViewItem lvi = lvProfiles.SelectedItems[0]; UserTranslateProfile pf = lvi.Tag as UserTranslateProfile; if (pf == null) { return; } LanguageDataContainer ld = cbTo.SelectedItem as LanguageDataContainer; pf.TranslationDirection.To = ld.Language; lvi.SubItems[1].Text = (LangPack.TranslateLanguage(pf.TranslationDirection.From) + " -> " + LangPack.TranslateLanguage(pf.TranslationDirection.To) ); }
void BChangeNameClick(object sender, EventArgs e) { ListViewItem lvi = lvProfiles.SelectedItems[0]; UserTranslateProfile pf = lvi.Tag as UserTranslateProfile; string oldName = pf.Name; SetProfileNameForm nameForm = new SetProfileNameForm(pf as UserTranslateProfile, profiles); DialogResult dr = nameForm.ShowDialog(FindForm()); nameForm.Dispose(); if (dr == DialogResult.Cancel) { pf.Name = oldName; return; } else { profilesHistory.RenameProfile(oldName, pf.Name); } lvi.Text = pf.Name; lProfileName.Text = pf.Name; lvi.SubItems[1].Text = (LangPack.TranslateLanguage(pf.TranslationDirection.From) + " -> " + LangPack.TranslateLanguage(pf.TranslationDirection.To) ); lvi.SubItems[2].Text = LangPack.TranslateString(pf.Subject); LvProfilesSelectedIndexChanged(lvProfiles, new EventArgs()); }
void InitUserProfileControls() { cbFrom.Items.Clear(); cbTo.Items.Clear(); for (int i = 0; i < (int)Language.Last; i++) { LanguageDataContainer ld = new LanguageDataContainer((Language)i, LangPack.TranslateLanguage((Language)i)); cbFrom.Items.Add(ld); cbTo.Items.Add(ld); } cbSubject.Items.Clear(); foreach (string subject in Manager.Subjects) { SubjectContainer sc = new SubjectContainer(subject, LangPack.TranslateString(subject)); cbSubject.Items.Add(sc); } SubjectContainer sc1 = new SubjectContainer(SubjectConstants.Any, LangPack.TranslateString(SubjectConstants.Any)); cbSubject.Items.Add(sc1); changed = false; LvProfilesSelectedIndexChanged(lvProfiles, new EventArgs()); }
void LoadLangToLayout() { DataTable dtLangs = dsMain.Tables["LangToLayouts"]; if (dtLangs.Rows.Count == 0) { for (int i = 1; i < (int)Language.Last; i++) { Language lng = (Language)i; if (lng == Language.Autodetect) { continue; } DataRow row = dtLangs.NewRow(); row["Language"] = lng; row["DisplayName"] = LangPack.TranslateLanguage(lng); row["Layout"] = dontchangeStr; dtLangs.Rows.Add(row); } } else { for (int i = 1; i < (int)Language.Last; i++) { Language lng = (Language)i; if (lng == Language.Autodetect) { continue; } DataRow row = dtLangs.Rows.Find(lng); row["DisplayName"] = LangPack.TranslateLanguage(lng); } } string tooltip; foreach (DataGridViewRow gvRow in dgvLayouts.Rows) { DataRowView rowView = gvRow.DataBoundItem as DataRowView; DataRow row = rowView.Row; if (row.IsNull("SavedLayout")) { break; } row["Changed"] = String.Compare((string)row["Layout"], (string)row["SavedLayout"], false, CultureInfo.InvariantCulture) != 0; row["Auto"] = String.Compare((string)row["Layout"], (string)row["AutoLayout"], false, CultureInfo.InvariantCulture) == 0; gvRow.Cells[2].ReadOnly = (bool)row["Auto"]; gvRow.Cells[3].ReadOnly = !(bool)row["Changed"]; tooltip = GenerateTooltip(row); for (int i = 0; i < 4; i++) { gvRow.Cells[i].ToolTipText = tooltip; } } }
void OnLanguageChanged() { aMoveProfileUp.Hint = TranslateString("Move profile up"); aMoveProfileDown.Hint = TranslateString("Move profile down"); chName.Text = TranslateString("Name"); chDirection.Text = TranslateString("Translation direction"); chSubject.Text = TranslateString("Subject"); lName.Text = TranslateString("Name"); cbIncludeMonolingualDictionaryInTranslation.Text = TranslateString("Include monolingual dictionaries in translation"); aAddProfile.Hint = TranslateString("Add new user profile"); aRemoveProfile.Hint = TranslateString("Remove user profile"); tpDefaultOptions.Text = TranslateString("Options"); tpOptions.Text = TranslateString("Options"); tpServices.Text = TranslateString("Services"); bChangeName.Text = TranslateString("Set profile properties"); lLangPair.Text = TranslateString("Translation direction"); lSubject.Text = TranslateString("Subject"); aEditServices.Hint = TranslateString("Edit services"); aRemoveService.Hint = TranslateString("Remove service"); aMoveServiceUp.Hint = TranslateString("Move service up"); aMoveServiceDown.Hint = TranslateString("Move service down"); tpLanguageSelector.Text = TranslateString("View"); cbShowServices.Text = TranslateString("Show services list"); cbShowLanguages.Text = TranslateString("Show languages list"); cbShowSubjects.Text = TranslateString("Show subjects list"); bLanguageFilter.Text = TranslateString("Filter of languages"); foreach (ListViewItem lvi in lvProfiles.Items) { if (lvi.Tag == defaultProfile) { lvi.Text = TranslateString(TranslateOptions.Instance.DefaultProfile.Name); } else { UserTranslateProfile pf = lvi.Tag as UserTranslateProfile; if (pf != null) { lvi.SubItems[1].Text = (LangPack.TranslateLanguage(pf.TranslationDirection.From) + " -> " + LangPack.TranslateLanguage(pf.TranslationDirection.To) ); lvi.SubItems[2].Text = LangPack.TranslateString(pf.Subject); } } } chDirection.Width = -2; chSubject.Width = -2; InitUserProfileControls(); }
public static string GetShortNameOfTranslateDirection(LanguagePair languagePair) { StringBuilder sb = new StringBuilder(); sb.Append(StringParser.SafeResizeString(LangPack.TranslateLanguage(languagePair.From), 3)); sb.Append("->"); sb.Append(StringParser.SafeResizeString(LangPack.TranslateLanguage(languagePair.To), 3)); return(sb.ToString()); }
void GenerateData() { name = ""; if (!string.IsNullOrEmpty(serviceItemData.ServiceItem.Description)) { name = LangPack.TranslateString(serviceItemData.ServiceItem.Description) + " - "; } name += LangPack.TranslateString(serviceItemData.ServiceItem.Service.FullName); type = ServiceSettingsContainer.GetServiceItemType(serviceItemData.ServiceItem); languagePair = LangPack.TranslateLanguage(serviceItemData.LanguagePair.From) + "->" + LangPack.TranslateLanguage(serviceItemData.LanguagePair.To); subject = LangPack.TranslateString(serviceItemData.Subject); }
string GetNewProfileName() { string nameBase = ""; if (profile.TranslationDirection.From != Language.Any) { nameBase += StringParser.SafeResizeString(LangPack.TranslateLanguage(profile.TranslationDirection.From), 3); } else { nameBase += LangPack.TranslateLanguage(profile.TranslationDirection.From); } nameBase += "->"; if (profile.TranslationDirection.To != Language.Any) { nameBase += StringParser.SafeResizeString(LangPack.TranslateLanguage(profile.TranslationDirection.To), 3); } else { nameBase += LangPack.TranslateLanguage(profile.TranslationDirection.To); } if (profile.Subject != SubjectConstants.Any && profile.Subject != SubjectConstants.Common) { nameBase += "->" + StringParser.SafeResizeString(LangPack.TranslateString(profile.Subject), 3); } if (!IsProfileNameExists(nameBase, profile.Name)) { return(nameBase); } string result; for (int i = 1; i < 1000; i++) { result = nameBase + " " + i.ToString(); if (!IsProfileNameExists(result, profile.Name)) { return(result); } } return(""); }
void LoadLanguages() { LockUpdate(true); lbFrom.BeginUpdate(); lbFrom.Items.Clear(); lbTo.Items.Clear(); LanguageCollection fromLangs = new LanguageCollection(); int index; foreach (LanguagePair lp in languages) { index = fromLangs.BinarySearch(lp.From); if (index < 0) { fromLangs.Insert(~index, lp.From); } } string val = ""; if (fromLangs.Count > 1) { val = "+" + LangPack.TranslateLanguage(Language.Any); lbFrom.Items.Add(new LanguageDataContainer(Language.Any, val)); } foreach (Language l in fromLangs) { val = LangPack.TranslateLanguage(l); if (l == Language.Autodetect) { val = "÷" + val; } lbFrom.Items.Add(new LanguageDataContainer(l, val)); } lbFrom.EndUpdate(); if (lbFrom.Items.Count > 0 && !profileChanging) { lbFrom.SelectedIndex = 0; } LockUpdate(false); }
public void LoadHistory() { //int idx = lbHistory.SelectedIndex; lbHistory.BeginUpdate(); lbHistory.Items.Clear(); foreach (LanguagePair lp in history) { LanguageContainerPair lpc = new LanguageContainerPair( new LanguageDataContainer(lp.From, LangPack.TranslateLanguage(lp.From)), new LanguageDataContainer(lp.To, LangPack.TranslateLanguage(lp.To)) ); lbHistory.Items.Add(lpc); } lbHistory.EndUpdate(); if (history.Count > 0) { lbHistory.SelectedIndex = 0; } }
void LbToSelectedIndexChanged(object sender, EventArgs e) { if (lbFrom.SelectedIndex == -1 || lbTo.SelectedIndex == -1) { return; } Language fromLanguage = ((LanguageDataContainer)lbFrom.SelectedItem).Language; Language toLanguage = ((LanguageDataContainer)lbTo.SelectedItem).Language; selection = new LanguagePair(fromLanguage, toLanguage); lvServicesEnabled.ListViewItemSorter = null; lvServicesDisabled.ListViewItemSorter = null; string caption = LangPack.TranslateLanguage(toLanguage); lTo.Text = caption; if (SelectionChanged != null) { SelectionChanged(this, new EventArgs()); } foreach (LanguageContainerPair lp in lbHistory.Items) { if (lp.From.Language == selection.From && lp.To.Language == selection.To) { lbHistory.SelectedItem = lp; break; } } LoadServices(false); profile.SelectedLanguagePair = selection; if (selection.From != Language.Any && selection.To != Language.Any) { lvServicesEnabled.ListViewItemSorter = profile.ServiceSettingComparer; lvServicesDisabled.ListViewItemSorter = profile.ServiceSettingComparer; } }
void AAddProfileExecute(object sender, EventArgs e) { UserTranslateProfile pf = new UserTranslateProfile(); SetProfileNameForm nameForm = new SetProfileNameForm(pf, profiles); DialogResult dr = nameForm.ShowDialog(FindForm()); nameForm.Dispose(); if (dr == DialogResult.Cancel) { return; } profiles.Add(pf); ListViewItem lvi = new ListViewItem(); lvi.Text = pf.Name; lvi.Tag = pf; lvi.SubItems.Add(LangPack.TranslateLanguage(pf.TranslationDirection.From) + " -> " + LangPack.TranslateLanguage(pf.TranslationDirection.To) ); lvi.SubItems.Add(LangPack.TranslateString(pf.Subject)); lvProfiles.Items.Add(lvi); lvProfiles.Focus(); foreach (ListViewItem lv in lvProfiles.SelectedItems) { lv.Selected = false; lv.Focused = false; } lvi.Selected = true; lvi.Focused = true; AEditServicesExecute(this, new EventArgs()); }
public override void Init() { defaultProfile = (DefaultTranslateProfile)TranslateOptions.Instance.DefaultProfile.Clone(); cbIncludeMonolingualDictionaryInTranslation.Checked = defaultProfile.IncludeMonolingualDictionaryInTranslation; currentProfileName = TranslateOptions.Instance.CurrentProfile.Name; profiles.Clear(); foreach (TranslateProfile pf in TranslateOptions.Instance.Profiles) { if (pf == TranslateOptions.Instance.DefaultProfile) { profiles.Add(defaultProfile); } else { profiles.Add((TranslateProfile)pf.Clone()); } } profilesHistory.Clear(); foreach (ProfilesHistoryData phd in TranslateOptions.Instance.ProfilesHistory) { profilesHistory.Add((ProfilesHistoryData)phd.Clone()); } lvProfiles.Items.Clear(); foreach (TranslateProfile pf in profiles) { ListViewItem lvi = new ListViewItem(); if (pf == defaultProfile) { lvi.Text = TranslateString(pf.Name); } else { lvi.Text = pf.Name; } lvi.Tag = pf; UserTranslateProfile upf = pf as UserTranslateProfile; if (upf != null) { lvi.SubItems.Add(LangPack.TranslateLanguage(upf.TranslationDirection.From) + " -> " + LangPack.TranslateLanguage(upf.TranslationDirection.To) ); lvi.SubItems.Add(LangPack.TranslateString(upf.Subject)); } else { lvi.SubItems.Add(""); lvi.SubItems.Add(""); } lvProfiles.Items.Add(lvi); } lvProfiles.Focus(); lvProfiles.Items[0].Selected = true; lvProfiles.Items[0].Focused = true; InitUserProfileControls(); chDirection.Width = -2; chSubject.Width = -2; }
void LoadLanguages() { SuspendLayout(); lbFrom.Items.Clear(); lbTo.Items.Clear(); LanguageCollection fromLangs = new LanguageCollection(); LanguageCollection toLangs = new LanguageCollection(); foreach (LanguagePair lp in Manager.LanguagePairServiceItems.Keys) { if (!fromLangs.Contains(lp.From)) { fromLangs.Add(lp.From); } if (!toLangs.Contains(lp.To)) { toLangs.Add(lp.To); } } fromLangs.Sort(); string val = ""; int idx; val = "+" + TranslateString("Toggle all"); lbFrom.Items.Add(new LanguageDataContainer(Language.Any, val)); foreach (Language l in fromLangs) { val = LangPack.TranslateLanguage(l); idx = lbFrom.Items.Add(new LanguageDataContainer(l, val)); lbFrom.SetItemChecked(idx, !profile.DisabledSourceLanguages.Contains(l)); } lbFrom.SetItemChecked(0, lbFrom.CheckedItems.Count == fromLangs.Count); if (lbFrom.Items.Count > 0) { lbFrom.SelectedIndex = 0; } toLangs.Sort(); val = "+" + TranslateString("Toggle all"); lbTo.Items.Add(new LanguageDataContainer(Language.Any, val)); foreach (Language l in toLangs) { val = LangPack.TranslateLanguage(l); idx = lbTo.Items.Add(new LanguageDataContainer(l, val)); lbTo.SetItemChecked(idx, !profile.DisabledTargetLanguages.Contains(l)); } lbTo.SetItemChecked(0, lbTo.CheckedItems.Count == toLangs.Count); if (lbTo.Items.Count > 0) { lbTo.SelectedIndex = 0; } ResumeLayout(true); }
void LoadStatus() { //Console.WriteLine("LoadStatus : " + status.Setting.ServiceItem.Service.FullName); Clear(); while (!isClean) { Application.DoEvents(); } Wait(); string name = ""; if (!string.IsNullOrEmpty(status.Setting.ServiceItem.Description)) { name += LangPack.TranslateString(status.Setting.ServiceItem.Description) + " - "; } name += LangPack.TranslateString(status.Setting.ServiceItem.Service.FullName); string htmlString = string.Format(CultureInfo.InvariantCulture, HtmlHelper.ServiceNameFormat, status.Setting.ServiceItem.Service.Url, HttpUtility.HtmlEncode(name)); htmlString += "<br><b>" + LangPack.TranslateString("Type") + "</b> : " + status.Type; if (!shortView) { if (status.Setting.Subject != SubjectConstants.Common) { htmlString += "<br>" + "<b>" + LangPack.TranslateString("Subject") + "</b> : " + LangPack.TranslateString(status.Setting.Subject); } } else { htmlString += ", " + "<b>" + LangPack.TranslateString("Subject") + "</b> : " + LangPack.TranslateString(status.Setting.Subject); } if (showLanguage) { if (!shortView) { htmlString += "<br>" + LangPack.TranslateLanguage(status.Setting.LanguagePair.From) + "->" + LangPack.TranslateLanguage(status.Setting.LanguagePair.To); } else { htmlString += "<br><b>" + LangPack.TranslateString("Translation direction") + "</b> : " + LangPack.TranslateLanguage(status.Setting.LanguagePair.From) + "->" + LangPack.TranslateLanguage(status.Setting.LanguagePair.To); } } if (!shortView) { if (status.DisabledByUser) { htmlString += "<br>" + LangPack.TranslateString("<b>Status</b> : Disabled"); htmlString += string.Format("<br><button id=\"btn\" type=\"button\" align=\"top\" style=\"{0}\">{1}</button>", HtmlHelper.ButtonTextStyle, LangPack.TranslateString("Enable")); } else if (status.Enabled) { htmlString += "<br>" + LangPack.TranslateString("<b>Status</b> : Enabled"); htmlString += string.Format("<br><button id=\"btn\" type=\"button\" align=\"top\" style=\"{0}\">{1}</button>", HtmlHelper.ButtonTextStyle, LangPack.TranslateString("Disable")); } else { htmlString += "<br>" + LangPack.TranslateString("<b>Status</b> : Error"); htmlString += " - " + string.Format("<span style=\"" + HtmlHelper.ErrorTextStyle + "\">{0}</span>", status.Error); htmlString += string.Format("<br><button id=\"btn\" type=\"button\" align=\"top\" style=\"{0}\">{1}</button>", HtmlHelper.ButtonTextStyle, LangPack.TranslateString("Disable")); } } if (status.Setting.ServiceItem.CharsLimit != -1) { htmlString += "<br>" + "<b>"; htmlString += string.Format(LangPack.TranslateString("Limit {0} : {1} characters"), "</b>", status.Setting.ServiceItem.CharsLimit); } if (status.Setting.ServiceItem.LinesLimit != -1) { htmlString += "<br>" + "<b>"; htmlString += string.Format(LangPack.TranslateString("Limit {0} : {1} lines"), "</b>", status.Setting.ServiceItem.LinesLimit); } if (status.Setting.ServiceItem.WordsLimit != -1) { htmlString += "<br>" + "<b>"; htmlString += string.Format(LangPack.TranslateString("Limit {0} : {1} words"), "</b>", status.Setting.ServiceItem.WordsLimit); } if (status.IsAsteriskMaskSupported || status.IsQuestionMaskSupported) { htmlString += "<br>" + "<b>" + LangPack.TranslateString("Masks") + "</b> : "; if (status.IsAsteriskMaskSupported) { htmlString += "'*'"; } if (status.IsAsteriskMaskSupported && status.IsQuestionMaskSupported) { htmlString += ","; } if (status.IsQuestionMaskSupported) { htmlString += "'?'"; } } //tableCell.InnerHtml = htmlString; Wait(); HtmlHelper.AddTranslationCell(wbStatus, isClean, htmlString, status.Setting.ServiceItem); HtmlElement button = WebBrowserHelper.GetDocument(wbStatus).GetElementById("btn"); if (button != null) { button.Click += OnButtonClick; } isClean = false; RealRecalcSizes(); }
void LbFromSelectedIndexChanged(object sender, EventArgs e) { LockUpdate(true); if (lbFrom.SelectedIndex == -1) { return; } Language fromLanguage = ((LanguageDataContainer)lbFrom.SelectedItem).Language; LanguageDataContainer toLanguage = null; if (lbTo.SelectedItem != null) { toLanguage = ((LanguageDataContainer)lbTo.SelectedItem); } lbTo.BeginUpdate(); lbTo.Items.Clear(); LanguageCollection toLangs = new LanguageCollection(); int index; foreach (LanguagePair lp in languages) { if ((lp.From == fromLanguage || fromLanguage == Language.Any)) { index = toLangs.BinarySearch(lp.To); if (index < 0) { toLangs.Insert(~index, lp.To); } } } string val = ""; if (toLangs.Count > 1) { val = "+" + LangPack.TranslateLanguage(Language.Any); lbTo.Items.Add(new LanguageDataContainer(Language.Any, val)); } foreach (Language l in toLangs) { val = LangPack.TranslateLanguage(l); lbTo.Items.Add(new LanguageDataContainer(l, val)); } lbTo.EndUpdate(); string caption = LangPack.TranslateLanguage(fromLanguage); lFrom.Text = caption; int idx = -1; if (toLanguage != null) { idx = lbTo.Items.IndexOf(toLanguage); } if (idx == -1) { idx = 0; } lbTo.SelectedIndex = idx; LockUpdate(false); }
static void GenerateListByLangHtml(WebBrowser wBrowser) { //count langs without gb\us english int pairsCount = 0; foreach (LanguagePair lp in Manager.LanguagePairServiceItems.Keys) { if (lp.From != Language.English_GB && lp.From != Language.English_US && lp.To != Language.English_GB && lp.To != Language.English_US) { pairsCount++; } } string nodeName = "list_by_lang"; string InnerHtml = GenerateTopNode(nodeName, LangPack.TranslateString("Grouped by Language") + GetLangsPairsCount(pairsCount), 0, true); HtmlHelper.AddTranslationCell(wBrowser, null, true, InnerHtml, null); HtmlHelper.CreateTable(wBrowser, nodeName, nodeName + "_table"); SortedDictionary <string, SortedDictionary <string, List <ServiceItem> > > langs = new SortedDictionary <string, SortedDictionary <string, List <ServiceItem> > >(); foreach (KeyValuePair <LanguagePair, ServiceItemsCollection> kvpData in Manager.LanguagePairServiceItems) { if (kvpData.Key.From == Language.English_GB || kvpData.Key.From == Language.English_US || kvpData.Key.To == Language.English_GB || kvpData.Key.To == Language.English_US) { continue; } string fromlang = LangPack.TranslateLanguage(kvpData.Key.From); string tolang = LangPack.TranslateLanguage(kvpData.Key.To); SortedDictionary <string, List <ServiceItem> > inner_list; if (!langs.TryGetValue(fromlang, out inner_list)) { inner_list = new SortedDictionary <string, List <ServiceItem> >(); langs.Add(fromlang, inner_list); } List <ServiceItem> items; if (!inner_list.TryGetValue(tolang, out items)) { items = new List <ServiceItem>(); inner_list.Add(tolang, items); } foreach (ServiceItem si in kvpData.Value) { if (!(si is MonolingualSearchEngine || si is BilingualSearchEngine)) { items.Add(si); } } } foreach (KeyValuePair <string, SortedDictionary <string, List <ServiceItem> > > kvp in langs) { string htmlString = ""; string childnodeName = "by_lang_" + kvp.Key; childnodeName = childnodeName.Replace("'", "_"); htmlString += GenerateTopNode(childnodeName, "-" + kvp.Key + " ->" + GetLangsPairsCount(kvp.Value.Count)); HtmlHelper.AddTranslationCell(wBrowser, nodeName + "_table_body", true, htmlString, null); HtmlHelper.CreateTable(wBrowser, childnodeName, childnodeName + "_table"); string topchildnodeName = childnodeName + "_table_body"; foreach (KeyValuePair <string, List <ServiceItem> > kvpToLangs in kvp.Value) { if (kvpToLangs.Value.Count == 0) { continue; } htmlString = ""; childnodeName = "by_lang_" + kvp.Key + "_" + kvpToLangs.Key; childnodeName = childnodeName.Replace("'", "_"); htmlString += GenerateTopNode(childnodeName, kvp.Key + "->" + kvpToLangs.Key + " -" + GetServicesCount(kvpToLangs.Value.Count), 1); HtmlHelper.AddTranslationCell(wBrowser, topchildnodeName, true, htmlString, null); HtmlHelper.CreateTable(wBrowser, childnodeName, childnodeName + "_table"); SortedDictionary <string, List <ServiceItem> > sortedServices = new SortedDictionary <string, List <ServiceItem> >(); foreach (ServiceItem si in kvpToLangs.Value) { List <ServiceItem> inner_list; if (!sortedServices.TryGetValue(si.Service.Url.AbsoluteUri, out inner_list)) { inner_list = new List <ServiceItem>(); sortedServices.Add(si.Service.Url.AbsoluteUri, inner_list); } inner_list.Add(si); } bool is_first = true; foreach (KeyValuePair <string, List <ServiceItem> > kvpServices in sortedServices) { foreach (ServiceItem si in kvpServices.Value) { GenerateServiceItemSell(wBrowser, si, childnodeName + "_table_body", is_first, false); if (is_first) { is_first = false; } } } } } }
static void GenerateServiceItemSell(WebBrowser wBrowser, ServiceItem si, string parentName, bool first, bool generateLangs) { StringBuilder htmlString = new StringBuilder(); htmlString.AppendFormat(CultureInfo.InvariantCulture, HtmlHelper.ServiceNameFormat, si.Service.Url, HttpUtility.HtmlEncode(si.Service.Url.AbsoluteUri)); htmlString.Append(", "); if (!string.IsNullOrEmpty(si.Description)) { htmlString.Append(LangPack.TranslateString(si.Description) + " - "); } htmlString.Append(LangPack.TranslateString(si.Service.FullName)); if (si is MonolingualDictionary) { htmlString.Append(", "); htmlString.Append(LangPack.TranslateLanguage(si.SupportedTranslations[0].From)); } htmlString.Append(", "); htmlString.Append(ServiceSettingsContainer.GetServiceItemType(si)); if (si.SupportedSubjects.Count > 1) { htmlString.Append(", " + LangPack.TranslateString("Subjects") + " : "); htmlString.Append(LangPack.TranslateString(SubjectConstants.Common)); foreach (string subject in si.SupportedSubjects) { if (subject != SubjectConstants.Common) { htmlString.Append(", "); htmlString.Append(LangPack.TranslateString(subject)); } } } htmlString.Append(", "); htmlString.Append(HttpUtility.HtmlEncode(si.Service.Copyright)); if (si is MonolingualDictionary || !generateLangs) { HtmlHelper.AddTranslationCell(wBrowser, parentName, first, htmlString.ToString(), si, true); return; } //count langs without gb\us english int pairsCount = 0; foreach (LanguagePair lp in si.SupportedTranslations) { if (lp.From != Language.English_GB && lp.From != Language.English_US && lp.To != Language.English_GB && lp.To != Language.English_US) { pairsCount++; } } string langNodeName = si.FullName + "_langs"; htmlString.Append("<br>" + GenerateTopNode(langNodeName, LangPack.TranslateString("Languages") + GetLangsPairsCount(pairsCount), 0.5)); HtmlHelper.AddTranslationCell(wBrowser, parentName, first, htmlString.ToString(), si, true); SortedDictionary <string, SortedDictionary <string, string> > langs = new SortedDictionary <string, SortedDictionary <string, string> >(); foreach (LanguagePair lp in si.SupportedTranslations) { if (lp.From == Language.English_GB || lp.From == Language.English_US || lp.To == Language.English_GB || lp.To == Language.English_US) { continue; } string fromlang = LangPack.TranslateLanguage(lp.From); SortedDictionary <string, string> inner_list; if (!langs.TryGetValue(fromlang, out inner_list)) { inner_list = new SortedDictionary <string, string>(); langs.Add(fromlang, inner_list); } inner_list.Add(LangPack.TranslateLanguage(lp.To), ""); } if (si.SupportedTranslations.Count <= 10) { htmlString = new StringBuilder(); foreach (KeyValuePair <string, SortedDictionary <string, string> > kvp_langs in langs) { foreach (KeyValuePair <string, string> kvp_to_langs in kvp_langs.Value) { htmlString.Append("<li>" + kvp_langs.Key + "->" + kvp_to_langs.Key + "</li>"); } } HtmlHelper.SetNodeInnerHtml(wBrowser, langNodeName, htmlString.ToString()); } else { htmlString = new StringBuilder(); foreach (KeyValuePair <string, SortedDictionary <string, string> > kvp_langs in langs) { string nodeName = si.FullName + "_lang_" + kvp_langs.Key; nodeName = nodeName.Replace("'", "_"); htmlString.Append(GenerateTopNode(nodeName, kvp_langs.Key + "->" + GetLangsPairsCount(kvp_langs.Value.Count), 1)); } HtmlHelper.SetNodeInnerHtml(wBrowser, langNodeName, htmlString.ToString()); foreach (KeyValuePair <string, SortedDictionary <string, string> > kvp_langs in langs) { string nodeName = si.FullName + "_lang_" + kvp_langs.Key; nodeName = nodeName.Replace("'", "_"); htmlString = new StringBuilder(); foreach (KeyValuePair <string, string> kvp_to_langs in kvp_langs.Value) { htmlString.Append("<li>" + kvp_to_langs.Key + "</li>"); } HtmlHelper.SetNodeInnerHtml(wBrowser, nodeName, htmlString.ToString()); } } }
public string GetServiceTooltipText() { StringBuilder sb = new StringBuilder(); string name = ""; if (!string.IsNullOrEmpty(setting.ServiceItem.Description)) { name = LangPack.TranslateString(setting.ServiceItem.Description) + " - "; } name += LangPack.TranslateString(setting.ServiceItem.Service.FullName); sb.AppendLine(name); sb.AppendLine(GetServiceItemType(setting.ServiceItem)); string languagePair = LangPack.TranslateLanguage(Setting.LanguagePair.From) + "->" + LangPack.TranslateLanguage(Setting.LanguagePair.To); sb.AppendLine(languagePair); if (setting.Subject != SubjectConstants.Common) { sb.AppendLine(LangPack.TranslateString(setting.Subject)); } if (setting.ServiceItem.CharsLimit != -1) { sb.AppendLine(string.Format(LangPack.TranslateString("Limit {0} : {1} characters"), "", setting.ServiceItem.CharsLimit)); } if (setting.ServiceItem.LinesLimit != -1) { sb.AppendLine(string.Format(LangPack.TranslateString("Limit {0} : {1} lines"), "", setting.ServiceItem.LinesLimit)); } if (setting.ServiceItem.WordsLimit != -1) { sb.AppendLine(string.Format(LangPack.TranslateString("Limit {0} : {1} words"), "", setting.ServiceItem.WordsLimit)); } if (IsAsteriskMaskSupported || IsQuestionMaskSupported) { sb.Append(LangPack.TranslateString("Masks") + " : "); if (IsAsteriskMaskSupported) { sb.Append("'*'"); } if (IsAsteriskMaskSupported && IsQuestionMaskSupported) { sb.Append(","); } if (IsQuestionMaskSupported) { sb.Append("'?'"); } sb.AppendLine(); } sb.AppendLine("---"); if (DisabledByUser) { sb.AppendLine(StringParser.RemoveAll("<", ">", LangPack.TranslateString("<b>Status</b> : Disabled"))); } else if (Enabled) { sb.AppendLine(StringParser.RemoveAll("<", ">", LangPack.TranslateString("<b>Status</b> : Enabled"))); } else { sb.Append(StringParser.RemoveAll("<", ">", LangPack.TranslateString("<b>Status</b> : Error"))); sb.AppendLine(" - " + Error); } return(sb.ToString().Trim()); }
public SetProfileNameForm(UserTranslateProfile profile, TranslateProfilesCollection profiles) { InitializeComponent(); RegisterLanguageEvent(OnLanguageChanged); this.profile = profile; this.profiles = profiles; cbFrom.Items.Clear(); cbTo.Items.Clear(); for (int i = 0; i < (int)Language.Last; i++) { LanguageDataContainer ld = new LanguageDataContainer((Language)i, LangPack.TranslateLanguage((Language)i)); cbFrom.Items.Add(ld); cbTo.Items.Add(ld); } cbFrom.SelectedIndex = 0; cbTo.SelectedIndex = 0; foreach (string subject in Manager.Subjects) { SubjectContainer sc = new SubjectContainer(subject, LangPack.TranslateString(subject)); cbSubject.Items.Add(sc); } SubjectContainer sc1 = new SubjectContainer(SubjectConstants.Any, LangPack.TranslateString(SubjectConstants.Any)); cbSubject.Items.Add(sc1); cbSubject.SelectedIndex = 0; for (int i = 0; i < cbFrom.Items.Count; i++) { LanguageDataContainer ld = cbFrom.Items[i] as LanguageDataContainer; if (ld.Language == profile.TranslationDirection.From) { cbFrom.SelectedItem = ld; } if (ld.Language == profile.TranslationDirection.To) { cbTo.SelectedItem = ld; } } for (int i = 0; i < cbSubject.Items.Count; i++) { SubjectContainer sc = cbSubject.Items[i] as SubjectContainer; if (profile.Subject == sc.Subject) { cbSubject.SelectedItem = sc; break; } } if (!string.IsNullOrEmpty(profile.Name)) { tbName.Text = profile.Name; } else { tbName.Text = GetNewProfileName(); } initialized = true; }
public void SetResult(Result result, LanguagePair languagePair) { if (result == null) { throw new ArgumentNullException("result"); } if (result.ResultNotFound && string.IsNullOrEmpty(result.EditArticleUrl) && TranslateOptions.Instance.ResultWindowOptions.HideWithoutResult) { return; //skip } string htmlString = ""; if (TranslateOptions.Instance.ResultWindowOptions.ShowServiceName) { string name = ""; if (!string.IsNullOrEmpty(result.ServiceItem.Description)) { name = LangPack.TranslateString(result.ServiceItem.Description) + " - "; } name += LangPack.TranslateString(result.ServiceItem.Service.FullName); htmlString += string.Format(CultureInfo.InvariantCulture, HtmlHelper.ServiceNameFormat, result.ServiceItem.Service.Url, HttpUtility.HtmlEncode(name)); htmlString += ", "; htmlString += LangPack.TranslateString("Type") + " : " + ServiceSettingsContainer.GetServiceItemType(result.ServiceItem); } if (result.Subject != SubjectConstants.Common) { if (htmlString.Length > 0) { htmlString += ", "; } htmlString += LangPack.TranslateString("Subject") + " : " + LangPack.TranslateString(result.Subject); } if (languagePair.From == Language.Any || languagePair.To == Language.Any || TranslateOptions.Instance.ResultWindowOptions.ShowTranslationDirection) { if (htmlString.Length > 0) { htmlString += ", "; } if (result.ServiceItem is MonolingualDictionary) { htmlString += LangPack.TranslateLanguage(result.LanguagePair.From); } else { htmlString += LangPack.TranslateLanguage(result.LanguagePair.From) + "->" + LangPack.TranslateLanguage(result.LanguagePair.To); } } if (htmlString.Length > 0) { htmlString += "<hr style=\"width: 100%; height: 1px;\">"; } string resultHtml = GetResultHtml(result); if (!string.IsNullOrEmpty(result.ArticleUrl) && result.Error == null) { string icon = ""; if (result.HasAudio) { icon = " " + string.Format(HtmlHelper.IconOfAudioFormat, LangPack.TranslateString("Pronunciation")); } htmlString += GetParagraphFormat(0, result); if (string.IsNullOrEmpty(result.ArticleUrlCaption)) { htmlString += string.Format("<a href=\"{0}\" title=\"{0}\">{0}{1}</a>", result.ArticleUrl, icon ); } else { htmlString += string.Format("<a href=\"{0}\" title=\"{0}\"><b>{1}</b>{2}</a>", result.ArticleUrl, result.ArticleUrlCaption, icon ); } htmlString += "</p>"; if (!resultHtml.StartsWith("<br>")) { htmlString += "<br>"; } htmlString += resultHtml; } else { if (!resultHtml.StartsWith("<br>")) { htmlString += resultHtml; } else { htmlString += resultHtml.Substring(4); } } if (!string.IsNullOrEmpty(result.ArticleUrl) && result.MoreEntriesCount != 0) { htmlString += "<br>"; htmlString += GetParagraphFormat(0, result); htmlString += string.Format("<a href=\"{0}\" title=\"{0}\">>>> {1}</a>", result.ArticleUrl, string.Format(LangPack.TranslateString("{0} more entries found"), result.MoreEntriesCount) ); htmlString += "</p>"; } if (result.QueryTicks != 0 && TranslateOptions.Instance.ResultWindowOptions.ShowQueryStatistics) { htmlString += "<hr style=\"width: 100%; height: 1px;\">"; htmlString += "<span style=\"" + HtmlHelper.InfoTextStyle + "\">"; htmlString += string.Format(CultureInfo.InvariantCulture, LangPack.TranslateString("Query time : {0} s, Queries count : {1}, Bytes sent : {2}, Bytes received : {3}"), new DateTime(result.QueryTicks).ToString("ss.fffffff", CultureInfo.InvariantCulture), result.RetryCount, result.BytesSent, result.BytesReceived); htmlString += "</span>"; } if (!TranslateOptions.Instance.ResultWindowOptions.ShowAccents) { htmlString = htmlString.Replace("́", ""); } Wait(); HtmlHelper.AddTranslationCell(wBrowser, isClean, htmlString, result.ServiceItem); isClean = false; RecalcSizes(); }
public CustomProfileServicesForm(UserTranslateProfile profile) { InitializeComponent(); RegisterLanguageEvent(OnLanguageChanged); this.profile = profile; ServiceItemsDataCollection services = new ServiceItemsDataCollection(); foreach (ServiceItemData sid in profile.Services) { services.Add(sid); } lvCurrent.Services = services; cbFrom.Items.Clear(); cbTo.Items.Clear(); for (int i = 0; i < (int)Language.Last; i++) { LanguageDataContainer ld = new LanguageDataContainer((Language)i, LangPack.TranslateLanguage((Language)i)); cbFrom.Items.Add(ld); cbTo.Items.Add(ld); } cbFrom.SelectedIndex = 0; cbTo.SelectedIndex = 0; //cbSubject foreach (string subject in Manager.Subjects) { SubjectContainer sc = new SubjectContainer(subject, LangPack.TranslateString(subject)); cbSubject.Items.Add(sc); } SubjectContainer sc1 = new SubjectContainer(SubjectConstants.Any, "+" + LangPack.TranslateString(SubjectConstants.Any)); cbSubject.Items.Add(sc1); cbSubject.SelectedIndex = 0; for (int i = 0; i < cbFrom.Items.Count; i++) { LanguageDataContainer ld = cbFrom.Items[i] as LanguageDataContainer; if (ld.Language == profile.TranslationDirection.From) { cbFrom.SelectedItem = ld; } if (ld.Language == profile.TranslationDirection.To) { cbTo.SelectedItem = ld; } } for (int i = 0; i < cbSubject.Items.Count; i++) { SubjectContainer sc = cbSubject.Items[i] as SubjectContainer; if (profile.Subject == sc.Subject) { cbSubject.SelectedItem = sc; break; } } serviceStatusSource.Visible = false; serviceStatusCurrent.Visible = false; initialized = true; CbFromSelectedIndexChanged(null, new EventArgs()); }