Module:ετυμολογίατεκμ/doc « Module:ετυμολογία/τεστ


Module:etymology: Το Module:ετυμολογία δημιουργεί 13 πρότυπα ετυμολογίας διπλής κατεύθυνσης (με γλώσσα δότρια και γλώσσα αποδέκτρια) και 2 μορφολογικά (υποκοριστικό, μεγεθυντικό).
Οι κωδικοί των γλωσσών αντλούνται από το Module:Languages.
Καλείται από τα πρότυπα

  • {{ετυμ}} (προέλευση. Γενική κατηγορία-ομπρέλα για κάθε είδους ετυμολογική σχέση) & {{ετυ}} (δημιουργία λέξεων)
  • {{δαν}} (δάνειο), {{λδαν}} (λόγιο δάνειο),{{μτφδ}} (μεταφραστικό δάνειο), {{απόδ}} (απόδοση), {{σμσδ}} (σημασιολογικό δάνειο), {{οπτδ}} (οπτικό δάνειο), {{ορθδ}} (ορθογραφικό δάνειο), {{φων}} (φωνητική απόδοση), {{μτγρ}} (μεταγραφή)
  • {{κλη}} (κληρονομιά), {{λδδ}} (λόγιος διαχρονικός δανεισμός ή αναβίωση)

που εντάσσουν τα λήμματα σε σχετικές ετυμολογικές Κατηγορίες.
Tρόπος γραφής:

{{ετυμ|<κωδικός γλώσσας δότριας>|<κωδικός γλώσσας αποδέκτριας>|<λέξη δότρια>|<άλλη εμφάνιση λέξης>}}

Γενικές παρατηρήσεις:

  • Στη θέση#2 για τον κωδικό iso της γλώσσας αποδέκτριας, δε χρειάζεται να γράφουμε κωδικό για τα νέα ελληνικά (el) γιατί εννοείται αυτομάτως. Μπορεί να μένει κενή. Συνιστάται όμως να το συμπληρώνουμε.
  • Προαιρετικές είναι οι θέσεις #3 και #4 για το σύνδεσμο ακριβείας με τη λέξη δότρια
  • Όλα τα πρότυπα δέχονται τις παραμέτρους:
    |notext=1 ή |0=-
    |nocat=1 ή |00=-
    |nodisplay=1 ή |000=-
    |text=1 ή |κειμ=1 εμφανίζει ανεπτυγμένο κείμενο
  • και για τη λέξη δότρια συμπληρώνουμε τις παραμέτρους
    |tr= ή |γ= transliteration, η διεθνής μεταγραφή
    |t= ή |μ= translation, μετάφραση: μία λέξη με σύνδεσμο
    |tnl= ή |μχωρίς= translation no link, μετάφραση: ελεύθερο κείμενο χωρίς συνδέσμους (γράφουμε ό,τι θέλουμε)
  • Ειδική παράμετρος για πολυπληθείς υποκατηγορίες σε ορισμένα Πρότυπα:
    |τύπος= με επιλογές όπως: επώνυμο, όνομα, τοπωνύμιο και ειδικά για τα αρχαία ελληνικά: πατρωνυμικό (όπως Ἀτρείδης)
  • Δείτε τις οδηγίες τους για λεπτομέρειες.

Επιπλέον, το module καλείται από τα πρότυπα {{υπο}} (για υποκοριστικά), {{μεγ}} (για μεγεθυντικά) με παράμετρο |nocat=|00=)
Επίσης, ΧΩΡΙΣ ΚΑΤΗΓΟΡΙΕΣ: το πρότυπο {{μσν}} για απλή αναγραφή του όρου (μεσαιωνική ελληνική), το {{αρχ}}
Για τους συντάκτες ξένων γλωσσών, υπάρχουν λατινογράμματες εναλλακτικές ονομασίες των προτύπων.
Έλεγχος για λάθη / Check errors: Κατηγορία:Σελίδες με σφάλματα στο πρότυπο ετυμολογίας


Δείτε και Βοήθεια:Ετυμολογία.

  • δοκιμάστε εδώ κάποιο τεστ

Προβλήματα

Έλεγχος για λάθη / Check errors: Κατηγορία:Σελίδες με σφάλματα στο πρότυπο ετυμολογίας

  • τα warngings και τα errors χρειάζονται επανασχεδιασμό. 2019.08.01.

