« Module:Multilingual » : différence entre les versions

Contenu supprimé Contenu ajouté
ModuleCentralizer modes.words_to_diffmaxi_limit OK
ModuleCentralizer restore a valid events library OK
Ligne 1 :
local p = {} -- The main central module install central libraries and bind the main and its sub-modules
local Central = p -- Save as ModuleCentralizer.lua ModuleCentralizer functionupdate modesLevenshtein diffmaxi=0.30*length+0.words_to_diffmaxi_limit82 OKok.lua
--------------------------------------------------|------------------------ typical length --------------------------|
-- res = res .. drop_box.new(selector, "modes_recursive_normal_tests_title", modes.recursive_normal_tests, function tab_view.form_one_case) -- only errors
 
-- res = res .. drop_box.new(selector, "modes_namespaces_page_list_title", tab_view.form_one_case)
-- For Begin, why errors ? how to debug ? translate already done :["contentlang"], pagelang, userlang, QITEM.
-- { "20181014", "20181014", "NOW", "Rical", "S181014uft", "update function tab_view.form_one_case + translate from recursive_normal_test1(...", },
-- Already checked : declarations types ["need"] = 0, where and how detect errors ...
-- Try to check exactly these points ... ?
-- For Begin try, for all libaries to all the sub modules and the main module, the function modes.mix_args(mix, mode_name, args_template) -- Mix arguments from options_for_modes, args_template
-- Save as ModuleCentralizer try modes.mix_args for translate content pagelang...lua
-- See the documentation in: MediaWiki:Scribunto/Central_modules_reference_manual
 
