Mòdul:fr-general
Aparença
A continuació es mostra la documentació transclosa de la subpàgina /ús. [salta a la caixa de codi]
Aquest mòdul proporciona funcions generals per a la llengua francesa.
Funcions:
ordena
Construeix una clau d'ordenació per les categories en francès. Sintaxi:
{{#invoke:fr-general|ordena|<pàgina>}}
Paràmetres:
- Normalment el títol de la pàgina {{PAGENAME}}
Vegeu casos de prova en la pàgina de discussió. Per l'explicació de l'ordenació alfabètica en francès: w:fr:Classement alphabétique#Principes de classement i Algorithme de confection des champs de tri
-- Funcions generals per francès.
local export = {}
-- Clau d'ordenació per a categories en francès
local senseDiacritics = {
["À"] = "A", ["à"] = "a", ["Â"] = "A", ["â"] = "a", ["Æ"] = "AE", ["æ"] = "ae",
["Ç"] = "C", ["ç"] = "c",
["É"] = "E", ["é"] = "e", ["È"] = "E", ["è"] = "e", ["Ê"] = "E", ["ê"] = "e", ["Ë"] = "E", ["ë"] = "e",
["Î"] = "I", ["î"] = "i", ["Ï"] = "I", ["ï"] = "i",
["Ô"] = "O", ["ô"] = "o", ["Œ"] = "OE", ["œ"] = "oe",
["Ù"] = "U", ["ù"] = "u", ["Û"] = "U", ["û"] = "u", ["Ü"] = "U", ["ü"] = "u",
["ÿ"] = "y"}
local ordreAccents = { -- ordre eéèêë simulat amb ordre Unicode çèéêë
["é"] = "ç",
["æ"] = "ea", -- clau2 va invertida
["œ"] = "eo"}
function export.ordena(mot)
if type(mot) == "table" then mot = mot.args[1] end -- des de plantilles via invoke o des de mòduls via require
if mot == "" or mot == nil then
mot = mw.title.getCurrentTitle().text
end
local clau -- format complet: "clau1!clau2!clau3!mot"
local clau1 -- clau primària: en minúscules i sense diacrítics ni signes
local clau2 = "" -- clau secundària: prioritat dels diacrítics eéèêë des del final
local clau3 -- clau terciària: prioritat minúscules > majúscules
-- clau quaternària: prioritat sense signes > amb signes
local motSenseSignes = mw.ustring.gsub(mot, "[' .-]", "")
local motLower = mw.ustring.lower(motSenseSignes)
clau1 = mw.ustring.gsub(motLower, ".", senseDiacritics)
if clau1 == mot then
return clau1
end
for i = 1, mw.ustring.len(motLower) do
clau2 = mw.ustring.sub(motLower, i, i) .. clau2
end
clau2 = mw.ustring.gsub(clau2, ".", ordreAccents)
clau3 = mw.ustring.gsub(motSenseSignes, ".", senseDiacritics)
if clau1 == motLower then
clau = clau1 .. "!"
else
clau = clau1 .. "!" .. clau2
end
if clau3 ~= clau1 then
clau = clau .. "!" .. clau3
elseif motSenseSignes ~= mot then
clau = clau .. "!"
end
if motSenseSignes ~= mot then
clau = clau .."!" .. mot
end
return clau
end
function export._ordena(mot)
-- Pendent d'eliminar una vegada substituïda
return export.ordena(mot)
end
return export