--[=[
-- Οι Κατηγορίες ενεργοποιούνται με το  / Categories are generated with
	[[Πρότυπο:auto cat]] από το [[Module:auto cat/data]]
ΔΙΑΤΑΞΗ - STRUCTURE
	Α. Προκαταρκτικά - Preliminaries
	Β. functions ετυμολογίας
		ετυμ (προέλευση από - derived from/originates), 
		δάνειο (borrowed), λόγιο δάνειο (learned borrowing), μεταφραστικό δάνειο (calque),
			απόδοση (free translation), φωνητική απόδοση
			σημασιολογικό δάνειο (semantic loan), ορθογραφικό δάνειο (orthographic borrowing),
		κληρονομιά (inherited), λόγιο διαχρονικό δάνειο ή αναβίωση (revival or learned diachronic borrowing)
	Γ. functions μορφολογίας
		υποκοριστικό (diminutive), μεγεθυντικό (augmentative)
	Δ. παλαιότερες function, δοκιμαστικές
		ισχύει η μσν (μεσαιωνική - mediaeval)
ΗΜΕΡΟΛΟΓΙΟ / LOG
	2024.12.15. + [[Πρότυπο:οπτδ]] και διάκριση οπτικών δανείων (visual loanwords) το orthographic ορθδ όπως [[ΝΑΤΟ]]
		[[Βικιλεξικό:Βικιδημία/2024#ορθογραφικά και οπτικά δάνεια]]
	2024.12.15 διόρθωση ety= Δημιουργία (όχι παραγωγή, γιατί είναι και παράγωγα και σύνθετα)
	2023.10.09. add τύπος= στο ετυ / ety , μτφδ function
	2023.01.01 larger font-size for arabic and Han character scripts similar to [[Module:Πρότυπο:λ]]
	2022.02.09. family languages in plural e.g. sem, ine-ana, bnt should NOT have tin_or_ti article
		and should use languages from (...ής προέλευσης) instead of frm (feminine)
	2021.06.24. param nodisplay=1 ή 000=-  Tried to split in mytext + mycat but is too late.
		param +word 'root' at function link_language & Template:etym
	2021.01.30. μτγρ / translit (Μεταγραμμένοι όροι) (διαφορά ονομασίας από γενική [[:Κατηγορία:Μεταγραφές]]) 
		Είναι μεταγραφές (είτε φωνητικές, είτε ορθογραφικές) κυρίως επωνύμων και τοπωνυμίων.
	2020.11.15. +cattype (τύπος=όνομα, επώνυμο, τοπωνύμια) και στα ορθδ, φων + 2020.11.24. λδαν.
	2020.11.05. ascii sort παντού
	2020.11.03. Αλλαγή της έκφρασης ...ικές λέξεις ...ής προέλευσης ([[Module:Languages]].words+from)
		σε standard Προέλευση λέξεων +apota (γλώσσσ δέκτης) για χρήση στο [[Module:auto cat]]
		Η ομοιόμορφη με τις άλλες έκφραση, εγκρίθηκε στο [[Βικιλεξικό:Βικιδημία/2020#Ερώτηση προς όλους για auto cat]]
	2020.08.31. style για σύνδεσμο ονομασίας γλωσσών χωρίς μπλε (function link_language) διότι επισημένθηκε ότι μαζεύονται πάρα πολλά μπλε links στην Ετυμολογία
	2020.08.23. LINK/noasterisc section: elseif lang_donor_iso == 'gmy2' then / require [[Module:Linb-translit]]
			-- 2020.09.10. needs correction. It links EVERY word to Module:Linb-translit.
	2020.07.29. function ετυ Παραγωγή λέξεων από τα... (ανά γλώσσα)
	2020.05.10. ειδικά για το 'ετυμ', 'κλη' και το 'δαν' : +παράμετρος τύπος= για υποκατηγορία Επώνυμα, Τοπωνύμια, κλπ
		(οι λέξεις με παύλα) λόγω του τεράστιου αριθμού τους
		+ parameter cattype for Surnames and Placenames
	2020.02.13. Function donor word link: + transliteration (tr=) translation (t=), translation with no link (tno=)
		similar to [[Module:Πρότυπο:λ]]
	2019.11.26. [[Πρότυπο:φων]] (φωνητική απόδοση) π.χ. [[κέιτερινγκ]]
	2019.08.12. param nocat & 00, param notext & 0, param text & κειμ
		notext= και 0= για γρήγορη πληκτρολόγηση (μηδέν: δείκτης ευρείας χρήσεως για αφαίρεση παρένθεσης και στυλ)
		nocat= και 00= για γρήγορη πληκτρολόγηση (δύο μηδενικά: δείκτης ευρείας χρήσεως για αφαίρεση Κατηγορίας)
		text= και κειμ= αναπτυγμένο κείμενο - full text
		easy-type διευκολύνσεις μη αλλαγής πληκτρολογίου για ονόματα γλωσσών
	2019.08.08. πρότυπα λδαν (λόγιο δάνειο), λδδ (λόγιο διαχρονικό δάνειο ή αναβίωση) και απόδ (απόδοση)
	2019.08.01. Unification of functions - Ομοιογενοποίηση ετυμ, δαν, κ.λπ.
			el assumed - εννοούνται τα νέα ελληνικά +easy typing grc, grc-koi, gkm
			Function link: etyma wtih asteriscs: not linked, but shown.
	2019.07. param text=1 για μεγάλο κείμενο, require [[Module:tin]] για διάκριση
			άρθρου 'τη' ή 'την' για το όνομα της γλώσσας
	2019.06.25. Function link (για σύνδεσμο στη λέξη-δότρια).
	2019.04.11. υποκοριστικό, μεγεθυντικό
	2019.03.15. ορθογραφικό δάνειο
	2019: μερικές προσθήκες στο Module του Xoristzatziki by Sarri.greek
	2016-2018: by Xoristzatziki βασικές function, και πολλά δοκιμαστικά
ΣΗΜΕΙΩΣΕΙΣ
	* Ετυμολογήσεις που χαρακτηρίζονται μόνο από μία γλώσσα, γίνονται με Πρότυπα wikitext (π.χ. αντιδάνειο, αναδανεισμός, κ.λπ.)
ΕΚΚΡΕΜΟΤΗΤΕΣ
	* nobody uses easytypes in Greek -- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
	* Οι προειδοποιήσεις και τα errors δεν είναι σωστά.
	* τα 'υπο' και 'μεγ' πρέπει να έχουν και |tr=, t= όπως το functionLink. Cf. [[arancino]]
		επίσης, θα έπρεπε να δέχονται hyphen
	* Να δημιουργηθεί παράμετρος |λόγιο=1 για όλες τις function
	* Add ts= transcription= to function link.
]=]--

export = {}

--------------------------------------------------------------------------
--                    Α. Προκαταρκτικά - Preliminaries                  --
--------------------------------------------------------------------------

languages = mw.loadData("Module:Languages")
-- DO NOT add here get_gmy = require("Module:Linb-translit").gmy_get  IT LINKS EVERY WORD to Module:Linb


style1 = 'color:#002000; border-bottom:1px dashed #dddddd;'		-- όπως στο [[Πρότυπο:style1]]

local Lf = {} --πίνακας με τις τοπικές συναρτήσεις - local functions

-- βρίσκει το όνομα του Προτύπου που κάλεσε το Module
-- αλλά μόνο αν κλήθηκε από σελίδα που κάλεσε το πρότυπο
-- finds the Template's name calling this Module, but only if called from a page using the Template
template_function = function(frame)
    if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
        local templateobj = mw.title.new(frame:getParent():getTitle())
        if templateobj.namespace == 10 then -- NS_TEMPLATE
            return templateobj.text:match( "^%s*(.-)%s*$" )
        else
            return nil
        end
    else
        return nil
    end
end

-- Error, σφάλμα Used at ετυμ and at δάνειο
errorhere = function(errstring)
    return '<div class="error">' .. errstring .. '</div>[[Κατηγορία:Σελίδες με σφάλματα στο πρότυπο ετυμολογίας]]'
end

-- ================== Function for correct name of language - ονομασία γλώσσας  ====================== --
link_language = function(linklanguage)
    	lang_donor = languages[lang_donor_iso]['name'] or '' -- neuter plural γαλλικά (or fem.sing. μέση γερμανκή)
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or '' -- feminine accusative singular γαλλική
    	lang_donor_apo = languages[lang_donor_iso]['apo'] or '' -- feminine article + accusative singular τη γαλλική
    	lang_donor_from = languages[lang_donor_iso]['from'] or '' -- προέλευσης από +apota -- FOR FAMILIES: σημιτικής προέλευσης
		if lang_donor ~= '' and lang_donor_frm ~= '' then
			if myargs['root'] == '1' or myargs['ρίζα'] == '1' then
		mytext =  "[[" .. lang_donor .. '|<span style="background:#ffffff; color:#002000; border-bottom: 1px dashed #ddd; font-style:italic;">' .. lang_donor_frm .. '</span>]] <i>ρίζα</i>'
			elseif languages[lang_donor_iso]['family'] == true then -- families are in plural e.g. sem σημιτικές γλώσσες we do NOT need fem. σημιτική
				-- update with family = true functions απλή ετυμο (etym), δάνειο (loadword)
		mytext = "[[" .. lang_donor .. '|<span style="background:#ffffff; color:#002000; border-bottom: 1px dashed #ddd; font-style:italic;">' .. lang_donor_from .. '</span>]]'
-- test [[ούλος]]
			elseif myargs['text'] == '1' or myargs['κειμ'] == '1' then
		mytext =  "[[" .. lang_donor .. '|<span style="background:#ffffff; color:#002000; border-bottom: 1px dashed #ddd; font-style:italic;">' .. lang_donor_apo .. '</span>]]'		
			else
		mytext =  "[[" .. lang_donor .. '|<span style="background:#ffffff; color:#002000; border-bottom: 1px dashed #ddd; font-style:italic;">' .. lang_donor_frm .. '</span>]]'
			end
		end
return mytext
end

-- ================== Function link for donor-word -  για τη λέξη-δότρια ====================== --
linkFunction = function(link)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
--[=[-- if we do not ACCEPT asterisc
       	-- for reconstructed (e.g. protoindoeuropean words) when they have an asterisc, i do NOT want the asterisc
    	if word_donor:sub(1, 1) == '*' then	--start at 1st character, stop at 1st character
		word_donor_noasterisc = word_donor:sub(2, -1)	--start at 2nd character, stop at last character
		end
]=]--
-- we ACCEPT asterisc [[πατήρ]]
    	if word_donor:sub(1, 1) == '*' then	--start at 1st character, stop at 1st character
		word_donor_noasterisc = word_donor:sub(1, -1)
		end
    word_donor_show = myargs[4] or ''
	transliteration = myargs['tr'] or myargs['γ'] or '' -- test [[Βούδας]]
	translation = myargs['t'] or myargs['μ'] or ''
	translation_nolink = myargs['tno'] or myargs['tnl'] or myargs['μχωρίς'] or ''
--[=[-- if we do not ACCEPT asterisc
	-- if there is an asterisc at etymon
    if word_donor ~= '' and word_donor:sub(1, 1) == '*'  and lang_donor_iso ~= '' then
    	lang_donor_link = languages[lang_donor_iso]['link'] or ''
    	if word_donor_show ~= '' then
    		mytext =  mytext .. ' ' .. '[[' .. word_donor_noasterisc .. "#" .. lang_donor_link .. '|' .. word_donor_show .. ']]'
    		else
    		mytext =  mytext .. ' ' .. '[[' .. word_donor_noasterisc .. "#" .. lang_donor_link .. '|' .. word_donor .. ']]'
    	end
	else
		if word_donor ~= '' and word_donor:sub(1, 1) == '*' and lang_donor_iso == '' then
			if word_donor_show ~= '' then
				mytext =  mytext .. ' ' .. '[[' .. word_donor_noasterisc .. '|' .. word_donor_show .. ']]'
				else
				mytext =  mytext .. ' ' .. '[[' .. word_donor_noasterisc .. '|' .. word_donor .. ']]'
			end
		end
	end
]=]--
-- we ACCEPT asterisc -- check [[βάλλω]] [[πατήρ]]
	-- if there is an asterisc at etymon
    if word_donor ~= '' and word_donor:sub(1, 1) == '*'  and lang_donor_iso ~= '' then
    	lang_donor_link = languages[lang_donor_iso]['link'] or ''
    	if word_donor_show ~= '' then
    		mytext =  mytext .. ' ' .. '[[' .. word_donor .. "#" .. lang_donor_link .. '|<i>' .. word_donor_show .. '</i>]]'
    		else
    		mytext =  mytext .. ' ' .. '[[' .. word_donor .. "#" .. lang_donor_link .. '|<i>' .. word_donor .. '</i>]]'
    	end
	else
		if word_donor ~= '' and word_donor:sub(1, 1) == '*' and lang_donor_iso == '' then
			if word_donor_show ~= '' then
				mytext =  mytext .. ' ' .. '[[' .. word_donor .. '|<i>' .. word_donor_show .. '</i>]]'
				else
				mytext =  mytext .. ' ' .. '[[' .. word_donor .. '|<i>' .. word_donor .. '</i>]]'
			end
		end
	end


	-- όταν δεν υπάρχει η γραφή της λέξης από παλαιές γλώσσες π.χ. ota {{etym|ota|el|?|tr=xxx}}
		lang_donor_iso = myargs[1] or ''
		
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed

		lang_target = languages[lang_target_iso]['name'] or ''
		lang_donor_name = languages[lang_donor_iso]['name'] or ''

-- START word_donor		
		-- ? no word
		if word_donor == '?' and lang_donor_iso ~= '' then
			mytext =  mytext .. ' ' .. '<span title="Λείπει η γραφή της λέξης">?</span>' .. '[[Κατηγορία:Ελλείπουσα γραφή (' .. lang_donor_name .. ')]]'
		-- mycenaic LinearB, automatic script via transliteration
		elseif lang_donor_iso == 'gmy2' then
			mytext = mytext .. ' ' .. '[[' .. require("Module:Linb-translit").gmy_get(word_donor) .. ']]'
		else
	
	-- take care of NO asterisc	
    if word_donor ~= '' and word_donor:sub(1, 1) ~= '*'  and lang_donor_iso ~= '' and lang_donor_iso ~= 'gmy2' then
    	lang_donor_link = languages[lang_donor_iso]['link'] or ''
     		--word_donor_linked = word_donor_linked --or word_donor
    		lang_donor_iso = languages[lang_donor_iso]['iso'] or ''
    		lang_donor_script = languages[lang_donor_iso]['script'] or ''
    	if languages[lang_donor_iso]['script'] == 'Arab' -- ar, fa, ota, ps, ur
    	then
--    		word_donor_show = '<span style="font-size:140%; line-height:1em;">' .. word_donor_show .. '</span>'
--    		word_donor_linked = '<span style="font-size:140%; line-height:1em;">' .. word_donor .. '</span>'
    		if word_donor_show ~= '' then
    		mytext =  mytext .. ' ' .. '[[' .. word_donor .. "#" .. lang_donor_link .. '|<span style="font-size:140%; line-height:1em;">' .. word_donor_show .. '</span>]]'
    		else
    		mytext =  mytext .. ' ' .. '[[' .. word_donor .. "#" .. lang_donor_link .. '|<span style="font-size:140%; line-height:1em;">' .. word_donor .. '</span>]]'
    		end
    	elseif languages[lang_donor_iso]['script'] == 'Hani' -- zh, ja (for both Han characters kanji & Kata (katakana))
    	then
    		if word_donor_show ~= '' then
    		mytext =  mytext .. ' ' .. '[[' .. word_donor .. "#" .. lang_donor_link .. '|<span style="font-size:115%; line-height:1em;">' .. word_donor_show .. '</span>]]'
    		else
    		mytext =  mytext .. ' ' .. '[[' .. word_donor .. "#" .. lang_donor_link .. '|<span style="font-size:115%; line-height:1em;">' .. word_donor .. '</span>]]'
    		end	
    	else -- no large font-size languages
    		if word_donor_show ~= '' then
    			mytext =  mytext .. ' ' .. '[[' .. word_donor .. "#" .. lang_donor_link .. '|' .. word_donor_show .. ']]'
    		else
    			mytext =  mytext .. ' ' .. '[[' .. word_donor .. "#" .. lang_donor_link .. '|' .. word_donor .. ']]'
    		end
    	end -- close large font-size languages
	else
		if word_donor ~= '' and word_donor:sub(1, 1) ~= '*' and lang_donor_iso == '' then
			if word_donor_show ~= '' then
				mytext =  mytext .. ' ' .. '[[' .. word_donor .. '|' .. word_donor_show .. ']]'
			else
				mytext =  mytext .. ' ' .. '[[' .. word_donor .. '|' .. word_donor .. ']]'
			end
		end
		
		end -- close word_donor == ?
	end

	-- μεταγραφή, μετάφραση εντός συνδέσμου, μετάφραση χωρίς συνδέσμους (συμπληρώνει ο συντάκτης)
			if transliteration ~= ''  and translation ~= '' and translation_nolink == '' then
				return mytext .. ' (<span style="font-size:95%; letter-spacing:1px;">' ..
				transliteration .. '</span>, ' .. '[[' ..translation .. ']])'
			end
			if transliteration ~= ''  and translation == '' and translation_nolink ~= '' then
				return mytext .. ' (<span style="font-size:95%; letter-spacing:1px;">' ..
				transliteration .. '</span>, ' .. translation_nolink .. ')'
			end
			if transliteration ~= ''  and translation == '' and translation_nolink == '' then
				return mytext .. ' (<span style="font-size:95%; letter-spacing:1px;">' .. transliteration .. '</span>)'
			end
			if transliteration == ''  and translation ~= '' and translation_nolink == '' then
				return mytext .. ' ([[' .. translation .. ']])' 
			end
			if transliteration == ''  and translation == '' and translation_nolink ~= '' then
				return mytext .. ' (' .. translation_nolink .. ')' 
			end

    return mytext
end

-- για μεγάλα κείμενα (param text= ή κειμ=) το [[Module:tin]] δίνει άρθρο θηλυκό, αιτιατική 'την' ή 'τη'
-- feminine article variations for longtext might be needed
fem_article_tin = require("Module:tin")

-- Export from
export['από πρότυπο'] = function(frame)
    lc = {}
    myargs = frame:getParent().args
    lemma_word = mw.title.getCurrentTitle().text
    template_name = template_function(frame)
    -- τα Πρότυπο:ετυμ /  Πρότυπο:ετυ λειτουργούν από εδώ: απλή ετυμολόγηση
    if template_name == 'δαν' then return Lf['δάνειο'](lc) end
    if template_name == 'λδαν' then return Lf['λόγιο δάνειο'](lc) end
    if template_name == 'μτφδ' then return Lf['μεταφραστικό δάνειο'](lc) end
    if template_name == 'απόδ' then return Lf['απόδοση'](lc) end
    if template_name == 'σμσδ' then return Lf['σημασιολογικό δάνειο'](lc) end
    if template_name == 'οπτδ' then return Lf['οπτικό δάνειο'](lc) end 
    	-- ορολογία Μπαμπινιώτη, το 'ορθογραφικό δάνειο' του ΛΚΝ [[Βικιλεξικό:Βικιδημία/2024#ορθογραφικά και οπτικά δάνεια]]
    if template_name == 'ορθδ' then return Lf['ορθογραφικό δάνειο'](lc) end
    if template_name == 'φων' then return Lf['φωνητική απόδοση'](lc) end
    if template_name == 'μτγρ' then return Lf['μεταγραφή'](lc) end
    if template_name == 'κλη' then return Lf['κληρονομιά'](lc) end
    if template_name == 'λδδ' then return Lf['λδδ'](lc) end
    if template_name == 'μσν' then return Lf['μεσαιωνική'](lc) end
    if template_name == 'υπο' then return Lf['υποκοριστικό'](lc) end
    if template_name == 'μεγ' then return Lf['μεγεθυντικό'](lc) end

	-- ετυ  Παραγωγή λέξεων από τα... (παραγωγή, σύνθεση)
	-- ετυ  Derivation from ... (formation of compounds, etc)
	if template_name == 'ετυ' then return Lf['ετυ'](lc) end

    -- απλή ετυμολόγηση = ετυμ: Προέλευση από
    return Lf['απλή ετυμολόγηση'](lc)

end

--------------------------------------------------------------------------
--           Β. Functions ετυμολογίας: ΛΕΙΤΟΥΡΓΙΕΣ εν χρήσει       --
--------------------------------------------------------------------------

-- ετυμ (για Προελεύσεις), δάνειο, λόγιο δάνειο, μεταφραστικό δάνειο, 
--	απόδοση, σημασιολογικό δάνειο, ορθογραφικό δάνειο, φωνητική απόδοση
--  κληρονομιά, λόγιο διαχρονικό δάνειο (αναβίωση)


-- ετυμ από Xoristzatziki (καλείται από το [[Πρότυπο:ετυμ]] και δημιουργεί Κατηγορίες Προέλευση από...)
-- ΑΠΛΗ ΕΤΥΜΟΛΟΓΗΣΗ - Derives from, originates from
Lf['απλή ετυμολόγηση'] = function(lc)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
    word_donor_show = myargs[4] or ''
    cattype = myargs['τύπος'] or ''		-- check [[ζενίθ]] χωρίς την παράμετρο
    	if myargs['τύπος'] ~= '' and myargs['τύπος'] ~= nil then
    		if myargs['τύπος'] == 'επώνυμο' or myargs['τύπος'] == 'επ' then myargs['τύπος'] = ' - επώνυμα '
    		elseif myargs['τύπος'] == 'όνομα' or myargs['τύπος'] == 'ον'  then myargs['τύπος'] = ' - ονόματα '
    		elseif myargs['τύπος'] == 'πατρωνυμικό' or myargs['τύπος'] == 'πατρων'  then myargs['τύπος'] = ' - πατρωνυμικά ' --  (ειδικά για αρχαία όπως [[Ατρείδης]])
    		elseif myargs['τύπος'] == 'τοπωνύμιο' or myargs['τύπος'] == 'τόπος'  then myargs['τύπος'] = ' - τοπωνύμια '
-- why is this a problem? check [[Ουζουνίδης]] with function ety
--    		else
--    		return errorhere('Επιλέξτε παράμετρο τύπος=όνομα ή =επώνυμο ή =τοπωνύμιο')
	    	end
    	end
    mytext = '' or '' -- το default κείμενο είναι άδειο
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
--[=[ not needed here
    -- param notext= or 0=
    noDefaultText = myargs['notext'] or ''
    zero= myargs['0'] or ''
    if noDefaultText ~= '' or zero~= '' then mytext = '' else mytext = '' end
]=]--
    -- param text= or κειμ= for long text, requires [[Module:tin]], function tin (παράδειγμα: [[okyanus]])
    longtext = myargs['text'] or ''
    longtextGr = myargs['κειμ'] or ''
	if lang_donor_iso ~= '' then
		if languages[lang_donor_iso]['family'] == true then
			tin_or_ti = ''
		else
    		tin_or_ti = fem_article_tin['tin'](languages[lang_donor_iso]['frm'] or '') 
    	end
	else 
		if languages[lang_donor_iso]['family'] == true then
			tin_or_ti = ''
		else
			tin_or_ti = fem_article_tin['tin']('α') -- with 'α' the result will be 'την'
		end
	end
    if longtext == '1' or longtextGr == '1' then
    	if languages[lang_donor_iso]['family'] == true then
    		mytext = mytext
    	else
    	mytext = 'προέλευσης από ' -- .. tin_or_ti .. ' ' -- not needed, από + param apo
    	end
    else
    	mytext = mytext
    end
    
    -- param#1 και param#2 συνδυασμοί
    -- 1) 0 + 0=el
    if lang_donor_iso == '' and  lang_target_iso == '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Προέλευση, πρέπει να εισάγετε τους κωδικούς iso των γλωσσών (1η και 2η παράμετρος)')
    end
    -- 2) 0 + iso
    if lang_donor_iso == '' and  lang_target_iso ~= '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Προέλευση, πρέπει να εισάγετε και τον κωδικό iso της γλώσσας-δότριας (1η παράμετρος)')
    end
    -- 3) iso + 0=el
    if lang_donor_iso ~= '' and  lang_target_iso == '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	mytext =  mytext .. link_language('linklanguage') .. ' '
    end
    -- 4) iso + iso: if one iso is wrong, get error
    if lang_donor_iso ~= '' and  lang_target_iso ~= '' then
    --αν δεν υπάρχει το iso γλώσσας ετύμου στην param#1, ή iso γλώσσας-δέκτριας στην param#2, επίστρεψε σφάλμα
    	if languages[lang_donor_iso] == nil or languages[lang_target_iso] == nil then
        	return errorhere('Κάποια παράμετρος (iso γλώσσας) είναι λάθος ή δεν υπάρχει ο κωδικός!')
        	else
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
    	lang_target = languages[lang_target_iso]['name'] or ''
    	lang_target_words = languages[lang_target_iso]['words'] or ''
    	lang_target_from = languages[lang_donor_iso]['from'] or ''
    	cattype = myargs['τύπος'] or ''
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
    	asciiSort = myargs['ascii'] or myargs['sort'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
            mytext =  mytext .. link_language('linklanguage')
            	else
if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
	if myargs['root'] == '1' or myargs['ρίζα'] == '1' then
    			if asciiSort == '' then
    		mytext = '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. 'από ' .. tin_or_ti .. ' ' .. languages[lang_donor_iso]['frm'] .. ' ρίζα ' .. word_donor .. ' (' ..lang_target .. ')]]'
				else
    		mytext = '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. 'από ' .. tin_or_ti .. ' ' .. languages[lang_donor_iso]['frm'] .. ' ρίζα ' .. word_donor .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    			end
	else -- no root
    			if asciiSort == '' then
    		mytext = '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
				else
    		mytext = '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    			end
    end -- close root			
