public void TestIncrementalProgress(string lang, string text) { var targets = Transliterator.GetAvailableTargets(lang); foreach (string target in targets) { var variants = Transliterator.GetAvailableVariants(lang, target); foreach (var variant in variants) { String id = lang + "-" + target + "/" + variant; Logln("id: " + id); Transliterator t = Transliterator.GetInstance(id); CheckIncrementalAux(t, text); String rev = t.Transliterate(text); // Special treatment: This transliterator has no registered inverse, skip for now. if (id.Equals("Devanagari-Arabic/")) { continue; } Transliterator inv = t.GetInverse(); CheckIncrementalAux(inv, rev); } } }
/// <summary> /// Registers standard transliterators with the system. Called by /// <see cref="Transliterator"/> during initialization. Scan all current targets /// and register those that are scripts T as Any-T/V. /// </summary> internal static void Register() { IDictionary <string, ISet <string> > seen = new Dictionary <string, ISet <string> >(); // old code used set, but was dependent on order foreach (string source in Transliterator.GetAvailableSources()) { // Ignore the "Any" source if (source.Equals(ANY, StringComparison.OrdinalIgnoreCase)) { continue; } foreach (string target in Transliterator.GetAvailableTargets(source)) { // Get the script code for the target. If not a script, ignore. int targetScript = ScriptNameToCode(target); if (targetScript == UScript.InvalidCode) { continue; } ISet <string> seenVariants = seen.Get(target); if (seenVariants == null) { seen[target] = seenVariants = new HashSet <string>(); } foreach (string variant in Transliterator.GetAvailableVariants(source, target)) { // Only process each target/variant pair once if (seenVariants.Contains(variant)) { continue; } seenVariants.Add(variant); string id; id = TransliteratorIDParser.STVtoID(ANY, target, variant); AnyTransliterator trans = new AnyTransliterator(id, target, variant, targetScript); Transliterator.RegisterInstance(trans); Transliterator.RegisterSpecialInverse(target, NULL_ID, false); } } } }