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 = {
-- Consonnes
["p"]="Ϥ",
["b"]="ც",
["t"]="ϟ",
["d"]="ქ",
["k"]="Ϩ",
["g"]="ზ",
["f"]="Ꜫ",
["v"]="ϣ",
["s"]="Ϭ",
["z"]="ჭ",
["sh"]="ʒ",
["j"]="ჟ",
["m"]="ლ",
["n"]="დ",
["l"]="ϻ",
["r"]="ϻ°",
["c"]="ფ",
["ch"]="ჯ",
-- Voyelles
["i"]="ე",
["e"]="პ",
["è"]="კ",
["a"]="ძ",
["u"]="ღ",
["ù"]="ა",
["o"]="ბ",
["ò"]="ი",
-- Glissantes
["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 = "Belda’ ce fi che dannaek."
local sampleElyan = toElyan(sampleLatin)
print("Latin -> Èlyan : " .. sampleElyan)
local sampleElyan2 = "ცპϻქძ’ ფპ Ꜫე ჯპ ქძდდძპϨ。"
local backToLatin = toLatin(sampleElyan2)
print("Èlyan -> Latin : " .. backToLatin)