Modulo:mtbllingvoj

El Vikivortaro
Salti al navigilo Salti al serĉilo
Padlock.svg Ĉi tiu modulo estas multfoje bindita kaj protektitaVi povas inspekti la protokolon pri protektoj.
Se vi konas la eblajn sekvojn kaj havas sufiĉajn rajtojn, tiam vi povas zorgeme ekredakti.
Se vi ne kuraĝas aŭ ne rajtas redakti tiam vi povas proponi la deziratan ŝanĝon en la diskutejo.
Memtesto ne disponeblas. Jen la dokumentaĵa subpaĝo.

--[===[

MODULE "MTMPLLOADDATA" (multiple private template to load data)

"eo.wiktionary.org/wiki/Modulo:mtbllingvoj" <!--2020-Nov-08-->
"id.wiktionary.org/wiki/Modul:mtblbahasa"

Purpose: translate (the transcludable part of) wikitext of a template
         (namely hardcoded "tblbahasa") to a LUA string that can be used
         repeatedly via the infamous "mw.loadData" command

Utilo: traduki na (la transkluzivigebla parto de) vikiteksto de sxablono
       (nome fiksita "tbllingvoj") al LUA signocxeno kiu povas esti uzata
       ripete per la famacxa ordono "mw.loadData"

Manfaat: menerjemahkan (bagian yang bisa mentransklusikan) wikiteks templat
         (yaitu tepat "tblbahasa") menjadi string LUA yang bisa digunakan
         beberapa kali melalui perintah "mw.loadData" yang terkenal buruk

Syfte: oeversaetta (den transkluderingsbara delen av) wikitext fraan en mall
       (naermare bestaemt fast "tbllingvoj") till en LUA-straeng som kan
       anvaendas upprepade gaanger medelst det oekaenda
       kommandot "mw.loadData"

Incoming: - nothing (imported via "mw.loadData", no ordinary caller)

Returned: - LUA table enclosing a large and complicated string with the
            complete source table, or "=" on error (template does not exist)

Note that this module is NOT generic and CANNOT be made generic due to the
principle that data received by "mw.loadData" must be static and thus it is
not possible to submit parameters (namely name of the template to be seized)
to this module.

The name of this module is the name of the read template prefixed
by "m", for example "Template:tblgods" -> "Module:mtblgods".

It is permissible to read several templates by one module in order to
facilitate editing, for example "Module:mtblgods" reads
"Template:tblgodsaf" + "Template:tblgodsgr" + "Template:tblgodssz".

Note that the used "#ifexist:" function expects a wikilink, not an URL. This
means among others that percent-encoding CANNOT be used, UTF8 is required.

]===]

---- CONSTANTS ----

  -- uncommentable constant strings EO vs ID

  local construstm = string.char(0xC5,0x9C) .. "ablono:tbllingvoj"  -- EO -- "SXablono"
  -- local construstm = "Templat:tblbahasa"                            -- ID

  ---- VARIABLES ----

  -- general table --

  local tmplloaddata = {}

  -- general unknown type

  local vartmp = 0         -- variable without type multipurpose

  -- general type "frame"

  local arxframent = 0

  -- general string

  local strret = ""        -- output string
  local strttmp = ""       -- temp

  ---- SEIZE THE INFAMOUS "FRAME" OBJECT (THERE IS NO ORDINARY CALLER) ----

  arxframent = mw.getCurrentFrame () -- use this if no main function exists

  ---- CHECK WHETHER THE POINTED TEMPLATE EXISTS AT ALL AND EXPAND IT ----

  strttmp = arxframent:callParserFunction ('#ifexist:'..construstm,'1','0')
  if (strttmp=='1') then
    vartmp = arxframent:expandTemplate { title = construstm }
    if ((type(vartmp))=='string') then
      strret = vartmp -- may be empty
    end--if
  end--if
  if (string.len(strret)<4) then
    strret = '=' -- empty result NOT appreciated !!!
  end--if

  ---- RETURN THE JUNK ----

  tmplloaddata[1] = strret -- only allowed type is table, raw string not work

  return tmplloaddata