Пример #1
0
        public async Task <List <Task <LocalizationResponse> > > Import([FromBody] LocalizedData localizedData)
        {
            string tempLocalizationFolder = Path.Combine(CurrentHostEnvironment.WebRootPath, "Temp", "ExtractedLocalized");
            string srcZip = Path.Combine(CurrentHostEnvironment.WebRootPath, "Temp", localizedData.Value);

            ZipFile.ExtractToDirectory(srcZip, tempLocalizationFolder);
            List <Task <LocalizationResponse> > localizationResponses = new List <Task <LocalizationResponse> >();

            string[] applications = Directory.GetDirectories(tempLocalizationFolder);

            DirectoryInfo diInfo = new DirectoryInfo(tempLocalizationFolder);

            DirectoryInfo[] diInfoArr = diInfo.GetDirectories();
            foreach (DirectoryInfo DirInfo in diInfoArr)
            {
                string   applicationDir = DirInfo.FullName;
                string   appName        = DirInfo.Name;
                string[] files          = Directory.GetFiles(applicationDir, "*", SearchOption.AllDirectories);
                foreach (string userFile in files)
                {
                    string filedir    = Path.GetDirectoryName(userFile).Replace(applicationDir, String.Empty);
                    string systemfile = CurrentHostEnvironment.WebRootPath + filedir + "\\" + Path.GetFileNameWithoutExtension(filedir) + ".json";
                    LocalizationResponse localizationResponse = new LocalizationResponse
                    {
                        FilePath = filedir
                    };
                    localizationResponses.Add(JsonCompare(userFile, systemfile, localizationResponse));
                }
                await Task.WhenAll(localizationResponses);
            }
            //NoError_

            return(localizationResponses);
        }
Пример #2
0
        public async Task <string> SaveJsonData([FromBody] LocalizedData LocalizedData)
        {
            string filePath = CurrentHostEnvironment.WebRootPath + LocalizedData.FilePath + "." + LocalizedData.Culture + ".json";

            using (StreamWriter streamWriter = new StreamWriter(filePath))
            {
                await streamWriter.WriteLineAsync(LocalizedData.Value);
            }
            return("1");
        }
Пример #3
0
        public async Task <string> Export([FromBody] LocalizedData localizedData)
        {
            LocalizationManager   objLocalization = new LocalizationManager();
            IList <LocalizedData> localizedDatas  = await objLocalization.GetFilePathByApplicationID(localizedData.Value);

            string applicationName = string.Empty;
            string appFolder       = string.Empty;
            string zipPath         = string.Empty;
            string tempFolder      = Path.Combine(CurrentHostEnvironment.WebRootPath, "Temp");

            if (localizedDatas != null)
            {
                string localizationfolder = Path.Combine(tempFolder, "localization");
                if (Directory.Exists(tempFolder))
                {
                    Directory.Delete(tempFolder, true);
                }
                Directory.CreateDirectory(localizationfolder);
                foreach (LocalizedData localizedFile in localizedDatas)
                {
                    if (applicationName != localizedFile.Value)
                    {
                        appFolder = Path.Combine(localizationfolder, localizedFile.Value);
                        if (!Directory.Exists(appFolder))
                        {
                            Directory.CreateDirectory(appFolder);
                        }
                    }
                    string destfile   = appFolder + localizedFile.FilePath + ".json";
                    string srcFile    = CurrentHostEnvironment.WebRootPath + localizedFile.FilePath + ".json";
                    string destFolder = Path.GetDirectoryName(destfile);
                    if (!Directory.Exists(destFolder))
                    {
                        Directory.CreateDirectory(destFolder);
                    }
                    if (System.IO.File.Exists(srcFile))
                    {
                        System.IO.File.Copy(srcFile, destfile);
                    }
                }
                zipPath = tempFolder + "\\languages.zip";
                ZipFile.CreateFromDirectory(localizationfolder, zipPath);

                //RedirectToAction(nameof(DownloadZip), nameof(LocalizationController), new { zipPath = zipPath });
            }
            return("language");
            //FileDownloadHelper fileDownloadHelper = new FileDownloadHelper(_httpContextAccessor);
            //fileDownloadHelper.Download(MimeTypes.Zip, "localizations.zip", zipPath);
        }
Пример #4
0
        override protected LocalizationData CreateData(Dictionary <string, object> dict, DatabaseObject db,
                                                       LanguageCode language) // TODO: Deprecate "language"
        {
            var data = new LocalizationData();

            data.Id       = ToString(dict["Id"]);
            data.AudioKey = ToString(dict["audio_key"]);

            data._LocalizedDatas = new LocalizedData[Enum.GetNames(typeof(LanguageCode)).Length];

            foreach (LanguageCode lang in Enum.GetValues(typeof(LanguageCode)))
            {
                if (lang == LanguageCode.COUNT || lang == LanguageCode.NONE || lang == LanguageCode.arabic_legacy)
                {
                    continue;
                }
                var langData = new LocalizedData();
                Debug.Log(lang);
                langData.Text = ToString(dict[lang.ToString().ToLower()]);
                if (dict.ContainsKey(lang.ToString().ToLower() + "_F"))
                {
                    langData.TextF = ToString(dict[lang.ToString().ToLower() + "_F"]);
                }
                data._LocalizedDatas[(int)lang - 1] = langData;
            }

            //var engData = new LocalizedData();
            //engData.Text = ToString(dict["english"]);

            //var spanishData = new LocalizedData();
            //spanishData.Text = ToString(dict["spanish"]);

            //var arabicData = new LocalizedData();
            //arabicData.Text = ToString(dict["arabic"]);
            //arabicData.TextF = ToString(dict["arabic_F"]);

            //var itaData = new LocalizedData();
            //itaData.Text = ToString(dict["italian"]);

            //data._LocalizedDatas = new[] { engData, arabicData, spanishData, itaData };
            return(data);
        }