Translating Dynamic Content

You can use Parameters in your localization table when only part of the displayed string requires translation, such as localizing a unit of measurement after a number value, referencing a username, or displaying time and date.

Displaying an amount of in-game items.
Showing a player's Roblox username in a message.
Displaying a high score using localized separators.

Parameters consist of a parameter value and an optional format specifier enclosed in braces.

In the following example, an experience has the following entries in its localization table:

Sourcees
Hello {Player_Name}!Hola {Player_Name}!
My name is {NPC_Name}Me llamo {NPC_Name}

If a user has their locale set to es, the translation output would be as follows:

Original In-Game TextSpanish Translation
Hello new_storm!Hola new_storm!
My name is Diva DragonslayerMe llamo Diva Dragonslayer

In some cases, you may want to use format specifiers to control how the parameter value is formatted in the localized string.

The available format specifiers are as follows:

SpecifierTypeDescriptionExample Output
intnumberInteger with optional negative sign; no thousand separators. 1234
fixednumberTwo decimals with decimal indicator, optional negative sign, and no thousand separators. 1234.50
1234,50
numnumberTwo decimals with decimal indicator, optional negative sign, and thousand separators.1,234.50
1234,50
HEXnumberInteger converted to hex; negative is converted to 64-bit two's complement. 3FF
hexnumberSame as HEX, but lowercase.3ff
datetimenumberUTC timestamp as a number to universal user-readable format.2017-10-10 13:38:10
iso8601numberUTC timestamp as a number to ISO-8601 format UTC time.2017-10-12T22:02:38Z
shorttimenumberUTC timestamp to local "hour:minute" format. 1:45 PM
13:45
shortdatetimenumberUTC timestamp to general date+time pattern with short time.10/10/2017 1:45 PM
shortdatenumberUTC timestamp to short date pattern.10/10/2017
2017-10-10
translatestringLooks for a literal Source string match in the localization table and uses available locale translation.

Translating Substrings

Use the translate specifier when requiring a direct translation from your localization table. The localization will search for an exact match of the parameter in the Source column of your localization table.

In the following example, an experience has the following rows in its localization table:

Sourcees
I am from {Place_Name:translate}.Soy de {Place_Name:translate}.
BrazilBrasil
LondonLondres
GermanyAlemania

If a user has their locale set to 'es', the translation output displays as follows:

Original In-Game TextSpanish Translation
I am from Brazil.Soy de Brasil.
I am from London.Soy de Londres.
I am from Germany.Soy de Alemania.

Translating With Numbers

You can use a specifier to format your numerical values to match the context within your experience.

In the following example, an experience has the following number related entries in their localization table:

Sourcees
{race_time:fixed} seconds {race_time:fixed} segundos
${1:num} cash and {2:int} jewels ${1:num} dinero y {2:int} joyas

If a user has their locale set to es, the translation output displays as follows:

Original In-Game TextSpanish Translation
75.202844 seconds75,20 segundos
$2500.5 cash and 99.8 jewels$2.500,50 dinero y 100 joyas