Modulo:Lingue: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
fix testata tabella |
non tutti gli alias sono scritti in minuscolo, vedi segnalazione |
||
(12 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1:
local language = {}
local getArgs = require('Module:Arguments').getArgs
-- File di configurazione contenente due tabelle:
Line 5 ⟶ 6:
-- lg.codici: che dato un codice restituisce un array contente
-- nome della lingua e collegamento all'articolo su it.wiki dedicato alla lingua
local lg = mw.loadData(
-- ritorna il nome della voce corrispondente a "code". Se "code" non corrisponde a nessuna
-- lingua inserita in tabella ritorna una stringa nulla
function language.get_voce(code)
end
-- ritorna vero se "code" corrisponde a
function language.esiste(code)
end
--
--
-- Se "code" non corrisponde a nessuna lingua inserita in tabella,
-- o stringa nulla se questo non è indicato e il codice richiesto. Se maiuscolo è vero il
-- nome viene
function language.get_nome(code, maiuscolo, default)
-- prova a cercare la lingua fra gli alias
code = lg.alias[code] -- altrimenti converte il testo in minuscolo e prova sia a ricercare
-- fra gli alias sia a estrarre la prima parte di codici come it-IT
else
code = mw.ustring.lower(code)
code = lg.alias[code]
local lingua = lg.codici[code]
if lingua then nome = lingua[1] end
end
if maiuscolo then
nome = mw.ustring.gsub(nome, '^%l', mw.ustring.upper)
end
return nome, code
end
-- funzione di interfaccia per template:Nomelingua/voce
function language.voce(frame)
end
-- funzione di interfaccia per template:Nomelingua/nome
function language.nome(frame)
end
Line 70 ⟶ 78:
--funzione di interfaccia per template:Nomelingua
function language.nomecompleto(frame)
end
Line 98 ⟶ 106:
--viene normalizzato a quello standard della lingua, piuttosto che essere quello
--passato
--In aggiunta può ricevere se il
--codici lingua non ritrovati in tabella una tabella aggiuntiva con i codici errati
--return_error viene controllato solo se la funzione è richiamata da un modulo Lua
--se è richiamata da un template è sempre falsa
function language.lingue(frame)
local lingua, codice_normalizzato, code_to_show
local yet_processed = {}
for _,code in ipairs(args) do
lingua, codice_normalizzato = language.get_nome(code)
codice_normalizzato = mw.ustring.upper(codice_normalizzato)
if not yet_processed[ codice_normalizzato ] then
if lingua ~= "" then
lingue_list[#lingue_list+1] = '<abbr title="' .. lingua .. '">' ..codice_normalizzato .. "</abbr>"
yet_processed[ codice_normalizzato ] = true
else
lingue_list[#lingue_list+1] = code
if return_error then error_list[#error_list+1] = code end
end
end
end
local reply
if #lingue_list > 0 then
reply = '(<span style="font-weight:bolder; font-size:80%">' .. table.concat(lingue_list, ", ") .. "</span>)"
else
reply = ''
end
reply = reply
if #error_list>0 then
return reply, error_list
else
return reply
end
end
-- ========================================================
-- Ritorna la stringa txt inserita in un tag <span> con indicato
-- il codice lingua del testo (language_code) e il senso
-- di lettura (sinistro o destro).
-- Il parametro "corsivo" permette di indicare se il testo
-- deve essere messo in corsivo, ha tre valori:
-- -- d: consulta le tabelle di configurazione per la lingua
-- -- s: forza corsivo attivo
-- -- n: forza corsivo disattivo (è il valore di default)
-- ========================================================
function language._lang_testo(args)
local txt = args.txt or args[2]
if not txt then return '' end
local language_code = args.lang or args[1]
local direction = "ltr"
if language_code then
language_code = mw.ustring.lower(language_code)
language_code = lg.alias[language_code] or language_code
local writing = lg.scrittura[language_code]
if writing then
direction = writing[1]
if #writing > 1 then language_code = writing[2] end
end
end
local set_italic = args.corsivo or "n"
if set_italic ~= "n" then
local italic = false
if set_italic:lower() == 's' then
italic = true
elseif language_code and lg.codici[language_code] then
italic = not lg.codici[language_code][3]
else
italic = true
end
if italic then
if txt[1]=="'" then txt = "<nowiki />" .. txt end
if txt[#txt] =="'" then txt = txt .. "<nowiwiki />" end
txt = mw.ustring.format("''%s''", txt)
end
end
local span = mw.html.create('span'):wikitext(txt):addClass(args.class)
if lg.codici[language_code] then
span
:attr('dir', direction)
:attr('lang', language_code)
:attr('xml:lang', language_code)
end
return tostring(span)
end
-- ========================================================
-- Funzione di interfaccia per _lang_testo
-- richiamabile nei template
-- ========================================================
function language.lang_testo(frame)
local args = getArgs(frame)
return language._lang_testo(args)
end
-- Restituisce una tabella con tutti i codici riconosciuti dal modulo
function language.tabella(frame)
end
Line 185 ⟶ 253:
function language.tabella_alias(frame)
end
Line 203 ⟶ 271:
function language.tabella_codici(frame)
end
-- ritorna una whitelist di tutti i codici riconosciuti ad uso bot in python
function language.whitelist(frame)
end
|