Modulo:Lingue: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m fix false
Moroboshi (discussione | contributi)
aggiungo rifacimento di template:lang + aggiunta corsivo per titoli in lingua
Riga 1:
local language = {}
local getArgs = require('Module:Arguments').getArgs
 
-- File di configurazione contenente due tabelle:
Line 98 ⟶ 99:
--viene normalizzato a quello standard della lingua, piuttosto che essere quello
--passato
--In aggiunta può ricevere se il paremtroparametro return_error è vero ritorna in caso di
--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
Line 118 ⟶ 119:
local lingua, codice_normalizzato, code_to_show
local usa_codice = (args['usacodice'] ~= nil)
 
 
for _,code in ipairs(args) do
Riga 142:
return reply
end
end
 
-- ========================================================
-- Ritorna la stringa txt inserita in un tag <span> con indicato
-- il codice linguaggio 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 il linguaggio
-- -- s: forza corsivo attivo
-- -- n: forza corsivo disattivo (è il valore di default)
-- ========================================================
function _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 = 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 italic = false
local set_italic = args.corsivo or "n"
if set_italic:lower() == 's' then
italic = true
elseif set_italic:lower() == 'd' and language_code then
if lg.codici[language_code] and not lg.codici[language_code][3] then
italic = true
end
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
local span = mw.html.create('span')
:attr('dir', direction)
:attr('lang', language_code)
:attr('xml:lang', language_code)
:addClass(args.class)
:wikitext(txt)
return tostring(span)
end
 
-- ========================================================
-- Funzione di interfaccia per _lang_testo
-- richiamabile nei template
-- ========================================================
function language.lang_testo(frame)
local args = getArgs(frame)
return _lang_testo(args)
end
 
-- Restituisce una tabella con tutti i codici riconosciuti dal modulo
function language.tabella(frame)
 
-- genera una tabella codici -> lista alias e una di codici per ordinarla
local alias_table = {}
Line 158 ⟶ 213:
end
table.sort(codici_sorted)
 
local root = mw.html.create('table')
root
Line 167 ⟶ 222:
:tag('th'):wikitext('[[template:Nomelingua/voce]]'):done()
:tag('th'):wikitext('[[template:Lingue]]')
 
for _,code in ipairs(codici_sorted) do
local code_string = table.concat(alias_table[code], ", ")