else -- display
	if myargs['root'] == '1' or myargs['ρίζα'] == '1' then
    			if asciiSort == '' then
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. 'από ' .. tin_or_ti .. ' ' .. languages[lang_donor_iso]['frm'] .. ' ρίζα ' .. word_donor .. ' (' ..lang_target .. ')]]'
				else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
			.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. 'από ' .. tin_or_ti .. ' ' .. languages[lang_donor_iso]['frm'] .. ' ρίζα ' .. word_donor .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    			end
	else -- no root
    			if asciiSort == '' then  -- e.g. [[-ster]] (en)
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
				else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
			.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    			end
    end -- close root
end -- close nosidplay
    		end -- close nocat
    	end
    end
	
	-- link στη λέξη-δότρια
	if word_donor ~= '' then
		if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
			return mytext
		else
			return linkFunction('link')
		end
	end

    return mytext
end


-- ετυ = ety Word creation = Δημιουργία λέξεων από τα... (ανά γλώσσα) [[Πρότυπο:ετυ]]
	-- όχι 'Παραγωγή' διότι είναι είτε παράγωγα είτε σύνθετα
	-- προσοχή:+ cattype
Lf['ετυ'] = function(lc)
	lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    cattype = myargs['τύπος'] or ''		-- check [[Τσερεκτσίδης]] (επώνυμο)
    	if myargs['τύπος'] ~= '' and myargs['τύπος'] ~= nil then
    		if myargs['τύπος'] == 'επώνυμο' or myargs['τύπος'] == 'επ' then myargs['τύπος'] = ' - επώνυμα '
    		elseif myargs['τύπος'] == 'όνομα' or myargs['τύπος'] == 'ον'  then myargs['τύπος'] = ' - ονόματα '
    		elseif myargs['τύπος'] == 'πατρωνυμικό' or myargs['τύπος'] == 'πατρων'  then myargs['τύπος'] = ' - πατρωνυμικά ' --  (ειδικά για αρχαία όπως [[Ατρείδης]])
    		elseif myargs['τύπος'] == 'τοπωνύμιο' or myargs['τύπος'] == 'τόπος'  then myargs['τύπος'] = ' - τοπωνύμια '
    		else
    		return errorhere('Επιλέξτε παράμετρο τύπος=όνομα ή =επώνυμο ή =τοπωνύμιο')
	    	end
    	end	
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
	lang_target = languages[lang_target_iso]['name'] or ''
	return Lf['απλή ετυμολόγηση'](lc) .. '[[Κατηγορία:Δημιουργία λέξεων ' .. cattype .. lang_donor_apota .. ' (' .. lang_target ..')]]'
end

-- δάνειο - borrowed [[Πρότυπο:δαν]]
-- Δημιουργεί Κατηγορία:Δάνεια από... plus Προέλευση από... (παράδειγμα: [[αρένα]])
Lf['δάνειο'] = function(lc)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
    word_donor_show = myargs[4] or ''
    cattype = myargs['τύπος'] or ''		-- check [[Κουν]] (επώνυμο), έλεγχος σε δάνειο χωρίς την πάράμετρο: [[πιροσκί]], [[κονβόι]]
    	if myargs['τύπος'] ~= '' and myargs['τύπος'] ~= nil then
    		if myargs['τύπος'] == 'επώνυμο' or myargs['τύπος'] == 'επ' then myargs['τύπος'] = ' - επώνυμα '
    		elseif myargs['τύπος'] == 'όνομα' or myargs['τύπος'] == 'ον'  then myargs['τύπος'] = ' - ονόματα '
    		elseif myargs['τύπος'] == 'πατρωνυμικό' or myargs['τύπος'] == 'πατρων'  then myargs['τύπος'] = ' - πατρωνυμικά ' --  (ειδικά για αρχαία όπως [[Ατρείδης]])
    		elseif myargs['τύπος'] == 'τοπωνύμιο' or myargs['τύπος'] == 'τόπος'  then myargs['τύπος'] = ' - τοπωνύμια '
    		else
    		return errorhere('Επιλέξτε παράμετρο τύπος=όνομα ή =επώνυμο ή =τοπωνύμιο')
	    	end
    	end
    mytext = '([[δάνειο|άμεσο δάνειο]]) ' or ''