p.version = { -- Modules dependencies. Dependencias del módulo. Dépendances du module.
["versionName "] = "Central-s-fr", versionNumber = "1.0.0(181015T21:03)", versionDate = "2018-10-15T21:03:00", --MWMW NOWNOW
["versionNumber"] = "1.0.0(181023T07:45)",
-- UTC version structure : main.fonction.task(yymmddThh:mm)
["versionDate"] = "20181023T07:45:00", -- UTC version structure MWMW NOWNOW
mainDescription = "Begin to use", functionDescription = "first functional support", taskDescription = "enough advanced to use in CentralSchool OK",
["mainDescription"] = "Begin to use",
-- p_template_drop_box_name = 'Cuadro desplegable', -- Equivalent templates exist in other wikis
["functionDescription"] = "first functional support",
-- function tableview.table_rows(t) -- Formats rows of tables in direct html
["taskDescription"] = "enough advanced to use in CentralSchool OK",
sought = "Central;Centralizer/I18N;Mathroman;TestRequire", -- Sought module and submodules versions
-- p_template_drop_box_name = 'Cuadro desplegable', -- Equivalent templates exist in other wikis
known = "Central;Central-s-fr;Central-14 * Centralizer/I18N;Central/i18n * Mathroman22;Mathroman34", -- Known module and submodules versions
["sought"] = "Central;Centralizer/I18N;Mathroman;TestRequire", -- Sought module and submodules versions
["known"] = "Central;Central-s-fr;Central-14 * Centralizer/I18N;Central/i18n * Mathroman22;Mathroman34", -- Known module and submodules versions
["treebranches"] = { -- Done on 20181019 1322
{ "Central", "Central-s-fr", "Central-14" }, -- upper
{ "Centralizer/I18N", "Central-s-fr", "Central-14" }, -- median
{ "Mathroman22", "Mathroman34" }, -- lower
}
} -- Task details : ...() from 2018-07-28 = for 14 days.
-- https://www.MediaWiki.org/wiki/Module:drop_box https://fr.wikisource.org/wiki/Module:drop_box
Ligne 378 ⟶ 390 :
-- Pour traduire, ne traduisez pas des parties comme celles-ci : <b>%1</b> ; <b>%1</b> = <b>%2</b> (%3) ; <code>Q535</code> ; <br/> ; \n* ; _G.
["docfunc"] = "docfunc",
["docitem"] = "docitem",
["dockey"] = "dockey",
activity_description = "La Library:activity soutient la gestion des tâches de phabricator, des sous-tâches inter Lua-codeurs et des modules centraux interwikis.",
Ligne 404 ⟶ 415 :
-- Modul:Central-s-de/Doku {{#invoke:Central-s-de|read}} de = German = Deutsch
["docfunc"] = "docfunc",
["docitem"] = "docitem",
["dockey"] = "dockey",
activity_description = "Das Library:activity Das Ding unterstützt das Management von phaborator-Aufgaben, von inter-Lua-Coder-Unteraufgaben und von interwikis-Zentralmodulen.",
Ligne 430 ⟶ 440 :
-- To translate, do not translate parts like these: <b>%1</b> ; <b>%1</b> = <b>%2</b> (%3) ; <code>Q535</code> ; <br/> ; \n* ; _G.
["docfunc"] = "docfunc",
["docitem"] = "docitem",
["dockey"] = "dockey",
activity_description = "The Library:activity supports the management of phabricator tasks, of inter Lua-coders sub-tasks, and of interwikis central modules.",
Ligne 457 ⟶ 466 :
-- To translate, do not translate parts like these: <b>%1</b> ; <b>%1</b> = <b>%2</b> (%3) ; <code>Q535</code> ; <br/> ; \n* ; _G.
["docfunc"] = "docfunc",
["docitem"] = "docitem",
["dockey"] = "dockey",
activity_description = "La Library:activity soporta la gestión de tareas de phabricator, de sub-tareas inter Lua-coders, y de módulos interwikis centrales.",
Ligne 484 ⟶ 492 :
-- Pour traduire, ne traduisez pas des parties comme celles-ci : <b>%1</b> ; <b>%1</b> = <b>%2</b> (%3) ; <code>Q535</code> ; <br/> ; \n* ; _G.
["docfunc"] = "docfunc",
["docitem"] = "docitem",
["dockey"] = "dockey",
activity_description = "La Library:activity soutient la gestion des tâches de phabricator, des sous-tâches inter Lua-codeurs et des modules centraux interwikis.",
Ligne 511 ⟶ 518 :
-- To translate, do not translate parts like these: <b>%1</b> ; <b>%1</b> = <b>%2</b> (%3) ; <code>Q535</code> ; <br/> ; \n* ; _G.
["docfunc"] = "docfunc",
["docitem"] = "docitem",
["dockey"] = "dockey",
activity_description = "A Library:activity a phabricator feladatok kezelését, az inter Lua-kódoló al-feladatok és az interwikis központi modulok kezelését.",
Ligne 537 ⟶ 543 :
-- To translate, do not translate parts like these: <b>%1</b> ; <b>%1</b> = <b>%2</b> (%3) ; <code>Q535</code> ; <br/> ; \n* ; _G.
["docfunc"] = "docfunc",
["docitem"] = "docitem",
["dockey"] = "dockey",
activity_central_library_description = "Điều này Library:activity hỗ trợ việc quản lý các công việc để nhà phân tích, các nhiệm vụ phụ liên Lua-coders, và các mô-đun trung tâm liên thông.",
Ligne 947 ⟶ 952 :
{ "20181023", "20181030", "NOW", "Rical", "S181023iLC", "Begin: Rical invite 7 Lua-coders : Tpt, Zolo, Od1n, Julien1978, Daehan, VIGNERON ? 3 days", },
{ "20181020", "20181022", "NOW", "Rical", "S181020umf", "update MediaWiki:Scribunto/Central manual for ;activity.phabricator_tasks_report;activity.rough_date_days;...", },
{ "20181020", "20181022", "NOW", "Rical", "S181020aec", "For 'Begin' function events.add_err+add_cat comfrom depends need=0 1 2 prop+prop_defaut.", },
{ "20181018", "20181020", "NOW", "Rical", "S181018CrC", "Module:CentralSchool: finish reciprocal adaptation with Module:Centralizer", },
{ "20181016", "20181017", "NOW", "Rical", "S181016vap", "restore versions.anti_crash(frame) if not pcall() recursive in versions.tree_branch='v1;v2;v3' ", },
Ligne 1 026 ⟶ 1 032 :
{ "20181023", "20181030", "NOW", "Rical", "S181023iLC", "Begin: Rical invite 7 Lua-coders : Tpt, Zolo, Od1n, Julien1978, Daehan, VIGNERON ? 3 days", },
{ "20181020", "20181022", "NOW", "Rical", "S181020umf", "update MediaWiki:Scribunto/Central manual for ;activity.phabricator_tasks_report;activity.rough_date_days;...", },
{ "20181020", "20181022", "NOW", "Rical", "S181020aec", "For 'Begin' function events.add_err+add_cat comfrom depends need=0 1 2 prop+prop_defaut.", },
{ "20181018", "20181020", "NOW", "Rical", "S181018CrC", "Module:CentralSchool: finish reciprocal adaptation with Module:Centralizer", },
{ "20181016", "20181017", "NOW", "Rical", "S181016vap", "restore versions.anti_crash(frame) if not pcall() recursive in versions.tree_branch='v1;v2;v3' ", },
Ligne 1 313 ⟶ 1 320 :
}
function tab_view.form_one_case(task) -- Convert a task from test_group to rowGroup.
task.phab = viewers.phab_task(task.phab, task.phab) -- function viewers.phab_task
local usual = "discreet"
if viewers.is_in(task.status, "ToCreate, Declined, Invalid, ") then usual = "discreet"
Ligne 1 516 ⟶ 1 523 :
-- datas = {} -- already declared by Scribunto, see central_library.new() -- Record a library in package.loaded
 
datas.default_item = datas.default_item or "Q307Q34743" -- KeepRudyard Galilée (Q307)Kipling
 
datas.i18n = {} -- Translations for datas library
Ligne 1 831 ⟶ 1 838 :
end
 
datas.default_item = datas.default_item or "Q34743" -- Rudyard Kipling
function datas.property(argmt) -- Get datas from mwwikibase for one property of the page.
 
argmt = mw.clone(argmt) -- avoid any interaction with other properties.
function datas.property(one_data) -- Get datas from mwwikibase for one property of the page.
one_data = mw.clone(one_data or {}) -- avoid any interaction with other properties.
local claimRanks = { 1, 2, 3, 4, }
datas.QITEM = mw.wikibase.getEntityIdForCurrentPage() -- use props.QITEM Returns the Item id as string, like "Q42"
local datas.QITEM = datas.QITEM or datas.default_item or "Q34743" -- Rudyard Kipling
datas.itementity = mw.wikibase.getEntity(datas.QITEM or datas.default_item or "Q34743" ) -- Rudyard Kipling
local locval = {}nil ; one_data["val"] = val
if one_data["prop"] == "label" then one_data["val"] = datas.item:getLabel(datas.QITEM) -- use props.label Returns a string, like "Berlin" with 'de'
local label = nil
elseif one_data["prop"] == "sitelink" then one_data["val"] = datas.item:getSitelink() -- use props.sitelink like Author:Aristotel
local val = nil
elseif one_data["prop"] == "labelwithlang" then one_data["val"] = mw.wikibase.entity:getLabelWithLang() -- use props.labelwithlang -- Returns a string like "Berlin" and a language like
if argmt.prop then -- Admit any type of keyword and prop.
elseif one_data["prop"] == "description" then one_data["val"] = mw.wikibase.description(datas.QITEM) -- use props.description -- ric : Description of the QITEM page
argmt.keyword = argmt.keyword or argmt.key or argmt.prop
elseif one_data["prop"] == "labelcontent" then one_data["val"] = mw.wikibase.getLabelByLang(datas.QITEM, langs.content_lang) -- Returns the content_lang label of the item
argmt.prop = argmt.prop -- Get datas from mwwikibase for one property of the page.
elseif if argmt.one_data["prop"] == "QITEMlabelpage" then one_data["val"] = mw.wikibase.getEntityIdForCurrentPagegetLabelByLang(datas.QITEM, langs.page_lang) -- use props.QITEM Returns the Itempage_lang idlabel asof string,the like "Q42"item
elseif argmt.one_data["prop"] == "labellabeluser" then one_data["val"] = datasmw.wikibase.item:getLabelgetLabelByLang(datas.QITEM), ;langs.user_lang label = label or val) -- use props.label Returns a string, like "Berlin" withRudyard 'de'Kipling
else
elseif argmt.prop == "sitelink" then val = datas.item:getSitelink() -- use props.sitelink like Author:Aristotel
if claimRanks["RANK_TRUTH"] then one_data["prop"] = one_data["prop"] or datas.item:formatPropertyValues(claimRanks["RANK_TRUTH"]) end
elseif argmt.prop == "labelwithlang" then val = mw.wikibase.entity:getLabelWithLang() -- use props.labelwithlang -- Returns a string like "Berlin" and a language like
if claimRanks["RANK_PREFERRED"] then one_data["prop"] = one_data["prop"] or datas.item:formatPropertyValues(claimRanks["RANK_PREFERRED"]) end
elseif argmt.prop == "description" then val = mw.wikibase.description(QITEM) -- use props.description -- ric : Description of the QITEM page
if claimRanks["RANK_NORMAL"] then one_data["prop"] = one_data["prop"] or datas.item:formatPropertyValues(claimRanks["RANK_NORMAL"]) end
elseif argmt.prop == "labelcontent" then val = mw.wikibase.getLabelByLang(QITEM, langs.content_lang) ; label = label or val -- Returns the content_lang label of the item
if claimRanks["RANK_DEPRECATED"]then one_data["prop"] = one_data["prop"] or datas.item:formatPropertyValues(claimRanks["RANK_DEPRECATED"]) end
elseif argmt.prop == "labelpage" then val = mw.wikibase.getLabelByLang(QITEM, langs.page_lang) ; label = label or val -- Returns the page_lang label of the item
end
elseif argmt.prop == "labeluser" then val = mw.wikibase.getLabelByLang(QITEM, langs.user_lang or "en") ; label = label or val -- Returns the user_lang label of the item
if not one_data["val"] then one_data["val"] = one_data["prop_default"] end -- Rudyard Kipling -- The default value can be of any type
else -- ric (p.box_read)
one_data["val"] = tostring(one_data["val"])
loc.formatPropertyValues = datas.item:formatPropertyValues( argmt.prop ) -- like "P123"
if (one_data["format"] == "year") and tonumber(one_data["val"]) then one_data["val"] = mw.ustring.sub( tostring(one_data["val"]), -4, -1 ) end
-- Returns a table like: { value = "Formatted claim value", label = "Label of the Property" }
one_data = mw.clone(one_data) -- avoid any interaction with other properties.
if loc.wd_RANK_TRUTH then
return one_data
loc.formatPropertyValues = datas.item:formatPropertyValues( argmt, { loc.wd_RANK_TRUTH } )
end -- local val = datas.property(one_data, loc) -- Get datas from mwwikibase for one property of the page.
end
if loc.wd_claimRanks then
loc.formatPropertyValues = datas.item:formatPropertyValues( argmt, { loc.wd_claimRanks } )
end
val = loc.formatPropertyValues.value
end
val = tostring(val)
if argmt.format == "year" then val = mw.ustring.sub( val, -4, -1 ) end
val = tostring(val)
argmt.val = val
end --function modes.get_args(
argmt.label = label or argmt.label or argmt.labeluser or argmt.labelcontent or argmt.labelpage or argmt.labelbylang
argmt = mw.clone(argmt) -- avoid any interaction with other properties.
return argmt
end -- argmt = datas.property(argmt) -- Get datas from mwwikibase for one property of the page.
 
function datas.get_item(args_known, QITEM) -- Get datas from mw.wikibase for the page.
Ligne 1 876 ⟶ 1 872 :
local t = "\n* <b>datas.get_item(args_known, QITEM)</b>: Get datas from mw.wikibase for the page."
local Title, Label, prop, lang, description, val, label, adr, proplabel
local QITEM = QITEM or mw.wikibase.getEntityIdForCurrentPage() or datas.default_item or kipling"Q34743" -- Rudyard Kipling
datas.QITEM = QITEM
datas.item = mw.wikibase.getEntity(datas.QITEM or "Q34743") -- Rudyard Kipling
Ligne 1 882 ⟶ 1 878 :
local prop = {} -- to collect properties
local loc = {} -- local values
for key, argmtone_arg in pairs(args_known) do -- For all known parameters
if type(argmtone_arg) == "table" then
argmtone_arg.key = key
argmtone_arg.syn = argmtone_arg.syn or 0
argmtone_arg = datas.property(argmtone_arg) -- Get datas from mwwikibase for one property of the page. function datas.property(
if argmtone_arg.keyword == "QITEM" then argmtone_arg.val = QITEM end
if argmtone_arg.prop then -- Admit any type of keyword and prop.
props[argmtone_arg.keyword] = mw.clone(argmtone_arg)
prop[argmtone_arg.keyword] = argmtone_arg.val -- ric (p.box_read)
end
end
Ligne 1 901 ⟶ 1 897 :
end -- local prop, props = datas.get_item(args_known, QITEM) -- Get datas from mw.wikibase for the page.
 
function datas.get_item_report(t) -- datas.get_item() Report datas from mw.wikibase for the page **
local memo = viewers.save_configs("datas.get_item_report") -- Save global configuration before eventual changes.
local t = t or "\n* <b>datas.get_item_report(t)</b>: Report datas from mw.wikibase for the page **"
local args_known = args_known or modes.args_known or p.args_known or {} -- modes.args_known = { -- p.args_known = { -- }
local prop, props = datas.get_item(args_known, QITEM) -- Get datas from mw.wikibase for the page. ric
local countprops = tostring( lua_table.level_count(props) ) -- do not follow one_prop structure
local countallprops = tostring( lua_table.level_count(props) ) -- do not follow one_prop structure
Ligne 1 911 ⟶ 1 907 :
local sortprops = {} -- to sort properties in alphabetic order
for key, val in pairs(props) do -- from list all fond datas
-- t = t .. "\n* get_item: " .. viewers.ta("key", key) .. viewers.ta("val", val)
table.insert(sortprops, props[key])
end
Ligne 1 918 ⟶ 1 913 :
test_group = sortprops, -- Use default cases.
rowGroup = {},
title_memo = "datas_get_item_report_titlemodes_args_known_report_title", -- Report datas from mw.wikibase",
headers = "modes_args_known_report_headers", -- "keyword; value; type; need; keyword; syn; property; by default; format; source",
headers_class = "wikitable alternative center sortable",
form_one_case = function(case) -- Convert a case from test_group to rowGroup.
return { case.key, case.val, case.typ, case.need, case.keyword, case.syn, case.prop, case.format, } end,
Ligne 1 929 ⟶ 1 926 :
viewers.restore_configs(memo, "datas.get_item_report") -- Restore global configurations after eventual changes.
return t
end -- local t = datas.get_item_report(t) -- datas.get_item() Report datas from mw.wikibase for the page **
 
function datas.prot(prop) -- form a string to show a prop value
Ligne 2 133 ⟶ 2 130 :
events.tab_view.test_group = {}
events.tab_view.rowGroup = {}
 
 
function events.add_cat(key, ... ) -- Add a category in the actual table of events.
Ligne 2 270 ⟶ 2 268 :
return { evt.typ or "t", evt.key or "k", evt.idargs or "i", evt.res or "r" }
end
t = t .. tableview.new(tab_view) -- Runs tests cases and formatsFormats a table view with lines and columns.
t = t .. viewers.ta("end #test_group *2", lua_table.level_count(tab_view.test_group) ) -- function tableview.new( nil bug170602
t = t .. viewers.ta("end #rowGroup *2", lua_table.level_count(tab_view.rowGroup) ) -- function tableview.new( nil bug170602
Ligne 4 459 ⟶ 4 457 :
-- Romans view : XIJ=12 MCXI=1111 MCDXLIV=1444 MDCLXVI=1666 MCMXCIX=1999 MMCCXXII=2222 MMMMCMXCIX=4999 ERREURS=0 erreur caractere S en 7. XIA=11 erreur caractere A en 3. XJI=12 erreur caractere J avant la fin. IXC=89 erreur caracteres croissants. VLD=445 erreur caracteres croissants. MMMMM=5000 erreur > 4999. MMMMMYJXC=5089 erreur > 4999. erreur caractere Y en 6. erreur caractere J avant la fin.
 
mathroman.args_known = { -- Table of the definitions of all known arguments at module level.
function mathroman.roman2int(rm) -- Convert a roman number to integer -- S170606rmn
-- Arguments in order without names, with their keyword for use as other arguments.
[1] = { ["syn"] = 2, ["need"] = 0, ["keyword"] = "mode"},
-- Special arguments to modify the fonctions and outputs of this module.
["mode"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "mode"},
["c"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "c"},
["options"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "options"},
-- The userlang argument permits at an administrator in his own langage (errors, warnings, catégories, tests) to help a wiki in any language.
["contentlang"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "contentlang"},
["pagelang"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "pagelang"},
["userlang"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "userlang"},
["birthyear"] = { ["typ"] = "dat", ["need"] = 0, ["keyword"] = "birthyear", ["prop"] = "P569", ["format"] = "year", },
["deathyear"] = { ["typ"] = "dat", ["need"] = 0, ["keyword"] = "deathyear", ["prop"] = "P570", ["format"] = "year", },
}
 
function mathroman.roman2int(rm) -- Convert a roman number to integer
-- { ["name"] = "mathroman.roman2int (4)', ["args"] = { "VI", }, ["expect"] = { 123 } }, -- example of test case
local v = 0 -- valeur totale
Ligne 4 473 ⟶ 4 486 :
table.insert(errtab, tostring(events.add_err("mathroman_is_not_string_err", tostring(rm) ) ) )
return 0, errs
end -- function events.add_err(
end
if rm == "" then
errs = errs .. events.add_err("mathroman_is_not_string_err", '""')
Ligne 4 524 ⟶ 4 537 :
errs = table.concat(errtab, " ; ")
return v, errs -- with or without errors
end -- functionv, errs = mathroman.roman2int(rm) -- Convert a roman number to integer
 
function mathroman.romani2r(i, j)
Ligne 4 542 ⟶ 4 555 :
end -- function mathroman.romani2r(i, j)
 
function mathroman.int2roman(int) -- Convert an integer to a roman number, also if int is a string.
-- { ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = { int = 444 }, ["expect"] = { "CDXLIV" } }, -- example of test case
local errs = "" -- local collection of errors -- S170606rmn
Ligne 4 615 ⟶ 4 628 :
end
end
return romanv, errs -- with or without errors
end -- functionv, errs = mathroman.int2roman(int) -- Convert an integer to a roman number
 
mathroman.roman2intTests = { -- Autotest cases to validate the mathroman library at MediaWiki level.
-- each test_case defines a name, a function, an input, an output. See also viewers.strTestCase. 6 cases
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "-X", ["expect"] = 10, "mathroman_char_X_in_N_err---1-" },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "0", ["expect"] = 0, "null value" },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "XIA", ["expect"] = 11, "character A in 3" },
--[
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "", ["expect"] = 0 },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "MCXI", ["expect"] = 1111 },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "XIJ", ["expect"] = 12 },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "XJI", ["expect"] = 12, "X Y Z" },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "XJI", ["expect"] = 12, "mathroman_char_increase_err" },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "VLD", ["expect"] = 445 },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "IXC", ["expect"] = 89 },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "MMMMCMXCIX", ["expect"] = 4999 },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "MMMMM", ["expect"] = 5000, "mathroman_J_before_end_err-XJI" },
--]]
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = "MMMMMYJXC", ["expect"] = 5089, ";mathroman_J_before_end_err;mathroman_char_increase_err;mathroman_char_X_in_N_err-Y-6;mathroman_greater_4999_err;" },
}
 
