Run it
Copy the script and paste it into your executor.
DEBUG =
Players = :()
HttpService = :()
StarterGui = :()
LocalPlayer = Players.LocalPlayer
currentTargetLanguage =
languages = {
af = , sq = , am = , ar = , hy = ,
az = , eu = , be = , bn = , bs = ,
bg = , ca = , ceb = , ny = , [] = ,
[] = , co = , hr = , cs = , da = ,
nl = , en = , eo = , et = , tl = , fi = ,
fr = , fy = , gl = , ka = , de = , el = ,
gu = , ht = , ha = , haw = , iw = , hi = ,
hmn = , hu = , is = , ig = , id = , ga = ,
it = , ja = , jw = , kn = , kk = , km = ,
ko = , ku = , ky = , lo = , la = , lv = ,
lt = , lb = , mk = , mg = , ms = ,
ml = , mt = , mi = , mr = , mn = , my = ,
ne = , no = , ps = , fa = , pl = , pt = ,
pa = , ro = , ru = , sm = , gd = , sr = ,
st = , sn = , sd = , si = , sk = , sl = , so = ,
es = , su = , sw = , sv = , tg = , ta = , te = ,
th = , tr = , uk = , ur = , uz = , vi = , cy = ,
xh = , yi = , yo = , zu = , auto =
}
aliases = {
jp =
}
()
playerGui = LocalPlayer:()
screenGui = playerGui:()
screenGui
screenGui = .()
screenGui.Name =
screenGui.Parent = playerGui
frame = .()
frame.Name =
frame.BackgroundTransparency =
frame.BackgroundColor3 = .(, , )
frame.Size = .(, , , )
frame.Position = .(, , , )
frame.Parent = screenGui
layout = .()
layout.FillDirection = .FillDirection.Vertical
layout.SortOrder = .SortOrder.LayoutOrder
layout.Parent = frame
screenGui:()
(text)
DEBUG
(, text)
frame = ()
label = .()
label.Text = text
label.TextColor3 = .(, , )
label.BackgroundTransparency =
label.TextScaled =
label.Size = .(, , , )
label.Parent = frame
(, () label label:() )
( .. languages[currentTargetLanguage])
LIBRE_TRANSLATE_URL =
(text, callback)
DEBUG
(, text)
data = {
q = text,
source = ,
target = currentTargetLanguage,
format = ,
alternatives = ,
api_key =
}
jsonData = HttpService:(data)
DEBUG
(, jsonData)
(()
success, response = (()
HttpService:(LIBRE_TRANSLATE_URL, jsonData, .HttpContentType.ApplicationJson)
)
DEBUG
(, success)
success
DEBUG
(, response)
decoded
decodeSuccess = (()
decoded = HttpService:(response)
)
decodeSuccess
DEBUG
()
()
decoded decoded.translatedText
DEBUG
(, decoded.translatedText)
(decoded.translatedText)
DEBUG
(, response)
()
errorMessage = (response)
DEBUG
(, errorMessage)
( .. errorMessage .. )
)
(player, message)
DEBUG
(, player.DisplayName, , message)
player == LocalPlayer
lowerMessage = message:()
lowerMessage ==
helpMsg = ..
..
.. languages[currentTargetLanguage] .. ..
..
..
..
..
(helpMsg)
DEBUG
()
commandCode = message:()
commandCode
commandCode = commandCode:()
aliases[commandCode]
commandCode = aliases[commandCode]
languages[commandCode]
currentTargetLanguage = commandCode
( .. languages[currentTargetLanguage])
DEBUG
(, currentTargetLanguage)
lowerMessage:(, ) ==
langCode = message:()
langCode
langCode = langCode:()
languages[langCode]
currentTargetLanguage = langCode
( .. languages[currentTargetLanguage])
DEBUG
(, currentTargetLanguage)
( .. langCode)
DEBUG
(, langCode)
()
DEBUG
()
(message, (translated)
displayText = .. player.DisplayName .. .. translated
(displayText)
DEBUG
(, displayText)
)
_, player (Players:())
player ~= LocalPlayer
player.Chatted:((message)
(player, message)
)
DEBUG
(, player.DisplayName)
Players.PlayerAdded:((player)
player ~= LocalPlayer
player.Chatted:((message)
(player, message)
)
DEBUG
(, player.DisplayName)
)
DEBUG
(, LocalPlayer.DisplayName)
I need a api key to make this work but I don't have any money to make it work so I'm giving this to be an open source for those who wants to make a translation script :<

Universal