コード例 #1
0
        /// <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);
                }
            }
        }
コード例 #2
0
        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);
        }