private static bool ShouldUseDedicatedSegmenter(string languageTag)
            {
                bool result = true;

                try
                {
                    var    language = new Globalization.Language(languageTag);
                    string script   = language.Script;

                    if (ScriptCodesRequiringDedicatedSegmenter.FindIndex(s => s.Equals(script, StringComparison.InvariantCultureIgnoreCase)) == -1)
                    {
                        result = false;
                    }
                }
                catch (Exception e)
                    when((e is NotSupportedException) ||
                         (e is ArgumentException) ||
                         (e is TargetInvocationException) ||
                         (e is MissingMemberException))
                    {
                        // Do nothing - return true as the default result
                    }

                return(result);
            }
        private string BuildSitemapXML(List <Item> items, Site site, SiteContext siteContext)
        {
            string strSiteLanguage = "";

            site.Properties.TryGetValue("language", out strSiteLanguage);

            XmlDocument doc = new XmlDocument();
            string      url = "";

            XmlNode declarationNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);

            doc.AppendChild(declarationNode);
            XmlNode      urlsetNode = doc.CreateElement("urlset");
            XmlAttribute xmlnsAttr  = doc.CreateAttribute("xmlns");

            xmlnsAttr.Value = SitemapManagerConfiguration.XmlnsTpl;
            urlsetNode.Attributes.Append(xmlnsAttr);

            doc.AppendChild(urlsetNode);

            foreach (Item itm in items)
            {
                // If an item version exists in the site's default language
                Globalization.Language language = itm.Languages.FirstOrDefault(i => i.Name.ToLower().Equals(strSiteLanguage.ToLower()));
                if (language != null && Sitecore.Data.Managers.ItemManager.GetVersions(itm, language).Any())
                {
                    url = HtmlEncode(this.GetItemUrl(itm, site));
                    doc = this.BuildSitemapItem(doc, itm, site, url);
                }
            }

            return(doc.OuterXml);
        }
Example #3
0
 private Models.Language Create(Globalization.Language language)
 {
     return(new Models.Language
     {
         Name = language.Name,
         NativeName = language.CultureInfo.NativeName,
         Url = Context.Item != null?GetItemUrlByLanguage(language) : null,
                   Icon = string.Concat("/~/icon/", language.GetIcon(Context.Database)),
                   TwoLetterCode = language.CultureInfo.TwoLetterISOLanguageName
     });
 }
Example #4
0
 public static LanguageModel Create(Globalization.Language language)
 {
     return(new LanguageModel
     {
         Name = language.Name,
         NativeName = language.CultureInfo.NativeName,
         Url = GetItemUrlByLanguage(language),
         Icon = string.Concat("/~/icon/", language.GetIcon(Context.Database)),
         TwoLetterCode = language.CultureInfo.TwoLetterISOLanguageName
     });
 }
Example #5
0
 private string GetItemUrlByLanguage(Globalization.Language language)
 {
     using (new LanguageSwitcher(language))
     {
         //var options = new UrlOptions
         //{
         //    AlwaysIncludeServerUrl = true,
         //    LanguageEmbedding = LanguageEmbedding.Always,
         //    LowercaseUrls = true
         //};
         var url = "";// this.LinkManager.GetItemUrl(Context.Item, options);
         return(StringUtil.EnsurePostfix('/', url).ToLower());
     }
 }
Example #6
0
        static async Task <string> RecognizeAsync(string imagePath, string language)
        {
            StorageFile storageFile;
            var         path    = Path.GetFullPath(imagePath);                  // x.png
            var         extName = Path.GetExtension(path);                      // .png
            var         outPath = path.Replace(extName, "") + "-out" + extName; // x-out.png

            storageFile = await StorageFile.GetFileFromPathAsync(path);

            IRandomAccessStream randomAccessStream = await storageFile.OpenReadAsync();

            BitmapDecoder decoder = await BitmapDecoder.CreateAsync(randomAccessStream);

            SoftwareBitmap softwareBitmap = await decoder.GetSoftwareBitmapAsync(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied);

            Globalization.Language lang = new Globalization.Language(language);
            string space  = language.Contains("zh") ? "" : " ";
            string result = null;

            if (OcrEngine.IsLanguageSupported(lang))
            {
                OcrEngine engine = OcrEngine.TryCreateFromLanguage(lang);
                if (engine != null)
                {
                    OcrResult ocrResult = await engine.RecognizeAsync(softwareBitmap);

                    foreach (var tempLine in ocrResult.Lines)
                    {
                        string line = "";
                        foreach (var word in tempLine.Words)
                        {
                            line += word.Text + space;
                        }
                        result += line + Environment.NewLine;
                    }
                }
            }
            else
            {
                throw new Exception(string.Format("Language {0} is not supported", language));
            };
            randomAccessStream.Dispose();
            softwareBitmap.Dispose();
            return(await Task <string> .Run(() =>
            {
                return result;
            }));
        }