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"); } }
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)); }
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); }