public void SaveAsResX(string fileName, ResXSaveOption options) { var entries = new List <ResXEntry>(); foreach (var f in Files) { foreach (var u in f.TransUnits) { var entry = new ResXEntry() { Id = u.GetId(Dialect), Value = u.Target }; if (options.HasFlag(ResXSaveOption.IncludeComments) && u.Optional.Notes.Count() > 0) { entry.Comment = u.Optional.Notes.First().Value; } entries.Add(entry); } } if (options.HasFlag(ResXSaveOption.SortEntries)) { entries.Sort(); } ResXFile.Write(fileName, entries, options.HasFlag(ResXSaveOption.IncludeComments) ? ResXFile.Option.None : ResXFile.Option.SkipComments); }
public void ExportResX(string filename, string language, SaveOptions options) { if (!GetLanguages().Contains(language)) { throw new ArgumentException($"'{language}' is not a configured language."); } var entries = new List <ResXEntry>(); foreach (var item in Items) { var entry = new ResXEntry(); TextItem text; if (!item.Texts.TryGetValue(language, out text) && !item.Texts.TryGetValue(NeutralLanguage, out text)) { throw new MissingTranslationsException(new List <string>() { $"{item.Id};{language}" }); } entry.Id = item.Id; entry.Value = text.Value; if (!options.HasFlag(SaveOptions.SkipComments)) { string comment; if (item.Comments.TryGetValue(language, out comment) || item.Comments.TryGetValue(NeutralLanguage, out comment)) { entry.Comment = comment; } } entries.Add(entry); } if (options.HasFlag(SaveOptions.SortEntries)) { entries.Sort(); } ResXFile.Write(filename, entries); }