You have to manually input the translations for Spanish just like any other language
Yes but thats not what I was saying. What I mean is Roblox will automatically switch your game to Spanish based on the users settings. They don’t do this for any other language.
You just have to add an extra column in the .csv to add other languages. And you just name the column as other language identifiers. So, Roblox is supporting other languages, just you can’t test the other languages. But, if it works for Spanish, then it’ll work for the others too, right?
Tutorial with other Locale IDs
Edit:
I just saw this section at the bottom. My b. Feels dumb.
You can actually test any language by running the command game.LocalizationService.ForcePlayModeRobloxLocaleId = “fr-fr” (replace fr-fr with the language you want) and then test play. So, 2 of those 5 plugin’s are actually kinda pointless. The export/import plugins are also a waste of space because you can just right click on the LocalizationTable to do the same thing. The only one of the plugins I use is the text capture so it would be nice if I could disable the other 4!
I’ve translated my new quiz game - it’s not totally seamless yet since some of the questions are TRANSLATIONS and also some of the answers don’t make sense when they’re not in English, but I’ll have to slowly work my way through fixing that.
One thing here is that adding to the list with new questions is going to be a pain - I’m continuously adding new questions especially as the game is in Alpha, it’d be nice if there was some function which allowed you to load a CSV in that would add to the table rather than overwrite it - any existing duplicates would be overwritten though.
Making a big push for a bunch of languages! https://twitter.com/TheSeanConn/status/979803659876884480 Should have most of them implemented in the coming week!
I would love to localize. However, I set almost all of my Gui text by script, and it appears that localization doesn’t work for setting text with script, even if there is no special animation.
It works fine with setting texts by script, you just need to make sure you capture that text when using text capture - or better enter the text that the script will change into the LocalizationTable using scripts or manually.
I do use text capture, but it only captures around 100 text labels, when I know there are beyond more than that. When I looked at the table in excel, it excluded a lot.
If your scripts are using data stored in a dictionary or as values - something like that - just use the LocalizationService and LocalizationTable functions to put them into it.
Localized my game DBZ Final Stand to Spanish and will be adding more languages soon as well as improving the current Spanish translation where necessary.
Localized half my sinkin ship game with google translate, mainly to see if everything gets translated.
Localized Universal Studios Roblox to Spanish, and its mostly finished throughout as well. Preparing to add other languages soon as well!
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.
I agree with everything the man said.
Here are the main reasons why I am not localizing my games:
-
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).
-
The limited fonts and text styling options available for text in Roblox, also makes me shy away from using text.
-
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.
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
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.