function mathroman.roman2int_tests(t) -- Tests of main central modules -- S170606rmn
local memo = viewers.save_configs("mathroman.roman2int_tests") -- Save global configuration before eventual changes.
local t = t or "\n* <b>mathroman.roman2int(t)</b> Test roman to digital numbers. " .. viewers.form9user("mathroman_roman2int_tests_title")
local tab_view = { -- Group datas and options for a table view with lines and columns.
tests_titletitle_memo = "mathroman_roman2int_tests_title", -- "mathroman.roman2int() Test roman to digital numbers"
test_group = { { 123, }, { 2mathroman.78, }, { "-X", }, { "", }roman2intTests,
form_one_case = function(case) -- Convert a case from test_group to rowGroup.
{ "0", }, { "MCXI", },{ "XIJ", }, { "XJI", }, { "XIA", },
local valX, errs = mathroman.roman2int(case["args"]) -- DEBUG : function mathroman.roman2int() can fail without blocking page.
{ "VLD", }, { "IXC", }, { "MMMMCMXCIX", }, { "MMMMM", },
local wordX, errsX = mathroman.int2roman(valX) -- DEBUG : function mathroman.roman2int() can fail without blocking page.
{ "MMMMMYJXC", }, { {x}, }, { function()end, },
return { case["args"], tostring(valX), tostring(wordX), tostring(errs) .. " " .. tostring(errsX), }
},
end,
headers = "mathroman_roman2int_tests_headers", -- "Roman number; Digital value; Correct; Error(s)"
headers_class = "wikitable alternative center sortable",
rowGroup = {},
}
tab_view.t = (tab_view.t or "") .. viewers.ta("roman2int_tests: ", "start")
tab_view.t = tab_view.t .. viewers.ta("#test_group: ", lua_table.level_count(tab_view.test_group) )
function tab_view.form_one_case(case) -- Convert a case from test_group to rowGroup.
local word = case[1] -- DEBUG : mathroman.roman2int() can fail without blocking page.
local valX, errs = mathroman.roman2int(word) -- DEBUG : mathroman.roman2int() can fail without blocking page.
local wordX, errsX = mathroman.int2roman(valX) -- DEBUG : mathroman.roman2int() can fail without blocking page.
return { word, valX, wordX, errs .. " " .. errsX, }
end
t = t .. tableview.new(tab_view) -- Runs tests cases and formats a table view with lines and columns.
t = t .. viewers.ta("#test_group: ", lua_table.level_count(tab_view.test_group) )
t = t .. viewers.ta("#rowGroup: ", lua_table.level_count(tab_view.rowGroup) )
viewers.restore_configs(memo, "mathroman.roman2int_tests") -- Restore global configurations after eventual changes.
return t
end -- function mathroman.roman2int_tests(t)
 
mathroman.int2romanTests = { -- Autotest cases to validate the mathroman library at MediaWiki level.
-- each test_case defines a name, a function, an input, an output. See also viewers.strTestCase. 8 - 1 = 7 + 8 = 15 cases
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = "19", ["expect"] = "XII" },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = 4999, ["expect"] = "MMMMCMXCIX" },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = 5000, ["expect"] = "0", }, -- "value > 4999"
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = -10, ["expect"] = "X", }, -- "null value"
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = 0, ["expect"] = "0", }, -- "null value"
}
 
-- vueRomains, available errors :
-- XIJ=12 MCXI=1111 MCDXLIV=1444 MDCLXVI=1666 MCMXCIX=1999 MMCCXXII=2222 MMMMCMXCIX=4999 ERREURS=0 erreur caractere S en 7.
-- XIA=11 erreur caractere A en 3. XJI=12 erreur caractere J avant la fin. IXC=89 erreur caracteres croissants. VLD=445 erreur caracteres croissants.
-- MMMMM=5000 erreur > 4999. MMMMMYJXC=5089 erreur > 4999. erreur caractere Y en 6. erreur caractere J avant la fin.
 
function mathroman.int2roman_test(t) -- Unitary tests of mathroman.int2roman
local memo = viewers.save_configs("mathroman.int2roman_test") -- Save global configuration before eventual changes.
local t = t or "\n* " .<b>mathroman.int2roman(t)</b> viewersTest digital to roman numbers.form9user("mathroman_int2roman_test_title")
local tab_view = { -- Group datas and options for a table view with lines and columns.
tests_titletitle_memo = "mathroman_int2roman_test_title", -- "mathroman.int2roman() Test digital numbers to roman numbers"
test_group = { { -10, }, { 3mathroman.14, }, { "not-a-number", }, { "", }int2roman_test,
form_one_case = function(case) -- Convert a case from test_group to rowGroup.
{ 0, }, { 12, }, { 17, }, { "18", }, { "19", },
local valX, errs = mathroman.roman2int(case["args"]) -- DEBUG : mathroman.roman2int() can fail without blocking page.
{ 111, }, { 444, }, { 555, },
local valX, errsX = mathroman.roman2int(wordX) -- DEBUG : function mathroman.roman2int() can fail without blocking page.
{ "777", }, { "1111", },{ "4999", }, { "5000", },
return { case["args"], wordX, valX, tostring(errs) .. " " .. tostring(errsX), }
},
end,
headers = "mathroman_int2roman_tests_headers", -- "Digital number; Roman value; Correct; Error(s)"
headers_class = "wikitable alternative center sortable",
rowGroup = {},
}
tab_view.t = (tab_view.t or "") .. viewers.ta("int2roman_tests: ", "start")
tab_view.t = tab_view.t .. viewers.ta("#test_group: ", lua_table.level_count(tab_view.test_group) )
function tab_view.form_one_case(case) -- Convert a case from test_group to rowGroup.
local val = case[1] -- DEBUG : mathroman.roman2int() can fail without blocking page.
local wordX, errs = mathroman.int2roman(val, " ") -- DEBUG : mathroman.int2roman() can fail without blocking page.
local valX, errsX = mathroman.roman2int(wordX) -- DEBUG : mathroman.roman2int() can fail without blocking page.
return { val, wordX, valX, errs .. " " .. errsX, }
end
t = t .. tableview.new(tab_view) -- Runs tests cases and formats a table view with lines and columns.
t = t .. viewers.ta("#test_group: ", lua_table.level_count(tab_view.test_group) )
t = t .. viewers.ta("#rowGroup: ", lua_table.level_count(tab_view.rowGroup) )
viewers.restore_configs(memo, "mathroman.int2roman_test") -- Restore global configurations after eventual changes.
return t
end -- function mathroman.int2roman_test(t)
 
