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);
            }
Example #2
0
        public static string GetServiceIconCellHtml(ServiceItem serviceItem, bool useOuterIconUrl)
        {
            if (serviceItem == null)
            {
                throw new ArgumentNullException("service");
            }

            string result = string.Format(CultureInfo.InvariantCulture,
                                          IconFormat,
                                          serviceItem.Service.Url,
                                          serviceItem.Service.Copyright,
                                          ServiceSettingsContainer.GetServiceItemType(serviceItem),
                                          useOuterIconUrl ? serviceItem.Service.IconUrl :
                                          WebUI.ResultsWebServer.GetIconUrl(serviceItem.Service.Name));

            return(result);
        }
        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());
                }
            }
        }
Example #4
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();
        }