Esempio n. 1
0
        private Syllable[] GetOrderedSyllables(string word, EToneType format)
        {
            var outSyllables = new List <Syllable>();

            foreach (var charWord in word)
            {
                var pinyinStringArray = _chinesePinyinConverter.Convert(charWord, format);
                if (pinyinStringArray == null || pinyinStringArray.Length == 0)
                {
                    continue;
                }

                var pinyinWithMark = pinyinStringArray[0];

                var syllable = GetSyllable(charWord, pinyinWithMark);
                outSyllables.Add(syllable);
            }

            return(outSyllables.ToArray());
        }
Esempio n. 2
0
        public string[] Convert(char chineseCharacter, EToneType toneType)
        {
            var format = new HanyuPinyinOutputFormat
            {
                CaseType  = HanyuPinyinCaseType.Lowercase,
                ToneType  = HanyuPinyinToneType.WithToneMark,
                VCharType = HanyuPinyinVCharType.WithUUnicode
            };

            switch (toneType)
            {
            case EToneType.Without:
                format.ToneType = HanyuPinyinToneType.WithoutTone;
                break;

            case EToneType.Number:
                format.ToneType = HanyuPinyinToneType.WithToneNumber;
                break;
            }

            return(PinyinHelper.ToHanyuPinyinStringArray(chineseCharacter, format));
        }