-- vueRomains : XIJ=12 MCXI=1111 MCDXLIV=1444 MDCLXVI=1666 MCMXCIX=1999 MMCCXXII=2222 MMMMCMXCIX=4999 ERREURS=0 erreur caractere S en 7. XIA=11 erreur caractere A en 3. XJI=12 erreur caractere J avant la fin. IXC=89 erreur caracteres croissants. VLD=445 erreur caracteres croissants. MMMMM=5000 erreur > 4999. MMMMMYJXC=5089 erreur > 4999. erreur caractere Y en 6. erreur caractere J avant la fin.
-- { ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", group = mathroman.TestsCasesGroup, },
-- { ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = { 1 }, ["expect"] = { "I" } },
 
mathroman.TestsCasesGroup = { -- Autotest cases to validate the mathroman library at MediaWiki level.
-- each test_case defines a name, a function, an input, an output. See also viewers.strTestCase. 8 cases
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "XXII" }, ["expect"] = { 22 }, },
}
 
mathroman.Tests_cases = { -- Autotest cases to validate the mathroman library at MediaWiki level.
-- each test_case defines a name, a function, an input, an output. See also viewers.strTestCase. 5 cases
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = { 12, }, ["expect"] = { "XII" }, },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "VIA", }, ["expect"] = { 6, "character AAA in 3" }, },
}
 
mathroman.int2romanTests = { -- Autotest cases to validate the mathroman library at MediaWiki level.
-- each test_case defines a name, a function, an input, an output. See also viewers.strTestCase. 8 - 1 = 7 + 8 = 15 cases
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = { "19" }, ["expect"] = { "XII" } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = { 4999 }, ["expect"] = { "MMMMCMXCIX" } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = { 5000 }, ["expect"] = { "0", "value > 4999" } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = { -10 }, ["expect"] = { "X", "null value" } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.int2roman", ["args"] = { 0 }, ["expect"] = { "0", "null value" } },
}
mathroman.roman2intTests = { -- Autotest cases to validate the mathroman library at MediaWiki level.
-- each test_case defines a name, a function, an input, an output. See also viewers.strTestCase. 6 cases
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "-X" }, ["expect"] = { 10, "mathroman_char_X_in_N_err---1-" } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "0" }, ["expect"] = { 0, "null value" } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "XIA" }, ["expect"] = { 11, "character A in 3" } },
--[
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "" }, ["expect"] = { 0 } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "MCXI" }, ["expect"] = { 1111 } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "XIJ" }, ["expect"] = { 12 } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "XJI" }, ["expect"] = { 12, "X Y Z" } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "XJI" }, ["expect"] = { 12, "mathroman_char_increase_err" } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "VLD" }, ["expect"] = { 445 } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "IXC" }, ["expect"] = { 89 } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "MMMMCMXCIX" }, ["expect"] = { 4999 } },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "MMMMM" }, ["expect"] = { 5000, "mathroman_J_before_end_err-XJI" } },
--]]
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "MMMMMYJXC" }, ["expect"] = { 5089, ";mathroman_J_before_end_err;mathroman_char_increase_err;mathroman_char_X_in_N_err-Y-6;mathroman_greater_4999_err;" } },
}
 
mathroman.testsRecursive = { -- Autotest cases to validate the mathroman library at MediaWiki level.
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "XXIJ" }, ["expect"] = { 22 } },
-- { ["errorsKey"] = 2, ["modulename"] = "mathroman", funcname = 'recurse', group = mathroman.testsRecursive, },
{ ["errorsKey"] = 2, ["modulename"] = "mathroman", ["funcname"] = "mathroman.roman2int", ["args"] = { "MCXI" }, ["expect"] = { 1111 } },
-- { ["errorsKey"] = 2, ["modulename"] = "mathroman", funcname = 'recurse', group = mathroman.testsRecursive, },
}
 
local func_example = { ["funcname"] = "mathroman.roman2int", ["args"] = { "MCXI" }, ["expect"] = { 1111 }, ["errorsKey"] = 2, }
local group_example = { ["name"] = "mathroman.roman2int.5", ["modulename"] = "mathroman", ["groupname"] = "mathroman.testsRecur", }
 
mathroman.testsGroups = { -- Autotest cases to validate the mathroman library at MediaWiki level.
-- Each test_case defines a name, a function, an input, an output.
{ ["name"] = "mathroman", ["modulename"] = "mathroman", ["funcname"] = "runGroups", ["groupname"] = "mathroman.Tests_cases", }, --
{ ["name"] = "mathroman", ["modulename"] = "mathroman", ["funcname"] = "runGroups", ["groupname"] = "mathroman.int2romanTests", }, --
{ ["name"] = "mathroman", ["modulename"] = "mathroman", ["funcname"] = "runGroups", ["groupname"] = "mathroman.roman2intTests", }, --
-- modulename = "mathroman", ["funcname"] = "runGroups", ["groupname"] = "mathroman.testsRecursive", },
}
 
