Exemplo n.º 1
0
        private void PopulateLocaleResources()
        {
            // Default primary language
            var language = _ctx.Set <Language>().Single();

            var locPath = CommonHelper.MapPath("~/App_Data/Localization/App/" + language.LanguageCulture);

            if (!System.IO.Directory.Exists(locPath))
            {
                // Fallback to neutral language folder (de, en etc.)
                locPath = CommonHelper.MapPath("~/App_Data/Localization/App/" + language.UniqueSeoCode);
            }

            var localizationService = this.LocalizationService;

            // save resources
            foreach (var filePath in System.IO.Directory.EnumerateFiles(locPath, "*.smres.xml", SearchOption.TopDirectoryOnly))
            {
                var doc = new XmlDocument();
                doc.Load(filePath);

                doc = localizationService.FlattenResourceFile(doc);

                // now we have a parsed XML file (the same structure as exported language packs)
                // let's save resources
                localizationService.ImportResourcesFromXml(language, doc);

                // no need to call SaveChanges() here, as the above call makes it
                // already without AutoDetectChanges(), so it's fast.
            }

            MigratorUtils.ExecutePendingResourceMigrations(locPath, _ctx);
        }