public void ImportDeviceXmlFile(string fileLocation, IDeviceStringReader deviceStringReader, IDeviceXmlProvider deviceXmlProvider) { SaveOriginalTranslations(false); ClearAllFixedTranslations(); AddLanguageStringCollection(fileLocation, deviceStringReader, deviceXmlProvider); RestoreOriginalTranslations(); DeviceXmlVersion = deviceStringReader.DeviceXmlVersion; }
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; } }
private void AddLanguageStringCollection(string fileLocation, IDeviceStringReader deviceStringReader, IDeviceXmlProvider deviceXmlProvider) { try { foreach (var languageStringCollection in ((IDeviceStringReader1)deviceStringReader).GetStringsFromDeviceXml(fileLocation, deviceXmlProvider)) { ILanguageStringCollection matchingCollection = LanguageStringCollections.Where(lsc => lsc.Index == languageStringCollection.Index).FirstOrDefault(); if (matchingCollection != null) { matchingCollection.Translations.AddRange(languageStringCollection.Translations); } else { LanguageStringCollections.Add(languageStringCollection); } } if (LanguageStringCollections[0].Translations.Count > 0) { FixedStringCount = Convert.ToUInt16(LanguageStringCollections[0].Translations.Where(s => !s.IsSoftString).Max(s => s.StringId) + 1); //Find missing stringIds foreach (var als in LanguageStringCollections) { var list = als.Translations.Select(s => s.StringId).OrderBy(i => i); var result = Enumerable.Range(0, FixedStringCount).Except(list); als.Translations.AddRange( from missing in result select new Translation() { StringId = missing, String = String.Empty } ); als.Translations.Sort(); } } LanguageStringCollections.Sort(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void ImportDeviceXmlFile(IDeviceStringReader deviceStringReader, IDeviceXmlProvider deviceXmlProvider) { throw new NotImplementedException(); }