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

Contenu supprimé Contenu ajouté
Module:Centralizer mathroman.roman2int+int2roman OK 201811214
Module:Centralizer bypass a bug in viewers.doc_section 20181220 OK.lua
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 Module:Centralizer mathromanbypass a bug in viewers.roman2int+mathroman.int2romandoc_section OK20181220 201811214OK.lua
--------------------------------------------------|------------------------ typical length --------------------------|
 
Ligne 10 :
{ "20181206", "20181207", "todo", "Rical", "S181206oTc", 'others: ["Tactic"] = "canbenil;nevererror" ', },
{ "20181205", "20181206", "todo", "Rical", "S181205sad", "split modes.get_mode_args_datas in 2 phases modes.get_args then modes.get_mode_datas" },
{ "20181205", "20181206", "todo", "Rical", "S181205CII", "mix Central.init and modes.get_args and function modes.get_mode_args_datas in function modes.Init_mode_args_datas" },
{ "20181205", "20181206", "todo", "Rical", "S181205mgT", "function modes.get_args_datas_tests(t) Tactic all in one for modes args datas no args_final no origins old" },
{ "20181205", "20181205", "NOW", "Rical", "S181205ust", "Module:Centralizer update subtasks list", },
}
-- FAMLTVQDR Tactic only once steps : Frame Mode-from-Frame Args Libraries Translations Versions QITEM Datas Results
p.teststests = "FAMLTVQDR"
 
