public KanjiLookupService(
     IKanjiRadicalLookup radicalLookup,
     IRadicalSearcher radicalSearcher,
     IKanjiProperties kanjiProperties,
     KanjiAliveJapaneseRadicalInformation kanjiAliveInfo,
     RadkfileKanjiAliveCorrelator correlator,
     IReadOnlyDictionary <CodePoint, string> textForms = null)
 {
     this.radicalLookup   = radicalLookup;
     this.radicalSearcher = radicalSearcher;
     this.kanjiProperties = kanjiProperties;
     this.kanjiAliveInfo  = CreateKanjiAliveMapping(
         radicalLookup.AllRadicals,
         kanjiAliveInfo,
         correlator);
     this.textForms = textForms;
 }
예제 #2
0
        public WordVM(WordInfo wordInfo, IKanjiProperties lang, IKanaProperties kanaProperties, IRelated related)
        {
            var s = wordInfo.RawWord;

            StringForm = s;
            codePoints.AddRange(s.AsCodePoints().Select(rawCp =>
            {
                var cp = CodePoint.FromInt(rawCp);
                var vm = new CodePointVM(
                    cp,
                    related.FindRelated(cp).SelectMany(g => g),
                    cp is Kanji k
                        ? lang.LookupRadicalsByKanji(k).ValueOr(Enumerable.Empty <CodePoint>())
                        : Enumerable.Empty <CodePoint>(),
                    cp is Kana kana ? kanaProperties.LookupRomaji(kana.ToString()) : null);
                return(vm);
            }));
            WordInfo = wordInfo;
        }
 public CharacterDataSource(IKanjiProperties kanji, IKanaProperties kana)
 {
     this.kanji = kanji;
     this.kana  = kana;
 }