Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Convertisseurs » : différence entre les versions

De Sèida
Page créée avec « = Convertisseur Èlyan (en lettre latines) vers Èlyan = -- 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"]="უ", ["ù"]="𐐆",... »
 
Aucun résumé des modifications
 
(7 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
= Convertisseur Èlyan (en lettre latines) vers Èlyan =
= 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/
<syntaxhighlight lang="lua">
-- Tableau de correspondance Latin -> Èlyan
-- Tableau de correspondance Latin -> Èlyan
local latinToElyan = {
local latinToElyan = {
    ["p"]="", ["b"]="", ["t"]="𐑛", ["d"]="𐑄", ["k"]="", ["g"]="𐌂",
  -- Consonnes
    ["f"]="𐑧", ["v"]="𐑬", ["s"]="", ["z"]="", ["sh"]="𐑕", ["j"]="𐑚",
  ["p"]="Ϥ",  
    ["m"]="", ["n"]="", ["l"]="", ["r"]="𐑤", ["c"]="", ["ch"]="𐑩",
  ["b"]="",  
    ["i"]="", ["e"]="", ["è"]="ո", ["a"]="𐐄", ["u"]="", ["ù"]="𐐆",
  ["t"]="ϟ",  
    ["o"]="𐐅", ["ò"]="𐐇",
  ["d"]="",  
    ["y"]="", ["w"]="", ["h"]="𐡅"
  ["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
-- Tableau de correspondance Èlyan -> Latin
-- Attention : on met d'abord les symboles les plus longs pour gérer digrammes
local elyanToLatin = {}
local elyanToLatin = {}
local sortedKeys = {}
for k,v in pairs(latinToElyan) do
for k,v in pairs(latinToElyan) do
     elyanToLatin[v] = k
     elyanToLatin[v] = k
    table.insert(sortedKeys, v)
end
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
-- Fonction pour convertir du latin vers Elyan
Ligne 42 : Ligne 90 :
local function toLatin(text)
local function toLatin(text)
     local result = ""
     local result = ""
     for uchar in text:gmatch(utf8.charpattern) do
     local i = 1
        if elyanToLatin[uchar] then
    while i <= #text do
            result = result .. elyanToLatin[uchar]
        local matched = false
         else
        for _, key in ipairs(sortedKeys) do
             result = result .. uchar
            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
     end
     end
Ligne 52 : Ligne 109 :
end
end


-- Exemple d'utilisation
-- Exemples d'utilisation
local sampleLatin = "GolDoRoSoDo"
local sampleLatin = "Belda’ ce fi che dannaek."
local sampleElyan = toElyan(sampleLatin)
local sampleElyan = toElyan(sampleLatin)
print("Latin -> Èlyan : " .. sampleElyan)
print("Latin -> Èlyan : " .. sampleElyan)


local backToLatin = toLatin(sampleElyan)
local sampleElyan2 = "ცპϻქძ’ ფპ Ꜫე ჯპ ქძდდძპϨ。"
local backToLatin = toLatin(sampleElyan2)
print("Èlyan -> Latin : " .. backToLatin)
print("Èlyan -> Latin : " .. backToLatin)
</syntaxhighlight >

Dernière version du 12 septembre 2025 à 17:44

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)