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