Have you localized your Roblox game(s)?

Localized Universal Studios Roblox to Spanish, and its mostly finished throughout as well. Preparing to add other languages soon as well!

1 Like

If the game gets 1m → 10m visits I’d do it, most international players are used to english games though, unless roblox is willing the promote localised games then I see little to no value.

1 Like

I agree with everything the man said.

Here are the main reasons why I am not localizing my games:

  1. Roblox does not support responsive text, which makes it difficult to design text-based interfaces for devices of all sizes. This limitation has caused me avoid using text, and to use mostly graphics for my interfaces. It is an absolute must for Roblox to implement responsive text, similar to how it is done on websites. (TextScaling is not responsive text - the text size changes with the container dimensions, and there is no control of the actual text size).

  2. The limited fonts and text styling options available for text in Roblox, also makes me shy away from using text.

  3. So, most of my interface are graphical elements. I would not mind converting those graphical elements into a new language, if Roblox localization had the ability to detect and automatically switch to those localized images. In other words, similar to the way iOS does localization, if I provide a set of images in an alternate language, the system would automatically show the appropriate image based on the language of the user. So text is only one part of the issue in localization. There needs to be a way to handle images as well.

9 Likes

You can fairly easily program a recognition system for the languages via LocalisationService

For this I’d just make a dictionary in this format, with the original image being the index for each:

-- local script
local plr = game.Players.LocalPlayer
local gui = plr.PlayerGui
local ls = game:GetService("LocalizationService")
local playerLanguage = ls.RobloxLocaleId
local graphics = {
	["rbxassetid://ORIGINIMAGE"] = {["es-es"] = "rbxassetid://InSpanish"}
	-- obviously repeat this for every graphic
}

for _, obj in pairs (gui:GetDescendants()) do
	if obj:IsA("ImageLabel") or obj:IsA("ImageButton") then
		if playerLanguage ~= "en-us" then
			if graphics[obj.Image] ~= nil and graphics[obj.Image][playerLanguage] ~= nil then
				obj.Image = graphics[obj.Image][playerLanguage]
			end
		end
	end
end

Now you can easily replace your graphics with the correct language.

If you do this it’d probably be better to put the actual image assets in a module script and then require that as it’s messy to have it all in one script

3 Likes

Perhaps it would be useful for LocalizationTables to be able to contain not only strings of text, but references to visual assets such as Decals and ImageLabels which could be different depending on the selected language.

This could be particularly usual for developers which make use of pre-generated text in their UI.

5 Likes

I’m using LocalizationService but not auto translate, because I don’t want everything in one table.

I write all text in GUIs as SOMETHING_LIKE_THIS, then I find the key in a relevant LocalizationTable.

1 Like

SharkBite has been updated to include full Spanish translations on all platforms.

3 Likes