コード例 #1
0
 /// <summary>
 /// System registration hook.
 /// </summary>
 internal static void Register()
 {
     Transliterator.RegisterFactory("Any-NFC", new Transliterator.Factory(getInstance: (id) =>
     {
         return(new NormalizationTransliterator("NFC", Normalizer2.GetNFCInstance()));
     }));
     Transliterator.RegisterFactory("Any-NFD", new Transliterator.Factory(getInstance: (id) =>
     {
         return(new NormalizationTransliterator("NFD", Normalizer2.GetNFDInstance()));
     }));
     Transliterator.RegisterFactory("Any-NFKC", new Transliterator.Factory(getInstance: (id) =>
     {
         return(new NormalizationTransliterator("NFKC", Normalizer2.GetNFKCInstance()));
     }));
     Transliterator.RegisterFactory("Any-NFKD", new Transliterator.Factory(getInstance: (id) =>
     {
         return(new NormalizationTransliterator("NFKD", Normalizer2.GetNFKDInstance()));
     }));
     Transliterator.RegisterFactory("Any-FCD", new Transliterator.Factory(getInstance: (id) =>
     {
         return(new NormalizationTransliterator("FCD", Norm2AllModes.GetFCDNormalizer2()));
     }));
     Transliterator.RegisterFactory("Any-FCC", new Transliterator.Factory(getInstance: (id) =>
     {
         return(new NormalizationTransliterator("FCC", Norm2AllModes.GetNFCInstance().Fcc));
     }));
     Transliterator.RegisterSpecialInverse("NFC", "NFD", true);
     Transliterator.RegisterSpecialInverse("NFKC", "NFKD", true);
     Transliterator.RegisterSpecialInverse("FCC", "NFD", false);
     Transliterator.RegisterSpecialInverse("FCD", "FCD", false);
 }
コード例 #2
0
 /// <summary>
 /// System registration hook.
 /// </summary>
 internal static void Register()
 {
     Transliterator.RegisterFactory(_ID, new Transliterator.Factory(getInstance: (id) =>
     {
         return(new RemoveTransliterator());
     }));
     Transliterator.RegisterSpecialInverse("Remove", "Null", false);
 }
コード例 #3
0
        // TODO: Add variants for tr, az, lt, default = default locale

        /// <summary>
        /// System registration hook.
        /// </summary>
        internal static void Register()
        {
            Transliterator.RegisterFactory(_ID, new Transliterator.Factory(getInstance: (id) =>
            {
                return(new CaseFoldTransliterator());
            }));

            Transliterator.RegisterSpecialInverse("CaseFold", "Upper", false);
        }
コード例 #4
0
        // TODO: Add variants for tr/az, lt, default = default locale: ICU ticket #12720

        /// <summary>
        /// System registration hook.
        /// </summary>
        internal static void Register()
        {
            Transliterator.RegisterFactory(_ID, new Transliterator.Factory(getInstance: (id) =>
            {
                return(new LowercaseTransliterator(ULocale.US));
            }));

            Transliterator.RegisterSpecialInverse("Lower", "Upper", true);
        }
コード例 #5
0
        // TODO: Add variants for tr/az, lt, default = default locale: ICU ticket #12720

        /// <summary>
        /// System registration hook.
        /// </summary>
        internal static void Register()
        {
            Transliterator.RegisterFactory(_ID, new Transliterator.Factory(getInstance: (id) =>
            {
                return(new LowercaseTransliterator(new UCultureInfo("en_US")));
            }));

            Transliterator.RegisterSpecialInverse("Lower", "Upper", true);
        }
コード例 #6
0
ファイル: AnyTransliterator.cs プロジェクト: SilentCC/ICU4N
        /// <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);
                    }
                }
            }
        }