vitorpamplona / amethyst

Nostr client for Android
MIT License
1.15k stars 157 forks source link

[FEATURE] add translation for none play store versions #548

Open skyerjoe opened 1 year ago

skyerjoe commented 1 year ago

Is your feature request related to a problem? Please describe. With the fdroid version im not able to translate a post which is written in an language that i dont understand

Describe the solution you'd like Implement an solutuion like deep translate for none play store versions.

Bounty (in Bitcoin sats) offered for the implementation 100 000 sats

Additional context Add any other context, video, or screenshots about the feature request here. it has to be seamless not an redirect to an translating webpage

KotlinGeekDev commented 1 year ago

This was on my list of things to implement in Amethyst. Nice!

Is your feature request related to a problem? Please describe. With the fdroid version im not able to translate a post which is written in an language that i dont understand

Describe the solution you'd like Implement an solutuion like deep translate for none play store versions.

Bounty (in Bitcoin sats) offered for the implementation 100 000 sats

Additional context Add any other context, video, or screenshots about the feature request here.

vitorpamplona commented 1 year ago

Sorry, wrong thread.

vitorpamplona commented 1 year ago

Can we find a way to do it in-device? Or do we need to use external services for it? And if so, what are the privacy guarantees that we will see out there? They will be seeing DMs and all private communication if this is built on the F-Droid version

KotlinGeekDev commented 1 year ago

Can we find a way to do it in-device? Or do we need to use external services for it? And if so, what are the privacy guarantees that we will see out there? They will be seeing DMs and all private communication if this is built on the F-Droid version

We need to use external services for it(for the moment, because I am thinking of an offline solution). It has the same level of privacy as services like Invidious, where the device that actually talks to the translation server is the server of the service provider(so the phone's IP is only known to the middleman, not the actual translation server).

KotlinGeekDev commented 1 year ago

Can we find a way to do it in-device? Or do we need to use external services for it? And if so, what are the privacy guarantees that we will see out there? They will be seeing DMs and all private communication if this is built on the F-Droid version

If we use DeepL as OP mentioned, we will need an API key(the paid one being better, because of the text limit(300 words) and request limits).

skyerjoe commented 1 year ago

well ok , may an proposal

if u implement these u can use my bounty for running up but it should be seamless

may we get some users to spend some sats for keep it active

i mean they do it all on zapathon for nothing

best regards

KotlinGeekDev commented 1 year ago

Thanks @skyerjoe when I implement it, I'll write back here.

DocSniper commented 10 months ago

With the Bergamot project you can translate texts locally. Dictionaries for this can be installed if necessary. See: https://browser.mt/ and: https://translatelocally.com/

KotlinGeekDev commented 7 months ago

Hello @DocSniper . Sorry, missed your comment. I had a look and the language support is limited. Plus, it does not really expose an API surface that cannot be used easily. One needs to create their own C layer to use it in another language.

KotlinGeekDev commented 7 months ago

However, I found this interesting project: https://github.com/argosopentech/argos-translate cc @vitorpamplona . The only barrier is that it's written in Python. It might need a rewrite for Kotlin or Java.

KotlinGeekDev commented 7 months ago

Update: Argos-translate is really cool, but it seems that running it, even with the downloaded translation models, requires a device that has CUDA support, aka GPU. There are, as of now, 3(might be reduced to 2) options:

anthony-robin commented 1 month ago

I would :heart: to be able to fetch translations from Umbrel LibreTranslate app (self hosted) that acts as replacement of Google Translate services on non PlayStore phones (eg: GrapheneOS).