Module:clé de tri2
Apparence
Ce module permet de classer un mot dans l'ordre alphabétique d'une langue donnée.
local b = require("Module:bases")
local p = {}
function p.clef(titre, langue)
if titre == nil then return nil end
local clef = nil
if langue == 'fr' or langue==nil then
-- Remplace les tirets
titre1 = mw.ustring.gsub(titre, "[-]", " ")
-- Décompose la chaîne notamment en séparant les accents
local nfd = mw.ustring.toNFD(titre1)
if nfd == nil then return nil end
-- Enlève les accents (= ne garde que les ascii)
local noacc = mw.ustring.gsub(nfd, "[^a-zA-Z0-9 ]", "")
-- Versions bas-de-casse
local nfd_lc = b.lc(nfd)
local noacc_lc = b.lc(noacc)
-- Clé de tri finale
local sep = ' - '
clef = noacc_lc .. sep .. string.reverse(titre1) .. sep .. nfd
-- NB : le logiciel refusionne automatiquement les nfd quand on le renvoie
end
return clef
end
function p.clef_de_tri(frame)
local titre = frame.args[1]
local langue = 'fr'
return p.clef(titre, langue)
end
return p
-- Pour tester dans la console:
-- =p.clef('Champs-Élysées', 'fr')