Exemplo n.º 1
0
        public bool AddElementToPackageLanguage(TranslateElementRequest model, string baseLangPath)
        {
            bool translateText = false;
            Dictionary <string, string> packageLanguage = new Dictionary <string, string>();
            var langFile = File.ReadLines(baseLangPath);

            foreach (var line in langFile)
            {
                if (line.Contains("Global level translations"))
                {
                    translateText = true;
                }

                if (line.Contains("});") || line.Contains("}]);"))
                {
                    translateText = false;
                }

                if (translateText)
                {
                    if (!line.Contains("//") && !line.Contains("/*") && !string.IsNullOrWhiteSpace(line))
                    {
                        string[] KeyValue = line.Split(':');
                        KeyValue[0] = CleanValue(KeyValue[0]);
                        KeyValue[1] = CleanValue(KeyValue[1]);

                        packageLanguage.Add(KeyValue[0].TrimStart().TrimEnd(), KeyValue[1].TrimStart().TrimEnd());
                    }
                }
            }

            var existElement = packageLanguage.Any(x => x.Key.Equals(model.Key));

            if (!existElement)
            {
                //We delete the two final lines
                List <string> lines = File.ReadAllLines(baseLangPath).ToList();
                File.WriteAllLines(baseLangPath, lines.GetRange(0, lines.Count - 2).ToArray());

                using (StreamWriter sw = File.AppendText(baseLangPath))
                {
                    sw.WriteLine($", \"{model.Key}\":\"{model.Value}\"");
                    sw.WriteLine("});");
                    sw.WriteLine("}]);");
                }
            }
            return(true);
        }
        public async Task <IHttpActionResult> AddElementInPackageLanguage(TranslateElementRequest request)
        {
            var baseLangFile = HttpContext.Current.Server.MapPath("~/clientapp/languages/en-us.js");

            return(Ok(_translateService.AddElementToPackageLanguage(request, baseLangFile)));
        }