static private void JsonToProtocol() { var JsonFileName = @"C:\projects\projects\talestra\csharp\TalesOfVesperiaUtils\TestInput\tov.json"; var ProtocolFileName = @"C:\projects\projects\talestra\csharp\TalesOfVesperiaUtils\TestInput\tov.protocol"; /* * Console.WriteLine("[1]"); * var Items = JsonTranslations.ReadAll(File.OpenRead()).ToArray(); * foreach (var Entry in Items) * { * //Console.WriteLine(Entry.texts["es"][0]); * } */ Console.WriteLine("[1]"); /* * JsonTranslations.JsonToProtocolBuffer(JsonFileName, ProtocolFileName"); */ var List = JsonTranslations.ReadProto(File.OpenRead(ProtocolFileName)); foreach (var Entry in List.Items) { foreach (var Text in Entry.texts.es) { var Messages = PitfallDetector.Detect(Text); if (Messages.Count > 0) { Console.WriteLine(Text); Console.WriteLine(JsonConvert.SerializeObject(Messages)); } } } //List.Items. Console.WriteLine("[2]"); //JsonTranslations.WriteProto(File.OpenWrite("test2.bin"), List.Items); Console.WriteLine("[3]"); }
public static ActionResult HandleRequest(Gettext gettext = null) { string js; using (var jsStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("GettextMvcLib.JavaScript.gettext.js")) using (var sr = new StreamReader(jsStream)) { js = sr.ReadToEnd(); } if (gettext == null) { var g = GettextMvcUtils.GetGettext(); gettext = g as Gettext; } var jsonTr = ""; if (gettext != null) { var jsTranslations = gettext.Catalog.Translations.Where(x => { var c = x.Comment.String; if (string.IsNullOrWhiteSpace(c)) return false; return c.Contains(".js"); }).ToList(); var j = new JsonTranslations(); if (jsTranslations.Count > 0) { foreach (var jsTranslation in jsTranslations) { var t = new JsonTranslations.Translation(); t.P = jsTranslation.MessageIdPlural.String; t.T = jsTranslation.MessageTranslations.OrderBy(x => x.Index).Select(x => x.Message.String).ToArray(); j.Translations.Add(jsTranslation.MessageId.String, t); } } var ss = new JavaScriptSerializer(); jsonTr = ss.Serialize(j); if (!string.IsNullOrWhiteSpace(jsonTr)) { string jsRepl = "__gettext_translations = " + jsonTr + ";\n"; if (gettext.Catalog.PluralExpression != null) { jsRepl += string.Format("__gettext_plural_func = function(n) {{ return {0} ; }};\n", gettext.Catalog.PluralExpression.ToPrint()); } js = js.Replace("/* == TRANSLATION == */", jsRepl); } } return new ContentResult { Content = js, ContentEncoding = Encoding.UTF8, ContentType = "text/javascript" }; }