Esempio n. 1
0
        public IEnumerable <ILanguageStringCollection> GetStringsFromDeviceXml(IDeviceXmlProvider deviceXmlProvider)
        {
            XDocument doc = null;

            using (Stream stream = deviceXmlProvider.XmlStream)
            {
                doc = XDocument.Load(stream);
            }
            return(GetLanguagesFromStringsSection(deviceXmlProvider.NameSpace, doc));
        }
        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;
            }
        }
Esempio n. 3
0
        public IEnumerable <ILanguageStringCollection> GetStringsFromDeviceXml(string fileLocation, IDeviceXmlProvider deviceXmlProvider)
        {
            XDocument doc = null;

            using (Stream stream = new FileStream(fileLocation, FileMode.Open, FileAccess.Read))
            {
                doc = XDocument.Load(stream);
            }
            return(GetLanguagesFromStringsSection(deviceXmlProvider.NameSpace, doc));
        }
        public void ImportDeviceXmlFile(string fileLocation, IDeviceStringReader deviceStringReader, IDeviceXmlProvider deviceXmlProvider)
        {
            SaveOriginalTranslations(false);

            ClearAllFixedTranslations();
            AddLanguageStringCollection(fileLocation, deviceStringReader, deviceXmlProvider);

            RestoreOriginalTranslations();
            DeviceXmlVersion = deviceStringReader.DeviceXmlVersion;
        }
 public void ImportDeviceXmlFile(IDeviceStringReader deviceStringReader, IDeviceXmlProvider deviceXmlProvider)
 {
     throw new NotImplementedException();
 }
        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);
            }
        }