LocalizationService

Show Deprecated
Not Creatable
Service
Not Replicated

LocalizationService is the service responsible for handling automated translation.

It is used as a storage for LocalizationTable objects used by automatic text replacement.

LocalizationService will only use its child LocalizationTables for automatic text replacement unless GuiBase2d.RootLocalizationTable is specified on a GUI object or its ancestors.

Summary

Properties

  • Read Only
    Not Replicated
    Read Parallel

    The locale ID used for localizing core and internal features.

  • Read Only
    Not Replicated
    Read Parallel

    The locale id that the local player has set for their operating system.

Methods

Properties

RobloxLocaleId

Read Only
Not Replicated
Read Parallel

This property shows the locale ID used for the localization of core and internal features such as CoreGui. Returns a string with the two letter code (for example, en-us) for the locale.

SystemLocaleId

Read Only
Not Replicated
Read Parallel

This property shows the locale id that the local player has set for their operating system.

This will return a string with the two letter code (for example, "en-us") for the locale.

See also Player.LocaleId, the locale ID that a user has set for their Roblox account which is used for localizing in-experience content. This will be a different value when Roblox does not yet internally support that player's locale.

Methods

GetCorescriptLocalizations

Instances

Returns a list of LocalizationTable objects used for localizing core scripts.


Returns

Instances

GetTableEntries

Returns an Array, where each element of the returned Array is itself an Array of entries in the same format as described in LocalizationTable:GetEntries(). The order of the elements in the returned Array is the same order that the LocalizationTables will be searched through to attempt automated localization for the provided Instance. The entry elements within a particular LocalizationTable are returned in an unspecified order.

This function returns entries regardless of whether the object is a GuiBase2d with GuiBase2d.AutoLocalize enabled. An object that is a GuiBase2d will not actually be automatically localized unless GuiBase2d.AutoLocalize is enabled.

The ordering of the tables is as follows:

This function does not yield. It will not wait until the cloud LocalizationTable has loaded.

Parameters

instance: Instance
Default Value: "nil"

Returns

An array of arrays, where each array is in the same format as described in LocalizationTable:GetEntries().

GetTranslatorForPlayer

This function takes a player as an argument and returns a Translator instance which can be used to perform translations for that locale if any are available. The entries used for localization are the entries provided by the LocalizationTable hierarchy under LocalizationService as well as the cloud LocalizationTable, if it is available and already loaded. This will be the same set of entries returned by LocalizationService:GetTableEntries(nil).

This function does not yield. It will not wait until the cloud LocalizationTable has loaded.

See also:

Parameters

player: Instance

The Player that you are getting the Translator for.


Returns

The Translator instance for the specified locale.

Code Samples

This code sample attempts to retrieve a Translator object for the local player. LocalizationService:GetTranslatorForPlayerAsync() is wrapped in a pcall because it may error. If it does not error and returns a Translator, it translates and prints "Hello World!" in the player's language. If the function errors, it prints "GetTranslatorForLocaleAsync failed:" followed by the error message.

LocalizationService:GetTranslatorForPlayer() can also be used if you'd like to get the player's translator without yielding until the function returns.

Getting and Using a Translator for a Player

local LocalizationService = game:GetService("LocalizationService")
local Players = game:GetService("Players")
local textLabel = script.Parent
local success, translator = pcall(function()
return LocalizationService:GetTranslatorForPlayerAsync(Players.LocalPlayer)
end)
if success then
local result = translator:Translate(textLabel, "Hello World!")
print(result)
else
print("GetTranslatorForPlayerAsync failed: " .. translator)
end

GetCountryRegionForPlayerAsync

Yields

Returns a country/region code string according to player's client IP geolocation. The supported country/region codes are as follows:

