
KeylessUniversal

-- 🌍 AUTO TRANSLATE SYSTEM 126 COUNTRY
-- SubscribeToFredbear555
local Players = game:GetService("Players")
local HttpService = game:GetService("HttpService")
local Player = Players.LocalPlayer
--------------------------------------------------
-- 🌐 COUNTRY → LANGUAGE (126)
--------------------------------------------------
local CountryLang = {
AF="fa", AM="hy", AZ="az", BD="bn", BH="ar", BN="ms", CN="zh",
ID="id", IN="hi", IR="fa", IQ="ar", IL="he", JP="ja", KR="ko",
MY="ms", PH="en", PK="ur", SA="ar", SG="en", TH="th", TR="tr",
VN="vi", YE="ar",
AL="sq", AT="de", BE="fr", BG="bg", BY="ru", CH="de", CZ="cs",
DE="de", DK="da", ES="es", FI="fi", FR="fr", GB="en", GR="el",
HR="hr", HU="hu", IE="en", IT="it", NL="nl", NO="no", PL="pl",
PT="pt", RO="ro", RU="ru", SE="sv", UA="uk",
AR="es", BO="es", BR="pt", CA="en", CL="es", CO="es", CR="es",
DO="es", EC="es", GT="es", MX="es", NI="es", PA="es", PE="es",
PY="es", SV="es", US="en", VE="es",
DZ="ar", EG="ar", GH="en", KE="en", MA="ar", NG="en", SN="fr",
SO="so", TN="ar", TZ="sw", UG="en", ZA="en",
AU="en", NZ="en"
}
--------------------------------------------------
-- 🌍 DETECT COUNTRY (IP API)
--------------------------------------------------
local function getCountryCode()
local success, res = pcall(function()
return HttpService:JSONDecode(
game:HttpGet("http://ip-api.com/json")
)
end)
if success and res and res.countryCode then
return res.countryCode
end
-- fallback LocaleId
return string.split(Player.LocaleId,"-")[2] or "US"
end
local CountryCode = getCountryCode()
local TARGET_LANG = CountryLang[CountryCode] or string.sub(Player.LocaleId,1,2) or "en"
--------------------------------------------------
-- 🌐 TRANSLATE API (LibreTranslate)
--------------------------------------------------
local function Translate(text)
if not text or text == "" then return text end
if #text > 400 then return text end -- anti lag
local success, result = pcall(function()
return HttpService:JSONDecode(
HttpService:PostAsync(
"https://libretranslate.com/translate",
HttpService:JSONEncode({
q = text,
source = "auto",
target = TARGET_LANG,
format = "text"
}),
Enum.HttpContentType.ApplicationJson
)
)
end)
if success and result and result.translatedText then
return result.translatedText
end
return text
end
--------------------------------------------------
-- 🔄 TRANSLATE OBJECT
--------------------------------------------------
local TranslatedCache = {}
local function TranslateObject(obj)
if not obj:IsA("TextLabel")
and not obj:IsA("TextButton")
and not obj:IsA("TextBox") then return end
if TranslatedCache[obj] then return end
TranslatedCache[obj] = true
task.spawn(function()
local original = obj.Text
local translated = Translate(original)
if obj and obj.Parent then
obj.Text = translated
end
end)
end
--------------------------------------------------
-- 🔁 SCAN GUI
--------------------------------------------------
local function ScanGUI(gui)
for _,v in ipairs(gui:GetDescendants()) do
TranslateObject(v)
end
end
--------------------------------------------------
-- 🛡️ AUTO REFRESH SYSTEM (AMAN)
--------------------------------------------------
local function HookPlayerGui()
local gui = Player:WaitForChild("PlayerGui")
ScanGUI(gui)
gui.DescendantAdded:Connect(function(obj)
task.wait(0.1)
TranslateObject(obj)
end)
end
--------------------------------------------------
-- 🚀 START
--------------------------------------------------
HookPlayerGui()
print("🌍 Auto Translate ON | Country:", CountryCode, "| Lang:", TARGET_LANG)



so have you heard of RATE LIMIT maybe
Its patched now):