--    nodisplay = myargs['nodisplay'] or myargs['000'] or ''
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
    -- param notext= or 0=
    noDefaultText = myargs['notext'] or ''
    zero= myargs['0'] or ''
    if noDefaultText ~= '' or zero~= '' then mytext = '' else mytext = '([[δάνειο|άμεσο δάνειο]]) ' end

    -- param text= or κειμ= for long text, requires [[Module:tin]], function tin
    -- test 'τη' at [[βανδαλισμός]], test 'την' at [[αβοκάντο]], test lemma without param |text=1 at [[πρελούδιο]]
    longtext = myargs['text'] or ''
    longtextGr = myargs['κειμ'] or ''
	if lang_donor_iso ~= '' then
    	tin_or_ti = fem_article_tin['tin'](languages[lang_donor_iso]['frm'] or '') 
		else tin_or_ti = fem_article_tin['tin']('α') -- with 'α' the result will be 'την'
	end
    if longtext == '1' or longtextGr == '1' then
    	if languages[lang_donor_iso]['family'] == true then
    		mytext = 'δάνειο '
    	else
    		mytext = '[[δάνειο|άμεσο δάνειο]] από ' -- .. tin_or_ti .. ' ' -- not needed, από + param apo
    	end
    else
    	mytext = mytext
    end
    
    -- param#1 και param#2 συνδυασμοί
    -- 1) 0 + 0=el
    if lang_donor_iso == '' and  lang_target_iso == '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Δάνεια, πρέπει να εισάγετε τους κωδικούς iso των γλωσσών (1η και 2η παράμετρος)')
    end
    -- 2) 0 + iso
    if lang_donor_iso == '' and  lang_target_iso ~= '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Δάνεια, πρέπει να εισάγετε και τον κωδικό iso της γλώσσας-δότριας (1η παράμετρος)')
    end
    -- 3) iso + 0=el
    if lang_donor_iso ~= '' and  lang_target_iso == '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	mytext =  mytext .. link_language('linklanguage') .. ' '
    end
    -- 4) iso + iso: if one iso is wrong, get error
    if lang_donor_iso ~= '' and  lang_target_iso ~= '' then
    --αν δεν υπάρχει το iso γλώσσας ετύμου στην param#1, ή iso γλώσσας-δέκτριας στην param#2, επίστρεψε σφάλμα
    	if languages[lang_donor_iso] == nil or languages[lang_target_iso] == nil then
        	return errorhere('Κάποια παράμετρος (iso γλώσσας) είναι λάθος ή δεν υπάρχει ο κωδικός!')
        	else
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
    	lang_target = languages[lang_target_iso]['name'] or ''
    	cattype = myargs['τύπος'] or ''
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
    	asciiSort = myargs['ascii'] or myargs['sort'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
            mytext =  mytext .. link_language('linklanguage') .. ' '
            else
if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then		--  π.χ. [[ισνάφι]]
            	if asciiSort == '' then  -- e.g. [[-algie]] (fr)
    		mytext =  '[[Κατηγορία:Δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    			else
    		mytext =  '[[Κατηγορία:Δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
            	end
else -- display
            	if asciiSort == '' then  -- e.g. [[-algie]] (fr)
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    			else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
            	end
end -- close nodisplay
        	end -- close nocat
		end -- end TEST for nil codes #######
    end

	-- link στη λέξη-δότρια
	if word_donor ~= '' then
		if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
		return  mytext
		else
		return linkFunction('link')
		end
	end

    return mytext
end


-- λόγιο δάνειο - learned borrowing [[Πρότυπο:λδαν]]
-- Δημιουργεί Κατηγορία:Λόγια δάνεια από... plus Προέλευση από... (παράδειγμα: [[ζενίθ]])
Lf['λόγιο δάνειο'] = function(lc)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
    word_donor_show = myargs[4] or ''
    cattype = myargs['τύπος'] or ''		-- όπως καθαρεύουσα [[Οὐλερῖχος]]
    	if myargs['τύπος'] ~= '' and myargs['τύπος'] ~= nil then
    		if myargs['τύπος'] == 'επώνυμο' or myargs['τύπος'] == 'επ' then myargs['τύπος'] = ' - επώνυμα '
    		elseif myargs['τύπος'] == 'όνομα' or myargs['τύπος'] == 'ον'  then myargs['τύπος'] = ' - ονόματα '
    		elseif myargs['τύπος'] == 'πατρωνυμικό' or myargs['τύπος'] == 'πατρων'  then myargs['τύπος'] = ' - πατρωνυμικά ' --  (ειδικά για αρχαία όπως [[Ατρείδης]])
    		elseif myargs['τύπος'] == 'τοπωνύμιο' or myargs['τύπος'] == 'τόπος'  then myargs['τύπος'] = ' - τοπωνύμια '
    		else
    		return errorhere('Επιλέξτε παράμετρο τύπος=όνομα ή =επώνυμο ή =τοπωνύμιο')
	    	end
    	end
    mytext = '([[λόγιο δάνειο]]) ' or ''
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
    -- param notext= or 0=
    noDefaultText = myargs['notext'] or ''
    zero= myargs['0'] or ''
    if noDefaultText ~= '' or zero~= '' then mytext = '' else mytext = '([[λόγιο δάνειο]]) ' end
    
    -- param text= or κειμ= for long text, requires [[Module:tin]], function tin
    longtext = myargs['text'] or ''
    longtextGr = myargs['κειμ'] or ''
	if lang_donor_iso ~= '' then
    	tin_or_ti = fem_article_tin['tin'](languages[lang_donor_iso]['frm'] or '') 
		else tin_or_ti = fem_article_tin['tin']('α') -- with 'α' the result will be 'την'
	end
    if longtext == '1' or longtextGr == '1' then
    	if languages[lang_donor_iso]['family'] == true then
    		mytext = 'λόγιο δάνειο '
    	else
    		mytext = '[[λόγιο δάνειο]] από ' -- .. tin_or_ti .. ' ' -- not needed, από + param apo
    	end
    else
    	mytext = mytext
    end

    -- param#1 και param#2 συνδυασμοί
    -- 1) 0 + 0=el
    if lang_donor_iso == '' and  lang_target_iso == '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Λόγια δάνεια, πρέπει να εισάγετε τους κωδικούς iso των γλωσσών (1η και 2η παράμετρος)')
    end
	-- 2) 0 + iso
    if lang_donor_iso == '' and  lang_target_iso ~= '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Λόγια δάνεια, πρέπει να εισάγετε και τον κωδικό iso της γλώσσας-δότριας (1η παράμετρος)')
    end
    -- 3) iso + 0=el
    if lang_donor_iso ~= '' and  lang_target_iso == '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	mytext =  mytext .. link_language('linklanguage') .. ' '
    end
    -- 4) iso + iso
    if lang_donor_iso ~= '' and  lang_target_iso ~= '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
    	lang_target = languages[lang_target_iso]['name'] or ''
    	cattype = myargs['τύπος'] or ''
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
    	asciiSort = myargs['ascii'] or myargs['sort'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
            mytext =  mytext .. link_language('linklanguage') .. ' '
            else
if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
    			if asciiSort == '' then
    		mytext = '[[Κατηγορία:Λόγια δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
				else
    		mytext = '[[Κατηγορία:Λόγια δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    			end
else -- display
    			if asciiSort == '' then
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Λόγια δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
				else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Λόγια δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    			end
end -- close nodisplay	
        	end -- close nocat
		
    end
		
	-- link στη λέξη-δότρια
	if word_donor ~= '' then
		if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
			return mytext
		else
			return linkFunction('link')
		end
	end

    return mytext
end


-- μεταφραστικό δάνειο - calque [[Πρότυπο:μτφδ]]
-- Δημιουργεί Κατηγορία:Μεταφραστικά δάνεια από... (παράδειγμα: [[ουρανοξύστης]])
Lf['μεταφραστικό δάνειο'] = function(lc)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
    word_donor_show = myargs[4] or ''
    cattype = myargs['τύπος'] or ''		-- [[Ιερισσός]]
    	if myargs['τύπος'] ~= '' and myargs['τύπος'] ~= nil then
    		if myargs['τύπος'] == 'επώνυμο' or myargs['τύπος'] == 'επ' then myargs['τύπος'] = ' - επώνυμα '
    		elseif myargs['τύπος'] == 'όνομα' or myargs['τύπος'] == 'ον'  then myargs['τύπος'] = ' - ονόματα '
    		elseif myargs['τύπος'] == 'πατρωνυμικό' or myargs['τύπος'] == 'πατρων'  then myargs['τύπος'] = ' - πατρωνυμικά ' --  (ειδικά για αρχαία όπως [[Ατρείδης]])
    		elseif myargs['τύπος'] == 'τοπωνύμιο' or myargs['τύπος'] == 'τόπος'  then myargs['τύπος'] = ' - τοπωνύμια '
    		else
    		return errorhere('Επιλέξτε παράμετρο τύπος=όνομα ή =επώνυμο ή =τοπωνύμιο')
	    	end
    	end
    mytext = '([[μεταφραστικό δάνειο]]) ' or ''
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
    -- param notext= or 0=
    noDefaultText = myargs['notext'] or ''
    zero= myargs['0'] or ''
    if noDefaultText ~= '' or zero~= '' then mytext = '' else mytext = '([[μεταφραστικό δάνειο]]) ' end
    
    -- param text= or κειμ= for long text, requires [[Module:tin]], function tin
    longtext = myargs['text'] or ''
    longtextGr = myargs['κειμ'] or ''
	if lang_donor_iso ~= '' then
    	tin_or_ti = fem_article_tin['tin'](languages[lang_donor_iso]['frm'] or '') 
		else tin_or_ti = fem_article_tin['tin']('α') -- with 'α' the result will be 'την'
	end
    if longtext == '1' or longtextGr == '1' then
    	mytext = '[[μεταφραστικό δάνειο]] από ' -- .. tin_or_ti .. ' ' -- not needed, από + param apo
    	else
    	mytext = mytext
    end 

    -- param#1 και param#2 συνδυασμοί
    -- 1) 0 + 0=el
    if lang_donor_iso == '' and  lang_target_iso == '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Μεταφραστικά δάνεια, πρέπει να εισάγετε τους κωδικούς iso των γλωσσών (1η και 2η παράμετρος)')
    end
	-- 2) 0 + iso
    if lang_donor_iso == '' and  lang_target_iso ~= '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Μεταφραστικά δάνεια, πρέπει να εισάγετε και τον κωδικό iso της γλώσσας-δότριας (1η παράμετρος)')
    end
    -- 3) iso + 0=el
    if lang_donor_iso ~= '' and  lang_target_iso == '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	mytext =  mytext .. link_language('linklanguage') .. ' '
    end
    -- 4) iso + iso
    if lang_donor_iso ~= '' and  lang_target_iso ~= '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
    	lang_target = languages[lang_target_iso]['name'] or ''
    	cattype = myargs['τύπος'] or ''
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
    	asciiSort = myargs['ascii'] or myargs['sort'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
            mytext =  mytext .. link_language('linklanguage') .. ' '
            else
if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
    				if asciiSort == '' then
    		mytext = '[[Κατηγορία:Μεταφραστικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'   
    				else
    		mytext = '[[Κατηγορία:Μεταφραστικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    				end
else -- display
    				if asciiSort == '' then
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Μεταφραστικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'   
    				else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Μεταφραστικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    				end
end -- close nodisplay			
    		end -- close nocat
    end
		
	-- link στη λέξη-δότρια
	if word_donor ~= '' then
		if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
			return mytext
		else
			return linkFunction('link')
		end
	end

    return mytext
end


-- απόδοση - free translation [[Πρότυπο:απόδ]]
-- Δημιουργεί Κατηγορία:Μεταφραστικές αποδόσεις από... plus Προέλευση από... (παράδειγμα: [[αποικιοκρατία]])
Lf['απόδοση'] = function(lc)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
    word_donor_show = myargs[4] or ''
    mytext = '([[απόδοση]]) ' or ''
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
    -- param notext= or 0=
    noDefaultText = myargs['notext'] or ''
    zero= myargs['0'] or ''
    if noDefaultText ~= '' or zero~= '' then mytext = '' else mytext = '([[απόδοση]]) ' end
    
    -- param text= or κειμ= for long text, requires [[Module:tin]], function tin (παράδειγμα: [[ανάδυση]])
    longtext = myargs['text'] or ''
    longtextGr = myargs['κειμ'] or ''
	if lang_donor_iso ~= '' then
    	tin_or_ti = fem_article_tin['tin'](languages[lang_donor_iso]['frm'] or '') 
		else tin_or_ti = fem_article_tin['tin']('α') -- with 'α' the result will be 'την'
	end
    if longtext == '1' or longtextGr == '1' then
    	mytext = '[[απόδοση]] για ' -- .. tin_or_ti .. ' ' -- not needed, από + param apo
    	else
    	mytext = mytext
    end 

    -- param#1 και param#2 συνδυασμοί
    -- 1) 0 + 0=el
    if lang_donor_iso == '' and  lang_target_iso == '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Μεταφραστικές αποδόσεις, πρέπει να εισάγετε τους κωδικούς iso των γλωσσών (1η και 2η παράμετρος)')
    end
	-- 2) 0 + iso
    if lang_donor_iso == '' and  lang_target_iso ~= '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Μεταφραστικές αποδόσεις, πρέπει να εισάγετε και τον κωδικό iso της γλώσσας-δότριας (1η παράμετρος)')
    end
    -- 3) iso + 0=el
    if lang_donor_iso ~= '' and  lang_target_iso == '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	mytext =  mytext .. link_language('linklanguage') .. ' '
    end
    -- 4) iso + iso
    if lang_donor_iso ~= '' and  lang_target_iso ~= '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
    	lang_target = languages[lang_target_iso]['name'] or ''
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
    	asciiSort = myargs['ascii'] or myargs['sort'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
            mytext =  mytext .. link_language('linklanguage') .. ' '
            else
if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
    				if asciiSort == '' then
    		mytext = '[[Κατηγορία:Μεταφραστικές αποδόσεις ' .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. lang_donor_apota .. ' (' ..lang_target .. ')]]'	
    				else
    		mytext = '[[Κατηγορία:Μεταφραστικές αποδόσεις ' .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    				end
else -- display
    				if asciiSort == '' then
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Μεταφραστικές αποδόσεις ' .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. lang_donor_apota .. ' (' ..lang_target .. ')]]'	
    				else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Μεταφραστικές αποδόσεις ' .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    				end
