Introducing our New Localization Tools!

This could be used to create a language learning game… I’m currently using LingoDeer to learn Japanese, but it’d be fun to create an interactive learning experience.
I don’t see many of those on Roblox.

+1 If you think there should be a “Learning” category/genre.

5 Likes

We definitely plan on supporting studio in other languages long term. I’m not sure of where that is on the roadmap right now though.

2 Likes

This is actually a really cool idea! Perhaps one day schools could even use educational games on Roblox to teacher younger students other languages.

Also, Roblox no doubt should add a new genre, but I think it should be called “Educational” instead of “Learning”.

3 Likes

Do ServerScriptService, ReplicatedStorage and ServerStorage empty for anyone else when using es-es in play solo?

1 Like

Small issue here is that whether or not the game stays up is up to some random person. No obligation to keep it up. It’s a small issue, but it makes other resources more feasible.

1 Like

Mine seem to be fine.

Image

image

1 Like

Where can I find the supported local ids? Can’t find any information about them on the wiki.

1 Like

It would be nice for it to have a page on the wiki for clarity, but this page is probably helpful:

https://msdn.microsoft.com/en-us/library/ee825488(v=cs.20).aspx

5 Likes

Hey @Polyhex,

At least officially, at the moment our only “supported” locale ids are en-us and es-es. “Officially.” :weary:

More generally we use IETF RFC 5646 language tags. Conventionally the country code is upper cased, but here at Roblox we lower case the whole thing (don’t ask).

As an example here’s one more exhaustive list. No guarantees that we will support the one-part two letter generic language codes, which this list does include. We’re still having debates about that.

If you stick to the more popular two-part codes here you should be golden. No guarantees on the more exceptional cases, like where the same language can be used in two different scripts (e.g. Serbian, or even Chinese). The standards here are a little bit loose unfortunately, which means different companies have implemented things slightly differently. We’re still working on locking down our standards on these more complex cases.

7 Likes

Hi devs!
If you haven’t seen the localization tutorial, I’ve provided a link to it below.

I also just added a table of 15 language codes which you use to get started on localizing beyond Spanish.

http://wiki.roblox.com/index.php?title=Roblox_Localization_Tools

IgnisRBX

8 Likes

The fact that you told me not to ask about the fact the country code is lowercased makes me want to ask.

Please, feel free to provide an answer whos own existence forces me to question my understanding and capacity to continue in the field of Computer Science and Engineering.

1 Like

Have you considered streaming fonts as if they were assets? If download size is the problem, the only thing the client really needs from an api-standpoint is data on character spacing (for TextService:GetTextSize() and .TextBounds), then maybe bundle a low-res variant of the font that gets updated in quality when they see that font in-game for the first time.

2 Likes

If you want to simply scrape all of the text from your game and put it into this, here’s some ROUGH code that you need to customise for your own usage

local tableLocal = game.LocalizationService.GeneratedLocalizationTable
local newTable = tableLocal:GetEntries()
for _, value in pairs (game.ServerStorage.Questions:GetDescendants()) do
	pcall(function()
	if value.Value ~= nil and string.len(value.Value) > 1 then
		table.insert(newTable, {Source = value.Value, Context = "Workspace.Questions.QuestionScreen.SurfaceGui.Back.Question", Example = "", Key = "", Values = {}})
	end
	end)
end

tableLocal:SetEntries(newTable)
5 Likes
2 Likes

I have a question, according to the video, we have to play out the games so it can capture the text it has seen. What if there is a lot of text in the game, that would take forever to play all the rounds! Is there any way to just capture all the text so none gets left out? Am I missing any information? Please respond, thanks!

2 Likes

At this time, it isn’t possible to capture all text at once.

1 Like

There’s a ton of LocalizationTable APIs that will let you do all the same things that the text scraper tool does. Particularly SetEntryValue.

Those tools that we provide are the most general purpose tools that we could devise. You know your game, we don’t. It’s your job to make the assumptions we can’t make.

If you use the dialog editor it would be easy to write a plugin to stuff all that into a table at once and set up keys for them (if you do, share it!). If you store your strings in custom module scripts you can write some custom code to add those all at once easily as well.

1 Like

Looks like you can update your language on the website now!

Image

NP74gqT

2 Likes