« Module:Langue » : différence entre les versions
m A protégé « Module:Langue » : Modèle très utilisé ([Modifier=Autoriser uniquement les utilisateurs auto-confirmés] (infini) [Renommer=Autoriser uniquement les utilisateurs auto-confirmés] (infini)) |
relecture (« que celui-ci ait été au module par invoke, directement au modèle, ou à l'intérieur d'un module sous forme de string dans un tableau ou directement de string. » n'est pas très clair) |
||
| Ligne 3 : | Ligne 3 : | ||
local datalangue = mw.loadData( 'Module:langue/Data' ) | local datalangue = mw.loadData( 'Module:langue/Data' ) | ||
-- premierParametre | -- premierParametre renvoie le premier paramètre de Frame, que celui-ci ait été au module par invoke, directement au modèle, | ||
-- ou à l'intérieur d'un module sous forme de string dans un tableau ou | -- ou à l'intérieur d'un module sous forme de string dans un tableau ou directement de string. | ||
-- si aucun de ces argument ne contient de | -- si aucun de ces argument ne contient de chaîne, la fonction renvoie nil. | ||
-- si le deuxième paramètre est true, la chaine est | -- si le deuxième paramètre est true, la chaine est renvoyée trimée et en minuscule. | ||
local function premierParametre ( frame, lowerCase ) | local function premierParametre ( frame, lowerCase ) | ||
local arg | local arg | ||
| Ligne 23 : | Ligne 23 : | ||
end | end | ||
-- voir Modèle:Direction langue | -- voir Modèle:Direction langue. | ||
function langue.directionLangue ( frame ) | function langue.directionLangue ( frame ) | ||
local arg = premierParametre ( frame, true ) | local arg = premierParametre ( frame, true ) | ||
| Ligne 37 : | Ligne 37 : | ||
end | end | ||
-- voir Modèle:Code langue | -- voir Modèle:Code langue. | ||
function langue.codeLangue ( frame ) | function langue.codeLangue ( frame ) | ||
local arg = premierParametre ( frame, true ) | local arg = premierParametre ( frame, true ) | ||
| Ligne 44 : | Ligne 44 : | ||
end | end | ||
-- voir Modèle:Code langue 2 | -- voir Modèle:Code langue 2. | ||
function langue.codeLangue2 ( frame ) | function langue.codeLangue2 ( frame ) | ||
local arg = premierParametre ( frame, true ) | local arg = premierParametre ( frame, true ) | ||
| Ligne 51 : | Ligne 51 : | ||
end | end | ||
-- voir Modèle:Nom langue | -- voir Modèle:Nom langue. | ||
function langue.nomLangue ( frame ) | function langue.nomLangue ( frame ) | ||
local arg = premierParametre ( frame, true ) | local arg = premierParametre ( frame, true ) | ||
| Ligne 58 : | Ligne 58 : | ||
end | end | ||
-- voir Modèle:Lang | -- voir Modèle:Lang. | ||
function langue.lang ( frame ) | function langue.lang ( frame ) | ||
local args = ( frame.getParent and frame:getParent().args ) or frame or { } -- préparation pour appel par modèle ou direct. | local args = ( frame.getParent and frame:getParent().args ) or frame or { } -- préparation pour appel par modèle ou direct. | ||
| Ligne 71 : | Ligne 71 : | ||
end | end | ||
-- détection de la direction du texte | -- détection de la direction du texte. | ||
if code == 'ltr' or code == 'rtl' then | if code == 'ltr' or code == 'rtl' then | ||
dir = code | dir = code | ||
| Ligne 85 : | Ligne 85 : | ||
end | end | ||
-- transliteration | -- transliteration. | ||
if trans and trans ~= '' then | if trans and trans ~= '' then | ||
trans = ' (<span class="lang-' .. code | trans = ' (<span class="lang-' .. code | ||
| Ligne 95 : | Ligne 95 : | ||
end | end | ||
-- compilation du texte à retourner | -- compilation du texte à retourner. | ||
if code == '' then | if code == '' then | ||
wikiText = texte | wikiText = texte | ||
| Ligne 106 : | Ligne 106 : | ||
end | end | ||
-- ajout de la catégorie Page avec code de langue invalide si le code langue est dans la table dataCodeInvalide | -- ajout de la catégorie Page avec code de langue invalide si le code langue est dans la table dataCodeInvalide. | ||
for i, v in ipairs( datalangue.dataCodeInvalide ) do | for i, v in ipairs( datalangue.dataCodeInvalide ) do | ||
if code == v then | if code == v then | ||
| Ligne 130 : | Ligne 130 : | ||
end | end | ||
-- voir Modèle:Indication de langue | -- voir Modèle:Indication de langue. | ||
function langue.indicationDeLangue ( frame ) | function langue.indicationDeLangue ( frame ) | ||
local args = ( frame.getParent and frame:getParent().args ) or frame or { } | local args = ( frame.getParent and frame:getParent().args ) or frame or { } | ||
| Ligne 157 : | Ligne 157 : | ||
end | end | ||
-- voir Modèle:Langue avec nom | -- voir Modèle:Langue avec nom. | ||
function langue.langueAvecNom ( frame ) | function langue.langueAvecNom ( frame ) | ||
local args = ( frame.getParent and frame:getParent().args ) or frame or { } | local args = ( frame.getParent and frame:getParent().args ) or frame or { } | ||
| Ligne 166 : | Ligne 166 : | ||
local wikiText = '' | local wikiText = '' | ||
-- détection de la direction du texte | -- détection de la direction du texte. | ||
if code == 'ltr' or code == 'rtl' then | if code == 'ltr' or code == 'rtl' then | ||
dir = code | dir = code | ||
| Ligne 173 : | Ligne 173 : | ||
end | end | ||
-- définition du nom de la langue en français | -- définition du nom de la langue en français. | ||
local nom = langue.nomLangue { code } | local nom = langue.nomLangue { code } | ||
Version du 12 août 2013 à 03:06
local langue = { }
local datalangue = mw.loadData( 'Module:langue/Data' )
-- premierParametre renvoie le premier paramètre de Frame, que celui-ci ait été au module par invoke, directement au modèle, -- ou à l'intérieur d'un module sous forme de string dans un tableau ou directement de string. -- si aucun de ces argument ne contient de chaîne, la fonction renvoie nil. -- si le deuxième paramètre est true, la chaine est renvoyée trimée et en minuscule. local function premierParametre ( frame, lowerCase )
local arg
if type ( frame ) == 'table' then
arg = ( frame.getParent and ( frame.args [1] or frame:getParent().args [1] ) ) or frame [1]
elseif type ( frame ) == 'string' then
arg = frame
end
if type ( arg ) ~= 'string' then
arg = nil
end
if arg and lowerCase then
arg = mw.ustring.lower ( mw.text.trim ( arg ) )
end
return arg
end
-- voir Modèle:Direction langue. function langue.directionLangue ( frame )
local arg = premierParametre ( frame, true )
local direction = 'ltr'
for i, v in ipairs( datalangue.languesRtl ) do
if arg == v then
direction = 'rtl'
break
end
end
return direction
end
-- voir Modèle:Code langue. function langue.codeLangue ( frame )
local arg = premierParametre ( frame, true ) local code = datalangue.dataCodeLangue [ arg ] return code or arg or
end
-- voir Modèle:Code langue 2. function langue.codeLangue2 ( frame )
local arg = premierParametre ( frame, true ) local code = datalangue.dataCodeLangue [ arg ] return code or
end
-- voir Modèle:Nom langue. function langue.nomLangue ( frame )
local arg = premierParametre ( frame, true ) local nom = datalangue.dataNomLangue [ arg ] or '?????' return '' .. nom .. ''
end
-- voir Modèle:Lang. function langue.lang ( frame )
local args = ( frame.getParent and frame:getParent().args ) or frame or { } -- préparation pour appel par modèle ou direct.
local code = mw.ustring.lower ( mw.text.trim( args [1] or ) )
local texte = args.texte or
local dir = mw.ustring.lower ( args.dir or )
local trans = args.trans
local wikiText =
if texte == then
texte = args [2] or
end
-- détection de la direction du texte.
if code == 'ltr' or code == 'rtl' then
dir = code
code = mw.ustring.lower ( mw.text.trim ( args [2] ) )
texte = args [3] or
end
-- prépatation du rendu de direction du texte.
if dir == 'ltr' or dir == 'rtl' then
dir = 'dir=' .. dir
else
dir =
end
-- transliteration.
if trans and trans ~= then
trans = ' (' .. trans
.. ')'
else
trans =
end
-- compilation du texte à retourner.
if code == then
wikiText = texte
else
wikiText = '' .. texte
.. '' .. trans
end
-- ajout de la catégorie Page avec code de langue invalide si le code langue est dans la table dataCodeInvalide.
for i, v in ipairs( datalangue.dataCodeInvalide ) do
if code == v then
local namespaceCategorisation = { [0] = true, [4] = true, [10] = true, [14] = true, [100] = true }
if namespaceCategorisation [ mw.site.namespaces.id ] then
wikiText = wikiText ..
break
end
end
end
return wikiText
end
function langue.langue ( frame )
local args = ( frame.getParent and frame:getParent().args ) or frame or { }
args [1] = langue.codeLangue ( args [1] )
if not ( args.dir == 'ltr' or args.dir == 'rtl' ) then
args.dir = langue.directionLangue ( args [1] )
end
return langue.lang ( args )
end
-- voir Modèle:Indication de langue. function langue.indicationDeLangue ( frame )
local args = ( frame.getParent and frame:getParent().args ) or frame or { }
local nomLangue = args [1] or
local code = mw.ustring.lower ( args.langue or mw.text.trim( args [2] or ) )
local texte = args.texte
local dir = args.dir
local wikiText =
if nomLangue == then
nomLangue = datalangue.dataNomLangue [ code ] or
end
if texte and texte ~= then
texte = ' ' .. langue.lang { code, dir = dir, texte = texte }
else
texte =
end
wikiText = '('
.. code .. ')'
.. texte
return wikiText
end
-- voir Modèle:Langue avec nom. function langue.langueAvecNom ( frame )
local args = ( frame.getParent and frame:getParent().args ) or frame or { }
local code = mw.ustring.lower ( mw.text.trim ( args [1] or ) )
local texte = args.texte or args [2] or
local dir = args.dir
local trans = args.trans
local wikiText =
-- détection de la direction du texte.
if code == 'ltr' or code == 'rtl' then
dir = code
code = mw.ustring.lower ( mw.text.trim ( args [2] ) )
texte = args [3] or
end
-- définition du nom de la langue en français.
local nom = langue.nomLangue { code }
if texte ~= then
texte = ' ' .. langue.lang { code, dir = dir, texte = texte, trans = trans }
end
wikiText = nom .. ' :' .. texte
return wikiText
end
return langue