Page 1 of 1

Multiplayer Lobby - Messages Translator - Additional Information

Posted: 25 May 2019, 18:34
by Dr.MonaLisa
Good afternoon.
As most of active Multiplayer users noticed, on 11th of May 2019 I added a new Messages Translator which helps players from different countries communicate.

Manual Translation:
Since the beginning, the Translator is able to translate messages using the following methods:

1. @Message - translates the Lobby or Private message to English. Example:
~eW`~>♔Dr.MonaLisa: @Deine mutter habst keine kinder
[de-en]~eW`~>♔Dr.MonaLisa: Your mother does not have any children
2. @l1-l2 Message - translates the Lobby or Private message from Language 1 to Language 2. Example:
~eW`~>♔Dr.MonaLisa: @en-es What Mona doesn't know won't hurt her
[en-es]~eW`~>♔Dr.MonaLisa: Lo que Mona no sabe no la lastimará.
The list of available language codes can be found at:

Automatic Translation on the Lobby Chat:
A few days after the Manual Translator release, I prepared Automatic Translator which is currently in BETA stage and is enabled for all Lobby and Private Messages.

How does it work?
A function called "MonaAI" learns if individual players use different languages and automatically translates them to English. The algorithm is a little bit complicated, but in General:
- Every Player has a "weight", a number from -Infinity to 5. If the number is greater than 5, no more player messages are translated to English for the next 15 minutes.
- The default "weight" is 0. If "weight" is greater than -1 and a player sends message longer than 9 characters it's being sent to Google Cloud. If detected language is English the weight grows (+1), if the other Language is detected, the weight decreases (-1).
- If the weight is less than 0, a message is being sent to Google Cloud, no matter how many characters it has. Again: if detected language is English the weight grows (+1), if the other Language is detected, the weight decreases (-1).
Thanks to that the Auto-Translator doesn't get mistaken by short messages, which could trigger some exotic languages. When it's sure that the player used a different language before - it translates all new messages.

The Auto-Translator only prints messages which are non-English. If the sent message is in English, the translator might still send it to the Google Cloud (to check what language it is), but will not print it as [en-en].

1. Message - If the Message length is greater than 9 or player used the different language before that, it's getting translated to English.
~eW`~>♔Dr.MonaLisa: Hola amigos!
[es-en]*~eW`~>♔Dr.MonaLisa: Hello friends!
~eW`~>♔Dr.MonaLisa: Hell yeah, it works!
Nothing is printed there
Automatic Translation in Direct Messages (aka. Private Messages):
The Auto Translation in direct messages works similar way to the "Lobby Chat" messages, however, since 27.07.2019, the default language is not English - it is the language detected based on player's country (from the IP address).

Polish_Player: Cześć przyjacielu!
[pl-de]*Polish_Player: Hallo mein freund!
German_Player: hallo wie gehts?
[de-pl]*German_Player: cześć, jak się masz?
If you do not wish to use the language based on your country, you can change the default language by typing the following message on the Lobby chat:
|cmd lang (auto,disabled,en,es,de,pl,etc.)
auto = default option, detects the language based on your country
disabled = disables the language translation in direct messages
en,es,de,pl,etc. = the language code which you wish to use for messages translation. The list of available language codes can be found at:

If both players countries are using the same language, the Automatic Translation is disabled in their conversation.
If a player from the country "A" writes a message using the language of a player from the country "B", then the translated message won't be displayed (to prevent duplicates).

The Manual and Automatic Translation only works for messages sent on the Lobby Chat or in Private Messages. Since EE2 is a peer-to-peer game, the messages sent in the Hosted Game Room or Game (after launch) are not stored in the database and can not be checked by periodical Translator script.

The Translator has anti-spam limits to not generate extra costs on Google Cloud. In case of messages spam some of them might get ignored.

Lobby and Private Messages are (as usual) stored in Database and sent to Google Cloud for translations (with exceptions of messages which reached translation limits).

I believe it's a great feature which makes our community and Multiplayer Services even more unique than on the other games! Non-English speaking players can finally communicate with others, without minimizing game.

Have a great day!

Re: Multiplayer Lobby - Messages Translator - Additional Information

Posted: 29 Jul 2019, 22:44
by Dr.MonaLisa
29.07.2019: The first post in this topic has been updated to explain the new Direct Messages (aka. Private Messages) automatic translation. The translation language is now based on players countries, and can be changed (or fully disabled) by sending a special command on the lobby chat. Please read the first post for more information.

Re: Multiplayer Lobby - Messages Translator - Additional Information

Posted: 27 Oct 2019, 03:09
by Dr.MonaLisa
Today (27.10.2019) the Auto-translation has been updated to prevent situations where messages were displayed as translated from some "exotic" languages.
By "exotic" language I mean the languages that were rarely (or never) used on the Lobby. Of course, the new method is prepared for guests who are speaking those languages, so I'll explain how it works now.

1. If the detected translation language is on the list of "exotic languages", a new translation is being initiated.
2. If player's language (based on the country from the IP address) is the current "exotic language", the function is skipped and will display the previously translated message (as before).
3. Otherwise, the message is translated using the player's language as the source (instead of automatic detection).
4. When successful, the new translation replaces the old one, so instead of "exotic language", we get a translation from the player's language.

Additionally, the function has been updated to detect if translated message is the same as the sent one. If this condition is met, then the message translation won't be printed as the Lobby Message (but of course still gets stored in messages database on the Server).

I believe that thanks to those improvements players won't be focused or laugh so much about the "funny translator", and will do more useful things instead (like playing or working to collect money to send a donation on