end -- close nodisplay
    		end -- close nocat
    end
		
	-- link στη λέξη-δότρια
	if word_donor ~= '' then
		if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
			return mytext
		else
			return linkFunction('link')
		end
	end

    return mytext
end



-- σημασιολογικό δάνειο - semantic loan [[Πρότυπο:σμσδ]]
-- Δημιουργεί Κατηγορία:Σημασιολογικά δάνεια από... (παράδειγμα: [[πληθωρισμός]], [[ποντίκι]])
Lf['σημασιολογικό δάνειο'] = function(lc)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
    word_donor_show = myargs[4] or ''
    mytext = '([[σημασιολογικό δάνειο]]) ' or ''
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
    -- param notext= or 0=
    noDefaultText = myargs['notext'] or ''
    zero= myargs['0'] or ''
    if noDefaultText ~= '' or zero~= '' then mytext = '' else mytext = '([[σημασιολογικό δάνειο]]) ' end
    
    -- param text= or κειμ= for long text, requires [[Module:tin]], function tin
    longtext = myargs['text'] or ''
    longtextGr = myargs['κειμ'] or ''
	if lang_donor_iso ~= '' then
    	tin_or_ti = fem_article_tin['tin'](languages[lang_donor_iso]['frm'] or '') 
		else tin_or_ti = fem_article_tin['tin']('α') -- with 'α' the result will be 'την'
	end
    if longtext == '1' or longtextGr == '1' then
    	mytext = '[[σημασιολογικό δάνειο]] από ' -- .. tin_or_ti .. ' ' -- not needed, από + param apo
    	else
    	mytext = mytext
    end

    -- param#1 και param#2 συνδυασμοί
    -- 1) 0 + 0=el
    if lang_donor_iso == '' and  lang_target_iso == '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Σημασιολογικά δάνεια, πρέπει να εισάγετε τους κωδικούς iso των γλωσσών (1η και 2η παράμετρος)')
    end
    -- 2) 0 + iso
    if lang_donor_iso == '' and  lang_target_iso ~= '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Σημασιολογικά δάνεια, πρέπει να εισάγετε και τον κωδικό iso της γλώσσας-δότριας (1η παράμετρος)')
    end
    -- 3) iso + 0=el
    if lang_donor_iso ~= '' and  lang_target_iso == '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	mytext =  mytext .. link_language('linklanguage') .. ' '
    end
    -- 4) iso + iso
    if lang_donor_iso ~= '' and  lang_target_iso ~= '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
    	lang_target = languages[lang_target_iso]['name'] or ''
    	lang_target_words = languages[lang_target_iso]['words'] or ''
    	lang_target_from = languages[lang_donor_iso]['from'] or ''
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
    	asciiSort = myargs['ascii'] or myargs['sort'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
            mytext =  mytext .. link_language('linklanguage') .. ' '
            else
if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
    				if asciiSort == '' then
    		mytext = '[[Κατηγορία:Σημασιολογικά δάνεια ' .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. lang_donor_apota .. ' (' ..lang_target .. ')]]'  
    				else
    		mytext = '[[Κατηγορία:Σημασιολογικά δάνεια ' .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'   
    				end
else -- display
    				if asciiSort == '' then
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Σημασιολογικά δάνεια ' .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. lang_donor_apota .. ' (' ..lang_target .. ')]]'  
    				else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Σημασιολογικά δάνεια ' .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'   
    				end
end -- close nodisplay		
    		end -- close nocat
    end
		
	-- link στη λέξη-δότρια
	if word_donor ~= '' then
		if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
			return mytext
		else
			return linkFunction('link')
		end
	end

    return mytext
end


-- οπτικό δάνειο - visual/optical borrowing [[Πρότυπο:οπτδ]]
-- ορολογία Μπαμπινιώτη 'οπτικό δάνειο', το 'ορθογραφικό δάνειο' του ΛΚΝ [[Βικιλεξικό:Βικιδημία/2024#ορθογραφικά και οπτικά δάνεια]]
-- Δημιουργεί Κατηγορία:Οπτικά δάνεια από... plus Προέλευση από... (παράδειγμα [[ζέβρα]]
Lf['οπτικό δάνειο'] = function(lc)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
    word_donor_show = myargs[4] or ''
    cattype = myargs['τύπος'] or ''		-- check [[ζενίθ]]
    	if myargs['τύπος'] ~= '' and myargs['τύπος'] ~= nil then
    		if myargs['τύπος'] == 'επώνυμο' or myargs['τύπος'] == 'επ' then myargs['τύπος'] = ' - επώνυμα '
    		elseif myargs['τύπος'] == 'όνομα' or myargs['τύπος'] == 'ον'  then myargs['τύπος'] = ' - ονόματα '
    		elseif myargs['τύπος'] == 'πατρωνυμικό' or myargs['τύπος'] == 'πατρων'  then myargs['τύπος'] = ' - πατρωνυμικά '
    		elseif myargs['τύπος'] == 'τοπωνύμιο' or myargs['τύπος'] == 'τόπος'  then myargs['τύπος'] = ' - τοπωνύμια '
    		else
    		return errorhere('Επιλέξτε παράμετρο τύπος=όνομα ή =επώνυμο ή =τοπωνύμιο')
	    	end
    	end
    mytext = '([[ορθογραφικό δάνειο]]) ' or ''
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
    -- param notext= or 0=
    noDefaultText = myargs['notext'] or ''
    zero= myargs['0'] or ''
    if noDefaultText ~= '' or zero~= '' then mytext = '' else mytext = '([[οπτικό δάνειο]]) ' end
    	
    -- param text= or κειμ= for long text, requires [[Module:tin]], function tin
    longtext = myargs['text'] or ''
    longtextGr = myargs['κειμ'] or ''
	if lang_donor_iso ~= '' then
    	tin_or_ti = fem_article_tin['tin'](languages[lang_donor_iso]['frm'] or '') 
		else tin_or_ti = fem_article_tin['tin']('α') -- with 'α' the result will be 'την'
	end
    if longtext == '1' or longtextGr == '1' then
    	mytext = '[[οπτικό δάνειο]] από ' -- .. tin_or_ti .. ' ' -- not needed, από + param apo
    	else
    	mytext = mytext
    end

    -- param#1 και param#2 συνδυασμοί
    -- 1) 0 + 0=el
    if lang_donor_iso == '' and  lang_target_iso == '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Οπτικά δάνεια, πρέπει να εισάγετε τους κωδικούς iso των γλωσσών (1η και 2η παράμετρος)')
    end
    -- 2) 0 + iso
    if lang_donor_iso == '' and  lang_target_iso ~= '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Οπτικά δάνεια, πρέπει να εισάγετε και τον κωδικό iso της γλώσσας-δότριας (1η παράμετρος)')
    end
    -- 3) iso + 0=el
    if lang_donor_iso ~= '' and  lang_target_iso == '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	mytext =  mytext .. link_language('linklanguage') .. ' '
    end
    -- 4) iso + iso
    if lang_donor_iso ~= '' and  lang_target_iso ~= '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
    	lang_target = languages[lang_target_iso]['name'] or ''
    	cattype = myargs['τύπος'] or ''
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
    	asciiSort = myargs['ascii'] or myargs['sort'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
            mytext =  mytext .. link_language('linklanguage') .. ' '
            else
if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
	 				if asciiSort == '' then		
    		mytext = '[[Κατηγορία:Οπτικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]' 
    				else
    		mytext = '[[Κατηγορία:Οπτικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]' 
	 				end
else -- display
	 				if asciiSort == '' then		
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Οπτικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]' 
    				else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Οπτικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]' 
	 				end
