Mòdul:llengua
A continuació es mostra la documentació transclosa de la subpàgina /ús. [salta a la caixa de codi]
Aquest mòdul proporciona definicions d'una llengua a partir del seu codi. Treu els valors proporcionats pel MediaWiki, o valors per defecte, complementats amb la taula auxiliar Module:llengua/taula.
Funcions:
nom
Retorna el nom de la llengua a partir del seu <codi>. Sintaxi:
{{#invoke:llengua|nom|<codi>}}
del_nom
Retorna "del nom" o "de l'nom" segons les regles d'apostrofació en català. Sintaxi:
{{#invoke:llengua|del_nom|<codi>}}
al_nom
Retorna "al nom" o "a l'nom" segons les regles d'apostrofació en català. Sintaxi:
{{#invoke:llengua|al_nom|<codi>}}
script
Retorna el codi ISO 15924 del sistema d'escriptura, per defecte Latn
. Sintaxi:
{{#invoke:llengua|script|<codi>}}
dir
Retorna la direcció del sistema d'escriptura corresponent al codi de llengua, segons la propietat dir
en CSS: ltr
(esquerra a dreta, per defecte) o rtl
(dreta a esquerra). Sintaxi:
{{#invoke:llengua|dir|<codi>}}
wikimedia
Retorna el codi de llengua corresponent al subdomini de Wikimedia o "" (buit) si no existeix. Sintaxi:
{{#invoke:llengua|wikimedia|<codi>}}
En general es correspon amb el mateix <codi> ISO de llengua, amb algunes excepcions.
wmproject
Retorna el codi de llengua corresponent al subdomini de Wiktionary o "" (buit) si no existeix el projecte. Sintaxi:
{{#invoke:llengua|wmproject|<codi>}}
Vegeu també
local p = {}
local taula = mw.loadData("Module:llengua/taula")
-- Cerca el nom de llengua definit a /taula o en la llibreria de MediaWiki
function p.nom(codi)
if type(codi) == "table" then codi = codi.args[1] end -- des de plantilles via invoke o des de mòduls via require
if codi == nil then
return 'Cap codi'
end
local llenguaTaula = taula[codi]
local nom = nil
if llenguaTaula then
nom = llenguaTaula.nom
end
if nom == nil then
nom = mw.language.new('ca'):lcfirst(mw.language.fetchLanguageName(codi, 'ca'))
end
if nom == nil or nom == "" then
return codi
end
return nom
end
-- Retorna la direcció d'escriptura, ltr o rtl
function p.dir(codi)
if type(codi) == "table" then codi = codi.args[1] end -- des de plantilles via invoke o des de mòduls via require
if codi == nil then
return 'Cap codi'
end
local scriptRtl = {["Arab"]=true, ["fa-Arab"]=true, ["ks-Arab"]=true, ["ota-Arab"]=true,
["ps-Arab"]=true, ["ug-Arab"]=true, ["ur-Arab"]=true, ["Avst"]=true, ["Hebr"]=true,
["Nkoo"]=true, ["Phli"]=true, ["Phnx"]=true, ["Syrc"]=true, ["Thaa"]=true}
local alfabet = p.script(codi)
if scriptRtl[alfabet] then
return 'rtl'
end
local dir = mw.getLanguage(codi):getDir()
if (dir ~= nil and dir ~= '') then
return dir
end
return 'ltr'
end
-- Retorna el sistema d'escriptura, Latn per defecte
function p.script(codi)
if type(codi) == "table" then codi = codi.args[1] end -- des de plantilles via invoke o des de mòduls via require
if codi == nil then
return 'Cap codi'
end
local llenguaTaula = taula[codi]
local script = nil
if llenguaTaula then
script = llenguaTaula.script
end
if script ~= nil then
return script
end
return 'Latn'
end
-- Retorna el subdomini Wikimedia o "" (buit) si no existeix
function p.wikimedia(codi)
if type(codi) == "table" then codi = codi.args[1] end -- des de plantilles via invoke o des de mòduls via require
if codi == nil then
return 'Cap codi'
end
local llenguaTaula = taula[codi]
local codiWM = nil
if llenguaTaula then
codiWM = llenguaTaula.wikimedia
end
if codiWM ~= nil then
return codiWM
elseif mw.language.isSupportedLanguage(codi) then
return codi
end
return ''
end
-- A Wikimedia project exists if its Main page is linked at d:Q5296
function p.wmproject(codi)
if type(codi) == "table" then codi = codi.args[1] end -- via invoke o via require
if codi == nil then return end
local llengua_taula = taula[codi]
local codi_wikimedia = codi
if llengua_taula then
codi_wikimedia = llengua_taula.wikimedia or codi
end
local codi_wikidata = string.gsub(codi_wikimedia, '-', '_')
local main_page = mw.wikibase.getEntity('Q5296')
if main_page.sitelinks[codi_wikidata .. 'wiktionary'] then
return codi_wikimedia
end
return
end
-- Existeix el codi?
function p.existeix(codi)
--if taula[codi] or mw.language.isSupportedLanguage(codi) then
-- return true
--end
-- Comprovació alternativa, les llengües suportades pel Mediawiki són limitades
if type(codi) == "table" then codi = codi.args[1] end -- des de plantilles via invoke o des de mòduls via require
if p.nom(codi) == codi then
return false
end
return true
end
--[=[
Funció auxiliar per l’apostrofació de l’article masculí, retorna true o false
Limitacions, en general no necessàries per noms de llengua:
els casos previstos de h consonant són limitats
no analitza el cas l’s+consonant
no preveu si hi ha caràcters de puntuació inicial (l’«apòstrof», l’[[enllaç]])
no apostrofa davant números (l’1, l’11) ni sigles (l’FMI)
--]=]
local apostrofa = {
["hakk"]=false, -- h consonant (hakka)
["hawa"]=false, -- h consonant (hawaià)
["hia"]=false, ["hie"]=false, ["hio"]=false, ["hui"]=false, -- vocal consonant
["uix"]=true, -- excepció per u vocal
["ha"]=true, ["he"]=true, ["hi"]=true, ["hí"]=true, ["ho"]=true, ["hu"]=true, ["hy"]=true, -- excepte anteriors
["ia"]=false, ["ià"]=false, ["ie"]=false, ["io"]=false, ["iu"]=false, -- i consonant
["ua"]=false, ["ue"]=false, ["ui"]=false, ["uí"]=false, ["uï"]=false, ["uo"]=false, -- u consonant
["ya"]=false, ["ye"]=false, ["yi"]=false, ["yo"]=false, ["yu"]=false, -- y consonant
["a"]=true, ["à"]=true, ["e"]=true, ["è"]=true, ["é"]=true,
["i"]=true, ["í"]=true, ["ï"]=true, ["y"]=true,
["o"]=true, ["ò"]=true, ["ó"]=true, ["u"]=true, ["ú"]=true, ["ü"]=true -- excepte anteriors
}
local function sapostrofa(text)
local elText = mw.ustring.lower(text)
for i=4,1,-1 do
lletres = mw.ustring.sub(elText, 1, i)
apo = apostrofa[lletres]
if apo ~= nil then
return apo
end
end
return false
end
-- Retorna "del nom" o "de l'nom"
function p.del_nom(frame)
local nom = p.nom(frame)
if nom == "preromà" then
return "d'un preromà"
end
if sapostrofa(nom) then
return "de l'" .. nom
end
return "del " .. nom
end
-- Retorna "al nom" o "a l'nom"
function p.al_nom(frame)
local nom = p.nom(frame)
if sapostrofa(nom) then
return "a l'" .. nom
end
return "al " .. nom
end
-- Retorna "el nom" o "l'nom"
-- TODO: unificar funcions d'apostrofació en base a paràmetre de partícula
function p.el_nom(codi)
local nom = p.nom(codi)
if sapostrofa(nom) then
return "l'" .. nom
end
return "el " .. nom
end
-- transcripció, si existeix el mòdul per la llengua amb la funció tr
function p.trans(lang, text)
local trans
if lang and text then
local m_trans = taula[lang]
if m_trans and m_trans.trans_module then
trans = require("Module:" .. m_trans.trans_module).tr(text)
end
end
return trans
end
return p