public void Add(ILocalizationUnit localizationUnit, bool stripMetadata = false) { var localized_string = localizationUnit as LocalizedString; var localization_metadata = localizationUnit as LocalizationMetadata; if (localization_metadata != null) { if (LocalizationMetadata == null) { LocalizationMetadata = new LocalizationMetadata(); } LocalizationMetadata.Add(localization_metadata); } else if (localized_string != null) { if (!Merge(localized_string, stripMetadata: stripMetadata)) { if (stripMetadata) { localized_string.StripMetadata(); } strings.Add(localized_string); } } else { throw new ArgumentException("Unsupported ILocalizationUnit"); } }
private ILocalizationUnit Parse(IDocumentPart part) { var headers = part as HeaderCollection; var unit = part as Unit; if (headers != null) { var metadata = new LocalizationMetadata(); foreach (var header in headers) { metadata.Add(header.Name, header.Value); } return(metadata); } else if (unit != null) { return(ParsePoMessageUnit(unit)); } else { return(null); } }
protected Parser() { LocalizationMetadata = new LocalizationMetadata(); }