Run it
Copy the script and paste it into your executor.
Players = :()
HttpService = :()
Player = Players.LocalPlayer
CountryLang = {
AF=, AM=, AZ=, BD=, BH=, BN=, CN=,
ID=, IN=, IR=, IQ=, IL=, JP=, KR=,
MY=, PH=, PK=, SA=, SG=, TH=, TR=,
VN=, YE=,
AL=, AT=, BE=, BG=, BY=, CH=, CZ=,
DE=, DK=, ES=, FI=, FR=, GB=, GR=,
HR=, HU=, IE=, IT=, NL=, NO=, PL=,
PT=, RO=, RU=, SE=, UA=,
AR=, BO=, BR=, CA=, CL=, CO=, CR=,
DO=, EC=, GT=, MX=, NI=, PA=, PE=,
PY=, SV=, US=, VE=,
DZ=, EG=, GH=, KE=, MA=, NG=, SN=,
SO=, TN=, TZ=, UG=, ZA=,
AU=, NZ=
}
()
success, res = (()
HttpService:(
:()
)
)
success res res.countryCode
res.countryCode
.(Player.LocaleId,)[]
CountryCode = ()
TARGET_LANG = CountryLang[CountryCode] .(Player.LocaleId,,)
(text)
text text == text
#text > text
success, result = (()
HttpService:(
HttpService:(
,
HttpService:({
q = text,
source = ,
target = TARGET_LANG,
format =
}),
.HttpContentType.ApplicationJson
)
)
)
success result result.translatedText
result.translatedText
text
TranslatedCache = {}
(obj)
obj:()
obj:()
obj:()
TranslatedCache[obj]
TranslatedCache[obj] =
.(()
original = obj.Text
translated = (original)
obj obj.Parent
obj.Text = translated
)
(gui)
_,v (gui:())
(v)
()
gui = Player:()
(gui)
gui.DescendantAdded:((obj)
.()
(obj)
)
()
(, CountryCode, , TARGET_LANG)Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: ip-api.com, libretranslate.com.
Translate Detect IP other

Universal