p.version = { -- Modules dependencies. Dependencias del módulo. Dépendances du module.
["versionName"] = "Centralizer",
["versionNumber"] = "1.0.0(181214T09181220T09:5007)",
["versionDate"] = "2018-12-14T0920T09:5007:00", -- UTC version structure MWMW
["mainDescription"] = "Begin to use",
["functionDescription"] = "first functional support",
Ligne 1 874 ⟶ 1 877 :
end -- local one_arg = function datas.one_prop(one_arg) -- 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. LVAMQDRFAMLTVQDR
-- from 2016-08-16 ModuleCentral 3a lua_table.to_list.lua
local args_known = args_known or modes.args_known or p.args_known or {} -- optional value from p.args_known = {...}
Ligne 3 964 ⟶ 3 967 :
mathroman_roman2int_tests_headers = "Nombre romain; Valeur décimale; Correct; Erreur(s)",
mathroman_int2roman_test_title = "mathroman.int2roman() Test des nombres décimaux en nombres romains",
mathroman_int2roman_tests_headers = "Nombre décimalromain; Valeurentier romainerésultant; Correctattendu; Erreur(s)Erreurs; raison", -- br fr
mathroman_int_is_not_integer_err = "Le nombre non entier <b>%1</b> n'est pas convertible en nombre romain",
mathroman_int_is_not_number_err = "La valeur <b>%1</b> n'est pas un nombre convertible en nombre romain",
Ligne 3 983 ⟶ 3 986 :
mathroman_roman2int_tests_headers = "Römische Nummer; Dezimalwert; Richtig; Error (s)",
mathroman_int2roman_test_title = "mathroman.int2roman() Test von Dezimalzahlen in römischen Zahlen",
mathroman_int2roman_tests_headers = "DezimalzahlRömische Zahl; Römischerresultierende WertGanzzahl; Richtigerwartet; ErrorFehler; (s)Grund", -- de
mathroman_int_is_not_integer_err = "Das nicht ganzzahlige <b>%1</b> ist nicht in römische Zahl umwandelbar",
mathroman_int_is_not_number_err = "Der Wert <b>%1</b> ist keine Zahl, die in eine römische Zahl umgewandelt werden kann",
Ligne 4 002 ⟶ 4 005 :
mathroman_roman2int_tests_headers = "Roman number; Digital value; Correct; Error(s)",
mathroman_int2roman_test_title = "mathroman.int2roman() Test digital numbers to roman numbers",
mathroman_int2roman_tests_headers = "DigitalRoman number; Romanresulting valueinteger; Correctexpected; Error(s)errors; reason", -- en
mathroman_int_is_not_integer_err = "The not integer number <b>%1</b> is not convertible to Roman numeral",
mathroman_int_is_not_number_err = "The value <b>%1</b> is not a convertible number to Roman numeral",
Ligne 4 021 ⟶ 4 024 :
mathroman_roman2int_tests_headers = "Número romano; Valor digital; Corregido; Error(s)",
mathroman_int2roman_test_title = "mathroman.int2roman() Prueba de números decimales a números romanos",
mathroman_int2roman_tests_headers = "Número decimal,romano; Valorentero romanaresultante; Correctoesperado; Error(es),errores; razón", -- es
mathroman_int_is_not_integer_err = "El no entero <b>%1</b> no se puede convertir en número romano",
mathroman_int_is_not_number_err = "El valor <b>%1</b> no es un número y no se puede convertir en número romano",
Ligne 4 040 ⟶ 4 043 :
mathroman_roman2int_tests_headers = "Nombre romain; Valeur décimale; Correct; Erreur(s)",
mathroman_int2roman_test_title = "mathroman.int2roman() Test des nombres décimaux en nombres romains",
mathroman_int2roman_tests_headers = "Nombre décimalromain; Valeurentier romainerésultant; Correctattendu; Erreur(s)Erreurs; raison", -- br fr
mathroman_int_is_not_integer_err = "Le nombre non entier <b>%1</b> n'est pas convertible en nombre romain",
mathroman_int_is_not_number_err = "La valeur <b>%1</b> n'est pas un nombre convertible en nombre romain",
Ligne 4 059 ⟶ 4 062 :
mathroman_roman2int_tests_headers = "Római szám; Decimális érték; helyes; Hiba (k)",
mathroman_int2roman_test_title = "mathroman.int2roman() A decimális számok vizsgálata római számokban",
mathroman_int2roman_tests_headers = "TizedesRómai szám;, Rómaiennek érték;eredményeként helyes;az Hibaegész (k)szám, a várható, a hibák, az ok", -- hu
mathroman_int_is_not_integer_err = "A nem egész <b>%1</b> nem konvertálható a római számra",
mathroman_int_is_not_number_err = "A <b>%1</b> érték nem egy szám, amely átváltható egy római számra",
Ligne 4 078 ⟶ 4 081 :
mathroman_roman2int_tests_headers = "Số La Mã; Giá trị thập phân; chính xác; Lỗi",
mathroman_int2roman_test_title = "mathroman.int2roman() Kiểm tra các số thập phân trong số La Mã",
mathroman_int2roman_tests_headers = "Số thậpLa phân; Giákết trịquả La số nguyên; chínhdự xáckiến; lỗi; lý do", -- vi
mathroman_int_is_not_integer_err = "Số nguyên <b>%1</b> không thể chuyển đổi thành số La Mã",
mathroman_int_is_not_number_err = "Giá trị <b>%1</b> không phải là số có thể chuyển đổi thành số La Mã",
Ligne 4 203 ⟶ 4 206 :
{ ["int"] = 111, ["expect"] = "CXI", ["reason"] = "Normal 3 digit value" },
{ ["int"] = 1111, ["expect"] = "MCXI", ["reason"] = "Normal 4 digit value" },
{ ["int"] = "19", ["expect"] = "IXX", ["reason"] = "ForbidenConverted string value" }, -- ""
{ ["int"] = 4999, ["expect"] = "MMMMCMXCIX", ["reason"] = "Highter limit of classic roman numbers" },
{ ["int"] = 5000, ["expect"] = "0", ["reason"] = "Smaller too big classic roman numbers" },
Ligne 4 218 ⟶ 4 221 :
local group = {}
for i, one_test in pairs(mathroman.int2romanTests) do -- apply the tests cases
one_test["result"], one_test["errs_rom"] = mathroman.int2roman( tonumber(one_test["int"]) )
one_test["val_int"], one_test["err_int"] = mathroman.roman2int(one_test["result"]) -- DEBUG : function mathroman.roman2int() can fail without blocking page.
one_test["errors"] = one_test["errs_rom"] .. ", " .. one_test["err_int"]
Ligne 4 230 ⟶ 4 233 :
return { case["int"], tostring(case["result"]), tostring(case["expect"]), case["errors"], case["reason"], }
end,
headers = "mathroman_int2roman_tests_headers", -- "Digital number; Roman value; Correct; Error(s)"
headers = "roman input; resulting roman; expected; errors; reason", -- to try
headers = "mathroman_int2roman_tests_headers", -- "roman input; resulting roman; expected; errors; reason"
headers_class = "wikitable alternative center sortable",
rowGroup = {},
Ligne 4 313 ⟶ 4 316 :
-- each test_case defines a name, a function, an input, an output. See also viewers.strTestCase. 6 cases
{ ["rom"] = "-X", ["expect"] = 10, ["reason"] = "Forbiden negative value" },
{ ["rom"] = "0", ["expect"] = 0, ["reason"] = "ForbidenConverted null value" },
{ ["rom"] = "XIA", ["expect"] = 11, ["reason"] = "character A in 3" },
{ ["rom"] = "", ["expect"] = 0, ["reason"] = "empty value" },
Ligne 4 332 ⟶ 4 335 :
local group = {}
for i, one_test in pairs(mathroman.roman2intTests) do -- apply the tests cases
one_test["result"], one_test["err_int"] = mathroman.roman2int( tostring(one_test["rom"]) ) -- DEBUG : function mathroman.roman2int() can fail without blocking page.
one_test["val_rom"], one_test["errs_rom"] = mathroman.int2roman(one_test["result"]) -- DEBUG : function mathroman.roman2int() can fail without blocking page.
one_test["errors"] = one_test["err_int"] .. ", " .. one_test["val_rom"]
Ligne 5 209 ⟶ 5 212 :
-- - - - ------------------ - - - - ---------------------------------
 
modes.options_for_modes = { -- default options_for_modes LVAMQDRFAMLTVQDR
["read"] = " box1 ",
["edit"] = " box1 docdef docline docsrc docdata catview docview : ",
Ligne 6 719 ⟶ 6 722 :
-- { "20181203", "20181204", "todo", "Rical", "S181203mad", "For 'Begin' rename function modes.get_args_datas( to modes.get_mode_args_datas( To simplify Central.init" },
-- function modes.get_mode_args_datas(args_known) -- S181203mad To simplify Central.init S181204SCi
function modes.get_args_datas(args_known) -- Applies the Tatic for (err, wng, cat) S181124Dng LVAMQDRFAMLTVQDR
-- ["QITEM"] = { ["typ"] = "dat", ["keyword"] = "QITEM", ["prop"] = "QITEM", ["prop_default"] = "Q307", }, -- Galilée
-- datas.entity = mw.wikibase.getEntity(datas.QITEM or datas.default_item or "Q34743" ) -- Rudyard Kipling
Ligne 6 801 ⟶ 6 804 :
return t
end -- t = t .. modes.get_args_datas_tests(t) -- Tests
 
function modes.Init_mode_args_datas_tests(t) -- p.teststests = "FAMLTVQDR"
local memo = viewers.save_configs("modes.Init_mode_args_datas_tests") -- Save global configuration before eventual changes.
local args_known = args_known or modes.args_known or p.args_known or {}
local t = t or "\n* <b>modes.Init_mode_args_datas_tests(t) -- p.teststests</b> -- Test: all kinds of events (err, wng, cat): "
-- res = res .. drop_box.new(selector, "modes_Init_args_datas_tests_title p.teststests **", modes.Init_mode_args_datas_tests)
-- res = res .. drop_box.new(selector, "modes_get_args_datas_tests_title", modes.get_args_datas_tests)
local group = {}
for i, one_event in pairs(modes.get_args_datas_tests_group) do
-- TO TAKE IN ACCOUNT
-- datas.prop, datas.props = datas.get_item(args_known, one_arg["QITEM"]) -- Get datas from mwwikibase for one property of the page. function datas.get_item(
-- t = t .. viewers.ta("keyword", one_event.keyword) .. viewers.ta("prop", one_event.prop) .. viewers.ta("prop_default", one_event.prop_default)
table.insert(group, one_event)
end -- modes.get_args_datas(t) is empty
local tab_view = { -- Group datas and options for a table view with lines and columns.
test_group = group, -- Use default cases
title_memo = "events_one_event_test_title", -- "events.all_kinds_test() Test: all kinds of events (err, wng, cat)",
headers_class = "wikitable alternative center sortable",
headers = "events_all_kinds_tests_headers", -- "typ;key;idargs;result"
headers = " arg name; type; property; prop_default; value",
form_one_case = function(case) -- Convert a case from test_group to rowGroup.
return { tostring(case.keyword), tostring(case.typ), tostring(case.prop), tostring(case.prop_default) , tostring(case.val) }
end,
rowGroup = {},
-- track_on = true,
}
-- res = res .. drop_box.new(selector, "modes_get_args_datas_tests_title", modes.get_args_datas_tests)
t = t .. tableview.new(tab_view) -- Formats a table view with lines and columns.
viewers.restore_configs(memo, "modes.Init_mode_args_datas_tests") -- Restore global configurations after eventual changes.
return t
end -- t = t .. modes.Init_mode_args_datas_tests(t)
 
-- FAMLTVQDR Tactic only once steps : Frame Mode-from-Frame Args Libraries Translations Versions QITEM Datas Results
-- function modes.Librairies_Versions_Args_Mode_Item_Datas_Results(args_known) for function Central.init(
function modes.Init_Frame_Args_Mode_Libraries_Translations_Versions_QITEM_Datas_Results(frame, mode_name, args_known, options_for_modes, QITEM) -- FAMLTVQDR replaces function Central.init( code
-- Central.init(frame, mode_name, args_known, options_for_modes, QITEM) -- FAMLTVQDR Typical call
local res = ""
local frame = frame or mw.getCurrentFrame() -- for F = Frame
local args_known = args_known or modes.args_known or p.args_known or {} -- for A in FAMLTVQDR Arguments definitions at module level p.args_known = {...}
for key, one_arg in pairs(args_known) do
-- ["mode"] = { ["typ"] = "config", ["keyword"] = "mode", ["prop"] = "modes.options_for_modes", ["prop_default"] = "read", }, -- Mode read as default
if type(one_arg) == "table" then
if one_arg["keyword"] and (one_arg["keyword"] == "mode") and modes.options_for_modes[modes.mode_name] then modes.mode_name = modes.mode_name
else modes.mode_name = one_arg["prop_default"] end -- prop_default = read -- for M = Mode
end
end
local bindable_libraries = bindable_libraries or versions.bindable_libraries or {} -- optional value from p.args_known = {...}
versions.setup_central_libraries(bindable_libraries, opt) -- for L = Libraries Install central bindable libraries in package.loaded
langs.init_content_page_user_lang() -- function langs.init_content_page_user_lang() -- for T = Translations
-- versions.bindable_libraries = { -- New libraries to record in package.loaded[]
-- ["activity"] = "The <b>activity</b> library supports Lua-coders sub-tasks for central modules in international interactions.", }
versions.init(frame, Central_version, mode_name, args_known, options_for_modes, QITEM) -- V in FAMLTVQDR
local options_for_modes = options_for_modes or modes.options_for_modes or {} -- M in FAMLTVQDR or {} -- optional value from p.args_known = {...}
modes.options_for_modes = options_for_modes
versions.memo_i18n = mw.clone(versions.main_i18n or langs.main_i18n)
langs.main_i18n = versions.memo_i18n ; versions.main_i18n = versions.memo_i18n
-- local datas = mw.clone(datas) modes.get_args_datas
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.
args_known = modes.get_args_datas(args_known) -- Applies the Tatic for (err, wng, cat) S181124Dng
modes.get_args(args_known) -- Interactions between arguments
modes.args_final = modes.import_arguments(args_known, args_source, content_translations, args_wikidata) -- function modes.import_arguments()
modes.init_args_mode_options(mix, mode_name, modes.args_template) -- Import and mix args mode and options from template and invoke
langs.Central_version = Central_version or langs.Central_version or Central.Central_version_name
return res
end
 
function modes.Init_Frame_Args_Mode_Libraries_Translations_Versions_QITEM_Datas_Results_tests(t) -- For FAMLTVQDR.
local memo = viewers.save_configs("modes.Init_Frame_Args_Mode_Libraries_Translations_Versions_QITEM_Datas_Results_tests") -- Save global configuration before eventual changes.
local t = t or "\n* <b>For FAMLTVQDR tests</b>"
local tab_view = { -- Group datas and options for a table view with lines and columns.
test_group = {
{ ["typ"] = "config", ["keyword"] = "mode", ["prop"] = "modes.options_for_modes", ["prop_default"] = "read", }, -- Mode read as default
{ ["typ"] = "config", ["keyword"] = "mode", ["prop"] = "modes.options_for_modes", ["prop_default"] = "edit", }, -- Mode read as default
{ ["typ"] = "config", ["keyword"] = "modemode", ["prop"] = "modes.options_for_modes", ["prop_default"] = "read", }, -- Mode read as default
{ ["typ"] = "dat", ["keyword"] = "mode", ["prop"] = "modes.options_for_modes", ["prop_default"] = "read", }, -- Mode read as default
},
title_memo = "luaTable_toList_tests_title", -- "lua_table.to_list() Return a list from a Lua table.",
headers = "luaTable_toList_tests_headers", -- "Tested case; Input table, rough_view; Output list",
headers_class = "wikitable alternative center sortable",
rowGroup = {},
-- track_on == "details",
}
-- res = res .. drop_box.new(selector, "modes Init Frame Args Mode Libraries **", modes.Init_Frame_Args_Mode_Libraries_Translations_Versions_QITEM_Datas_Results_tests)
-- res = res .. drop_box.new(selector, "modes_get_args_datas_tests_title", modes.get_args_datas_tests)
function tab_view.form_one_case(case) -- Convert a case from test_group to rowGroup.
return { case.typ, case.keyword, case.prop, case.prop_default, }
end
local t = tableview.new(tab_view) -- Runs tests cases and formats a table view with lines and columns.
viewers.restore_configs(memo, "modes.Init_Frame_Args_Mode_Libraries_Translations_Versions_QITEM_Datas_Results_tests") -- Restore global configurations after eventual changes.
return t --, errors -- langs_missing_translations_title
end -- t = t .. modes.Init_Frame_Args_Mode_Libraries_Translations_Versions_QITEM_Datas_Results_tests
 
-- cut_libraries
Ligne 8 215 ⟶ 8 310 :
end
 
function versions.setup_central_libraries(bindable_libraries, opt) -- LVAMQDRFAMLTVQDR Install central bindable libraries in package.loaded
-- Record centralisable libraries if they are not included in standard mw.Extension:Scribunto
-- RunOnce : Do not repeat this function to not disturb subsequent processes.
Ligne 8 496 ⟶ 8 591 :
 
-- function versions.init(frame, mode_name, args_known, options_for_modes, QITEM)
function versions.init(frame, Central_version, mode_name, args_known, options_for_modes, QITEM) -- LVAMQDRFAMLTVQDR
-- Initializes translations, bind_libraries, bind_sub_modules, get arguments, modes, options.
-- Imports arguments from wikidata, module and template with increasing priorities.
Ligne 10 160 ⟶ 10 255 :
end
 
function viewers.doc_section(selector, section, style, mask_sections) -- BeginFormats the title of sectiona ingroup viewersof drop_box.doc_page()new, viewers.doc_module()..typicaly for each library. -- To bypass a persistent bug
local tres = ""
local selector, section, style, mask_sections = selector, section, style, mask_sections
sectionlocal localsection = viewers.form9user(section) -- like viewers_section_title_page or viewers_section_title_internal function viewers.form9user(
if mask_sections then return tres end
if selector == "never" then return tres end
local select = (selector == true) or (selector == title) or viewers.is_in_sp(selector, "allwaysview alltestsview enforcerun failinref nocontent")
if not select then style = "h3" end
if type(style) ~= "string" then style = "h3" end
-- viewers_section_title_page = "Tests of this page",
local n = tonumber( string.sub(style, 2, 2) )
-- viewers_section_title_module = "Tests of this module",
style = "" ; for i = 1, n do style = style .. "=" end
-- viewers_section_title_internal = "Internal tests",
t = t .. "\n" .. style .. section .. " " .. style .. "\n" -- style OK
if localsection == "viewers_section_title_page" then localsection = "Tests of this page" end -- To bypass a persistent bug
-- t = t .. "\n* ModuleCentralizer only tests sections doc_section"
if localsection == "viewers_section_title_module" then localsection = "Tests of this module" end -- To bypass a persistent bug
return t
if localsection == "viewers_section_title_internal" then localsection = "Internal tests" end -- To bypass a persistent bug
end -- res = res .. viewers.doc_section(selector, "viewers_section_title_page", "h2", mask_sections) -- example
res = res .. "<b>" .. viewers.styles_color_normal(localsection) .. "</b>"
return res
end -- if not mask_sections then res = res .. viewers.doc_section(selector, "viewers_section_title_module", "h2") end -- typical use
 
function drop_box.dh( opt )
Ligne 10 180 ⟶ 10 279 :
return val
end
dh = drop_box.dh
 
function drop_box.html(title, content_or_func) -- Builds the drop box at the html level.
Ligne 10 557 ⟶ 10 655 :
function viewers.doc_module(selector, mask_sections) -- Formats some Dropboxes of tests to document a module.
local res = ""
if not mask_sections then res = res .. viewers.doc_section(selector, "viewers_section_title_module", "h2") end -- function viewers.doc_section(selector,
res = res .. drop_box.new(selector, "modes_args_unknown_report_title", modes.args_unknown_report)
res = res .. drop_box.new(selector, "versions_support_desk_title", versions.form_support_desk_report)
Ligne 10 617 ⟶ 10 715 :
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, "modes Init Frame Args Mode Libraries **", modes.Init_Frame_Args_Mode_Libraries_Translations_Versions_QITEM_Datas_Results_tests)
res = res .. drop_box.new(selector, "modes_get_args_datas_tests_title", modes.get_args_datas_tests)
res = res .. drop_box.new(selector, "modes_Init_args_datas_tests_title p.teststests **", modes.Init_mode_args_datas_tests)
-- end -- t = t .. modes.get_args_datas(t)
-- res = res .. drop_box.new(selector, "modes_args_known_report_title", modes.args_known_report)
Ligne 10 712 ⟶ 10 812 :
["tests"] = " box1 catview docdef docline docsrc docdata docview : tests ",
}
 
function viewers.doc_group(selector, mask_sections) -- Formats all results of this module and its sub-modules.
local res = ""
res = res .. viewers.doc_page(selector, mask_sections) -- included in viewers.doc_group -- mask for time limit
res = res .. viewers.doc_module(selector, mask_sections) -- included in viewers.doc_group -- mask for time limit
res = res .. viewers.doc_internal(selector, mask_sections) -- included in viewers.doc_group -- mask for time limit
res = res .. versions.running_times(false, "") -- always wiew in tests
return res
end -- res = res .. viewers.doc_group(selector, mask_sections) -- Formats all results of this module and its sub-modules.
 
function p.form_result(args_final, main_module) -- Formats all results of this module and its sub-modules.
Ligne 11 196 ⟶ 11 305 :
-- - - - ------------------ - - - - ---------------------------------
 
p.args_known = { -- Table of the definitions of all known arguments at module level. LVAMQDRFAMLTVQDR
-- Arguments in order without names, with their keyword for use as other arguments.
-- Arguments dans l'ordre, non nommés, avec leur keyword pour traitement comme les autres arguments.
Ligne 11 477 ⟶ 11 586 :
-- - - - ------------------ - - - - ---------------------------------
 
-- FAMLTVQDR Tactic only once steps : Frame Mode-from-Frame Args Libraries Translations Versions QITEM Datas Results
function Central.install(frame, Central_version, mode_name, args_known, options_for_modes)
-- function modes.Librairies_Versions_Args_Mode_Item_Datas_Results(args_known) for function Central.init(
-- p.version.versionNumber = CentralI18N.version.versionNumber
function p.init_central_module(frame, mode_name, args_known, options_for_modes, QITEM) -- FAMLTVQDR replaces function Central.init( code
-- Central.init(frame, mode_name, args_known, options_for_modes, QITEM) -- FAMLTVQDR Typical call
local res = ""
local frame = frame or mw.getCurrentFrame() -- for F = Frame
return "\n* ARGS.t=" .. tostring(ARGS.t) .. ", CNT.t=" .. tostring(CNT.t)
local args_known = args_known or modes.args_known or p.args_known or {} -- for A in FAMLTVQDR Arguments definitions at module level p.args_known = {...}
end
for key, one_arg in pairs(args_known) do
 
-- ["mode"] = { ["typ"] = "config", ["keyword"] = "mode", ["prop"] = "modes.options_for_modes", ["prop_default"] = "read", }, -- Mode read as default
function Central.demo(frame, Central_version, mode_name, args_known, options_for_modes)
if type(one_arg) == "table" then
-- p.version.versionNumber = CentralI18N.version.versionNumber
if one_arg["keyword"] and (one_arg["keyword"] == "mode") and modes.options_for_modes[modes.mode_name] then modes.mode_name = modes.mode_name
local res = ""
else modes.mode_name = one_arg["prop_default"] end -- prop_default = read -- for M = Mode
return "\n* ARGS.t=" .. tostring(ARGS.t) .. ", CNT.t=" .. tostring(CNT.t)
end
end
local bindable_libraries = bindable_libraries or versions.bindable_libraries or {} -- optional value from p.args_known = {...}
versions.setup_central_libraries(bindable_libraries, opt) -- for L = Libraries Install central bindable libraries in package.loaded
langs.init_content_page_user_lang() -- function langs.init_content_page_user_lang() -- for T = Translations
-- versions.bindable_libraries = { -- New libraries to record in package.loaded[]
-- ["activity"] = "The <b>activity</b> library supports Lua-coders sub-tasks for central modules in international interactions.", }
versions.init(frame, Central_version, mode_name, args_known, options_for_modes, QITEM) -- V in FAMLTVQDR
local options_for_modes = options_for_modes or modes.options_for_modes or {} -- M in FAMLTVQDR or {} -- optional value from p.args_known = {...}
modes.options_for_modes = options_for_modes
versions.memo_i18n = mw.clone(versions.main_i18n or langs.main_i18n)
langs.main_i18n = versions.memo_i18n ; versions.main_i18n = versions.memo_i18n
-- local datas = mw.clone(datas) modes.get_args_datas
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.
args_known = modes.get_args_datas(args_known) -- Applies the Tatic for (err, wng, cat) S181124Dng
modes.get_args(args_known) -- Interactions between arguments
modes.args_final = modes.import_arguments(args_known, args_source, content_translations, args_wikidata) -- function modes.import_arguments()
modes.init_args_mode_options(mix, mode_name, modes.args_template) -- Import and mix args mode and options from template and invoke
langs.Central_version = Central_version or langs.Central_version or Central.Central_version_name
return res
end
 
function Central.init(frame, Central_version, mode_name, args_known, options_for_modes)
-- LVAMQDRFAMLTVQDR for Args = p.args_known = {...}, Datas = function datas.get_item(args_known, QITEM), Libraries = Install central bindable libraries,
-- Modes = modes.options_for_modes = {...}, Versions = function versions.init(frame, ...) Initializes versions
-- p.version.versionNumber = CentralI18N.version.versionNumber
local res = "\n* Central.init(frame, Central_version, mode_name, args_known, options_for_modes)<br>"
local Central_version = Central_version or p.version.versionName -- optional value from p.args_known = {...}
local args_known = args_known or modes.args_known or p.args_known or {} -- optional value from p.args_known = {...}
-- ["mode"] = { ["typ"] = "config", ["keyword"] = "mode", ["prop"] = "modes.options_for_modes", ["prop_default"] = "read", }, -- Mode read as default
Ligne 11 500 ⟶ 11 633 :
if type(lang) == "content" then t = viewers.form9content(key_form, subnames, strings_c, tables_c) end
if type(langs.Central_version ~= "string") then langs.Central_version = (p.version["versionName"] .. " " .. p.version["versionNumber"] ) end -- Adapt to actual wiki as default
-- res = res .. modes.Init_Frame_Args_Mode_Libraries_Translations_Versions_QITEM_Datas_Results(frame, mode_name, args_known, options_for_modes, QITEM) -- FAMLTVQDR replaces function Central.init( code
local options_for_modes = options_for_modes or modes.options_for_modes or p.options_for_modes
res = res .. versions.init(frame, langs.Central_version) -- function versions.init(
Ligne 11 522 ⟶ 11 656 :
return res
end -- function Central.init(frame, Central_version, mode_name, args_known, options_for_modes)
--[[
 
-- LVAMQDR = Librairies Versions Args Mode Item Datas Results:
-- function modes.Librairies_Versions_Args_Mode_Item_Datas_Results(args_known) for function Central.init(
function modes.Librairies_Versions_Args_Mode_Item_Datas_Results(frame, mode_name, args_known, options_for_modes, QITEM) -- LVAMQDR replaces function Central.init( code
-- Central.init(frame, mode_name, args_known, options_for_modes, QITEM) -- LVAMQDR Typical call
local res = ""
local bindable_libraries = bindable_libraries or versions.bindable_libraries or {} -- optional value from p.args_known = {...}
versions.setup_central_libraries(bindable_libraries, opt) -- L in LVAMQDR Install central bindable libraries in package.loaded
-- versions.bindable_libraries = { -- New libraries to record in package.loaded[]
-- ["activity"] = "The <b>activity</b> library supports Lua-coders sub-tasks for central modules in international interactions.", }
local args_known = args_known or modes.args_known or p.args_known or {} -- A in LVAMQDR Arguments definitions at module level p.args_known = {...}
versions.init(frame, Central_version, mode_name, args_known, options_for_modes, QITEM) -- V in LVAMQDR
local options_for_modes = options_for_modes or modes.options_for_modes or {} -- M in LVAMQDR or {} -- optional value from p.args_known = {...}
modes.options_for_modes = options_for_modes
versions.memo_i18n = mw.clone(versions.main_i18n or langs.main_i18n)
langs.main_i18n = versions.memo_i18n ; versions.main_i18n = versions.memo_i18n
-- local datas = mw.clone(datas) modes.get_args_datas
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.
args_known = modes.get_args_datas(args_known) -- Applies the Tatic for (err, wng, cat) S181124Dng
modes.get_args(args_known) -- Interactions between arguments
langs.init_content_page_user_lang() -- function langs.init_content_page_user_lang()
modes.args_final = modes.import_arguments(args_known, args_source, content_translations, args_wikidata) -- function modes.import_arguments()
modes.init_args_mode_options(mix, mode_name, modes.args_template) -- Import and mix args mode and options from template and invoke
langs.Central_version = Central_version or langs.Central_version or Central.Central_version_name
return res
end
 
function Central.init(frame, Central_version, mode_name, args_known, options_for_modes)
-- LVAMQDRFAMLTVQDR for Args = p.args_known = {...}, Datas = function datas.get_item(args_known, QITEM), Libraries = Install central bindable libraries,
-- Modes = modes.options_for_modes = {...}, Versions = function versions.init(frame, ...) Initializes versions
-- p.version.versionNumber = CentralI18N.version.versionNumber
Ligne 11 572 ⟶ 11 679 :
return res
end -- function Central.init(frame, Central_version, mode_name, args_known, options_for_modes)
--]]
 
function Central.init(frame, Central_version, mode_name, args_known, options_for_modes)
-- LVAMQDR for Args = p.args_known = {...}, Datas = function datas.get_item(args_known, QITEM), Libraries = Install central bindable libraries,
-- Modes = modes.options_for_modes = {...}, Versions = function versions.init(frame, ...) Initializes versions
-- p.version.versionNumber = CentralI18N.version.versionNumber
local options_for_modes = options_for_modes or modes.options_for_modes or p.options_for_modes
local res = "\n* Central.init(frame, Central_version, mode_name, args_known, options_for_modes)<br>"
res = res .. modes.Librairies_Versions_Args_Mode_Item_Datas_Results(frame, mode_name, args_known, options_for_modes, QITEM) -- LVAMQDR replaces function Central.init( code
-- local datas = mw.clone(datas) modes.get_args_datas
-- datas.props = datas.get_item(args_known, QITEM) -- Get datas from mw.wikibase for the page.
res = res .. (datas.props_trk or "")
res = res .. "</b>"
-- p.version.versionNumber = CentralI18N.version.versionNumber
return res
end -- function Central.init(frame, Central_version, mode_name, args_known, options_for_modes)
 
function Central.read(frame) -- The read mode generates the normal result for read only users.
-- Helpers or admins can add options to include edit or tests or user language...
Ligne 11 797 ⟶ 11 889 :
{ site = "fr.wikisource", verstime = "2018-11-29T14:08:43", versid = "1.33.0-wmf.6 (e5db35f)", seen_time = "2018-11-29T21:51:00", },
{ site = "fr.wikisource", verstime = "2018-11-29T20:09:40", versid = "1.33.0-wmf.6 (e7d6fb2)", seen_time = "2018-11-29T23:33:00", },
{ site = "fr.wikisource", verstime = "2018-12-13T01:34:02", versid = "1.33.0-wmf.8 (2859494)", seen_time = "2018-12-17T08:33:00", },
{ site = "www.MediaWiki", verstime = "2018-12-18T14:22:32", versid = "1.33.0-wmf.9 (b5ca53a)", seen_time = "2018-12-18T18:00:00", },
{ site = "fr.wikisource", verstime = "2018-12-19T17:52:30", versid = "1.33.0-wmf.9 (7cf3023)", seen_time = "2018-12-20T09:07:00", },
} -- MWMW
versions.MediaWiki_version_memo = "1.33.0-wmf.69 (e7d6fb27cf3023)"
versions.MediaWiki_Versions_sort = "<" -- First on end, Last on begin
versions.MediaWiki_Versions_sort = ">" -- First on begin, Last on end
-- function activity.MW_Versions_report(t) -- Reports versions of MediaWiki for 3 months.
 
function viewers.doc_group(selector, mask_sections) -- Formatsfunction all or any documentations of tests and reportsviewers.doc_internal(selector, -- snaks tstmask_sections)
local res = ""
if p.teststests == "FAMLTVQDR" then
res = res .. viewers.doc_section(selector, "Tests of this page", "h2", mask_sections)
-- res = res .. drop_box.new(selector, "activity_report_subtasks_title", activityp.central_subtasks_report)teststests --= toFAMLTVQDR tryInit_mode_args_datas_tests if**", neededmodes.Init_mode_args_datas_tests )
-- res = res .. viewersdrop_box.doc_pagenew(selector, mask_sections)"modes --Init maskFrame forArgs timeMode limitLibraries **", p.init_central_module_tests)
-- res = res .. viewersdrop_box.doc_modulenew(selector, mask_sections"modes_get_args_datas_tests_title", modes.get_args_datas_tests) -- mask for time limit
res = res .. viewers.doc_internaldoc_page(selector, mask_sections) -- mask for time limit function viewers.doc_internaldoc_page(selector, mask_sections)
-- res = res .. versionsviewers.running_timesdoc_module(falseselector, ""mask_sections) -- mask for time limit
return res
else
res = res .. viewers.doc_section(selector, "Tests of this page", "h2", mask_sections) -- function viewers.doc_section(
res = res .. viewers.doc_section(selector, "Tests of this page", "h2", mask_sections)
res = res .. drop_box.new(selector, "activity_report_subtasks_title", activity.central_subtasks_report) -- to try if needed
res = res .. viewers.doc_page(selector, mask_sections) -- mask for time limit
res = res .. viewers.doc_module(selector, mask_sections) -- mask for time limit
res = res .. viewers.doc_internal(selector, mask_sections) -- function viewers.doc_internal(selector, mask_sections)
res = res .. versions.running_times(false, "")
end
return res
end -- function viewers.doc_group(selector, mask_sections) item: