This concept is highly anticipated, but members have had concerns about getting it up and running. Primarily, there are two issues pointed out frequently:
Administrators that see mods needing secure.http_mods or secure.trusted_mods access causes a lot of worry that it will be a failure point for stability and safety, even if it uses an API client from the LibreTranslate service instead of Micros($)oft or Alphabet's Google. If you could explain how it might be possible to have a completely offline version of this or another translator service, or explain in more detail how http calls to localhost:5000/languages works in the mod description, and running podman, more servers would surely gain confidence in using this mod to allow non-native players to naturally communicate with each other. Additionally, a way to permanently save and cache all queries and responses to drastically reduce the http calls needed over a period of time would help bridge the gap to allowing a semi or fully-offline translation service.
Everyone that has used translators has eventually come across some major shortcomings in how the translator perceives meaning, where it cannot successfully get the point across, or it just doesn't understand an advanced word or concept in one language to be able to explain that in another. It would be a very good idea to allow the user to see the original message paired with the LibreTranslate message at the same time configurably, or on demand in order for the player to take mistranslated phrases and questions and try them on another service, as well as the possibility of considering a reviewing and feedback system for each query. It would also be good to incorporate a system which, if the translator has failed or is inaccurate, each individual word is translated and shown to the user as a | delimited | message | so the user may still be able to piece together what was meant, as well as learn the language much more easily.
If you could explain how it might be possible to have a completely offline version of this or another translator service, or explain in more detail how http calls to localhost:5000/languages works.
I can add an explanation like the one below to the readme. Please let me know if this helps.
"To use Chat Translator, LibreTranslate should be installed and running on your server.
All http requests completed by the mod are internal requests from your Minetest server to the LibreTranslate service, both of which are running locally on your server.
All http requests are sent to localhost:5000. There are no external http calls to a server running elsewhere."
It would be a very good idea to allow the user to see the original message paired with the LibreTranslate message at the same time configurably
Currently, if a translation fails, players receive the untranslated message.
I could add a toggle that allows both to be received even when the translation is successful.
The only problem I expect with this idea is if there are 3 or 4 players talking and you begin
receiving dual messages for 1 or more players, the chat could quickly become cluttered with an excessive amount of text.
A server owner could open port 5000 and allow users to access the GUI to suggest corrections to translations.
I could create a GUI within the Minetest engine to interact with this functionality, but it would be much easier to add
a MOTD on the server saying "To suggest corrections to translations, visit myserver.com/translate".
It would also be good to incorporate a system which, if the translator has failed or is inaccurate, each individual word is translated and shown to the user as a | delimited | message | so the user may still be able to piece together what was meant, as well as learn the language much more easily.
I could create a function that iterates over the words in a sentence
and attempts to translate each word, then concatenates the results with a delimiter.
This would be called when translation fails for a message.
I would have to see how this affects the overall performance of the mod since it
would create the possibility of ~50 http requests / attempted translations being performed for a single chat message.
I also thought of the issue where a user can get spammed by the translator with that feature enabled while writing that -- so I also was trying to come up with a solution like the user being able to send an on-demand /tr username command that would resend the cross-examination(s) or originals or act like a per-user-to-user toggle to disable the translator. I think people having that capability will allow better understanding of the translator and could improve their suggestions and reviews, hopefully even make their outlook a little more positive.
About the in-game translation feedback, I don't expect there to be zero toxic users either, that could cause the translator (via an unknowing party) to throw insults or curses when they are not meant to be, or even leaving less-than-helpful translation suggestions. Its partially for this reason why the per-word translation is a good idea.
And for the performance of 50 individual, more or less possible, requests to the linux and windows networking stacks per potential message, and the single-threaded addon subsystem, and the containerization overheads (if any), it would be a good idea to figure out how to benchmark, profile, cache, batch/schedule, event-base/interrupt, do whatever to reduce the overhead, latency, and jitter of the system. It would also be a good idea to find out how to keep messages from becoming too long, or putting an interactive element between the user and the server that can show more information, like your GUI as you mentioned prior, or something akin to an interactive terminal application. It would also be wise to add a non-spoofable marker that denotes that the message was translated.
There seems to be a lot of ways to approach this, which is always a good thing when solving such a fundamental problem and cause for divide. It may not be the most intuitive or functional at first, but we can be confident that its a major step.
https://github.com/LibreTranslate/LibreTranslate/pull/151 is very encouraging to read, but I'd like them to also consider an on-demand uploader so there isn't a continuous or repetitious outbound service which has no security guarantees if they use an older or modified library, or even if their cloud platform is compromised or malfunctional.
Again, thank you for reading, and providing assistance in this matter.
This concept is highly anticipated, but members have had concerns about getting it up and running. Primarily, there are two issues pointed out frequently:
Administrators that see mods needing secure.http_mods or secure.trusted_mods access causes a lot of worry that it will be a failure point for stability and safety, even if it uses an API client from the LibreTranslate service instead of Micros($)oft or Alphabet's Google. If you could explain how it might be possible to have a completely offline version of this or another translator service, or explain in more detail how http calls to localhost:5000/languages works in the mod description, and running podman, more servers would surely gain confidence in using this mod to allow non-native players to naturally communicate with each other. Additionally, a way to permanently save and cache all queries and responses to drastically reduce the http calls needed over a period of time would help bridge the gap to allowing a semi or fully-offline translation service.
Everyone that has used translators has eventually come across some major shortcomings in how the translator perceives meaning, where it cannot successfully get the point across, or it just doesn't understand an advanced word or concept in one language to be able to explain that in another. It would be a very good idea to allow the user to see the original message paired with the LibreTranslate message at the same time configurably, or on demand in order for the player to take mistranslated phrases and questions and try them on another service, as well as the possibility of considering a reviewing and feedback system for each query. It would also be good to incorporate a system which, if the translator has failed or is inaccurate, each individual word is translated and shown to the user as a | delimited | message | so the user may still be able to piece together what was meant, as well as learn the language much more easily.
Thank you for your time.
If you could explain how it might be possible to have a completely offline version of this or another translator service, or explain in more detail how http calls to localhost:5000/languages works.
I can add an explanation like the one below to the readme. Please let me know if this helps.
"To use Chat Translator, LibreTranslate should be installed and running on your server.
All http requests completed by the mod are internal requests from your Minetest server
to the LibreTranslate service, both of which are running locally on your server.
All http requests are sent to localhost:5000.
There are no external http calls to a server running elsewhere."
It would be a very good idea to allow the user to see the original message paired with the LibreTranslate message at the same time configurably
Currently, if a translation fails, players receive the untranslated message.
I could add a toggle that allows both to be received even when the translation is successful.
The only problem I expect with this idea is if there are 3 or 4 players talking and you begin
receiving dual messages for 1 or more players, the chat could quickly become cluttered with an excessive amount of text.
considering a reviewing and feedback system for each query
It looks like this is already implemented.
https://github.com/LibreTranslate/LibreTranslate/pull/151
A server owner could open port 5000 and allow users to access the GUI to suggest corrections to translations.
I could create a GUI within the Minetest engine to interact with this functionality, but it would be much easier to add
a MOTD on the server saying "To suggest corrections to translations, visit myserver.com/translate".
It would also be good to incorporate a system which, if the translator has failed or is inaccurate, each individual word is translated and shown to the user as a | delimited | message | so the user may still be able to piece together what was meant, as well as learn the language much more easily.
I could create a function that iterates over the words in a sentence
and attempts to translate each word, then concatenates the results with a delimiter.
This would be called when translation fails for a message.
I would have to see how this affects the overall performance of the mod since it
would create the possibility of ~50 http requests / attempted translations being performed for a single chat message.
Thank you for taking the time to reply.
I also thought of the issue where a user can get spammed by the translator with that feature enabled while writing that -- so I also was trying to come up with a solution like the user being able to send an on-demand /tr username command that would resend the cross-examination(s) or originals or act like a per-user-to-user toggle to disable the translator. I think people having that capability will allow better understanding of the translator and could improve their suggestions and reviews, hopefully even make their outlook a little more positive.
About the in-game translation feedback, I don't expect there to be zero toxic users either, that could cause the translator (via an unknowing party) to throw insults or curses when they are not meant to be, or even leaving less-than-helpful translation suggestions. Its partially for this reason why the per-word translation is a good idea.
... Continued ...
...
And for the performance of 50 individual, more or less possible, requests to the linux and windows networking stacks per potential message, and the single-threaded addon subsystem, and the containerization overheads (if any), it would be a good idea to figure out how to benchmark, profile, cache, batch/schedule, event-base/interrupt, do whatever to reduce the overhead, latency, and jitter of the system. It would also be a good idea to find out how to keep messages from becoming too long, or putting an interactive element between the user and the server that can show more information, like your GUI as you mentioned prior, or something akin to an interactive terminal application. It would also be wise to add a non-spoofable marker that denotes that the message was translated.
There seems to be a lot of ways to approach this, which is always a good thing when solving such a fundamental problem and cause for divide. It may not be the most intuitive or functional at first, but we can be confident that its a major step.
https://github.com/LibreTranslate/LibreTranslate/pull/151 is very encouraging to read, but I'd like them to also consider an on-demand uploader so there isn't a continuous or repetitious outbound service which has no security guarantees if they use an older or modified library, or even if their cloud platform is compromised or malfunctional.
Again, thank you for reading, and providing assistance in this matter.