Edit 2020/06: The translator is also available in-world in Speculoos’ “Lab” region (speculoos.world:8002:Lab).

There are always issues with translators. The most noticeable one is… Most don’t work at all (since Google changed its API policy). And the working ones use an API key which is hard-coded and often stop working when too much people get a copy of the same item.

So I took over an old beautiful project, HG Universal Translator by Frank Ramos, which seemed to be abandoned (last version was not functional and was 4 years old, even the version sold for 1 L$ on SL marketplace was announced as not working) and I made necessary changes to make it work.


Why is it beautiful? Because it’s multi-user and intelligent. Instead of having each user querying the translation API, the translator groups the requests. So if 10 people want English translation while someone speaks in Spanish, only 1 translation request is made, instead of 10.

And why intelligent? Because every translator checks to see if there is another one running around. If there are several translators, one becomes the master (the one making the translation requests), the other ones become slave (just delivering to “their” local users).

So you can drop a translator on your sim, and users can wear one as a hud, it doesn’t hurt: the http requests to the translation API are optimized, and only one request per language pair (English to Spanish, English to French…) is made.

Did I make all this? Nope. This was the way it worked in the Hank Ramos original translator.

So what did I really do?

  • adapt the script to use Yandex translation instead of Google;
    Yandex use an API Key they give for free, and the registration process is SIMPLE (register, get the key). Google and Microsoft (to cite only two) for example, not only charge for the API key, but the registration process is overcomplicated. So user getting a copy can easily get their own key, instead of having to distribute a copy with hard-coded key which, soon or late, will go beyond the allowed use if shared by dozens of users.
  • store the key in a separate notecard;
    It is not hard-coded in the script like in some other Yandex translators available.
  • wrote replacements for missing scripts in the published version of HG Universal Translator;
    Actually, this open source script as it was distributed was unable to work (even without the Google API issue) as some required scripts were not included.
  • … and some other minor changes.