private static int RunWrite(WriteOptions o) { var doc = new xlflib.XlfDocument(o.XlfFile); doc.SaveAsResX(o.ResXFile, o.IsSorted ? xlflib.XlfDocument.SaveMode.Sorted : xlflib.XlfDocument.SaveMode.Default); return(0); }
private static int RunUpdate(UpdateOptions o) { if (!File.Exists(o.XlfFile)) { Console.Error.WriteLine("error, file not found: " + o.XlfFile); return(2); } var doc = new xlflib.XlfDocument(o.XlfFile); if (string.IsNullOrWhiteSpace(o.ResXFile)) { o.ResXFile = Path.Combine(Path.GetDirectoryName(o.XlfFile), doc.Files[0].Original); } if (!File.Exists(o.ResXFile)) { Console.Error.WriteLine("error, file not found: " + o.ResXFile); return(2); } var result = doc.UpdateFromResX(o.ResXFile); if (o.IsVerbose) { var msg = string.Empty; if (result.Item1 == 0 && result.Item2 == 0 && result.Item3 == 0) { msg = "already up-to-date"; } else { if (result.Item1 > 0) { msg += string.Format("{0} item{1} updated", result.Item1, result.Item1 == 1 ? "" : "s"); } if (result.Item2 > 0) { if (msg.Length > 0) { msg += "/"; } msg += string.Format("{0} item{1} added", result.Item2, result.Item2 == 1 ? "" : "s"); } if (result.Item3 > 0) { if (msg.Length > 0) { msg += "/"; } msg += string.Format("{0} item{1} removed", result.Item3, result.Item3 == 1 ? "" : "s"); } } Console.WriteLine(msg); } doc.Save(); return(0); }
private static int RunDefault(DefaultOptions o) { var doc = new xlflib.XlfDocument(o.XlfFile); Console.WriteLine("file: " + doc.FileName); Console.WriteLine("XLIFF version: " + doc.Version); Console.WriteLine("file sections: " + doc.Files.Count); var n = 1; foreach (var f in doc.Files) { Console.WriteLine(">" + n + " data type: " + f.DataType); Console.WriteLine(">" + n + " original: " + f.Original); Console.WriteLine(">" + n + " source language: " + f.SourceLang); Console.WriteLine(">" + n + " target language: " + f.Optional.TargetLang); Console.WriteLine(">" + n + " tool id: " + f.Optional.ToolId); Console.WriteLine(">" + n + " translation units: " + f.TransUnits.Count); } return(0); }