Aller au contenu

Module:Lien frontière

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 30 octobre 2017 à 17:12 et modifiée en dernier par Od1n (discuter | contributions) (ordonnancement code). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[créer] [purger]
local p = {}
local Drapeau = require 'Module:Drapeau'
local Outils = require 'Module:Outils'

function p.genereLien(frame)
    local paysA = Outils.trim(frame.args[1])
    local paysB = Outils.trim(frame.args[2])

    local premierPays, secondPays = _triePays(paysA, paysB)

    local premierTexteDrapeau = Drapeau.pays(frame:newChild{args = {
        [1] = premierPays,
        domaine = 'drapeau',
        align = 'non',
        t = '0',
    }})
    local premierTextePays = _traitePrefixe(premierTexteDrapeau)

    local secondTexteDrapeau = Drapeau.pays(frame:newChild{args = {
        [1] = secondPays,
        domaine = 'drapeau',
        align = 'non',
        t = '0',
    }})
    local secondTextePays = _traitePrefixe(secondTexteDrapeau)

    local texteLien = paysB
    local suffixe = Outils.trim(frame.args[3])
    if suffixe then
        texteLien = texteLien .. ' ('.. suffixe ..')'
    end

    return '[[Frontière entre ' .. premierTextePays .. ' et ' .. secondTextePays .. '|' .. texteLien .. ']]'
end

local function _latinise_letters(tmparg)
    --2>--remove case
    tmparg=mw.ustring.lower(tmparg);
    --2>--remove acccent
    tmparg=mw.ustring.gsub(tmparg, "[áàâäãå]", "a");
    tmparg=mw.ustring.gsub(tmparg, "[æ]", "ae");
    tmparg=mw.ustring.gsub(tmparg, "[ç]", "c");
    tmparg=mw.ustring.gsub(tmparg, "[éèêë]", "e");
    tmparg=mw.ustring.gsub(tmparg, "[íìîï]", "i");
    tmparg=mw.ustring.gsub(tmparg, "[ñ]", "n");
    tmparg=mw.ustring.gsub(tmparg, "[óòôöõ]", "o");
    tmparg=mw.ustring.gsub(tmparg, "[œ]", "oe");
    tmparg=mw.ustring.gsub(tmparg, "[úùûü]", "u");
    tmparg=mw.ustring.gsub(tmparg, "[ýÿ]", "y");

    return tmparg;
end

local function _triePays(a, b)
    if _latinise_letters(a) < _latinise_letters(b) then
        return a, b
    else
        return b, a
    end
end

local function _traitePrefixe(texte)
    local result, count = texte
        :gsub("^Drapeau de ", "")
        :gsub("^Drapeau du ", "le ")
        :gsub("^Drapeau des ", "les ")
        :gsub("^Drapeau d'", "")
    return result
end

return p