Gustaf-C / anki-chinese-support-3

Anki add-on providing support for Chinese study
https://ankiweb.net/shared/info/1752008591
GNU General Public License v3.0
31 stars 8 forks source link

Populate all possible pinyin options #89

Open efishaa opened 1 week ago

efishaa commented 1 week ago

First of all, an absolute beast of an add-on! It makes studying Chinese with Anki so much nicer, massive thanks!

Is your feature request related to a problem? Please describe. When I want to translate a single word like 号, the pinyin field auto-populates fine, but it only populates with the 2nd tone, while this character can also be pronounced as the 4th tone, which in this case is also a more common tone (number vs roar). Meanwhile, the English translation gets auto-populated with all possible options, which is great (although populating the translation with hanzi and pinyin makes the reverse card much easier because instead of translating English to Chinese, you already see the hanzi and pinyin in the translation, but that is a discussion for another day).

Describe the solution you'd like It'd be grand if the pinyin field would populate with all the pinyin options available for the character just like the translation does.

Describe alternatives you've considered There is a limited number of characters with multiple pronunciations and I edited all of mine (around 60) by hand, but an automated flow would of course be faster.

Additional context image

einar-io commented 1 week ago

I investigated this issue, and in this case it turns out we do have the data in our database tables:

sqlite> SELECT * FROM hanzi WHERE '号' in (cp, kMandarin, kCantonese, kSimplifiedVariant, kTraditionalVariant);
号|hào|hou6|号|号, 號
號|hào|hou6|号|
sqlite> SELECT traditional, simplified, pinyin, pinyin_tw, jyutping, classifiers, variants FROM cidian WHERE '号' in (traditional, simplified, pinyin, pinyin_tw, jyutping, classifiers, variants);
號|号|hao2|||個|个[ge4]| <---------- this one gets picked
號|号|hao4||||

When multiple definitions exist, we could either:

  1. Ask the user to chose.
  2. Populate all the options in the fields and then expect the user to delete the undesired ones. However, from my understanding, it is rather common---especially cross strait---that tones differ. Especially 5th tones. So this could lead to a lot of noise.

We could probably not resolve the dispute based on regional preferences, since we do not have this information from our sources.

How would your automated flow look like @efishaa?

efishaa commented 1 week ago

Hi, Einar! Thanks for your response!

Understand the concerns about the noise and the regional preferences. For my flow, providing all the options seems best because I like to see the full picture and all possible pronunciations. The idea of providing the user with a choice sounds great if it could be something you toggle once in settings and then it just remembers your preference.

I'll be away from my computer for a few weeks, but happy to help with more feedback later if you think the feature is worth developing!