arianneorpilla / jidoujisho

A full-featured immersion language learning suite for mobile.
GNU General Public License v3.0
938 stars 58 forks source link

Idea for Rudimentary Support of Chinese? #41

Closed EliCodesForFun closed 3 years ago

EliCodesForFun commented 3 years ago

Greetings,

I know that currently, there isn't a parser setup for Chinese. Is there any way to create a rudimentary way to do Chinese parsing with tap, since we already have some Chinese Dictionaries for Yomichan that work? Currently, I don't have huge issues using Yomichan to read in Chinese, but with the tapping on the app, it tries to lookup the entire sentence when I tap over certain words.

Is there a way you could create a crude temporary solution in the options, where it just does a lookup starting at the first character you tap, and looks up the word in the dictionaries?

Here is an example sentence from this show Hilda: 我们就要辨识并采集到十种本地植物的样本 If I do a search for ANY of the words starting halfway through the sentence with the hanzi 十, the dictionary will try and do a lookup of the entire phrase. I can't lookup things like "植物" even though this is in the Japanese-English and Chinese-English dictionaries I have. O6pB23t

I'm not sure if this is doable to make it work as least as well as Yomichan does.

Video of Yomichan on the sentence: https://user-images.githubusercontent.com/9376306/129407452-2a174b5f-ca78-4b84-ab96-e20995fc8be6.mp4

Thanks~

arianneorpilla commented 3 years ago

I'm just one developer and my target language is Japanese, unfortunately. While I do have ambitions to support languages, my focus is on bringing the best possible experience in what I can and do support, which is presently Japanese and Android.

On the technical perspective, I use my Dart port of the Jisho.org parser, Ve. There is initial parsing work that is actually handled by Ve, and not the Yomichan dictionaries that are used on device.

Ve uses the dictionaries that come bundled with MeCab, and those are designed for Japanese. To implement this feature, a text segmentation parser for Chinese is necessary and I would need to be able to interface such a component into my Dart code.

This would take up extra space, which would bloat an APK that's already 80MB for a single architecture. Ideally, custom versions of jidoujisho that are of a different language should be packaged separately, and they should probably be from custom forks.

Past the foreseeable future, I do have "plans" to extend language support but they are not immediate to the current state of the project. I am likely to work on refactoring this project and rearchitecturing it in order to make it very contribution-friendly and readable -- and hopefully that will come with very extendable language and platform interfaces for developers to customise.

But for all of this come, the refactor must come first, and that would have to be when I'm not busy.

Really sorry if this has disappointed, maybe in time this idea can be revisited but that is my focus for now.

arianneorpilla commented 2 years ago

I am happy to share that I have officially implemented Chinese support in 1.0.0.

See the relevant line in the release notes:

I am looking forward to get feedback from the Chinese language learning community about it, sorry it took so long!

null-von-sushi commented 1 year ago

@lrorpilla I only just found this app. Sorry, but has this been removed again? Apparently this was implemented a while ago, and yet I can only select Japanese or English when starting the app. image

arianneorpilla commented 1 year ago

Chinese is not supported in the 2.x (Yuuna) versions. I have not supported this as both Japanese and English are hard enough to maintain for me as a single developer.

The Chinese and Korean implementations that existed in Chisa were never good. For the very near future, I have no plans of re-implementing Chinese at the moment.

null-von-sushi commented 1 year ago

Oh I see. Thank you for the clarification.