private void AddLanguageStringCollection(IDriveCustomizationStringReader driveCustomizationStringReader, IDriveCustomizationXmlProvider driveCustomizationXmlProvider) { try { List <ITranslation> softStrings = driveCustomizationStringReader.GetStringsFromDriveCustomization(driveCustomizationXmlProvider).ToList(); int minId = softStrings.Min(t => t.StringId); int maxId = softStrings.Max(t => t.StringId); SoftStringCount = Convert.ToUInt16(maxId - minId + 1);// Convert.ToUInt16(softStrings.Count); LanguageStringCollections[0].Translations.AddRange(softStrings); //Find missing stringIds foreach (var als in LanguageStringCollections) { var list = als.Translations.Select(s => s.StringId).OrderBy(i => i); var result = Enumerable.Range(minId, SoftStringCount).Except(list); als.Translations.AddRange( from missing in result select new Translation() { IsSoftString = true, StringId = missing, String = String.Empty } ); als.Translations.Sort(); } LanguageStringCollections.Sort(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void ImportDriveCustomizationXmlFile(IDriveCustomizationStringReader driveCustomizationStringReader, IDriveCustomizationXmlProvider driveCustomizationXmlProvider) { SaveOriginalTranslations(true); ClearAllSoftTranslations(); AddLanguageStringCollection(driveCustomizationStringReader, driveCustomizationXmlProvider); RestoreOriginalTranslations(); DriveCustomizationSignature = driveCustomizationStringReader.DriveCustomizationSignature; DriveCustomizationSignaturePre3570 = driveCustomizationStringReader.DriveCustomizationSignaturePre3570; CompilerWarning = driveCustomizationStringReader.CompilerWarning; }
public CustomLanguageManager(IDeviceStringReader deviceStringReader, IDeviceXmlProvider deviceXmlProvider, IDriveCustomizationStringReader driveCustomizationStringReader, IDriveCustomizationXmlProvider driveCustomizationXmlProvider, ILanguageFileGenerator languageFileGenerator, IStringsChangedNotifier stringsChangedNotifier) { this.deviceStringReader = deviceStringReader as IDeviceStringReader1; this.deviceXmlProvider = deviceXmlProvider as IDeviceXmlProvider1; this.driveCustomizationStringReader = driveCustomizationStringReader; this.driveCustomizationXmlProvider = driveCustomizationXmlProvider; this.languageFileGenerator = languageFileGenerator; this.stringsChangedNotifier = stringsChangedNotifier; currentProject = new CustomLanguageProject(); SetSelectedLanguageAndReferenceLanguage(); if (stringsChangedNotifier != null) { stringsChangedNotifier.DeviceChanged += StringsChangedNotifier_DeviceChanged; stringsChangedNotifier.DriveCustomizationChanged += StringsChangedNotifier_DriveCustomizationChanged; } }