Nie jestem pewien, czy dostępne są pakiety OS (Open Source). Jednak teoretycznie nie jest trudno zbudować taką bibliotekę. W języku chińskim istnieje około 1300 pojedynczych dźwięków: początkowy + końcowy + dźwięki. Każdy dźwięk ma grupę chińskich znaków, różne liczby od 1 do 130 znaków.
Można zdefiniować tablicę wszystkich Pinyin brzmi:
string[] pinyins = new string[] {
"a:c1c2c3...", // pinyin 1 a: character1 character2...
...
"zuo:z1z2z3z4z5..." // last pinyin (1300) zuo: character character...
};
Powyższa tablica jest bazą dla mapowania Pinyin Chiński (chińskie znaki i dźwięki są Pinyin unicode strings). Następnie dla każdego dźwięku wejściowego Pinyin, wykaz znaków uzyskuje się poprzez funkcję tak:
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;
}
pisałem JavaScipt dawno temu, gdzie zdefiniowane relacje między Pinyin i chińskich znaków. W moim blogu: Get Pinyin From Chinese Characters skrypt można znaleźć, przeglądając kody źródłowe lub Sprawdzaj element w menu kontekstowym. W moim blogu skrypt służy do konwersji języka chińskiego na język pinyin, ale związek może być używany jako odniesienie.
Aby dodać funkcję inteligentnej Pinyin - wyświetla listę słów do Pinyin, można to zrobić poprzez zdefiniowanie wszystkich powszechnie używanych słów w podobny schemat: pinyin: słowa.
Jeśli Jest wprowadzania dotykowego bazie wouldn” • czy lepiej pozwolić im wprowadzać znaki przez "pisanie" na ekranie, zamiast używać konwersji pinyin? – Szabolcs
Ekran dotykowy nie jest tak naprawdę reaktywny i nie będzie łatwo pisać w małych polach tekstowych. Jest to aplikacja medyczna, więc lekarz ma możliwość stworzenia nowych pacjentów i po znalezieniu ich po imieniu, nazwisku itp. Dlatego nie może wdrożyć twojego rozwiązania. –
Zatem powodem, dla którego chcesz dostosować listę kandydatów, jest automatyczne uzupełnianie nazwy pacjenta? Większość programów, jakie znam, realizuje to poprzez umożliwienie wpisania pinyin (bezpośrednio, nie poprzez systemowy edytor IME) i na tej podstawie autouzupełniania.Ten problem jest dużo łatwiejszy niż wdrożenie ogólnego i efektywnego IME --- ogólny IME musi obsłużyć wszystkie postacie i musi sugerować najbardziej prawdopodobne dopasowania Najnowszy MS pinyin IME nawet automatycznie aktualizuje z Internetu najnowsze statystyki w celu poprawy prognoz, i uczy się także od użytkownika. – Szabolcs