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());
        }
예제 #7
0
            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);
            }
예제 #8
0
        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("");
        }
예제 #9
0
        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);
        }
예제 #10
0
 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;
     }
 }
예제 #11
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);
        }
예제 #15
0
        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();
        }
예제 #16
0
        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());
        }
예제 #20
0
        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;
        }
예제 #21
0
        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}\">&gt;&gt;&gt; {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();
        }
예제 #22
0
        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());
        }