Translating games without using the translator portal

I know a lot of translators that dedicate themselves to mostly translation complain about the automatic translations Roblox enforced. And I don’t blame them – machine translations usually suck unless they are generic sentences, sometimes even those can go wrong. But I guess it mostly depends on language. I even have Roblox set to English since the translations of games are not good since they don’t actually have someone translating the games for them.

So I thought “what if I did a pure Lua(u) solution”. All the strings that are displayed to the client would be in ModuleScripts inside ReplicatedStorage, and the programmer would get the locale of the player to determine which ModuleScript to load in.

Ideally for UX you should default to the player’s Roblox locale, but a setting to let them change it dynamically in-game without needing to exit the game and change their account settings is great.

Disadvantages to this is of course translators don’t have a fancy portal to translate strings in, and if most games just hardcode the strings to show in the codes that display them, then it is probably time to do some refactoring, but this is a good thing anyway. Better to have content.coins_display:format(player_coins) a million times only to later on not be satisfied with the text and change it only once from a module from "Coins: %d" to "%d Coins" versus ctrl + f’ing everywhere and ctrl + h’ing. I’ve forked Discourse plugins to translate them and just edit raw yml files of all the strings the plugins show.

I also think the translator portal lets you translate the game title, so if that is the case you’ll probably still want the portal for that. But I don’t regularly translate games on Roblox, so I don’t know. I might just keep using this method.

The demo is open-source:

Unfortunately my language arsenal only consists of Spanish (native speaker) and English, so I only added Spanish. You can click on the cog to toggle between the two. If you don’t understand Spanish that is fine – the game is just meant to showcase the translations without using the portal.

What do you think? Do you have any feedback on this structure? Do any other games actually do this already?

7 Likes

I cannot express enough how you really should not do this. Sure, machine translation will never be as perfect as a native speaker’s, but it should be able to correctly handle most of strings in your game.

Even if you’re determined to do all Spanish localization yourself, rather than playing it out in Lua, you should manually add human translations into the localization portal through a .csv file as outlined in the end of this article. Machine translations will never override human translations. If it does, post it in Bug Reports.

2 Likes

By the way, it won’t let me play the game.

There are plenty of posts here on the forum that explains how this have happened. You should do your research before posting.

The reason why people complain about automatic translations is because there is an error in almost every sentece, since machines cannot understand the context of a certain sentence.

↓↓↓

I don’t think this will allow players to toggle between languages, since most games just force the user’s Roblox locale, which is why I didn’t do this, or anything related to the translator portal, since Roblox doesn’t allow any file manipulation through Lua(u). This was mostly a proof of concept anyway, but I still think this has legitimate use cases

This should be fixed now, thank you

It still won’t let me join the game, try messing around with the permissions.

Try refreshing, because it works on my machine.

image

It doesn’t say the game is private