-- cut_libraries
Ligne 4 756 ⟶ 4 734 :
[4] = "4",
["modules_guide"] = "Argument modules_guide",
["label_descr "] = "Argument automatique de Wikidata.",
["sitelink "] = 'sitelink',
["sitelink_descr "] = "Argument automatique de Wikidata.",
-- Languages
["contentlang "] = "contentlang",
["contentlang_descr "] = "Langue du wiki.",
["pagelang "] = "pagelang",
["pagelang_descr "] = "Langue de la page.",
["userlang "] = "userlang",
["userlang_descr "] = "Language du lecteur de la page.",
--
QITEM["uri"] = 'QITEMuri',
uri ["QITEM"] = 'uriQITEM',
["itemid "] = 'itemid',
["itemid_descr "] = "Identifiant des données de Wikidata, comme <code>Q535</code> pour Victor Hugo.",
["itemid2 "] = 'id',
["itemid2_descr "] = "Autre identifiant des données de Wikidata, comme <code>Q535</code> pour Victor Hugo.",
["debug "] = 'debug',
["category "] = 'Catégorie',
["mode "] = "mode",
["mode_descr "] = "Type d'utilisation du module ou du modèle : lire, éditer, documenter, tester.",
["options "] = "options",
["options_descr "] = "Options d'affichage d'un module ou d'un modèle.",
["c "] = "c",
["c_descr "] = "Options d'affichage d'un module ou d'un modèle.",
["knownversions "] = "knownversions",
["knownversions_descr "] = "Versions connues, pour les gérer.",
["soughtversions "] = "soughtversions",
["soughtversions_descr "] = "Versions demandées, pour les gérer.",
["modes_form_ok_categ_tests "] = "Test de génération de catégorie OK",
-- Principaux textes, erreurs et catégories des outils
["language "] = 'langue',
-- Messages et erreurs divers
modes_used_options_list_title = "modes.used_options_list() Utilisation des options :",
Ligne 4 855 ⟶ 4 833 :
modes_namespaces_page_list_title = "modes.namespaces_page_list() Module, namespaces, et noms de pages :",
modes_args_known_report_title = "modes.args_known_report(t) Rapport des principaux arguments connus.",
modes_args_known_report_headers = "clé; valeur; type; nécessaire; mot-clé; synonyme; propriété; par défault; format; source",
modes_get_args_report_title = "modes.get_args() Valeurs des argument dans p.args_known{}.", -- fr
} -- modes.i18n.br
Ligne 4 866 ⟶ 4 844 :
[4] = "4",
["modules_guide"] = "Argument modules_guide",
["label "] = 'label',
["label_descr "] = "Wikidata automatisches Argument.",
["sitelink "] = 'sitelink',
["sitelink_descr "] = "Wikidata automatisches Argument.",
-- Sprachen
["contentlang "] = "contentlang",
["contentlang_descr "] = "Wiki-Sprache.",
["pagelang "] = "pagelang",
["pagelang_descr "] = "Sprache der Seite.",
["userlang "] = "userlang",
userlang_descr ["uruserlang_descri"] = "Lesersprache der Seite.",
--
QITEM["uri"] = 'QITEMuri',
uri ["QITEM"] = 'uriQITEM',
["QITEM_descr "] = "Name der Wikidata-Daten wie <code>Q535</code> für Victor Hugo.",
["itemid "] = 'itemid',
["itemid_descr "] = "Name der Wikidata-Daten wie <code>Q535</code> für Victor Hugo.",
["itemid2 "] = 'iditemid',
["itemid2_descr "] = "Name der Wikidata-Daten wie <code>Q535</code> für Victor Hugo.",
["debug "] = 'debug',
["category "] = 'Kategorie',
["mode "] = "modo",
["mode_descr "] = "Art der Verwendung des Moduls oder Modells: Lesen, Bearbeiten, Dokumentieren, Testen.",
["options "] = 'opciones',
["options_descr "] = "Anzeigeoptionen für ein Modul oder ein Modell.",
["c "] = "c",
["c_descr "] = "Anzeigeoptionen für ein Modul oder ein Modell.",
["knownversions "] = "knownversions",
["knownversions_descr "] = "Bekannte Versionen, um mit ihnen umzugehen.",
["soughtversions "] = "soughtversions",
["soughtversions_descr "] = "Verlangen Sie Versionen, um mit ihnen umzugehen.",
modes_form_ok_categ_tests = "Testkategoriegenerierung OK",
--
Ligne 4 966 ⟶ 4 944 :
modes_namespaces_page_list_title = "modes.namespaces_page_list() Module, Namespaces und Seitennamen:",
modes_args_known_report_title = "modes.args_known_report(t) Bericht der wichtigsten bekannten Argumente.",
modes_args_known_report_headers = "Schlüssel Wert tippen Sie ein; notwendig Schlüsselwort Synonyme; Eigentum; Standard; Format; Brunnen",
modes_get_args_report_title = "modes.get_args() Werte der Argumente in p.args_known{}.", -- es
} -- modes.i18n.de
Ligne 4 979 ⟶ 4 957 :
[4] = "4",
["modules_guide"] = "Argument modules_guide",
["label "] = 'label',
["label_descr "] = "Automatic Wikidata argument.",
["sitelink "] = 'sitelink',
["sitelink_descr "] = "Automatic Wikidata argument.",
-- Languages
["contentlang "] = "contentlang",
["contentlang_descr "] = "Language of the wiki.",
["pagelang "] = "pagelang",
["pagelang_descr "] = "Language of the page.",
["userlang "] = "userlang",
["userlang_descr "] = "Language of the page reader.",
--
QITEM["uri"] = 'QITEMuri',
uri ["QITEM"] = 'uriQITEM',
["QITEM_descr "] = "Wikidata data identifier, like <code>Q535</code> for Victor Hugo.",
["itemid "] = 'itemid',
["itemid_descr "] = "Wikidata data identifier, like <code>Q535</code> for Victor Hugo.",
["itemid2 "] = 'id',
["itemid2_descr "] = "Wikidata data identifier, like <code>Q535</code> for Victor Hugo.",
["debug "] = 'debug',
["category "] = 'Category',
["mode "] = "mode",
["mode_descr "] = "Type of use of the module or template: read, edit, document, test.",
["options "] = "options",
["options_descr "] = "Display options of a module or a model.",
["c "] = "c",
["c_descr "] = "Display options of a module or a model.",
["knownversions "] = "knownversions",
["knownversions_descr "] = "Known versions, to manage them.",
["soughtversions "] = "soughtversions",
["soughtversions_descr "] = "Sought versions, to manage them.",
modes_used_options_list_title = "modes.used_options_list() Use of options:",
modes_options_uses_tests_title = "modes.options_from_mode_tests() Options uses and short test",
Ligne 5 080 ⟶ 5 058 :
modes_namespaces_page_list_title = "modes.namespaces_page_list() Module, namespaces, and page names:",
modes_args_known_report_title = "modes.args_known_report(t) Report of main known args.",
modes_args_known_report_headers = "keykeyword; valvalue; type; need; keyword; syn; propproperty; by default; format; source",
modes_get_args_report_title = "modes.get_args() Values of the arguments in p.args_known{}.", -- en
} -- modes.i18n.en
Ligne 5 091 ⟶ 5 069 :
[4] = "4",
["modules_guide"] = "Argument modules_guide",
["label "] = 'label',
["label_descr "] = "Wikidata automática argumento.",
["sitelink "] = 'sitelink',
["sitelink_descr "] = "Wikidata automática argumento.",
-- Languages
["contentlang "] = "contentlang",
["contentlang_descr "] = "Idioma del wiki.",
["pagelang "] = "pagelang",
["pagelang_descr "] = "Idioma de la página.",
["userlang "] = "userlang",
["userlang_descr "] = "Idioma del lector de la página.",
--
QITEM["uri"] = 'QITEMuri',
uri ["QITEM"] = 'uriQITEM',
["QITEM_descr "] = "Nombre de los datos Wikidata, como <code>Q535</code> para Victor Hugo.",
["itemid "] = 'itemid',
["itemid_descr "] = "Nombre de los datos Wikidata, como <code>Q535</code> para Victor Hugo.",
["itemid2 "] = 'id',
["itemid2_descr "] = "Nombre de los datos Wikidata, como <code>Q535</code> para Victor Hugo.",
["debug "] = 'debug',
["category "] = 'Categoría',
["mode "] = "modo",
["mode_descr "] = "Tipo de uso del módulo o modelo: leer, editar, documentar, probar.",
["options "] = 'opciones',
["options_descr "] = "Opciones de visualización de un módulo o un modelo.",
["c "] = "c",
["c_descr "] = "Opciones de visualización de un módulo o un modelo.",
["knownversions "] = "knownversions",
["knownversions_descr "] = "Conocidas versiones, para manejarlos.",
["soughtversions "] = "soughtversions",
["soughtversions_descr "] = "Versiones demanda, para manejarlos.",
modes_form_ok_categ_tests = "Prueba generación categoría en OK",
--
Ligne 5 191 ⟶ 5 169 :
modes_namespaces_page_list_title = "modes.namespaces_page_list() Módulo, namespaces, y nombres de páginas:",
modes_args_known_report_title = "modes.args_known_report(t) Informe de los principales argumentos conocidos.",
modes_args_known_report_headers = "clave; valor; tipo; necesario; palabra clave; sinónimos; propiedad; por defecto; formato; fuente",
modes_get_args_report_title = "modes.get_args() Valores de los argumentos en p.args_known{}.", -- es
} -- modes.i18n.es
Ligne 5 202 ⟶ 5 180 :
[4] = "4",
["modules_guide"] = "Argument modules_guide",
["label "] = 'label',
["label_descr "] = "Argument automatique de Wikidata.",
["sitelink "] = 'sitelink',
["sitelink_descr "] = "Argument automatique de Wikidata.",
-- Languages
["contentlang "] = "contentlang",
["contentlang_descr "] = "Langue du wiki.",
["pagelang "] = "pagelang",
["pagelang_descr "] = "Langue de la page.",
["userlang "] = "userlang",
["userlang_descr "] = "Language du lecteur de la page.",
--
QITEM["uri"] = 'QITEMuri',
uri ["QITEM"] = 'uriQITEM',
["itemid "] = 'itemid',
["itemid_descr "] = "Identifiant des données de Wikidata, comme <code>Q535</code> pour Victor Hugo.",
["itemid2 "] = 'id',
["itemid2_descr "] = "Autre identifiant des données de Wikidata, comme <code>Q535</code> pour Victor Hugo.",
["debug "] = 'debug',
["category "] = 'Catégorie',
["mode "] = "mode",
["mode_descr "] = "Type d'utilisation du module ou du modèle : lire, éditer, documenter, tester.",
["options "] = "options",
["options_descr "] = "Options d'affichage d'un module ou d'un modèle.",
["c "] = "c",
["c_descr "] = "Options d'affichage d'un module ou d'un modèle.",
["knownversions "] = "knownversions",
["knownversions_descr "] = "Versions connues, pour les gérer.",
["soughtversions "] = "soughtversions",
["soughtversions_descr "] = "Versions demandées, pour les gérer.",
modes_form_ok_categ_tests = "Test de génération de catégorie OK",
-- Principaux textes, erreurs et catégories des outils
Ligne 5 302 ⟶ 5 280 :
modes_namespaces_page_list_title = "modes.namespaces_page_list() Module, namespaces, et noms de pages :",
modes_args_known_report_title = "modes.args_known_report(t) Rapport des principaux arguments connus.",
modes_args_known_report_headers = "clé; valeur; type; nécessaire; mot-clé; synonyme; propriété; par défault; format; source",
modes_get_args_report_title = "modes.get_args() Valeurs des argument dans p.args_known{}.", -- fr
} -- modes.i18n.fr
Ligne 5 313 ⟶ 5 291 :
[4] = "4",
["modules_guide"] = "Argument modules_guide",
["label "] = 'label',
["label_descr "] = "Automatikus Wikidata argumentum.",
["sitelink "] = 'sitelink',
["sitelink_descr "] = "Automatikus Wikidata argumentum.",
-- Languages
["contentlang "] = "contentlang",
["contentlang_descr "] = "Wiki nyelv.",
["pagelang "] = "pagelang",
["pagelang_descr "] = "Az oldal nyelve.",
["userlang "] = "userlang",
["userlang_descr "] = "Az oldal olvasó nyelve.",
--
QITEM["uri"] = 'QITEMuri',
uri ["QITEM"] = 'uriQITEM',
["QITEM_descr "] = "Wikidata adatok neve, például Victor Hugo kódja <code>Q535</code>.",
["itemid "] = 'itemid',
["itemid_descr "] = "Wikidata adatok neve, például Victor Hugo kódja <code>Q535</code>.",
["itemid2 "] = 'id',
["itemid2_descr "] = "Wikidata adatok neve, például Victor Hugo kódja <code>Q535</code>.",
["debug "] = 'debug',
["category "] = 'kategória',
["mode "] = "modo",
["mode_descr "] = "A modul vagy modell használata: olvasás, szerkesztés, dokumentum, tesztelés.",
["options "] = 'opciones',
["options_descr "] = "Egy modul vagy modell megjelenítési lehetőségei.",
["c "] = "c",
["c_descr "] = "Egy modul vagy modell megjelenítési lehetőségei.",
["knownversions "] = "knownversions",
["knownversions_descr "] = "Jól ismert verziók, kezelni őket.",
["soughtversions "] = "soughtversions",
["soughtversions_descr "] = "Kérjen változatokat, kezelni őket.",
-- Textos principales, errores y categorías de instrumentos
modes_form_ok_categ_tests = "OK kategória-generációs teszt",
Ligne 5 414 ⟶ 5 392 :
modes_namespaces_page_list_title = "modes.namespaces_page_list() Modul, névterek és oldalnevek:",
modes_args_known_report_title = "modes.args_known_report(t) A legfontosabb ismert érvekről szóló jelentés.",
modes_args_known_report_headers = "kulcskulcsszó; érték; írjatípus; szükségesszükség; kulcsszó; fordításaszin; tulajdoningatlan; alapértelmezés szerint; formátumbanformátum; forrás",
modes_get_args_report_title = "modes.get_args() Az érvek értékei p.args_known{}.", -- es
} -- modes.i18n.hu
Ligne 5 425 ⟶ 5 403 :
[4] = "4",
["modules_guide"] = "Argument modules_guide",
["label "] = 'label',
["label_descr "] = "Đối số tự động để Wikidata.",
["sitelink "] = 'sitelink',
["sitelink_descr "] = "Đối số tự động để Wikidata.",
-- Languages
["contentlang "] = "contentlang",
["contentlang_descr "] = "Ngôn ngữ wiki.",
["pagelang "] = "pagelang",
["pagelang_descr "] = "Ngôn ngữ trang.",
["userlang "] = "userlang",
["userlang_descr "] = "Ngôn ngữ để người đọc trang.",
--
QITEM["uri"] = 'QITEMuri',
uri ["QITEM"] = 'uriQITEM',
["QITEM_descr"] = "Định danh dữ liệu Wikidata, chẳng hạn như <code>Q535</code> để Victor Hugo.",
itemid = 'itemid',
["itemid"] = 'itemid',
itemid_descr = "Định danh dữ liệu Wikidata, chẳng hạn như <code>Q535</code> để Victor Hugo.",
["itemid_descr"] = "Định danh dữ liệu Wikidata, chẳng hạn như <code>Q535</code> để Victor Hugo.",
itemid2 = 'id',
["itemid2"] = 'id',
itemid2_descr = "Số nhận dạng khác để dữ liệu Wikidata, chẳng hạn như <code>Q535</code> để Victor Hugo.",
["itemid2_descr"] = "Số nhận dạng khác để dữ liệu Wikidata, chẳng hạn như <code>Q535</code> để Victor Hugo.",
debug = 'gỡ lỗi',
category["debug"] = 'Loạigỡ lỗi',
mode ["category"] = "mode"'Loại',
mode_descr["mode"] = "mode",
["mode_descr"] = "Loại sử dụng mô-đun hoặc mô hình: đọc, chỉnh sửa, tài liệu, kiểm tra.",
["options "] = "options",
["options_descr "] = "Hiển thị tùy chọn mô-đun hoặc mô hình.",
["c "] = "c",
["c_descr "] = "Hiển thị tùy chọn mô-đun hoặc mô hình.",
["knownversions "] = "knownversions",
["knownversions_descr "] = "Các phiên bản đã biết, để quản lý chúng.",
["soughtversions "] = "soughtversions",
["soughtversions_descr "] = "Các phiên bản được yêu cầu, để quản lý chúng.",
-- Principaux textes, erreurs et catégories des outils
["language "] = 'langue',
-- Messages et erreurs divers
modes_used_options_list_title = "modes.used_options_list() Sử dụng các tùy chọn:",
Ligne 5 523 ⟶ 5 502 :
modes_recursive_normal_tests_title = "modes.recursive_normal() Kiểm tra: Bình thường hóa mức đệ quy và giới hạn đệ quy",
modes_namespaces_page_list_title = "modes.namespaces_page_list() Mô-đun, namespaces, và tên trang:",
modes_args_known_report_titlemodes_args_known_report_headers = "modesmodestừ khóa; giá trị; kiểu; nhu cầu; từ khóa; đồng bộ; bất động sản; theo mặc định; định dạng; nguồn.args_known_report(t) Báo cáo để các đối số được biết đến chính.",
modes_args_known_report_title = "Báo cáo Từ dữ liệu ngay mw.wikibase",
modes_args_known_report_headers = "chính; giá trị; loại; cần thiết; từ khóa; đồng nghĩa; bất động sản; định dạng; nguồn",
modes_get_args_report_title = "modes.get_args() Giá trị để các đối số trong p.args_known{}.",
} -- modes.i18n.vi
Ligne 5 533 ⟶ 5 512 :
 
