public void RemoveFromPrivateUse(string tagsToRemove) { tagsToRemove = StripLeadingPrivateUseMarker(tagsToRemove); _privateUse.RemoveAllParts(tagsToRemove); Validate(); }
public void RemoveFromVariant(string tagsToRemove) { _variant.RemoveAllParts(tagsToRemove); }
public void Migrate(string sourceFilePath, string destinationFilePath) { var migrationInfo = new List <LdmlVersion0MigrationStrategy.MigrationInfo>(); if (!Directory.Exists(destinationFilePath)) { Directory.CreateDirectory(destinationFilePath); } var wesayWsCollection = new WritingSystemCollection_V1(); wesayWsCollection.LoadFromLegacyWeSayFile(sourceFilePath); foreach (var writingSystem in wesayWsCollection.Values) { var currentMigrationInfo = new LdmlVersion0MigrationStrategy.MigrationInfo { RfcTagBeforeMigration = writingSystem.ISO }; var wsDef = new WritingSystemDefinitionV0(); if (writingSystem.IsAudio) { wsDef.Script = WellKnownSubTags.Audio.Script; wsDef.Variant = WellKnownSubTags.Audio.PrivateUseSubtag; } else { var subtag = new SubTag(); subtag.AddToSubtag(writingSystem.ISO); subtag.RemoveAllParts("audio"); writingSystem.ISO = subtag.CompleteTag; } wsDef.ISO639 = writingSystem.ISO; wsDef.DefaultFontName = writingSystem.FontName; wsDef.DefaultFontSize = writingSystem.FontSize; wsDef.Abbreviation = writingSystem.Abbreviation; wsDef.IsLegacyEncoded = !writingSystem.IsUnicode; wsDef.Keyboard = writingSystem.KeyboardName; wsDef.RightToLeftScript = writingSystem.RightToLeft; wsDef.SpellCheckingId = writingSystem.SpellCheckingId; wsDef.DateModified = DateTime.Now; if (writingSystem.SortUsing.Equals("CustomICU")) { wsDef.SortRules = writingSystem.CustomSortRules; wsDef.SortUsing = WritingSystemDefinitionV0.SortRulesType.CustomICU; } else if (writingSystem.SortUsing.Equals("CustomSimple")) { wsDef.SortRules = writingSystem.CustomSortRules; wsDef.SortUsing = WritingSystemDefinitionV0.SortRulesType.CustomSimple; } else if (!String.IsNullOrEmpty(writingSystem.SortUsing)) { //when sorting like other language wsDef.SortRules = writingSystem.SortUsing; wsDef.SortUsing = WritingSystemDefinitionV0.SortRulesType.OtherLanguage; } //wsDef.VerboseDescription //not written out by ldmladaptor - flex? //wsDef.StoreID = ??? //what to do? //wsDef.NativeName //not written out by ldmladaptor - flex? string pathForNewLdmlFile = Path.Combine(destinationFilePath, wsDef.Rfc5646 + ".ldml"); new LdmlAdaptorV0().Write(pathForNewLdmlFile, wsDef, null); currentMigrationInfo.RfcTagAfterMigration = wsDef.Rfc5646; if (currentMigrationInfo.RfcTagBeforeMigration != currentMigrationInfo.RfcTagAfterMigration) { _changeLog.LogChange(currentMigrationInfo.RfcTagBeforeMigration, currentMigrationInfo.RfcTagAfterMigration); } migrationInfo.Add(currentMigrationInfo); } _onMigrationCallback(migrationInfo); }