Module:el-nouns-decl
Module:el-nouns-decl >> Module:el-nouns-decl/functions << Module:el-nouns-decl/τεκμηρίωση <<
Το Module περιλαμβάνει α) γενικές λειτουργίες (συναρτήσεις) και το Πρότυπο:el-nouns-decl και β) επιμέρους συναρτήσεις, έτοιμους πίνακες κλίσεων που καλούνται από Πρότυπα (βρίσκονται αλφαβητικά στο Module:el-nouns-decl/functions)
Πίνακας Προτύπων, Κατηγοριών και κλίσεων υπάρχει στο Παράρτημα:Ουσιαστικά (νέα ελληνικά) με δυνατότητα πολλαπλών αλφαβητικών κατατάξεων των παραδειγμάτων.
Η διαμόρφωση των θεμάτων γίνεται από το Module:grk-stems
Θέματα και καταλήξεις
Για τις καταλήξεις των πτώσεων χρησιμοποιούνται οι εξής παράμετροι:
- οε: ονομαστική ενικού
- γε: γενική ενικού,
- γε2: γενική ενικού (2ος τύπος)
- αε: αιτιατική ενικού
- κε: κλητική ενικού - Αν λείπει τεκμαίρεται ότι είναι ίδια με την αιτ. εν.
- κε0: κλητική ενικού (δύσχρηστη σε παρένθεση)
- κε2: κλητική ενικού (δεύτερος τύπος)
- οπ: ονομαστική πληθυντικού
- οπ2: ονομαστική πληθυντικού (δεύτερος τύπος)
- γπ: γενική πληθυντικού
- γπ0: γενική πληθυντικού (δύσχρηστη, σε παρένθεση)
- γπ2: γενική πληθυντικού (2ος τύπος)
- απ: αιτιατική πληθυντικού - Αν λείπει τεκμαίρεται ότι είναι ίδια με την ονομ. πλ
- απ2: αιτιατική πληθυντικού (δεύτερος τύπος)
- Η κλητική πληθυντικού θεωρείται ίδια με την ονομαστική, εκτός από την περίπτωση των θηλυκών σε -ος (διάμετρος).
Τα θέματα
- το θέμα προκύπτει μετά την αφαίρεση της κατάληξης (ενός ή δύο γραμμάτων) που γίνεται αυτόματα στον Κύριο Ονοματοχώρο (αν θέλουμε, μπορούμε να δηλώσουμε διαφορετικό |λήμμα=xxxx)
- Μπορούμε να προσδιορίσουμε το θέμα που αντιστοιχεί σε κάποια πτώση, με τις παραμέτρους οεθ, γεθ, και δεύτερους τύπους οε2θ, γε2θ κ.ο.κ. σε περίπτωση που είναι διαφορετικό από το αυτόματο.
- Οι παρεμβάσεις στον τονισμό του θέματος για τις παραλλαγές του γίνονται από το Module:grk-stems (άτονο, μετακινήσεις του τόνου) ή/και από το Module:stems (βλ. Πρότυπο:el-nouns-decl)
Βασικές συναρτήσεις
Οι γενικές συναρτήσεις (functions) του Module είναι:
- klisi1: Συνάρτηση (function) που χρησιμοποιείται για τη μεγάλη πλειοψηφία των ουσιαστικών. Καλείται μόνο από άλλη συνάρτηση του module (από τις Επιμέρους Συναρτήσεις).
- klisi2: Συνάρτηση (function) που χρησιμοποιείται για ουδέτερα όπως το τσάι, παρόν, μέλλον, ον που εμφανίζουν ένα επιπλέον σύμφωνο (γ ή τ) στο τέλος του θέματος. Καλείται μόνο από Επιμέρους Συνάρτηση του module.
- fulltable: απ' ευθείας απ' αυτόν τον super-πίνακα δημιουργούνται functions στο Module:el-nouns-decl/functions που έχουν πολλές εξειδικευμένες παρατηρήσεις και υποπεριπτώσεις (όπως η κλίση 'διάμετρος', η κλίση 'όπουλος', κ.ά.)
- free: καλείται από το Πρότυπο:el-nouns-decl και δημιουργεί πίνακα με δυνατότητα επεξεργασίας όλων των παραμέτρων: ολόκληρης λέξης (οεΛ, γεΛ, αεΛ, ...), θέματος και κατάληξης (οεθ, οε, γεθ, γε, ...)
Επιμέρους συναρτήσεις
Είναι έτοιμες εφαρμογές κλίσεων. Βρίσκονται στο Module:el-nouns-decl/functions, αλφαβητικά.
Τις καλούμε με πρότυπα
Τα Πρότυπα Κλίσων με τη μορφή el-κλίση-'τάδε' καλούν κάποια συνάρτηση
Τρόπος Α:
- → Οι 'Επιμέρους Συναρτήσεις' που βρίσκονται στο Module:el-nouns-decl/functions
- → καλούνται από Πρότυπα με παρόμοιο όνομα (γραφής wikitext) που υπάρχουν στην Κατηγορία:Πρότυπα κλίσης ουσιαστικών (νέα ελληνικά).
Τρόπος Β (για ιδιόκλιτα, δύσκολες κλίσεις, ελλειπτικά ή πολυλεκτικούς όρους).
- Από τη συνάρτηση free (function free) →
- → Πρότυπο:el-nouns-decl, που έχει αποθηκευμένα όλα τα ονόματα παραμέτρων, ώστε να δημιουργηθούν →
- → θυγατρικά πρότυπα κλίσεων (όπως το Πρότυπο:el-κλίση-'βράχος', το γενικό Πρότυπο:el-κλίση-όροι για πολυλεκτικούς όρους)
- → ή καλείται απευθείας μέσα από το λήμμα (όπως στο πυρ)
- → Πρότυπο:el-nouns-decl, που έχει αποθηκευμένα όλα τα ονόματα παραμέτρων, ώστε να δημιουργηθούν →
Συντήρηση
Ελέγχουμε συχνά:
- Κατηγορία:Σελίδες με σφάλματα στο πρότυπο κλίσης ουσιαστικών (νέα ελληνικά)
- Κατηγορία:Έλεγχος κλίσης - Ουσιαστικά (νέα ελληνικά)
- Κατηγορίες ελέγχου χωρισμού παροξύτονων-προπαροξύτονων. όπως στο Συζήτηση Module talk:el-nouns-decl/functions
- πρέπει να είναι άδεια η Κατηγορία:Ουσιαστικά που κλίνονται όπως το '' (νέα ελληνικά)
- ελέγχουμε αν είναι ΟΚ η Κατηγορία:Ουσιαστικά χωρίς γένος (νέα ελληνικά)
- και Κατηγορία:Επώνυμα χωρίς γένος (νέα ελληνικά) (θα πρέπει να είναι: κοινού γένους)
Προβλήματα
- Το module προϋπήρχε, μετά προστέθηκαν λειτουργίες, άρα έχουμε μια ποικιλία, άλλοτε με περιορισμούς, άλλοτε όχι. Θα προτιμούσαμε να προκύπτουν τα πάντα με ενιαίο τρόπο από την function free, με όλες τις δυνατότητες διαθέσιμες ανά πάσα στιγμή στον συγγραφέα προτύπων.
- Η παρουσία του άρθρου, δημιουργεί πολλές κατηγορίες. Η θέση του τόνου (παροξύτονα ή προπαροξύτονα) είναι ανοιχτή: θα έπρεπε ίσως να είναι αυστηρή: κάθε function να δέχεται λέξεις μόνον παροξύτονες ή μόνον προπαροξύτονες.
--[=[
-- 2020.03.21.
Ενοποίηση των / A transfer from
* [[Module:κλίση/el/ουσιαστικό]] με μεταφρασμένες τις ονομασίες εντολών
* και στοιχεία από /plus elements from [[Module:Table-el-1]]
ΣΥΓΓΡΑΦΕΙΣ / AUTHORS
Flyax and Xoristzatziki (2015-2018)
edits by Sarri.greek (2020)
ΔΟΜΗ / STRUCTURE
1) παραγωγή θεμάτων / stem-production, required modules
2) χρώματα, σύνδεσμοι, στυλ, γλώσσα / colours, links, styles, languages
3) fulltable: άρθρα, πτώσεις / article, cases.
4) Κατηγορίες / Categories
5) klisi1 (generates most templates)
6) klisi2 (plus an interfix)
7) free table
8) [[Module:el-nouns-decl/functions]] Οι επιμέρους λειτουργίες για τα Πρότυπα / functions for specific Templates α...ω
ΟΡΟΛΟΓΙΑ / GREEK TERMS
ονομασίες θεμάτων - stem names
"θ" = το θέμα όπως το βρίσκουμε από το λήμμα / the stem as taken from the lemma
"θ0" = άτονο / unaccented
"θ1" = τονισμένο στην τελευταία του συλλαβή / accented on its last syllable
"θ2" = τονισμένο στην προτελευταία του συλλαβή / accented on the syllable before the last
1st character: ο = nom. γ = gen. α = acc. κ = voc.
2nd character: ε = singular, π = plural. Parameter α= (number=) εν (singular) πλ (plural)
3rd character: Λ = λέξη/word (=θέμα+κατάληξη =stem+ending)
3rd character:
0 (zero: place the word in parenthesis)
2 (add an extra form in the cell)
θ (greek letter theta for θέμα (thema) = stem)
λήμμα = lemma
κατ = cat (category)
LOG
* 2021.04.26. move Articles section to [[Module:el-articles]]
* 2020.09.13. Δημιουργήθηκαν Κατηγορίες ελέγχου για κλίσεις που χωρίστηκαν (παροξύτονα προπαρογύτοναι)
Συζήτηση [[Module talk:el-nouns-decl/functions]] - [[:Κατηγορία:Έλεγχος κλίσης - Ουσιαστικά (νέα ελληνικά)]]
* 2020.09.01. α2γε α2απ γενική ενικού / αιτιατική πληθυντικού δύο γραμμών
για τα κοινού γένους που έχουν 2 άρθρα, 2 γραμμές όπως [[συγγραφέας]], [[βιομήχανος]]
ΠΡΟΒΛΗΜΑΤΑ - PROBLEMS marked with ??
* Why do I have to repeat the section about the lemma and stems in EVERY function at [[Module:el-nouns-decl/functions]]? (like 'αγώνας')
]=]--
export = {}
local m_functions = require("Module:el-nouns-decl/functions")
--------------------------------------------------------------------------
-- 1. STEM PRODUCTION, REQUIRED MODULES / ΔΗΜΙΟΥΡΓΙΑ ΘΕΜΑΤΩΝ, MODULES --
--------------------------------------------------------------------------
local languages = mw.loadData("Module:Languages") -- see LANGUAGES / only el used for lang_name = languages[lang_iso]['name']
-- do not name 'local': it does not work for Module:el-nouns-decl/functions
m_stems = require("Module:grk-stems") -- stem production:
--functions:
--word0 = no accent, word1 = accent on ultima, word2 = accent on penultima
--hasaccent = tells us if it has an accent
-- how to use [[Module:el-articles]]
-- DO NOT use m_art = require....
-- USE DIRECTLY as [[User:Trappist the monk]] did, require ('Module:el-articles').articles (args) instead of ARTICLES section.
--DO NOT USE: m_art = require("Module:el-articles") -- all args for articles
--DO NOT USE: m_art = require ('Module:el-articles').articles (args)
tinti = require("Module:tin") --tinti function:tin
-- chooses the correct acc.singular feminine article την (tin) or τη (ti)
--------------------------------------------------------------------------
-- 2. links & styles / σύνδεσμοι & στυλ --
--------------------------------------------------------------------------
-- =========== standard colours (BLUE) and styles
-- borders
c_border = '#a1bdea' -- same as c_1 previously #AAAACC
c_bord = '#eaf0fa' -- or '#eeeeee' -- inner lighter borders
-- background colours
c_1 = '#a1bdea' -- ROW title1 MAIN, and border for title2 if it exists
c_2 = '#c1d3f1' -- title2 (e.g. genders of adjectives) and border for title1
c_3 = '#d5e2f6' -- title3, all the subtitles --previously #BED9ED
c_4 = '#eaf0fa' -- background for notes - also test: #f8f8ff - previously #d9ebff
-- font colours
c_ending = '#EB0000' -- former DeepPink
c_stem = '#002000'
c_black = '#000000'
c_cccccc = '#cccccc'
c_green = '#008000'
-- styles
font_cell = "" -- ?? find out what the default family is
fontsize_cell = "" -- the default is ??
-- apply colours - εφαρμογή χρωμάτων
ending_color = function(kataliksi)
return '<span style="color:' .. c_ending ..'; font-weight:normal;">' .. kataliksi .. '</span>'
end
stem_color = function(thema)
return '<span style="color:' .. c_stem ..'; font-weight:normal;">' .. thema .. '</span>'
end
infix_color = function(infix) -- this is not an inifix. It is part of 2nd stem.
return '<span style="color:' .. c_stem ..'; font-weight:normal;">' .. infix .. '</span>'
end
black_color = function(black_thing)
return '<span style="color:' .. c_black ..'; font-weight:normal;">' .. black_thing .. '</span>'
end
cccccc_color = function(cccccc_thing)
return '<span style="color:' .. c_cccccc ..'; font-weight:normal;">' .. cccccc_thing .. '</span>'
end
green_color = function(green_thing)
return '<span style="color:' .. c_green ..'; font-weight:normal;">' .. green_thing .. '</span>'
end
-- no need for lang_link. Go to top of page
-- ====================== Links
create_link = function(page, text)
if text then
return '[[' .. page .. '|' .. text .. ']]'
else
return '[[' .. page .. ']]'
end
end
-- for klisi1 it controls stem and ending
linkcontrol2 = function(thema, kataliksi)
thema = thema or '' -- needed when calling χχθ in functions like 'θάλασσα'
kataliksi = kataliksi or '' -- this was needed after introducing params for WORDS like οεΛ, γεΛ, etc.
return create_link(thema .. kataliksi, stem_color(thema) .. ending_color(kataliksi))
end
---for klisi2 + infix πρόσφυμα it controls stem, infix and ending
linkcontrol3 = function(thema, infix, kataliksi)
thema = thema or '' -- PROBLEM at klisi2 for [[γυναικολόι]] with α=εν (sg only) AND γε=- (no gen.sg)
return create_link(thema .. infix .. kataliksi, stem_color(thema) .. infix_color(infix) .. ending_color(kataliksi))
end
-- Errors -- use it with writing: if blahblah then return errorhere('xxxxxx') end
errorhere = function(errstring)
return '<div class="error">' .. errstring .. '</div>[[Κατηγορία:Σελίδες με σφάλματα στο πρότυπο κλίσης ουσιαστικών (νέα ελληνικά)]]'
end
--------------------------------------------------------------------------
-- 3. TABLE / ΠΙΝΙΚΑΣ --
--------------------------------------------------------------------------
-- by Flyax and Xoristzatziki (2015-2018)
-- additions: 2020
fulltable = function(args)
-- table: -- note: in some browsers, border is not visible. Need border="1"
float = args['float'] or ''
if args['float'] == 'left' then
table_style1 = 'style="clear:left; float:left; position:relative; margin: 0px 1.5em 0.5em 0px; background:#ffffff; border:1px solid' .. c_border ..'; text-align:left;" rules="none" cellpadding="3" cellspacing="0"'
elseif args['float'] == 'center' then
table_style1 = 'style="margin-left:auto; margin-right:auto; margin-bottom:0.5em; background:#ffffff; border:1px solid' .. c_border ..'; text-align:center;" rules="none" cellpadding="3" cellspacing="0"'
else
table_style1 = 'style="clear:right; float:right; margin-left:0.5em; margin-bottom:0.5em;background:#ffffff; border:1px solid' .. c_border ..'; text-align:right;" rules="none" cellpadding="3" cellspacing="0"'
end
-- DO NOT use cat-extra in pages (needs lang_name). Use κατηγ or υποκατ
-- =============== LANGUAGES for categories and notes in appendix
-- only el (νέα ελληνικά) -- πιθανόν να προστεθούν διαλεκτικές κλίσεις
lang_iso = lang_iso or 'el'
-- lang_link = languages[lang_iso]['link'] or ''
lang_name = languages[lang_iso]['name'] or ''
lang_name = 'νέα ελληνικά'
-- =============== gender of numbers if different ([[πλούτος]])
local gender = ''
local gender_en = ''
if args['γένος_εν'] ~= 'αρσενικό' and args['γένος_εν'] ~= 'θηλυκό' and args['γένος_εν'] ~= 'ουδέτερο' and args['γένος_εν'] ~= 'κοινό' then args['γένος_εν'] = '' end
if args['γένος_εν'] == 'κοινό' then args['γένος_εν'] = 'κοινού γένους' end -- όπως στο [[βουλευτής]]
if args['γένος_εν'] == 'αρσενικό' then args['γένος_εν'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]' end
if args['γένος_εν'] == 'θηλυκό' then args['γένος_εν'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]' end
if args['γένος_εν'] == 'ουδέτερο' then args['γένος_εν'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]' end
local gender_pl = ''
if args['γένος_πλ'] ~= 'αρσενικό' and args['γένος_πλ'] ~= 'θηλυκό' and args['γένος_πλ'] ~= 'ουδέτερο' and args['γένος_πλ'] ~= 'κοινό' then args['γένος_πλ'] = '' end
if args['γένος_πλ'] == 'κοινό' then args['γένος_πλ'] = 'κοινού γένους' end -- όπως [[Πρότυπο:el-κλίση-'γλου']]
if args['γένος_πλ'] == 'αρσενικό' then args['γένος_πλ'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]' end
if args['γένος_πλ'] == 'θηλυκό' then args['γένος_πλ'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]' end
if args['γένος_πλ'] == 'ουδέτερο' then args['γένος_πλ'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]' end
local gender_pl2 = '' -- 2ος πληθυντικός όπως [[Πρότυπο:el-κλίση-'βράχος']]
if args['γένος_πλ2'] ~= 'αρσενικό' and args['γένος_πλ2'] ~= 'θηλυκό' and args['γένος_πλ2'] ~= 'ουδέτερο' and args['γένος_πλ2'] ~= 'κοινό' then args['γένος_πλ2'] = args['γένος_πλ2'] or '' end
if args['γένος_πλ2'] == 'κοινό' then args['γένος_πλ2'] = 'κοινού γένους' end -- όπως [[Πρότυπο:el-κλίση-'Οικονόμου']]
if args['γένος_πλ2'] == 'αρσενικό' then args['γένος_πλ2'] = '[[αρσενικό|' .. black_color('αρσενικό') .. ']]' end
if args['γένος_πλ2'] == 'θηλυκό' then args['γένος_πλ2'] = '[[θηλυκό|' .. black_color('θηλυκό') .. ']]' end
if args['γένος_πλ2'] == 'ουδέτερο' then args['γένος_πλ2'] = '[[ουδέτερο|' .. black_color('ουδέτερο') .. ']]' end
-- =============== strin parameters
-- numbers
local sg_title_str = '' -- singularis title string / ἑνικός
-- local sg2_title_str = '' -- 2nd singular column NOT USED in this module
local pl_title_str = '' -- pluralis title / πληθυντικός
local pl2_title_str = '' -- 2nd plural title / 2ος πληθυντικός αν υπάρχει like [[βράχος]]
-- cases
local nom_sg_str = '' -- nominativus singularis / ονομαστική ενικός
local nom_pl_str = ''
local nom_pl2_str = ''
local gen_sg_str = '' -- genitivus / γενική
local gen_pl_str = ''
local gen_pl2_str = ''
local acc_sg_str = '' -- accusativus / αιτιατική
local acc_pl_str = ''
local acc_pl2_str = ''
local voc_sg_str = '' -- vocativus / κλητική
local voc_pl_str = ''
local voc_pl2_str = ''
-- articles
local a_nom_sg_str = ''
local a_nom_pl_str = ''
local a_nom_pl2_str = ''
local a_gen_sg_str = ''
local a_gen_pl_str = ''
local a_gen_pl2_str = ''
local a_acc_sg_str = ''
local a_acc_pl_str = ''
local a_acc_pl2_str = ''
local a_voc_sg_str = ''
local a_voc_pl_str = ''
local a_voc_pl2_str = ''
-- άρθρα - ARTICLES ===========================================================
require ('Module:el-articles').articles (args)
-- σημειώσεις - NOTES ========================================================
local paratirisi = '' -- notes by editor
local note = args['σημ'] or '' -- standard notes by Template
local appendix = '' -- standard link to the Appendix [[Παράρτημα:Ουσιαστικά (νέα ελληνικά)]]
local append = '' -- link to Appendix at specific paradigm
local as_in = args['όπως'] or '' -- editor must add: e.g. θηλυκά#ασημόσκονη|ασημόσκονη
cat_decl = args['κατηγορία κλίσης'] or 'Ουσιαστικά'
typos = args['τύπος'] or args['κατ'] or ''
if as_in == '' or as_in == nil then append = '' else
if typos == '-' or typos == '' or typos == nil then
append = "όπως «[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)/" .. as_in .. ']]» - '
else
append = '[[:Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")|Κατηγορία]] όπως «[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)/" .. as_in .. ']]» - '
end
end
-- Αριθμοί - NUMBERS ===========================================================
local hassingular = true --(args['εν'] ~= nil)
if args['α'] == "πλ" or args['α2'] == "πλ" then hassingular = false end
-- α= Ουσιαστικά ΧΩΡΙΣ ενικό / singular does not exist
-- α2 = Ουσιαστικά στον πληθυντικό (υπάρχει και ενικός) / but singular exists elsewhere
local hasplural = true -- (args['πλ'] ~= nil)
if args['α'] == "εν" or args['α2'] == "εν" then hasplural = false end
-- note lines / παρατήρηση π.χ. στο [[χάλυβας]]
-- get 7 columns if plural2 exists
if args['γένος_πλ2'] ~= '' and args['γένος_πλ2'] ~= nil then
if args['σημ'] ~= '' or args['σημ'] ~= nil then -- pre-edited notes όπως στο ίδης: [[Πρότυπο:el-κλίση-'ίδης']]
if not (args['παρατήρηση'] == nil or mw.ustring.len(args['παρατήρηση']) < 1) then
paratirisi = '|-' .. "\n" .. [=[| colspan="7" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
paratirisi = paratirisi .. note .. '<br>' .. args['παρατήρηση'] .. "\n"
else
paratirisi = '|-' .. "\n" .. [=[| colspan="7" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
paratirisi = paratirisi .. note .. "\n"
end
end
if args['σημ'] == '' or args['σημ'] == nil then
if not (args['παρατήρηση'] == nil or mw.ustring.len(args['παρατήρηση']) < 1) then
paratirisi = '|-' .. "\n" .. [=[| colspan="7" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
paratirisi = paratirisi .. args['παρατήρηση'] .. "\n"
else
paratirisi = ''
end
end
-- appendix
if args['παράρτημα'] == '-' then appendix = ''
cat_decl = args['κατηγορία κλίσης'] or 'Ουσιαστικά'
elseif args['κατηγορία κλίσης'] == 'Επώνυμα' or args[1] == "επ+" or args[1] == "επ-ον" then -- check [[Οικονόμου]] (επ-ον check --- )
appendix = '|-' .. "\n" .. [=[| colspan="7" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
appendix = appendix .. '[[Παράρτημα:Ονόματα και επώνυμα στα ελληνικά|Ονοματεπώνυμα]] -'
.. append .. '[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)|<span title="Παράρτημα:Ουσιαστικά">Παράρτημα:Ουσιαστικά</span>]]' .. "\n"
elseif args['παράρτημα'] ~= '-' and args['παράρτημα'] ~= '' and args['παράρτημα'] ~= nil then
appendix = '|-' .. "\n" .. [=[| colspan="7" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
appendix = appendix .. append .. args['παράρτημα'] .. "\n"
else
appendix = '|-' .. "\n" .. [=[| colspan="7" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
appendix = appendix .. append .. '[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)|<span title="Παράρτημα:Ουσιαστικά">Παράρτημα:Ουσιαστικά</span>]]' .. "\n"
end
else --if there is NO 2nd plural get 5 columns (which seems to be working for only one number too!)
if args['σημ'] ~= '' or args['σημ'] ~= nil then
if not (args['παρατήρηση'] == nil or mw.ustring.len(args['παρατήρηση']) < 1) then
paratirisi = '|-' .. "\n" .. [=[| colspan="5" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
paratirisi = paratirisi .. note .. '<br>' .. args['παρατήρηση'] .. "\n"
else
paratirisi = '|-' .. "\n" .. [=[| colspan="5" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
paratirisi = paratirisi .. note .. "\n"
end
end
if args['σημ'] == '' or args['σημ'] == nil then
if not (args['παρατήρηση'] == nil or mw.ustring.len(args['παρατήρηση']) < 1) then
paratirisi = '|-' .. "\n" .. [=[| colspan="5" align="left" style="background:]=] .. c_4 .. [=[; font-size:80%; line-height:100%;" | ]=]
paratirisi = paratirisi .. args['παρατήρηση'] .. "\n"
else
paratirisi = ''
end
end
-- appendix
if args['παράρτημα'] == '-' then appendix = ''
elseif args['κατηγορία κλίσης'] == 'Επώνυμα' or args[1] == "επ+" or args[1] == "επ-ον" then -- check [[Αγγελίδης]] (επ-ον check [[Πολυχρόνης]])
appendix = '|-' .. "\n" .. [=[| colspan="5" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
appendix = appendix .. '[[Παράρτημα:Ονόματα και επώνυμα στα ελληνικά|Ονοματεπώνυμα]] - ' .. append .. '[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)|<span title="Παράρτημα:Ουσιαστικά">Παράρτημα:Ουσιαστικά</span>]]' .. "\n"
elseif args['παράρτημα'] ~= '-' and args['παράρτημα'] ~= '' and args['παράρτημα'] ~= nil then
appendix = '|-' .. "\n" .. [=[| colspan="5" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
appendix = appendix .. append .. args['παράρτημα'] .. "\n"
else
appendix = '|-' .. "\n" .. [=[| colspan="5" align="right" style="text-align:right; background:]=] .. c_4 .. [=[; font-size:70%; line-height:100%;" | ]=]
appendix = appendix .. append .. '[[Παράρτημα:Ουσιαστικά (νέα ελληνικά)|<span title="Παράρτημα:Ουσιαστικά">Παράρτημα:Ουσιαστικά</span>]]' .. "\n"
end
end -- close 2nd plural
-- columns (spaces added for good copy-paste result)
if hassingular then
-- make c_border, if not 5 columns (table_style1's border does not apply) check [[γιόκας]]
if args['α'] == 'εν' or args['α2'] == 'εν' then
sg_title_str = [=[! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_border ..
[=[;" colspan="2" align="center"| [[ενικός|<span title="ενικός αριθμός" style="color:black;">'''''ενικός'''''</span>]] ]=] .. "\n"
gender_en = [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['γένος_εν'] .. "\n"
a_nom_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['αοε'] .. "\n" -- test m_art(args['αοε'])
nom_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[;" align="left" | ]=] .. args['οεΛ'] .. "\n"
a_gen_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['αγε'] .. "\n"
gen_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[;" align="left" | ]=] .. args['γεΛ'] .. "\n"
a_acc_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['ααε'] .. "\n"
acc_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[;" align="left" | ]=] .. args['αεΛ'] .. "\n"
a_voc_sg_str = [=[| align="center" | ]=] .. args['ακε'] .. "\n"
voc_sg_str = [=[| style="border-right:1px solid ]=] .. c_border .. [=[;" align="left" | ]=] .. args['κεΛ'] .. "\n"
else
sg_title_str = [=[! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_2 ..
[=[;" colspan="2" align="center"| [[ενικός|<span title="ενικός αριθμός" style="color:black;">'''''ενικός'''''</span>]] ]=] .. "\n"
gender_en = [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['γένος_εν'] .. "\n"
a_nom_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['αοε'] .. "\n" -- test m_art(args['αοε']) -- test m_art.articles(args['αοε'])
nom_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bord .. [=[;" align="left" | ]=] .. args['οεΛ'] .. "\n"
a_gen_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['αγε'] .. "\n"
gen_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bord .. [=[;" align="left" | ]=] .. args['γεΛ'] .. "\n"
a_acc_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['ααε'] .. "\n"
acc_sg_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_bord .. [=[;" align="left" | ]=] .. args['αεΛ'] .. "\n"
a_voc_sg_str = [=[| align="center" | ]=] .. args['ακε'] .. "\n"
voc_sg_str = [=[| style="border-right:1px solid ]=] .. c_bord .. [=[;" align="left" | ]=] .. args['κεΛ'] .. "\n"
end
end
if hasplural then
-- make c_border, if not 5 columns (table_style1's border does not apply) check [[Γάλλοι]]
if args['α'] == 'πλ' or args['α2'] == 'πλ' then
pl_title_str = [=[! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_border ..
[=[;" colspan="2" align="center"| [[πληθυντικός|<span title="πληθυντικός αριθμός" style="color:black;">'''''πληθυντικός'''''</span>]] ]=] .. "\n"
gender_pl = [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['γένος_πλ'] .. "\n"
a_nom_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['αοπ'] .. "\n"
nom_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[;" align="left" | ]=] .. args['οπΛ'] .. "\n"
a_gen_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['αγπ'] .. "\n"
gen_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[;" align="left" | ]=] .. args['γπΛ'] .. "\n"
a_acc_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['ααπ'] .. "\n"
acc_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[; border-right:1px solid ]=] .. c_border .. [=[;" align="left" | ]=] .. args['απΛ'] .. "\n"
a_voc_pl_str = [=[| align="center" | ]=] .. args['ακπ'] .. "\n"
voc_pl_str = [=[| style="border-right:1px solid ]=] .. c_border .. [=[;" align="left" | ]=] .. args['κπΛ'] .. "\n"
else
pl_title_str = [=[! style="background:]=] .. c_1 ..
[=[;" colspan="2" align="center"| [[πληθυντικός|<span title="πληθυντικός αριθμός" style="color:black;">'''''πληθυντικός'''''</span>]] ]=] .. "\n"
gender_pl = [=[| style="background:]=] .. c_2 ..
[=[; border-right:1px solid ]=] .. c_1 .. [=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['γένος_πλ'] .. "\n"
a_nom_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['αοπ'] .. "\n"
nom_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="left" | ]=] .. args['οπΛ'] .. "\n"
a_gen_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['αγπ'] .. "\n"
gen_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="left" | ]=] .. args['γπΛ'] .. "\n"
a_acc_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['ααπ'] .. "\n"
acc_pl_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="left" | ]=] .. args['απΛ'] .. "\n"
a_voc_pl_str = [=[| align="center" | ]=] .. args['ακπ'] .. "\n"
voc_pl_str = [=[| align="left" | ]=] .. args['κπΛ'] .. "\n"
end
end
-- 2nd plural - 2ος πληθυντικός όπως [[Πρότυπο:el-κλίση'βράχος']]
if args['γένος_πλ2'] ~= '' and args['γένος_πλ2'] ~= nil then
args['αοπ2'] = args['αοπ2'] or ''
args['αγπ2'] = args['αγπ2'] or ''
args['ααπ2'] = args['ααπ2'] or ''
args['οπΛ2'] = args['οπΛ2'] or ''
args['γπΛ2'] = args['γπΛ2'] or ''
args['απΛ2'] = args['απΛ2'] or ''
args['κπΛ2'] = args['κπΛ2'] or ''
end
if args['γένος_πλ2'] ~= '' and args['γένος_πλ2'] ~= nil then
pl2_title_str = [=[! style="background:]=] .. c_1 ..
[=[;" colspan="2" align="center"| [[πληθυντικός|<span title="πληθυντικός αριθμός" style="color:black;">'''''2ος πληθυντικός'''''</span>]] ]=] .. "\n"
gender_pl2 = [=[| style="background:]=] .. c_2 ..
[=[; border-right:1px solid ]=] .. c_1 .. [=[; font-size:70%; font-style:italic; line-height:100%;" colspan="2" align="center"| ]=] .. args['γένος_πλ2'] .. "\n"
a_nom_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['αοπ2'] .. "\n"
nom_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="left" | ]=] .. args['οπΛ2'] .. "\n"
a_gen_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['αγπ2'] .. "\n"
gen_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="left" | ]=] .. args['γπΛ2'] .. "\n"
a_acc_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="center" | ]=] .. args['ααπ2'] .. "\n"
acc_pl2_str = [=[| style="border-bottom:1px solid ]=] .. c_bord .. [=[;" align="left" | ]=] .. args['απΛ2'] .. "\n"
a_voc_pl2_str = [=[| align="center" | ]=] .. args['ακπ2'] .. "\n"
voc_pl2_str = [=[| align="left" | ]=] .. args['κπΛ2'] .. "\n"
end
-- and rows
-- row for genders if different in number ([[πλούτος]])
if (args['γένος_εν'] ~= '' or args['γένος_πλ'] ~= '') and args['γένος_πλ2'] == '' or args['γένος_πλ2'] == nil then gender =
'|-' .. "\n" .. [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; text-align:center; font-size:70%; line-height:100%;" align="center"| ]=] .. "\n" .. gender_en .. gender_pl .. [=[|-]=]
end
-- 2 plurals [[Πρότυπο:el-κλίση'βράχος']]
if (args['γένος_εν'] ~= '' or args['γένος_πλ'] ~= '') and args['γένος_πλ2'] ~= '' then gender =
'|-' .. "\n" .. [=[| style="background:]=] .. c_2 .. [=[; border-right:1px solid ]=] .. c_1 ..
[=[; text-align:center; font-size:70%; line-height:100%;" align="center"| ]=] .. "\n" .. gender_en .. gender_pl .. gender_pl2 .. [=[|-]=]
end
output = [=[{| ]=] .. table_style1 .. [=[
|-
! style="background:]=] .. c_1 .. [=[; border-right:1px solid ]=] .. c_2 ..
[=[; text-align:center; font-size:90%;" align="center"| ↓ ''πτώσεις'' ]=] ..
"\n" .. sg_title_str .. pl_title_str .. pl2_title_str .. gender .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
[=[; text-align:right; font-size:90%;"| [[ονομαστική|<span title="ονομαστική πτώση" style="color:black;">'''''ονομαστική'''''</span>]]]=] ..
"\n" .. a_nom_sg_str .. nom_sg_str .. a_nom_pl_str .. nom_pl_str .. a_nom_pl2_str .. nom_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
[=[; text-align:right; font-size:90%;"| [[γενική|<span title="γενική πτώση" style="color:black;">'''''γενική'''''</span>]]]=] ..
"\n" .. a_gen_sg_str .. gen_sg_str .. a_gen_pl_str .. gen_pl_str .. a_gen_pl2_str .. gen_pl2_str .. [=[|-
| style="background:]=] .. c_3 .. [=[; border-bottom:1px solid ]=] .. c_4 ..
[=[; text-align:right; font-size:90%;"| [[αιτιατική|<span title="αιτιατική πτώση" style="color:black;">'''''αιτιατική'''''</span>]]]=] ..
"\n" .. a_acc_sg_str .. acc_sg_str .. a_acc_pl_str .. acc_pl_str .. a_acc_pl2_str .. acc_pl2_str .. [=[|-
| style="background:]=] .. c_3 ..
[=[; text-align:right;"| [[κλητική|<span title="κλητική πτώση" style="color:black; font-size:90%;">'''''κλητική'''''</span>]]]=] ..
"\n" .. a_voc_sg_str .. voc_sg_str .. a_voc_pl_str .. voc_pl_str .. a_voc_pl2_str .. voc_pl2_str .. paratirisi .. appendix .. [=[|}]=]
--αφαιρείται, δίπλα από τη λέξη κλητική το: ([[ε|<span title="κλητικό επιφώνημα">ε</span>]]!)
--------------------------------------------------------------------------
-- 4. Categories / Κατηγορίες --
--------------------------------------------------------------------------
-- κατηγορία κλίσης = the PartOfSpeech (plus as ProperNouns, Surnames etc)
-- τύπος = the catchword of the category in quotation marks
-- κατ = overrides τύπος
-- and FREE categories
local page = mw.title.getCurrentTitle()
page.name = page.text:match( "^%s*(.-)%s*$" )
if page.namespace == 0 then
-- nocat e.g. [[-ανός]]
if (args['nocat'] ~= '' and args['nocat'] ~= nil) or (args['00'] ~= '' and args['00'] ~= nil) then
output = output
else
if args['κατηγορία'] ~= '' and args['κατηγορία'] ~= nil then -- free text for Category
output = output .. '[[Κατηγορία:' .. args['κατηγορία'] .. ' (' .. lang_name .. ')]]'
else
-- param κατ= για δημιουργία κατηγοριών που συμπληρώνει ο συντάκτης - editor creates Categories ad libitum
-- Υπερισχύει του 'τύπος' - It overrides 'τύπος'
cat_decl = args['κατηγορία κλίσης'] or 'Ουσιαστικά'
typos = args['τύπος'] or args['κατ'] or ''
if args['τύπος'] == '-' then output = output -- check [[πλους]] & control category: Κατηγορία:Ουσιαστικά που κλίνονται όπως το ''
else
if args['κατ'] ~= '' and args ['κατ'] ~= nil then
typos = args['κατ'] -- check ?
output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ")]]"
-- αν χρειαστούν ΔΥΟ παρόμοια, όπως στο [[σπετζοφάι]], μπορούμε να χρησιμοποιήσουμε free categories
else
typos = args['τύπος']
-- Υπο-Κατηγορίες για α, α2 / make subcategories for numbers
cat_decl = args['κατηγορία κλίσης'] or 'Ουσιαστικά'
-- SUPPRESS declensins in one number BY DEFAULT (from the functions) e.g. [[αιδώς]]
if args['α'] == 'εν' and (args['κατ'] == '' or args['κατ'] == nil) then
if args['sg-default'] == '1' then -- default at function for all the declension
output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
else
output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' χωρίς πληθυντικό (" .. lang_name .. ')]]'
end
elseif args['α'] == 'πλ' and (args['κατ'] == '' or args['κατ'] == nil) then
if args['pl-default'] == '1' then -- default at function for all the declension
output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
else
output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' χωρίς ενικό (" .. lang_name .. ')]]'
end
elseif args['α2'] == 'εν' and (args['κατ'] == '' or args['κατ'] == nil) then
if args['sg-default'] == '1' then -- default at function for all the declension
output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
else
output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' στον ενικό (" .. lang_name .. ')]]'
end
elseif args['α2'] == 'πλ' and (args['κατ'] == '' or args['κατ'] == nil) then
if args['pl-default'] == '1' then -- default at function for all the declension
output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
else
output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' στον πληθυντικό (" .. lang_name .. ')]]'
end
--
elseif (args['γε0'] ~= '' and args['γε0'] ~= nil) then output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' με δύσχρηστη γενική ενικού (" .. lang_name .. ')]]'
elseif (args['γπ0'] ~= '' and args['γπ0'] ~= nil) then output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' με δύσχρηστη γενική πληθυντικού (" .. lang_name .. ')]]'
elseif args['γε'] == '-' then output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' χωρίς γενική ενικού (" .. lang_name .. ')]]'
elseif args['γπ'] == '-' then output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' χωρίς γενική πληθυντικού (" .. lang_name .. ')]]'
else
--η γλώσσα στην κατηγορία θα είναι απαραίτητη αν υπάρχουν ίδιοι "τύποι" σε διαφορετικές γλώσσες.
output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' (" .. lang_name .. ')]]'
end -- close if typos=-
end -- close subcategories
end -- close 'κατ'
end -- close free text κατηγορία
-- genders / Κατηγορίες για γένη
if args['αρσ'] == '1' then output = output .. '[[Κατηγορία:' .. cat_decl .. ' αρσενικά (' .. lang_name .. ')]]' end
if args['θηλ'] == '1' then output = output .. '[[Κατηγορία:' .. cat_decl .. ' θηλυκά (' .. lang_name .. ')]]' end
if args['αθ'] == '1' then output = output .. '[[Κατηγορία:' .. cat_decl .. ' κοινού γένους (' .. lang_name .. ')]]' end
if args['ουδ'] == '1' then output = output .. '[[Κατηγορία:' .. cat_decl .. ' ουδέτερα (' .. lang_name .. ')]]' end
-- έξτρα: υποθετικό
-- + and args['υποκατ'] == '' βλ. [[τάρταρος]]
-- + when subgenders γένος_εν, βλ [[Οικονόμου]]
if args['αρσ'] ~= '1' and args['θηλ'] ~= '1' and args['αθ'] ~= '1' and args['ουδ'] ~= '1' and args['υποκατ'] == '' and (args['γένος_εν'] == '' or args['γένος_πλ'] == '' or args['γένος_εν'] == '') then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' χωρίς γένος (' .. lang_name .. ')]]'
end
-- numbers / Κατηγορίες για τον αριθμό
if args['α'] == 'εν' then output = output .. '[[Κατηγορία:' .. cat_decl .. ' χωρίς πληθυντικό (' .. lang_name .. ')]]' end -- singularia tanutm
if args['α'] == 'πλ' then output = output .. '[[Κατηγορία:' .. cat_decl .. ' χωρίς ενικό (' .. lang_name .. ')]]' end -- pluralia tantum
if args['α2'] == 'εν' then output = output .. '[[Κατηγορία:' .. cat_decl .. ' στον ενικό (' .. lang_name .. ')]]' end -- mostly in the singular
if args['α2'] == 'πλ' then output = output .. '[[Κατηγορία:' .. cat_decl .. ' στον πληθυντικό (' .. lang_name .. ')]]' end -- mostly in the plural
-- κοινό
args['κοινό'] = args['κοινό'] or ''
if args['κοινό'] ~= '' and args['κοινό'] ~= nil then
args['κοινό'] = ' ' .. args['κοινό']
output = output .. '[[Κατηγορία:Πολυλεκτικοί όροι με ένα κλιτό (' .. lang_name .. ')]]' end
if args['κοινό'] ~= '' and args['κοινό'] ~= nil and args['αρσ'] == '1' then
output = output .. '[[Κατηγορία:Κλίση αρσενικών πολυλεκτικών όρων με ένα κλιτό (' .. lang_name .. ')]]' end
if args['κοινό'] ~= '' and args['κοινό'] ~= nil and args['θηλ'] == '1' then
output = output .. '[[Κατηγορία:Κλίση θηλυκών πολυλεκτικών όρων με ένα κλιτό (' .. lang_name .. ')]]' end
if args['κοινό'] ~= '' and args['κοινό'] ~= nil and args['ουδ'] == '1' then
output = output .. '[[Κατηγορία:Κλίση ουδέτερων πολυλεκτικών όρων με ένα κλιτό (' .. lang_name .. ')]]' end
-- γενικές: αν εμφανίζεται ΜΟΝΟ στον αντίθετο αριθμό, να μην εισάγεται στην Κατηγορία
-- βλ. και επιμέρους functions όπου υπάρχει αυτή η σύμβαση (π.χ. όνομα, παιδάκι)
-- όπως (...)
if args['γε'] == '-' then
if args['α'] ~= 'πλ' and args['α2'] ~= 'πλ' then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' χωρίς γενική ενικού (' .. lang_name .. ')]]'
end
end
-- όπως [[χειροπέδη]] μόνο στον ενικό. Αν όμως εξακολουθεί να υπάρχει γπ2, να μην μπαίνει στην κατηγορία (όπως [[μπαγάσας]])
if args['γπ'] == '-' and args['γπ2'] == nil then
if args['α'] ~= 'εν' and args['α2'] ~= 'εν' then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' χωρίς γενική πληθυντικού (' .. lang_name .. ')]]'
end
end
-- δύσχρηστη γενική ενικού όπως [[λιοστάσι]]
if args['γε0'] ~= '' and args['γε0'] ~= nil then
if args['α'] ~= 'πλ' and args['α2'] ~= 'πλ' then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' με δύσχρηστη γενική ενικού (' .. lang_name .. ')]]'
end
end
-- δύχρηστη γενική πληθυντικού όπως [[σκόνη]], [[νότα]]
if args['γπ0'] ~= '' and args['γπ0'] ~= nil then
if args['α'] ~= 'εν' and args['α2'] ~= 'εν' then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' με δύσχρηστη γενική πληθυντικού (' .. lang_name .. ')]]'
end
end
-- ΑΛΛΕΣ ΚΑΤΗΓΟΡΙΕΣ
-- ανώμαλα (irregulars) --perhaps no needed
if args['ανώμ'] == '1' then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' ανώμαλα (' .. lang_name .. ')]]'
end
-- plus exceptions -- check [[μουσταλευριά]]
if args['εξ'] == '1' or args['εξαίρεση'] == '1' then
output = output .. '[[Κατηγορία:' .. cat_decl .. " που κλίνονται όπως το '" .. typos .. "' εξαιρέσεις (" .. lang_name .. ")]]"
end
-- check [[πλούτος]], (για πολυλεκτικούς όρους [[Πρότυπο:el-κλίση-όροι]])
-- ======= EXTRA CATEGORIES: zero is reserved for the module ONLY, not for editor
-- free category, ελεύθερη κατηγορία +part of speech + language
if args['υποκατ'] ~= '' and args ['υποκατ'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' ' .. args['υποκατ'] .. ' (' .. lang_name .. ')]]'
end
if args['υποκατ1'] ~= '' and args ['υποκατ1'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' ' .. args['υποκατ1'] .. ' (' .. lang_name .. ')]]'
end
if args['υποκατ2'] ~= '' and args ['υποκατ2'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' ' .. args['υποκατ2'] .. ' (' .. lang_name .. ')]]'
end
-- for Module use ONLY
if args['υποκατ0'] ~= '' and args ['υποκατ0'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' ' .. args['υποκατ0'] .. ' (' .. lang_name .. ')]]'
end
if args['υποκατ01'] ~= '' and args ['υποκατ01'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' ' .. args['υποκατ01'] .. ' (' .. lang_name .. ')]]'
end
if args['υποκατ02'] ~= '' and args ['υποκατ02'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' ' .. args['υποκατ02'] .. ' (' .. lang_name .. ')]]'
end
if args['υποκατ03'] ~= '' and args ['υποκατ03'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' ' .. args['υποκατ03'] .. ' (' .. lang_name .. ')]]'
end
if args['υποκατ04'] ~= '' and args ['υποκατ04'] ~= nil then
output = output .. '[[Κατηγορία:' .. cat_decl .. ' ' .. args['υποκατ01'] .. ' (' .. lang_name .. ')]]'
end
-- free category, ελεύθερη κατηγορία + language
if args['κατηγ0'] ~= '' and args['κατηγ0'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['κατηγ0'] .. ' (' .. lang_name .. ')]]'
end
if args['κατηγ'] ~= '' and args['κατηγ'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['κατηγ'] .. ' (' .. lang_name .. ')]]'
end
if args['κατηγ1'] ~= '' and args['κατηγ1'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['κατηγ1'] .. ' (' .. lang_name .. ')]]'
end
if args['κατηγ2'] ~= '' and args['κατηγ2'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['κατηγ2'] .. ' (' .. lang_name .. ')]]'
end
-- free category, ελεύθερη κατηγορία NO LANGUAGE no restrictions, write free text -- -- test Template [[λύσας]]
if args['cat-extra0'] ~= '' and args['cat-extra0'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['cat-extra0'] .. ']]'
end
if args['cat-extra'] ~= '' and args['cat-extra'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['cat-extra'] .. ']]'
end
if args['cat-extra1'] ~= '' and args['cat-extra1'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['cat-extra1'] .. ']]'
end
if args['cat-extra2'] ~= '' and args['cat-extra2'] ~= nil then
output = output .. '[[Κατηγορία:' .. args['cat-extra2'] .. ']]'
end
end -- close nocat
end -- close 'if namespace'
return output -- close fulltable
end
--------------------------------------------------------------------------
-- GENERAL DECLENSIONS / ΓΕΝΙΚΕΣ ΚΛΙΣΕΙΣ --
--------------------------------------------------------------------------
--------------------------------------------------------------------------
-- 5. klisi1 - the basic function --
--------------------------------------------------------------------------
-- by Flyax and Xoristzatziki (2015-2018)
-- alterations of command names: 2020
klisi1 = function(args)
-- lemma
local lemma = args['λήμμα'] or ''
PAGENAME = mw.title.getCurrentTitle().text
if lemma == '' then args['λήμμα'] = PAGENAME:match( "^%s*(.-)%s*$" )
else lemma = args['λήμμα']
end
-- stems if lemma is in plural number (οπ = nom.pl)
local stemnumber = 0
if args['α'] ~= "πλ" or args['α2'] ~= "πλ" then
stemnumber = tonumber(mw.ustring.len(args['οε']))
end
if args['α'] == "πλ" or args['α2'] == "πλ" then
stemnumber = tonumber(mw.ustring.len(args['οπ'])) -- but if λήμμα= it MUST be the plural
end
-- stems
local stem = {}
stem["θ"] = mw.ustring.sub(args['λήμμα'],1,-stemnumber-1)
stem["θ0"] = m_stems.word0(stem["θ"])
if stem["θ0"] == nil then return stem["θ"] end
stem["θ1"] = m_stems.word1(stem["θ0"])
stem["θ2"] = m_stems.word2(stem["θ0"]) -- για τον πληθ -ούμενες, -όμεν-ες του [[κατηγορουμένη]] -- [[Πρότυπο:el-κλίση-'κατηγορουμένη']]
-- συνδυασμοί
for i, ptwsi in ipairs({'οε', 'γε', 'γε2', 'αε', 'κε', 'κε2', 'κε0', 'οπ', 'οπ2', 'γπ', 'γπ0', 'γπ2', 'απ', 'απ2'}) do
if args[ptwsi .. 'θ'] == nil then args[ptwsi .. 'θ'] = "θ" end
end
for i, ptwsi in ipairs({'γε', 'γε2', 'γπ', 'γπ0', 'γπ2'}) do
if args[ptwsi] ~= nil then
if m_stems.hasaccent(args[ptwsi]) then args[ptwsi .. 'θ'] = "θ0" end
end
end
if args['οπ'] == "άδες" then
args['οπθ'] = "θ0"
args['απθ'] = "θ0"
end
if args['οπ2'] == "άδες" or args['οπ2'] == "αίοι" then
args['οπ2θ'] = "θ0"
args['απ2θ'] = "θ0"
end
if args['απ'] == nil then
args['απ'] = args['οπ']
args['απθ'] = args['οπθ']
end
if args['απ2'] == nil then
args['απ2'] = args['οπ2']
args['απθ2'] = args['οπθ2']
end
if args['κε'] == nil then args['κε'] = args['αε'] end
-- ---------- Χτίσιμο των τύπων - Generate forms ----------------- --
---- ονομαστική ενικού
args['οεΛ'] = linkcontrol2(stem[args['οεθ']], args['οε'])
---- γενική ενικού
if (args['γε'] == "-" or args['γε'] == "" or args['γε'] == nil) then
args['αγε'] = '-'
args['γεΛ'] = '<span style="color:#dddddd;">—</span>'
else
args['γεΛ'] = linkcontrol2(stem[args['γεθ']], args['γε'])
end
if args['γε0'] ~= nil then
args['γεΛ'] = '(' .. linkcontrol2(stem[args['γε0θ']], args['γε0']) .. ')' -- όπως στο [[λιοστάσι]]
end
-- [[Άρης]] γε2θ=Άρε γε2=ος
if args['γε2'] ~=nil and args['γε2'] ~= "" and args['γε2'] ~= "-" then
if args['γε2θ'] ~= '' and args['γε2θ'] ~= nil then args['γε2θ'] = args['γε2θ'] end -- ?? why it does not work?
-- 2 γενικές, 2 άρθρα για μερικά κοινού γένους. Δεν θέλω το &
if args['α2γε'] ~= '' and args['α2γε'] ~= nil then
args['γε2Λ'] = "<br />" .. linkcontrol2(stem[args['γε2θ']], args['γε2']) -- όπως στο [[συγγραφέας]] και τα κοινού γένους με ΔΕΥΤΕΡΟ άρθρο δίπλα τους
else
args['γε2Λ'] = "<br />& " .. linkcontrol2(stem[args['γε2θ']], args['γε2']) -- όπως στο [[λύση]]
end
else
args['γε2Λ'] = ''
end
args['γεΛ'] = args['γεΛ'] .. args['γε2Λ']
---- αιτιατική ενικού
args['αεΛ'] = linkcontrol2(stem[args['αεθ']], args['αε'])
if args['αε2'] ~= '' and args['αε2'] ~= nil then -- όπως τον κατάπλουν στο [[κατάπλους]], function 'απόπλους'
args['αε2Λ'] = "<br />& " .. linkcontrol2(stem[args['αεθ']], args['αε2'])
else
args['αε2Λ'] = "" -- πρόβλημα
end
args['αεΛ'] = args['αεΛ'] .. args['αε2Λ']
---- κλητική ενικού
if args['κε0'] ~= nil then
args['κεΛ'] = '(' .. linkcontrol2(stem[args['κε0θ']], args['κε0']) .. ')' -- όπως στο [[έρημος]]
else
args['κεΛ'] = linkcontrol2(stem[args['κεθ']], args['κε'])
end
if args['κε2'] ~= nil and args['κε2'] ~= "" and args['κε2'] ~= "-" then
if args['κε2'] == "0" then
args['κε2Λ'] = " (" .. create_link((stem['θ']), (stem_color(stem['θ']))) .. ')' -- όπως θε! στο [[θεός]]
else
args['κε2Λ'] = "<br />(" .. linkcontrol2(stem[args['κε2θ']], args['κε2']) .. ')' -- σε παρένθεση, όχι με αστερίσκο
end
else
args['κε2Λ'] = ""
end
args['κεΛ'] = args['κεΛ'] .. args['κε2Λ']
---- ΟΝΟΜΑΣΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ
if args['οπΛ'] == '-' then args['οπΛ'] = '<span style="color:#dddddd;">—</span>' else -- function θάλασσα for [[Αθήνα]]
args['οπΛ'] = linkcontrol2(stem[args['οπθ']], args['οπ'])
end
if args['οπ2'] ~= nil and args['οπ2'] ~= "" and args['οπ2'] ~= "-" then
args['οπ2Λ'] = "<br />& " .. linkcontrol2(stem[args['οπ2θ']], args['οπ2']) -- όπως στο [[πραματευτής]]
else
args['οπ2Λ'] = ''
end
args['οπΛ'] = args['οπΛ'] .. args['οπ2Λ']
args['κπΛ'] = args['οπΛ']
---- ΓΕΝΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ
-- Προσοχή: Να μην εξαφανίζει το άρθρο όταν υπάρχει γπ0 αντί για γπ όπως [[νότα]]
-- Προσοχή: Να μην εξαφανίζει το άρθρο όταν υπάρχει γπ2 με γπ=- όπως
if args['γπ'] == "-" and (args['γπ2'] == '' or args['γπ2'] == nil) then
args['αγπ'] = '-'
args['γπΛ'] = '<span style="color:#dddddd;">—</span>'
elseif args['γπ'] == "-" and (args['γπ2'] ~= '' or args['γπ2'] ~= nil) then
args['γπΛ'] = '<span style="color:#dddddd;">—</span>'
else
args['γπΛ'] = linkcontrol2(stem[args['γπθ']], args['γπ'])
end
if args['γπ0'] ~= nil then
args['γπΛ'] = '(' .. linkcontrol2(stem[args['γπ0θ']], args['γπ0']) .. ')' -- όπως στο [[σκόνη]]
end
if args['γπ2'] ~= '' and args['γπ2'] ~= nil and args['γπ2'] ~= "-" then
args['γπ2Λ'] = linkcontrol2(stem[args['γπ2θ']], args['γπ2']) -- όπως στο [[καρδινάλιος]]
if args['γπΛ'] ~= "" then
args['γπ2Λ'] = "<br />& " .. args['γπ2Λ']
end
else
args['γπ2Λ'] = ""
end
args['γπΛ'] = args['γπΛ'] .. args['γπ2Λ']
---- ΑΙΤΙΑΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ
if args['απΛ'] == '-' then args['απΛ'] = '<span style="color:#dddddd;">—</span>' else -- function θάλασσα for [[Αθήνα]]
args['απΛ'] = linkcontrol2(stem[args['απθ']], args['απ'])
end
if args['απ2'] ~=nil and args['απ2'] ~= "" and args['απ2'] ~= "-" then
-- 2 αιτιατ. πληθ, 2 άρθρα για μερικά κοινού γένους [[βιομήχανος]]. Δεν θέλω το &
if args['α2απ'] ~= '' and args['α2απ'] ~= nil then
args['απ2Λ'] = "<br />" .. linkcontrol2(stem[args['απ2θ']], args['απ2']) -- όπως στο [[βιομήχανος]] και τα κοινού γένους με ΔΕΥΤΕΡΟ άρθρο δίπλα τους
else
args['απ2Λ'] = "<br />& " .. linkcontrol2(stem[args['απ2θ']], args['απ2']) -- όπως στο [[καρδινάλιος]]
end
else
args['απ2Λ'] = ''
end
args['απΛ'] = args['απΛ'] .. args['απ2Λ']
---- ΚΛΗΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ
-- όπως η αιτιατική πληθυντικού
return fulltable(args)
end
--------------------------------------------------------------------------
-- 6. klisi2 - double stems (infix added) --
--------------------------------------------------------------------------
-- by Flyax and Xoristzatziki (2015-2018)
-- alterations: 2020
--κλίση ουδετέρων ουσιαστικών που παίρνουν επιπλέον σύμφωνο στο «θέμα», τσάι, προϊόν, μέλλον
klisi2 = function(args)
-- lemma
local lemma = args['λήμμα'] or ''
PAGENAME = mw.title.getCurrentTitle().text
if lemma == '' then args['λήμμα'] = PAGENAME:match( "^%s*(.-)%s*$" )
else lemma = args['λήμμα']
end
-- stems if lemma is in plural number (οπ = nom.pl)
local stemnumber = 0
if args['α'] ~= "πλ" or args['α2'] ~= "πλ" then
stemnumber = tonumber(mw.ustring.len(args['οε']))
end
if args['α'] == "πλ" or args['α2'] == "πλ" then
stemnumber = tonumber(mw.ustring.len(args['οπ'])) -- but if λήμμα= it MUST be the plural
end
local stem = {}
stem["θ"] = mw.ustring.sub(args['λήμμα'],1,-stemnumber-1)
stem["θ0"] = m_stems.word0(stem["θ"])
stem["θ1"] = m_stems.word1(stem["θ0"])
args['οεΛ'] = linkcontrol2(stem[args['οεθ']], args['οε'])
-- γε=- όπως στο [[σπετζοφάι]]
if (args['γε'] == "-" or args['γε'] == "" or args['γε'] == nil) then
args['αγε'] = '-'
args['γεΛ'] = '<span style="color:#dddddd;">—</span>'
else
args['γεΛ'] = linkcontrol3(stem[args['γεθ']], args['πρόσφ'], args['γε'])
end
args['αεΛ'] = args['οεΛ']
args['κεΛ'] = args['οεΛ']
args['οπΛ'] = linkcontrol3(stem[args['οπθ']], args['πρόσφ'], args['οπ'])
-- γπ==ιών όπως στο [[μπόι]]
if args['γπ0'] ~= "" and args['γπ0'] ~= nil then
args['γπΛ'] = '(' .. linkcontrol3(stem[args['γπθ']], args['πρόσφ'], args['γπ0']) .. ')'
-- γπ=- όπως στο [[σπετζοφάι]]
elseif (args['γπ'] == "-" or args['γπ'] == "" or args['γπ'] == nil) then
args['αγπ'] = '-'
args['γπΛ'] = '<span style="color:#dddddd;">—</span>'
else
args['γπΛ'] = linkcontrol3(stem[args['γπθ']], args['πρόσφ'], args['γπ'])
end
args['απΛ'] = args['οπΛ']
args['κπΛ'] = args['οπΛ']
return fulltable(args)
end
--------------------------------------------------------------------------
-- 7. FREE TABLE whole words or stems, endings, etc --
--------------------------------------------------------------------------
-- by Sarri.greek 2020
-- [[Πρότυπο:el-nouns-decl]]
--[=[
* για τους κωδικούς καταλήξεων με μηδέν (οε0=, γε0=, αε0=...) θεωρούμε, ότι το θέμα παραμένει όπως οε8, γε8, αε8, ...
Αν είναι αλλιώτικο, τότε χρησιμοποιούμε παράμετρο για ολόκληρη τη λέξη. Π.χ. γεΛ=([[....]])
]=]--
export.free = function(frame)
--local args = frame:getParent().args -- for Templates
local args = frame.args -- invoke
-- lemma. This is needed, to define the feminine accusative singular article (required Module:tin)
local lemma = args['λήμμα'] or ''
PAGENAME = mw.title.getCurrentTitle().text
if lemma == '' then args['λήμμα'] = PAGENAME:match( "^%s*(.-)%s*$" )
else lemma = args['λήμμα']
end
-- stems
local stem = {}
minusletters = args['μείον'] or ''
if args['μείον'] == '' and args['μείον'] == nil then args['μείον'] = 2 end
stem["θ"] = mw.ustring.sub(args['λήμμα'],1,-(minusletters+1))
stem["θ0"] = m_stems.word0(stem["θ"])
stem["θ1"] = m_stems.word1(stem["θ0"])
stem["θ2"] = m_stems.word2(stem["θ0"])
--
args['οεΛ'] = args['οεΛ'] or ''
args['γεΛ'] = args['γεΛ'] or ''
args['αεΛ'] = args['αεΛ'] or ''
args['κεΛ'] = args['κεΛ'] or ''
args['οπΛ'] = args['οπΛ'] or ''
args['γπΛ'] = args['γπΛ'] or ''
args['απΛ'] = args['απΛ'] or ''
args['κπΛ'] = args['κπΛ'] or ''
--
args['οε2Λ'] = args['οε2Λ'] or ''
args['γε2Λ'] = args['γε2Λ'] or ''
args['αε2Λ'] = args['αε2Λ'] or ''
args['κε2Λ'] = args['κε2Λ'] or ''
args['οπ2Λ'] = args['οπ2Λ'] or ''
args['γπ2Λ'] = args['γπ2Λ'] or ''
args['απ2Λ'] = args['απ2Λ'] or ''
args['κπ2Λ'] = args['κπ2Λ'] or ''
-- για γε, οπ, γπ, απ, κπ
args['πρόσφ'] = args['πρόσφ'] or ''
args['πρόσφ2'] = args['πρόσφ2'] or ''
args['κοινό1'] = args['κοινό1'] or ''
args['κοινό'] = args['κοινό'] or ''
-- ονομαστική ενικού PLUS stem only, ending='0' όπως [[πυρ]]
args['οεΛκειμ'] = args['οεΛκειμ'] or ''
args['οε2Λκειμ'] = args['οε2Λκειμ'] or ''
if args['οεθ'] == '' or args['οεθ'] == nil then
args['οεθ'] = stem["θ"]
else args['οεθ'] = args['οεθ']
end
if args['οε'] == '0' then -- το πυρ
args['οεΛ'] = args['κοινό1'] .. create_link((args['οεθ']), (stem_color(args['οεθ']))) .. args['κοινό'] .. args['οεΛκειμ']
end
if args['οε'] ~= '-' and args['οε'] ~= '0' and args['οε'] ~= '' and args['οε'] ~= nil then
args['οεΛ'] = args['κοινό1'] .. create_link((args['οεθ'] .. args['οε']), (stem_color(args['οεθ']) .. ending_color(args['οε']))) .. args['κοινό'] .. args['οεΛκειμ']
elseif args['οε'] == '-' then
args['οεΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['οεΛκειμ']
end
if args['οε2'] ~= '-' and args['οε2'] ~= '' and args['οε2'] ~= nil then
args['οε2Λ'] = '<br />& ' .. create_link((args['οε2θ'] .. args['οε2']), (stem_color(args['οε2θ']) .. ending_color(args['οε2']))) .. args['οε2Λκειμ']
elseif args['οε2'] == '-' then
args['οε2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['οε2Λκειμ']
end
if args['οε0'] ~= '' and args['οε0'] ~= nil then
args['οεΛ'] = '(' .. args['κοινό1'] .. create_link((args['οεθ'] .. args['οε0']), (stem_color(args['οεθ']) .. ending_color(args['οε0']))) .. args['κοινό'] .. ')' .. args['οεΛκειμ']
end
args['οεΛ'] = args['οεΛ'] .. args['οε2Λ']
-- γενική ενικού PLUS infix, PLUS stem only, ending='0' όπως [[νους]] του νου
args['γεΛκειμ'] = args['γεΛκειμ'] or ''
args['γε2Λκειμ'] = args['γε2Λκειμ'] or ''
if args['γεθ'] == '' or args['γεθ'] == nil then
args['γεθ'] = stem["θ"]
else args['γεθ'] = args['γεθ']
end
if args['γε'] == '0' then -- ο [[νους]], του νου
args['γεΛ'] = args['κοινό1'] .. create_link((args['γεθ']), (stem_color(args['γεθ']))) .. args['κοινό'] .. args['γεΛκειμ']
end
if args['γε'] ~= '-' and args['γε'] ~= '0' and args['γε'] ~= '' and args['γε'] ~= nil then
args['γεΛ'] = args['κοινό1'] .. create_link((args['γεθ'] .. args['πρόσφ'] .. args['γε']), (stem_color(args['γεθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['γε']))) .. args['κοινό'] .. args['γεΛκειμ']
elseif args['γε'] == '-' then
args['γεΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['γεΛκειμ']
end
if args['γε2'] ~= '-' and args['γε2'] ~= '' and args['γε2'] ~= nil then
-- δεύτερη γραμμή άρθρου για κοινού γένους ([[συγγραφέας]]) με 2 άρθρα, δεν θέλω το &
if args['α2γε'] ~= '' and args['α2γε'] ~= nil then
args['γε2Λ'] = '<br />' .. create_link((args['γε2θ'] .. args['πρόσφ2'] .. args['γε2']), (stem_color(args['γε2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['γε2']))) .. args['γε2Λκειμ']
else
args['γε2Λ'] = '<br />& ' .. create_link((args['γε2θ'] .. args['πρόσφ2'] .. args['γε2']), (stem_color(args['γε2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['γε2']))) .. args['γε2Λκειμ']
end
elseif args['γε2'] == '-' then
args['γε2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['γε2Λκειμ']
end
if args['γε0'] ~= '' and args['γε0'] ~= nil then
args['γεΛ'] = '(' .. args['κοινό1'] .. create_link((args['γεθ'] .. args['πρόσφ'] .. args['γε0']), (stem_color(args['γεθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['γε0']))) .. args['κοινό'] .. ')' .. args['γεΛκειμ']
end
args['γεΛ'] = args['γεΛ'] .. args['γε2Λ']
-- αιτιατική ενικού PLUS stem only, ending='0' όπως [[ισχύς]], την ισχύ
args['αεΛκειμ'] = args['αεΛκειμ'] or ''
args['αε2Λκειμ'] = args['αε2Λκειμ'] or ''
if args['αεθ'] == '' or args['αεθ'] == nil then
args['αεθ'] = stem["θ"]
else args['αεθ'] = args['αεθ']
end
if args['αε'] == '0' then -- την ισχύ, τον ιχθύ
args['αεΛ'] = args['κοινό1'] .. create_link((args['αεθ']), (stem_color(args['αεθ']))) .. args['κοινό'] .. args['αεΛκειμ']
end
if args['αε'] ~= '-' and args['αε'] ~= '0' and args['αε'] ~= '' and args['αε'] ~= nil then
args['αεΛ'] = args['κοινό1'] .. create_link((args['αεθ'] .. args['αε']), (stem_color(args['αεθ']) .. ending_color(args['αε']))) .. args['κοινό'] .. args['αεΛκειμ']
elseif args['αε'] == '-' then
args['αεΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['αεΛκειμ']
end
if args['αε2'] ~= '-' and args['αε2'] ~= '' and args['αε2'] ~= nil then
args['αε2Λ'] = '<br />& ' .. create_link((args['αε2θ'] .. args['αε2']), (stem_color(args['αε2θ']) .. ending_color(args['αε2']))) .. args['αε2Λκειμ']
elseif args['αε2'] == '-' then
args['αε2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['αε2Λκειμ']
end
if args['αε0'] ~= '' and args['αε0'] ~= nil then
args['αεΛ'] = '(' .. args['κοινό1'] .. create_link((args['αεθ'] .. args['αε0']), (stem_color(args['αεθ']) .. ending_color(args['αε0']))) .. args['κοινό'] .. ')' .. args['αεΛκειμ']
end
args['αεΛ'] = args['αεΛ'] .. args['αε2Λ']
-- κλητική ενικού PLUS stem only, ending='0' όπως [[ισχύς]], ω ισχύ!
args['κεΛκειμ'] = args['κεΛκειμ'] or ''
args['κε2Λκειμ'] = args['κε2Λκειμ'] or ''
if args['κεθ'] == '' or args['κεθ'] == nil then
args['κεθ'] = stem["θ"]
else args['κεθ'] = args['κεθ']
end
if args['κε'] == '0' then -- ω ισχύ, ω ιχθύ
args['κεΛ'] = args['κοινό1'] .. create_link((args['κεθ']), (stem_color(args['κεθ']))) .. args['κοινό'] .. args['κεΛκειμ']
end
if args['κε'] ~= '-' and args['κε'] ~= '0' and args['κε'] ~= '' and args['κε'] ~= nil then
args['κεΛ'] = args['κοινό1'] .. create_link((args['κεθ'] .. args['κε']), (stem_color(args['κεθ']) .. ending_color(args['κε']))) .. args['κοινό'] .. args['κεΛκειμ']
elseif args['κε'] == '-' then
args['κεΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['κεΛκειμ']
end
if args['κε2'] ~= '-' and args['κε2'] ~= '' and args['κε2'] ~= nil then
args['κε2Λ'] = '<br />& ' .. create_link((args['κε2θ'] .. args['κε2']), (stem_color(args['κε2θ']) .. ending_color(args['κε2']))) .. args['κε2Λκειμ']
elseif args['κε2'] == '-' then
args['κε2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['κε2Λκειμ']
end
if args['κε0'] ~= '' and args['κε0'] ~= nil then
args['κεΛ'] = '(' .. args['κοινό1'] .. create_link((args['κεθ'] .. args['κε0']), (stem_color(args['κεθ']) .. ending_color(args['κε0']))) .. args['κοινό'] .. ')' .. args['κεΛκειμ']
end
args['κεΛ'] = args['κεΛ'] .. args['κε2Λ']
-- ΟΝΟΜΑΣΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ PLUS infix
args['οπΛκειμ'] = args['οπΛκειμ'] or ''
args['οπ2Λκειμ'] = args['οπ2Λκειμ'] or ''
if args['οπθ'] == '' or args['οπθ'] == nil then
args['οπθ'] = stem["θ"]
else args['οπθ'] = args['οπθ']
end
if args['οπ'] ~= '-' and args['οπ'] ~= '' and args['οπ'] ~= nil then
args['οπΛ'] = args['κοινό1'] .. create_link((args['οπθ'] .. args['πρόσφ'] .. args['οπ']), (stem_color(args['οπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['οπ']))) .. args['κοινό'] .. args['οπΛκειμ']
elseif args['οπ'] == '-' then
args['οπΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['οπΛκειμ']
end
if args['οπ2'] ~= '-' and args['οπ2'] ~= '' and args['οπ2'] ~= nil then
args['οπ2Λ'] = '<br />& ' .. create_link((args['οπ2θ'] .. args['πρόσφ2'] .. args['οπ2']), (stem_color(args['οπ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['οπ2']))) .. args['οπ2Λκειμ']
elseif args['οπ2'] == '-' then
args['οπ2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['οπ2Λκειμ']
end
if args['οπ0'] ~= '' and args['οπ0'] ~= nil then
args['οπΛ'] = '(' .. args['κοινό1'] .. create_link((args['οπθ'] .. args['πρόσφ'] .. args['οπ0']), (stem_color(args['οπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['οπ0']))) .. args['κοινό'] .. ')' .. args['οπΛκειμ']
end
args['οπΛ'] = args['οπΛ'] .. args['οπ2Λ']
-- ΓΕΝΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ PLUS infix Check [[κανάγιας]]
args['γπΛκειμ'] = args['γπΛκειμ'] or ''
args['γπ2Λκειμ'] = args['γπ2Λκειμ'] or ''
if args['γπθ'] == '' or args['γπθ'] == nil then
args['γπθ'] = stem["θ"]
else args['γπθ'] = args['γπθ']
end
-- όπως [[κανάγιας]], των - + check [[ναύλος]]
if args['γπ'] ~= '-' and args['γπ'] ~= '' and args['γπ'] ~= nil then
args['γπΛ'] = args['κοινό1'] .. create_link((args['γπθ'] .. args['πρόσφ'] .. args['γπ']), (stem_color(args['γπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['γπ']))) .. args['κοινό'] .. args['γπΛκειμ']
elseif args['γπ'] == '-' then
args['γπΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['γπΛκειμ']
end
if args['γπ2'] ~= '-' and args['γπ2'] ~= '' and args['γπ2'] ~= nil then
args['γπ2Λ'] = '<br />& ' .. create_link((args['γπ2θ'] .. args['πρόσφ2'] .. args['γπ2']), (stem_color(args['γπ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['γπ2']))) .. args['γπ2Λκειμ']
elseif args['γπ2'] == '-' then
args['γπ2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['γπ2Λκειμ']
end
if args['γπ0'] ~= '' and args['γπ0'] ~= nil then
args['γπΛ'] = '(' .. args['κοινό1'] .. create_link((args['γπθ'] .. args['πρόσφ'] .. args['γπ0']), (stem_color(args['γπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['γπ0']))) .. args['κοινό'] .. ')' .. args['γπΛκειμ']
end
args['γπΛ'] = args['γπΛ'] .. args['γπ2Λ']
-- ΑΙΤΙΑΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ PLUS infix
args['απΛκειμ'] = args['απΛκειμ'] or ''
args['απ2Λκειμ'] = args['απ2Λκειμ'] or ''
if args['απθ'] == '' or args['απθ'] == nil then
args['απθ'] = stem["θ"]
else args['απθ'] = args['απθ']
end
if args['απ'] ~= '-' and args['απ'] ~= '' and args['απ'] ~= nil then
args['απΛ'] = args['κοινό1'] .. create_link((args['απθ'] .. args['πρόσφ'] .. args['απ']), (stem_color(args['απθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['απ']))) .. args['κοινό'] .. args['απΛκειμ']
elseif args['απ'] == '-' then
args['απΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['απΛκειμ']
end
if args['απ2'] ~= '-' and args['απ2'] ~= '' and args['απ2'] ~= nil then
-- 2 αιτιατ. πληθ, 2 άρθρα για μερικά κοινού γένους [[βιομήχανος]]. Δεν θέλω το &
if args['α2απ'] ~= '' and args['α2απ'] ~= nil then
args['απ2Λ'] = '<br />' .. create_link((args['απ2θ'] .. args['πρόσφ2'] .. args['απ2']), (stem_color(args['απ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['απ2']))) .. args['απ2Λκειμ']
else
args['απ2Λ'] = '<br />& ' .. create_link((args['απ2θ'] .. args['πρόσφ2'] .. args['απ2']), (stem_color(args['απ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['απ2']))) .. args['απ2Λκειμ']
end
elseif args['απ2'] == '-' then
args['απ2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['απ2Λκειμ']
end
if args['απ0'] ~= '' and args['απ0'] ~= nil then
args['απΛ'] = '(' .. args['κοινό1'] .. create_link((args['απθ'] .. args['πρόσφ'] .. args['απ0']), (stem_color(args['απθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['απ0']))) .. args['κοινό'] .. ')' .. args['απΛκειμ']
end
args['απΛ'] = args['απΛ'] .. args['απ2Λ']
-- ΚΛΗΤΙΚΗ ΠΛΗΘΥΝΤΙΚΟΥ PLUS infix
args['κπΛκειμ'] = args['κπΛκειμ'] or ''
args['κπ2Λκειμ'] = args['κπ2Λκειμ'] or ''
if args['κπθ'] == '' or args['κπθ'] == nil then
args['κπθ'] = stem["θ"]
else args['κπθ'] = args['κπθ']
end
if args['κπ'] ~= '-' and args['κπ'] ~= '' and args['κπ'] ~= nil then
args['κπΛ'] = args['κοινό1'] .. create_link((args['κπθ'] .. args['πρόσφ'] .. args['κπ']), (stem_color(args['κπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['κπ']))) .. args['κοινό'] .. args['κπΛκειμ']
elseif args['κπ'] == '-' then
args['κπΛ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['κπΛκειμ']
end
if args['κπ2'] ~= '-' and args['κπ2'] ~= '' and args['κπ2'] ~= nil then
args['κπ2Λ'] = '<br />& ' .. create_link((args['κπ2θ'] .. args['πρόσφ2'] .. args['κπ2']), (stem_color(args['κπ2θ']) .. infix_color(args['πρόσφ2']) .. ending_color(args['κπ2']))) .. args['κπ2Λκειμ']
elseif args['κπ2'] == '-' then
args['κπ2Λ'] = '<span style="text-align:center; color:#dddddd;">—</span>' .. args['κπ2Λκειμ']
end
if args['κπ0'] ~= '' and args['κπ0'] ~= nil then
args['κπΛ'] = '(' .. args['κοινό1'] .. create_link((args['κπθ'] .. args['πρόσφ'] .. args['κπ0']), (stem_color(args['κπθ']) .. infix_color(args['πρόσφ']) .. ending_color(args['κπ0']))) .. args['κοινό'] .. ')' .. args['κπΛκειμ']
end
args['κπΛ'] = args['κπΛ'] .. args['κπ2Λ']
-- 2ος πληθυντικός
args['οπΛ2'] = args['οπΛ2'] or ''
args['γπΛ2'] = args['γπΛ2'] or ''
args['απΛ2'] = args['απΛ2'] or ''
args['κπΛ2'] = args['κπΛ2'] or ''
return fulltable(args)
end
--------------------------------------------------------------------------
-- 8. SPECIFIC TEMPLAGES / ΕΠΙΜΕΡΟΥΣ ΠΡΟΤΥΠΑ --
--------------------------------------------------------------------------
-- =================== α...ω ======================= --
-- see [[Module:el-nouns-decl/functions]]
return export