Не уверен, есть ли доступные пакеты ОС (с открытым исходным кодом).Тем не менее, в теории, не так уж сложно построить такую библиотеку.На китайском языке около 1300 одиночных звуков: начальный + финальный + тоны.Каждый звук имеет группу китайских символов, различное количество которых составляет от 1 до 130 символов.
Вы можете определить массив всех звуков пиньинь:
string[] pinyins = new string[] {
"a:c1c2c3...", // pinyin 1 a: character1 character2...
...
"zuo:z1z2z3z4z5..." // last pinyin (1300) zuo: character character...
};
Приведенный выше массив является основой для вашего отображенияPinyin на китайский (китайские иероглифы и тона пиньинь являются строками юникода).Затем для каждого входного звука пиньинь получается список символов с помощью такой функции:
string getCharacters(string aPinyin) {
string characters = null;
foreach(string item in pinyins) {
string[] temp = item.split(':');
if (temp[0].Equals(aPinyin)) {
charaters = temp[1];
break;
}
}
return characters;
}
Я написал JavaScipt давным-давно, где я определил связь между пиньинь и китайскими символами.В моем блоге: Получить пиньинь из китайских иероглифов , скрипт можно найти, просмотрев исходные коды или проверить элемент в контекстном меню.В моем блоге сценарий используется для преобразования китайского языка в пиньинь, но это отношение можно использовать как ссылку.
Чтобы добавить функцию интеллектуального пиньинь - отображение спискаслова для пиньинь, это можно сделать, определив все общеупотребительные слова в похожем порядке: пиньинь: слова.