end -- close nodisplay
    		end -- close nocat
    end
		
	-- link στη λέξη-δότρια
	if word_donor ~= '' then
		if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
			return mytext
		else
			return linkFunction('link')
		end
	end

    return mytext
end


-- ορθογραφικό δάνειο - orthographic borrowing [[Πρότυπο:ορθδ]] αυστηρά για ξένα γράμματα (όπως λατινικά)
-- ΔΙΑΦΟΡΕΤΙΚΑ ορολογία Μπαμπινιώτη 'οπτικό δάνειο', το 'ορθογραφικό δάνειο' του ΛΚΝ [[Βικιλεξικό:Βικιδημία/2024#ορθογραφικά και οπτικά δάνεια]]
-- Δημιουργεί Κατηγορία:Ορθογραφικά δάνεια από... plus Προέλευση από... (παράδειγμα [[ΝΑΤΟ]] ελληνικά όπως [[NATO]] αγγλικά)
Lf['ορθογραφικό δάνειο'] = function(lc)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
    word_donor_show = myargs[4] or ''
    cattype = myargs['τύπος'] or ''		-- check [[ζενίθ]]
    	if myargs['τύπος'] ~= '' and myargs['τύπος'] ~= nil then
    		if myargs['τύπος'] == 'επώνυμο' or myargs['τύπος'] == 'επ' then myargs['τύπος'] = ' - επώνυμα '
    		elseif myargs['τύπος'] == 'όνομα' or myargs['τύπος'] == 'ον'  then myargs['τύπος'] = ' - ονόματα '
    		elseif myargs['τύπος'] == 'πατρωνυμικό' or myargs['τύπος'] == 'πατρων'  then myargs['τύπος'] = ' - πατρωνυμικά '  -- σε άλλα είδη δανείων, (ειδικά για αρχαία όπως [[Ατρείδης]])
    		elseif myargs['τύπος'] == 'τοπωνύμιο' or myargs['τύπος'] == 'τόπος'  then myargs['τύπος'] = ' - τοπωνύμια '
    		else
    		return errorhere('Επιλέξτε παράμετρο τύπος=όνομα ή =επώνυμο ή =τοπωνύμιο')
	    	end
    	end
    mytext = '([[ορθογραφικό δάνειο]]) ' or ''
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
    -- param notext= or 0=
    noDefaultText = myargs['notext'] or ''
    zero= myargs['0'] or ''
    if noDefaultText ~= '' or zero~= '' then mytext = '' else mytext = '([[ορθογραφικό δάνειο]]) ' end
    	
    -- param text= or κειμ= for long text, requires [[Module:tin]], function tin
    longtext = myargs['text'] or ''
    longtextGr = myargs['κειμ'] or ''
	if lang_donor_iso ~= '' then
    	tin_or_ti = fem_article_tin['tin'](languages[lang_donor_iso]['frm'] or '') 
		else tin_or_ti = fem_article_tin['tin']('α') -- with 'α' the result will be 'την'
	end
    if longtext == '1' or longtextGr == '1' then
    	mytext = '[[ορθογραφικό δάνειο]] από ' -- .. tin_or_ti .. ' ' -- not needed, από + param apo
    	else
    	mytext = mytext
    end

    -- param#1 και param#2 συνδυασμοί
    -- 1) 0 + 0=el
    if lang_donor_iso == '' and  lang_target_iso == '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Ορθογραφικά δάνεια, πρέπει να εισάγετε τους κωδικούς iso των γλωσσών (1η και 2η παράμετρος)')
    end
    -- 2) 0 + iso
    if lang_donor_iso == '' and  lang_target_iso ~= '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Ορθογραφικά δάνεια, πρέπει να εισάγετε και τον κωδικό iso της γλώσσας-δότριας (1η παράμετρος)')
    end
    -- 3) iso + 0=el
    if lang_donor_iso ~= '' and  lang_target_iso == '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	mytext =  mytext .. link_language('linklanguage') .. ' '
    end
    -- 4) iso + iso
    if lang_donor_iso ~= '' and  lang_target_iso ~= '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
    	lang_target = languages[lang_target_iso]['name'] or ''
    	cattype = myargs['τύπος'] or ''
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
    	asciiSort = myargs['ascii'] or myargs['sort'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
            mytext =  mytext .. link_language('linklanguage') .. ' '
            else
if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
	 				if asciiSort == '' then		
    		mytext = '[[Κατηγορία:Ορθογραφικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]' 
    				else
    		mytext = '[[Κατηγορία:Ορθογραφικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]' 
	 				end
else -- display
	 				if asciiSort == '' then		
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Ορθογραφικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]' 
    				else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Ορθογραφικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]' 
	 				end
end -- close nodisplay
    		end -- close nocat
    end
		
	-- link στη λέξη-δότρια
	if word_donor ~= '' then
		if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
			return mytext
		else
			return linkFunction('link')
		end
	end

    return mytext
end

-- φωνητική απόδοση (phonetic transcription) [[Πρότυπο:φων]]
-- Δημιουργεί Κατηγορία:Φωνητικές μεταγραφές από... plus Προέλευση από... (παράδειγμα: [[κέιτερινγκ]])
Lf['φωνητική απόδοση'] = function(lc)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
    word_donor_show = myargs[4] or ''
    cattype = myargs['τύπος'] or ''		-- check [[ζενίθ]]
    	if myargs['τύπος'] ~= '' and myargs['τύπος'] ~= nil then
    		if myargs['τύπος'] == 'επώνυμο' or myargs['τύπος'] == 'επ' then myargs['τύπος'] = ' - επώνυμα '
    		elseif myargs['τύπος'] == 'όνομα' or myargs['τύπος'] == 'ον'  then myargs['τύπος'] = ' - ονόματα '
    		elseif myargs['τύπος'] == 'πατρωνυμικό' or myargs['τύπος'] == 'πατρων'  then myargs['τύπος'] = ' - πατρωνυμικά ' -- σε άλλα είδη δανείων (ειδικά για αρχαία όπως [[Ατρείδης]])
    		elseif myargs['τύπος'] == 'τοπωνύμιο' or myargs['τύπος'] == 'τόπος'  then myargs['τύπος'] = ' - τοπωνύμια '
    		else
    		return errorhere('Επιλέξτε παράμετρο τύπος=όνομα ή =επώνυμο ή =τοπωνύμιο')
	    	end
    	end
    mytext = '(φωνητική [[απόδοση]]) ' or ''
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
    -- param notext= or 0=
    noDefaultText = myargs['notext'] or ''
    zero= myargs['0'] or ''
    if noDefaultText ~= '' or zero~= '' then mytext = '' else mytext = '(φωνητική [[απόδοση]]) ' end
    
    -- param text= or κειμ= for long text, requires [[Module:tin]], function tin
    longtext = myargs['text'] or ''
    longtextGr = myargs['κειμ'] or ''
	if lang_donor_iso ~= '' then
    	tin_or_ti = fem_article_tin['tin'](languages[lang_donor_iso]['frm'] or '') 
		else tin_or_ti = fem_article_tin['tin']('α') -- with 'α' the result will be 'την'
	end
    if longtext == '1' or longtextGr == '1' then
    	mytext = 'φωνητική [[απόδοση]] για ' -- .. tin_or_ti .. ' ' -- not needed, για + param apo
    	else
    	mytext = mytext
    end 

    -- param#1 και param#2 συνδυασμοί
    -- 1) 0 + 0=el
    if lang_donor_iso == '' and  lang_target_iso == '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Φωνητικές αποδόσεις, πρέπει να εισάγετε τους κωδικούς iso των γλωσσών (1η και 2η παράμετρος)')
    end
	-- 2) 0 + iso
    if lang_donor_iso == '' and  lang_target_iso ~= '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Φωνητικές αποδόσεις, πρέπει να εισάγετε και τον κωδικό iso της γλώσσας-δότριας (1η παράμετρος)')
    end
    -- 3) iso + 0=el
    if lang_donor_iso ~= '' and  lang_target_iso == '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	mytext =  mytext .. link_language('linklanguage') .. ' '
    end
    -- 4) iso + iso
    if lang_donor_iso ~= '' and  lang_target_iso ~= '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
    	lang_target = languages[lang_target_iso]['name'] or ''
    	cattype = myargs['τύπος'] or ''
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
    	asciiSort = myargs['ascii'] or myargs['sort'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
            mytext =  mytext .. link_language('linklanguage') .. ' '
            else
if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
    				if asciiSort == '' then
    		mytext = '[[Κατηγορία:Φωνητικές αποδόσεις ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]' 
    				else
    		mytext = '[[Κατηγορία:Φωνητικές αποδόσεις ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]' 	
    				end
else -- display
    				if asciiSort == '' then
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Φωνητικές αποδόσεις ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]' 
    				else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Φωνητικές αποδόσεις ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]' 	
    				end
end -- close nodisplay
    		end -- close nocat
    end
		
	-- link στη λέξη-δότρια
	if word_donor ~= '' then
		if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
			return mytext
		else
			return linkFunction('link')
		end
	end

    return mytext
end


-- μεταγραφές (transliterations) [[Πρότυπο:μτγρ]]
-- Δημιουργεί Κατηγορία:Μεταγραμμένοι όροι από... plus Προέλευση από...
	-- με διαφορετική ονομασία από τη γενική [[:Κατηγορία:Μεταγραφές]]
