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))); }