lpinyin icon indicating copy to clipboard operation
lpinyin copied to clipboard

Wrong pinyin when using Traditional characters

Open gustanas opened this issue 4 years ago • 4 comments

Example:

var testTrad = PinyinHelper.getPinyin('乾淨', format: PinyinFormat.WITH_TONE_MARK);
print(testTrad);
var testSimpl = PinyinHelper.getPinyin('干净', format: PinyinFormat.WITH_TONE_MARK);
print(testSimpl);

Output:

qián jìng
gān jìng

gustanas avatar Feb 19 '21 07:02 gustanas

 List<String> traditionalDict= [ '乾=干'];
ChineseHelper.addChineseDict(traditionalDict);

var testTrad = PinyinHelper.getPinyin('乾淨', format: PinyinFormat.WITH_TONE_MARK);
print(testTrad);

Sky24n avatar Feb 19 '21 08:02 Sky24n

Thank you! It works already better!

But how about characters that have multiple pinyin? For example:

List<String> traditionalDict = ['乾=干'];
ChineseHelper.addChineseDict(traditionalDict);

var testTrad = PinyinHelper.getPinyin('乾燥', format: PinyinFormat.WITH_TONE_MARK);
var testTrad2 = PinyinHelper.getPinyin('乾坤', format: PinyinFormat.WITH_TONE_MARK);
print(testTrad);
print(testTrad2);

Output:

gān zào
gān kūn

Shoudn't it be qián kūn instead? https://translate.google.com/?sl=zh-CN&tl=zh-CN&text=%E4%B9%BE%E7%87%A5%0A%E4%B9%BE%E5%9D%A4&op=translate

gustanas avatar Feb 19 '21 08:02 gustanas

This is a problem, maybe this solution is better.

List<String> multiDict = ['乾净=gān,jìng', '乾燥=gān,zào'];
PinyinHelper.addMultiPinyinDict(multiDict);

var testTrad = PinyinHelper.getPinyin('乾淨', format: PinyinFormat.WITH_TONE_MARK);
print(testTrad);

Sky24n avatar Feb 19 '21 09:02 Sky24n

Good suggestion, thank you for your help 🙏

gustanas avatar Feb 19 '21 09:02 gustanas