Lf['μεταγραφή'] = function(lc)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
    word_donor_show = myargs[4] or ''
    cattype = myargs['τύπος'] or ''
    	if myargs['τύπος'] ~= '' and myargs['τύπος'] ~= nil then
    		if myargs['τύπος'] == 'επώνυμο' or myargs['τύπος'] == 'επ' then myargs['τύπος'] = ' - επώνυμα '
    		elseif myargs['τύπος'] == 'όνομα' or myargs['τύπος'] == 'ον'  then myargs['τύπος'] = ' - ονόματα '
    		elseif myargs['τύπος'] == 'πατρωνυμικό' or myargs['τύπος'] == 'πατρων'  then myargs['τύπος'] = ' - πατρωνυμικά ' -- σε άλλα είδη δανείων (ειδικά για αρχαία όπως [[Ατρείδης]])
    		elseif myargs['τύπος'] == 'τοπωνύμιο' or myargs['τύπος'] == 'τόπος'  then myargs['τύπος'] = ' - τοπωνύμια '
    		else
    		return errorhere('Επιλέξτε παράμετρο τύπος=όνομα ή =επώνυμο ή =τοπωνύμιο')
	    	end
    	end
    mytext = '([[μεταγραφή]]) ' or ''
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
    -- param notext= or 0=
    noDefaultText = myargs['notext'] or ''
    zero= myargs['0'] or ''
    if noDefaultText ~= '' or zero~= '' then mytext = '' else mytext = '([[μεταγραφή]]) ' end
    
    -- param text= or κειμ= for long text, requires [[Module:tin]], function tin
    longtext = myargs['text'] or ''
    longtextGr = myargs['κειμ'] or ''
	if lang_donor_iso ~= '' then
    	tin_or_ti = fem_article_tin['tin'](languages[lang_donor_iso]['frm'] or '') 
		else tin_or_ti = fem_article_tin['tin']('α') -- with 'α' the result will be 'την'
	end
    if longtext == '1' or longtextGr == '1' then
    	mytext = '[[μεταγραφή]] για ' -- .. tin_or_ti .. ' ' -- not needed, από + param apo
    	else
    	mytext = mytext
    end 

    -- param#1 και param#2 συνδυασμοί
    -- 1) 0 + 0=el
    if lang_donor_iso == '' and  lang_target_iso == '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Μεταγραμμένοι όροι, πρέπει να εισάγετε τους κωδικούς iso των γλωσσών (1η και 2η παράμετρος)')
    end
	-- 2) 0 + iso
    if lang_donor_iso == '' and  lang_target_iso ~= '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Μεταγραμμένοι όροι, πρέπει να εισάγετε και τον κωδικό iso της γλώσσας-δότριας (1η παράμετρος)')
    end
    -- 3) iso + 0=el
    if lang_donor_iso ~= '' and  lang_target_iso == '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	mytext =  mytext .. link_language('linklanguage') .. ' '
    end
    -- 4) iso + iso
    if lang_donor_iso ~= '' and  lang_target_iso ~= '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
    	lang_target = languages[lang_target_iso]['name'] or ''
    	cattype = myargs['τύπος'] or ''
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
    	asciiSort = myargs['ascii'] or myargs['sort'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
            mytext =  mytext .. link_language('linklanguage') .. ' '
            else
if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
    				if asciiSort == '' then
    		mytext = '[[Κατηγορία:Μεταγραμμένοι όροι ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
--    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]' 
    				else
    		mytext = '[[Κατηγορία:Μεταγραμμένοι όροι ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
--    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]' 	
    				end
else -- display
    				if asciiSort == '' then
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Μεταγραμμένοι όροι ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
--    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]' 
    				else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Μεταγραμμένοι όροι ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
--    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]' 	
    				end
end -- close nodisplay
    		end -- close nocat
    end
		
	-- link στη λέξη-δότρια
	if word_donor ~= '' then
		if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
			return mytext
		else
			return linkFunction('link')
		end
	end

    return mytext
end