CodeCountry/Region
USUnited States
GBUnited Kingdom
CACanada
AFAfghanistan
AXAland Islands
ALAlbania
DZAlgeria
ASAmerican Samoa
ADAndorra
AOAngola
AIAnguilla
AQAntarctica
AGAntigua and Barbuda
ARArgentina
AMArmenia
AWAruba
AUAustralia
ATAustria
AZAzerbaijan
BSBahamas
BHBahrain
BDBangladesh
BBBarbados
BYBelarus
BEBelgium
BZBelize
BJBenin
BMBermuda
BTBhutan
BOBolivia
BQBonaire, Saint Eustatius and Saba
BABosnia and Herzegovina
BWBotswana
BVBouvet Island
BRBrazil
IOBritish Indian Ocean Territory
BNBrunei Darussalam
BGBulgaria
BFBurkina Faso
BIBurundi
KHCambodia
CMCameroon
CVCape Verde
KYCayman Islands
CFCentral African Republic
TDChad
CLChile
CNChina
CXChristmas Island
CCCocos Islands
COColombia
KMComoros
CGCongo
CDCongo (DRC)
CKCook Islands
CRCosta Rica
CIIvory Coast
HRCroatia
CWCuraçao
CYCyprus
CZCzech Republic
DKDenmark
DJDjibouti
DMDominica
DODominican Republic
ECEcuador
EGEgypt
SVEl Salvador
GQEquatorial Guinea
EREritrea
EEEstonia
ETEthiopia
FKFalkland Islands (Malvinas)
FOFaroe Islands
FJFiji
FIFinland
FRFrance
GFFrench Guiana
PFFrench Polynesia
TFFrench Southern Territories
GAGabon
GMGambia
GEGeorgia
DEGermany
CodeCountry/Region
GHGhana
GIGibraltar
GRGreece
GLGreenland
GDGrenada
GPGuadeloupe
GUGuam
GTGuatemala
GGGuernsey
GNGuinea
GWGuinea-Bissau
GYGuyana
HTHaiti
HMHeard Island and the McDonald Islands
VAHoly See
HNHonduras
HKHong Kong
HUHungary
ISIceland
INIndia
IDIndonesia
IQIraq
IEIreland
IMIsle of Man
ILIsrael
ITItaly
JMJamaica
JPJapan
JEJersey
JOJordan
KZKazakhstan
KEKenya
KIKiribati
KRKorea
KWKuwait
KGKyrgyzstan
LALaos
LVLatvia
LBLebanon
LSLesotho
LRLiberia
LYLibya
LILiechtenstein
LTLithuania
LULuxembourg
MOMacao
MKMacedonia
MGMadagascar
MWMalawi
MYMalaysia
MVMaldives
MLMali
MTMalta
MHMarshall Islands
MQMartinique
MRMauritania
MUMauritius
YTMayotte
MXMexico
FMMicronesia
MDMoldova
MCMonaco
MNMongolia
MEMontenegro
MSMontserrat
MAMorocco
MZMozambique
MMMyanmar
NANamibia
NRNauru
NPNepal
NLNetherlands
ANNetherlands Antilles
NCNew Caledonia
NZNew Zealand
NINicaragua
NENiger
NGNigeria
NUNiue
NFNorfolk Island
MPNorthern Mariana Islands
NONorway
OMOman
CodeCountry/Region
PKPakistan
PWPalau
PSPalestine
PAPanama
PGPapua New Guinea
PYParaguay
PEPeru
PHPhilippines
PNPitcairn Islands
PLPoland
PTPortugal
PRPuerto Rico
QAQatar
REReunion
RORomania
RURussian Federation
RWRwanda
BLSaint Barthelemy
SHSaint Helena, Ascension and Tristan da Cunha
KNSaint Kitts and Nevis
LCSaint Lucia
MFSaint Martin
PMSaint Pierre and Miquelon
VCSaint Vincent and the Grenadines
WSSamoa
SMSan Marino
STSao Tome and Principe
SASaudi Arabia
SNSenegal
RSSerbia
SCSeychelles
SLSierra Leone
SGSingapore
SXSint Maarten
SKSlovakia
SISlovenia
SBSolomon Islands
SOSomalia
ZASouth Africa
GSSouth Georgia and the South Sandwich Islands
SSSouth Sudan
ESSpain
LKSri Lanka
SRSuriname
SJSvalbard and Jan Mayen
SZSwaziland
SESweden
CHSwitzerland
TWTaiwan
TJTajikistan
TZTanzania
THThailand
TLTimor-Leste
TGTogo
TKTokelau
TOTonga
TTTrinidad and Tobago
TNTunisia
TRTürkiye (Turkey)
TMTurkmenistan
TCTurks and Caicos Islands
TVTuvalu
UGUganda
UAUkraine
AEUnited Arab Emirates
UMUnited States Minor Outlying Islands
UYUruguay
UZUzbekistan
VUVanuatu
VEVenezuela
VNVietnam
VGVirgin Islands (British)
VIVirgin Islands (US)
WFWallis and Futuna
EHWestern Sahara
YEYemen
ZMZambia
ZWZimbabwe
CUCuba
IRIran
SYSyria
KPNorth Korea

