Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature request] Use multiple translators with different priorities #347

Open
schklom opened this issue Apr 30, 2023 · 7 comments
Open
Labels
enhancement New feature or request questions Further information is requested RFC Need to triage

Comments

@schklom
Copy link

schklom commented Apr 30, 2023

Bergamot can only translate some languages, and same for LibreTranslate. And also, sometimes, my LibreTranslate instance crashes.
In my case, when I see a language these 2 cannot translate, I need to go into the options to change the translate engine to Google.
It would be simpler to be able to give priorities to the translators.

For example:
Bergamot: 1
LibreTranslate: 2
Google: 3
Yandex: -1

with a default waiting time for a positive response of e.g. 5 seconds.
Linguist would try Bergamot first, and if the language is not supported or Bergamot does not reply within 5s or takes longer than 10 seconds to translate everything, then LibreTranslate (with the same conditions), then Google, then nothing because Yandex is not wanted.

I am not sure how many people would use this, but it would be useful to at least me.

@vitonsky
Copy link
Collaborator

Your feature request are clear. However, not clear use case.

Why you need this feature? Whats your problem this behavior will solve?

Take time and try to give clear answer on this question. It is possible you need another solution actually.

@vitonsky vitonsky added enhancement New feature or request questions Further information is requested RFC Need to triage labels Apr 30, 2023
@schklom
Copy link
Author

schklom commented May 1, 2023

My preferences are already listed.

The websites I browse are sometimes written in Nordic languages (e.g. norwegian, swedish), and some other times in German.
However, Bergamot and LibreTranslate do not support Nordic languages so I need Google.
I only want Google when Bergamot and LibreTranslate cannot translate (privacy reasons).

The problem is that every time I go on a Nordic website, I need to open the configuration page of Linguist and change the translator, then change back to Bergamot or LibreTranslate.
It works, but takes time.

@vitonsky
Copy link
Collaborator

vitonsky commented May 1, 2023

I got you. Your suggestion looks a dangerous for users privacy, because with feature you suggest, translators can be mixed implicitly, so user can send their texts to google, when preferred translator broken or not support some language, or when page language been detected wrong.

But i see your problem. I expects a users will choose one translator and use it long time. But you want to use multiple translators at one time.

We have to think how we can solve your problem another way. Give me few ideas how Linguist could improve your user experience

@schklom
Copy link
Author

schklom commented May 1, 2023

with feature you suggest, translators can be mixed implicitly, so user can send their texts to google, when preferred translator broken or not support some language

If they do not want google, they could set the priority to -1.
You can even give 1 by default for Bergamot, and -1 for all others.

I expects a users will choose one translator and use it long time

When LibreTranslate or Bergamot supports more languages, I will do that :)

Give me few ideas how Linguist could improve your user experience

An alternative that would help it is to let the user have a default choice for the translator (what is done right now), but add an option to choose which translator to use in the context menu and in the toolbar button.

For example, on the toolbar menu
image
and/or on the context menu
image

@vitonsky
Copy link
Collaborator

vitonsky commented May 2, 2023

Your concept on first screenshot looks fine, i could implement it. Let's think about details.

  • What about another use cases like input text translation and selected text translation? How to chose translator for this features?
  • How to manage this settings? If i have picked some translator on 100 sites and now i want to never use this translator, how i can reset it for all sites?
  • What if user will choose custom translator and this translator will unavailable after some time (user will delete this translator)? We have to fallback to default translator? It may be implicitly for user (it is bad for privacy)

@schklom
Copy link
Author

schklom commented May 2, 2023

What about another use cases like input text translation and selected text translation? How to chose translator for this features?

For the Toolbar button, why not have the same menu as on my first screenshot?
It could be something like
image

How to manage this settings? If i have picked some translator on 100 sites and now i want to never use this translator, how i can reset it for all sites?

In the settings, could something like this work?
image

What if user will choose custom translator and this translator will unavailable after some time (user will delete this translator)? We have to fallback to default translator? It may be implicitly for user (it is bad for privacy)

Fallback to the global preferences (in the extension settings).
When the user installs the extension, it should use only Bergamot for best privacy (negative priorities for other translators).
Then, use the priority list.
If the user has defined priorities, the extension should respect them.

Throw an error if priorities are equal (if Bergamot and LibreTranslate have priority 1, you cannot say which one to use), and use negative priorities for translators that are not wanted (e.g. Yandex -1, Google -2).

@vitonsky
Copy link
Collaborator

vitonsky commented May 4, 2023

For me UI looks too complicated. Idea with priorities are not secure due to ability of implicit translators switching.

Your UI concept for translator picker in text translation are not consider a case when language bar or translator name will wide.

image

Let's dream up more and will try to find a good place for language picker everywhere

  • text translation
  • selected text translation popup

And think about some another UI to reset translators for sites, something more natural. Current approach bad because too complicated:

  • user have to go to settings to reset translators for sites that they have set in addon popup
  • user have to choose translator and press button to reset translator preferences for unknown number of sites

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request questions Further information is requested RFC Need to triage
Projects
None yet
Development

No branches or pull requests

2 participants