1. Generate mapping from character to Pinyin
Choose a Pinyin for each character, using the data source A and data source B.
If a character is in data source B, choose the first Pinyin.
If a character is not in data source B, and has a Pinyin using tone 5, chose the one with tone 5
Otherwise, choose the first PinYin in alphabetical order
Use "yu" to represent "ü"
Add "e" for PinYin without vowel: "ng" -> "eng", "hng" -> "heng"
2. Generate stroke letters
Pick the two leading strokes of each character, using data source C
Fill in horizontal stroke "-" if there is less than two strokes
Convert the two strokes to letters as table below
3. Generate PinHua
Insert the two stroke-based letter after the first PinYin letter
Append tone suffix as table below
Stroke-to-Letter Conversion Table