Module:labels
Μετάβαση στην πλοήγηση
Πήδηση στην αναζήτηση
Module:labels >> Module:labels/data << Module:labels/τεκμηρίωση → πρότυπο ετικετών {{ετ}}
Module:labels >> Module:labels/alias
Δημιουργεί πλαγιογράμματες ετικέτες που εντάσσουν τα λήμματα σε Κατηγορίες.
Καλείται:
- από το πρότυπο
{{ετ}}
(Πρότυπο:ετ για σχηματισμό οποιασδήποτε νέας ετικέτας με{{ετ|<ετικέτα>|<κωδικός γλώσσας>}}
) χωρίς να χρειάζεται αυτόνομο πρότυπο ειδικά γι' αυτήν.
Όλες οι υπάρχουσες ετικέτες/labels βρίσκονται στο Module:labels/data και οι συντομογραφίες τους στο Module:labels/alias - μπορούν να προστεθούν και άλλες μετά από συνεννόηση στο Δωμάτιο Βικιλεξικό:Διαχείριση κατηγοριών. Για τις παραμέτρους, δείτε τις οδηγίες στο πρότυπο {{ετ}}
Για κάθε νέα εισαγωγή, ενημερώνουμε
- το Module:auto cat/data/topics (για τα topics=true) → Κατηγορία:Θεματικές κατηγορίες
- ή το Module:auto cat/data/style (για τα style=true) → Κατηγορία:Υφολογικές κατηγορίες
- ή το Module:auto cat/data (για τα ety=true, gramm=true) → άλλες κατηγορίες
--[=[
2020.08.22. Sarri.greek.
Last update:2021.04.24.
[[Πρότυπο:ετ]] ([[Template:lbl]]) (e.g. {{ετ|<label>|<language code>}})
labels at [[Module:labels/data]], abbreviations at [[Module:labels/alias]]
ΕΙΔΗ ετικετών = λέξη σε παρένθεση με πλάγια γράμματα + εντάσσει σε Κατηγορία
Κατάλογος ετικετών/θεμάτων υπάρχει στο [[Module:labels/data]]
Συντομογραφίες, άλλες γραφές, στο [[Module:labels/alias]]
* Special. the parameter 0=- (noparenthesis) erases instead the second word.
άφεση=αφετικός τύπος του, περικοπή του, συμφυρμός των,
ΠΡΟΒΛΗΜΑΤΑ
* REDO TEXT +απλό κείμενο συνοδευτικό π.χ. [[περικοπή]] του
* δεν φαίνεται η ειδοποίηση για το λάθος ή καθόλου label.
* problem: κολλάνε μεταξύ τους (π.χ. ({{ετ|ιατρική|0=-}}, {{ετ|κτηνιατρική|0=-}})
SOLVED: [[Module talk:labels]] place Categories after text, not before.
]=]--
local export = {}
local languages = mw.loadData("Module:Languages")
local data = mw.loadData('Module:labels/data') -- labels here, for data, do not use 'require'
local m_alias = mw.loadData("Module:labels/alias")
----------------------------------------------------------------------------
-- text - category --
----------------------------------------------------------------------------
-- REMEMBER: you have to pass ALL PARAMTERS to the Template!!!!
function export.main(frame)
-- local args = frame:getParent().args -- for Templates
local args = frame.args -- invoke
-- local arg1 = frame.args[1] or frame:getParent().args[1] or '' -- for BOTH
-- CAREFUL: placing « or '' » before frame...args, does not work. It has to be in the end
local mytext = ''
local mycat = ''
-- data from [[Module:labels/data]]
local label = args['label'] or args['topic'] or args['ετικέτα'] or '' -- the label is essential
-- εναλλακτικά στο [[Module:labels/alias]]
local alias = ''
if m_alias[label] then
alias = label
label = m_alias[alias]['lab']
end
-- local link = args['link'] or '' -- is data[label]['link']
-- local linkshow = args['linkshow'] or '' -- is data[label]['linkshow']
-- local label_cat = args['word_cat'] or '' -- is data[label]['word_cat']
-- other
local text = args[1] or '' -- free text by editor. Needed when a special link is needed. Use with caution.
local term = args['όρος'] or args['term'] or '' -- overrides the link by the module, free text by editor
local show = args['εμφ'] or args['show'] or '' -- or args[3] at [[Template|ετ]] -- link appearance choice by editor
local noparenthesis = args['0'] or '' --
local nocat = args['nocat'] or args['00'] or '' -- do NOT place in a category, just show text
local nodisplay = args['nodisplay'] or args['000'] or '' -- do NOT display text
local nolink_cat = args['σελ'] or args['page'] or '' -- link to the lemma, not the Category which is default
local sort = args['ascii'] or args['sort'] or ''
-- about languages, language specifics CHECK [[takeout]] [[φάλαινα]]
local lang_iso = args['γλ'] or args['lang'] or '' -- or args[2] at [[Template|ετ]]
if lang_iso == '' or lang_iso == nil then
if label == 'αμερ' or label == 'αμερ γρ' or label == 'αμερ σημασία'
or label == 'βρετ' or label == 'βρετ γρ' or label == 'βρετ σημασία'
then lang_iso = 'en'
else lang_iso = 'el'
end
end
local lang_name = languages[lang_iso].name or ''
-- ?? This needs does not work if a label is WRONG. It works only if label is EMPTY.
if label == '' or label == nil then -- use OR, not AND
mw.addWarning('<span style="color:#b22222; font-size:16px;">Παρακαλούμε, επιλέξτε μία ετικέτα [[Module:labels/data|από τη Βιβλιοθήκη μας!]]</span>')
else
-- ============ Categories = mycat
local page = mw.title.getCurrentTitle()
page.name = page.text:match( "^%s*(.-)%s*$" )
if page.namespace == 0 or page.namespace == 14
then -- μόνο στον Κύριο Ονοματοχώρο (κωδικός 0) + Κατηγορίες (κωδικός 14) θα δίνει Κατηγορίες
-- π.χ. [[:Κατηγορία:Λέξεις με επίθημα -καρδος (νέα ελληνικά)]]
if nocat ~= '' then -- parameter |00=-
mycat = ''
else
-- Categories do not exist yet (marked with -)
if data[label]['word_cat'] == '-' then mycat = ''
else
if sort ~= '' then
mycat = '[[Κατηγορία:' .. data[label]['word_cat'] .. ' ' .. ' (' .. languages[lang_iso].name .. ')|' .. sort .. ']]'
-- an upper level cateogry is added from /data page (not used)
if label ~= '' and data[label]['word_cat1'] ~= '' and data[label]['word_cat1'] ~= nil then
mycat = mycat .. '[[Κατηγορία:' .. data[label]['word_cat1'] .. ' (' .. languages[lang_iso].name .. ')|' .. sort .. ']]'
elseif label ~= '' and data[label]['word_cat1'] == '' and data[label]['word_cat1'] == nil then
mycat = mycat
end
else
mycat = '[[Κατηγορία:' .. data[label]['word_cat'] .. ' ' .. ' (' .. languages[lang_iso].name .. ')]]'
if label ~= '' and data[label]['word_cat1'] ~= '' and data[label]['word_cat1'] ~= nil then
mycat = mycat .. '[[Κατηγορία:' .. data[label]['word_cat1'] .. ' (' .. languages[lang_iso].name .. ')]]'
elseif label ~= '' and data[label]['word_cat1'] == '' and data[label]['word_cat1'] == nil then
mycat = mycat
end
end -- close sort
end -- close NO CATEGORY word_cat=-
end -- close nocat
end -- if namespace = 0
-- ============= mytext: the labels (when a Category is linked, italics)
-- labels +Cateogry but NO text
if nodisplay ~= '' or data[label]['link'] == 'πατρότητα' then -- parameter |000=-
-- {{ετ|πατρότητα}} does NOT create text, only Category. Check [[it's all Greek to me]]
mytext = ''
else
-- simple lemma link - NOT the default link to the label's Category
if nolink_cat == '1' or data[label]['word_cat'] == '-' or (nocat ~= '' and nocat ~= nil) then
if noparenthesis ~= '' then -- parameter |0=-
if term ~= '' and term ~= nil then
mytext = term
elseif text ~= '' and text ~= nil then
mytext = text
else -- the obligatory label
if show ~= '' then
mytext = '[[' .. data[label]['link'] .. '|' .. show .. ']]'
else
-- words with extra text e.g. αφετικός τύπος του περικοπή του, συμφυρμός των, WITHOUT του, των
if data[label]['link'] == 'άφεση' or data[label]['link'] == 'περικοπή' or data[label]['link'] == 'συμφυρμός'
then
mytext = '[[' .. data[label]['link'] .. '|<i>' .. data[label]['link'] .. '</i>]]'
else
mytext = '[[' .. data[label]['link'] .. '|<i>' .. data[label]['linkshow'] .. '</i>]]'
end
end -- close show
end
else -- with parenthesis or extra text for e.g. περικοπή, συμφυρμός
if term ~= '' and term ~= nil then
mytext = '(' .. term .. ')'
elseif text ~= '' and text ~= nil then
mytext = '(' .. text .. ')'
else -- the obligatory label
if show ~= '' then
-- words with extra text e.g. περικοπή του, συμφυρμός των, has no parenthesis
if data[label]['link'] == 'άφεση' or data[label]['link'] == 'περικοπή' or data[label]['link'] == 'συμφυρμός'
then
mytext = '[[' .. data[label]['link'] .. '|' .. show .. ']]'
else
mytext = '([[' .. data[label]['link'] .. '|' .. show .. ']])'
end
else
-- words with extra text e.g. περικοπή του, συμφυρμός των, has no parenthesis
if data[label]['link'] == 'άφεση' or data[label]['link'] == 'περικοπή' or data[label]['link'] == 'συμφυρμός'
then
mytext = '[[' .. data[label]['link'] .. '|<i>' .. data[label]['linkshow'] .. '</i>]]'
else
mytext = '([[' .. data[label]['link'] .. '|<i>' .. data[label]['linkshow'] .. '</i>]])'
end
end -- close show
end
end -- close no parenthesis
-- yes, there is Category the DEFAULT link to the label's Category by language
else
if noparenthesis ~= '' then -- parameter |0=-
if term ~= '' and term ~= nil then
mytext = term
elseif text ~= '' and text ~= nil then
mytext = text
else -- the obligatory label
if show ~= '' then
mytext = '[[:Κατηγορία:' .. data[label]['word_cat'] .. ' (' .. languages[lang_iso].name .. ')|<i>' .. show .. '</i>]]'
else
-- words with extra text e.g. περικοπή του, συμφυρμός των, give link = περικοπή WITHOUT του
if data[label]['link'] == 'άφεση' or data[label]['link'] == 'περικοπή' or data[label]['link'] == 'συμφυρμός'
then
mytext = "[[:Κατηγορία:" .. data[label]['word_cat'] .. " (" .. languages[lang_iso].name .. ")|<i>" .. data[label]['link'] .. "</i>]]"
else
mytext = "[[:Κατηγορία:" .. data[label]['word_cat'] .. " (" .. languages[lang_iso].name .. ")|<i>" .. data[label]['linkshow'] .. "</i>]]"
end
end -- close show
end
else -- with parenthesis, or extra text as in περικοπή, συμφυρμός
if term ~= '' and term ~= nil then
mytext = '(' .. term .. ')'
elseif text ~= '' and text ~= nil then
mytext = '(' .. text .. ')'
else -- the obligatory label
if show ~= '' then
-- words with extra text e.g. περικοπή του, συμφυρμός των
if data[label]['link'] == 'άφεση' or data[label]['link'] == 'περικοπή' or data[label]['link'] == 'συμφυρμός'
then
mytext = '[[:Κατηγορία:' .. data[label]['word_cat'] .. ' (' .. languages[lang_iso].name .. ')|<i>' .. show .. '</i>]]'
else
mytext = '([[:Κατηγορία:' .. data[label]['word_cat'] .. ' (' .. languages[lang_iso].name .. ')|<i>' .. show .. '</i>]])'
end
else
-- words with extra text e.g. περικοπή του, συμφυρμός των
if data[label]['link'] == 'άφεση' or data[label]['link'] == 'περικοπή' or data[label]['link'] == 'συμφυρμός'
then
mytext = '[[:Κατηγορία:' .. data[label]['word_cat'] .. ' (' .. languages[lang_iso].name .. ')|<i>' .. data[label]['linkshow'] .. '</i>]]'
else
mytext = '([[:Κατηγορία:' .. data[label]['word_cat'] .. ' (' .. languages[lang_iso].name .. ')|<i>' .. data[label]['linkshow'] .. '</i>]])'
end
end -- close show
end
end -- close no parenthesis
end -- close if nolink_cat
end -- close nodisplay
end -- close if label = error
output = mytext .. mycat -- ALWAYS put text first, category second
return output
end
return export