Icona de documentació de mòdul Documentació del mòdul[mostra] [modifica] [refresca]

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