Module:Lien frontière
Apparence
La documentation de ce module est générée par le modèle {{Documentation module}}.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local p = {}
local Drapeau = require 'Module:Drapeau'
local Outils = require 'Module:Outils'
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
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
--[[
functions that compare two strings as plain text.
]]
local function _triePays(a, b)
if _latinise_letters(a) < _latinise_letters(b) then
return a, b
else
return b, a
end
end
function p.genereLien(frame)
local paysA = Outils.trim(frame.args[1])
local paysB = Outils.trim(frame.args[2])
--local premierPays = p.minimum(paysA, paysB)
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 secondPays = p.maximum(paysA, paysB)
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
function p.genereCat(frame)
local paysA = Outils.trim(frame.args[1])
local premierTexteDrapeau = Drapeau.pays(frame:newChild{args = {
[1] = paysA,
domaine = 'drapeau',
align = 'non',
t = '0',
}})
local premierTextePays, count = premierTexteDrapeau:gsub("^Drapeau ", "Frontières ")
return '[['..premierTextePays .. '|' .. paysA .. ']]'
end
return p