-- κληρονομιά - inherited [[Πρότυπο:κλη]]. Δε δίνει κείμενο. 
-- Δημιουργεί Κατηγορία:Κληρονομημένες λέξεις από... plus Προέλευση από... (παράδειγμα: [[θησαυρός]])
Lf['κληρονομιά'] = function(lc)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
    word_donor_show = myargs[4] or ''
    cattype = myargs['τύπος'] or ''		-- check [[ζενίθ]]
    	if myargs['τύπος'] ~= '' and myargs['τύπος'] ~= nil then
    		if myargs['τύπος'] == 'επώνυμο' or myargs['τύπος'] == 'επ' then myargs['τύπος'] = ' - επώνυμα '
    		elseif myargs['τύπος'] == 'όνομα' or myargs['τύπος'] == 'ον'  then myargs['τύπος'] = ' - ονόματα '
    		elseif myargs['τύπος'] == 'πατρωνυμικό' or myargs['τύπος'] == 'πατρων'  then myargs['τύπος'] = ' - πατρωνυμικά ' --  (ειδικά για αρχαία όπως [[Ατρείδης]])
    		elseif myargs['τύπος'] == 'τοπωνύμιο' or myargs['τύπος'] == 'τόπος'  then myargs['τύπος'] = ' - τοπωνύμια '
    		else
    		return errorhere('Επιλέξτε παράμετρο τύπος=όνομα ή =επώνυμο ή =τοπωνύμιο')
	    	end
    	end
    mytext = '([[κληρονομημένος|κληρονομημένο]]) ' or ''
    asciiSort = myargs['ascii'] or ''
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
    -- param notext= or 0=
    noDefaultText = myargs['notext'] or ''
    zero= myargs['0'] or ''
    if noDefaultText ~= '' or zero~= '' then mytext = '' else mytext = '([[κληρονομημένος|κληρονομημένο]]) ' end

    -- param text= or κειμ= for long text, requires [[Module:tin]], function tin
    longtext = myargs['text'] or ''
    longtextGr = myargs['κειμ'] or ''
	if lang_donor_iso ~= '' then
    	tin_or_ti = fem_article_tin['tin'](languages[lang_donor_iso]['frm'] or '') 
		else tin_or_ti = fem_article_tin['tin']('α') -- with 'α' the result will be 'την'
	end
    if longtext == '1' or longtextGr == '1' then
    	mytext = 'κληρονομημένο από ' -- .. tin_or_ti .. ' ' -- not needed, από + param apo
    	else
    	mytext = mytext
    end

    -- param#1 και param#2 συνδυασμοί
    -- 1) 0 + 0=el
    if lang_donor_iso == '' and  lang_target_iso == '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Κληρονομημένες λέξεις, πρέπει να εισάγετε τους κωδικούς iso των γλωσσών (1η και 2η παράμετρος)')
    end
    -- 2) 0 + iso
    if lang_donor_iso == '' and  lang_target_iso ~= '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Κληρονομημένες λέξεις, πρέπει να εισάγετε και τον κωδικό iso της γλώσσας-δότριας (1η παράμετρος)')
    end
    -- 3) iso + 0=el
    if lang_donor_iso ~= '' and  lang_target_iso == '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	mytext =  mytext .. link_language('linklanguage') .. ' '
    end
    -- 4) iso + iso
    if lang_donor_iso ~= '' and  lang_target_iso ~= '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
    	lang_target = languages[lang_target_iso]['name'] or ''
    	cattype = myargs['τύπος'] or ''
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
    	asciiSort = myargs['ascii'] or myargs['sort'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
            mytext =  mytext .. link_language('linklanguage') .. ' '
        	else
if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
        		if asciiSort == '' then  -- e.g. [[-etto]] (it)
    		mytext = '[[Κατηγορία:Κληρονομημένες λέξεις ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
				else
    		mytext = '[[Κατηγορία:Κληρονομημένες λέξεις ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
        		end
else -- display
        		if asciiSort == '' then  -- e.g. [[-etto]] (it)
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Κληρονομημένες λέξεις ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
				else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Κληρονομημένες λέξεις ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
        		end
end --close nodisplay
    		end -- close nocat
    end
		
	-- link στη λέξη-δότρια
	if word_donor ~= '' then
		if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
			return mytext
		else
			return linkFunction('link')
		end
	end

    return mytext
end


-- Υπάγονται στα λόγια δάνεια. Ο όρος, όπως στο Λεξικό Τριανταφυλλίδη (εισαγωγή)
-- λόγιο διαχρονικό δάνειο (αναβίωση) - learned diachronic borrowing (revival) [[Πρότυπο:λδδ]]
-- Δημιουργεί Κατηγορία:Λόγια διαχρονικά δάνεια από... plus Προέλευση από... (παράδειγμα: [[αιδώς]], [[λάβαρο]])
Lf['λδδ'] = function(lc)
    lang_donor_iso = myargs[1] or ''
    lang_target_iso = myargs[2] or ''
    word_donor = myargs[3] or ''
    word_donor_show = myargs[4] or ''
    cattype = myargs['τύπος'] or ''		-- check [[Ατλαντίδα]]
    	if myargs['τύπος'] ~= '' and myargs['τύπος'] ~= nil then
    		if myargs['τύπος'] == 'επώνυμο' or myargs['τύπος'] == 'επ' then myargs['τύπος'] = ' - επώνυμα '
    		elseif myargs['τύπος'] == 'όνομα' or myargs['τύπος'] == 'ον'  then myargs['τύπος'] = ' - ονόματα '
    		elseif myargs['τύπος'] == 'πατρωνυμικό' or myargs['τύπος'] == 'πατρων'  then myargs['τύπος'] = ' - πατρωνυμικά ' --  (ειδικά για αρχαία όπως [[Ατρείδης]])
    		elseif myargs['τύπος'] == 'τοπωνύμιο' or myargs['τύπος'] == 'τόπος'  then myargs['τύπος'] = ' - τοπωνύμια '
    		else
    		return errorhere('Επιλέξτε παράμετρο τύπος=όνομα ή =επώνυμο ή =τοπωνύμιο')
	    	end
    	end
    mytext = '([[λόγιο διαχρονικό δάνειο|διαχρονικό&nbsp;δάνειο]]) ' or ''
-- easy-type διευκολύνσεις:
if lang_donor_iso == 'αρχ' then lang_donor_iso = 'grc' end
if lang_donor_iso == 'ελν' or lang_donor_iso == 'κοι' then lang_donor_iso = 'grc-koi' end
if lang_donor_iso == 'μσν' then lang_donor_iso = 'gkm' end
if lang_target_iso == '' then lang_target_iso = 'el' end -- el is assumed
    -- param notext= or 0=
    noDefaultText = myargs['notext'] or ''
    zero= myargs['0'] or ''
    if noDefaultText ~= '' or zero~= '' then mytext = '' else mytext = '([[λόγιο διαχρονικό δάνειο|διαχρονικό&nbsp;δάνειο]]) ' end
    
    -- param text= or κειμ= for long text, requires [[Module:tin]], function tin
    longtext = myargs['text'] or ''
    longtextGr = myargs['κειμ'] or ''
	if lang_donor_iso ~= '' then
    	tin_or_ti = fem_article_tin['tin'](languages[lang_donor_iso]['frm'] or '') 
		else tin_or_ti = fem_article_tin['tin']('α') -- with 'α' the result will be 'την'
	end
    if longtext == '1' or longtextGr == '1' then
    	mytext = '[[λόγιο διαχρονικό δάνειο]] από ' -- .. tin_or_ti .. ' ' -- not needed, από + param apo
    	else
    	mytext = mytext
    end 

    -- param#1 και param#2 συνδυασμοί
    -- 1) 0 + 0=el
    if lang_donor_iso == '' and  lang_target_iso == '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Λόγια διαχρονικά δάνεια, πρέπει να εισάγετε τους κωδικούς iso των γλωσσών (1η και 2η παράμετρος)')
    end
	-- 2) 0 + iso
    if lang_donor_iso == '' and  lang_target_iso ~= '' then
    	mytext =  mytext
    	mw.addWarning('Αν θέλετε να μπει το λήμμα σε Κατηγορία:Λόγια διαχρονικά δάνεια, πρέπει να εισάγετε και τον κωδικό iso της γλώσσας-δότριας (1η παράμετρος)')
    end
    -- 3) iso + 0=el
    if lang_donor_iso ~= '' and  lang_target_iso == '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	mytext =  mytext .. link_language('linklanguage') .. ' '
    end
    -- 4) iso + iso
    if lang_donor_iso ~= '' and  lang_target_iso ~= '' then
    	lang_donor = languages[lang_donor_iso]['name'] or ''
    	lang_donor_frm = languages[lang_donor_iso]['frm'] or ''
    	lang_donor_apota = languages[lang_donor_iso]['apota'] or ''
    	lang_target = languages[lang_target_iso]['name'] or ''
    	cattype = myargs['τύπος'] or ''
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
    	asciiSort = myargs['ascii'] or myargs['sort'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
            mytext =  mytext .. link_language('linklanguage') .. ' '
            else
if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
    				if asciiSort == '' then
    		mytext = '[[Κατηγορία:Λόγια διαχρονικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]' 
    				else
    		mytext = '[[Κατηγορία:Λόγια διαχρονικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]' 
    				end
else -- display
    				if asciiSort == '' then
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Λόγια διαχρονικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')]]' 
    				else
    		mytext =  mytext .. link_language('linklanguage') .. ' '
    		.. '[[Κατηγορία:Λόγια διαχρονικά δάνεια ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]'
    		.. '[[Κατηγορία:Προέλευση λέξεων ' .. cattype .. lang_donor_apota .. ' (' ..lang_target .. ')|' .. asciiSort .. ']]' 
    				end
end -- close nodisplay		
    		end -- close nocat
    end
		
	-- link στη λέξη-δότρια
	if word_donor ~= '' then
		if myargs['nodisplay'] == '1' or (myargs['000'] ~= '' and myargs['000'] ~= nil) then
			return mytext
		else
			return linkFunction('link')
		end
	end

    return mytext
end





--------------------------------------------------------------------------
--Γ. Functions μορφολογίας: ΕΠΙΠΛΕΟΝ ΛΕΙΤΟΥΡΓΙΕΣ από τα δοκιμαστικά του Xoristzatziki
--------------------------------------------------------------------------
-- Υποκοριστικό - diminutive
--  2019.04.11. [[Πρότυπο:υπο]] Όπως ήταν από τον Xoristzatziki, αλλά με έκφραση: + υποκοριστικό επίθημα
--  2019.05.03. και παράμετρος για εμφάνιση λέξης
Lf['υποκοριστικό'] = function(lc)
    ofGr = "''του''"
    mytext = "''[[υποκοριστικό]]'' " .. ofGr .. " " or ''
    if myargs[1] == nil or myargs[1] == '' then return mytext  end
    wordbase = myargs[1]
    dim_suffix = myargs[2] or ''
    lang_iso = myargs[3] or myargs['γλ'] or myargs['lang'] or ''
    wordbase_show = myargs[4] or ''
    if lang_iso == '' then lang_iso = 'el' end

    --if myargs['γλ'] == nil or myargs['γλ'] == '' then lang_iso = 'el' else lang_iso = myargs['γλ'] end
    lang_link = languages[lang_iso]['link'] or ''
    lang_name = languages[lang_iso]['name'] or ''

    wordbase_show = myargs[4] or ''
    if wordbase_show ~= '' then
    mytext = mytext .. "[[" .. wordbase .. "#" .. lang_link .. "|" .. wordbase_show .. "]]"
    else
    mytext = mytext .. "[[" .. wordbase .. "#" .. lang_link .. "|" .. wordbase .. "]]"
    end
    
    -- param nocat= or 00=
    if dim_suffix ~= '' and lang_name  ~= '' then
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
    		wordbase_show = myargs[4] or ''
    		if wordbase_show ~= '' then
        mytext = "[[" .. wordbase .. "#" .. lang_link .. "|" .. wordbase_show .. "]]" .. ' + [[υποκοριστικό|<span style="' .. style1 ..'"><i>υποκοριστικό</i></span>]] [[επίθημα|<span style="' .. style1 ..'"><i>επίθημα</i></span>]] ' ..
        "[[-" .. dim_suffix.. "#" .. lang_link .. "|-" .. dim_suffix .. "]]"
        	else
        mytext = "[[" .. wordbase .. "#" .. lang_link .. "|" .. wordbase .. "]]" .. ' + [[υποκοριστικό|<span style="' .. style1 ..'"><i>υποκοριστικό</i></span>]] [[επίθημα|<span style="' .. style1 ..'"><i>επίθημα</i></span>]] ' ..
        "[[-" .. dim_suffix.. "#" .. lang_link .. "|-" .. dim_suffix .. "]]"
        	end
    	else -- Κατηγορία ναι, Category yes
    		wordbase_show = myargs[4] or ''
    		if wordbase_show ~= '' then
        mytext = "[[" .. wordbase .. "#" .. lang_link .. "|" .. wordbase_show .. "]]" .. ' + [[υποκοριστικό|<span style="' .. style1 ..'"><i>υποκοριστικό</i></span>]] [[επίθημα|<span style="' .. style1 ..'"><i>επίθημα</i></span>]] ' ..
        "[[-" .. dim_suffix.. "#" .. lang_link .. "|-" .. dim_suffix .. "]]"
        .. "[[Κατηγορία:Λέξεις με υποκοριστικό επίθημα -" .. dim_suffix 
        	if lang_iso == 'el' then
        	mytext = mytext .. ' (νέα ελληνικά)]]'
    			else
        	mytext = mytext .. ' (' .. lang_name ..')]]'	
			end -- close if iso=el
		else
        mytext = "[[" .. wordbase .. "#" .. lang_link .. "|" .. wordbase .. "]]" .. ' + [[υποκοριστικό|<span style="' .. style1 ..'"><i>υποκοριστικό</i></span>]] [[επίθημα|<span style="' .. style1 ..'"><i>επίθημα</i></span>]] ' ..
        "[[-" .. dim_suffix.. "#" .. lang_link .. "|-" .. dim_suffix .. "]]"
        .. "[[Κατηγορία:Λέξεις με υποκοριστικό επίθημα -" .. dim_suffix 
        	if lang_iso == 'el' then
        	mytext = mytext .. ' (νέα ελληνικά)]]'
    			else
        	mytext = mytext .. ' (' .. lang_name ..')]]'	
			end -- close if iso=el
		end
		end -- close if nocat
    end -- close if υποκοριστικό επίθημα
    return mytext
end


-- Μεγεθυντικό - augmentative. 2019.05.03. [[Πρότυπο:μεγ]] κατά το 'Υποκοριστικό'
Lf['μεγεθυντικό'] = function(lc)
    ofGr = "''του''"
    mytext = "''[[μεγεθυντικό]]'' " .. ofGr .. " " or ''
    if myargs[1] == nil or myargs[1] == '' then return mytext  end
    wordbase = myargs[1]
    aug_suffix = myargs[2] or ''
    lang_iso = myargs[3] or myargs['γλ'] or myargs['lang'] or ''
    wordbase_show = myargs[4] or ''
    if lang_iso == '' then lang_iso = 'el' end
    
    lang_link = languages[lang_iso]['link'] or ''
    lang_name = languages[lang_iso]['name'] or ''

    wordbase_show = myargs[4] or ''
    if wordbase_show ~= '' then
    mytext = mytext .. "[[" .. wordbase .. "#" .. lang_link .. "|" .. wordbase_show .. "]]"
    else
    mytext = mytext .. "[[" .. wordbase .. "#" .. lang_link .. "|" .. wordbase .. "]]"
    end

    if aug_suffix ~= '' and lang_name  ~= '' then
    	-- param nocat= or 00=
    	noCategory = myargs['nocat'] or ''
    	doubleZero = myargs['00'] or ''
        	if noCategory ~= '' or doubleZero ~= '' then
    		wordbase_show = myargs[4] or ''
    		if wordbase_show ~= '' then
        mytext = "[[" .. wordbase .. "#" .. lang_link .. "|" .. wordbase_show .. "]]" .. ' + [[μεγεθυντικό|<span style="' .. style1 ..'"><i>μεγεθυντικό</i></span>]] [[επίθημα|<span style="' .. style1 ..'"><i>επίθημα</i></span>]] ' ..
        "[[-" .. aug_suffix.. "#" .. lang_link .. "|-" .. aug_suffix .. "]]"
        	else
        mytext = "[[" .. wordbase .. "#" .. lang_link .. "|" .. wordbase .. "]]" .. ' + [[μεγεθυντικό|<span style="' .. style1 ..'"><i>μεγεθυντικό</i></span>]] [[επίθημα|<span style="' .. style1 ..'"><i>επίθημα</i></span>]] ' ..
        "[[-" .. aug_suffix.. "#" .. lang_link .. "|-" .. aug_suffix .. "]]"
        	end
    	else -- Κατηγορία ναι, Category yes
    		wordbase_show = myargs[4] or ''
    		if wordbase_show ~= '' then
        mytext = "[[" .. wordbase .. "#" .. lang_link .. "|" .. wordbase_show .. "]]" .. ' + [[μεγεθυντικό|<span style="' .. style1 ..'"><i>μεγεθυντικό</i></span>]] [[επίθημα|<span style="' .. style1 ..'"><i>επίθημα</i></span>]] ' ..
        "[[-" .. aug_suffix.. "#" .. lang_link .. "|-" .. aug_suffix .. "]]"
        .. "[[Κατηγορία:Λέξεις με μεγεθυντικό επίθημα -" .. aug_suffix 
        	if lang_iso == 'el' then
        	mytext = mytext .. ' (νέα ελληνικά)]]'
    			else
        	mytext = mytext .. ' (' .. lang_name ..')]]'	
			end -- close if iso=el
		else
        mytext = "[[" .. wordbase .. "#" .. lang_link .. "|" .. wordbase .. "]]" .. ' + [[μεγεθυντικό|<span style="' .. style1 ..'"><i>μεγεθυντικό</i></span>]] [[επίθημα|<span style="' .. style1 ..'"><i>επίθημα</i></span>]] ' ..
        "[[-" .. aug_suffix.. "#" .. lang_link .. "|-" .. aug_suffix .. "]]"
        .. "[[Κατηγορία:Λέξεις με μεγεθυντικό επίθημα -" .. aug_suffix 
        	if lang_iso == 'el' then
        	mytext = mytext .. ' (νέα ελληνικά)]]'
    			else
        	mytext = mytext .. ' (' .. lang_name ..')]]'	
			end -- close if iso=el
		end
		end -- close if nocat
    end -- close if μεγεθυντικό επίθημα
    return mytext
end

--------------------------------------------------------------------------
--                       Δ. ΜΕΣΑΙΩΝΙΚΗ & TESTS                         --
--------------------------------------------------------------------------

-- 2019. mediaeval - Καλείται από το [[Πρότυπο:μσν]] και λειτουργεί
Lf['μεσαιωνική'] = function(lc)
    mytext = '[[μεσαιωνικά ελληνικά|<span style="color:#002000; border-bottom: 1px dashed #ddd; font-style:italic;">μεσαιωνική ελληνική</span>]]'
    if myargs[1] == nil then return mytext end
    if myargs[1] == '' then
        lemma_link = lemma_word
    else
        lemma_link = myargs[1]
    end
    mytext = mytext .. " [[" .. lemma_link .. "#" .. languages['gkm']['link'] .. "|" .. lemma_link .. "]]"
    return mytext
end

-- δεν λειτουργεί
-- not functioning. Links with Appendix:Reconstruction/ie (deprecated) 
-- deprecated: Παράρτημα:Αμάρτυρες λέξεις/ιε/*  could become *ine-pro/xxx (as in en.wikt: Reconstruction:Proto-Indo-European/xxx)
Lf['ινδοευρωπαϊκή ρίζα'] = function(lc)
    mytext = "[[πρωτοϊνδοευρωπαϊκή|''πρωτοϊνδοευρωπαϊκή ρίζα'']] "
    link_appendix = myargs[1] or ''
    if link_appendix == '' then return mytext end
    mytext = mytext .. "*ine-pro" .. link_appendix .. "|*" .. link_appendix .. "]]"
    return mytext
end

return export