See also:

Parameters

player: Instance

The player that you are getting country/region information for.


Returns

A string indicating the country/region code of a player.

Code Samples

This code sample gets the country/region code for a local player and prints "Hello, friend from Canada!" if the player's client IP geolocation is Canada.

Getting Country/Region Code for a Player

local LocalizationService = game:GetService("LocalizationService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local result, code = pcall(LocalizationService.GetCountryRegionForPlayerAsync, LocalizationService, player)
if result and code == "CA" then
print("Hello, friend from Canada!")
else
print("GetCountryRegionForPlayerAsync failed: " .. code)
end

GetTranslatorForLocaleAsync

Yields

This function takes a locale code as an argument and yields until the cloud LocalizationTable for that locale has been loaded, if available. It then returns a Translator object which can be used to perform translations for that locale if any are available. The entries used for localization are the entries provided by the LocalizationTable hierarchy under LocalizationService as well as the cloud table (if available). This will be the same set of entries returned by LocalizationService:GetTableEntries(nil).

This function can error and thus should be wrapped in a pcall().

See also:

Parameters

locale: string

A Roblox supported language or locale code.


Returns

The Translator instance for the specified locale.

Code Samples

This code sample attempts to retrieve a Translator object for the locale "fr" (French).

LocalizationService:GetTranslatorForLocaleAsync() is wrapped in a pcall because it may error. If it does not error and returns a Translator, prints "Hello in French:" followed by the French translation of "Hello World!". If the function errors, it prints "GetTranslatorForLocaleAsync failed:" followed by the error message.

Getting and Using a Translator for a Locale

local LocalizationService = game:GetService("LocalizationService")
local textLabel = script.Parent
local success, translator = pcall(function()
return LocalizationService:GetTranslatorForLocaleAsync("fr")
end)
if success then
local result = translator:Translate(textLabel, "Hello World!")
print("Hello in French: " .. result)
else
print("GetTranslatorForLocaleAsync failed: " .. translator)
end

GetTranslatorForPlayerAsync

Yields

This function takes a player as an argument and yields until the cloud LocalizationTable for that player's locale has been loaded, if available. It then returns a Translator object which can be used to perform translations for that locale if any are available. The entries used for localization are the entries provided by the LocalizationTable hierarchy under LocalizationService as well as the cloud table (if available). This will be the same set of entries returned by LocalizationService:GetTableEntries(nil).

This function can error and thus should be wrapped in a pcall().

See also:

Parameters

player: Instance

The Player that you are getting the Translator for.


Returns

The Translator instance for the specified locale.

Code Samples

This code sample attempts to retrieve a Translator object for the local player. LocalizationService:GetTranslatorForPlayerAsync() is wrapped in a pcall because it may error. If it does not error and returns a Translator, it translates and prints "Hello World!" in the player's language. If the function errors, it prints "GetTranslatorForLocaleAsync failed:" followed by the error message.

LocalizationService:GetTranslatorForPlayer() can also be used if you'd like to get the player's translator without yielding until the function returns.

Getting and Using a Translator for a Player

local LocalizationService = game:GetService("LocalizationService")
local Players = game:GetService("Players")
local textLabel = script.Parent
local success, translator = pcall(function()
return LocalizationService:GetTranslatorForPlayerAsync(Players.LocalPlayer)
end)
if success then
local result = translator:Translate(textLabel, "Hello World!")
print(result)
else
print("GetTranslatorForPlayerAsync failed: " .. translator)
end

Events