modes.options_for_modes = { -- default options_for_modes
["read"] = " box1 ",
["edit"] = " box1 docdef docline docsrc docdata catview docview : ",
["doc"] = " nobox1 noerr nocatview ",
["tests"] = " box1 docdef docline docsrc docdata catview docview : tests ",
-- List of parameters for module documentation
-- "docview" or ":" add the documentation panel
Ligne 5 556 ⟶ 5 535 :
modes.available_options = "" -- table to collect all available options, at any time.
modes.used_options = {} -- table to collect really or tested options then list them at end of tests.
 
mathroman.args_known = { -- Table of the definitions of all known arguments at module level.
-- Arguments in order without names, with their keyword for use as other arguments.
[1] = {need = 0, syn = 2, keyword = "mode"},
-- Special arguments to modify the fonctions and outputs of this module.
mode = {typ = "config", need = 0, keyword = "mode"},
c = {typ = "config", need = 0, keyword = "c"},
options = {typ = "config", need = 0, keyword = "options"},
-- The userlang argument permits at an administrator in his own langage (errors, warnings, catégories, tests) to help a wiki in any language.
contentlang = {typ = "config", need = 1, keyword = "contentlang"},
pagelang = {typ = "config", need = 2, keyword = "pagelang"},
userlang = {typ = "config", need = 0, keyword = "userlang"},
birthyear = {typ = "dat", need = 0, keyword = "birthyear", prop = "P569", format = "year"},
}
 
function modes.bind_args_known_props(args_known, args_new) -- Bind known args and their properties for central libraries. Later for modules.
Ligne 5 906 ⟶ 5 871 :
end -- function modes.levenshtein(word1, word2)
 
function modes.levenshtein_similar_tests(t) -- Tests of modes.words_to_diffmaxi_limit(10, t .. "diffmaxi = ")
local memo = viewers.save_configs("modes.levenshtein_similar_tests") -- Save global configuration before eventual changes.
local t = t or ("\n* " .. viewers.form9user("modes_max_nearest_argument_msg") ) -- "A longer name argument accepts more letter errors."
t = t .. "\n* " .. "A formula computes the near words limit: diffmaxi = math.floor( 0.30 * length + 0.82 ) "
local diffmaxi, errors, key, argsyn, arglingual, txt = 0, ""
t = t .. "\n* List of diffmaxi = formula( <b>length</b> ) : "
for i = 0, 20 do -- Formula diffmaxi = modes.diffmaxi_for_diff(diff_size)
-- local diffmaxi, limit = function modes.words_to_diffmaxi_limit(word1, word2) -- Reports the diffmaxi and the limit
diffmaxi = modes.diffmaxi_for_diff(i)
local diffmaxi, limit
for i = 1, 10 do -- function modes.words_to_diffmaxi_limit(
diffmaxi, limit = modes.words_to_diffmaxi_limit( string.sub("azertyuiopqsdfghjklm", 1, i), "a") -- Format a string from the formula
modes.length_from_i[i] = diffmaxi
t = t .. viewers.ta(tostring(i), diffmaxi)
end
Ligne 5 944 ⟶ 5 906 :
test_group = group_test,
title_memo = "modes.recursive_normal() Test: Normalize the recursive level and the recursive limit",
headers = "try; correct; diffmaxiLevenshtein distance; limitdiffmaxi; error", -- Test Normalize recursiveLevel and recursive_limit
headers_class = "wikitable alternative center sortable",
modes_nearest_argument_err = "Error: Do you need the known argument <b>%1</b> ?",
Ligne 5 951 ⟶ 5 913 :
case.try_length = string.len(case.try)
case.correct_length = string.len(case.correct)
case.diffmaxi, case.limitdiff_size = modes.words_to_diffmaxi_limit( case.try, case.correct) -- Format a string from the formula
if case.diff_size > case.diffmaxi then case.error = viewers.usual_color(case.try, "error") end
-- case.diffmaxi = modes.levenshtein(word1, word2) -- Compute the Levenshtein distance between 2 ASCII words.
-- return { case.difftry, =case.correct, modescase.words_to_diffmaxi_limit(diff_size, case.trydiffmaxi, case.correct)error }
if case.diffmaxi > case.limit then case.error = viewers.usual_color(case.try, "error") end
return { case.try, case.correct, case.diffmaxi, case.limit, case.error }
end,
rowGroup = {},
Ligne 5 972 ⟶ 5 932 :
modes.constants.near_word_search_diff_coef = 0.30 -- Access to change these constants from anywhere.
modes.constants.near_word_search_diff_const = 0.82
 
function modes.diffmaxi_for_diff(diff_size) -- Formula diffmaxi = modes.diffmaxi_for_diff(diff_size)
local coef = modes.constants.near_word_search_diff_coef or 0.30
local constant = modes.constants.near_word_search_diff_const or 0.82
local length = diff_size
local diffmaxi = math.floor( coef * length + constant )
return diffmaxi
end
 
-- Maximum number of different letters between 2 argument names
Ligne 5 981 ⟶ 5 949 :
local word1 = tostring(word1)
local word2 = tostring(word2)
local diffmaxidiff_size = modes.levenshtein(word1, word2) -- Compute the Levenshtein distance between 2 ASCII words.
local coefdiffmaxi = modes.constants.near_word_search_diff_coef or 0.30diffmaxi_for_diff(diff_size)
-- local length = string.len(word1)
local constant = modes.constants.near_word_search_diff_const or 0.82
-- local lengthlimit = stringmath.lenfloor(word1 coef * length + constant )
local limit = math.floor( coef * length + constant )
if type(word1) == "string" then word1 = word1 .. tostring(coef) .. " * length + " .. tostring(constant) else word1 = "" end
return diffmaxi, limitdiff_size
end -- local diffmaxi, limitdiff_size = function modes.words_to_diffmaxi_limit(word1, word2) -- Reports the diffmaxi and the limit
 
-- For an unknown argument, seeks the name of the closest among the known arguments translated
Ligne 6 123 ⟶ 6 090 :
local memo = viewers.save_configs("modes.multiple_selection_tests") -- Save global configuration before eventual changes.
local t = (t or "") .. "\n* <b>multiple_selection</b> options: " .. viewers.ta("=", "equal only") .. viewers.ta("t", "not trim before and after") .. viewers.ta("U", "not lowercase and uppercase")
--[[
local function multiple_selection_test1(t, opt, selector, to_select)
local selected_txt, selected_tab, txt = modes.multiple_selection(opt, selector, to_select)
local t = t .. viewers.table_row() .. viewers.table_dat(opt) .. viewers.table_dat(selector) .. viewers.table_dat(to_select) .. viewers.table_dat( txt .. viewers.ta("selected_txt", selected_txt) )
return t, opt, selector, to_select -- , selected_txt, selected_tab
end
--]]
local opt = "; "
t = t .. "\n: selector = <b>nobel,+1,président,3,député,prix</b> signifie : sélectionner le premier, puis 1 de plus parmi les suivants, puis 3 en tout au maximum."
Ligne 6 265 ⟶ 6 225 :
rowGroup = {},
form_one_case = function(case) -- Convert a case from test_group to rowGroup.
return { case.key, case.val or "-", case.typ, case.need, case.keyword, case.syn, case.prop, case.prop_default, case.format, case.src or "-", }
end,
title_memo = "modes_get_args_report_title", -- "modes.get_args() Values of the arguments in p.args_known{}.", -- en
Ligne 6 285 ⟶ 6 245 :
end -- t = t .. modes.get_args_report(t) -- Update modes.get_args()=args_known
 
function modes.mix_args(mix, mode_name, args_template) -- Mix arguments from options_for_modes, args_template S170710mix
local mix = mix or {}
modes.mix = mix
Ligne 6 317 ⟶ 6 277 :
end -- local mix = modes.mix_modes(mix, mode_name, args_template)
 
function modes.mix_options(mix, old_group, new_group) -- Mix 2 groups of options from diverse origins S170710mix
mix = mix or {}
if (type(old_group) ~= "string") then old_group = "" end
Ligne 6 343 ⟶ 6 303 :
mix.no_options = table.concat(no_options_tab, " ")
return mix
end -- active_options = modes.mix_options(old_group, new_group) -- S170710mix
 
function modes.init_args_mode_options(mix, mode_name, args_template) -- Imports and mixes args mode and options from template and invoke
Ligne 6 358 ⟶ 6 318 :
-- Once run mix_args and mix_modes, in case a mode option would change the mode.
mix = modes.mix_args(mix, mode_name, args_template) -- Mix arguments from options_for_modes, args_template
mix = modes.mix_modes(mix, mode_name, args_template) -- Mix some modes from several origins S170710mix
modes.options = modes.options_for_modes[modes.mode_name] -- options from mode
--
-- Once repeat mix_args and mix_modes, in case the mode changes through them.
mix = modes.mix_args(mix, mode_name, args_template) -- Mix arguments from options_for_modes, args_template
mix = modes.mix_modes(mix, mode_name, args_template) -- Mix some modes from several origins S170710mix
modes.options = modes.options_for_modes[modes.mode_name] -- options from mode
mix = modes.mix_options(mix, modes.options, modes.args_template.options ) -- Mix options from template
Ligne 6 625 ⟶ 6 585 :
-- events.add_err("versions_module_miss_i18n_trad_err", key_known)
-- Generate a category to list all modules with missing translation
cats = cats .. events.add_cat( "versions_err_module_miss_i18n_cat" )
end
key_N = tonumber(key_known_init)
Ligne 6 650 ⟶ 6 610 :
if argm.found and (argm.found > 2) then
events.add_err("modes_value_re_defined_err", (argm["keyword"] or "**") ) --.. ">2")
cats = cats .. events.add_cat("versions_with_usage_error_cat")
end
else
if argm.found and (argm.found > 1) then
events.add_err("modes_value_re_defined_err", (argm["keyword"] or "**") ) --.. ">1")
cats = cats .. events.add_cat("versions_with_usage_error_cat")
end
end
Ligne 6 666 ⟶ 6 626 :
if arglingual then
events.add_err("modes_need_arg_value_err", arglingual)
cats = cats .. events.add_cat("versions_with_usage_error_cat")
end
end
Ligne 6 679 ⟶ 6 639 :
if not key_N then
events.add_err("modes_unknown_argument_err", arglingual, val_src)
cats = cats .. events.add_cat("versions_with_usage_error_cat")
-- "Error: parameter <b>%1</b> is unknown in this template. Check the name or flag this gap.",
-- Look for a known and similar name argument
Ligne 8 215 ⟶ 8 175 :
ARGS.add(ARGS, 1, "versions.init before import_arguments") -- ARGS.t
-- res = res .. langs.init_content_page_user_lang() -- content_lang, page_lang, user_lang, "versions.init")
local mix = mix or {}
modes.mix = modes.init_args_mode_options(mix, mode_name, args_template) -- Before args_known : Import and mix args mode and options -- S170710mix
-- ["QITEM"] = { ["typ"] = "dat", ["need"] = 0, ["keyword"] = "QITEM", ["prop"] = "QITEM", prop_default = "Q34743", },
local args_known = args_known or modes.args_known or p.args_known or {}
Ligne 8 224 ⟶ 8 185 :
end
end
modes.mix = modes.init_args_mode_options(mix, mode_name, args_template) -- And after args_known : Import and mix args mode and options
local mix = mix or {}
modes.mix = mix -- To easy get, track and test the init_args_mode_options process
local mix = modes.init_args_mode_options(mix, mode_name, args_template) -- S170703amo MAMO.t
-- res = res .. langs.init_content_page_user_lang() -- content_lang, page_lang, user_lang, "versions.init")
langs.main_i18n_complete = true -- Unmask all views after enough init.
Ligne 9 249 ⟶ 9 208 :
function viewers.phab_task(task, comment) -- Forms a link to a Phabricator task.
local t = "" -- example: "[[phab:T135845|T135845 Convert]]"
if ( type(task) ~= "string" ) then task = "" end
if ( type(comment) ~= "string" ) then comment = "" end
-- The task id is a string with "T" and a number. We check this syntax:
if ( type(task) == "string" ) and ( string.find("T", "%s", 1, true) == 1 ) and tonumber( string.sub( s, 2, -1 ) ) then task = task else task = "T000" end
t = "[[phab:" .. task .. "|" .. task .. " " .. comment .. "]]"
return t -- replace anywhere : "[[phab:" by "viewers.phab_task(task, comment)" then update all
end -- t = t .. ;viewers.phab_task(task, comment) -- Forms a link to a Phabricator task.
Ligne 10 283 ⟶ 10 243 :
--
if not mask_sections then res = res .. viewers.doc_section(selector, "Library:datas", "h3") end -- .get_item(
res = res .. drop_box.new(selector, "datas.get_item() Report datas from mw.wikibase **modes_args_known_report_title", datas.get_item_report)
-- res = res .. drop_box.new(selector, "datas_update_Special_PageData_title", datas.update_PageData)
--
-- if not mask_sections then res = res .. viewers.doc_section(selector, "Library:events", "h3") end
-- function events.all_kinds_test(t) -- Test: all kinds of events (err, wng, cat)
-- res = res .. drop_box.new(selector, "events_all_kinds_tests_title", events.all_kinds_test) -- 5 empty rows
-- res = res .. drop_box.new(selector, "langs_selectLang_tests_title", langs.select_lang_test) -- lang %1 %2 %3
--
if not mask_sections then res = res .. viewers.doc_section(selector, "Library:langs", "h3") end
Ligne 10 319 ⟶ 10 279 :
if not mask_sections then res = res .. viewers.doc_section(selector, "Library:modes", "h3") end -- function viewers.doc_section(
-- if not mask_sections then res = res .. viewers.doc_section(selector, "viewers_section_title_library_modes", "h3") end
-- res = res .. drop_box.new(selector, "datas.get_item() Report datas from mw.wikibase **", datas.get_item_report)
-- res = res .. drop_box.new(selector, "modes_args_known_report_title", modes.args_known_report)
res = res .. drop_box.new(selector, "modes_get_args_report_title", modes.get_args_report)
Ligne 10 408 ⟶ 10 367 :
 
p.options_for_modes = { -- module options_for_modes
["read"] = " box1 catview ",
["doc"] = " nobox1 noerr nocatview ",
["edit"] = " box1 catview docdef docline docsrc docdata docview : ",
["tests"] = " box1 catview docdef docline docsrc docdata docview : tests ",
}
 
Ligne 10 417 ⟶ 10 376 :
local res = ""
local memo = viewers.init_configs("p.form_result") -- Initialize global configurations and save them before eventual changes.
datas.default_item = datas.default_item or "Q307Q34743" -- KeepRudyard Galilée (Q307)Kipling
main_module = main_module or versions.main_module
if type(args_final) ~= "table" then args_final = modes.args_final end -- optional arguments
res = res .. viewers.ta("modes.mode_name", modes.mode_name) .. viewers.ta("modes.options", modes.options)
if modes.option("box1") then res = res .. p.box_read(props) end -- ric (p.box_read)
if modes.option("box1") or modes.option("catview")
then res = res .. " catview = " .. events.categories_lister(":") end -- Display categories
Ligne 10 897 ⟶ 10 856 :
-- - - - ------------------ - - - - ---------------------------------
 
p.args_known = { -- Table of the definitions of all known arguments at module level. -- ric (p.box_read)
 
-- Arguments in order without names, with their keyword for use as other arguments.
Ligne 10 915 ⟶ 10 874 :
["c"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "c"},
["docfunc"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "docfunc"},
["docitem"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "docitem"},
["dockey"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "dockey"},
["itemid"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "itemid"}, -- Property:P2959 points to a double of the item.
Ligne 10 978 ⟶ 10 936 :
["labelbylang"] = { ["typ"] = "dat", ["need"] = 0, ["keyword"] = "labelbylang",["prop"] = "labelbylang", },
["QITEM"] = { ["typ"] = "dat", ["need"] = 0, ["keyword"] = "QITEM", ["prop"] = "QITEM", ["prop_default"] = "Q307", }, -- Galilée
["itemid"] = { ["typ"] = "dat", ["need"] = 0, ["keyword"] = "itemid", ["prop"] = "itemid", ["prop_default"] = "Q307", }, -- Galilée
-- Galilée (Q307), Victor Hugo (Q535), Aristote (Q868), Albert Einstein (Q937), Mohandas Karamchand Gandhi (Q1001), Christophe Colomb (Q7322),
-- Nelson Mandela (Q8023), Rudyard Kipling (Q34743), Martin Fleischmann (Q899264), Emmanuel Macron (Q3052772)
Ligne 11 028 ⟶ 10 987 :
langs.init_content_page_user_lang(modes.args_source.contentlang, modes.args_source.pagelang, modes.args_source.userlang)
-- res = res .. "<center><small>" .. viewers.discreet_main_version() .. viewers.ta("contentlang", langs.content_lang) .. viewers.ta("pagelang", langs.page_lang) .. viewers.ta("userlang", langs.user_lang)
res = res .. "<small>(box_edit)</small> <center>" .. viewers.discreet_main_version() .. viewers.ta("content", langs.content_lang) .. viewers.ta("page", langs.page_lang) .. viewers.ta("user", langs.user_lang)
res = res .. " - [https://fr.wikisource.org/wiki/MediaWiki:Scribunto/Central_modules_reference_manual User manual]"
res = res .. "viewers.phab_task('T135845', 'Convert') .. "-*-" .. viewers.phab_task('T135845T198107', 'ConvertBegin to use') .. " </center>"
res = res .. " - viewers.phab_task('T198107', 'Begin to use')" .. "</center>"
res = res .. viewers.styles_color_error("<center><b>" .. viewers.form9user("modes_delete_docbox_wng") .. "</b><br/></center>")
res = res .. drop_box.form(drop_box.new_title(), versions.form_support_desk_report() )
Ligne 11 083 ⟶ 11 041 :
end -- local one_composite box = viewers.boxviews(datas, main_options)
 
function p.box_read(prop, title) -- Draw the main box one. -- ric (p.box_read)
-- Galilée (Q307), Victor Hugo (Q535), Aristote (Q868), Albert Einstein (Q937), Mohandas Karamchand Gandhi (Q1001), Christophe Colomb (Q7322),
-- Nelson Mandela (Q8023), Rudyard Kipling (Q34743), Martin Fleischmann (Q899264), Emmanuel Macron (Q3052772)
Ligne 11 091 ⟶ 11 049 :
langs.init_content_page_user_lang() -- function langs.init_content_page_user_lang()
local prop = datas.prop
local res = "<small>(p.box_read)</small> "
local flag = viewers.form_image("Flag_of_England.svg", 50)
-- local flag = viewers.form_image(viewers.form9user("flag_of_country"), 50)
Ligne 11 098 ⟶ 11 056 :
-- args_known_monument = "St_Pauls_aerial_%28cropped%29.jpg", -- English St Paul's Cathedral
-- args_known_town = "London", -- English
-- clé valeur type nécessaire mot-clé synonyme propriété par défault format source
local image = viewers.form_image(prop.image, 50)
-- image nil dat 0 image 0 P18
local image = viewers.form_image(prop["image"]["val"], 50)
local birthyear_deathyear = " ( " .. (prop.birthyear or "birthyear") .. " - " .. (prop.deathyear or "deathyear") .. " ) "
local phabtask = " - [[d:" .. QITEM .. "|Datas]] "
Ligne 11 150 ⟶ 11 110 :
end
--
if a.docfunc then a.docfunc = mw.text.trim(a.docfunc) end -- dockey docitem args_known = { i18n.vi
if a.docitemdockey then a.docitemdockey = mw.text.trim(a.docitemdockey) end -- dockey docitem args_known = { i18n.vi
if a.dockey then a.dockey = mw.text.trim(a.dockey) end -- dockey docitem args_known = { i18n.vi
if not a.QITEM then -- The Title can come from several arguments to insure it.
i.QITEM = a.label or modes.main_title or a.QITEM or a.itemid or a.title
Ligne 11 244 ⟶ 11 203 :
res = res .. modes.init_modes_translate_events(frame, Central_version, mode_name, modes.args_known, options_for_modes, QITEM or itemid)
datas.props = datas.get_item(args_known, QITEM) -- Get datas from mw.wikibase for the page.
modes.init_args_mode_options(mix, mode_name, modes.args_template) -- Import and mix args mode and options from template and invoke -- S170710mix
modes.args_import = modes.import_arguments(args_known, args_source, content_translations, args_wikidata) -- function modes.import_arguments()
modes.args_final = p.interact_args_final(modes.args_import) -- Interactions between arguments
Ligne 11 278 ⟶ 11 237 :
 
-- ["docfunc"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "docfunc"},
-- ["docitem"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "docitem"},
-- ["dockey"] = { ["typ"] = "config", ["need"] = 0, ["keyword"] = "dockey"},
function Central.doc(frame) -- Formats a documentation or a test in a drop_box.
Ligne 11 287 ⟶ 11 245 :
modes.args_final = p.interact_args_final(modes.args_import) -- Interactions between argumensts
-- {{Central|doc|versions_support_desk_title}}
local docfunc = modes.args_final.docfunc or modes.args_final[3] or modes.args_import.docitem or modes.args_import[3]
local docitem = modes.args_final.docitem or modes.args_final[2] or modes.args_import.docitem or modes.args_import[2] or datas.default_item
local dockey = modes.args_final.dockey or modes.args_final[1] or modes.args_import.dockey or modes.args_import[1]
local QITEM = modes.args_final.QITEM or modes.args_final.docitem or docitemitemid
QITEM = mw.text.trim(QITEM) -- clean spaces in each name
if dockey then
Ligne 11 448 ⟶ 11 405 :
{ site = "fr.wikisource", verstime = "2018-10-04T01:30:09", versid = "1.32.0-wmf.24 (4f66a3b)", seen_time = "2018-10-05T09:28:00", },
{ site = "fr.wikisource", verstime = "2018-10-10T01:44:27", versid = "1.32.0-wmf.24 (9291e40)", seen_time = "2018-10-10T20:26:00", },
{ site = "fr.wikisource", verstime = "2018-10-16T13:30:15", versid = "1.32.0-wmf.24 (35fb3b6)", seen_time = "2018-10-16T20:50:00", },
{ site = "fr.wikisource", verstime = "2018-10-18T22:57:44", versid = "1.32.0-wmf.24 (35fb3b6)", seen_time = "2018-10-17T06:30:00", },
{ site = "fr.wikisource", verstime = "2018-10-20T22:57:44", versid = "1.32.0-wmf.26 (06a4ac1)", seen_time = "2018-10-21T19:22:00", },
-- { site = "fr.wikisource", verstime = "2018-10-23T22:57:44", versid = "1.33.0-wmf.1 (06a4ac1)", seen_time = "2019-02-24T19:22:00", },
} -- MWMW
versions.MediaWiki_version_memo = "1.32.0-wmf.2426 (9291e4006a4ac1)"
versions.MediaWiki_Versions_sort = "<" -- First on end, Last on begin
versions.MediaWiki_Versions_sort = ">" -- First on begin, Last on end
Ligne 11 456 ⟶ 11 417 :
function viewers.doc_group(selector, mask_sections) -- Formats all or any documentations of tests and reports. -- snaks tst
local res = ""
res = res .. drop_box.new(selector, "versions_bind_arguments_tests_title", versions.bind_arguments_tests)
res = res .. viewers.doc_section(selector, "Tests of this page", "h2", mask_sections)
-- res = res .. drop_box.new(selector, "modes_args_known_report_titleactivity_report_subtasks_title", modesactivity.args_known_reportcentral_subtasks_report)
res = res .. drop_box.new(selector, "activity_report_subtasks_title", activity.central_subtasks_report)
res = res .. drop_box.new(selector, "datas.get_item() Report datas from mw.wikibase **", datas.get_item_report)
-- res = res .. viewers.doc_section(selector, "viewers_section_title_page", "h2")
-- res = res .. datas.get_item_report() -- datas.get_item() Report datas from mw.wikibase for the page **
res = res .. viewers.doc_page(selector, mask_sections)
res = res .. viewers.doc_module(selector, mask_sections)
res = res .. viewers.doc_internal(selector, mask_sections)
-- res = res .. versions.running_times(false, "")
-- res = res .. datas.get_item_report(t) -- datas.get_item() Report datas from mw.wikibase for the page **
return res
end -- function viewers.doc_group(selector, mask_sections) item: