Exemplo n.º 1
0
        public static Trie GetKanaToRomajiTree(WanaKanaOptions options)
        {
            switch (options.Romanization)
            {
            case RomanizationType.Hepburn:
                return(GetKanaToHepburnTree());

            default:
                throw new ArgumentOutOfRangeException(nameof(options), "This type of romanization is not supported");
            }
        }
Exemplo n.º 2
0
        private static SplitToken[] SplitIntoRomaji(string input, WanaKanaOptions options)
        {
            var map = KanaToRomajiMap.GetKanaToRomajiTree(options);

            if (options.CustomRomajiMapping != null)
            {
                map = map.Clone();
                map.AddRange(options.CustomRomajiMapping);
            }

            return(TrieHelpers.ApplyTrie(KanaConverters.KatakanaToHiragana(input, true), map, options.ImeMode == ImeMode.None));
        }
Exemplo n.º 3
0
        private static Trie CreateRomajiToKanaMap(WanaKanaOptions options)
        {
            var map = RomajiToKanaMap.GetRomajiToKanaTree().Clone();

            if (options.ImeMode != ImeMode.None)
            {
                RomajiToKanaMap.ApplyImeModeMap(map);
            }
            if (options.UseObsoleteKana)
            {
                RomajiToKanaMap.ApplyObsoleteKanaMap(map);
            }

            if (options.CustomKanaMapping != null)
            {
                map.AddRange(options.CustomKanaMapping);
            }

            return(map);
        }