Convertisseurs
De Sèida
Autres actions
Convertisseur Èlyan (en lettre latines) vers Èlyan
Il est possible d'utiliser facilement les convertisseurs suivants sur des sites de compilateur lua en ligne comme https://onecompiler.com/lua/
-- Tableau de correspondance Latin -> Èlyan
local latinToElyan = {
["p"]="Ϥ",
["b"]="Ϥ°",
["t"]="ϟ",
["d"]="ϟ°",
["k"]="Ϩ",
["g"]="Ϩ°",
["f"]="Ꜫ",
["v"]="ϣ",
["s"]="Ϭ",
["z"]="Ϭ°",
["sh"]="ʒ",
["j"]="ʒ°",
["m"]="Ϡ",
["n"]="Ϡ°",
["l"]="ϻ",
["r"]="ϻ°",
["c"]="∿",
["ch"]="っ",
["i"]="ㄹ",
["e"]="═",
["è"]="+",
["a"]="ㅆ",
["u"]="ㄷ",
["ù"]="へ",
["o"]="○",
["ò"]="ㅁ",
["y"]="乙",
["w"]="㇊",
["h"]="亅",
-- Ponctuation
["."]="。",
["..."]="…",
["!"]="!",
["?"]="?",
[","]=",",
[":"]=":",
[";"]=";",
["'"]="’"
}
-- Tableau de correspondance Èlyan -> Latin
-- Attention : on met d'abord les symboles les plus longs pour gérer digrammes
local elyanToLatin = {}
local sortedKeys = {}
for k,v in pairs(latinToElyan) do
elyanToLatin[v] = k
table.insert(sortedKeys, v)
end
-- Trier par longueur décroissante pour gérer les symboles sur plusieurs caractères
table.sort(sortedKeys, function(a,b) return #a > #b end)
-- Fonction pour convertir du latin vers Elyan
local function toElyan(text)
text = text:lower()
local result = ""
local i = 1
while i <= #text do
local two = text:sub(i,i+1)
local one = text:sub(i,i)
if latinToElyan[two] then
result = result .. latinToElyan[two]
i = i + 2
elseif latinToElyan[one] then
result = result .. latinToElyan[one]
i = i + 1
else
result = result .. one
i = i + 1
end
end
return result
end
-- Fonction pour convertir de Elyan vers latin
local function toLatin(text)
local result = ""
local i = 1
while i <= #text do
local matched = false
for _, key in ipairs(sortedKeys) do
if text:sub(i,i+#key-1) == key then
result = result .. elyanToLatin[key]
i = i + #key
matched = true
break
end
end
if not matched then
result = result .. text:sub(i,i)
i = i + 1
end
end
return result
end
-- Exemples d'utilisation
local sampleLatin = "Mèn Che ThaLaEk"
local sampleElyan = toElyan(sampleLatin)
print("Latin -> Èlyan : " .. sampleElyan)
local sampleElyan2 = "Ϡ+Ϡ° っ═ ϟ亅ㅆϻㅆ═Ϩ"
local backToLatin = toLatin(sampleElyan2)
print("Èlyan -> Latin : " .. backToLatin)