Ejemplo n.º 1
0
        public List <List <string> > Resolve(string pinyinInput, bool isSimp, out List <string> pinyinSylls)
        {
            var res = new List <List <string> >();
            List <CharReading> readings      = isSimp ? readingsSimp : readingsTrad;
            string             pinyinInputLo = pinyinInput.ToLowerInvariant();
            var    loSylls       = pinyin.SplitSyllables(pinyinInputLo);
            string loSyllsConcat = "";

            for (int i = 0; i < loSylls.Count; ++i)
            {
                if (i != 0)
                {
                    loSyllsConcat += ' ';
                }
                loSyllsConcat += loSylls[i];
            }
            foreach (var r in readings)
            {
                if (r.Pinyin == loSyllsConcat)
                {
                    var itm = new List <string>();
                    itm.Add(r.Hanzi);
                    res.Add(itm);
                }
            }
            pinyinSylls = getOrigSylls(pinyinInput, pinyinInputLo, loSylls);
            return(res);
        }
Ejemplo n.º 2
0
        public List <List <string> > Resolve(string pinyinInput, out List <string> pinyinSylls)
        {
            var    res           = new List <List <string> >();
            string pinyinInputLo = pinyinInput.ToLowerInvariant();
            var    loSylls       = pinyin.SplitSyllables(pinyinInputLo);

            if (loSylls.Count == 1)
            {
                foreach (var r in charReadingsSimp.ReadingsList)
                {
                    if (r.Pinyin == loSylls[0])
                    {
                        var itm = new List <string>();
                        itm.Add(r.Hanzi);
                        res.Add(itm);
                    }
                }
            }
            else
            {
                res = polyDict.Lookup(loSylls, true);
            }
            pinyinSylls = getOrigSylls(pinyinInput, pinyinInputLo, loSylls);
            return(res);
        }