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


<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"]="Ϥ",  
     ["p"]="Ϥ",  
     ["b"]="Ϥ°",  
     ["b"]="",  
     ["t"]="ϟ",  
     ["t"]="ϟ",  
     ["d"]="ϟ°",  
     ["d"]="",  
     ["k"]="Ϩ",  
     ["k"]="Ϩ",  
     ["g"]="Ϩ°",
     ["g"]="",
     ["f"]="Ꜫ",  
     ["f"]="Ꜫ",  
     ["v"]="ϣ",  
     ["v"]="ϣ",  
     ["s"]="Ϭ",  
     ["s"]="Ϭ",  
     ["z"]="Ϭ°",  
     ["z"]="",  
     ["sh"]="ʒ",  
     ["sh"]="ʒ",  
     ["j"]="ʒ°",
     ["j"]="",
     ["m"]="Ϡ",  
     ["m"]="",  
     ["n"]="Ϡ°",  
     ["n"]="",  
     ["l"]="ϻ",  
     ["l"]="ϻ",  
     ["r"]="ϻ°",  
     ["r"]="ϻ°",  
     ["c"]="",
     ["c"]="",
     ["ch"]="",
     ["ch"]="",
      
      
     ["i"]="",
     ["i"]="",
     ["e"]="",  
     ["e"]="",  
     ["è"]="+",  
     ["è"]="",  
     ["a"]="",  
     ["a"]="",  
     ["u"]="",  
     ["u"]="",  
     ["ù"]="",
     ["ù"]="",
     ["o"]="",
     ["o"]="",
     ["ò"]="",
     ["ò"]="",
      
      
     ["y"]="",  
     ["y"]="",  
     ["w"]="",
     ["w"]="",
     ["h"]="",
     ["h"]="",
      
      
     -- Ponctuation
     -- Ponctuation
Ligne 107 : Ligne 108 :


-- Exemples d'utilisation
-- Exemples d'utilisation
local sampleLatin = "Mèn Che ThaLaEk"
local sampleLatin = "Belda’ ce fi che dannaek."
local sampleElyan = toElyan(sampleLatin)
local sampleElyan = toElyan(sampleLatin)
print("Latin -> Èlyan : " .. sampleElyan)
print("Latin -> Èlyan : " .. sampleElyan)


local sampleElyan2 = "Ϡ+Ϡ° っ═ ϟ亅ㅆϻㅆ═Ϩ"
local sampleElyan2 = "ცპϻქძ’ ფპ Ꜫე ჯპ ქძდდძპϨ。"
local backToLatin = toLatin(sampleElyan2)
local backToLatin = toLatin(sampleElyan2)
print("Èlyan -> Latin : " .. backToLatin)
print("Èlyan -> Latin : " .. backToLatin)
</syntaxhighlight >
</syntaxhighlight >

Version du 12 septembre 2025 à 17:43

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
-- 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 = "Belda’ ce fi che dannaek."
local sampleElyan = toElyan(sampleLatin)
print("Latin -> Èlyan : " .. sampleElyan)

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