/// <summary> /// 输出语言包; /// </summary> public void Serialize(Stream stream, LanguagePackDescription description, LanguageSplitDictionary dictionary) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } if (dictionary == null) { throw new ArgumentNullException(nameof(dictionary)); } using (ZipOutputStream zipOutputStream = new ZipOutputStream(stream)) { zipOutputStream.IsStreamOwner = false; ZipEntry descZipEntry = new ZipEntry(descriptionFileName); zipOutputStream.PutNextEntry(descZipEntry); descriptionSerializer.Value.Serialize(zipOutputStream, description); SplitLanguageCollection collection = Split(dictionary); foreach (var value in collection.List) { string name = value.Key + dictionaryFileExtension; var keyValueList = value.Value; ZipEntry dictionaryZipEntry = new ZipEntry(name); zipOutputStream.PutNextEntry(dictionaryZipEntry); languageListSerializer.Value.Serialize(zipOutputStream, keyValueList); } } }
public SplitLanguageCollection Split(LanguageSplitDictionary dictionary) { SplitLanguageCollection collection = new SplitLanguageCollection(); foreach (var item in dictionary.Dictionary) { LanguageSplitDictionary.LanguageValue languageValue = item.Value; collection.Add(languageValue.Tag, item.Key, languageValue.Value); } return(collection); }