internal TranslationDictionariesReader(XliffObject xliff) { // hash key is case insensitive strings _table = new Hashtable(); foreach (File file in xliff.Files) { string bamlName = file.Original; // get the dictionary BamlLocalizationDictionary dictionary = this[bamlName]; if (dictionary == null) { // we create one if it is not there yet. dictionary = new BamlLocalizationDictionary(); this[bamlName] = dictionary; } Body body = file.Body; // There should only be one group, but go through any that exist for good measure foreach (Group group in body.Groups) { foreach (TranslationUnit transUnit in group.TranslationUnits) { string key = transUnit.Id; BamlLocalizableResourceKey resourceKey = LocBamlConst.StringToResourceKey(key); BamlLocalizableResource resource = new BamlLocalizableResource(); resource.Category = (LocalizationCategory)StringCatConverter.ConvertFrom(transUnit.ResourceType); /* * resource.Readable = (bool)BoolTypeConverter.ConvertFrom(reader.GetColumn(3)); * resource.Modifiable = (bool)BoolTypeConverter.ConvertFrom(reader.GetColumn(4)); */ Note comment = transUnit.Notes.FirstOrDefault(n => n.From == "MultilingualBuild"); if (comment != null) { resource.Comments = comment.Text; } resource.Content = transUnit.Target.Content ?? string.Empty; dictionary.Add(resourceKey, resource); } } } }
public ResourceXliffWriter(LocBamlOptions options, System.IO.Stream output, XliffObject existingObject) { _OutputStream = output; _RootObject = existingObject; _TargetLanguage = options.CultureInfo.Name; }