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
Aucun résumé des modifications
Ligne 2 : Ligne 2 :


<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
-- Tableau de correspondance Latin -> Èlyan
-- Tableau de correspondance Latin -> Èlyan
-- Tableau de correspondance Latin -> Èlyan
local latinToElyan = {
local latinToElyan = {
     ["p"]="", ["b"]="", ["t"]="𐑛", ["d"]="𐑄", ["k"]="", ["g"]="𐌂",
     ["p"]="Ϥ",  
     ["f"]="𐑧", ["v"]="𐑬", ["s"]="", ["z"]="", ["sh"]="𐑕", ["j"]="𐑚",
    ["b"]="Ϥ°",  
     ["m"]="", ["n"]="", ["l"]="", ["r"]="𐑤", ["c"]="", ["ch"]="𐑩",
    ["t"]="ϟ",  
     ["i"]="", ["e"]="", ["è"]="ո", ["a"]="𐐄", ["u"]="", ["ù"]="𐐆",
    ["d"]="ϟ°",  
     ["o"]="𐐅", ["ò"]="𐐇",
    ["k"]="Ϩ",  
     ["y"]="", ["w"]="", ["h"]="𐡅",
    ["g"]="Ϩ°",
     ["f"]="",  
    ["v"]="ϣ",  
    ["s"]="Ϭ",  
    ["z"]="Ϭ°",  
    ["sh"]="ʒ",  
    ["j"]="ʒ°",
     ["m"]="Ϡ",  
    ["n"]="Ϡ°",  
    ["l"]="ϻ",  
    ["r"]="ϻ°",  
    ["c"]="",
    ["ch"]="",
   
     ["i"]="",
    ["e"]="",  
    ["è"]="+",  
    ["a"]="",  
    ["u"]="",  
    ["ù"]="",
     ["o"]="",
    ["ò"]="",
   
     ["y"]="",  
    ["w"]="",
    ["h"]="",
      
      
     -- Ponctuation
     -- Ponctuation
Ligne 23 : Ligne 49 :


-- 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 53 : Ligne 86 :
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 63 : Ligne 105 :
end
end


-- Exemple d'utilisation
-- Exemples d'utilisation
local sampleLatin = "Mèn Che ThaLaEk" -- Mettre ici ce qu'on veut convertir depuis de l'Èlyan en lettres latines vers de l'Èlyan
local sampleLatin = "Mèn Che ThaLaEk"
local sampleElyan = toElyan(sampleLatin)
local sampleElyan = toElyan(sampleLatin)
print("Latin -> Èlyan : " .. sampleElyan)
print("Latin -> Èlyan : " .. sampleElyan)


local sampleElyan = "" -- Mettre ici ce qu'on veut convertir depuis de l'Èlyan vers de l'Èlyan en lettres latines
local sampleElyan2 = "Ϡ+Ϡ° っ═ ϟ亅ㅆϻㅆ═Ϩ"
local backToLatin = toLatin(sampleElyan)
local backToLatin = toLatin(sampleElyan2)
print("Èlyan -> Latin : " .. backToLatin)
print("Èlyan -> Latin : " .. backToLatin)
</syntaxhighlight >
</syntaxhighlight >

Version du 12 septembre 2025 à 17:18

Convertisseur Èlyan (en lettre latines) vers Èlyan

-- Tableau de correspondance Latin -> È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"]="ㄷ", 
    ["ù"]="へ",
    ["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)